:root{color:#fff3d6;font-synthesis:none;text-rendering:optimizelegibility;background:#030914;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{width:100%;min-height:100%;margin:0}body{background:radial-gradient(circle at 50% 15%,#0e6f7c59,#0000 36%),#030914;min-height:100dvh;overflow:hidden}button,a{min-width:44px;min-height:44px}:focus-visible{outline-offset:3px;outline:3px solid #5ef4ff}#app{place-items:center;display:grid}#stage{touch-action:none;isolation:isolate;background:linear-gradient(#071326 0%,#092640 48%,#071326 100%);width:min(100vw,430px);height:100dvh;min-height:540px;position:relative;overflow:hidden}#game,#intro,#hud,#lyrics,#pause-menu,#end-card{position:absolute;inset:0}.tutorial-toast{z-index:8;top:calc(180px + env(safe-area-inset-top));color:#fff3d6;pointer-events:none;text-align:center;text-wrap:balance;background:#071326e0;border:1px solid #5ef4ff8a;border-radius:999px;width:min(100vw - 40px,290px);max-width:min(100vw - 40px,290px);padding:11px 18px;font-size:14px;font-weight:800;line-height:1.25;animation:.18s ease-out both tutorial-toast-arrival;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #00000057}@keyframes tutorial-toast-arrival{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.tutorial-toast--reduced-motion{animation-name:tutorial-toast-arrival-reduced}@keyframes tutorial-toast-arrival-reduced{0%{opacity:0}to{opacity:1}}#game canvas{width:100%;height:100%;display:block}#intro,#end-card{z-index:10;padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));place-items:center;display:grid}.glass-card{width:min(100%,340px);max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;text-align:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#071326e0;border:1px solid #ffc85773;border-radius:24px;padding:32px 24px;overflow:hidden auto;box-shadow:0 20px 70px #0000007a}.glass-card h1,.glass-card h2{margin:10px 0 14px;font-family:Fraunces,Georgia,serif;font-size:clamp(36px,11vw,52px);line-height:.96}.loading-card p{color:#b9a7ff;margin:0}.screen-layer{padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));place-items:center;display:grid;overflow:hidden}.intro-card,.story-card,.end-card,.error-card{position:relative;overflow:hidden auto}.intro-card:before,.story-card:before,.end-card:before{filter:blur(70px);content:"";opacity:.22;pointer-events:none;background:#5ef4ff;border-radius:50%;height:160px;position:absolute;inset:-80px 25% auto}.instruction{color:#fff3d6;margin:3px 0;font-size:18px}.instruction-primary{color:#5ef4ff;margin-top:24px;font-weight:800}.primary-button,.secondary-button,.quiet-button{width:100%;min-height:48px;font:inherit;cursor:pointer;border:0;border-radius:999px;margin-top:14px;padding:12px 20px;font-weight:800}.primary-button{color:#071326;background:linear-gradient(135deg,#ffc857,#ff8f4f);margin-top:28px;box-shadow:0 12px 34px #ffc85747}.secondary-button{color:#fff3d6;background:#0e6f7c47;border:1px solid #5ef4ff80}.quiet-button{color:#b9a7ff;background:0 0;border:1px solid #fff3d633}button:disabled{cursor:not-allowed;filter:grayscale();opacity:.38}.intro-note{color:#fff3d6a6;margin-top:18px;display:block}.intro-preferences{grid-template-columns:1fr 1fr;gap:10px;display:grid}.intro-preferences .quiet-button{padding-inline:10px;font-size:13px}.story-card{max-width:340px;animation:.22s ease-out both story-card-arrival}.story-step{color:#5ef4ff;letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:800;display:block}.story-copy{color:#fff3d6;font-size:18px;line-height:1.45}.story-copy p{margin:8px 0}.story-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:28px;display:grid}.story-actions button{min-height:44px;margin-top:0}@keyframes story-card-arrival{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.story-card--reduced-motion{animation-name:story-card-arrival-reduced}@keyframes story-card-arrival-reduced{0%{opacity:0}to{opacity:1}}.hud-layer{z-index:6;padding:calc(14px + env(safe-area-inset-top)) 14px 0;pointer-events:none;grid-template-columns:minmax(72px,auto) minmax(0,1fr) 48px;align-content:start;align-items:start;gap:8px;display:grid}.pause-button{color:#ffc857;cursor:pointer;pointer-events:auto;background:#071326d1;border:1px solid #ffc8578a;border-radius:14px;width:48px;min-width:48px;height:48px;min-height:48px;font-size:24px;font-weight:900;line-height:1;box-shadow:0 8px 24px #00000047}.hud-value,.vibe-meter{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#071326b8;border:1px solid #ffc85740;border-radius:14px;gap:2px;min-height:48px;padding:8px 10px;display:grid;box-shadow:0 8px 24px #00000040}.hud-value span,.vibe-meter span{color:#ffc857;letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:800}.hud-value strong{color:#fff3d6;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:13px;overflow:hidden}.bloom-chain-tracker{box-sizing:border-box;grid-template-rows:auto 1fr;width:min(48vw,176px)}.bloom-chain-header,.bloom-chain-body{align-items:center;display:grid}.bloom-chain-header{grid-template-columns:minmax(0,1fr) auto;gap:6px}.bloom-chain-body{grid-template-columns:auto minmax(0,1fr) auto;gap:6px}.bloom-chain-tracker .bloom-chain-tier{color:#5ef4ff;text-align:right;max-width:76px;font-size:7px}.bloom-chain-tracker .bloom-chain-count{font-size:14px;line-height:1}.bloom-chain-tracker .bloom-chain-progress{color:#fff3d6d1;letter-spacing:.04em;text-align:center;font-size:7px}.bloom-chain-progress,.bloom-chain-tier{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bloom-chain-diamonds{gap:2px;display:flex}.bloom-chain-tracker .bloom-chain-diamond{color:#ffc85761;font-size:9px;line-height:1}.bloom-chain-tracker .bloom-chain-diamond--earned:first-child{color:#ffc857}.bloom-chain-tracker .bloom-chain-diamond--earned:nth-child(2){color:#5ef4ff}.bloom-chain-tracker .bloom-chain-diamond--earned:nth-child(3){color:#e94cff}.bloom-chain-diamond--anticipating{animation:.7s ease-in-out infinite alternate bloom-chain-anticipate}.bloom-chain-tracker--transition{animation:.65s ease-out bloom-chain-tier-flash}.bloom-chain-tracker--resetting{animation:.25s ease-out bloom-chain-reset}@keyframes bloom-chain-anticipate{0%{opacity:.38}to{opacity:1}}@keyframes bloom-chain-tier-flash{0%,to{background:#071326b8;border-color:#ffc85740}42%{background:#173b4bdb;border-color:#5ef4ffeb}}@keyframes bloom-chain-reset{0%{border-color:#ffc85794}to{border-color:#ffc85740}}.hud-layer--reduced-motion .bloom-chain-diamond--anticipating,.hud-layer--reduced-motion .bloom-chain-tracker--transition,.hud-layer--reduced-motion .bloom-chain-tracker--resetting{animation:none}.trial-petal-tracker{top:calc(173px + env(safe-area-inset-top));pointer-events:none;justify-items:center;gap:5px;width:min(100vw - 28px,276px);max-width:276px;transition:opacity .1s linear;display:grid;position:absolute;left:50%;transform:translate(-50%)}.trial-petal-tracker[data-state=inactive]{opacity:0}.trial-petals{gap:10px;display:flex}.trial-petal{box-sizing:border-box;background:#10284de0;border:1px solid #ffc857;width:12px;height:12px;transform:rotate(45deg);box-shadow:0 0 8px #ffc8573d}.trial-petal--earned{background:#5ef4ff;box-shadow:0 0 10px #5ef4ffb8}.trial-phase{color:#ffc857;letter-spacing:.06em;opacity:0;text-align:center;text-shadow:0 2px 5px #071326;text-wrap:balance;min-height:28px;font-size:10px;font-weight:850;line-height:1.25}.trial-phase--visible{opacity:1;animation:.22s ease-out both trial-phase-arrival}@keyframes trial-phase-arrival{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.hud-layer--reduced-motion .trial-phase--visible{animation:none}.vibe-meter{grid-column:1/-1;grid-template-columns:auto 1fr;align-items:center;min-height:auto}.vibe-meter progress{background:#ffffff1f;border:0;border-radius:99px;width:100%;height:6px;overflow:hidden}.vibe-meter progress::-webkit-progress-value{background:linear-gradient(90deg,#5ef4ff,#e94cff,#ffc857)}.vibe-meter--charged{animation:.36s ease-out vibe-charge}#pause-menu{z-index:9}.pause-layer{pointer-events:auto;background:#03091494}.pause-card{text-align:center;position:relative;overflow:hidden auto}.pause-card h2{font-size:clamp(34px,10vw,48px)}.pause-status{color:#b9a7ff;min-height:1.5em}.pause-count{color:#5ef4ff;margin:24px auto;font-size:clamp(76px,24vw,112px);line-height:1;animation:.522s ease-out both resume-count;display:block}.pause-count--reduced-motion{animation-name:resume-count-reduced}.pause-actions,.pause-confirmation{grid-template-columns:1fr 1fr;gap:10px;display:grid}.pause-actions .primary-button,.pause-confirmation p{grid-column:1/-1}.pause-actions button,.pause-confirmation button{margin-top:0}@keyframes resume-count{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes resume-count-reduced{0%{opacity:0}to{opacity:1}}@keyframes vibe-charge{0%{border-color:#ffc85740;transform:scale(1)}45%{border-color:#5ef4ffe6;transform:scale(1.025)}to{border-color:#ffc85740;transform:scale(1)}}.bloomline-layer{z-index:7;padding:calc(96px + env(safe-area-inset-top)) 14px 0;pointer-events:none;display:block}.bloomline-ribbon{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(90deg,#0a1830eb,#082438db,#0a1830eb);border:1px solid #ffc857c7;border-radius:15px;place-items:center;min-height:76px;padding:17px 24px 14px;display:grid;position:relative;box-shadow:inset 0 0 0 3px #ffc85714,0 10px 28px #00000057}.bloomline-ribbon:before,.bloomline-ribbon:after{content:"";background:#0b223d;border:1px solid #ffc857;width:13px;height:13px;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.bloomline-ribbon:before{left:-7px}.bloomline-ribbon:after{right:-7px}.bloomline-section{color:#ffc857;letter-spacing:.16em;text-transform:uppercase;font-size:8px;font-weight:850;position:absolute;top:5px}.bloomline-line{color:#71f6f1;text-align:center;text-wrap:balance;max-width:100%;margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(16px,4.5vw,21px);font-weight:800;line-height:1.12}.bloomline-layer[data-section=chorus] .bloomline-line,.bloomline-hero{color:#ff9c7e;text-shadow:0 0 18px #ff6b5ab3}.bloomline-jewels{gap:10px;display:flex;position:absolute;bottom:-5px}.bloomline-jewels i{background:#e94cff;border:1px solid #ffc857;width:7px;height:7px;transform:rotate(45deg);box-shadow:0 0 7px #5ef4ffb3}.bloomline-jewels i:nth-child(3){background:#5ef4ff;transform:rotate(45deg)scale(1.35)}.end-card{text-align:center}.end-card h2{font-size:clamp(31px,9vw,44px)}.final-regalia{color:#ffc857;margin:6px 0 0;font-family:Fraunces,Georgia,serif;font-weight:800}.trial-grade{color:#ffc857;margin:8px 0 0;font-weight:800}.final-score{color:#5ef4ff;margin-top:22px;font-size:clamp(54px,16vw,72px);line-height:.9;display:block}.final-rank{color:#ffc857;margin:14px 0 0;font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:800}.final-chain{color:#5ef4ff;margin:8px 0 0;font-weight:800}.end-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.end-actions button{border-radius:16px;margin-top:0}@keyframes hero-arrival{0%{opacity:0;transform:translateY(18px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.eyebrow{color:#ffc857;letter-spacing:.18em;text-transform:uppercase;font-size:12px;font-weight:800}#orientation-note{z-index:20;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));color:#fff3d6;pointer-events:none;background:#071326cc;border-radius:999px;margin:0;padding:6px 10px;font-size:12px;display:none;position:absolute}@media (max-height:560px){#stage{min-height:0}.screen-layer,#intro,#end-card{padding-block:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-bottom));place-items:start center}.glass-card{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:20px}.glass-card h1,.glass-card h2{font-size:clamp(30px,8vw,40px)}}@media (orientation:landscape) and (max-height:560px){#orientation-note{display:block}}@media (prefers-reduced-motion:reduce){.story-card{animation-name:story-card-arrival-reduced}.vibe-meter--charged{animation-name:vibe-charge-reduced}@keyframes vibe-charge-reduced{0%,to{border-color:#ffc85740}50%{border-color:#5ef4ffe6}}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
