:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f8fbff;background:#05060a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--track-a: #ff2bd6;--track-b: #19d7ff;--cover-url: none;--audio-overall: 0;--audio-peak: 0;--stage-title-portrait-scale: 1;--stage-title-scale: 1;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0}body{overflow:hidden}button,input{font:inherit}button{color:inherit}html[data-cursor-idle=true],html[data-cursor-idle=true] *{cursor:none!important}.desktop-shell{position:relative;width:100%;height:100%;height:100dvh;overflow:hidden;background:radial-gradient(circle at 18% 20%,color-mix(in srgb,var(--track-a) 20%,transparent),transparent 30%),radial-gradient(circle at 78% 8%,color-mix(in srgb,var(--track-b) 16%,transparent),transparent 32%),linear-gradient(135deg,#030409,#0a0d13,#05060a)}.cover-atmosphere,.surface-grid{pointer-events:none;position:absolute;inset:0}.cover-atmosphere{background-image:var(--cover-url);background-size:cover;background-position:center;filter:blur(64px) saturate(.95);opacity:calc(.14 + (var(--audio-overall) * .08));transform:scale(1.08);transition:opacity .12s linear}.surface-grid{opacity:.07;background:linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:radial-gradient(circle at 48% 44%,black,transparent 72%);mask-image:radial-gradient(circle at 48% 44%,black,transparent 72%)}.app-grid{position:relative;z-index:2;width:100%;height:100%;min-height:100dvh;padding:22px}.boot-atmosphere{position:absolute;z-index:8;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 20%,color-mix(in srgb,var(--track-b) 18%,transparent),transparent 36%),radial-gradient(circle at 40% 58%,color-mix(in srgb,var(--track-a) 10%,transparent),transparent 44%),#03040929;opacity:0;transform:scale(1.015);visibility:hidden;transition:opacity .62s ease,transform 1.1s cubic-bezier(.22,1,.36,1),visibility 0ms linear .62s}.boot-atmosphere:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,rgba(248,251,255,.11) 48%,transparent 58%),linear-gradient(90deg,transparent,color-mix(in srgb,var(--track-a) 13%,transparent),transparent);opacity:.55;transform:translateY(-58%);animation:boot-scan 1.45s cubic-bezier(.22,1,.36,1) forwards}.app-grid[data-booting=true] .boot-atmosphere{opacity:1;transform:scale(1);visibility:visible;transition-delay:0ms}.scene-area{transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .68s ease,filter .9s ease}@keyframes boot-scan{to{transform:translateY(58%);opacity:0}}.stage-title{position:absolute;z-index:1;left:50%;top:49%;width:min(100vw,1380px);padding:0 2vw;transform:translate(-50%,-50%) scale(calc(1 + (var(--audio-overall) * .052) + (var(--audio-peak) * .018)));display:grid;place-items:center;gap:.01em;color:rgba(248,251,255,calc(.056 + (var(--audio-overall) * .035)));font-family:Orbitron,Inter,ui-sans-serif,system-ui,sans-serif;font-size:calc(clamp(7.8rem,17.4vmin,16.8rem) * var(--stage-title-scale));font-weight:900;line-height:.8;letter-spacing:.04em;text-align:center;text-transform:uppercase;pointer-events:none;text-shadow:calc(.034em + (var(--audio-peak) * .035em)) 0 color-mix(in srgb,var(--track-a) 48%,transparent),calc(-.034em - (var(--audio-peak) * .03em)) 0 color-mix(in srgb,var(--track-b) 42%,transparent),0 0 calc(34px + (var(--audio-peak) * 78px)) color-mix(in srgb,var(--track-b) 34%,transparent);opacity:calc(.78 + (var(--audio-overall) * .22));filter:saturate(calc(1 + (var(--audio-overall) * .72))) contrast(calc(1 + (var(--audio-peak) * .22)));transition:filter .12s linear,opacity .12s linear}.app-grid[data-game-over=true] .stage-title{transform:translate(-50%,78vh) scale(.9);opacity:0;filter:saturate(.4) contrast(.9);transition:transform 2.6s cubic-bezier(.62,0,.22,1),opacity 1.8s ease,filter 1.8s ease}.stage-title__line{display:flex;flex-wrap:wrap;justify-content:center;gap:0 .24em;width:100%}.stage-title__word{display:inline-block;transform:translateY(calc(var(--audio-peak) * -.018em)) scaleY(calc(1 + (var(--audio-overall) * .035)));transition:transform 90ms linear}.game-over-title{position:absolute;z-index:6;left:50%;top:50%;transform:translate(-50%,-45%) scale(.86);width:min(92vw,1180px);color:#f8fbff00;font-family:Orbitron,Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(4rem,17vw,15rem);font-weight:900;line-height:.78;letter-spacing:.035em;text-align:center;text-transform:uppercase;pointer-events:none;text-shadow:none;opacity:0;filter:blur(18px);transition:color .22s ease,filter .26s ease,opacity .22s ease,transform .26s cubic-bezier(.22,1,.36,1),text-shadow .26s ease}.game-over-stats{position:absolute;z-index:7;left:50%;top:calc(50% - clamp(5.6rem,12.8vw,12.4rem));display:flex;justify-content:center;align-items:center;gap:clamp(12px,2vw,28px);width:min(92vw,960px);padding:0;color:#f8fbff70;font-family:Orbitron,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(.52rem,.74vw,.72rem);font-weight:800;letter-spacing:.11em;line-height:1;text-transform:uppercase;pointer-events:none;opacity:0;transform:translate(-50%,8px);text-shadow:0 0 18px rgba(248,251,255,.14),.035em 0 color-mix(in srgb,var(--track-a) 22%,transparent),-.025em 0 color-mix(in srgb,var(--track-b) 20%,transparent);transition:opacity .36s ease,transform .36s cubic-bezier(.22,1,.36,1)}.game-over-stats span{white-space:nowrap}.app-grid[data-game-over=true] .game-over-stats{opacity:.82;transform:translate(-50%);transition-delay:1.35s}.app-grid[data-game-over=true] .game-over-title{transform:translate(-50%,-50%) scale(1);color:#f8fbfff0;opacity:1;filter:blur(0);text-shadow:.045em 0 color-mix(in srgb,var(--track-a) 74%,transparent),-.04em 0 color-mix(in srgb,var(--track-b) 70%,transparent),0 0 52px color-mix(in srgb,var(--track-a) 42%,transparent),0 0 92px color-mix(in srgb,var(--track-b) 30%,transparent);transition-delay:.96s}@media(min-aspect-ratio:16 / 9){.stage-title{top:50%;width:min(104vw,1500px);font-size:calc(clamp(6.9rem,16.2vmin,16.2rem) * var(--stage-title-scale));line-height:.8}}@media(max-width:900px){.stage-title{top:46%;width:100vw;padding:0 1vw;font-size:calc(clamp(6.7rem,19.2vmin,11rem) * var(--stage-title-scale));line-height:.8}}@media(max-aspect-ratio:4 / 5){.stage-title{top:46%;width:104vw;font-size:calc(clamp(4.4rem,19vmin,9rem) * var(--stage-title-scale) * var(--stage-title-portrait-scale));line-height:.8}}@media(max-width:560px){.stage-title{top:44%;width:104vw;padding:0;font-size:calc(clamp(3.7rem,17.2vmin,7.2rem) * var(--stage-title-scale) * var(--stage-title-portrait-scale));line-height:.8}.stage-title__line{gap:0 .16em}.stage-title__word{margin-inline:-.03em;overflow-wrap:anywhere}.game-over-title{font-size:clamp(4.4rem,22vw,8.2rem);letter-spacing:.02em}.game-over-stats{top:calc(50% - clamp(4.6rem,18vw,6.8rem));width:min(92vw,520px);gap:8px;font-size:clamp(.48rem,2.2vw,.58rem);letter-spacing:.08em}}.scene-area{position:absolute;z-index:2;inset:0;overflow:hidden;border:0;border-radius:0;background:transparent}.scene-area canvas{cursor:grab}.scene-loading{position:absolute;left:50%;top:52%;z-index:3;transform:translate(-50%,-50%);color:#f8fbff94;font-size:.82rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.scene-loading p{margin:0}.loading-dot{display:inline-block;opacity:.18;animation:loading-dot-pulse 1.05s infinite ease-in-out}.loading-dot:nth-child(2){animation-delay:.18s}.loading-dot:nth-child(3){animation-delay:.36s}@keyframes loading-dot-pulse{0%,80%,to{opacity:.18}35%{opacity:1}}.eyebrow{margin:0 0 10px;color:#f8fbff8a;font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.lyrics-panel{position:absolute;z-index:5;left:50%;bottom:calc(clamp(88px,8.4dvh,130px) + var(--safe-bottom));width:min(780px,calc(100vw - 48px));min-height:106px;transform:translate(-50%);pointer-events:none;text-align:center;transition:transform 2.2s cubic-bezier(.62,0,.22,1),opacity 1.5s ease}.lyric-lines{position:relative;display:grid;place-items:center;min-height:104px}.lyric-line{position:absolute;width:fit-content;max-width:min(34ch,calc(100vw - 56px));margin:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:10px 18px 13px;border:1.5px solid rgba(10,14,20,.92);border-radius:5px;background:linear-gradient(135deg,#fffffff5,color-mix(in srgb,var(--track-b) 15%,#f8fbff)),#f8fbff;color:#10141a;font-size:clamp(1.42rem,3vw,3.15rem);font-weight:900;line-height:.94;letter-spacing:0;text-wrap:balance;overflow-wrap:normal;transform:rotate(-1deg);box-shadow:7px 7px color-mix(in srgb,var(--track-a) calc(58% + (var(--audio-peak) * 18%)),#10141a),0 0 calc(18px + (var(--audio-peak) * 34px)) color-mix(in srgb,var(--track-b) 22%,transparent),0 20px 58px #00000073;text-shadow:1px 1px 0 rgba(255,255,255,.5),0 0 calc(var(--audio-peak) * 14px) color-mix(in srgb,var(--track-b) 24%,transparent)}.lyric-line.is-long{max-width:min(24ch,calc(100vw - 96px));padding:14px 18px 16px;font-size:clamp(1.12rem,2.32vw,2.28rem);line-height:.92}.lyric-line.is-title.is-long{max-width:min(23ch,calc(100vw - 96px))}.app-grid[data-game-over=true] .lyrics-panel{transform:translate(-50%,42vh) rotate(4deg);opacity:0}@media(max-width:980px){body{overflow:auto}html,body,#root,.desktop-shell{min-height:100%;height:auto}.app-grid{min-height:100vh;min-height:100dvh;padding:14px}.scene-area{inset:0}.lyrics-panel{bottom:calc(clamp(82px,9dvh,118px) + var(--safe-bottom));width:min(720px,calc(100vw - 36px))}.lyric-line{max-width:min(32ch,calc(100vw - 42px));font-size:clamp(1.32rem,4.7vw,2.65rem)}.lyric-line.is-long{max-width:min(23ch,calc(100vw - 56px));padding:12px 15px 14px;font-size:clamp(1.04rem,3.82vw,2rem);line-height:.92}}@media(max-width:620px){.scene-area{border-radius:22px}.lyrics-panel{bottom:calc(clamp(88px,11dvh,124px) + var(--safe-bottom));width:calc(100vw - 28px);min-height:92px}.lyric-lines{min-height:88px}.lyric-line{max-width:min(24ch,calc(100vw - 28px));padding:9px 13px 11px;font-size:clamp(1.2rem,7.5vw,2.45rem);line-height:.94;box-shadow:5px 5px color-mix(in srgb,var(--track-a) calc(58% + (var(--audio-peak) * 18%)),#10141a),0 0 calc(14px + (var(--audio-peak) * 28px)) color-mix(in srgb,var(--track-b) 22%,transparent),0 18px 52px #0000006b}.lyric-line.is-long{max-width:min(20ch,calc(100vw - 34px));padding:10px 12px 12px;font-size:clamp(1rem,5.9vw,1.86rem);line-height:.92}}@media(orientation:landscape)and (max-height:520px)and (max-width:980px){body{overflow:hidden}html,body,#root,.desktop-shell{height:100%;height:100dvh}.app-grid{min-height:100dvh;padding:10px}.stage-title{top:50%;width:110vw;font-size:calc(clamp(4.6rem,24vmin,7.2rem) * var(--stage-title-scale));line-height:.78}.lyrics-panel{left:50%;bottom:calc(8px + var(--safe-bottom));width:min(64vw,620px);min-height:54px}.lyric-lines{min-height:54px}.lyric-line{max-width:min(44ch,64vw);padding:7px 12px 9px;font-size:clamp(1rem,4.6vmin,1.65rem);line-height:.94;box-shadow:4px 4px color-mix(in srgb,var(--track-a) calc(58% + (var(--audio-peak) * 18%)),#10141a),0 0 calc(10px + (var(--audio-peak) * 18px)) color-mix(in srgb,var(--track-b) 20%,transparent),0 12px 34px #00000061}.lyric-line.is-long{max-width:min(30ch,54vw);padding:6px 10px 8px;font-size:clamp(.86rem,3.7vmin,1.22rem)}}
