:root{color-scheme:light;font-family:Avenir Next,Helvetica Neue,sans-serif;--ink: #1d2a30;--paper: #f7f1df;--mint: #c9e8df;--orange: #f0a34d;--coral: #ef6c56;--cyan: #47b9c9;--lime: #94ce5d;--panel: rgba(27, 40, 46, .96);--hairline: rgba(247, 241, 223, .14)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--mint);color:var(--ink);overscroll-behavior:none}button,input{font:inherit}button{min-width:44px;min-height:44px}button:focus-visible{outline:3px solid #fff;outline-offset:3px}.sr-only,.sr-only:not(:focus):not(:active){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{position:relative;width:100%;height:100%;isolation:isolate;background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.58),transparent 35%),var(--mint)}#game-canvas{position:absolute;inset:0 380px 0 0;width:calc(100% - 380px);height:100%;display:block;touch-action:none}.game-header{position:absolute;z-index:20;top:max(18px,env(safe-area-inset-top));left:20px;right:400px;display:flex;align-items:flex-start;gap:14px;pointer-events:none}.brand-plate{position:relative;min-width:172px;padding:12px 18px 13px;color:var(--paper);background:var(--ink);box-shadow:7px 7px #1d2a302e;transform:rotate(-1deg)}.brand-plate:after{content:"";position:absolute;right:-8px;bottom:-8px;width:28px;height:28px;border:3px solid var(--orange)}.brand-kicker,.brand-plate em,.metric span,.task-heading,.dock-title,.station-chip,.control-hint,.trace-head span,.trace-filters,.system-node span,.detail-index span,.system-detail dt,.system-detail h3,.source-note,.utility-actions{font-family:Menlo,Monaco,monospace;letter-spacing:.1em;text-transform:uppercase}.brand-kicker{display:block;font-size:8px;color:#9fc4c0;margin-bottom:3px}.brand-plate strong{display:block;font-family:DIN Condensed,Avenir Next Condensed,sans-serif;font-size:26px;line-height:.92;letter-spacing:.04em}.brand-plate em{display:block;margin-top:4px;font-size:9px;color:var(--orange);font-style:normal}.metric-rack{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));max-width:520px;background:#f7f1dfeb;border:1px solid rgba(29,42,48,.14);box-shadow:0 10px 26px #2e4c4b1f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.metric{padding:10px 15px 9px;border-left:1px solid rgba(29,42,48,.12)}.metric:first-child{border-left:0}.metric span{display:block;font-size:8px;color:#66807f}.metric strong{display:block;margin-top:1px;font-size:20px;font-variant-numeric:tabular-nums}.metric-coins strong:before{content:"$";color:#d99231;margin-right:3px}.icon-button{pointer-events:auto;border:0;color:var(--paper);background:var(--ink);font-family:Menlo,monospace;font-weight:800;cursor:pointer}.task-card{position:absolute;z-index:18;top:112px;left:20px;width:255px;padding:14px 16px;background:#f7f1dfeb;border-left:5px solid var(--coral);box-shadow:0 10px 30px #2e4c4b1f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.task-heading{display:flex;justify-content:space-between;font-size:8px;color:#6d8180}.task-heading b{color:var(--coral)}.task-card>strong{display:block;margin:7px 0 8px;font-size:13px;letter-spacing:.02em}.task-card small{display:block;margin-top:5px;font:9px Menlo,monospace;text-align:right;color:#667b7a}.task-progress{height:5px;overflow:hidden;background:#d7d7c9}.task-progress i{display:block;width:0;height:100%;background:var(--coral);transition:width .25s ease}.upgrade-dock{position:absolute;z-index:18;left:20px;bottom:22px;display:flex;gap:7px;align-items:flex-end}.dock-title{align-self:stretch;display:grid;place-items:center;width:24px;color:var(--paper);background:var(--ink);font-size:8px;writing-mode:vertical-rl;transform:rotate(180deg)}.upgrade-dock button{width:88px;padding:8px 9px;border:0;background:#f7f1dff0;box-shadow:4px 4px #1d2a3026;cursor:pointer;text-align:left}.upgrade-dock button:hover:not(:disabled){transform:translateY(-3px)}.upgrade-dock button:disabled{opacity:.48;cursor:not-allowed}.upgrade-dock button>i{float:right;color:var(--coral);font-style:normal}.upgrade-dock button>strong{display:block;font-size:10px;letter-spacing:.04em}.upgrade-dock button small{display:flex;justify-content:space-between;margin-top:4px;font:8px Menlo,monospace;color:#677a79}.upgrade-dock button small b:before{content:"$"}.dock-tabs{display:flex;flex-direction:column;gap:4px;align-self:stretch}.dock-tabs button{flex:1;min-width:52px;padding:4px 6px;border:0;background:#1d2a30d1;color:#9fb5b2;font:700 8px Menlo,monospace;letter-spacing:.08em;cursor:pointer}.dock-tabs button.is-active{background:var(--ink);color:var(--paper);box-shadow:inset 0 0 0 1px var(--coral)}.dock-buttons{display:flex;gap:7px;align-items:flex-end}.booster-chip{position:absolute;z-index:18;top:88px;right:14px;display:flex;gap:6px;align-items:center;padding:6px 12px;background:#2cc4d3eb;color:#10272c;font:700 10px Menlo,monospace;box-shadow:3px 3px #1d2a3033}.booster-chip[hidden]{display:none}.booster-chip i{font-style:normal}.station-chip{position:absolute;z-index:18;left:50%;bottom:24px;transform:translate(-50%);display:grid;grid-template-columns:auto auto;gap:1px 9px;align-items:center;min-width:190px;padding:9px 14px;color:var(--paper);background:#1d2a30e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none}.station-chip i{grid-row:1 / 3;width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px #94ce5d29}.station-chip span{font-size:9px}.station-chip small{color:#9fb5b2;font-size:7px}.utility-actions{position:absolute;z-index:22;top:77px;right:400px;display:flex;gap:4px}.utility-actions button{min-height:32px;padding:0 11px;border:1px solid rgba(29,42,48,.16);color:var(--ink);background:#f7f1dfd1;font-size:8px;cursor:pointer}.control-hint{position:absolute;z-index:16;right:400px;bottom:24px;display:flex;gap:6px;align-items:center;color:#557170;font-size:7px}.control-hint kbd{padding:4px 6px;color:var(--paper);background:var(--ink);font:8px Menlo,monospace;box-shadow:2px 2px #1d2a302e}.virtual-joystick{position:absolute;z-index:30;left:22px;bottom:22px;display:none;width:112px;height:112px;border-radius:50%;color:#1d2a306b;background:#f7f1df8f;border:2px solid rgba(29,42,48,.16);touch-action:none}.joystick-arrows{position:absolute;inset:0;display:grid;place-items:center;font:48px Menlo,monospace}.joystick-knob{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px;border-radius:50%;background:var(--ink);box-shadow:0 8px 20px #1d2a3040;transition:transform .04s linear}.virtual-joystick.is-active{background:#f7f1dfd1}.toast{position:absolute;z-index:50;top:24px;left:50%;display:flex;gap:10px;align-items:center;padding:10px 16px;color:var(--paper);background:var(--ink);font:10px Menlo,monospace;transform:translate(-50%,-80px);opacity:0;transition:transform .25s ease,opacity .25s ease}.toast i{width:7px;height:7px;border-radius:50%;background:var(--orange)}.toast.is-visible{transform:translate(-50%);opacity:1}.trace-panel{position:absolute;z-index:40;top:0;right:0;bottom:0;width:380px;overflow:hidden;color:var(--paper);background:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),var(--panel);background-size:24px 24px;box-shadow:-18px 0 40px #1d2a3029}.trace-head{height:76px;padding:18px 18px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--hairline)}.trace-head span{display:block;color:#8fa9a7;font-size:7px}.trace-head strong{display:block;margin-top:2px;font:24px DIN Condensed,Avenir Next Condensed,sans-serif;letter-spacing:.06em}.trace-toggle{display:none;border:1px solid var(--hairline);color:var(--paper);background:transparent;cursor:pointer}.trace-body{height:calc(100% - 76px);display:flex;flex-direction:column}.trace-filters{display:flex;gap:4px;padding:10px 14px;overflow-x:auto;border-bottom:1px solid var(--hairline)}.trace-filters button{flex:0 0 auto;min-width:0;min-height:28px;padding:0 8px;border:1px solid var(--hairline);color:#8fa9a7;background:transparent;font-size:7px;cursor:pointer}.trace-filters button.is-active{color:var(--category);border-color:var(--category);background:color-mix(in srgb,var(--category) 12%,transparent)}.system-map{display:grid;grid-template-columns:1fr 1fr;gap:1px;max-height:170px;overflow-y:auto;background:var(--hairline);border-bottom:1px solid var(--hairline)}.system-node{position:relative;min-height:52px;padding:9px 24px 9px 12px;border:0;color:#a8bab8;background:#1c2a30;text-align:left;cursor:pointer}.system-node span{display:block;color:#5f7877;font-size:7px}.system-node strong{display:block;margin-top:2px;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.system-node i{position:absolute;right:11px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--node);transform:translateY(-50%)}.system-node.is-active{color:var(--paper);background:#263941}.system-node.is-active:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--orange)}.system-detail{flex:1;padding:16px 18px;overflow-y:auto}.detail-index{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;border-bottom:2px solid var(--accent);padding-bottom:8px}.detail-index span{color:var(--accent);font-size:8px}.detail-index b{font-size:19px;text-align:right}.system-detail>p{margin:11px 0 14px;color:#b9c8c5;font-size:11px;line-height:1.55}.system-detail dl{margin:0;display:grid;gap:9px}.system-detail dl div{padding:9px 10px;border:1px solid var(--hairline);background:#ffffff06}.system-detail dt{margin-bottom:5px;color:#78918f;font-size:7px}.system-detail dd{margin:0;color:#e9e3d3;font:9px/1.55 Menlo,monospace;overflow-wrap:anywhere}.system-detail h3{margin:0 0 8px;color:#78918f;font-size:7px}.flow-trace,.live-signal{margin-top:13px}.flow-trace ol{display:flex;gap:12px;margin:0;padding:0;list-style:none;overflow-x:auto}.flow-trace li{position:relative;flex:0 0 auto;padding:7px 9px;border:1px solid var(--hairline);color:#cbd5d2;font:8px Menlo,monospace}.flow-trace li:not(:last-child):after{content:"→";position:absolute;right:-11px;color:var(--accent)}.live-signal{padding:10px 11px;border-left:3px solid var(--accent);background:#ffffff09}.live-signal strong{display:block;color:var(--accent);font:12px Menlo,monospace}.live-signal small{display:block;margin-top:4px;color:#718a88;font:7px Menlo,monospace}.jump-button{width:100%;margin-top:13px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--accent);color:var(--accent);background:transparent;font:8px Menlo,monospace;cursor:pointer}.jump-button:hover{color:var(--ink);background:var(--accent)}.source-note{display:grid;grid-template-columns:auto 1fr;padding:10px 18px;border-top:1px solid var(--hairline);color:#718a88;font-size:7px}.source-note i{grid-row:1 / 3;width:7px;height:7px;margin:5px 9px 0 0;border-radius:50%;background:var(--lime)}.source-note strong{color:#aabbb8;font-size:8px}.loading-screen{position:absolute;z-index:100;inset:0;display:grid;place-content:center;justify-items:center;color:var(--paper);background:var(--ink);transition:opacity .45s ease,visibility .45s ease}.loading-screen.is-hidden{opacity:0;visibility:hidden}.loading-screen strong{margin-top:20px;font-family:DIN Condensed,Avenir Next Condensed,sans-serif;font-size:28px;letter-spacing:.08em}.loading-screen span{margin-top:4px;color:#8fa9a7;font:9px Menlo,monospace}.loading-mark{display:flex;gap:5px;align-items:end;height:38px}.loading-mark i{width:12px;background:var(--orange);animation:boot .8s ease-in-out infinite alternate}.loading-mark i:nth-child(1){height:18px}.loading-mark i:nth-child(2){height:34px;animation-delay:-.25s}.loading-mark i:nth-child(3){height:25px;animation-delay:-.5s}@keyframes boot{to{height:8px;background:var(--cyan)}}@media(max-width:1040px){#game-canvas{right:330px;width:calc(100% - 330px)}.trace-panel{width:330px}.game-header,.utility-actions,.control-hint{right:350px}.metric-rack{grid-template-columns:repeat(2,100px)}.brand-plate{min-width:150px}}@media(max-width:760px){#game-canvas{inset:0;width:100%;height:100%}.game-header{top:max(10px,env(safe-area-inset-top));left:10px;right:10px;gap:7px}.brand-plate{min-width:112px;padding:9px 10px;box-shadow:4px 4px #1d2a3024}.brand-plate strong{font-size:17px}.brand-kicker{font-size:6px}.metric-rack{grid-template-columns:repeat(2,minmax(70px,1fr));flex:1}.metric{padding:6px 8px}.metric span{font-size:6px}.metric strong{font-size:13px}.fullscreen-button{display:none}.task-card{top:92px;left:10px;width:200px;padding:10px 12px}.task-card>strong{font-size:10px}.upgrade-dock{left:auto;right:10px;bottom:166px;gap:4px;flex-direction:column;align-items:stretch}.dock-title{display:none}.dock-tabs{flex-direction:row}.dock-tabs button{min-height:30px}.dock-buttons{flex-direction:column;align-items:stretch;gap:4px}.upgrade-dock button{width:76px;min-height:44px;padding:5px 7px;box-shadow:2px 2px #1d2a3021}.upgrade-dock button>strong{font-size:8px}.upgrade-dock button small{font-size:6px}.booster-chip{top:78px;right:10px;font-size:8px}.station-chip{bottom:164px;min-width:155px;padding:7px 10px}.control-hint{display:none}.virtual-joystick{display:block;bottom:max(150px,calc(132px + env(safe-area-inset-bottom)))}.utility-actions{top:auto;right:10px;bottom:122px}.utility-actions button{min-height:44px;padding:0 8px}.trace-panel{inset:auto 0 0;width:100%;height:116px;border-radius:18px 18px 0 0;box-shadow:0 -14px 35px #1d2a302e;transition:height .3s cubic-bezier(.2,.8,.2,1)}.trace-panel.is-expanded{height:min(68vh,590px)}.trace-head{height:56px;padding:10px 14px}.trace-head strong{font-size:18px}.trace-toggle{display:block}.trace-panel.is-expanded .trace-toggle{transform:rotate(180deg)}.trace-body{height:calc(100% - 56px)}.trace-filters{padding:7px 10px}.trace-filters button{min-width:44px;min-height:44px}.system-map{max-height:126px;grid-template-columns:repeat(2,1fr)}.system-node{min-height:46px}.system-detail{padding:13px 14px}.source-note{display:none}.toast{top:84px;max-width:88vw}}@media(max-width:430px){.brand-plate{min-width:98px}.brand-plate em{font-size:6px}.metric-rack{grid-template-columns:repeat(2,minmax(60px,1fr))}.task-card{top:86px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
