:root{--line-rgb:255 255 255;--line:rgb(var(--line-rgb));--line-1:rgb(var(--line-rgb) / .62);--line-2:rgb(var(--line-rgb) / .32);--line-3:rgb(var(--line-rgb) / .16);--line-4:rgb(var(--line-rgb) / .07);--glow:rgb(var(--line-rgb) / .35);--void:#000;--void-1:#050506;--void-2:#0c0c0e;--void-3:#151518;--ink:#f4f4f6;--ink-dim:#a3a3ab;--ink-faint:#64646c;--lethal:#ff3848;--reactive:#6ff2ff;--good:#8dff8a;--warn:#ffb02e;--font-display:"Bahnschrift SemiCondensed", "Bahnschrift", "DIN Condensed", "Barlow Condensed", "Roboto Condensed", "Arial Narrow", sans-serif;--font-ui:"Bahnschrift", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:"Cascadia Mono", "JetBrains Mono", ui-monospace, Consolas, monospace;--bracket:14px;--brackets:linear-gradient(var(--line), var(--line)) top left / var(--bracket) 1px no-repeat, linear-gradient(var(--line), var(--line)) top left / 1px var(--bracket) no-repeat, linear-gradient(var(--line), var(--line)) top right / var(--bracket) 1px no-repeat, linear-gradient(var(--line), var(--line)) top right / 1px var(--bracket) no-repeat, linear-gradient(var(--line), var(--line)) bottom left / var(--bracket) 1px no-repeat, linear-gradient(var(--line), var(--line)) bottom left / 1px var(--bracket) no-repeat, linear-gradient(var(--line), var(--line)) bottom right / var(--bracket) 1px no-repeat, linear-gradient(var(--line), var(--line)) bottom right / 1px var(--bracket) no-repeat;--stone:var(--void);--panel:#000000e6;--edge:var(--line-3);--glyph:var(--line)}*{box-sizing:border-box}html,body{background:var(--stone);height:100%;color:var(--ink);font-family:var(--font-ui);margin:0;overflow:hidden}#app{position:fixed;inset:0}#view{cursor:crosshair;outline:none;width:100%;height:100%;display:block}#app:after{content:"";background:linear-gradient(var(--line), var(--line)) top / 1px 5px no-repeat, linear-gradient(var(--line), var(--line)) bottom / 1px 5px no-repeat, linear-gradient(var(--line), var(--line)) left / 5px 1px no-repeat, linear-gradient(var(--line), var(--line)) right / 5px 1px no-repeat;opacity:.85;pointer-events:none;width:15px;height:15px;margin:-7px 0 0 -7px;position:absolute;top:50%;left:50%}#hud{white-space:pre;font:600 15px/1.45 var(--font-mono);color:var(--ink);text-shadow:0 1px 3px #000;pointer-events:none;position:absolute;bottom:18px;left:20px}#hud:first-line{color:var(--line);font-size:26px}#debug{max-width:min(640px,70vw);max-height:calc(100% - 24px);font:12px/1.35 var(--font-mono);border:1px solid var(--line-3);pointer-events:none;background:#000000d1;margin:0;padding:10px 12px;position:absolute;top:12px;right:12px;overflow:auto}#flash{pointer-events:none;opacity:0;position:absolute;inset:0}#flash.flash-death{background:radial-gradient(ellipse at center, transparent 30%, var(--lethal));animation:.6s ease-out flash}#flash.flash-checkpoint{background:radial-gradient(ellipse at center, transparent 55%, var(--line-2));animation:.45s ease-out flash}#flash.flash-finish{background:radial-gradient(ellipse at center, transparent 40%, var(--line-1));animation:.9s ease-out flash}@keyframes flash{0%{opacity:.7}to{opacity:0}}#overlay{background:var(--brackets), var(--panel);border:1px solid var(--line-3);width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);padding:28px 30px 22px;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #000,0 24px 60px #000c}#overlay[hidden]{display:none}#overlay h1{font:600 28px/1 var(--font-display);letter-spacing:.14em;text-transform:uppercase;margin:0 0 6px}#overlay h2{letter-spacing:.12em;text-transform:uppercase;color:var(--line);margin:18px 0 8px;font-size:13px}#overlay h2 small{color:var(--ink-dim);font-weight:400}#overlay-status{color:var(--ink-dim);margin:0 0 16px}#overlay-status.error{color:var(--lethal);font-weight:600}#resume{font:600 15px var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:#000;background:var(--line);cursor:pointer;border:0;border-radius:0;padding:10px 22px;transition:transform .12s,box-shadow .12s}#resume:hover:not(:disabled),#resume:focus-visible{box-shadow:0 0 22px var(--glow);outline:none;transform:translateY(-1px)}#resume:active:not(:disabled){transform:translateY(1px)}#resume:disabled{opacity:.4;cursor:progress}#settings,#experiments{gap:8px;margin-top:14px;font-size:14px;display:grid}#settings label{grid-template-columns:150px 1fr;align-items:center;gap:10px;display:grid}#settings label:has(input[type=checkbox]){grid-template-columns:auto 1fr}#experiments label{align-items:center;gap:8px;display:flex}input[type=range],input[type=checkbox]{accent-color:var(--line)}.keys{color:var(--ink-dim);margin:18px 0 0;font-size:12px}#devpanel{z-index:5;width:min(360px,100vw - 24px);max-height:calc(100% - 24px);font:12px/1.4 var(--font-ui);border:1px solid var(--line-3);border-left:2px solid var(--line);background:#000000eb;padding:10px 12px 14px;position:absolute;top:12px;left:12px;overflow:auto}#devpanel h2{font:600 15px var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--line);margin:0 0 4px}#devpanel h2 small,#devpanel .dev-legend{color:var(--ink-dim);font-size:11px;font-weight:400}#devpanel h3{letter-spacing:.08em;text-transform:uppercase;color:var(--glyph);margin:12px 0 4px;font-size:11px}#devpanel .dev-status{color:#ffd27a;min-height:1.4em;margin:0}#devpanel .dev-readouts{grid-template-columns:1fr auto;gap:1px 10px;margin:0;display:grid}#devpanel dt{color:var(--ink-dim);cursor:help}#devpanel dd{font-family:var(--font-mono);text-align:right;margin:0}#devpanel .dev-graph{background:#ffffff08;border:1px solid #ffffff14;width:100%;height:96px;display:block}#devpanel .dev-events{font:11px/1.35 var(--font-mono);min-height:5em;margin:0;padding-left:0;list-style:none}#devpanel .ev-death{color:var(--lethal)}#devpanel .ev-impact{color:#ff9a4d}#devpanel .ev-release{color:#ff9cf0}#devpanel .ev-land{color:#7dffb0}#devpanel .ev-respawn{color:var(--ink-dim)}#devpanel details{border-top:1px solid #ffffff0f;padding:2px 0}#devpanel summary{cursor:pointer;color:var(--ink)}#devpanel .dev-slider{cursor:help;grid-template-columns:1fr 110px 44px;align-items:center;gap:6px;margin:2px 0;display:grid}#devpanel .dev-slider output{font-family:var(--font-mono);text-align:right}#devpanel .dev-row{flex-wrap:wrap;gap:4px;margin:4px 0;display:flex}#devpanel button,#devpanel select,#devpanel input[type=text],#devpanel textarea{font:inherit;color:var(--ink);border:1px solid var(--line-2);background:#000;border-radius:0;padding:2px 6px}#devpanel button:hover{border-color:var(--line)}#devpanel button:focus-visible{outline:1px solid var(--line)}#devpanel textarea{box-sizing:border-box;width:100%;font:10px/1.3 var(--font-mono)}#devpanel .dev-replay-status{font-family:var(--font-mono);color:var(--ink-dim);display:block}.editor,.projects-dialog{--ed-bg:#000;--ed-panel:#030304;--ed-panel-2:#09090b;--ed-line:var(--line-3);--ed-ink:var(--ink);--ed-dim:var(--ink-dim);--ed-violet:var(--line);--ed-violet-deep:var(--line-2);--ed-cyan:var(--line);--ed-ok:var(--good);--ed-warn:var(--warn);--ed-err:#ff5a6a;--ed-radius:0}.editor{background:var(--ed-bg);color:var(--ed-ink);font:13px/1.4 var(--font-ui);grid-template-rows:46px minmax(0,1fr) 28px;display:grid;position:fixed;inset:0}.editor[hidden]{display:none}.editor button,.projects-dialog button{font:500 12.5px var(--font-ui);color:var(--ed-ink);background:var(--ed-panel-2);border:1px solid var(--ed-line);border-radius:var(--ed-radius);cursor:pointer;padding:5px 10px;transition:background .1s,border-color .1s,transform 80ms}.editor button:hover:not(:disabled),.projects-dialog button:hover:not(:disabled){background:var(--line-4);border-color:var(--ed-violet-deep)}.editor button:focus-visible,.editor input:focus-visible,.editor select:focus-visible,.editor textarea:focus-visible,.projects-dialog :focus-visible{outline:2px solid var(--ed-cyan);outline-offset:1px}.editor button:active:not(:disabled){transform:translateY(1px)}.editor button:disabled{opacity:.38;cursor:default}.editor button.active{background:var(--line);border-color:var(--line);color:#000}.editor button.small,.projects-dialog button.small{padding:3px 8px;font-size:11.5px}.editor button.danger,.projects-dialog button.danger{color:#ff8a94;border-color:#ff384880}.editor button.link{color:var(--ed-cyan);background:0 0;border:0;padding:0 2px;text-decoration:underline}.editor button.icon{color:var(--ed-dim);background:0 0;border:0;padding:0 4px;font-size:11px}.editor input,.editor select,.editor textarea,.projects-dialog input{font:12.5px var(--font-ui);color:var(--ed-ink);border:1px solid var(--ed-line);background:#000;border-radius:0;min-width:0;padding:4px 6px}.editor textarea{font-family:var(--font-mono);resize:vertical}.editor button.primary,.projects-dialog button.primary{background:var(--line);border-color:var(--line);color:#000;font:700 12px var(--font-display);letter-spacing:.14em;text-transform:uppercase}.editor button.primary:hover:not(:disabled),.projects-dialog button.primary:hover:not(:disabled){background:var(--line);box-shadow:0 0 18px var(--glow)}.toolbar{border-bottom:1px solid var(--ed-line);scrollbar-width:thin;background:#000;align-items:center;gap:6px;padding:0 10px;display:flex;overflow-x:auto}.toolbar>*{flex:none}.toolbar .brand{font:700 14px var(--font-display);letter-spacing:.24em;text-transform:uppercase;color:var(--ed-violet);white-space:nowrap;margin-right:6px}.toolbar .track-title{width:150px;font-weight:600}.toolbar .num-small{width:56px}.toolbar .start-select{width:170px}.editor .toolbar button{padding:5px 8px}.toolbar .sep{background:var(--ed-line);align-self:stretch;width:1px;margin:10px 2px}.toolbar .sep.grow{background:0 0;flex:1}.toolbar button.play{background:var(--line);border-color:var(--line);color:#000;font:700 12px var(--font-display);letter-spacing:.16em;text-transform:uppercase;padding:5px 16px}.toolbar button.play.blocked{background:var(--ed-panel-2);color:var(--ed-dim);border-color:var(--ed-line)}.save-badge{font-size:11.5px;font-family:var(--font-mono);white-space:nowrap;color:var(--ed-dim);border:1px solid var(--ed-line);border-radius:0;padding:2px 8px}.save-badge[data-state=saved]{color:var(--ed-ok);border-color:#8dff8a59}.save-badge[data-state=dirty],.save-badge[data-state=saving]{color:var(--ed-cyan);border-color:var(--line-2)}.save-badge[data-state=error],.save-badge[data-state=unavailable]{color:var(--ed-err);border-color:#ff384880}.editor-main{grid-template-columns:250px minmax(0,1fr) 320px;min-height:0;display:grid}.side{background:var(--ed-panel);border-right:1px solid var(--ed-line);flex-direction:column;min-height:0;display:flex}.side-right{border-right:0;border-left:1px solid var(--ed-line)}.tabs{border-bottom:1px solid var(--ed-line);gap:2px;padding:6px 6px 0;display:flex}.editor .tabs .tab{color:var(--ed-dim);background:0 0;border-bottom:0;border-radius:0}.editor .tabs .tab.active{background:var(--ed-panel-2);color:var(--ed-ink);box-shadow:inset 0 2px 0 var(--ed-violet)}.panel{flex:1;min-height:0;padding:8px 10px 14px;overflow:auto}.panel[hidden]{display:none}.panel-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.panel h2{text-transform:uppercase;letter-spacing:.09em;color:var(--ed-dim);margin:0;font-size:12px}.panel h3{color:var(--ed-violet);letter-spacing:.04em;margin:12px 0 6px;font-size:11.5px}.viewport{min-width:0;min-height:0;position:relative}.editor-canvas{outline:none;width:100%;height:100%;display:block}.statusbar{white-space:nowrap;text-overflow:ellipsis;border-top:1px solid var(--ed-line);color:var(--ed-dim);background:#000;padding:5px 12px;font-size:12px;overflow:hidden}.statusbar[data-tone=warn]{color:var(--ed-warn)}.statusbar[data-tone=error]{color:var(--ed-err)}.muted{color:var(--ed-dim)}.small{font-size:11.5px}.mono{font-family:var(--font-mono)}.palette-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.editor .palette-grid button{text-align:left;border-left:3px solid var(--ed-violet-deep);padding:6px 8px}.editor .palette-grid.cat-movement button{border-left-color:var(--ed-cyan)}.editor .palette-grid.cat-gameplay button{border-left-color:var(--ed-ok)}.editor .palette-grid.cat-decor button{border-left-color:var(--warn)}.tree-filter{width:100%;margin-bottom:6px}.tree{margin:0;padding:0;list-style:none}.tree-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:0;align-items:center;gap:2px;padding:3px 4px 3px 8px;display:flex}.tree-row:hover{background:var(--line-4)}.tree-row.selected{background:var(--line-3);box-shadow:inset 2px 0 0 var(--ed-violet)}.tree-row.is-hidden .tree-label{opacity:.45}.tree-row.has-error .tree-label{color:var(--ed-err)}.tree-row.drop-target,.tree-root-drop.drop-target{outline:1px dashed var(--ed-cyan)}.tree-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tree-root-drop{text-align:center;color:var(--ed-dim);border:1px dashed var(--ed-line);border-radius:0;margin-top:8px;padding:6px;font-size:11px}.tree-empty{color:var(--ed-dim);padding:8px 4px}.type-badge{border:1px solid var(--line-3);color:var(--ink-dim);font-size:10px;font-family:var(--font-mono);border-radius:0;padding:0 5px;display:inline-block}.type-badge.cat-movement{border-color:var(--line-1);color:var(--ink)}.type-badge.cat-gameplay{color:var(--ink);border-style:dashed}.type-badge.cat-decor{border-color:var(--line-4);color:var(--ink-faint)}.field{grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:6px;margin:5px 0;display:grid}.field>span{color:var(--ed-dim);font-size:12px}.field.vec{grid-template-columns:96px repeat(3,minmax(0,1fr))}.field.column{grid-template-columns:1fr}.field .unit{color:var(--ed-dim);font-size:11px}.axis-x{box-shadow:inset 2px 0 #ff6b81}.axis-y{box-shadow:inset 2px 0 #7df2c4}.axis-z{box-shadow:inset 2px 0 #6bb5ff}.inspector-type{margin:0 0 8px}.diag{margin:4px 0;font-size:12px}.diag.error{color:var(--ed-err)}.diag.warn{color:var(--ed-warn)}.diag-list{padding-left:16px}.tier{background:var(--ed-panel-2);border-radius:0;align-items:baseline;gap:6px;margin-bottom:4px;padding:7px 8px;display:flex}.tier-dot{background:var(--ed-dim);border-radius:50%;flex:none;align-self:center;width:8px;height:8px}.tier-ok .tier-dot{background:var(--ed-ok);box-shadow:0 0 6px var(--ed-ok)}.tier-bad .tier-dot{background:var(--ed-err)}.tier-pending .tier-dot{background:var(--ed-cyan);animation:.9s ease-in-out infinite alternate pulse}@keyframes pulse{50%{box-shadow:0 0 0 3px var(--line-3), 0 0 16px var(--glow)}}.swatches{margin:0;padding:0;list-style:none}.swatch{align-items:center;gap:6px;padding:2px 0;display:flex}.editor .swatch-apply{text-align:left;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.swatch.editing .swatch-apply{border-color:var(--ed-cyan)}.chip{border:2px solid #fff;border-radius:0;flex:none;width:18px;height:18px}.swatch-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kind-badge{border:1px solid var(--line-2);color:var(--ink-dim);font-size:10px;font-family:var(--font-mono);border-radius:0;padding:0 5px}.kind-badge.lethal{border-color:var(--lethal);color:var(--lethal)}.kind-badge.reactive{border-color:var(--reactive);color:var(--reactive)}.material-editor{background:var(--ed-panel-2);border-radius:var(--ed-radius);margin-top:10px;padding:8px}.behaviour{border:1px solid var(--ed-line);border-radius:0;margin:6px 0;padding:4px 8px}.projects-dialog{width:min(620px,100vw - 32px);max-height:calc(100vh - 64px);color:var(--ink);background:var(--brackets), #000;border:1px solid var(--line-3);font:13px/1.4 var(--font-ui);border-radius:0;padding:14px 16px}.projects-dialog::backdrop{background:#000000bf}.projects-dialog .row{align-items:center;gap:6px;margin:8px 0;display:flex}.project-list{margin:0;padding:0;list-style:none}.project-row{border-bottom:1px solid var(--line-3);grid-template-columns:1fr auto;gap:2px 8px;padding:8px;display:grid}.project-row.current{box-shadow:inset 2px 0 0 var(--line)}.project-row .project-title{font-weight:600}.overlay-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}#exit-playtest{font:600 14px var(--font-ui);color:var(--ink);border:1px solid var(--reactive);cursor:pointer;background:0 0;border-radius:0;padding:9px 16px}#create-track{color:var(--reactive);font-size:14px}#overlay-status{white-space:pre-line}@media (max-width:1500px){.toolbar .brand{display:none}}@media (max-width:900px){.editor-main{grid-template-columns:200px minmax(0,1fr) 260px}}.editor .palette-grid button[draggable=true]{cursor:grab}.build-anchor{border:1px dashed var(--ed-line);color:var(--ed-dim);margin:8px 0;padding:8px 10px;font-size:12px;line-height:1.45}.build-anchor[data-state=ready]{border-style:solid;border-color:var(--ed-violet-deep);color:var(--ed-ink);background:linear-gradient(90deg, rgb(var(--line-rgb) / .08), transparent 70%)}.editor .build-new{text-transform:uppercase;letter-spacing:.08em;width:100%;padding:7px 10px;font-size:11px}.piece-grid{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.editor .piece-grid button.piece{text-align:center;justify-items:center;gap:4px;padding:8px 2px 7px;font-size:10.5px;line-height:1.15;display:grid}.editor .piece-grid button.piece:before{content:"";width:26px;height:18px;-webkit-mask:var(--piece-icon) center / contain no-repeat;mask:var(--piece-icon) center / contain no-repeat;-webkit-mask:var(--piece-icon) center / contain no-repeat;background:currentColor}.piece[data-piece=straight]{--piece-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 18' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M9 17V1M17 17V1'/%3E%3C/svg%3E")}.piece[data-piece=rampUp]{--piece-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 18' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M2 16H24V3Z'/%3E%3C/svg%3E")}.piece[data-piece=rampDown]{--piece-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 18' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M2 3V16H24Z'/%3E%3C/svg%3E")}.piece[data-piece=left]{--piece-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 18' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M19 17V11A8 8 0 0 0 11 3H3M13 17V12A3 3 0 0 0 10 9H3'/%3E%3C/svg%3E")}.piece[data-piece=right]{--piece-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 18' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M7 17V11A8 8 0 0 1 15 3H23M13 17V12A3 3 0 0 1 16 9H23'/%3E%3C/svg%3E")}.editor .piece-grid button.piece kbd{font:10px var(--font-mono,monospace);color:var(--ed-dim);order:2}.editor .piece-grid button.piece:not(:disabled):hover{border-color:var(--ed-violet);background:rgb(var(--line-rgb) / .08)}.build-fields{flex-wrap:wrap;gap:6px 10px;margin-top:8px;display:flex}.build-field{text-transform:uppercase;letter-spacing:.06em;color:var(--ed-dim);gap:3px;font-size:10.5px;display:grid}.gap-row{align-items:end;gap:4px;display:flex}.gap-row button{padding:4px 8px}.build-rating{border-left:3px solid var(--ed-line);color:var(--ed-dim);margin:6px 0 0;padding-left:8px;font-size:12px;line-height:1.45}.build-rating[data-rating=easy]{border-color:var(--ed-ok);color:var(--ed-ink)}.build-rating[data-rating=tight]{border-color:var(--ed-warn);color:var(--ed-ink)}.build-rating[data-rating=speed],.build-rating[data-rating=too-high]{border-color:var(--ed-err);color:var(--ed-ink)}.build-actions{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.build-actions button{padding:5px 8px}.quick-fixes{border:1px solid var(--ed-warn);background:linear-gradient(90deg,#ffb02e14,#0000 70%);margin-bottom:10px;padding:8px 10px 10px}.quick-fixes h3{color:var(--ed-warn);margin-top:0}.quick-fix{grid-template-columns:auto 1fr;align-items:center;gap:8px;margin-top:4px;display:grid}:root{--ui-scale:1;--ease:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--t-fast:.14s;--t-med:.28s;--t-slow:.52s;--notch:10px;--stone-0:var(--void);--stone-1:var(--void-1);--stone-2:var(--void-2);--stone-3:var(--void-3);--edge-hi:var(--line-2);--lantern:var(--line);--lantern-hi:var(--line);--cyan:var(--reactive)}:root[data-contrast=high]{--line-1:rgb(var(--line-rgb) / .85);--line-2:rgb(var(--line-rgb) / .6);--line-3:rgb(var(--line-rgb) / .4);--line-4:rgb(var(--line-rgb) / .16);--ink-dim:#d4d4da;--ink-faint:#a2a2aa}:root[data-reduced-motion=true]{--t-fast:0s;--t-med:0s;--t-slow:0s}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] :before,:root[data-reduced-motion=true] :after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}#shell{font-size:calc(16px * var(--ui-scale));color:var(--ink);background:var(--void);position:fixed;inset:0}#shell[hidden]{display:none}#shell [hidden]{display:none!important}#shell:after{content:"";z-index:3;pointer-events:none;background:radial-gradient(120% 90%,#0000 55%,#000000bf),repeating-linear-gradient(0deg,#ffffff05 0 1px,#0000 1px 3px);position:absolute;inset:0}#shell[data-screen=play]:after{display:none}.screen-host{scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;position:absolute;inset:0;overflow:auto}.screen-host[hidden],.play-layer[hidden]{display:none}.screen{min-height:100%;animation:rise var(--t-med) var(--ease-out);padding:clamp(20px,4vw,56px) clamp(16px,5vw,72px);position:relative}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes draw-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.visually-hidden{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}:where(#shell) :where(button,select,input){font:inherit;color:inherit}#shell button{cursor:pointer}#shell :focus-visible{outline:1px solid var(--line);outline-offset:4px}.primary,.secondary,.danger{min-height:2.75em;font:600 .92em/1 var(--font-display);letter-spacing:.16em;text-transform:uppercase;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast) var(--ease);border-radius:0;justify-content:center;align-items:center;gap:10px;padding:.5em 1.5em;display:inline-flex;position:relative}.primary{background:var(--line);border:1px solid var(--line);clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, var(--notch) 100%, 0 calc(100% - var(--notch)));color:#000!important}.primary:hover:not(:disabled){box-shadow:0 0 28px var(--glow);filter:brightness(1.08)}.primary:active:not(:disabled),.secondary:active:not(:disabled),.danger:active:not(:disabled){transform:translateY(1px)}.primary:disabled{border:1px dashed var(--line-2);clip-path:none;cursor:not-allowed;background:0 0;color:var(--ink-faint)!important}.secondary{border:1px solid var(--line-2);background:0 0}.secondary:hover:not(:disabled){border-color:var(--line);background:var(--line-4)}.secondary:disabled{opacity:.4;cursor:not-allowed}.danger{background:0 0;border:1px solid #ff384899;color:#ff8a94!important}.danger:hover{border-color:var(--lethal);background:#ff38481a;box-shadow:0 0 18px #ff384840}.link{color:var(--ink-dim);text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:4px;background:0 0;border:0;padding:0}.link:hover{color:var(--ink);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.back{font:600 .8em var(--font-display);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);transition:color var(--t-fast), transform var(--t-fast) var(--ease);background:0 0;border:0;justify-self:start;align-items:center;gap:8px;padding:.4em 0;display:inline-flex}.back:hover{color:var(--line);transform:translate(-3px)}.screen-bar{gap:10px;margin-bottom:clamp(20px,3.5vw,40px);display:grid}.screen-head{border-bottom:1px solid var(--line-3);padding-bottom:16px;position:relative}.screen-head:after{content:"";background:var(--line);width:72px;height:1px;box-shadow:0 0 10px var(--glow);animation:draw-in var(--t-slow) var(--ease-out);position:absolute;bottom:-1px;left:0}.screen-head h1{font:600 clamp(2em, 4.4vw, 3.2em) / 1 var(--font-display);letter-spacing:.12em;text-transform:uppercase;margin:0}.lede{color:var(--ink-dim);max-width:60ch;margin:10px 0 0;line-height:1.5}.screen-menu{grid-template-rows:1fr auto;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);align-items:end;gap:32px 6vw;min-height:100vh;display:grid;overflow:hidden}.screen-menu>:not(.menu-scene){z-index:1;position:relative}.menu-scene{z-index:0;perspective:520px;perspective-origin:30% 36%;pointer-events:none;position:absolute;inset:0;overflow:hidden}.menu-scene:after{content:"";background:radial-gradient(circle at 30% 36%,#000 0 6%,#0000 34%),linear-gradient(270deg,#000000eb 0%,#000000b3 34%,#0000 58%),linear-gradient(#0000 60%,#000000d9 100%);position:absolute;inset:0}.scene-corridor{transform-style:preserve-3d;position:absolute;top:36%;left:30%}.scene-plane{--cell:90px;background-image:linear-gradient(var(--line-3) 1px, transparent 1px), linear-gradient(90deg, var(--line-3) 1px, transparent 1px);background-size:var(--cell) var(--cell);animation:4.8s linear infinite corridor-drift;position:absolute}.scene-floor,.scene-ceiling{width:360px;height:3600px;top:-1800px;left:-180px}.scene-floor{transform:translateY(150px)translateZ(-1500px)rotateX(90deg)}.scene-ceiling{transform:translateY(-150px)translateZ(-1500px)rotateX(90deg)}.scene-left,.scene-right{width:3600px;height:300px;animation-name:corridor-drift-x;top:-150px;left:-1800px}.scene-left{transform:translate(-180px)translateZ(-1500px)rotateY(90deg)}.scene-right{animation-direction:reverse;transform:translate(180px)translateZ(-1500px)rotateY(-90deg)}@keyframes corridor-drift{to{background-position:0 var(--cell)}}@keyframes corridor-drift-x{to{background-position:var(--cell) 0}}:root[data-reduced-motion=true] .scene-plane{animation:none!important}.menu-brand{min-width:0;padding-bottom:7vh}.menu-kicker{font:600 .78em var(--font-display);letter-spacing:.5em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:14px;margin:0 0 18px;display:flex}.menu-kicker:before{content:"";background:var(--line);width:40px;height:1px}.wordmark{font:700 clamp(3em, 10vw, 9.5em) / .86 var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:#0000;-webkit-text-stroke:1.5px var(--line);text-shadow:0 0 40px rgb(var(--line-rgb) / .18);animation:rise var(--t-slow) var(--ease-out);margin:0;position:relative}.wordmark:after{content:attr(data-text);z-index:-1;color:#0000;-webkit-text-stroke:1px var(--line-3);position:absolute;top:.05em;left:.05em}.menu-tag{max-width:36ch;color:var(--ink-dim);margin:22px 0 0;font-size:1.05em;line-height:1.55}.menu-items{counter-reset:menu;gap:2px;padding-bottom:7vh;display:grid}.menu-item{text-align:left;border:0;border-bottom:1px solid var(--line-4);counter-increment:menu;transition:background var(--t-fast), padding var(--t-fast) var(--ease);background:0 0;grid-template-rows:auto auto;grid-template-columns:2.6em 1fr;align-items:baseline;gap:3px 8px;padding:13px 18px 13px 0;display:grid;position:relative}.menu-item:before{content:counter(menu, decimal-leading-zero);font:500 .78em var(--font-mono);color:var(--ink-faint);transition:color var(--t-fast);grid-row:1/span 2;align-self:center}.menu-item:after{content:"";background:var(--line);height:1px;box-shadow:0 0 12px var(--glow);transform-origin:0;transition:transform var(--t-med) var(--ease-out);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.menu-item:hover,.menu-item:focus-visible{background:linear-gradient(90deg, var(--line-4), transparent 70%);padding-left:10px}.menu-item:hover:after,.menu-item:focus-visible:after{transform:scaleX(1)}.menu-item:hover:before,.menu-item:focus-visible:before{color:var(--line)}#shell .menu-item:focus-visible{outline:none}.menu-label{font:600 1.55em/1 var(--font-display);letter-spacing:.14em;text-transform:uppercase}#shell .menu-item.primary{clip-path:none;border:0;border-bottom:1px solid var(--line-2);box-shadow:none;filter:none;min-height:0;font:inherit;letter-spacing:normal;text-transform:none;background:0 0;justify-content:stretch;padding-top:18px;padding-bottom:18px;transform:none;color:var(--ink)!important}#shell .menu-item.primary:hover,#shell .menu-item.primary:focus-visible{background:linear-gradient(90deg, var(--line-4), transparent 70%);padding-left:10px}.menu-item.primary .menu-label{color:#0000;-webkit-text-stroke:1px var(--line);transition:color var(--t-fast);font-size:2.6em}.menu-item.primary:hover .menu-label,.menu-item.primary:focus-visible .menu-label{color:var(--line);text-shadow:0 0 24px var(--glow)}.menu-sub{color:var(--ink-faint);transition:color var(--t-fast);grid-column:2;font-size:.84em}.menu-item:hover .menu-sub,.menu-item:focus-visible .menu-sub{color:var(--ink-dim)}.menu-foot{border-top:1px solid var(--line-4);font:.78em var(--font-mono);letter-spacing:.04em;color:var(--ink-faint);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px 28px;padding-top:14px;display:flex}.menu-foot .link{font:inherit}.compat-warning{border:1px solid var(--warn);background:#ffb02e0f;border-left-width:3px;grid-column:1/-1;margin:0;padding:12px 16px}@media (max-width:760px){.screen-menu{grid-template-columns:1fr;align-items:start}.menu-brand,.menu-items{padding-bottom:0}.menu-scene{perspective-origin:50% 30%}.scene-corridor{top:30%;left:50%}}.browser{grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);align-items:start;gap:clamp(16px,3vw,44px);display:grid}@media (max-width:860px){.browser{grid-template-columns:1fr}}.track-list{scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;gap:26px;max-height:calc(100vh - 210px);padding:2px 10px 24px 2px;display:grid;overflow:auto}.track-section{gap:6px;display:grid}.track-section h2,.track-section summary{font:600 .72em var(--font-display);letter-spacing:.34em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:12px;margin:0 0 4px;display:flex}.track-section h2:after{content:"";background:var(--line-4);flex:1;height:1px}.track-section summary{cursor:pointer;margin-bottom:8px}.track-section.dev[open]{gap:6px;display:grid}.section-empty{color:var(--ink-faint);margin:0;font-size:.9em}.section-tools .import{min-height:2.3em;font-size:.8em}.track-card{text-align:left;border:1px solid var(--line-4);transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast) var(--ease);background:0 0;grid-template-columns:72px 1fr auto;align-items:center;gap:16px;padding:8px 14px 8px 8px;display:grid;position:relative}.track-card:hover{border-color:var(--line-2);background:var(--line-4)}.track-card.selected{border-color:var(--line-1);background:var(--brackets), linear-gradient(90deg, var(--line-4), transparent 75%)}.track-card.selected:before{content:"";background:var(--line);width:2px;box-shadow:0 0 10px var(--glow);position:absolute;top:18%;bottom:18%;left:-1px}.track-card.broken{opacity:.6}.card-thumb{border:1px solid var(--line-3);background:#000;width:72px;height:72px;display:block;overflow:hidden}.card-text{gap:5px;min-width:0;display:grid}.card-title{font:600 1.15em/1.1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card-status{font:.8em var(--font-mono);color:var(--ink-dim);font-variant-numeric:tabular-nums}.card-done{border:1px solid var(--line-1);width:1.7em;height:1.7em;color:var(--line);place-items:center;font-size:.85em;display:grid}.thumb-missing{height:100%;color:var(--lethal);place-items:center;font-weight:700;display:grid}.pill{font:600 .66em var(--font-display);letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--line-2);color:var(--ink-dim);justify-self:start;padding:2px 7px 1px}.pill-introductory{border-color:var(--line-2)}.pill-intermediate{border-color:var(--line);color:var(--ink)}.pill-advanced{background:var(--line);border-color:var(--line);color:#000}.pill-showcase{color:var(--ink);border-style:double;border-width:3px;padding:0 5px}.pill-training{border-style:dashed;border-color:var(--line-1);color:var(--ink)}.pill-unrated,.pill-developer{color:var(--ink-faint);border-color:var(--line-3)}.track-thumb{width:100%;height:100%;display:block}.track-thumb .thumb-solid{fill:#000;stroke:var(--line);stroke-opacity:.75;stroke-width:1px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.track-thumb .thumb-lethal{stroke:var(--lethal);stroke-opacity:1;stroke-dasharray:3 2}.track-thumb .thumb-reactive{stroke:var(--reactive);stroke-opacity:1}.track-thumb .thumb-start{fill:none;stroke:var(--line);stroke-width:1.5px;vector-effect:non-scaling-stroke}.track-thumb .thumb-finish{fill:var(--line)}.track-thumb .thumb-checkpoint{fill:none;stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.track-detail{background:var(--brackets), #000000eb;border:1px solid var(--line-3);animation:rise var(--t-med) var(--ease-out);gap:14px;padding:clamp(18px,2.4vw,30px);display:grid;position:sticky;top:0}.detail-thumb{aspect-ratio:16/9;background:linear-gradient(var(--line-4) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--line-4) 1px, transparent 1px) 0 0 / 24px 24px, #000;border:1px solid var(--line-3);position:relative;overflow:hidden}.detail-thumb .track-thumb .thumb-solid{stroke-width:1.25px}.track-detail h2{font:600 clamp(1.8em, 3.2vw, 2.6em) / 1 var(--font-display);letter-spacing:.1em;text-transform:uppercase;margin:4px 0 0}.detail-desc{color:var(--ink-dim);overflow-wrap:anywhere;max-width:62ch;margin:0;line-height:1.6}.detail-error,.browser-notice{border:1px solid #ff384866;border-left:3px solid var(--lethal);overflow-wrap:anywhere;background:#ff38480f;margin:0;padding:10px 14px}.browser-notice{border-color:var(--line-3);border-left-color:var(--line);background:var(--line-4);margin-bottom:16px}.detail-facts{background:var(--line-4);border:1px solid var(--line-4);grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:1px;margin:4px 0;display:grid}.detail-facts>div,.detail-facts dt,.detail-facts dd{background:#000}.detail-facts dt{font:600 .66em var(--font-display);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);padding:8px 10px 0}.detail-facts dd{font:1em var(--font-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;padding:3px 10px 9px}.detail-recent,.mode-help{color:var(--ink-dim);font-variant-numeric:tabular-nums;margin:0;font-size:.86em}.detail-recent{font-family:var(--font-mono);font-size:.8em}.mode-switch{border:1px solid var(--line-2);justify-self:start;display:inline-flex}.mode-switch button{font:600 .8em var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;padding:.55em 1.2em}.mode-switch button+button{border-left:1px solid var(--line-2)}.mode-switch button:hover{color:var(--ink)}.mode-switch button.active{background:var(--line);color:#000}.detail-actions,.panel-actions,.error-actions{flex-wrap:wrap;gap:10px;display:flex}.play-button{min-width:10em;font-size:1.05em}.howto-grid{background:var(--line-3);border:1px solid var(--line-3);counter-reset:howto;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;display:grid}.howto-card{counter-increment:howto;transition:background var(--t-fast);background:#000;padding:22px 22px 24px;position:relative}.howto-card:hover{background:var(--void-1)}.howto-card:before{content:counter(howto, decimal-leading-zero);font:.75em var(--font-mono);color:var(--ink-faint);margin-bottom:14px;display:block}.howto-card.hazards{box-shadow:inset 0 2px 0 var(--lethal);background:repeating-linear-gradient(135deg,#ff384812 0 6px,#0000 6px 14px),#000}.howto-card h2{font:600 1.2em var(--font-display);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px}.howto-card p{color:var(--ink-dim);margin:0;line-height:1.6}.howto-cta{background:var(--brackets), transparent;border:1px solid var(--line-3);justify-items:start;gap:14px;max-width:820px;margin-top:28px;padding:22px 24px;display:grid}.howto-cta p,.howto-keys{color:var(--ink-dim);margin:0;line-height:1.6}.howto-keys{font:.78em/1.8 var(--font-mono);color:var(--ink-faint);margin-top:22px}.credits{border-top:1px solid var(--line-3);grid-template-columns:max-content 1fr;gap:0;max-width:760px;display:grid}.credits dt,.credits dd{border-bottom:1px solid var(--line-4);padding:12px 0}.credits dt{font:600 .75em var(--font-display);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);padding-right:32px}.credits dd{margin:0}.screen-loading,.screen-error{text-align:center;place-content:center;justify-items:center;gap:12px;min-height:100vh;display:grid}.screen-loading h1,.screen-error h1{font:600 2.2em var(--font-display);letter-spacing:.16em;text-transform:uppercase;margin:0}.loader{border:1px solid var(--line);width:44px;height:44px;box-shadow:9px -9px 0 -1px #000, 9px -9px 0 0 var(--line-2);animation:loader-turn 1.6s var(--ease) infinite;margin-bottom:14px;position:relative}@keyframes loader-turn{50%{transform:rotate(90deg)scale(.86)}to{transform:rotate(180deg)}}.error-message{border:1px solid #ff384866;border-left:3px solid var(--lethal);text-align:left;overflow-wrap:anywhere;background:#ff38480f;max-width:60ch;margin:0 0 12px;padding:12px 16px}.settings-panel{grid-template-columns:190px minmax(0,740px);gap:12px 44px;display:grid}@media (max-width:700px){.settings-panel{grid-template-columns:1fr}}.settings-nav{border-left:1px solid var(--line-3);counter-reset:settings;align-content:start;gap:0;display:grid}.settings-nav button{text-align:left;font:600 .85em var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);counter-increment:settings;transition:color var(--t-fast), background var(--t-fast);background:0 0;border:0;gap:12px;padding:11px 16px;display:flex;position:relative}.settings-nav button:before{content:counter(settings, decimal-leading-zero);font:400 .9em var(--font-mono);letter-spacing:0;opacity:.6}.settings-nav button:hover{color:var(--ink);background:var(--line-4)}.settings-nav button.active{color:var(--ink)}.settings-nav button.active:after{content:"";background:var(--line);width:2px;box-shadow:0 0 10px var(--glow);position:absolute;top:0;bottom:0;left:-1px}.settings-body{border-top:1px solid var(--line-3);gap:0;display:grid}.setting{border-bottom:1px solid var(--line-4);grid-template-columns:210px 1fr 72px;align-items:center;gap:6px 18px;padding:16px 0;display:grid}.setting-name{font:600 .88em var(--font-display);letter-spacing:.12em;text-transform:uppercase}.setting small,.setting-help{color:var(--ink-faint);grid-column:1/-1;margin:0;font-size:.8em;line-height:1.5}.setting-toggle{grid-template-columns:auto 1fr}.setting-toggle small{grid-column:2}.setting output{text-align:right;font:.9em var(--font-mono);font-variant-numeric:tabular-nums;color:var(--line)}.setting input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:0}.setting input[type=range]::-webkit-slider-runnable-track{background:var(--line-2);height:1px}.setting input[type=range]::-moz-range-track{background:var(--line-2);height:1px}.setting input[type=range]::-moz-range-progress{background:var(--line);height:1px}.setting input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--line);width:12px;height:12px;transition:box-shadow var(--t-fast);border:0;border-radius:0;margin-top:-6px;transform:rotate(45deg)}.setting input[type=range]::-moz-range-thumb{background:var(--line);border:0;border-radius:0;width:11px;height:11px;transform:rotate(45deg)}.setting input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--line-3), 0 0 14px var(--glow)}.setting input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--line-3), 0 0 14px var(--glow)}#shell input[type=checkbox]{appearance:none;border:1px solid var(--line-1);cursor:pointer;width:18px;height:18px;transition:background var(--t-fast), box-shadow var(--t-fast);background:#000;margin:0;position:relative}#shell input[type=checkbox]:checked{background:var(--line);box-shadow:inset 0 0 0 3px #000}#shell input[type=checkbox]:hover{border-color:var(--line)}.setting select{appearance:none;background:linear-gradient(45deg, transparent 50%, var(--line) 50%) right 15px center / 5px 5px no-repeat, linear-gradient(135deg, var(--line) 50%, transparent 50%) right 10px center / 5px 5px no-repeat, #000;border:1px solid var(--line-2);cursor:pointer;border-radius:0;justify-self:start;min-width:11em;padding:7px 34px 7px 12px}.setting select:hover{border-color:var(--line)}.setting select option{color:var(--ink);background:#000}.setting-outline{grid-template-columns:210px 1fr}.swatch-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.setting-outline .swatch{border:1px solid var(--swatch,var(--line-2));width:30px;height:30px;box-shadow:inset 0 0 0 3px #000, inset 0 0 0 4px var(--swatch,transparent);transition:transform var(--t-fast) var(--ease), box-shadow var(--t-fast);background:#000;padding:0;position:relative}.setting-outline .swatch:hover{transform:translateY(-2px)}.setting-outline .swatch.active{background:var(--swatch);box-shadow:inset 0 0 0 3px #000, 0 0 14px var(--swatch)}.setting-outline .swatch.custom{border-color:var(--line-2);width:auto;box-shadow:none;font:600 .72em var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);cursor:pointer;align-items:center;gap:8px;padding:0 10px 0 4px;display:inline-flex}.setting-outline .swatch.custom input[type=color]{cursor:pointer;background:0 0;border:0;width:22px;height:22px;padding:0}@media (max-width:560px){.setting,.setting-outline{grid-template-columns:1fr 56px}.setting .setting-name,.setting-outline .swatch-row{grid-column:1/-1}}.bindings{gap:0;padding:16px 0;display:grid}.bindings h3{font:600 .72em var(--font-display);letter-spacing:.34em;text-transform:uppercase;color:var(--ink-faint);margin:8px 0 4px}.bindings .setting-help{margin-bottom:10px}.bindings>.secondary{justify-self:start;margin-top:14px}.binding{border-bottom:1px solid var(--line-4);grid-template-columns:1fr 120px 120px 28px;align-items:center;gap:8px;padding:6px 0;display:grid}.key{border:1px solid var(--line-2);min-height:2.2em;font:.85em var(--font-mono);font-variant-numeric:tabular-nums;transition:border-color var(--t-fast), color var(--t-fast);background:#000;border-bottom-width:2px;border-radius:0;padding:0 10px}.key:hover{border-color:var(--line)}.key.waiting{border-color:var(--line);color:var(--line);animation:1s ease-in-out infinite pulse}.key-clear{color:var(--ink-faint);background:0 0;border:0}.key-clear:hover{color:var(--lethal)}.settings-notice{min-height:1.4em;font:.86em var(--font-mono);color:var(--line);grid-column:2;margin:0}.data{justify-items:start;gap:12px;padding:18px 0;display:grid}.confirm{border:1px solid #ff384880;gap:10px;padding:14px 16px;display:grid}.confirm p{margin:0}.confirm[hidden]{display:none}.play-layer,.game-host{position:absolute;inset:0}.game-canvas{cursor:crosshair;outline:none;width:100%;height:100%;display:block}.game-host:after{content:"";background:linear-gradient(var(--line), var(--line)) top / 1px 5px no-repeat, linear-gradient(var(--line), var(--line)) bottom / 1px 5px no-repeat, linear-gradient(var(--line), var(--line)) left / 5px 1px no-repeat, linear-gradient(var(--line), var(--line)) right / 5px 1px no-repeat;opacity:.85;pointer-events:none;width:15px;height:15px;margin:-7px 0 0 -7px;position:absolute;top:50%;left:50%}.game-debug{max-width:min(640px,70vw);max-height:calc(100% - 24px);font:12px/1.35 var(--font-mono);border:1px solid var(--line-3);pointer-events:none;background:#000000d1;margin:0;padding:10px 12px;position:absolute;top:12px;right:12px;overflow:auto}.panel-host{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.panel-host:has(.game-panel:not(.compact)){pointer-events:auto;background:repeating-linear-gradient(0deg,#ffffff05 0 1px,#0000 1px 3px),#000000b8}.game-panel{pointer-events:auto;background:var(--brackets), #000000f0;border:1px solid var(--line-3);width:min(460px,100vw - 32px);max-height:calc(100vh - 32px);animation:rise var(--t-med) var(--ease-out);scrollbar-color:var(--line-2) transparent;scrollbar-width:thin;gap:14px;padding:28px 30px;display:grid;overflow:auto;box-shadow:0 0 0 1px #000,0 40px 90px #000000e6}.game-panel h2{font:600 2.1em/1 var(--font-display);letter-spacing:.12em;text-transform:uppercase;margin:0}.panel-kicker{font:600 .72em var(--font-display);letter-spacing:.4em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:10px;margin:0;display:flex}.panel-kicker:before{content:"";background:var(--line);width:22px;height:1px}.panel-help,.panel-foot{color:var(--ink-dim);margin:0;line-height:1.55}.panel-foot{font:.78em var(--font-mono);color:var(--ink-faint)}.panel-actions.vertical{gap:6px;display:grid}.panel-actions.vertical .primary,.panel-actions.vertical .secondary{justify-content:flex-start}.settings-overlay{width:min(1000px,100vw - 32px)}.settings-overlay .screen{min-height:0;padding:0}.settings-overlay .screen-menu .menu-scene{display:none}.game-panel.results{text-align:center;justify-items:center}.game-panel.results .panel-kicker{justify-content:center}.game-panel.results .panel-kicker:after{content:"";background:var(--line);width:22px;height:1px}.game-panel.results .panel-actions{justify-content:center}.game-panel.compact{background:var(--brackets), #000000d1;pointer-events:none;width:auto;min-width:300px;padding:16px 28px;position:absolute;top:16%}.result-time{font:500 3.6em/1 var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin:0}.game-panel.best .result-time{color:var(--line);text-shadow:0 0 28px var(--glow)}.game-panel.best:before{content:"New best";font:700 .7em var(--font-display);letter-spacing:.32em;text-transform:uppercase;color:#000;background:var(--line);box-shadow:0 0 20px var(--glow);justify-self:center;padding:3px 10px 2px}.result-compare{font:600 1em var(--font-mono);color:var(--good);margin:0}.result-prev{font:.86em var(--font-mono);color:var(--ink-dim);font-variant-numeric:tabular-nums;margin:0}.splits{border-collapse:collapse;width:100%;font:.86em var(--font-mono);font-variant-numeric:tabular-nums}.splits thead th{font:600 .82em var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-2)}.splits th,.splits td{text-align:right;border-bottom:1px solid var(--line-4);padding:6px}.splits th:first-child{text-align:left;color:var(--ink-dim);font-weight:400}.splits .ahead{color:var(--good)}.splits .behind{color:var(--warn)}.splits tr.best-sector th:after{content:" ◆";color:var(--line)}.splits tr.best-sector td:first-of-type{color:var(--line)}.result-eligible{color:var(--ink-dim);margin:0;padding:0;font-size:.88em;list-style:none}.result-eligible[data-eligible=yes]{color:var(--good)}.result-eligible li{text-indent:-1.1em;padding-left:1.1em}.result-eligible li:before{content:"✕  ";color:var(--warn)}.ranked-line{color:var(--ink-dim);margin:0;font-size:.88em}.ranked-line.armed{color:var(--line)}.ranked-line p{margin:0 0 6px}.ranked-result{border:1px solid var(--line-4);border-left:2px solid var(--line-2);text-align:left;gap:2px;padding:8px 12px;font-size:.9em;display:grid}.ranked-result p{margin:0}.ranked-kicker{font:600 .7em var(--font-display);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}.ranked-time{font:500 1.35em/1.1 var(--font-mono);font-variant-numeric:tabular-nums}.ranked-result.accepted{border-left-color:var(--good)}.ranked-result.accepted .ranked-time{color:var(--good)}.ranked-result.held{border-left-color:var(--warn)}.ranked-result.rejected,.ranked-result.revoked,.ranked-result.error{border-left-color:var(--lethal)}.ranked-result.submitting{border-left-color:var(--line);border-left-style:dashed}.dev-scores td{font-family:var(--font-mono)}.game-hud{pointer-events:none;font-size:calc(16px * var(--ui-scale));color:var(--ink);text-shadow:0 0 6px #000,0 1px 2px #000;position:absolute;inset:0}.hud-top{justify-items:center;gap:6px;display:grid;position:absolute;top:18px;left:50%;transform:translate(-50%)}.hud-timer{font:500 2.2em/1 var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;align-items:center;gap:14px;display:flex}.hud-timer:before,.hud-timer:after{content:"";background:var(--line-2);width:28px;height:1px}.hud-timer[data-status=ready]{color:var(--ink-dim)}.hud-timer[data-status=finished]{color:var(--line);text-shadow:0 0 18px var(--glow)}.hud-timer[data-status=invalidated],.hud-timer[data-status=failed]{color:var(--ink-faint);text-decoration:line-through}.hud-split{font:600 .95em var(--font-mono);font-variant-numeric:tabular-nums;border:1px solid var(--line-3);background:#000000b3;padding:3px 10px}.hud-split[data-trend=ahead]{color:var(--good);border-color:#8dff8a66}.hud-split[data-trend=behind]{color:var(--warn);border-color:#ffb02e66}.hud-corner{border-left:1px solid var(--line-2);gap:4px;padding:8px 12px;font-size:.85em;display:grid;position:absolute;top:18px;left:20px}.hud-mode{font:600 .82em var(--font-display);letter-spacing:.3em;text-transform:uppercase;color:var(--line)}.hud-mode[data-mode=practice]{color:var(--ink-dim)}.hud-best{color:var(--ink-dim);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.hud-bottom{justify-items:center;gap:6px;display:grid;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.hud-speed{font:500 1.6em/1 var(--font-mono);font-variant-numeric:tabular-nums}.hud-speed:after{content:" m/s";color:var(--ink-dim);font-size:.5em}.hud-speedbar{border:1px solid var(--line-3);background:repeating-linear-gradient(90deg, transparent 0 19px, var(--line-3) 19px 20px);width:200px;height:5px;overflow:hidden}.hud-speedfill{background:var(--line);height:100%;box-shadow:0 0 10px var(--glow);transform-origin:0;transform:scaleX(0)}.hud-message{border:1px solid var(--line-3);text-align:center;background:#000000c7;max-width:min(640px,90vw);padding:7px 16px;font-size:.92em;position:absolute;bottom:88px;left:50%;transform:translate(-50%)}.hud-banner{animation:rise .18s var(--ease-out);justify-items:center;gap:10px;display:grid;position:absolute;top:34%;left:50%;transform:translate(-50%)}.hud-banner[hidden],.hud-message[hidden],.hud-split[hidden],.hud-details[hidden]{display:none}.hud-banner-text{font:700 1.9em var(--font-display);letter-spacing:.32em;text-transform:uppercase}.hud-banner-stripe{width:220px;height:6px}.hud-banner[data-kind=death] .hud-banner-text{color:var(--lethal);text-shadow:0 0 20px #ff384880}.hud-banner[data-kind=death] .hud-banner-stripe{background:repeating-linear-gradient(135deg, var(--lethal) 0 6px, transparent 6px 12px)}.hud-banner[data-kind=invalid] .hud-banner-stripe{background:repeating-linear-gradient(90deg, var(--ink-dim) 0 14px, transparent 14px 22px);height:1px}.hud-timer[data-status=invalidated]{letter-spacing:.08em;opacity:.85;font-size:1.1em}.hud-banner[data-kind=finish] .hud-banner-text{text-shadow:0 0 24px var(--glow)}.hud-banner[data-kind=finish] .hud-banner-stripe{background:linear-gradient(90deg, transparent, var(--line), transparent);height:1px;box-shadow:0 0 12px var(--glow)}.hud-details{background:var(--brackets), #000000b3;--bracket:8px;grid-template-columns:auto auto;gap:2px 16px;margin:0;padding:10px 14px;font-size:.8em;display:grid;position:absolute;bottom:22px;right:20px}.hud-details dt{font:600 .9em var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.hud-details dd{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin:0}.hud-flash{opacity:0;position:absolute;inset:0}.hud-flash.flash-death{background:radial-gradient(ellipse at center, transparent 30%, var(--lethal));animation:.6s ease-out hud-flash}.hud-flash.flash-checkpoint{background:radial-gradient(ellipse at center, transparent 55%, var(--line-2));animation:.45s ease-out hud-flash}.hud-flash.flash-finish{background:radial-gradient(ellipse at center, transparent 40%, var(--line-1));animation:.9s ease-out hud-flash}.game-hud[data-flashes=reduced] .hud-flash{--flash-peak:.22;animation-duration:1.2s}@keyframes hud-flash{0%{opacity:var(--flash-peak,.7)}to{opacity:0}}:root[data-reduced-motion=true] .hud-flash{animation:none!important}.replay-list{gap:6px;max-width:1080px;margin:18px 0;padding:0;list-style:none;display:grid}.replay-row{border:1px solid var(--line-4);border-left:2px solid var(--line-3);transition:border-color var(--t-fast), background var(--t-fast);background:#000;grid-template-columns:auto auto minmax(0,1fr) auto auto auto auto;align-items:center;gap:12px;padding:10px 14px;display:grid}.replay-row:hover,.replay-row:focus-within{border-color:var(--line-2);background:var(--line-4)}.replay-row.kind-pb{border-left-color:var(--lantern)}.replay-row.kind-imported{border-left-color:var(--ink-faint);border-left-style:dashed}.replay-main{min-width:0}#shell .replay-name{width:100%;font:600 1.1em / 1.2 var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:0;padding:2px 4px}#shell .replay-name:hover,#shell .replay-name:focus{border-color:var(--edge);background:var(--stone-0)}.replay-sub{font:.8em var(--font-mono);color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;margin:2px 4px 0;overflow:hidden}.replay-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--lantern-hi);font-size:1.1em}#shell .icon{color:var(--line);transition:text-shadow var(--t-fast);background:0 0;border:0;padding:0 4px;font-size:1.3em}#shell .icon:hover{text-shadow:0 0 12px var(--glow)}@media (max-width:760px){.replay-row{grid-template-columns:auto auto minmax(0,1fr) auto}.replay-row>button:not(.icon){grid-column:span 2}}.replay-host{height:100%}.replay-viewer{background:var(--stone-0);grid-template:"bar side""status side""canvas side"minmax(0,1fr)"controls side"/minmax(0,1fr) minmax(260px,340px);height:100vh;display:grid}.viewer-bar{border-bottom:1px solid var(--line-3);grid-area:bar;align-items:baseline;gap:16px;padding:12px 16px;display:flex}.viewer-bar h2{font:600 1.3em / 1.1 var(--font-display);letter-spacing:.12em;text-transform:uppercase;margin:0}.viewer-track{color:var(--ink-dim)}.viewer-status{font:.82em var(--font-mono);color:var(--ink-dim);grid-area:status;margin:0;padding:6px 16px}.viewer-status[data-verify=verified]{color:var(--good)}.viewer-status[data-verify=diverged],.viewer-status[data-verify=incompatible]{color:var(--warn)}.viewer-canvas{grid-area:canvas;width:100%;height:100%;min-height:0;display:block}.viewer-controls{border-top:1px solid var(--line-3);background:#000;flex-wrap:wrap;grid-area:controls;align-items:center;gap:8px;padding:10px 16px 14px;display:flex}.viewer-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;min-width:12ch;color:var(--lantern-hi)}.viewer-timeline-wrap{flex:100%;padding-top:8px;position:relative}.viewer-timeline{width:100%;accent-color:var(--line)}.viewer-marks{pointer-events:none;height:8px;position:absolute;inset:0 8px auto}.viewer-marks .mark{background:var(--line-1);width:2px;height:8px;position:absolute;top:0;transform:translate(-1px)}.viewer-marks .mark-death{background:var(--lethal)}.viewer-marks .mark-finish{background:var(--lantern);width:3px}.viewer-side{border-left:1px solid var(--line-3);background:#000;grid-area:side;align-content:start;gap:10px;padding:14px 16px;display:grid;overflow-y:auto}.viewer-field,.viewer-side .toggle{color:var(--ink-dim);align-items:center;gap:8px;display:flex}.viewer-side select,.viewer-controls select{border:1px solid var(--line-2);background:#000;border-radius:0;padding:4px 6px}.viewer-diagnostics{background:var(--brackets), #000;--bracket:8px;border:1px solid var(--line-4);gap:2px;margin:0;padding:8px 10px;font-size:.85em;display:grid}.viewer-diagnostics dt{color:var(--ink-faint)}.viewer-diagnostics dd{font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin:0}.viewer-analytics,.viewer-compare{gap:8px;font-size:.9em;display:grid}.viewer-analytics h3,.viewer-compare h3{font:600 .82em / 1.2 var(--font-display);letter-spacing:.26em;text-transform:uppercase;color:var(--line);margin:8px 0 0}.viewer-analytics dl{gap:3px;margin:0;display:grid}.viewer-diagnostics .row,.viewer-analytics .row,.viewer-compare .row{border-bottom:1px solid var(--line-4);justify-content:space-between;gap:12px;padding-bottom:3px;display:flex}.viewer-analytics dt{color:var(--ink-dim)}.viewer-analytics dd{font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin:0}.viewer-analytics svg{width:100%;height:auto}.viewer-analytics .methods{color:var(--ink-faint);font-size:.85em}.compare-total{font-family:var(--font-mono);color:var(--ink)}@media (max-width:900px){.replay-viewer{grid-template:"bar""status""canvas"60vh"controls""side"/1fr;height:auto;min-height:100vh}.viewer-side{border-left:0;border-top:1px solid var(--edge)}}.hud-ghost{color:var(--ink-dim);font:.82em var(--font-mono)}
