:root{--bg: #12161f;--panel: #1a2130;--panel-2: #222c3d;--line: #2c3648;--text: #e6ebf2;--dim: #8894a8;--accent: #4dd0a8;--warn: #e8734a;--gold: #e6b95a;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);overscroll-behavior:none;touch-action:manipulation;user-select:none}#app{position:fixed;inset:0;display:flex;flex-direction:column}.screen{position:absolute;inset:0;display:none;flex-direction:column;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}.screen[data-active=true]{display:flex}button{font:inherit;color:inherit;border:1px solid var(--line);background:var(--panel-2);border-radius:10px;padding:10px 14px;cursor:pointer;transition:background .12s ease,transform 80ms ease}button:active{transform:scale(.97)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#10241d;font-weight:700}button.ghost{background:transparent}.menu-head{padding:22px 20px 12px}.menu-head h1{margin:0;font-size:26px;letter-spacing:-.02em}.menu-head p{margin:6px 0 0;color:var(--dim);font-size:13px;line-height:1.45}.level-list{flex:1;overflow-y:auto;padding:8px 16px 16px;display:flex;flex-direction:column;gap:8px;-webkit-overflow-scrolling:touch}.level-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;background:var(--panel)}.level-card .index{font-variant-numeric:tabular-nums;color:var(--dim);font-size:12px;min-width:18px}.level-card .body{flex:1;min-width:0}.sheet-body button[data-on=true]{border-color:var(--accent);color:var(--accent)}.building-head{padding:14px 4px 6px}.building-head:first-child{padding-top:2px}.building-name{font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent)}.building-head[data-locked=true] .building-name{color:var(--dim)}.building-premise{color:var(--dim);font-size:11px;line-height:1.45;margin-top:3px}.intro-building{width:34px;height:34px;border-radius:8px;flex:none;border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent)}.level-card .name{font-weight:650;font-size:15px}.level-card .meta{color:var(--dim);font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.build-stamp{color:var(--dim);opacity:.55;font-size:10px;margin-top:4px;letter-spacing:.4px}.level-card .gear-hint{color:var(--gold);opacity:.75;font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.level-card .stars{color:var(--gold);font-size:13px;letter-spacing:1px}.level-card[data-locked=true]{opacity:.45}.menu-foot{border-top:1px solid var(--line);padding:12px 16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mode-toggle{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.mode-toggle button{border:0;border-radius:0;padding:8px 12px;font-size:13px;background:transparent}.mode-toggle button[aria-pressed=true]{background:var(--accent);color:#10241d;font-weight:700}.hint{color:var(--dim);font-size:11px;line-height:1.4;flex-basis:100%}#stage{flex:1;position:relative;min-height:0}#stage canvas{display:block;width:100%;height:100%}.hud-overlay,.controls-overlay{position:absolute;left:0;right:0;display:flex;align-items:center;gap:8px;padding:4px 12px;pointer-events:none}.hud-overlay{top:0}.controls-overlay{bottom:0;justify-content:flex-start}.hud-overlay button,.controls-overlay button{pointer-events:auto}.hud-overlay .spacer{flex:1}.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:36px;height:36px;padding:0;border-radius:50%;background:#0c10179e;border:1px solid rgba(120,140,170,.32);color:var(--text);backdrop-filter:blur(6px)}.icon-button svg{width:20px;height:20px;display:block}.icon-button.wide{width:auto;border-radius:18px;padding:0 14px 0 10px;font-size:13px}.hud-overlay .value,.hud-overlay .label{-webkit-text-stroke:3px rgba(6,9,14,.82);paint-order:stroke fill}.hud-overlay .stat{text-align:right;font-variant-numeric:tabular-nums;min-width:44px}.hud-overlay .stat .value{font-size:18px;font-weight:700;line-height:1.1}.hud-overlay .stat .label{font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.07em}.hud-overlay .stat[data-pace=two] .value{color:var(--gold)}.hud-overlay .stat[data-pace=one] .value{color:var(--warn)}.results-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 22px;gap:4px}.results-body h2{margin:0;font-size:24px}.results-stars{font-size:34px;color:var(--gold);letter-spacing:4px;margin:4px 0 10px}.results-reason{color:var(--dim);font-size:13px;margin:0 0 16px;line-height:1.5}.results-table{display:grid;grid-template-columns:1fr auto;gap:8px 12px;font-size:14px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.results-table dt{color:var(--dim)}.results-table dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.results-foot{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}.results-foot button{flex:1}.sheet{position:absolute;inset:0;background:#080b10b8;display:none;align-items:flex-end;z-index:10}.sheet[data-open=true]{display:flex}.sheet-body{width:100%;background:var(--panel);border-top:1px solid var(--line);border-radius:16px 16px 0 0;padding:18px 18px calc(18px + var(--safe-bottom));display:flex;flex-direction:column;gap:10px}.sheet-body h3{margin:0 0 2px;font-size:16px}.sheet-body p{margin:0;color:var(--dim);font-size:12px;line-height:1.5}.intro-body{gap:14px}.intro-row{display:flex;align-items:center;gap:14px}.intro-title{font-weight:650;font-size:15px}.intro-line{color:var(--dim);font-size:13px;margin-top:2px;line-height:1.4}.intro-chip{position:relative;flex:0 0 auto;width:52px;height:34px;display:flex;align-items:center;justify-content:center}.intro-chip-plate{position:relative;width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:var(--bg)}.intro-chip[data-archetype=luggage] .intro-chip-plate{width:51px;justify-content:flex-start;padding-left:9px}.intro-chip[data-archetype=luggage] .intro-chip-plate:after{content:"";position:absolute;right:5px;top:6px;width:13px;height:17px;border-radius:4px;background:#12161f47}.intro-chip[data-archetype=vip] .intro-chip-plate{box-shadow:0 0 0 2px var(--gold)}.intro-chip[data-archetype=group] .intro-chip-plate:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:7px 0 0 7px;background:#9b8ce6}.intro-chip[data-archetype=impatient] .intro-chip-plate:after{content:"";position:absolute;left:0;bottom:0;width:45%;height:4px;border-radius:0 0 0 7px;background:var(--warn)}.intro-chip[data-archetype=courier] .intro-chip-plate:after{content:"";position:absolute;left:0;top:0;width:60%;height:4px;border-radius:7px 0 0;background:#5aa9e6}.pause-note{font-variant-numeric:tabular-nums}.level-tag{font-size:11px;font-weight:650;color:var(--dim);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34%;-webkit-text-stroke:3px rgba(6,9,14,.82);paint-order:stroke fill}.results-verdict{color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin-top:2px}.garage-body{flex:1;overflow-y:auto;padding:8px 16px 16px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.part-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px}.part-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.part-system{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.part-name{font-size:16px;font-weight:650;margin-top:2px}.part-headline{font-size:13px;color:var(--accent);font-variant-numeric:tabular-nums}.tier-pips{display:flex;gap:4px;padding-top:6px}.pip{width:18px;height:5px;border-radius:3px;background:var(--line)}.pip[data-on=true]{background:var(--accent)}.part-next{border-top:1px solid var(--line);padding-top:8px}.part-next-headline{font-size:13px;font-weight:650}.part-effect{font-size:12px;color:var(--dim);line-height:1.45;margin-top:2px}.wallet{font-variant-numeric:tabular-nums;font-weight:650;color:var(--gold)}.menu-foot button[data-ready=true]{border-color:var(--accent);color:var(--accent)}
