@font-face{font-family:ManusCC0;src:url(../fonts/ManusCC0-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:ManusCC0;src:url(../fonts/ManusCC0-Medium.ttf)format("truetype");font-weight:500;font-display:swap}@font-face{font-family:ManusCC0;src:url(../fonts/ManusCC0-Bold.ttf)format("truetype");font-weight:700;font-display:swap}:root{--ink:#1b1838;--ink2:#2b2756;--cream:#f4efe3;--paper:#fffaf0;--gold:#f5b700;--silver:#c9ced6;--bronze:#c5793a;--red:#ee334e;--green:#00a651;--ed:#f5b700;--font:"ManusCC0", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--cream);font-family:var(--font);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;margin:0;overflow:hidden}#game{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}#ui>.hud,#ui>.touch{pointer-events:none}button{cursor:pointer;font-family:inherit}input,select{-webkit-user-select:text;user-select:text}.hidden{display:none!important}.screen{animation:.25s ease-out slideIn;display:flex;position:absolute;inset:0;overflow:hidden}@keyframes slideIn{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}.reduced *{transition-duration:0s!important;animation-duration:0s!important}.panel{background:var(--paper);color:var(--ink);border-radius:4px;box-shadow:0 18px 50px #00000059}.band{background:var(--ink);transform-origin:0 0;opacity:.93;width:62%;height:140%;position:absolute;top:-20%;left:-12%;transform:skew(-12deg)}.band.ed{background:var(--ed);opacity:1;width:2.2%;left:46%}.btn{background:var(--cream);color:var(--ink);text-align:left;letter-spacing:.02em;border:0;border-radius:3px;align-items:center;gap:12px;padding:13px 20px;font-size:18px;font-weight:700;transition:transform .12s,background .12s;display:flex}.btn:hover,.btn:focus-visible{background:var(--gold);outline:none;transform:translate(6px)}.btn.primary{background:var(--gold);padding:17px 24px;font-size:22px}.btn.primary:hover,.btn.primary:focus-visible{background:#fff}.btn.ghost{color:var(--cream);background:0 0;box-shadow:inset 0 0 0 2px #f4efe366}.btn.ghost:hover,.btn.ghost:focus-visible{background:var(--cream);color:var(--ink)}.btn.small{padding:9px 14px;font-size:14px}.btn[disabled]{opacity:.45;pointer-events:none}.btn .ico{background:var(--ink);width:30px;height:30px;color:var(--cream);border-radius:50%;flex:none;place-items:center;font-size:15px;display:inline-grid}.kbd{background:var(--ink);min-width:22px;color:var(--cream);text-align:center;border-radius:3px;padding:2px 6px;font-size:12px;font-weight:700;display:inline-block}.title-wrap{z-index:2;flex-direction:column;gap:10px;width:min(540px,94vw);max-height:100%;padding:5vh 0 0 6vw;display:flex;position:relative;overflow:hidden auto}.logo{letter-spacing:-.03em;align-items:center;margin:0;font-size:clamp(44px,7vw,88px);font-style:italic;font-weight:700;line-height:.9;display:flex}.medal-o{background:radial-gradient(circle at 35% 30%, #fff3b0, var(--gold) 45%, #b07d00);border-radius:50%;flex:none;width:.8em;height:.8em;margin-right:.03em;display:inline-block;box-shadow:inset 0 0 0 .07em #ffde6b,0 0 30px #f5b70073}.rings{gap:3px;margin:2px 0 6px;display:flex}.rings i{border:4px solid;border-radius:50%;width:24px;height:24px;display:block}.tagline{opacity:.92;max-width:32ch;margin:0 0 10px;font-size:19px;line-height:1.3}.profile{background:#ffffff14;border-radius:3px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;padding:10px 12px;display:flex}.profile label{opacity:.8;font-size:13px}.field{background:var(--cream);color:var(--ink);border:0;border-radius:3px;padding:8px 10px;font-family:inherit;font-size:16px}.profile input{width:150px}.foot{bottom:calc(12px + var(--safe-b));opacity:.65;z-index:2;text-align:right;max-width:50vw;font-size:12px;position:absolute;right:16px}.picker{z-index:2;background:linear-gradient(#1b1838eb,#1b1838b3);width:100%;padding:4vh 4vw 6vh;position:relative;overflow-y:auto}h2.big{letter-spacing:-.02em;margin:0 0 4px;font-size:clamp(30px,4.6vw,52px);font-style:italic}.sub{opacity:.82;margin:0 0 16px;line-height:1.35}.ed-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;max-width:1200px;display:grid}.ed-card{text-align:left;background:var(--paper);color:var(--ink);border:0;border-radius:4px;flex-direction:column;min-height:172px;padding:0;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.ed-card:hover,.ed-card:focus-visible{outline:3px solid var(--gold);transform:translateY(-4px)rotate(-.6deg);box-shadow:0 14px 30px #0006}.ed-card .stripe{background:var(--c);height:66px;position:relative;overflow:hidden}.ed-card .stripe:after{content:"";background:var(--c2);opacity:.9;border-radius:50%;width:92px;height:92px;position:absolute;top:-12px;right:-20px}.ed-card .year{color:#fff;z-index:1;text-shadow:0 2px #00000040;font-size:42px;font-style:italic;font-weight:700;position:absolute;bottom:4px;left:14px}.ed-card .body{flex-direction:column;gap:4px;padding:10px 14px 14px;display:flex}.ed-card .city{font-size:22px;font-weight:700}.ed-card .motto{opacity:.75;font-size:13px;line-height:1.3}.ed-card .meta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;font-size:13px;display:flex}.ed-card.legend{background:var(--ink2);color:var(--cream);box-shadow:inset 0 0 0 3px var(--gold)}.tag-new{background:var(--red);color:#fff;letter-spacing:.05em;border-radius:2px;padding:2px 6px;font-size:11px;font-weight:700}.tag-lock{background:var(--gold);color:var(--ink);border-radius:2px;padding:2px 6px;font-size:11px;font-weight:700}.mcount{align-items:center;gap:5px;font-weight:700;display:inline-flex}.dot{border-radius:50%;width:12px;height:12px;display:inline-block}.dot.gold{background:var(--gold)}.dot.silver{background:var(--silver)}.dot.bronze{background:var(--bronze)}.hub{z-index:2;background:linear-gradient(90deg,#1b1838f7 72%,#1b183800);flex-direction:column;gap:8px;width:min(540px,100%);padding:3vh 3vw 3vh 4vw;display:flex;position:relative;overflow-y:auto}.hub .ed-head{border-left:10px solid var(--ed);margin-bottom:4px;padding-left:12px}.ev-list{flex-direction:column;gap:6px;display:flex}.ev{color:var(--cream);text-align:left;background:#f4efe314;border:0;border-radius:3px;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;padding:8px 12px 8px 8px;transition:background .12s,transform .12s;display:grid}.ev:hover,.ev:focus-visible{background:var(--cream);color:var(--ink);outline:none;transform:translate(8px)}.badge{background:var(--ed);border-radius:50%;place-items:center;width:46px;height:46px;font-size:24px;display:grid;box-shadow:inset 0 0 0 3px #ffffff4d}.ev .name{flex-wrap:wrap;align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.ev .rival{opacity:.75;font-size:12px}.ev .best{text-align:right;flex-direction:column;align-items:flex-end;gap:3px;font-size:13px;display:flex}.medal{width:26px;height:26px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:inline-grid;box-shadow:inset 0 0 0 2px #ffffff80}.medal.gold{background:radial-gradient(circle at 35% 30%, #fff1a8, var(--gold))}.medal.silver{background:radial-gradient(circle at 35% 30%, #fff, var(--silver))}.medal.bronze{background:radial-gradient(circle at 35% 30%, #f3c39a, var(--bronze))}.row{flex-wrap:wrap;gap:8px;display:flex}.sheet-wrap{z-index:3;background:linear-gradient(90deg,#1b1838e6 35%,#1b183826);justify-content:flex-start;align-items:center;padding:3vh 4vw;display:flex;position:absolute;inset:0}.sheet-wrap.center{background:#1b1838cc;justify-content:center}.sheet{flex-direction:column;gap:12px;width:min(700px,100%);max-height:94vh;padding:22px 24px;display:flex;overflow-y:auto}.sheet h2{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(28px,4vw,44px);font-style:italic}.kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:.65;font-size:13px;font-weight:700}.sheet table{border-collapse:collapse;width:100%;font-size:15px}.sheet th{text-align:left;letter-spacing:.1em;text-transform:uppercase;opacity:.6;padding:4px 6px;font-size:11px}.sheet td{vertical-align:middle;border-top:1px solid #1b18381a;padding:7px 6px}.sheet td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.sheet tr.me td{background:#fff1c2;font-weight:700}.noc{background:var(--ink);color:var(--cream);border-radius:2px;margin-right:6px;padding:2px 5px;font-size:11px;font-weight:700}.note{border-left:4px solid var(--ed);background:#1b18380f;padding:8px 10px;font-size:13px;line-height:1.35}.controls{margin:0;padding-left:18px;line-height:1.5}.approx{opacity:.6;font-size:11px}.big-result{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.big-result .mark{letter-spacing:-.02em;font-size:52px;font-style:italic;font-weight:700}.big-result .medal{width:58px;height:58px;font-size:22px;animation:.7s cubic-bezier(.2,1.6,.4,1) medalIn}@keyframes medalIn{0%{transform:scale(0)rotateY(180deg)}to{transform:none}}.pill{background:var(--ink);color:var(--cream);border-radius:99px;padding:4px 10px;font-size:13px;display:inline-block}.pill.ok{background:var(--green)}.pill.warn{background:var(--red)}.pill.gold{background:var(--gold);color:var(--ink)}.sheet .actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.sheet .btn{background:var(--ink);color:var(--cream)}.sheet .btn.primary{background:var(--gold);color:var(--ink)}.sheet .btn:hover,.sheet .btn:focus-visible{background:var(--ed);color:#fff}.tabs{flex-wrap:wrap;gap:6px;display:flex}.tabs button{color:var(--ink);background:#1b183814;border:0;border-radius:3px;padding:6px 10px;font-family:inherit;font-size:13px;font-weight:700}.tabs button.on{background:var(--ink);color:var(--cream)}.setting{grid-template-columns:170px 1fr;align-items:center;gap:12px;display:grid}.setting input[type=range]{width:100%;accent-color:var(--ink)}.product{background:var(--ink);color:var(--cream);box-shadow:inset 0 0 0 3px var(--gold);border-radius:4px;grid-template-columns:84px 1fr;align-items:center;gap:16px;padding:16px;display:grid}.product .medal-o{width:80px;height:80px}.product .price{color:var(--gold);font-size:28px;font-weight:700}.code{word-break:break-all;-webkit-user-select:all;user-select:all;background:#1b18380f;border-radius:3px;padding:8px;font-family:ui-monospace,monospace;font-size:12px}.hud{z-index:2;position:absolute;inset:0}.hud .clock{background:var(--ink);color:var(--cream);border-left:8px solid var(--ed);border-radius:2px;max-width:60vw;padding:6px 16px 8px;position:absolute;top:14px;left:14px;box-shadow:0 6px 20px #0000004d}.hud .clock .lbl{letter-spacing:.14em;text-transform:uppercase;opacity:.7;font-size:11px}.hud .clock .val{font-variant-numeric:tabular-nums;font-size:42px;font-style:italic;font-weight:700;line-height:1}.hud .clock .s2{opacity:.85;margin-top:3px;font-size:13px}.hud .meters{flex-direction:column;gap:8px;width:min(300px,44vw);display:flex;position:absolute;top:118px;left:14px}.meter .ml{text-shadow:0 1px 3px #000000e6;margin-bottom:2px;font-size:12px;font-weight:700}.meter .bar{background:#1b1838c7;border-radius:2px;height:14px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #ffffff40}.meter .fill{background:var(--gold);position:absolute;top:0;bottom:0;left:0}.meter .fill.cyan{background:#41d1ff}.meter .fill.red{background:var(--red)}.meter .fill.green{background:#3ee07a}.meter .zone{background:#3ee07a73;position:absolute;top:0;bottom:0;box-shadow:inset 0 0 0 2px #3ee07a}.meter .mk{background:#fff;width:3px;position:absolute;top:0;bottom:0}.meter .needle{background:#fff;border-radius:2px;width:5px;position:absolute;top:0;bottom:0;box-shadow:0 0 6px #fff}.hud .prompt{background:var(--ink);color:var(--cream);white-space:nowrap;text-overflow:ellipsis;border-radius:2px;max-width:94vw;padding:8px 22px;font-size:clamp(22px,4.2vw,44px);font-style:italic;font-weight:700;position:absolute;top:20%;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 10px 30px #00000059}.hud .prompt.go{background:var(--green);color:#fff}.hud .prompt.warn{background:var(--red);color:#fff}.hud .prompt.good{background:var(--gold);color:var(--ink)}.hud .live{background:#1b1838d9;border-radius:2px;width:220px;padding:6px 0;font-size:13px;position:absolute;top:60px;right:14px}.hud .live div{justify-content:space-between;gap:8px;padding:3px 12px;display:flex}.hud .live div.me{background:var(--gold);color:var(--ink);font-weight:700}.hud .live span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hud .seq{bottom:calc(150px + var(--safe-b));flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud .seq .t{background:var(--ink);white-space:nowrap;border-radius:2px;padding:3px 10px;font-size:15px;font-weight:700}.hud .seq .arrows{gap:6px;display:flex}.hud .seq .a{background:var(--cream);width:50px;height:50px;color:var(--ink);border-radius:4px;place-items:center;font-size:26px;font-weight:700;display:grid;box-shadow:0 4px 12px #0000004d}.hud .seq .a.done{color:#fff;background:#3ee07a}.hud .seq .a.cur{background:var(--gold);transform:scale(1.14)}.hud .choices{left:50%;bottom:calc(150px + var(--safe-b));flex-direction:column;align-items:stretch;gap:6px;min-width:300px;display:flex;position:absolute;transform:translate(-50%)}.hud .choices .t{text-align:center;background:var(--ink);padding:6px;font-weight:700}.hud .choices .c{color:var(--ink);background:#f4efe3eb;border-radius:2px;padding:10px 14px;font-weight:700}.hud .choices .c.on{background:var(--gold);transform:scale(1.04)}.hud .rhythm{right:calc(24px + var(--safe-r,0px));bottom:calc(130px + var(--safe-b));background:#1b183899;border-radius:4px;width:280px;height:52vh;position:absolute;overflow:hidden}.hud .rhythm .lane{border-right:1px solid #ffffff14;width:25%;position:absolute;top:0;bottom:0}.hud .rhythm .lane b{text-align:center;opacity:.5;font-size:18px;position:absolute;bottom:4px;left:0;right:0}.hud .rhythm .hit{background:var(--gold);height:4px;box-shadow:0 0 12px var(--gold);position:absolute;bottom:34px;left:0;right:0}.hud .rhythm .n{width:22%;height:32px;color:var(--ink);border-radius:6px;place-items:center;margin-left:1.5%;font-size:20px;font-weight:700;display:grid;position:absolute;transform:translateY(-50%)}.hud .rhythm .n.l0{background:#ff4fd8}.hud .rhythm .n.l1{background:#41e1ff}.hud .rhythm .n.l2{background:#ffe14d}.hud .rhythm .n.l3{background:#6dff8a}.hud .rhythm .n.f{background:var(--gold);width:80%;margin-left:10%;font-size:14px}.hud .rhythm .n.miss{opacity:.3}.hud .rhythm .flash{text-align:center;color:var(--gold);text-shadow:0 2px 6px #000;font-size:26px;font-style:italic;font-weight:700;position:absolute;top:12px;left:0;right:0}.hud .pausebtn{pointer-events:auto;color:var(--cream);background:#1b1838d9;border:0;border-radius:3px;padding:9px 14px;font-weight:700;position:absolute;top:14px;right:14px}.hud .keys{bottom:calc(12px + var(--safe-b));white-space:nowrap;background:#1b1838bf;border-radius:3px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.touch-on .hud .keys{display:none}.touch{left:0;right:0;bottom:calc(10px + var(--safe-b));z-index:4;justify-content:space-between;align-items:flex-end;padding:0 12px;display:flex;position:absolute}.touch .grp{pointer-events:auto;grid-template-rows:repeat(2,66px);grid-template-columns:repeat(3,66px);gap:8px;display:grid}.touch .grp.wide{grid-template-rows:84px;grid-template-columns:repeat(2,84px)}.touch button{width:100%;height:100%;color:var(--ink);touch-action:none;background:#f4efe3d9;border:0;border-radius:50%;font-size:28px;font-weight:700;box-shadow:0 6px 16px #00000059}.touch button.act{background:var(--gold);pointer-events:auto;width:104px;height:104px;font-size:17px}.touch button.down{background:#fff;transform:scale(.92)}.boot{background:var(--ink);z-index:10;place-items:center;display:grid;position:absolute;inset:0}.boot .inner{flex-direction:column;gap:16px;width:min(420px,80vw);display:flex}.boot .logo{font-size:64px}.boot .track{background:#ffffff1f;border-radius:4px;height:8px;overflow:hidden}.boot .track i{background:var(--gold);width:0;height:100%;transition:width .2s;display:block}.toast{bottom:calc(24px + var(--safe-b));background:var(--ink);color:var(--cream);border-left:6px solid var(--gold);z-index:20;border-radius:3px;max-width:90vw;padding:12px 18px;font-size:15px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0006}.fatal{text-align:center;place-items:center;padding:20px;display:grid;position:absolute;inset:0}@media (max-width:720px){.hud .live{width:150px;font-size:11px;top:56px}.hud .clock .val{font-size:30px}.hud .meters{width:52vw;top:96px}.setting{grid-template-columns:1fr;gap:4px}.hub,.band{width:100%}.band.ed{display:none}.sheet-wrap{padding:8px}.sheet{padding:16px}}@media (max-height:520px){.hud .rhythm{height:44vh}.hud .seq,.hud .choices{bottom:calc(100px + var(--safe-b))}.touch .grp{grid-template-rows:repeat(2,54px);grid-template-columns:repeat(3,54px)}.touch button.act{width:86px;height:86px}}.setting.diff{margin-top:4px}.diff-hint{opacity:.75;margin:-2px 0 6px;font-size:12px}.hub .setting.diff,.hub .diff-hint{color:var(--cream)}.hub .setting.diff .tabs button{color:var(--cream);background:#fffaf024}.hub .setting.diff .tabs button.on{background:var(--gold,#f5b700);color:var(--ink)}.intro .goal{background:var(--ink);color:var(--cream);border-left:6px solid var(--gold);padding:10px 12px;font-size:15px;line-height:1.4}.intro .goal b{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:2px;font-size:11px;display:block}.intro .howto>b{font-size:15px}.intro .steps{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.intro .steps li{align-items:flex-start;gap:10px;font-size:14px;line-height:1.4;display:flex}.intro .steps .n{background:var(--ed,var(--ink));color:#fff;border-radius:50%;flex:0 0 26px;place-items:center;height:26px;font-size:14px;font-weight:700;display:grid}.intro .steps .caps{flex-wrap:wrap;gap:4px;margin-bottom:3px;display:flex}.intro .steps .caps .kbd{padding:3px 8px;font-size:13px}.intro .tips{opacity:.85;margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.4}.intro .easy{border-left:4px solid var(--green);background:#00a6511f;margin-top:8px;padding:7px 10px;font-size:13px}.intro details.rivals summary{cursor:pointer;padding:4px 0;font-weight:700}.intro details.rivals[open] summary{margin-bottom:6px}.practice-note{border-left:4px solid var(--gold);background:#fcb1312e;padding:7px 10px;font-size:13px;line-height:1.35}.hud .practice-badge{background:var(--gold);color:var(--ink);letter-spacing:.08em;white-space:nowrap;border-radius:3px;padding:5px 12px;font-size:12px;font-weight:700;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0000004d}.fs-toggle{z-index:20;width:40px;height:38px;color:var(--cream,#f4efe3);cursor:pointer;background:#1b1838d9;border:0;border-radius:3px;place-items:center;padding:0;display:grid;position:fixed;top:14px;right:72px}.fs-toggle:hover{background:#1b1838}.fs-toggle:focus-visible{outline:3px solid var(--gold,#fcb131);outline-offset:2px}@media (max-width:640px){.hud .practice-badge{top:auto;bottom:calc(60px + var(--safe-b,0px));font-size:11px}.fs-toggle{top:12px;right:64px}}
