@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");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{--color-bg:#0a0a0a;--color-surface:#0d0d0d;--color-surface-1:#141414;--color-surface-2:#181818;--color-surface-3:#1e1e1e;--color-surface-4:#222;--color-surface-5:#282828;--color-accent:#4a90e2;--color-accent-dim:#4a90e226;--color-accent-deep:#1b3a6b;--color-correct:#22c55e;--color-correct-bg:#22c55e14;--color-correct-border:#22c55e4d;--color-correct-dim:#22c55e26;--color-wrong:#ef4444;--color-wrong-bg:#ef444414;--color-wrong-border:#ef44444d;--color-danger:#dc2626;--color-text-hi:#fff;--color-text-mid:#fff9;--color-text-lo:#fff6;--color-text-faint:#ffffff40;--color-text-ghost:#fff3;--color-border:#ffffff14;--color-border-hi:#ffffff1a;--color-border-faint:#ffffff0f;--color-border-ghost:#ffffff0a;--color-overlay:#0009;--color-scrim:#0006;--color-scrim-hi:#00000073;--font-family:"DM Sans Variable", sans-serif;--font-size-xs:10px;--font-size-sm:11px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:22px;--font-size-2xl:24px;--font-size-3xl:32px;--font-size-display:64px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--letter-spacing-tight:-.3px;--letter-spacing-normal:0px;--letter-spacing-wide:.3px;--letter-spacing-wider:.5px;--letter-spacing-caps:1px;--line-height-tight:1.3;--line-height-base:1.5;--line-height-loose:1.6;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:14px;--space-7:16px;--space-8:20px;--space-9:24px;--space-10:28px;--space-11:32px;--space-12:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--radius-xl:14px;--radius-2xl:16px;--radius-3xl:18px;--radius-4xl:20px;--radius-full:9999px;--app-max-width:430px;--header-height:56px;--footer-height:64px;--mini-player-height:68px;--shadow-drag:0 20px 60px #000000bf;--duration-fast:.15s;--duration-base:.2s;--duration-slow:.3s;--duration-sheet:.35s;--ease-default:ease;--ease-spring:cubic-bezier(.4, 0, .2, 1);--ease-sheet:cubic-bezier(.32, .72, 0, 1);--blur-header:blur(12px);--blur-pill:blur(8px);--z-base:1;--z-drop-zone:3;--z-drop-active:4;--z-header:50;--z-drag-ghost:999;--z-overlay:100;--z-sheet:101;--z-tweaks:200;--z-feedback:1000}@keyframes tt-fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tt-slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes tt-slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes tt-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}@keyframes tt-ripple{0%{opacity:.6;transform:scale(.8)}to{opacity:0;transform:scale(2.4)}}@keyframes tt-correctFlash{0%,to{background:var(--color-surface-2)}30%{background:var(--color-correct-bg)}}@keyframes tt-wrongFlash{0%,to{background:var(--color-surface-2)}30%{background:var(--color-wrong-bg)}}@keyframes tt-scoreUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-24px)}}@keyframes tt-spin{to{transform:rotate(360deg)}}@keyframes tt-drop{0%{opacity:0;transform:translateY(-26px)}55%{opacity:1;transform:translateY(3px)}75%{transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}*,:before,:after{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-text-hi);font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-base);margin:0}.shell{min-height:100dvh;max-width:var(--app-max-width);background:var(--color-surface);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;margin:0 auto;display:flex}.shell-header{z-index:var(--z-header);align-items:center;gap:var(--space-3);box-sizing:content-box;height:var(--header-height);padding:env(safe-area-inset-top) var(--space-7) 0;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;position:sticky;top:0}.shell-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);margin:0}.brand-accent{color:var(--color-accent);font-weight:var(--font-weight-extrabold)}.shell-edition{color:var(--color-text-lo);font-weight:var(--font-weight-semibold)}.splash{align-items:center;gap:var(--space-5);padding-top:var(--space-12);flex-direction:column;display:flex}.shell-main{padding:var(--space-7);flex:1}.shell-footer{padding:var(--space-5) var(--space-7);border-top:1px solid var(--color-border-faint);color:var(--color-text-lo);font-size:var(--font-size-sm);line-height:var(--line-height-tight)}.card{padding:var(--space-8);border-radius:var(--radius-lg);background:var(--color-surface-1);border:1px solid var(--color-border);animation:tt-fadeIn var(--duration-slow) var(--ease-default)}.card h2{margin:0 0 var(--space-3);font-size:var(--font-size-xl)}.card p{margin:0 0 var(--space-5);color:var(--color-text-mid)}.card p:last-child{margin-bottom:0}.section-title{margin:0 0 var(--space-5);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-lo)}.edition-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.edition{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-6) var(--space-7);border-radius:var(--radius-lg);background:var(--color-surface-1);border:1px solid var(--color-border);animation:tt-fadeIn var(--duration-slow) var(--ease-default);display:flex}.edition:disabled{cursor:default;opacity:.6}.edition-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.edition-dates{color:var(--color-text-lo);font-size:var(--font-size-sm)}.edition-on-air{margin-top:var(--space-1);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.phase{padding:var(--space-1) var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:var(--color-surface-3);color:var(--color-text-mid);flex-shrink:0}.phase-live{background:var(--color-accent-dim);color:var(--color-accent)}.muted{color:var(--color-text-lo)}.button{padding:var(--space-5) var(--space-8);border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-text-hi);font:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;border:0}.captcha{margin-top:var(--space-7);justify-content:center;display:flex}.captcha:empty{display:none}.button:disabled{opacity:.5;cursor:default}.button-wide{width:100%}.button-secondary{background:var(--color-surface-3)}.link-button{margin-bottom:var(--space-5);color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.play{gap:var(--space-7);flex-direction:column;display:flex}.play-title{font-size:var(--font-size-xl);margin:0}.play-stats{color:var(--color-text-mid);justify-content:space-between;display:flex}.play-stats strong{color:var(--color-text-hi);font-size:var(--font-size-lg)}.notice{padding:var(--space-5) var(--space-7);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);margin:0}.notice-correct{background:var(--color-correct-bg);border:1px solid var(--color-correct-border);color:var(--color-correct)}.notice-wrong,.notice-error{background:var(--color-wrong-bg);border:1px solid var(--color-wrong-border);color:var(--color-wrong)}.active-song{text-align:center}.active-position{color:var(--color-accent);font-weight:var(--font-weight-bold)}.active-artist{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.active-title{margin-bottom:var(--space-5);color:var(--color-text-mid);font-size:var(--font-size-md)}.start-from{align-items:center;gap:var(--space-3);margin-top:var(--space-7);color:var(--color-text-mid);display:flex}.start-from input{width:5.5em;padding:var(--space-3);border:1px solid var(--color-border-hi);border-radius:var(--radius-sm);background:var(--color-surface-2);color:var(--color-text-hi);font:inherit}.song-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.song{gap:var(--space-5);padding:var(--space-4) var(--space-6);border-radius:var(--radius-md);background:var(--color-surface-2);display:flex}.song-year{min-width:2.6em;font-weight:var(--font-weight-bold);flex-shrink:0}.repeat-note{margin:0 0 var(--space-5);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);background:var(--color-surface-3);color:var(--color-text-mid);font-size:var(--font-size-sm)}.badge{padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--color-surface-4);color:var(--color-text-lo);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);align-self:center;margin-left:auto}.button-row{gap:var(--space-3);display:flex}.home-links{align-items:flex-start;gap:var(--space-5);margin-top:var(--space-8);flex-direction:column;display:flex}.form{gap:var(--space-5);flex-direction:column;display:flex}.form h2,.form h3,.form p{margin:0}.field{gap:var(--space-2);color:var(--color-text-mid);font-size:var(--font-size-sm);flex-direction:column;display:flex}.field input{padding:var(--space-5);border:1px solid var(--color-border-hi);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-hi);font:inherit;font-size:var(--font-size-md)}.invite-link{padding:var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface-2);font-size:var(--font-size-sm);word-break:break-all}.danger-link{color:var(--color-wrong)}.play-stats .link-button{margin:0}.behind{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-radius:var(--radius-md);background:var(--color-accent-dim);color:var(--color-text-mid);flex-wrap:wrap;display:flex}.behind .link-button{font-weight:var(--font-weight-semibold);margin:0}.play-panel{top:calc(var(--header-height) + env(safe-area-inset-top) + 1px);z-index:calc(var(--z-header) - 1);gap:var(--space-3);margin:0 calc(-1 * var(--space-7));padding:var(--space-5) var(--space-7);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex;position:sticky}.panel-song{text-align:center;line-height:var(--line-height-tight)}.panel-ended,.panel-wait{gap:var(--space-3);text-align:center;flex-direction:column;margin:0;display:flex}.year-dial{grid-template-columns:3.5em 1fr 3.5em;align-items:center;display:grid}.year-dial-year{text-align:center;font-size:48px;font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:1.1}.year-slider{width:100%;accent-color:var(--color-accent)}.year-strip{flex-direction:column;display:flex}.spot-line{border:0;border-top:1px solid var(--color-border-faint);width:100%;min-height:12px;color:var(--color-accent);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:left;cursor:pointer;background:0 0;padding:0;display:block}.spot-line:disabled{cursor:default}.spot-line-chosen,.spot-line-correct,.spot-line-wrong{min-height:34px;padding-left:var(--space-4);border-radius:var(--radius-sm)}.spot-line-chosen{border:2px solid var(--color-accent);background:var(--color-accent-dim)}.spot-line-correct{border:2px solid var(--color-correct);background:var(--color-correct-bg);color:var(--color-correct)}.spot-line-wrong{border:2px solid var(--color-wrong);background:var(--color-wrong-bg);color:var(--color-wrong)}.year-row{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:3em 2.4em 1fr;display:grid}.year-count{color:var(--color-text-lo);font-size:var(--font-size-xs);text-align:right}.year-artists{color:var(--color-text-lo);font-size:var(--font-size-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.year-songs{margin:0 0 var(--space-3);padding-left:var(--space-8);color:var(--color-text-mid);font-size:var(--font-size-sm)}.play>.link-button{align-self:flex-start}.invite-qr{align-items:center;gap:var(--space-3);margin:var(--space-7) 0 0;text-align:center;flex-direction:column;display:flex}.invite-qr>div{border-radius:var(--radius-md);width:200px;height:200px;overflow:hidden}.invite-qr svg{width:100%;height:100%;display:block}.member{animation:tt-fadeIn var(--duration-slow) var(--ease-default)}.group-title{justify-content:space-between;align-items:baseline;gap:var(--space-5);display:flex}.group-title .link-button,.member-action,.member-action .link-button{margin:0}.member-action{font-size:var(--font-size-sm);margin-left:auto}.confirm{margin-top:var(--space-5)}.group-games{gap:var(--space-5);flex-direction:column;display:flex}.group-game-label{margin:calc(-1 * var(--space-5)) 0 0}.group-progress{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.field select,.inline-number{padding:var(--space-4);border:1px solid var(--color-border-hi);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-hi);font:inherit}.inline-number{width:5.5em}fieldset.field{border:0;margin:0;padding:0}.choice{align-items:center;gap:var(--space-3);color:var(--color-text-hi);font-size:var(--font-size-base);display:flex}.end-condition{gap:var(--space-3);display:flex}.end-condition select{flex:1}.standings h3{margin:0}.standings-head{margin-bottom:var(--space-4);justify-content:space-between;align-items:baseline;display:flex}.standings-head .link-button{margin:0}.standings-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.standing{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);grid-template-columns:2.4em 1fr auto auto;display:grid}.standing-me{background:var(--color-accent-dim)}.standing-place{font-weight:var(--font-weight-bold)}.standing-numbers{color:var(--color-text-mid);font-size:var(--font-size-sm)}
