:root{--ink: #1b1410;--ink2: #2b211a;--paper: #f6ecd8;--red: #b3261e;--red2: #d8452e;--gold: #e9b44c;--sage: #6f8f5a;--sky: #2d6fb0;--line: rgba(246, 236, 216, .22)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--ink);color:var(--paper);font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif;user-select:none;-webkit-user-select:none;touch-action:none;overscroll-behavior:none}#c{position:fixed;inset:0;width:100%;height:100%;display:block}#ui{position:fixed;inset:0;pointer-events:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.fatal{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:24px;background:var(--ink)}.menu{position:absolute;inset:0;display:none;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:linear-gradient(180deg,#1b141080,#1b1410c7);pointer-events:auto;overflow:auto}.menu.on{display:flex}.menu.s-pause,.menu.s-psettings,.menu.s-tilt{background:#1b1410a8}.menu.s-loading{background:var(--ink)}.title{display:grid;gap:clamp(14px,4vh,36px);justify-items:center;width:min(560px,100%)}.logo{display:grid;justify-items:center;text-align:center;line-height:.95;text-shadow:0 4px 0 rgba(0,0,0,.35)}.logo .l1{font-size:clamp(18px,3.6vw,30px);letter-spacing:.5em;color:var(--gold);font-weight:800;margin-right:-.5em}.logo .l2{font-family:Georgia,Times New Roman,serif;font-weight:900;font-size:clamp(38px,9vw,92px);letter-spacing:.01em;color:var(--paper)}.logo .l2 i{color:var(--red2);font-style:italic}.logo .l3{margin-top:12px;font-size:clamp(11px,1.6vw,15px);letter-spacing:.14em;text-transform:uppercase;opacity:.85;text-shadow:none}.col{display:grid;gap:10px;width:min(340px,100%)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row.end{justify-content:flex-end;margin-top:14px}.btn{border:2px solid var(--line);background:#2b211adb;border-radius:12px;padding:12px 18px;font-weight:800;letter-spacing:.04em;min-height:46px;transition:transform .08s,background .12s,border-color .12s}.btn.big{background:var(--red);border-color:#e2715f;font-size:1.12em;padding:14px 22px}.btn.big.on{background:var(--sage);border-color:#a9c690}.btn.ghost{background:transparent}.btn:hover,.btn:focus-visible,.card:hover,.card:focus-visible,.chip:hover,.chip:focus-visible{border-color:var(--gold);outline:none;transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn[disabled],.card[disabled],.chip[disabled]{opacity:.5;cursor:default;transform:none}.panel{width:min(680px,100%);max-height:100%;overflow:auto;background:#1b1410ed;border:2px solid var(--line);border-radius:18px;padding:clamp(14px,2.6vw,26px);box-shadow:0 20px 60px #00000080}.panel.wide{width:min(900px,100%)}.panel.narrow{width:min(380px,100%)}.panel h2{margin:0 0 14px;font-family:Georgia,serif;font-size:clamp(22px,3.4vw,34px);color:var(--gold)}.panel h3{margin:14px 0 8px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;opacity:.75}.panel h3 small{text-transform:none;letter-spacing:0}.tracks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:12px}.tracks.small{grid-template-columns:1fr}.card{text-align:left;display:grid;gap:4px;border:2px solid var(--line);border-radius:14px;padding:12px 14px;background:#2b211acc;transition:transform .08s,border-color .12s}.card.sel{border-color:var(--gold);background:#e9b44c29}.card b{font-size:1.1em}.card span{opacity:.85;font-size:.9em}.card em{font-style:normal;font-size:.8em;opacity:.75;display:flex;gap:10px;flex-wrap:wrap}.chip{border:2px solid var(--line);border-radius:999px;padding:8px 18px;background:#2b211acc;font-weight:700;min-height:40px}.chip.sel{border-color:var(--gold);background:#e9b44c33}.stat{display:inline-flex;align-items:center;gap:5px}.stat i{display:inline-block;width:46px;height:6px;border-radius:3px;background:#f6ecd82e;overflow:hidden}.stat u{display:block;height:100%;background:var(--gold)}.swatches .sw{width:38px;height:38px;border-radius:50%;border:3px solid rgba(0,0,0,.35)}.swatches .sw.sel{border-color:var(--paper);box-shadow:0 0 0 3px var(--gold)}.field{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:12px;margin:10px 0;font-weight:700}.field.check{grid-template-columns:auto 1fr;justify-content:start;font-weight:400}.field input[type=text],.field select{background:var(--ink2);border:2px solid var(--line);border-radius:10px;padding:10px 12px;min-height:44px;user-select:text;-webkit-user-select:text;width:100%}.field input[type=range]{width:100%;accent-color:var(--gold);min-height:30px}.field input[type=checkbox]{width:22px;height:22px;accent-color:var(--gold)}.note{opacity:.8;font-size:.9em;margin:6px 0}.note.big{font-size:1em;opacity:1;margin-top:14px}.help{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;font-size:.93em;line-height:1.5}.help ul{margin:0;padding-left:18px}.help ul.items{list-style:none;padding:0;display:grid;gap:4px}.help ul.items li{display:grid;grid-template-columns:28px auto 1fr;gap:8px;align-items:center}.help svg{width:28px;height:28px}kbd{display:inline-block;border:1px solid var(--line);border-bottom-width:3px;border-radius:6px;padding:0 6px;margin:0 2px;font-size:.85em;background:var(--ink2)}.rooms{display:grid;gap:10px;max-height:46vh;overflow:auto}.roomgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.plist{list-style:none;margin:0;padding:0;display:grid;gap:6px}.plist li{display:grid;grid-template-columns:16px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:#2b211acc;border:1px solid var(--line)}.plist li i{width:14px;height:14px;border-radius:50%;background:#666}.plist li span{font-size:.78em;letter-spacing:.08em;opacity:.7}.plist li.rdy{border-color:var(--sage)}.plist li.rdy span{color:#b9e39a;opacity:1}.plist li.ai,.plist li.off{opacity:.5}.plist small{opacity:.6}.scores ol,.res{margin:0;padding:0;list-style:none;display:grid;gap:4px}.scores li{font-size:.9em;opacity:.9}.scores li b{display:inline-block;min-width:70px;color:var(--gold)}.res li{display:grid;grid-template-columns:48px 1fr auto 130px;gap:10px;align-items:baseline;padding:7px 12px;border-radius:10px;background:#2b211ab3}.res li.me{background:#b3261e8c;outline:2px solid var(--gold)}.res li.hum span:after{content:" ●";color:var(--gold);font-size:.7em}.res li b{color:var(--gold)}.res li em{font-style:normal;font-variant-numeric:tabular-nums;font-weight:700}.res li small{opacity:.7;text-align:right;font-variant-numeric:tabular-nums}.record{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:var(--gold);color:var(--ink);font-weight:900;text-align:center}.loading{display:grid;gap:16px;justify-items:center;text-align:center;width:min(520px,100%)}.l-name{font-family:Georgia,serif;font-weight:900;font-size:clamp(30px,6vw,56px);color:var(--gold)}.l-bar{width:100%;height:8px;border-radius:4px;background:var(--ink2);overflow:hidden}.l-bar i{display:block;width:40%;height:100%;background:var(--red2);border-radius:4px;animation:slide 1.1s linear infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}.l-tip{opacity:.85;line-height:1.5}.toast{position:absolute;left:50%;bottom:9%;transform:translate(-50%,20px);background:var(--ink);border:2px solid var(--gold);border-radius:12px;padding:10px 16px;opacity:0;transition:opacity .2s,transform .2s;max-width:86%;text-align:center}.toast.on{opacity:1;transform:translate(-50%)}.fps{position:absolute;left:8px;bottom:6px;font:11px/1.2 ui-monospace,Menlo,monospace;opacity:.75;text-shadow:0 1px 2px #000}.rotate{display:none;position:absolute;inset:0;background:var(--ink);place-content:center;text-align:center;font-size:20px;font-weight:800;padding:30px;pointer-events:auto;z-index:50}@media(orientation:portrait)and (pointer:coarse)and (max-width:700px){.rotate{display:grid}}.hud{position:absolute;inset:0;font-weight:900;text-shadow:0 2px 0 rgba(0,0,0,.55),0 0 8px rgba(0,0,0,.35)}.h-top{position:absolute;top:max(10px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-start}.h-pos{font-family:Georgia,serif;line-height:.8;color:var(--gold)}.h-posn{font-size:clamp(54px,11vh,104px);font-style:italic}.h-poss{font-size:clamp(20px,4vh,36px);margin-left:2px}.h-mid{text-align:center}.h-lap{font-size:clamp(16px,3.4vh,26px);letter-spacing:.08em}.h-time{font-size:clamp(13px,2.6vh,19px);font-variant-numeric:tabular-nums;opacity:.92}.h-item{width:clamp(74px,15vh,112px);display:grid;justify-items:center;gap:2px}.h-icon{width:100%;aspect-ratio:1;border-radius:18px;border:3px solid rgba(246,236,216,.5);background:#1b14108c;display:grid;place-items:center}.h-item.has .h-icon{border-color:var(--gold);background:#1b1410c7}.h-item.spin .h-icon{border-style:dashed}.h-icon svg{width:76%;height:76%}.h-iname{font-size:clamp(10px,2vh,14px);letter-spacing:.04em;text-align:center;min-height:1.2em}.h-mini{position:absolute;left:max(10px,env(safe-area-inset-left));top:clamp(92px,21vh,150px);width:clamp(96px,21vh,168px);height:auto;opacity:.92}.h-speed{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));display:grid;justify-items:end;gap:4px}.h-kmh{font-size:clamp(22px,5vh,40px);font-style:italic;font-variant-numeric:tabular-nums}.h-kmh:after{content:" km/h";font-size:.4em;opacity:.8;font-style:normal}.h-bar{width:clamp(120px,24vw,230px);height:12px;border-radius:6px;background:#1b141099;border:2px solid rgba(246,236,216,.45);overflow:hidden}.h-bar i{display:block;height:100%;width:0;background:var(--paper)}.h-bar i.b{background:#ff8a2a}.h-bar i.t1{background:#6fd0ff}.h-bar i.t2{background:#ffa030}.h-bar i.t3{background:#ff4ad0}.h-call{position:absolute;left:50%;top:24%;transform:translate(-50%) scale(.9);font-family:Georgia,serif;font-style:italic;font-size:clamp(22px,5.4vh,46px);white-space:nowrap;opacity:0;transition:opacity .18s,transform .18s}.h-call.on{opacity:1;transform:translate(-50%) scale(1)}.h-call.good{color:#ffe08a}.h-call.bad{color:#ff8f7c}.h-call.item{color:#bfe6ff;font-size:clamp(18px,4vh,32px)}.h-call.big{font-size:clamp(30px,8vh,70px);color:var(--paper)}.h-count{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) scale(.6);font-family:Georgia,serif;font-size:clamp(90px,26vh,220px);opacity:0}.h-count.on{opacity:1;transform:translate(-50%,-50%) scale(1);transition:transform .35s cubic-bezier(.2,1.6,.4,1)}.h-count.n3{color:#ff8f7c}.h-count.n2{color:var(--gold)}.h-count.n1{color:#ffe9a8}.h-count.go{color:#b9f09a}.h-wrong{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);background:var(--red);border:4px solid var(--paper);border-radius:14px;padding:8px 26px;font-size:clamp(24px,6vh,50px);letter-spacing:.06em;display:none;animation:blink .5s steps(2) infinite}.h-wrong.on{display:block}@keyframes blink{50%{opacity:.45}}.h-warn{position:absolute;left:50%;top:14%;transform:translate(-50%);padding:5px 16px;border-radius:999px;background:#1b1410b3;border:2px solid var(--gold);font-size:clamp(12px,2.6vh,19px);display:none;white-space:nowrap}.h-warn.on{display:block}.h-warn.me{background:var(--red);border-color:var(--paper);animation:blink .35s steps(2) infinite;font-size:clamp(16px,3.6vh,28px)}.h-zone{position:absolute;left:50%;bottom:12%;transform:translate(-50%);font-family:Georgia,serif;font-size:clamp(18px,4.4vh,34px);letter-spacing:.2em;text-transform:uppercase;opacity:0;transition:opacity .5s;white-space:nowrap}.h-zone.on{opacity:.95}.h-net{position:absolute;left:50%;top:62%;transform:translate(-50%);background:#1b1410d9;border:2px solid var(--red2);border-radius:10px;padding:6px 14px;display:none;font-weight:700}.h-net.on{display:block}.h-pause{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%) translateY(clamp(46px,9vh,70px));pointer-events:auto;width:40px;height:40px;border-radius:50%;border:2px solid rgba(246,236,216,.5);background:#1b141080;font-weight:900;opacity:.7}.h-tag{position:absolute;left:0;top:0;font-size:12px;padding:1px 7px;border-radius:999px;background:#1b141099;white-space:nowrap;font-weight:700;text-shadow:none;display:none;will-change:transform}.h-tag.hum{background:#b3261ecc}.touch{position:absolute;inset:0;pointer-events:none}.touch .tb{position:absolute;pointer-events:auto;border-radius:50%;border:3px solid rgba(246,236,216,.55);background:#1b14106b;font-weight:900;letter-spacing:.04em;touch-action:none}.touch .tb.on{background:#e9b44c99;border-color:var(--paper)}.tb-drift{right:max(18px,env(safe-area-inset-right));bottom:clamp(70px,20vh,120px);width:clamp(86px,24vh,132px);height:clamp(86px,24vh,132px);font-size:clamp(14px,3.4vh,20px)}.tb-item{right:calc(max(18px,env(safe-area-inset-right)) + clamp(94px,26vh,144px));bottom:clamp(96px,28vh,170px);width:clamp(66px,18vh,100px);height:clamp(66px,18vh,100px);font-size:clamp(12px,2.8vh,16px)}.tb-brake{right:calc(max(18px,env(safe-area-inset-right)) + clamp(80px,22vh,122px));bottom:clamp(14px,4vh,28px);width:clamp(60px,16vh,90px);height:clamp(60px,16vh,90px);font-size:clamp(11px,2.5vh,14px)}.tb-reset,.tb-back{top:clamp(100px,27vh,170px);width:clamp(48px,12vh,64px);height:clamp(48px,12vh,64px);font-size:10px;opacity:.8}.tb-reset{right:max(14px,env(safe-area-inset-right))}.tb-back{right:calc(max(14px,env(safe-area-inset-right)) + clamp(56px,14vh,74px))}.tpad{display:none;position:absolute;left:max(18px,env(safe-area-inset-left));bottom:clamp(18px,6vh,40px);width:clamp(170px,42vh,250px);height:clamp(90px,24vh,130px);border-radius:999px;border:3px solid rgba(246,236,216,.4);background:#1b141052;pointer-events:auto;touch-action:none}.touch.mode-pad .tpad{display:block}.tpad-knob{position:absolute;left:50%;top:50%;width:38%;aspect-ratio:1;margin:-19% 0 0 -19%;border-radius:50%;background:#f6ecd8bf}.tpad-hint{position:absolute;left:0;right:0;bottom:-22px;text-align:center;font-size:11px;opacity:.7}.dev{position:absolute;right:8px;top:8px;width:290px;max-height:92%;overflow:auto;background:#0f0c0ae6;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:11px/1.3 ui-monospace,Menlo,monospace;pointer-events:auto;z-index:40}.dev h4{margin:6px 0 4px;color:var(--gold)}.dev label{display:grid;grid-template-columns:96px 1fr 46px;gap:6px;align-items:center}.dev input[type=range]{width:100%}.dev pre{margin:4px 0;white-space:pre-wrap}.dev button{background:var(--ink2);border:1px solid var(--line);border-radius:6px;padding:3px 8px;margin:2px 2px 2px 0}@media(pointer:coarse){.h-speed{right:auto;left:50%;transform:translate(-50%);justify-items:center;bottom:max(8px,env(safe-area-inset-bottom))}.h-bar{width:clamp(110px,20vw,180px);height:9px}.h-zone{bottom:22%}}
