@font-face{font-family:Departure Mono;src:url(./DepartureMono-Regular-2BZob_Zz.woff2) format("woff2");font-weight:400;font-style:normal;font-display:block}:root{--font-body: "Departure Mono", ui-monospace, monospace;--font-display: "Departure Mono", ui-monospace, monospace;--font-mono: "Departure Mono", ui-monospace, monospace;--bg: #1e1e2e;--bg-deep: #181825;--bg-raised: #252537;--bg-inset: #15151f;--text: #cdd6f4;--text-dim: #9399b2;--accent: #cba6f7;--accent2: #89dceb;--accent-soft: #45385e;--on-accent: #1e1e2e;--good: #a6e3a1;--warn: #f9e2af;--bad: #f38ba8;--line: #363652;--hint: #58c4ff;--series-lst: #fab387;--series-free: #89b4fa;--series-fourwide: #a6e3a1;--series-allspin: #cba6f7;--series-quick: #f9e2af;--series-versus: #94e2d5;--field-bg: #11111b;--field-grid: #22222f;--shadow-sm: 2px 2px 0 rgba(0, 0, 0, .3), 4px 4px 0 rgba(0, 0, 0, .16);--shadow: 3px 3px 0 rgba(0, 0, 0, .26), 6px 6px 0 rgba(0, 0, 0, .18), 9px 9px 0 rgba(0, 0, 0, .1);--shadow-lg: 4px 4px 0 rgba(0, 0, 0, .3), 8px 8px 0 rgba(0, 0, 0, .2), 12px 12px 0 rgba(0, 0, 0, .13), 16px 16px 0 rgba(0, 0, 0, .07);--radius: 7px;--radius-sm: 5px}*{box-sizing:border-box;outline:none}html *{corner-shape:bevel;--corner-shape: bevel}@supports (-moz-appearance: none){:not(.card,.panel,.sc,.field-panel,.reason-toast,.paths-dock,.paths-modal,.chart-tooltip,.zenith-overlay,.death-warn){corner-shape:round;--corner-shape: round}}html,body{margin:0;height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;-webkit-text-stroke:.42px currentColor;-webkit-font-smoothing:antialiased;user-select:none;cursor:default}input,textarea,select{user-select:auto}button,input,textarea,select{font-family:inherit}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;--grid-line: color-mix(in srgb, var(--line) 38%, var(--bg));background-color:var(--bg);background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:34px 34px}body.has-bg:before{display:none}.bg-root{position:fixed;inset:0;z-index:-2;pointer-events:none}.bg-img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.4s ease}.bg-img.show{opacity:1}.bg-dim{position:absolute;inset:0;background:var(--bg);transition:opacity .3s}h1,h2,h3{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.06em}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-dim) 32%,transparent);border-radius:5px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-dim) 55%,transparent);background-clip:padding-box;border:2px solid transparent}#app{display:flex;height:100vh}.sidebar{width:248px;padding:20px 12px 14px;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--line);background:var(--bg-deep);backdrop-filter:none;flex-shrink:0}.sidebar .brand{padding:10px 14px 24px;display:flex;flex-direction:column;gap:3px}.brand .logo{font-family:var(--font-mono);font-size:21px;font-weight:700;letter-spacing:.01em;color:var(--text)}.brand .logo em{font-style:normal;color:var(--accent)}.brand .tagline{font-family:var(--font-display);font-size:11px;font-weight:800;font-style:italic;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim)}.nav-btn{position:relative;display:flex;align-items:center;gap:12px;padding:9px 24px;margin:0 -12px;border:none;border-radius:0;background:transparent;color:var(--text-dim);font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-display);cursor:pointer;text-align:left;overflow:hidden;transform-origin:left center;transition:background .14s,color .14s,transform .24s cubic-bezier(.34,1.5,.5,1)}.nav-btn:hover{background:color-mix(in srgb,var(--text) 8%,var(--bg-deep));color:var(--text)}.nav-btn:active{transform:none}.nav-btn.active{background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent);color:var(--text)}.nav-btn .ico{width:28px;height:28px;display:grid;place-items:center;flex-shrink:0;color:var(--text-dim);transition:color .14s,transform .16s cubic-bezier(.34,1.56,.64,1)}.nav-btn:hover .ico{color:var(--text);transform:rotate(-15deg) scale(1.1)}.nav-btn.active .ico{color:var(--accent)}.nav-btn.active:hover .ico{transform:rotate(-12deg) scale(1.08)}.nav-btn .ico svg{width:22px;height:22px}@media(prefers-reduced-motion:reduce){.nav-btn .ico,.nav-btn:hover .ico,.nav-btn.active:hover .ico{transform:none}}.nav-btn .txt{display:flex;flex-direction:column;line-height:1.25}.nav-btn .txt small{font-size:10.5px;font-weight:500;letter-spacing:.08em;color:var(--text-dim);opacity:0;max-height:0;transition:opacity .16s,max-height .16s}.nav-btn:hover .txt small,.nav-btn.active .txt small{opacity:.85;max-height:15px}.sidebar .spacer{flex:1}.nav-sec{padding:16px 14px 6px;font-size:10px;font-weight:600;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.26em;color:var(--text-dim);opacity:.65;user-select:none}.sidebar .nav-sec:first-of-type{padding-top:2px}.side-foot{padding:10px 0 1px;border-top:1px solid var(--line);margin-top:8px;display:flex;justify-content:space-between;align-items:center}.foot-btn{border:none;background:transparent;color:var(--text-dim);font-family:inherit;font-size:12px;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;padding:5px 7px;border-radius:var(--radius-sm);transition:color .14s,background .14s;display:flex;align-items:center;gap:8px}.foot-btn svg{width:14px;height:14px;stroke-width:1.75}.foot-btn:hover{color:var(--text);background:color-mix(in srgb,var(--text) 8%,transparent)}.foot-theme{border:1px solid var(--line);background:var(--bg-inset);color:var(--text);font-family:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;padding:5px 7px;border-radius:var(--radius-sm);max-width:130px;transition:color .14s,border-color .14s}.foot-theme:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.cycle-hint{display:flex;align-items:center;gap:5px;color:var(--text-dim);font-size:10px;text-transform:uppercase;letter-spacing:.14em;user-select:none}.cycle-hint kbd{font-family:var(--font-mono);font-size:11px;line-height:1;padding:3px 6px;border-radius:5px;color:var(--text);background:color-mix(in srgb,var(--text) 9%,transparent);border:1px solid var(--line)}#view{flex:1;overflow:auto;display:flex;flex-direction:column}.view-in{animation:view-in .22s cubic-bezier(.2,.9,.3,1)}@keyframes view-in{0%{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:none}}.page{max-width:860px;width:100%;margin:0 auto;padding:32px 28px 60px}.page h1{font-size:24px;margin:0 0 4px}.page .sub{color:var(--text-dim);margin:0 0 26px;font-size:14px}.page a{color:var(--accent2)}.card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:none;padding:20px 22px;margin-bottom:18px}.card h2{font-size:14px;margin:0;color:var(--text-dim);letter-spacing:.12em}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;margin-bottom:14px;user-select:none}.card-head::-webkit-details-marker{display:none}.card-head:hover h2{color:var(--text)}.card-head .chevron{font-size:20px;line-height:1;color:var(--text-dim);transform:rotate(90deg);transition:transform .18s ease,color .14s}details.card:not([open]) .card-head{margin-bottom:0}details.card:not([open]) .card-head .chevron{transform:rotate(0)}.card-head:hover .chevron{color:var(--accent)}.set-row{display:flex;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}.set-row:last-child{border-bottom:none}.set-row label.name{flex:1;font-size:14px}.set-row--stack{flex-direction:column;align-items:stretch;gap:8px}.set-row--stack>label.name{flex:none}.theme-colors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px}.theme-color{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text-dim);cursor:pointer;min-width:0}.theme-color input[type=color]{width:32px;height:22px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:none;cursor:pointer;flex-shrink:0}.theme-color input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.theme-color input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.theme-reset{align-self:flex-start}.set-row .hint{color:var(--text-dim);font-size:12px;display:block;margin-top:2px}.set-row input[type=range]{width:180px;height:16px;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}.set-row input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--fill, 50%),var(--bg-inset) var(--fill, 50%));border:1px solid var(--line)}.set-row input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--bg-inset);border:1px solid var(--line)}.set-row input[type=range]::-moz-range-progress{height:4px;border-radius:2px;background:var(--accent)}.set-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-6px;border:none;border-radius:50%;background:var(--accent);transition:transform .14s,box-shadow .14s}.set-row input[type=range]::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:var(--accent);transition:transform .14s,box-shadow .14s}.set-row input[type=range]:hover::-webkit-slider-thumb,.set-row input[type=range]:focus-visible::-webkit-slider-thumb{transform:scale(1.15);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent)}.set-row input[type=range]:hover::-moz-range-thumb,.set-row input[type=range]:focus-visible::-moz-range-thumb{transform:scale(1.15);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent)}.set-row input[type=range]:focus-visible{outline:none}.set-row input[type=number]{width:70px;padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text);font-family:inherit;appearance:textfield;-moz-appearance:textfield}.set-row input[type=number]::-webkit-outer-spin-button,.set-row input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.set-row select{padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text);font-family:inherit}.keybind-btn{min-width:110px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text);font-family:var(--font-mono);font-size:12px;cursor:pointer;transition:border-color .14s,color .14s}.keybind-btn:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.keybind-btn.listening{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-inset));animation:listening-pulse 1s ease-in-out infinite}@keyframes listening-pulse{0%,to{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}50%{border-color:var(--accent)}}.toggle{appearance:none;width:40px;height:22px;border-radius:var(--radius);background:var(--bg-inset);border:1px solid var(--line);position:relative;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;clip-path:polygon(4px 0,12px 0,16px 4px,16px 12px,12px 16px,4px 16px,0 12px,0 4px);background:var(--text-dim);transition:transform .18s cubic-bezier(.3,1.4,.6,1),background .15s}.toggle:checked{background:var(--accent);border-color:var(--accent)}.toggle:checked:after{transform:translate(18px);background:var(--on-accent)}.game-wrap{flex:1;display:flex;align-items:safe center;justify-content:safe center;gap:22px;padding:56px 24px 24px;min-height:0}.fps-counter{position:fixed;top:10px;right:12px;z-index:9999;display:none;padding:3px 8px;font-family:var(--font-display);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--good);background:color-mix(in srgb,var(--bg-deep) 80%,transparent);border:1px solid var(--line);border-radius:var(--radius-sm);pointer-events:none;backdrop-filter:blur(3px)}.fps-counter.show{display:block}.browser-notice{position:fixed;top:44px;right:12px;z-index:9998;display:flex;gap:8px;align-items:flex-start;width:min(300px,calc(100vw - 24px));padding:10px 10px 10px 12px;border:1px solid var(--warn);border-left-width:3px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--bg-raised) 92%,var(--warn));box-shadow:var(--shadow-sm);backdrop-filter:blur(3px);opacity:0;transform:translate(calc(100% + 12px));transition:opacity .2s,transform .2s}.browser-notice.show{opacity:1;transform:translate(0)}.browser-notice .bn-text{margin:0;font-size:12px;line-height:1.4;color:var(--text)}.browser-notice .bn-close{flex:none;padding:0;width:18px;height:18px;font-family:var(--font-display);font-size:15px;line-height:1;color:var(--text-dim);background:none;border:0;cursor:pointer}.browser-notice .bn-close:hover{color:var(--text)}@media(prefers-reduced-motion:reduce){.browser-notice{transition:none;transform:none}}.game-wrap.has-scene{position:relative}.scene-bg{position:absolute;inset:0;z-index:0;pointer-events:none}.game-wrap.has-scene>*:not(.scene-bg){position:relative;z-index:1}.side-col{display:flex;flex-direction:column;gap:12px;width:120px}.side-col .panel{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:none;padding:10px}.side-col .panel .label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--text-dim);margin-bottom:6px}.side-col canvas{display:block;margin:0 auto}.field-panel{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:none;padding:12px;position:relative}.field-panel:after{content:"";position:absolute;top:0;left:calc(var(--radius) - 1px);right:calc(var(--radius) - 1px);height:1px;background:color-mix(in srgb,#fff 12%,transparent);pointer-events:none}.field-panel canvas{display:block;border-radius:var(--radius-sm)}.field-well{position:relative;flex-shrink:0}.field-well canvas{position:absolute;bottom:0;left:0}.field-row{display:flex;align-items:stretch;gap:5px}.board-strip{width:16px;position:relative;flex-shrink:0}.gmeter{position:absolute;inset:0 7px 0 0;display:flex;flex-direction:column;justify-content:flex-end;border-radius:5px;overflow:hidden;background:color-mix(in srgb,var(--bg-raised) 82%,black)}.gm-active,.gm-queued{width:100%;transition:height .15s ease;height:0}.gm-active{background:var(--bad)}.gm-queued{background:var(--bad);opacity:.4;animation:gm-pulse .9s ease-in-out infinite}@keyframes gm-pulse{0%,to{opacity:.35}50%{opacity:.6}}.garbage-bolt{position:fixed;z-index:60;width:54px;margin-left:-27px;margin-top:-3px;border-radius:999px;pointer-events:none;opacity:1;transform-origin:50% 50%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--bad) 55%,transparent) 45%,var(--bad) 80%,#fff);box-shadow:0 0 14px 2px color-mix(in srgb,var(--bad) 70%,transparent);transition:transform .24s cubic-bezier(.32,.9,.38,1),opacity .24s ease-out;will-change:transform,opacity}@media(prefers-reduced-motion:reduce){.garbage-bolt{display:none}}.action-layer{position:absolute;inset:12px;pointer-events:none;overflow:hidden;z-index:7}.action-text{position:absolute;left:0;right:0;top:34%;text-align:center;transform:translate(var(--at-x, 0)) rotate(var(--at-r, 0deg));animation:at-pop .95s cubic-bezier(.2,.8,.3,1) forwards}.action-text.at-low{top:64%}.action-text .at-main{font-family:var(--font-display);font-size:32px;font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:.03em;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.55)}.action-text .at-sub{margin-top:2px;font-family:var(--font-display);font-size:14px;font-weight:800;font-style:italic;letter-spacing:.14em;color:var(--warn);text-shadow:0 1px 3px rgba(0,0,0,.6)}@keyframes at-pop{0%{opacity:0;transform:translate(var(--at-x, 0)) rotate(var(--at-r, 0deg)) translateY(14px) scale(.55)}12%{opacity:1;transform:translate(var(--at-x, 0)) rotate(var(--at-r, 0deg)) translateY(0) scale(1.08)}22%{transform:translate(var(--at-x, 0)) rotate(var(--at-r, 0deg)) scale(1)}70%{opacity:1}to{opacity:0;transform:translate(var(--at-x, 0)) rotate(var(--at-r, 0deg)) translateY(-34px) scale(.98)}}.sent-pop{position:absolute;left:0;right:0;top:44%;text-align:center;font-family:var(--font-display);font-size:40px;font-weight:900;font-style:italic;color:var(--warn);text-shadow:0 0 12px color-mix(in srgb,var(--warn) 70%,transparent),0 3px 6px rgba(0,0,0,.6);animation:sent-pop var(--sp-dur, .6s) cubic-bezier(.2,.8,.3,1) forwards}@keyframes sent-pop{0%{opacity:0;transform:scale(calc(var(--sp-scale, 1) * .4)) translate(0)}16%{opacity:1;transform:scale(var(--sp-scale, 1)) translate(calc(var(--sp-shake, 4px) * -1))}26%{transform:scale(var(--sp-scale, 1)) translate(var(--sp-shake, 4px))}36%{transform:scale(var(--sp-scale, 1)) translate(calc(var(--sp-shake, 4px) * -.6))}46%{transform:scale(var(--sp-scale, 1)) translate(calc(var(--sp-shake, 4px) * .4))}60%{transform:scale(var(--sp-scale, 1)) translate(0)}to{opacity:0;transform:scale(calc(var(--sp-scale, 1) * 1.02)) translateY(-30px)}}@media(prefers-reduced-motion:reduce){.sent-pop{animation:none;opacity:1}}.screen-fx-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:6}.heat-flash{position:absolute;inset:0;opacity:0;animation:heat-flash var(--hf-dur, .4s) ease-out forwards;background:linear-gradient(to top,color-mix(in srgb,var(--hf-col, #fff) 45%,transparent),transparent 34%)}.heat-flash.hf-2{background:linear-gradient(to top,color-mix(in srgb,var(--hf-col, #fff) 50%,transparent),transparent 44%)}.heat-flash.hf-3{background:radial-gradient(120% 70% at 50% 100%,color-mix(in srgb,var(--hf-col, #fff) 55%,transparent),transparent 58%)}.heat-flash.hf-4{background:radial-gradient(130% 85% at 50% 100%,color-mix(in srgb,var(--hf-col, #fff) 60%,transparent),transparent 66%)}@keyframes heat-flash{0%{opacity:0}18%{opacity:var(--hf-a, .1)}to{opacity:0}}.combo-badge{position:absolute;left:0;right:0;top:18%;display:flex;flex-direction:column;align-items:center;gap:1px;font-family:var(--font-display);font-style:italic;font-weight:900;color:#fff;transform-origin:50% 50%;animation:combo-badge .66s cubic-bezier(.2,.8,.3,1) forwards}.combo-badge .cb-label{font-size:10px;letter-spacing:.2em;color:color-mix(in srgb,var(--cb-col, #fff) 45%,var(--text-dim, #8b93ab));text-shadow:0 1px 3px rgba(0,0,0,.7)}.combo-badge .cb-x{font-size:22px;line-height:1;color:color-mix(in srgb,var(--cb-col, #fff) 80%,#fff);text-shadow:0 2px 4px rgba(0,0,0,.65)}@keyframes combo-badge{0%{opacity:0;transform:scale(calc(var(--cb-scale, 1) * .75)) rotate(0)}16%{opacity:.95;transform:scale(calc(var(--cb-scale, 1) * 1.05)) rotate(var(--cb-r, 0deg))}32%{transform:scale(var(--cb-scale, 1)) rotate(var(--cb-r, 0deg))}70%{opacity:.95}to{opacity:0;transform:scale(var(--cb-scale, 1)) rotate(var(--cb-r, 0deg)) translateY(-16px)}}@media(prefers-reduced-motion:reduce){.heat-flash{animation-duration:.25s}.combo-badge{animation:combo-badge-still .5s linear forwards}@keyframes combo-badge-still{0%,70%{opacity:1}to{opacity:0}}}.at-spin .at-main{color:#cba6f7;text-shadow:0 2px 4px rgba(0,0,0,.55)}.at-quad .at-main{color:#89dceb;text-shadow:0 2px 4px rgba(0,0,0,.55)}.at-surge .at-main{color:#fab387;text-shadow:0 2px 4px rgba(0,0,0,.55)}.at-floor .at-main{color:#89dceb;font-size:24px;text-shadow:0 2px 4px rgba(0,0,0,.55)}.at-allclear .at-main{font-size:38px;background:linear-gradient(100deg,#f9e2af,#fdf6dc 45%,#fab387);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.grade-chip{position:absolute;top:-14px;left:50%;transform:translate(-50%);padding:5px 14px;border-radius:999px;font-family:var(--font-display);font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--bg-raised);backdrop-filter:none;border:1px solid var(--line);box-shadow:var(--shadow-sm);white-space:nowrap;opacity:0;transition:opacity .12s;pointer-events:none;z-index:8}.grade-chip.show{opacity:1;animation:chip-pop .22s cubic-bezier(.3,1.5,.6,1)}@keyframes chip-pop{0%{transform:translate(-50%) scale(.7)}to{transform:translate(-50%) scale(1)}}.grade-chip.g-best{color:var(--good);border-color:var(--good)}.grade-chip.g-good{color:var(--good)}.grade-chip.g-inaccuracy{color:var(--warn);border-color:var(--warn)}.grade-chip.g-mistake{color:var(--bad);border-color:var(--bad)}.grade-chip.g-killer{color:var(--on-accent);background:var(--bad);border-color:var(--bad)}.reason-toast{position:absolute;bottom:-8px;left:50%;transform:translate(-50%,100%);padding:8px 14px;border-radius:var(--radius-sm);font-size:13px;background:var(--bg-raised);backdrop-filter:none;border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--text);max-width:380px;text-align:center;opacity:0;transition:opacity .15s,transform .15s;pointer-events:none;z-index:8}.reason-toast.show{opacity:1;transform:translate(-50%,calc(100% + 4px))}.sess-grid .sc .v,.zenith-hud .meta b,.zenith-hud .m-sent b,.zenith-hud .m-taken b{-webkit-text-stroke-width:0}.sess-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;margin-top:4px}.sess-grid .sc{min-width:0;display:flex;flex-direction:column;gap:0}.sess-grid .sc .k{font-family:var(--font-display);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sess-grid .sc .v{font-size:13px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sess-grid .sc .v.good{color:var(--good)}.sess-grid .sc .v.warn{color:var(--warn)}.sess-grid .sc .v.bad{color:var(--bad)}.sess-grid .sc .v.accent{color:var(--accent)}.sess-grid .sc.wide{grid-column:1 / -1;flex-direction:row;align-items:baseline;justify-content:space-between;margin-top:3px;padding-top:7px;border-top:1px solid var(--line)}.sess-grid .sc.wide .v{font-size:12.5px}.sess-grid .sc.rank-ok .v{color:var(--good)}.sess-grid .sc.rank-no .v{color:var(--warn)}.drill-controls{display:flex;flex-direction:column;gap:8px;margin-top:12px}.drill-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.drill-set{display:flex;flex-direction:column;gap:4px}.drill-set+.drill-set{margin-top:-2px}.drill-set-label{font-size:9.5px;text-transform:uppercase;letter-spacing:.18em;color:var(--text-dim)}.btn{padding:8px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text);font-family:var(--font-display);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;cursor:pointer;transition:background .13s,border-color .13s,transform .08s,box-shadow .13s}.btn.stack{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px}.btn.wide{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;text-align:left}.btn .kbd{flex:none;background:color-mix(in srgb,var(--text) 9%,transparent)}.btn.stack .kbd{font-size:10px;padding:1px 5px}.btn:hover{background:color-mix(in srgb,var(--accent) 18%,var(--bg-inset));border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.btn:hover .kbd{color:var(--text)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{filter:brightness(1.1)}.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}.btn.danger:hover{background:color-mix(in srgb,var(--bad) 12%,transparent);border-color:var(--bad)}.btn.danger.solid{background:var(--bad);border-color:var(--bad);color:var(--on-accent)}.btn.danger.solid:hover{filter:brightness(1.08)}.stats-reset{display:flex;align-items:center;gap:12px;margin:6px 0 24px}.stats-reset span{font-size:12.5px;color:var(--text-dim)}.confirm-modal{max-width:420px}.confirm-modal .sub{margin-bottom:0;line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.paths-dock{width:210px;max-height:calc(100vh - 60px);display:flex;flex-direction:column;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:none;flex-shrink:0}.paths-dock.collapsed .dock-body{display:none}.paths-dock.collapsed{max-height:none;height:auto}.dock-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.dock-head .label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--text-dim)}.dock-body{overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}.dock-empty{color:var(--text-dim);font-size:12px;text-align:center;padding:18px 4px;line-height:1.6}.dock-grade{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.dock-grade.g-best,.dock-grade.g-good{color:var(--good)}.dock-grade.g-inaccuracy{color:var(--warn)}.dock-grade.g-mistake,.dock-grade.g-killer{color:var(--bad)}.dock-reason{font-size:12px;color:var(--text-dim);background:var(--bg-inset);border-radius:var(--radius-sm);padding:6px 8px}.dock-card{padding:7px;animation:dock-in .2s ease both}.dock-card:nth-child(3){animation-delay:.02s}.dock-card:nth-child(4){animation-delay:.04s}.dock-card:nth-child(5){animation-delay:.06s}.dock-card:nth-child(6){animation-delay:.08s}.dock-card:nth-child(7){animation-delay:.1s}.dock-card:nth-child(8){animation-delay:.12s}@keyframes dock-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.dock-card canvas{width:100%}.dock-card .meta{font-size:11px;margin-top:4px}.dock-graded{display:flex;flex-direction:column;gap:8px}.dock-next{display:flex;flex-direction:column;gap:6px}.dock-next:not(:empty){padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:2px}.dock-next-head{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--hint)}.dock-next-note{font-size:11.5px;color:var(--text-dim)}.best-card{--card-hint: var(--hint);border-color:var(--card-hint);cursor:default}.best-card:hover{border-color:var(--card-hint);transform:none;box-shadow:none}.paths-overlay{position:fixed;inset:0;background:#05070c8c;display:flex;align-items:center;justify-content:center;z-index:50;backdrop-filter:none}.paths-modal{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:22px;max-width:780px;max-height:84vh;overflow:auto}.paths-modal h2{margin:0 0 4px;font-size:18px}.paths-modal .sub{color:var(--text-dim);font-size:13px;margin-bottom:16px}.alt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.alt-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px;cursor:pointer;transition:border-color .12s,transform .12s,box-shadow .12s}.alt-card:hover,.alt-card.selected{border-color:var(--accent);transform:translateY(-1px);box-shadow:2px 2px color-mix(in srgb,var(--accent) 34%,transparent),4px 4px color-mix(in srgb,var(--accent) 16%,transparent)}.alt-card canvas{width:100%;display:block;border-radius:6px}.alt-card .meta{font-size:12px;color:var(--text-dim);margin-top:6px;display:flex;justify-content:space-between}.alt-card .meta b{color:var(--text)}.alt-card.was-yours{outline:2px solid var(--warn)}.alt-card.is-book{border-color:var(--good)}.alt-card.is-book .meta:after{content:"📖";margin-left:4px}.kbd{font-family:var(--font-mono);font-size:11px;background:var(--bg-inset);border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--text-dim)}.chain-slot{height:64px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;opacity:0;transition:opacity .25s ease;pointer-events:none}.chain-slot.show{opacity:1}.chain-float{display:flex;flex-direction:column;align-items:center;gap:5px}.chain-slot.show .chain-float{animation:b2b-drift 5s ease-in-out infinite}.chain-label{font-family:var(--font-display);font-weight:800;font-style:italic;font-size:11px;letter-spacing:.16em;color:var(--b2b-col, var(--warn));text-shadow:0 1px 3px rgba(0,0,0,.4);transition:color .35s ease}.b2b-bubble{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;font-family:var(--font-display);font-weight:900;font-style:italic;font-size:14px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.65);background:color-mix(in srgb,var(--b2b-col, var(--warn)) 30%,rgba(12,12,20,.62));border:2px solid var(--b2b-col, var(--warn));transform:scale(.4);transition:transform .25s ease,border-color .35s ease,background .35s ease}.chain-slot.show .b2b-bubble{transform:scale(1)}.b2b-bubble.charged{box-shadow:0 0 16px color-mix(in srgb,var(--b2b-col, var(--warn)) 75%,transparent)}.chain-slot.show .b2b-bubble{scale:calc(1 + var(--b2b-heat, 0) * .12)}.b2b-bubble.blazing{box-shadow:0 0 calc(10px + var(--b2b-heat, 0) * 10px) color-mix(in srgb,var(--b2b-col, var(--warn)) 55%,transparent)}.chain-slot.show .b2b-bubble.pop{animation:b2b-pop .32s ease}.chain-slot.show .b2b-bubble.breaking{animation:b2b-break .5s cubic-bezier(.3,0,.2,1) forwards}@keyframes b2b-break{0%{scale:1;opacity:1;filter:brightness(1)}18%{scale:1.28 .82;translate:-3px 0;filter:brightness(2.4) saturate(.4);border-color:#fff}36%{scale:.86 1.24;translate:3px 0;filter:brightness(1.6)}to{scale:1.9;opacity:0;filter:brightness(1.2) blur(2px)}}@keyframes b2b-drift{0%,to{translate:0 0}25%{translate:3px -10px}50%{translate:-2px 5px}75%{translate:4px 9px}}@keyframes b2b-pop{0%{scale:1.5}to{scale:1}}.zenith-altimeter{display:block;margin:6px 0 0 20px}.zenith-hud .alt{font-family:var(--font-display);font-size:27px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.zenith-hud .alt small{font-size:14px;font-weight:600;color:var(--text-dim);margin-left:2px}.zenith-hud .floor{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent2);margin:2px 0 8px}.zenith-hud .floor+.floor{margin-top:-6px}.zenith-hud .meta{font-size:12.5px;font-style:italic;font-weight:600;line-height:1.7;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.zenith-hud .meta b{font-weight:800;color:var(--text)}.zenith-hud .m-sent b{color:var(--good)}.zenith-hud .m-taken b{color:var(--warn)}.zenith-hud .incoming{font-size:12.5px;font-weight:800;font-style:italic;text-transform:uppercase;letter-spacing:.05em;color:var(--bad);margin-top:4px;animation:incoming-blink .9s ease-in-out infinite}@keyframes incoming-blink{0%,to{opacity:1}50%{opacity:.55}}.zenith-overlay{position:absolute;inset:12px;border-radius:var(--radius-sm);display:none;align-items:center;justify-content:center;background:var(--bg);backdrop-filter:none;z-index:6}.zenith-overlay.show{display:flex}.zenith-overlay.counting{background:transparent;backdrop-filter:none}.zenith-overlay.results{background:transparent}.zenith-overlay.results .zenith-box{background:color-mix(in srgb,var(--field-bg) 80%,transparent);padding:15px}.zenith-count{font-family:var(--font-display);font-size:96px;font-weight:700;color:var(--text)}.zenith-count.tick{animation:count-pop .4s ease-out}@keyframes count-pop{0%{transform:scale(1.6);opacity:.1}to{transform:scale(1);opacity:1}}.zenith-box{text-align:center;max-width:90%;max-height:100%;overflow-y:auto;padding:10px}.zenith-box h2{font-size:24px;margin:0 0 4px}.zenith-box .sub{color:var(--text-dim);font-size:13px;margin:0 0 14px;line-height:1.5;text-transform:none}.floor-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.floor-btn{display:flex;flex-direction:column;gap:1px;padding:6px 8px;font-size:12px}.floor-btn span{color:var(--text-dim);font-size:10px;letter-spacing:.04em}.floor-btn.primary span{color:var(--on-accent)}.zenith-opts{display:flex;gap:10px;align-items:center;justify-content:center;margin-bottom:12px;flex-wrap:wrap}.zenith-opts select{padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text);font-family:inherit}.zenith-gmod{font-size:12.5px;color:var(--text-dim);display:inline-flex;align-items:center;gap:5px}.zenith-start{width:100%}.qp-menu{width:min(600px,92%);max-width:600px}.qp-head h2{font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:.02em;margin:0 0 4px}.qp-head .sub{margin-bottom:16px}.qp-floors{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.qp-floor{display:flex;align-items:center;padding:9px 11px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-inset);cursor:pointer;transition:background .13s,border-color .13s}.qp-fbody{display:flex;flex-direction:column;gap:1px;min-width:0}.qp-floor:hover{background:color-mix(in srgb,var(--accent) 12%,var(--bg-inset));border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.qp-floor.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--bg-inset))}.qp-fname{font-size:12px;font-weight:600;color:var(--text);line-height:1.2}.qp-falt{font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--text-dim);font-weight:700}.qp-opts{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.qp-opt{display:flex;align-items:center;gap:8px}.qp-opt-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim)}.seg{display:inline-flex;padding:3px;gap:2px;background:var(--bg-inset);border:1px solid var(--line);border-radius:var(--radius)}.seg-btn{border:none;background:transparent;color:var(--text-dim);font:inherit;font-size:12px;font-weight:700;padding:5px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:color .14s,background .14s,transform .1s}.seg-btn:hover{color:var(--text)}.seg-btn:active{transform:scale(.95)}.seg-btn.on{background:var(--accent);color:var(--on-accent)}.seg.fill{display:flex}.seg.fill .seg-btn{flex:1;min-width:0;padding:5px 4px;text-align:center}.seg.fill.three .seg-btn{font-size:10.5px;letter-spacing:0}.qp-toggle{display:inline-flex;align-items:center;gap:12px;padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-inset);color:var(--text-dim);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:color .14s,border-color .14s,background .14s}.qp-toggle-label{display:block;text-align:left}.qp-toggle small{display:block;font-size:9.5px;font-weight:500;letter-spacing:.04em;opacity:.75}.qp-switch{appearance:none;width:40px;height:22px;border-radius:var(--radius);background:var(--bg-raised);border:1px solid var(--line);position:relative;flex-shrink:0;transition:background .15s,border-color .15s}.qp-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;clip-path:polygon(4px 0,12px 0,16px 4px,16px 12px,12px 16px,4px 16px,0 12px,0 4px);background:var(--text-dim);transition:transform .18s cubic-bezier(.3,1.4,.6,1),background .15s}.qp-toggle:hover{color:var(--text);border-color:color-mix(in srgb,var(--text) 25%,transparent)}.qp-toggle.on{color:var(--text)}.qp-toggle.on .qp-switch{background:var(--accent);border-color:var(--accent)}.qp-toggle.on .qp-switch:after{transform:translate(18px);background:var(--on-accent)}.qp-start{width:100%;padding:13px;font-family:var(--font-display);font-size:16px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.vs-bot-col{display:flex;flex-direction:column;gap:8px;align-items:center}.vs-nametag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--accent2)}.vs-bot-field{padding:8px}.vs-bot-hud{font-size:12px;color:var(--text-dim);min-height:18px}.vs-bot-hud b{color:var(--text)}.vs-score small{color:var(--text-dim);font-weight:600;margin:0 3px}.vs-slider{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:12.5px;color:var(--text-dim)}.vs-slider span{white-space:nowrap}.vs-slider input[type=range]{flex:1;accent-color:var(--accent)}.vs-adv{margin-bottom:12px;text-align:left}.vs-adv summary{cursor:pointer;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:8px}.vs-adv summary:hover{color:var(--text)}.vs-rules-reset{width:100%;margin-top:2px;font-size:12px}@keyframes field-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.field-panel.flash-bad{animation:field-shake .18s ease}.field-panel.flash-bad:after{content:"";position:absolute;inset:0;border-radius:var(--radius);border:2px solid var(--bad);pointer-events:none;animation:bad-fade .5s ease forwards}@keyframes bad-fade{0%{opacity:1}to{opacity:0}}.death-warn{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:8;display:none;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--bad) 25%,transparent);border:2px solid var(--bad);color:var(--bad);font-size:28px;font-weight:900;line-height:1;pointer-events:none;text-shadow:0 0 10px var(--bad);box-shadow:0 0 16px 2px color-mix(in srgb,var(--bad) 60%,transparent)}.death-warn.show{display:flex;animation:death-warn-pulse .6s ease-in-out infinite}@keyframes death-warn-pulse{0%,to{opacity:.55;transform:translate(-50%) scale(.92)}50%{opacity:1;transform:translate(-50%) scale(1.08)}}@media(prefers-reduced-motion:reduce){.death-warn.show{animation:none;opacity:1}}table.stats{width:100%;border-collapse:collapse;font-size:14px}table.stats td,table.stats th{padding:8px 6px;text-align:left;border-bottom:1px solid var(--line)}table.stats th{color:var(--text-dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.08em}table.stats td{font-variant-numeric:tabular-nums}table.stats tr{transition:background .1s}table.stats tbody tr:hover{background:color-mix(in srgb,var(--text) 4%,transparent)}.chart-wrap{position:relative}.chart-wrap svg.chart{display:block;width:100%;height:auto}.chart .gridline{stroke:var(--line);stroke-width:1}.chart .tick{fill:var(--text-dim);font-size:11px;font-family:system-ui,sans-serif}.chart .xhair{stroke:var(--text-dim);stroke-width:1;stroke-dasharray:3 3;opacity:.6}.mode-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px;vertical-align:baseline}.chart-tooltip{position:absolute;transform:translate(-50%);padding:4px 10px;border-radius:var(--radius-sm);background:var(--bg-raised);backdrop-filter:none;border:1px solid var(--line);box-shadow:var(--shadow-sm);font-size:12px;color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .1s;z-index:5}.chart-tooltip.show{opacity:1}.chart-empty{color:var(--text-dim);font-size:13px;margin:6px 0}
