:root{--hall:#0B0B0C;--panel:#0B0B0C;--raise:#151517;--line:#2A2927;--fg:#F5F2EB;--muted:#B9B5AC;--accent:#A78BFA;--on-accent:#F5F2EB;--signal:#7C3AED;--f-ui:"Figtree","Helvetica Neue",Arial,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;color-scheme:dark}html,body,#root,.app{height:100%}body{margin:0}[hidden]{display:none!important}body{background:var(--hall);color:var(--fg);font-family:var(--f-ui);overflow:hidden;-webkit-font-smoothing:antialiased}#stage{position:fixed;top:0;right:0;bottom:0;left:0}#stage canvas{display:block;touch-action:none;outline:none}.tb{position:fixed;z-index:5;top:calc(env(safe-area-inset-top,0px) + 16px);left:max(16px,env(safe-area-inset-left,0px));width:min(300px,calc(100% - 32px));display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden;box-shadow:0 8px 28px #00000059}.tb>*{background:var(--panel);padding:9px 12px;min-width:0}.tb .head,.tb .wide,.tb .hint{grid-column:1/-1}.tb .brand{font-weight:600;font-size:17px;letter-spacing:-.02em}.tb .sub{color:var(--muted);font-size:12px;margin-top:3px}.tb .k{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.tb .v{font-family:var(--f-mono);font-size:14px;margin-top:3px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb .hint{font-size:11.5px;line-height:1.55;color:var(--muted)}.tb .hint b{color:var(--fg);font-weight:600}.touch-only{display:none}@media (pointer:coarse){.mouse-only{display:none}.touch-only{display:inline}}#rail{position:fixed;z-index:6;top:calc(env(safe-area-inset-top,0px) + 16px);right:max(16px,env(safe-area-inset-right,0px));max-height:calc(100% - 110px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));display:flex;flex-direction:column}#rail>.lil-gui.root{min-height:0;max-height:100%;border:1px solid var(--line);border-radius:3px;box-shadow:0 8px 28px #00000059}.lil-gui{--width:288px;--background-color:var(--panel);--title-background-color:#101215;--title-text-color:var(--fg);--text-color:var(--fg);--widget-color:var(--raise);--hover-color:#343944;--focus-color:#3d4450;--number-color:var(--accent);--string-color:#cfd8e6;--font-family:var(--f-ui);--font-family-mono:var(--f-mono);--font-size:12px;--input-font-size:12px;--widget-height:22px;--name-width:46%;--padding:6px;--spacing:5px}.lil-gui .title{font-weight:600;letter-spacing:.02em}.lil-gui.root>.title{font-family:var(--f-mono);font-weight:500;letter-spacing:.12em;text-transform:uppercase;font-size:11.5px}.viewbar{position:fixed;z-index:5;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 16px);display:flex;gap:2px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:6px;max-width:calc(100% - 32px);overflow-x:auto;box-shadow:0 8px 28px #00000059;scrollbar-width:none}.viewbar button{font:500 13px/1 var(--f-ui);color:var(--fg);background:transparent;border:0;padding:10px 12px;border-radius:4px;white-space:nowrap;cursor:pointer;display:flex;align-items:center;gap:7px}.viewbar button:hover{background:var(--raise)}.viewbar button[aria-pressed=true]{background:var(--signal);color:var(--on-accent)}.viewbar .key{font:500 10px/1 var(--f-mono);color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:2px 4px}.viewbar button[aria-pressed=true] .key{color:var(--on-accent);border-color:currentColor}.viewbar .sep{flex:0 0 1px;background:var(--line);margin:6px 4px}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (pointer:coarse){.viewbar .key{display:none}}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#08090bb8;display:grid;place-items:center;padding:calc(env(safe-area-inset-top,0px) + 16px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 16px) max(16px,env(safe-area-inset-left,0px))}.sheet-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px;max-width:min(1100px,100%);display:grid;gap:10px}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.sheet-head strong{font-weight:600}.sheet-card img{width:100%;max-height:70vh;object-fit:contain;border-radius:3px;background:#000}.sheet-card p{margin:0;color:var(--muted);font-size:12.5px}.btn{font:500 13px/1 var(--f-ui);color:var(--fg);background:var(--raise);border:1px solid var(--line);border-radius:4px;padding:8px 12px;cursor:pointer}.toast{position:fixed;z-index:30;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 76px);background:var(--fg);color:var(--panel);font-size:13px;padding:9px 14px;border-radius:4px;max-width:calc(100% - 32px)}.simbar{position:fixed;z-index:5;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 72px);max-width:calc(100% - 32px);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 12px;display:grid;gap:6px}.simstats{display:flex;flex-wrap:wrap;gap:4px 14px;font:500 12px/1.4 var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums}.simstats b{color:var(--fg);font-weight:500}.simstats span:first-child{color:var(--accent)}.simkey{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11px;color:var(--muted)}.simlink{font:600 12px/1.4 var(--f-ui);color:var(--accent);background:none;border:0;padding:0;cursor:pointer;margin-left:auto}.simlink:hover{text-decoration:underline}.simkey i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c);margin-right:5px;vertical-align:-1px}.simcard{width:min(1100px,100%);max-height:88vh;overflow:auto}.simwrap{overflow-x:auto}.simtable{width:100%;border-collapse:collapse;font-size:13px}.simtable th,.simtable td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.simtable th{font-weight:600;color:var(--fg)}.simtable th:first-child{color:var(--accent);text-align:left}.simtable td:first-child{text-align:left;white-space:normal;color:var(--muted);min-width:180px}.simtable td{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.simtable td.best{color:var(--accent);font-weight:600}.simheat{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.simheat figure{margin:0;display:grid;gap:6px}.simheat img{width:100%;border-radius:3px;border:1px solid var(--line)}.simheat figcaption,.simnote{color:var(--muted);font-size:12px;line-height:1.5;margin:0}@media (max-width:700px){.simbar{bottom:calc(env(safe-area-inset-bottom,0px) + 70px)}.simkey{display:none}}.app.walking .tb,.app.walking #rail,.app.walking .viewbar,.app.walking .simbar{display:none}.walkhud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:7;pointer-events:none}.walkhud .cross{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--fg);border:1px solid var(--hall)}.walkbar{position:absolute;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 16px);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 14px;max-width:calc(100% - 32px);padding:8px 8px 8px 14px;background:var(--panel);border:1px solid var(--line);border-radius:6px;font-size:12.5px;color:var(--muted);pointer-events:auto}.walkbar b{color:var(--fg);font-weight:600}.walkbar .btn[aria-pressed=true]{background:var(--signal);border-color:var(--signal);color:var(--on-accent)}.walkinfo{position:absolute;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 74px);width:max-content;max-width:min(560px,calc(100% - 32px));background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px 14px;display:grid;gap:4px}.walkinfo .k{font:500 11px/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.walkinfo span:last-child{font-size:15px;line-height:1.4;color:var(--fg)}.walktouch{display:none}@media (pointer:coarse){.walkbar{display:none}.walktouch{display:block}.walkinfo{top:calc(env(safe-area-inset-top,0px) + 68px);bottom:auto}}.walktouch>*{position:absolute;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.walkhint{left:50%;transform:translate(-50%);top:calc(env(safe-area-inset-top,0px) + 28px);margin:0;font-size:12px;color:var(--muted);white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.8);pointer-events:none!important}.stick{left:max(24px,env(safe-area-inset-left,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 28px);width:128px;height:128px;border-radius:50%;background:#0b0b0c73;border:1px solid rgba(245,242,235,.28);display:grid;place-items:center}.stick .knob{width:56px;height:56px;border-radius:50%;background:#f5f2ebe0;box-shadow:0 2px 10px #00000073;pointer-events:none}.act{border-radius:50%;font:600 13px/1 var(--f-ui);color:var(--fg);background:#0b0b0c8c;border:1px solid rgba(245,242,235,.28);display:grid;place-items:center;padding:0;cursor:pointer}.act[aria-pressed=true]{background:var(--signal);border-color:var(--signal);color:var(--on-accent)}.act.run{right:max(24px,env(safe-area-inset-right,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 40px);width:76px;height:76px}.act.crowd{right:calc(max(24px,env(safe-area-inset-right,0px)) + 8px);bottom:calc(env(safe-area-inset-bottom,0px) + 130px);width:60px;height:60px}.act.exit{right:max(16px,env(safe-area-inset-right,0px));top:calc(env(safe-area-inset-top,0px) + 16px);width:44px;height:44px;font-size:18px}.boot{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font:500 14px var(--f-mono);padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));text-align:center}@media (max-width:700px){.tb{width:auto;right:max(16px,env(safe-area-inset-right,0px))}.tb .cell,.tb .wide,.tb .hint{display:none}#rail{left:max(16px,env(safe-area-inset-left,0px));top:calc(env(safe-area-inset-top,0px) + 82px);max-height:calc(100% - 176px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}#rail>.lil-gui.root{--width:100%;width:100%}.viewbar button{padding:10px 9px}}
