:root{color-scheme:dark;--ink: #e3edf4;--muted: #8ea0ad;--line: rgba(127, 161, 184, .18);--panel: rgba(10, 19, 27, .84);--panel-strong: rgba(17, 29, 40, .94);--panel-soft: rgba(20, 34, 46, .72);--shadow: 0 22px 46px rgba(3, 8, 12, .36);--teal: #54c4df;--teal-soft: rgba(84, 196, 223, .16);--amber: #dfb14d;--amber-soft: rgba(223, 177, 77, .16);--green: #61d98f;--green-soft: rgba(97, 217, 143, .15);--red-soft: rgba(181, 82, 70, .18);font-family:Arial Narrow,Bahnschrift Condensed,Trebuchet MS,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;height:100vh;overflow:hidden;color:var(--ink);background:radial-gradient(circle at 16% 12%,rgba(167,193,214,.14),transparent 26%),radial-gradient(circle at 82% 20%,rgba(107,133,155,.12),transparent 22%),linear-gradient(155deg,#071018,#101d28 52%,#0b141d)}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.3;background:radial-gradient(circle at 18% 22%,rgba(93,111,126,.18) 0 44px,transparent 46px),radial-gradient(circle at 72% 52%,rgba(93,111,126,.14) 0 62px,transparent 64px),radial-gradient(circle at 48% 84%,rgba(93,111,126,.12) 0 52px,transparent 54px)}button{font:inherit}#app{min-height:100vh;height:100vh}.app-shell{height:100vh;padding:0;display:grid;grid-template-rows:minmax(0,1fr);gap:0;overflow:hidden}.app-grid{position:relative;display:block;width:min(calc(100vw - 20px),calc((100vh - 20px)*1.9));height:min(calc(100vh - 20px),calc((100vw - 20px) / 1.9));max-width:1480px;max-height:880px;margin:auto;min-height:0;overflow:hidden;border-radius:28px}.sidebar,.viewport-column{min-height:0}.viewport-column{position:relative;height:100%;min-height:0}.card{border-radius:20px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:rise .42s ease both}.topbar{display:none!important;padding:10px 14px;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;min-height:0}.title-block h1,.panel-header h2,.viewport-toolbar h2{margin:0;font-family:Arial Narrow,Bahnschrift Condensed,sans-serif;letter-spacing:.06em;text-transform:uppercase}.subtitle,.panel-note,.inspect-line,.build-desc,.build-meta,.contract-desc,.contract-meta,.toolbar-meta{color:var(--muted)}.eyebrow{margin:0 0 6px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.status-ribbon{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(92px,1fr);gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:thin}.status-ribbon::-webkit-scrollbar{height:6px}.resource-pill{padding:9px 10px;border-radius:14px;border:1px solid rgba(108,144,168,.14);background:linear-gradient(180deg,#1c2e3bf5,#0d171ff5);display:grid;gap:4px}.resource-pill span{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.resource-pill strong{font-family:Courier New,monospace;font-size:.96rem}.panel{padding:14px;min-height:0}.panel-header{margin-bottom:8px}.topbar-brand .eyebrow{margin-bottom:4px}.topbar-brand .subtitle{margin:2px 0 0;font-size:.82rem}.field-label{display:block;margin-bottom:6px;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.text-input{width:100%;margin-bottom:10px;padding:10px 12px;border-radius:14px;border:1px solid rgba(108,144,168,.16);background:#070f16eb;color:var(--ink);outline:none;transition:border-color .14s ease,box-shadow .14s ease}.text-input:focus{border-color:#54c4df6b;box-shadow:0 0 0 4px #54c4df17}.build-list,.action-list,.contract-list,.notification-list,.objective-list,.quality-list,.leaderboard-list{display:grid;gap:8px}.build-panel,.command-panel,.inspect-panel,.hud-panel{min-height:0}.left-rail,.right-rail{position:absolute;z-index:6;top:14px;bottom:136px;display:grid;gap:8px;overflow:hidden;pointer-events:none}.left-rail>*,.right-rail>*{pointer-events:auto}.left-rail{left:14px;width:min(24vw,320px);grid-template-rows:minmax(0,1fr) auto}.right-rail{right:14px;width:min(26vw,356px);grid-template-rows:auto minmax(0,1fr)}.build-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.build-scroll{overflow:auto;min-height:0;padding-right:4px}.command-panel{display:grid;gap:8px}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.brief-block{padding-top:6px;border-top:1px solid rgba(22,44,54,.08);display:grid;gap:6px}.hud-footnote{font-size:.74rem}.build-card,.action-button,.contract-button,.speed-button,.overlay-button,.hud-tab{border:1px solid rgba(108,144,168,.16);border-radius:14px;background:linear-gradient(180deg,#16242ffa,#0a121af5);color:var(--ink);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}.button-code{display:none;font-family:Courier New,monospace;letter-spacing:.08em;text-transform:uppercase}.button-icon{position:relative;display:inline-block;width:12px;height:12px;flex:0 0 12px}.button-icon:before,.button-icon:after{content:"";position:absolute}.icon-pause:before,.icon-pause:after{top:1px;bottom:1px;width:3px;border-radius:2px;background:currentColor}.icon-pause:before{left:1px}.icon-pause:after{right:1px}.icon-speed-1:before,.icon-speed-2:before,.icon-speed-4:before{inset:1px 1px 1px 3px;clip-path:polygon(0 0,100% 50%,0 100%);background:currentColor}.icon-speed-2:after,.icon-speed-4:after{inset:1px 0 1px 5px;clip-path:polygon(0 0,100% 50%,0 100%);background:color-mix(in srgb,currentColor 88%,transparent)}.icon-speed-4{width:14px;flex-basis:14px}.icon-speed-4:before{inset:1px 5px 1px 1px}.icon-speed-4:after{inset:1px 1px 1px 5px}.icon-overlay-clear:before{inset:1px;border:1.5px solid currentColor;border-radius:999px}.icon-overlay-clear:after{left:5px;top:-1px;bottom:-1px;width:1.5px;background:currentColor;transform:rotate(45deg);transform-origin:center}.icon-overlay-sites:before{inset:1px;background:radial-gradient(circle at 25% 25%,currentColor 0 1.3px,transparent 1.6px),radial-gradient(circle at 72% 35%,currentColor 0 1.3px,transparent 1.6px),radial-gradient(circle at 44% 74%,currentColor 0 1.3px,transparent 1.6px)}.icon-overlay-logistics:before,.icon-overlay-logistics:after{background:currentColor;border-radius:2px}.icon-overlay-logistics:before{left:1px;right:1px;top:5px;height:2px}.icon-overlay-logistics:after{top:1px;bottom:1px;left:5px;width:2px}.icon-overlay-storage:before{inset:2px 1px 1px;border:1.5px solid currentColor;border-top-width:3px;border-radius:2px}.icon-supply:before,.icon-supply:after,.icon-new:before,.icon-new:after{background:currentColor;border-radius:2px}.icon-supply:before,.icon-new:before{left:5px;top:1px;bottom:1px;width:2px}.icon-supply:after,.icon-new:after{top:5px;left:1px;right:1px;height:2px}.icon-clankers:before{inset:2px;border:1.5px solid currentColor;border-radius:3px}.icon-clankers:after{left:2px;right:2px;bottom:-1px;height:3px;background:radial-gradient(circle,currentColor 0 1.4px,transparent 1.6px) left center / 5px 3px repeat-x}.icon-recover:before{inset:1px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:999px}.icon-recover:after{top:0;right:1px;width:0;height:0;border-left:4px solid currentColor;border-top:3px solid transparent;border-bottom:3px solid transparent;transform:rotate(20deg)}.icon-save:before{inset:1px;border:1.5px solid currentColor;border-radius:2px;background:linear-gradient(currentColor,currentColor) 2px 2px / calc(100% - 4px) 3px no-repeat,linear-gradient(currentColor,currentColor) center bottom 2px / 5px 3px no-repeat}.icon-load:before{left:5px;top:1px;width:2px;height:7px;background:currentColor}.icon-load:after{left:2px;bottom:1px;width:8px;height:4px;border:1.5px solid currentColor;border-top:0;border-radius:0 0 2px 2px;box-sizing:border-box}.icon-new:before{left:5px;top:1px;bottom:1px;width:2px}.icon-new:after{top:5px;left:1px;right:1px;height:2px}.button-label{display:inline}.build-card,.action-button,.contract-button{width:100%;padding:11px 12px}.build-card,.contract-button{text-align:left}.build-card:hover,.action-button:hover,.contract-button:hover,.speed-button:hover,.overlay-button:hover,.hud-tab:hover{transform:translateY(-1px);border-color:#6c90a842;box-shadow:0 10px 20px #040a0e38}.build-topline{display:flex;justify-content:space-between;gap:12px}.build-card-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start}.build-glyph{min-width:36px;min-height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(180deg,#395b70eb,#182b3aeb);border:1px solid rgba(110,165,195,.24);font-family:Courier New,monospace;font-size:.72rem;letter-spacing:.08em}.build-head-copy{display:grid;gap:2px;min-width:0}.build-topline em{font-style:normal;color:var(--muted);text-transform:uppercase;font-size:.64rem;letter-spacing:.12em}.build-specs{display:block;color:var(--teal);font-family:Courier New,monospace;font-size:.7rem;letter-spacing:.06em}.build-desc{display:block;margin-top:4px;font-size:.82rem;line-height:1.32;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.build-meta{margin:8px 0 0;font-family:Courier New,monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.build-card.is-active{border-color:#54c4df6b;background:linear-gradient(180deg,#143849fa,#0c1e2af5)}.build-card.is-affordable{box-shadow:inset 0 0 0 1px #54c4df1a;border-color:#61d98f3d}.build-card.is-blocked{opacity:.76;border-color:#ba584e38;background:linear-gradient(180deg,#2b191df5,#120c10f5)}.action-button,.contract-button,.speed-button,.overlay-button,.hud-tab{cursor:pointer}.action-button,.speed-button,.overlay-button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.action-button{text-align:center;background:linear-gradient(180deg,#1b5f7af5,#0c3344fa);color:#f4fbfe;text-transform:uppercase;letter-spacing:.06em}.action-secondary{background:linear-gradient(180deg,#4c5763f2,#25303cfa)}.action-button:disabled,.contract-button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.viewport-card{position:relative;height:100%;padding:0;display:grid;grid-template-rows:minmax(0,1fr);gap:0;min-height:0;border-radius:28px;overflow:hidden}.viewport-toolbar{position:absolute;z-index:8;top:14px;left:14px;right:14px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;align-items:center;background:linear-gradient(180deg,#111e28db,#0a131bc7);border:1px solid rgba(108,144,168,.12);border-radius:16px;padding:10px 12px}.viewport-heading .eyebrow{margin-bottom:2px}.phone-pane-strip,.viewport-status-strip{display:grid}.inspect-chip{display:none;min-width:0;padding:8px 10px;border:1px solid rgba(108,144,168,.16);border-radius:12px;background:linear-gradient(180deg,#142634fa,#0a121af5);color:var(--ink);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phone-pane-strip{display:none;gap:6px}.phone-pane-button{padding:6px 8px;border:1px solid rgba(108,144,168,.16);border-radius:8px;background:linear-gradient(180deg,#16242ffa,#0a121af5);color:var(--ink);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem}.phone-pane-button.is-active{border-color:#54c4df6b;background:linear-gradient(180deg,#143849fa,#0c1e2af5)}.viewport-status-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;position:absolute;z-index:8;top:84px;left:14px;right:14px}.phone-scrim{position:absolute;inset:0;z-index:7;border:0;padding:0;background:#02070b70;opacity:0;pointer-events:none;transition:opacity .16s ease}.phone-scrim.is-open{opacity:1;pointer-events:auto}.viewport-status-pill{padding:5px 7px;border-radius:8px;border:1px solid rgba(108,144,168,.14);background:linear-gradient(180deg,#1c2e3bf5,#0d171ff5);display:grid;gap:2px}.viewport-status-pill span{font-size:.52rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.viewport-status-pill strong{font-family:Courier New,monospace;font-size:.7rem}.viewport-status-pill.state-good,.economy-row.state-good,.quality-row.state-good{border-color:#47b67057;background:linear-gradient(180deg,#12352cf5,#0b1814f5);box-shadow:inset 0 0 0 1px #61d98f14}.viewport-status-pill.state-warn,.economy-row.state-warn,.quality-row.state-warn{border-color:#d6a03f57;background:linear-gradient(180deg,#3d2d12f5,#191209f5);box-shadow:inset 0 0 0 1px #dfb14d14}.viewport-status-pill.state-bad,.economy-row.state-bad,.quality-row.state-bad{border-color:#ba584e57;background:linear-gradient(180deg,#401a17f5,#1a0b0af5);box-shadow:inset 0 0 0 1px #c45c5214}.viewport-status-pill.state-good strong,.economy-row.state-good .data-card-value,.quality-row.state-good .data-card-value{color:#8cf0b0}.viewport-status-pill.state-warn strong,.economy-row.state-warn .data-card-value,.quality-row.state-warn .data-card-value{color:#ffd082}.viewport-status-pill.state-bad strong,.economy-row.state-bad .data-card-value,.quality-row.state-bad .data-card-value{color:#ff9a90}.toolbar-meta{display:grid;gap:4px;font-family:Courier New,monospace;font-size:.74rem}.speed-strip{display:flex;gap:6px;align-items:center}.overlay-strip{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.speed-button,.overlay-button,.hud-tab{padding:6px 9px;font-size:.72rem}.speed-button.is-active,.overlay-button.is-active,.hud-tab.is-active{border-color:#54c4df6b;background:linear-gradient(180deg,#143849fa,#0c1e2af5)}.viewport-frame{position:relative;min-height:0;height:100%;overflow:hidden;border-radius:0;border:0;background:linear-gradient(180deg,#080f15f5,#101a24f0);box-shadow:inset 0 0 0 1px #a5c7dc0a}#world-canvas{display:block;width:100%;height:100%;cursor:crosshair}.viewport-overlay{position:absolute;z-index:2;padding:8px 10px;border-radius:999px;background:#070f16c7;border:1px solid rgba(108,144,168,.16);color:var(--muted);font-family:Courier New,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;pointer-events:none}.viewport-overlay.top-left{top:128px;left:14px}.viewport-overlay.top-right{top:128px;right:14px}.hover-tooltip{position:absolute;z-index:4;min-width:220px;max-width:280px;padding:10px 12px;border-radius:14px;background:#070f16eb;border:1px solid rgba(108,144,168,.18);box-shadow:0 12px 24px #02070b42;display:grid;gap:4px;pointer-events:none;transform:translateY(-100%)}.selection-panel{position:absolute;z-index:6;width:250px;padding:10px 12px;border-radius:14px;background:#070f16f0;border:1px solid rgba(108,144,168,.18);box-shadow:0 16px 28px #02070b57;display:grid;gap:6px}.selection-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.selection-panel-kicker{margin:0 0 3px;color:var(--muted);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase}.selection-panel-title{display:block;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase}.selection-panel-state{padding:4px 7px;border-radius:999px;border:1px solid rgba(108,144,168,.16);background:#111d28d1;font-family:Courier New,monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.08em}.selection-panel-state.state-good{color:#8cf0b0;border-color:#47b67057}.selection-panel-state.state-warn{color:#ffd082;border-color:#d6a03f57}.selection-panel-state.state-bad{color:#ff9a90;border-color:#ba584e57}.selection-panel-line{margin:0;color:var(--ink);font-size:.74rem;line-height:1.3}.selection-panel-detail{color:var(--muted);font-size:.68rem}.selection-panel-actions{display:flex;flex-wrap:wrap;gap:6px}.selection-panel-button{border:1px solid rgba(108,144,168,.16);border-radius:10px;background:linear-gradient(180deg,#16242ffa,#0a121af5);color:var(--ink);padding:7px 9px;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}.selection-panel-button:hover{transform:translateY(-1px);border-color:#54c4df3d;box-shadow:0 10px 20px #040a0e38;background:linear-gradient(180deg,#143849fa,#0c1e2af5)}.hover-tooltip strong{font-size:.9rem;letter-spacing:.04em;text-transform:uppercase}.hover-tooltip span{color:var(--muted);font-size:.8rem;line-height:1.35}.context-menu{position:absolute;z-index:5;min-width:220px;padding:8px;border-radius:14px;background:#070f16f2;border:1px solid rgba(108,144,168,.2);box-shadow:0 16px 28px #02070b57;display:grid;gap:6px}.context-menu-button{border:1px solid rgba(108,144,168,.16);border-radius:10px;background:linear-gradient(180deg,#16242ffa,#0a121af5);color:var(--ink);padding:10px 12px;text-align:left;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}.context-menu-button:hover{transform:translateY(-1px);border-color:#54c4df3d;box-shadow:0 10px 20px #040a0e38;background:linear-gradient(180deg,#143849fa,#0c1e2af5)}.placement-banner,.victory-banner,.ceremony-banner{position:absolute;left:16px;right:16px;border-radius:18px;padding:12px 18px;font-family:Courier New,monospace;font-size:.84rem}.placement-banner{bottom:16px;background:#0e394aeb;color:#ecf8fc;z-index:3}.placement-banner.is-invalid{background:#76291ceb}.victory-banner{top:16px;left:50%;right:auto;transform:translate(-50%);background:#177c52f0;color:#eefcf5;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase}.ceremony-banner{top:18px;left:50%;right:auto;width:min(430px,calc(100% - 24px));transform:translate(-50%);z-index:4;display:grid;gap:4px;background:linear-gradient(180deg,color-mix(in srgb,var(--ceremony-tint, #8ddfff) 18%,rgba(8,18,26,.96)),#070e14f0),#070f16f0;border:1px solid color-mix(in srgb,var(--ceremony-tint, #8ddfff) 58%,rgba(108,144,168,.18));box-shadow:0 18px 32px #02070b57}.ceremony-kicker{color:color-mix(in srgb,var(--ceremony-tint, #8ddfff) 72%,#f4fbfe);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase}.ceremony-title{font-size:.92rem;line-height:1.05;letter-spacing:.06em;text-transform:uppercase}.ceremony-body{color:#e1ebf1db;font-size:.72rem;line-height:1.3}.ceremony-progress{height:3px;border-radius:999px;background:#ffffff14;overflow:hidden}.ceremony-progress:after{content:"";display:block;height:100%;width:calc(var(--ceremony-progress, 1) * 100%);border-radius:inherit;background:color-mix(in srgb,var(--ceremony-tint, #8ddfff) 78%,white)}.hidden{display:none}.alert-row{position:absolute;z-index:7;left:50%;bottom:128px;transform:translate(-50%);display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:min(50vw,640px);pointer-events:none}.alert-chip{padding:10px 14px;border-radius:999px;background:var(--amber-soft);color:#f0c77f;border:1px solid rgba(208,139,37,.24);font-family:Courier New,monospace;font-size:.82rem}.inspect-line,.panel-note{margin:0;line-height:1.5}.score-note{margin-top:0;padding-top:8px;font-family:Courier New,monospace}.objective-list,.notification-list,.economy-list,.quality-list{margin:0;padding:0;list-style:none}.economy-list{display:grid;gap:8px}.economy-row{border-radius:14px;padding:10px 12px;background:#111d28bd;border:1px solid rgba(108,144,168,.12);color:var(--ink);display:grid;gap:3px}.quality-row{border-radius:14px;padding:10px 12px;background:#111d28bd;border:1px solid rgba(108,144,168,.12);display:grid;gap:4px}.data-card-kicker{color:var(--muted);font-size:.58rem;line-height:1;text-transform:uppercase;letter-spacing:.14em}.data-card-value{font-family:Courier New,monospace;font-size:.98rem;line-height:1.05}.data-card-detail{color:var(--muted);font-size:.72rem;line-height:1.28}.leaderboard-list{margin:0;padding-left:0;list-style:none}.objective,.notification,.contract-card,.leaderboard-entry{border-radius:14px;padding:10px 11px;background:#111d28bd;border:1px solid rgba(108,144,168,.12)}.contract-desc,.contract-meta,.notification,.objective,.leaderboard-entry{font-size:.76rem;line-height:1.3}.contract-desc{margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.contract-meta{margin:0;text-transform:uppercase;letter-spacing:.06em}.hud-panel{display:grid;grid-template-rows:auto minmax(0,1fr)}.hud-panel-header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.hud-tabs{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.hud-tab{font-size:.72rem}.hud-tab-panel{display:none;min-height:0;overflow:auto;padding-right:4px}.hud-tab-panel.is-active{display:grid;gap:10px;align-content:start}.hud-section{display:grid;gap:6px}.objective.done{background:var(--green-soft);border-color:#17875a38}.command-dock{position:absolute;z-index:8;left:14px;right:14px;bottom:14px;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 10px;border-radius:14px;background:linear-gradient(180deg,#111e28e6,#0a131bd1);border:1px solid rgba(108,144,168,.12)}.dock-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.dock-button{min-height:40px;font-size:.72rem}.build-dock{position:absolute;z-index:8;left:14px;right:14px;bottom:76px;display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 0;scrollbar-width:thin}.build-dock-button{min-width:102px;padding:8px 9px;border-radius:12px;border:1px solid rgba(108,144,168,.16);background:linear-gradient(180deg,#121f2afa,#091118f5);color:var(--ink);display:grid;gap:4px;justify-items:start;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}.build-dock-button:hover{transform:translateY(-1px);border-color:#6c90a842;box-shadow:0 10px 20px #040a0e38}.build-dock-button.is-active{border-color:#54c4df6b;background:linear-gradient(180deg,#143849fa,#0c1e2af5)}.build-dock-button.is-blocked{opacity:.6;border-color:#ba584e38}.build-dock-glyph{min-width:26px;min-height:26px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(180deg,#395b70eb,#182b3aeb);border:1px solid rgba(110,165,195,.24);font-family:Courier New,monospace;font-size:.66rem;letter-spacing:.06em}.build-dock-label{font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;text-align:left;line-height:1.1}.contract-card{display:grid;gap:10px}.leaderboard-entry{display:grid;gap:6px}.leaderboard-empty{color:var(--muted)}.leaderboard-topline{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.leaderboard-score,.leaderboard-meta{font-family:Courier New,monospace}.leaderboard-meta{margin:0;color:var(--muted);font-size:.8rem;line-height:1.45}.contract-card.locked{color:var(--muted)}.contract-desc,.contract-meta{margin:0;line-height:1.45}.contract-meta{font-family:Courier New,monospace;font-size:.8rem}.contract-button{text-align:center}.notification.info{background:var(--teal-soft)}.notification.success{background:var(--green-soft)}.notification.warning{background:var(--red-soft)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1200px){body,#app,.app-shell{height:100vh;overflow:hidden}.app-grid{width:calc(100vw - 12px);height:calc(100vh - 12px);max-width:none;max-height:none}.viewport-frame{min-height:440px}.left-rail{width:min(28vw,296px)}.right-rail{width:min(30vw,316px)}.viewport-toolbar{grid-template-columns:minmax(0,1fr) auto auto}.overlay-strip{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}.alert-row{bottom:120px;max-width:min(64vw,560px)}}@media(max-width:720px){.app-shell{padding:0;gap:0}.panel{padding:11px}.app-grid{width:100vw;height:100vh;border-radius:0}.left-rail,.right-rail{width:min(44vw,260px);bottom:124px}.viewport-toolbar{top:8px;left:8px;right:8px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr) auto auto;gap:5px;padding:6px 8px}.viewport-heading .eyebrow,.toolbar-meta{display:none}.viewport-heading h2{font-size:.84rem}.inspect-chip{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px;font-size:.64rem;border-radius:10px}.viewport-status-strip{top:56px;left:8px;right:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.viewport-status-pill:nth-child(n+4){display:none}.viewport-status-pill span{font-size:.48rem}.viewport-status-pill strong{font-size:.78rem}.build-dock{left:8px;right:8px;bottom:52px}.build-dock-button{min-width:88px;padding:7px 8px}.selection-panel{width:min(220px,calc(100vw - 20px));padding:8px 9px}.ceremony-banner{top:70px;width:min(320px,calc(100vw - 16px));padding:9px 11px;gap:3px}.ceremony-title{font-size:.74rem}.ceremony-body{font-size:.62rem}.selection-panel-title{font-size:.74rem}.selection-panel-line,.selection-panel-detail{font-size:.64rem}.button-label{display:none}.build-desc,.contract-desc,.data-card-detail{-webkit-line-clamp:1;font-size:.64rem}.command-dock{left:8px;right:8px;bottom:8px;grid-template-columns:repeat(6,minmax(0,1fr));padding:5px;gap:5px}.dock-group{display:contents}.dock-button{min-height:32px;padding:6px 7px;font-size:.58rem;border-radius:8px}.alert-row{bottom:92px;max-width:min(78vw,360px)}.viewport-overlay.top-left,.viewport-overlay.top-right{display:none}}@media(max-height:540px)and (orientation:landscape){body,#app,.app-shell{height:100vh;overflow:hidden}.app-shell{padding:0;gap:0;grid-template-rows:1fr}.app-grid,.viewport-column,.viewport-card{height:100%}.app-grid{width:100vw;max-width:none;height:100vh;max-height:none;border-radius:0}.viewport-card{border-radius:0}.viewport-toolbar{top:8px;left:8px;right:8px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr) auto auto auto;gap:4px;padding:5px 7px}.viewport-heading .eyebrow,.toolbar-meta{display:none}.viewport-heading h2{font-size:.78rem}.inspect-chip{display:inline-flex;align-items:center;justify-content:center;padding:5px 7px;font-size:.58rem;border-radius:8px}.viewport-status-strip{top:46px;left:8px;right:8px;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.viewport-status-pill span{font-size:.44rem;letter-spacing:.12em}.viewport-status-pill strong{font-size:.74rem}.phone-pane-strip{display:flex;gap:4px}.left-rail,.right-rail{z-index:9;padding:8px;border-radius:14px;border:1px solid rgba(108,144,168,.18);background:linear-gradient(180deg,#0a141df5,#060c12f0);box-shadow:0 18px 34px #03080c66;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;transition:transform .18s ease,opacity .18s ease}.left-rail{inset:auto 8px 92px;width:auto;max-height:min(44vh,276px);grid-template-rows:minmax(0,1fr);transform:translateY(calc(100% + 16px));opacity:0}.right-rail{width:min(82vw,320px);inset:78px 8px 86px auto;transform:translate(calc(100% + 12px));opacity:0}.left-rail.is-phone-open,.right-rail.is-phone-open{transform:translate(0);opacity:1}.left-rail.is-phone-open{transform:translateY(0)}.command-panel{display:none}.left-rail>.panel,.right-rail>.panel{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;animation:none}.inspect-panel{max-height:none;overflow:visible;padding-bottom:6px;border-bottom:1px solid rgba(108,144,168,.14)}.selection-panel{width:min(210px,calc(100vw - 20px));padding:7px 8px;gap:5px}.ceremony-banner{top:54px;width:min(290px,calc(100vw - 16px));padding:7px 9px;gap:2px}.ceremony-kicker{font-size:.5rem}.ceremony-title{font-size:.66rem}.ceremony-body{font-size:.56rem}.selection-panel-title{font-size:.68rem}.selection-panel-state{padding:3px 6px;font-size:.54rem}.selection-panel-line,.selection-panel-detail,.selection-panel-button{font-size:.58rem}.hud-panel{min-height:0}.hud-panel-header{position:sticky;top:0;z-index:1;padding-bottom:6px;background:linear-gradient(180deg,#0a141dfa,#0a141dd6)}.panel-header h2,.inspect-line,.panel-note,.leaderboard-entry,.objective,.notification,.contract-card,.build-desc,.build-meta{font-size:.68rem;line-height:1.24}.panel-header .eyebrow,.build-topline em,.field-label{font-size:.58rem}.build-glyph{min-width:30px;min-height:30px;font-size:.62rem}.build-card,.contract-button{padding:8px 9px}.build-specs,.data-card-value,.build-card strong{font-size:.64rem}.data-card-kicker,.data-card-detail{font-size:.54rem}.button-label{display:none}.hud-tab{padding:5px 7px;font-size:.62rem;border-radius:10px}.build-dock{left:8px;right:8px;bottom:44px;display:flex;gap:4px}body.phone-pane-build .build-dock,body.phone-pane-hud .build-dock,body.phone-pane-build .command-dock,body.phone-pane-hud .command-dock{opacity:.18;pointer-events:none}.command-dock{left:8px;right:8px;bottom:8px;grid-template-columns:repeat(6,minmax(0,1fr));padding:4px;gap:4px}.dock-group{display:contents}.dock-button{min-height:28px;padding:5px 6px;font-size:.54rem;border-radius:8px}.build-dock-button{min-width:76px;padding:6px 7px;gap:3px}.build-dock-glyph{min-width:22px;min-height:22px;font-size:.58rem}.build-dock-label,.phone-pane-button,.speed-button,.overlay-button{font-size:.56rem}.alert-row{bottom:78px;max-width:min(60vw,420px)}.viewport-overlay.top-left,.viewport-overlay.top-right{display:none}}
