@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2)format("woff2"),url(/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2)format("woff2"),url(/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2)format("woff2"),url(/assets/nunito-latin-ext-700-normal-D4woHhbd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-cyrillic-ext-900-normal-BLeVovcl.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-900-normal-DKFql_-q.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-cyrillic-900-normal-CWPcV0_V.woff2)format("woff2"),url(/assets/nunito-cyrillic-900-normal-Dr1fjxoU.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-vietnamese-900-normal-D6LWQAy_.woff2)format("woff2"),url(/assets/nunito-vietnamese-900-normal-WV2-fBew.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-latin-ext-900-normal-Dllsvgjo.woff2)format("woff2"),url(/assets/nunito-latin-ext-900-normal-CTBZd6bf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-latin-900-normal-BVB1fGs6.woff2)format("woff2"),url(/assets/nunito-latin-900-normal-CVn49sIn.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#12062b;--bg-2:#2a0b5c;--ink:#fff;--pink:#ff2bd6;--cyan:#2bffea;--yellow:#fff04a;--green:#7cff4a;--purple:#8a5cff;--blue:#3d8bff;--nav-h:clamp(64px, 11svh, 96px);color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:Nunito,system-ui,sans-serif;font-weight:900}*{box-sizing:border-box}html,body,#root{background:var(--bg);-webkit-user-select:none;user-select:none;touch-action:manipulation;height:100%;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:none}.icon{width:1em;height:1em;display:block}.app{grid-template-rows:1fr var(--nav-h);grid-template-columns:minmax(0,1fr);height:100svh;display:grid;position:relative}.app__main{z-index:1;min-height:0;position:relative}.app__step{height:100%}.step{text-align:center;flex-direction:column;justify-content:space-evenly;align-items:center;gap:1.5svh;height:100%;padding:2svh 16px 0;display:flex}.stage{background:radial-gradient(ellipse at 50% 35%, var(--bg-2), var(--bg) 70%);transition:background .8s;position:absolute;inset:0;overflow:hidden}.stage--on{background:radial-gradient(at 50% 30%,#4a1590,#1a0840 70%)}.stage__spot{opacity:0;mix-blend-mode:screen;filter:blur(6px);width:40vmax;height:120svh;transition:opacity .8s;position:absolute;top:-10%}.stage__spot--left{clip-path:polygon(10% 0,22% 0,75% 100%,-20% 100%);transform-origin:16% 0;background:linear-gradient(#ff2bd688,#0000 85%);animation:3.2s ease-in-out infinite alternate spot-swing;left:-5%}.stage__spot--right{clip-path:polygon(78% 0,90% 0,120% 100%,25% 100%);transform-origin:84% 0;background:linear-gradient(#2bffea88,#0000 85%);animation:2.7s ease-in-out infinite alternate-reverse spot-swing;right:-5%}.stage--on .stage__spot{opacity:1}@keyframes spot-swing{0%{transform:rotate(-12deg)}to{transform:rotate(12deg)}}.disco{margin-left:calc(var(--ball) / -2);--ball:clamp(44px, 10vmin, 100px);width:var(--ball);flex-direction:column;align-items:center;display:flex;position:absolute;top:0;left:9%}.disco__string{background:#ccc;width:3px;height:1.5svh}.disco__ball{width:var(--ball);height:var(--ball);background:repeating-linear-gradient(90deg,#0003 0 2px,#0000 2px 12%),repeating-linear-gradient(0deg,#0003 0 2px,#0000 2px 12%),radial-gradient(circle at 35% 30%,#fff,#c9d6ff 25%,#7a7fa8 60%,#3b3d5c);border-radius:50%;animation:3s linear infinite disco-spin;box-shadow:0 0 30px #fff8,0 0 80px #ff2bd655}@keyframes disco-spin{to{background-position:100% 0,0 0,0 0}}.floor{left:-20%;right:-20%;bottom:calc(var(--nav-h) - 2svh);transform-origin:bottom;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(8,1fr);gap:6px;height:26svh;display:grid;position:absolute;transform:perspective(500px)rotateX(55deg)}.floor__tile{background:#ffffff10;border-radius:6px;transition:background .15s;box-shadow:inset 0 0 12px #0006}.stage--on .floor__tile{box-shadow:0 0 18px,inset 0 0 12px #fff6}.hosts{flex:0 auto;justify-content:center;min-height:0;display:flex;position:relative}.hosts__bounce{transform-origin:bottom;display:grid;position:relative}.hosts__layer{grid-area:1/1;justify-content:center;align-items:flex-end;display:flex}.hosts img{height:var(--hosts-h);object-fit:contain;max-width:92vw;display:block}.hosts .placeholder{height:var(--hosts-h);max-width:92vw}.hosts--big{--hosts-h:min(46svh, 70vw)}.hosts img{transition:filter .8s}.hosts--dark img{filter:brightness(.6)saturate(.8)}.hosts--medium{--hosts-h:min(30svh, 56vw)}.placeholder{aspect-ratio:8/7;background:#ffffff14;border:4px dashed #fff8;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:.4em;padding:1em;font-size:clamp(12px,2svh,18px);font-weight:700;display:flex}.placeholder__emoji{font-size:3em}.phrase{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 16px;display:flex}.phrase__text{text-shadow:0 0 12px var(--pink), 0 0 28px #ff2bd688, 0 4px 0 #0008;margin:0;font-size:clamp(30px,min(7vw,8svh),76px);line-height:1.05}.phrase__small{color:var(--cyan);flex-basis:100%;margin:0;font-size:clamp(18px,3svh,28px)}.phrase-slot{align-items:center;min-height:clamp(40px,9svh,90px);display:flex}.button-slot{align-items:center;min-height:calc(1.36*clamp(26px,5svh,44px) + .7em + 8px);display:flex}.round-button{background:#fff2;border:3px solid #fff6;border-radius:50%;flex:none;place-items:center;width:clamp(52px,8svh,72px);height:clamp(52px,8svh,72px);font-size:clamp(28px,4.5svh,40px);display:grid;box-shadow:0 4px #0006}.round-button.is-active{background:var(--cyan);border-color:#fff}.big-button{color:#1a0840;box-shadow:0 6px 0 #0007, 0 0 30px var(--glow);border:4px solid #fff;border-radius:999px;align-items:center;gap:.4em;padding:.35em 1em;font-size:clamp(26px,5svh,44px);display:inline-flex}.big-button--pink{background:var(--pink);--glow:var(--pink);color:#fff}.big-button--green{background:var(--green);--glow:var(--green)}.big-button--yellow{background:var(--yellow);--glow:var(--yellow)}.big-button--blue{background:var(--blue);--glow:var(--blue);color:#fff}.big-button__icon{font-size:1.2em}.keyboard-row{align-items:center;gap:12px;width:min(100%,860px);display:flex}.keyboard{background:linear-gradient(#2d2d3a,#15151d);border:3px solid #fff4;border-radius:20px;flex:1;grid-template-columns:repeat(8,1fr);gap:clamp(3px,.8vw,8px);padding:clamp(8px,1.5svh,14px);display:grid;box-shadow:0 8px #0008,0 0 40px #8a5cff66}.key{background:linear-gradient(to bottom, #fff 0 72%, var(--key-color) 72%);touch-action:none;border-radius:6px 6px 14px 14px;height:clamp(90px,20svh,200px);transition:transform 60ms,box-shadow 60ms,background .1s;position:relative;box-shadow:0 6px #9993,0 6px #0005}.key.is-pressed{background:var(--key-color);box-shadow:0 1px 0 #0005, 0 0 30px var(--key-color);transform:translateY(5px)}.key__note{pointer-events:none;margin-left:-.5em;font-size:clamp(26px,5svh,44px);position:absolute;top:10%;left:50%}.beat-button{width:clamp(60px,10svh,88px);height:clamp(60px,10svh,88px)}.emotion{align-items:center;display:flex;position:relative}.emotion__face{filter:drop-shadow(0 0 20px var(--yellow));font-size:clamp(56px,12svh,120px);position:absolute;top:0;right:-2%}.song-card{text-align:left;background:linear-gradient(135deg,#ff2bd6cc,#8a5cffcc);border:3px solid #fff;border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;padding:10px 22px;display:flex;box-shadow:0 6px #0007}.song-card__video{aspect-ratio:16/9;background:#000;border-radius:12px;flex:none;height:clamp(200px,22svh,240px);overflow:hidden}.song-card__video iframe{border:0;width:100%;height:100%;display:block}.song-card__video.is-hidden{display:none}.hosts--song{--hosts-h:min(34svh, 64vw)}.song-card__title{font-size:clamp(20px,3.6svh,34px);line-height:1.1}.song-card__artist{color:var(--yellow);font-size:clamp(16px,2.8svh,26px)}.lyric{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.lyric__line{flex-wrap:wrap;justify-content:center;gap:0 .55em;margin:0;font-size:clamp(30px,min(7.5vw,8svh),80px);line-height:1.1;display:flex}.lyric__word{color:#fffc;text-shadow:0 4px #0008;transition:color .1s;display:inline-block}.lyric__word.is-lit{color:var(--yellow);text-shadow:0 0 14px var(--yellow), 0 0 30px var(--pink), 0 4px 0 #0008}.dev-note{opacity:.6;margin:0;font-size:12px;font-weight:700;position:absolute;bottom:4px;left:8px}.confetti{pointer-events:none;z-index:5;position:fixed;inset:0;overflow:hidden}.confetti__piece{border-radius:3px;width:12px;height:18px;animation:linear forwards confetti-fall;position:absolute;top:-20px}@keyframes confetti-fall{to{transform:translateY(110svh) rotate(var(--spin))}}.nav{z-index:2;padding:0 16px max(6px, env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:8px;display:flex;position:relative}.nav__steps{gap:clamp(6px,1.5vw,16px);margin:0;padding:0;list-style:none;display:flex}.nav__step{opacity:.55;background:#ffffff14;border:3px solid #fff3;border-radius:50%;place-items:center;width:clamp(38px,6svh,54px);height:clamp(38px,6svh,54px);font-size:clamp(20px,3.4svh,30px);transition:transform .2s,opacity .2s;display:grid}.nav__step.is-done{opacity:.85}.nav__step.is-current{opacity:1;border-color:var(--cyan);box-shadow:0 0 16px var(--cyan);transform:scale(1.2)}.nav__arrow:disabled{pointer-events:none}@media (aspect-ratio>=5/4){.hosts--big{--hosts-h:min(48svh, 48vw)}.hosts--medium{--hosts-h:min(38svh, 40vw)}}@media (prefers-reduced-motion:reduce){.stage__spot,.disco__ball{animation:none}}@media (aspect-ratio<=4/5){.disco{--ball:40px;left:50%}.stage--on~.app__main .step{padding-top:58px}}@media (width<=440px){.nav{padding-left:10px;padding-right:10px}.nav .round-button{width:50px;height:50px;font-size:26px}.nav__steps{gap:5px}.nav__step{width:38px;height:38px;font-size:20px}}@media (width<=600px){.song-card{text-align:center;gap:6px 12px;padding:8px}.song-card__video{width:min(100%,356px);height:auto;min-height:200px}.step--song{gap:1svh}}
