:root{--ink: #07050A;--gold: #E9B949;--pink: #FF2E93;--pink-soft: #FF7AB8;--cream: #F6EBD9;--muted: #9E9286;--soft: #BFB3A6;--body: #E3D8CB;--green: #3DDC84;--panel: rgba(20,14,26,.85);--display: "Bodoni Moda", Georgia, serif;--ui: "Barlow Condensed", "Arial Narrow", sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#000;overflow:hidden}body{font-family:var(--ui);color:var(--cream);-webkit-font-smoothing:antialiased}#viewport{position:fixed;inset:0;display:flex;align-items:center;justify-content:center}#app{position:relative;width:1600px;height:900px;flex:none;transform-origin:center center;background:var(--ink);overflow:hidden}#game{position:absolute;inset:0;width:1600px;height:900px;display:block}#ui{position:absolute;inset:0}#ui:empty{pointer-events:none}.screen{position:absolute;inset:0;overflow:hidden}.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.shade{position:absolute;inset:0;pointer-events:none}.eyebrow{font-size:20px;letter-spacing:.3em;text-transform:uppercase;font-weight:700;color:var(--gold)}.display{font-family:var(--display);font-weight:700}.italic{font-style:italic}.muted{color:var(--muted)}.hint{position:absolute;left:64px;bottom:32px;display:flex;gap:28px;font-size:18px;letter-spacing:.14em;color:var(--soft);text-transform:uppercase}.hint b{color:var(--gold)}button,a.btn{font:inherit;color:inherit;cursor:pointer}button:focus{outline:none}button:focus-visible,.btn:focus-visible,input:focus-visible{outline:3px solid var(--cream);outline-offset:3px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:14px 28px;background:var(--gold);color:var(--ink);border:0;font-size:26px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;min-height:56px}.btn-primary:hover,.btn-primary:focus-visible{background:var(--cream)}.btn-primary[disabled]{opacity:.4;cursor:default}.btn-ghost{display:inline-flex;align-items:center;padding:12px 22px;background:transparent;border:1px solid rgba(246,235,217,.35);color:var(--cream);font-size:22px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;min-height:50px}.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--gold);color:var(--gold)}.back{position:absolute;right:64px;top:44px;background:none;border:0;font-size:20px;letter-spacing:.16em;color:var(--soft);text-transform:uppercase;padding:8px 0}.back b{color:var(--gold)}.back:hover{color:var(--cream)}.menu{position:absolute;left:96px;top:470px;display:flex;flex-direction:column;gap:6px;width:600px}.menu button{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;background:none;border:0;border-left:3px solid transparent;font-size:30px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:left;min-height:56px;color:var(--cream)}.menu button small{font-size:16px;letter-spacing:.12em;color:var(--pink-soft)}.menu button.minor{font-size:24px;color:var(--soft);min-height:46px;padding-top:8px;padding-bottom:8px}.menu button:hover,.menu button:focus{outline:none;background:var(--gold);color:var(--ink);border-left-color:var(--gold)}.menu button:hover small,.menu button:focus small{color:var(--ink)}.menu button[aria-disabled=true]{opacity:.55}.cards{position:absolute;left:64px;right:64px;bottom:36px;display:grid;gap:16px}.card{position:relative;overflow:hidden;padding:0;text-align:left;background:var(--panel);border:1px solid rgba(246,235,217,.18)}.card.sel{border:3px solid var(--gold);background:#e9b94929}.card:hover,.card:focus{border-color:var(--cream)}.song:focus,.diff:focus,.btn-primary:focus,.btn-ghost:focus{outline:3px solid var(--cream);outline-offset:3px}.card .role{position:absolute;left:18px;top:16px;font-size:15px;letter-spacing:.22em;text-transform:uppercase;font-weight:700}.card .name{position:absolute;left:18px;bottom:14px;font-family:var(--display);font-size:34px;font-weight:700;text-transform:uppercase}.card .who{position:absolute;right:12px;top:12px;font-size:16px;font-weight:800;padding:2px 8px;color:var(--ink)}.stage-card{height:120px}.stage-card img{width:100%;height:100%;object-fit:cover;display:block}.stage-card span{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;background:linear-gradient(0deg,#07050af2,#07050a00);font-size:19px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.stat{display:flex;flex-direction:column;gap:2px;font-size:20px}.stat span:first-child{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:16px}.stat span:last-child{font-weight:700}.songs{position:absolute;left:64px;top:124px;width:1130px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.song{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2px 14px;padding:8px 16px 8px 8px;background:var(--panel);border:1px solid rgba(246,235,217,.18);text-align:left}.song .cover{grid-row:1 / span 3;width:70px;height:70px;object-fit:cover;display:block;box-shadow:0 4px 14px #0000008c;background:#120d16}.song.sel .cover{box-shadow:0 0 0 2px var(--gold),0 6px 22px #e9b94959}.song .n{grid-column:2 / -1;display:flex;gap:12px;font-size:15px;letter-spacing:.08em;color:var(--soft)}.song .n i{font-style:normal}.song .n i.on{color:var(--gold);font-weight:700}.song .n em{font-style:normal;color:var(--gold);margin-right:6px}.song.sel{border:3px solid var(--gold);background:#e9b94924}.song .t{font-family:var(--display);font-weight:700;font-size:26px;line-height:1.1}.song .m{color:var(--soft);font-size:15px;letter-spacing:.08em;text-transform:uppercase}.song .b{color:var(--gold);font-size:17px;font-weight:700;text-align:right}.diffs{display:flex;gap:10px}.diff{padding:10px 24px;background:transparent;border:1px solid rgba(246,235,217,.35);font-size:24px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;min-height:50px}.diff.sel{background:var(--pink);color:var(--ink);border-color:var(--pink)}.panel{position:absolute;background:#07050ae6;border:1px solid rgba(246,235,217,.2);padding:36px 40px}.center{left:50%;top:50%;transform:translate(-50%,-50%)}.row{display:flex;gap:14px;align-items:center}.col{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:8px;font-size:20px;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}.field input[type=text]{font:inherit;font-size:48px;letter-spacing:.4em;text-transform:uppercase;width:280px;padding:8px 16px;background:#140e1a;color:var(--cream);border:2px solid var(--gold)}.field input[type=range]{width:420px;accent-color:var(--gold);height:28px}.code{font-family:var(--display);font-weight:700;font-size:120px;letter-spacing:.12em;color:var(--gold);line-height:1}.err{color:#ff7a7a;font-size:22px;min-height:28px}.keys{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;font-size:22px}.keys kbd{font-family:var(--ui);font-weight:800;color:var(--gold)}.results{position:absolute;inset:0;display:grid;gap:40px;padding:120px 80px}.res{display:flex;flex-direction:column;gap:10px}.res .tips{font-family:var(--display);font-weight:700;font-size:96px;color:var(--gold);line-height:1}.res .grade{font-family:Alfa Slab One,serif;font-weight:400;font-size:132px;line-height:.9;text-shadow:0 6px 30px rgba(0,0,0,.6)}.res table{border-collapse:collapse;font-size:24px;width:360px}.res td{padding:4px 0}.res td:last-child{text-align:right;font-weight:700}.winner{font-family:var(--display);font-style:italic;font-weight:700;font-size:64px;text-align:center}.badge{align-self:flex-start;display:inline-block;background:var(--pink);color:var(--ink);font-weight:800;padding:2px 10px;font-size:20px;letter-spacing:.1em}.overlay{position:absolute;inset:0;background:#07050ab8;display:flex;align-items:center;justify-content:center}.toast{position:absolute;left:50%;bottom:40px;transform:translate(-50%);background:var(--cream);color:var(--ink);padding:10px 22px;font-size:22px;font-weight:700}.press-start{position:absolute;left:50%;bottom:70px;transform:translate(-50%);background:none;border:0;color:var(--cream);font-size:34px;font-weight:800;letter-spacing:.4em;text-transform:uppercase;padding:10px 30px;animation:pulse 1.6s ease-in-out infinite;text-shadow:0 0 18px rgba(255,46,147,.9),0 2px 0 #07050A}.press-start:focus{outline:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.legal{position:absolute;left:0;right:0;bottom:22px;text-align:center;font-size:15px;letter-spacing:.18em;color:#f6ebd98c;text-transform:uppercase}.logo{display:flex;flex-direction:column;align-items:flex-start}.logo-the,.logo-main{font-family:"Alfa Slab One",var(--display);color:#f4c430;text-transform:uppercase;text-shadow:0 3px 0 #9A6A12,0 6px 18px rgba(0,0,0,.75)}.logo-the{font-size:46px;line-height:1;margin-left:4px}.logo-main{font-size:108px;line-height:.92}.logo-sub{font-family:Pacifico,cursive;font-size:52px;color:#ff7ac6;margin:6px 0 0 120px;text-shadow:0 0 6px #FF2E93,0 0 18px #FF2E93,0 0 34px rgba(255,46,147,.6)}.glyph{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;line-height:1}.g-face{width:1.35em;height:1.35em;flex:none}.g-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.6em;height:1.35em;padding:0 .45em;border-radius:.7em;background:#17121c;border:1px solid rgba(246,235,217,.45);color:var(--cream);font-weight:800;font-size:.8em;letter-spacing:.04em;text-transform:uppercase}.g-key{display:inline-flex;align-items:center;justify-content:center;min-width:1.4em;height:1.35em;padding:0 .35em;border-radius:.22em;background:#f6ebd9eb;color:var(--ink);font-weight:800;font-size:.8em;letter-spacing:.02em;box-shadow:0 2px #00000073}.g-or{opacity:.5;padding:0 2px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn-primary .g-face,.btn-primary .g-pill{filter:none}.btn-primary .g-key{background:var(--ink);color:var(--cream);box-shadow:none}.hint .glyph,.back .glyph{font-size:1.15em;margin-right:4px}.g-wrap{display:inline-flex}#fullscreen{position:fixed;right:16px;bottom:16px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(246,235,217,.45);background:#07050ac7;color:var(--cream);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:50;opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}#fullscreen.show,#fullscreen:focus-visible{opacity:1;transform:none;pointer-events:auto}#fullscreen:hover{border-color:var(--gold);color:var(--gold)}#fullscreen svg{width:24px;height:24px}.chosen{animation:chosen .22s ease-out;border-color:var(--gold)!important}@keyframes chosen{0%{transform:scale(1);box-shadow:0 0 #e9b949e6}60%{transform:scale(1.04);box-shadow:0 0 0 10px #e9b94900}to{transform:scale(1)}}.signature{position:absolute;right:96px;bottom:34px;display:flex;align-items:baseline;gap:10px;pointer-events:none;text-shadow:0 2px 12px rgba(0,0,0,.8)}.signature span{font-size:15px;letter-spacing:.28em;text-transform:uppercase;color:#f6ebd9bf}.signature b{font-family:Alfa Slab One,serif;font-weight:400;font-size:34px;letter-spacing:.04em;color:var(--gold)}.credits-by{display:flex;align-items:baseline;gap:18px;margin-top:6px}.credits-by span{font-size:28px;letter-spacing:.3em;text-transform:uppercase;color:var(--soft)}.credits-by b{font-family:Alfa Slab One,serif;font-weight:400;font-size:120px;line-height:1;color:var(--gold);text-shadow:0 6px 30px rgba(233,185,73,.25)}.credits-lede{max-width:900px;font-size:24px;color:var(--cream);margin:10px 0 26px}.socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:1100px}.social{display:flex;align-items:center;gap:18px;padding:16px 22px;background:#07050ab8;border:2px solid rgba(246,235,217,.18);color:var(--cream);text-align:left}.social-icon{width:52px;height:52px;color:var(--brand);flex:none}.social-icon svg{width:100%;height:100%;display:block}.social-text{display:flex;flex-direction:column;flex:1}.social-text b{font-size:30px;letter-spacing:.04em;text-transform:uppercase}.social-text span{font-size:22px;color:var(--soft);letter-spacing:.04em}.social-cta{font-size:18px;letter-spacing:.16em;text-transform:uppercase;color:var(--brand);font-weight:700}.social:hover,.social:focus{outline:none;border-color:var(--gold);background:#e9b94924}.social:hover .social-cta,.social:focus .social-cta{color:var(--gold)}.credits-cols{display:grid;grid-template-columns:1fr 1fr;gap:48px;max-width:1300px;margin-top:30px}.credits-cols h4{margin:0 0 6px;font-size:18px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}.credits-cols p{margin:0;font-size:18px;line-height:1.45;color:#f6ebd9d1}
