:root{--bg-canvas: #060910;--bg-obsidian: rgba(10, 15, 26, .78);--bg-obsidian-solid: #0d121f;--bg-card: rgba(15, 23, 42, .65);--bg-card-hover: rgba(30, 41, 59, .75);--bg-card-active: rgba(51, 65, 85, .85);--border-hairline: rgba(255, 255, 255, .09);--border-hover: rgba(255, 255, 255, .22);--border-focus: rgba(245, 158, 11, .6);--border-specular: linear-gradient(135deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, .03));--accent-gold: #f59e0b;--accent-gold-glow: rgba(245, 158, 11, .25);--accent-azure: #0ea5e9;--accent-azure-glow: rgba(14, 165, 233, .25);--accent-emerald: #10b981;--accent-emerald-glow: rgba(16, 185, 129, .25);--accent-terracotta: #ea580c;--accent-terracotta-glow: rgba(234, 88, 12, .25);--accent-purple: #a855f7;--accent-rose: #f43f5e;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--text-dim: #475569;--font-display: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", monospace;--shadow-dock: 0 20px 50px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .08);--shadow-panel: 0 16px 36px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .06);--shadow-glow-gold: 0 0 24px rgba(245, 158, 11, .35);--shadow-glow-azure: 0 0 24px rgba(14, 165, 233, .35);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1)}*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}html,body,#app{width:100%;height:100%;overflow:hidden;background-color:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#viewport-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#map-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:var(--bg-canvas)}#map-container.hidden{display:none}#map-container canvas.maplibregl-canvas{outline:none}#viewport-canvas.hidden{display:none}#hud-root{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;display:grid;grid-template-rows:auto auto 1fr auto;padding:.85rem 1.25rem;gap:.55rem;transition:gap .28s var(--ease-drawer),padding .28s var(--ease-drawer)}#hud-root.top-minimized{gap:.35rem;padding-top:.55rem}.telemetry-bar{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;background:var(--bg-obsidian);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border:1px solid var(--border-hairline);border-radius:14px;padding:.6rem .95rem;box-shadow:var(--shadow-dock);animation:slideDown .35s cubic-bezier(.16,1,.3,1);transition:padding .28s var(--ease-drawer),gap .28s var(--ease-drawer),background .2s ease,box-shadow .28s ease,border-radius .28s ease}.telemetry-bar.minimized{padding:.35rem .75rem;gap:.75rem;border-radius:12px;background:#0a0f1ad9;box-shadow:0 10px 30px #00000080}.brand-badge{display:flex;align-items:center;gap:.75rem;padding-right:1rem;border-right:1px solid var(--border-hairline);transition:padding .24s ease,gap .24s ease}.telemetry-bar.minimized .brand-badge{padding-right:.65rem;gap:.5rem}.brand-logo-gem{width:26px;height:26px;background:linear-gradient(135deg,var(--accent-gold),var(--accent-terracotta));border-radius:6px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow-gold);transition:width .24s ease,height .24s ease}.telemetry-bar.minimized .brand-logo-gem{width:22px;height:22px}.brand-logo-gem svg{width:16px;height:16px;color:#fff;transition:width .24s ease,height .24s ease}.telemetry-bar.minimized .brand-logo-gem svg{width:13px;height:13px}.brand-text{display:flex;flex-direction:column}.city-name{font-family:var(--font-display);font-weight:800;font-size:1.05rem;letter-spacing:.08em;color:#fff;transition:font-size .24s ease}.telemetry-bar.minimized .city-name{font-size:.88rem}.city-sub{font-size:.62rem;font-weight:600;letter-spacing:.05em;color:var(--text-muted)}.telemetry-bar.minimized .city-sub{display:none}.metrics-cluster{display:flex;align-items:center;gap:1rem;flex:1;transition:gap .24s ease}.metric-card{display:flex;flex-direction:column;gap:.15rem;padding:.15rem .5rem;border-right:1px solid var(--border-hairline);min-width:110px;transition:all .24s var(--ease-out)}.telemetry-bar.minimized .metrics-cluster{gap:.5rem}.telemetry-bar.minimized #metric-employment,.telemetry-bar.minimized #metric-bluegreen,.telemetry-bar.minimized #metric-farmers,.telemetry-bar.minimized #metric-alignment{display:none}.telemetry-bar.minimized #metric-treasury,.telemetry-bar.minimized #metric-population{min-width:0;padding:.15rem .55rem;flex-direction:row;align-items:center;gap:.4rem;background:#ffffff0a;border:1px solid var(--border-hairline);border-radius:6px}.metric-label{font-size:.6rem;font-weight:700;color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase}.telemetry-bar.minimized .metric-label{font-size:.52rem;letter-spacing:.03em;color:var(--text-muted)}.metric-value{font-family:var(--font-mono);font-size:.92rem;font-weight:700;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:.35rem;color:var(--text-primary)}.telemetry-bar.minimized .metric-value{font-size:.82rem}.metric-value.gold{color:var(--accent-gold)}.metric-value.azure{color:var(--accent-azure)}.metric-value.emerald{color:var(--accent-emerald)}.metric-value.purple{color:var(--accent-purple)}.badge{font-size:.58rem;padding:.1rem .3rem;border-radius:4px;font-weight:700;letter-spacing:.04em}.badge.pass{background:#10b9812e;color:#34d399;border:1px solid rgba(16,185,129,.35)}.badge.fail{background:#f43f5e2e;color:#fb7185;border:1px solid rgba(244,63,94,.35)}.studio-controls{display:flex;align-items:center;gap:.4rem}.icon-btn{pointer-events:auto;background:#ffffff0a;border:1px solid var(--border-hairline);border-radius:8px;color:var(--text-secondary);padding:.45rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .16s var(--ease-out),background .16s ease,border-color .16s ease,color .16s ease}.telemetry-bar.minimized .icon-btn{padding:.32rem}.icon-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-hover)}.icon-btn:active{transform:scale(.97)}.icon-btn.active{background:#f59e0b26;color:var(--accent-gold);border-color:var(--accent-gold)}.toggle-hud-btn{background:#ffffff0f;border-color:#ffffff1f;color:var(--text-secondary)}.toggle-hud-btn:hover{background:#f59e0b2e;color:var(--accent-gold);border-color:#f59e0b73}.toggle-hud-btn svg{width:15px;height:15px}.gazette-stream{pointer-events:auto;display:flex;align-items:center;gap:.75rem;background:#0a0f1a99;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-hairline);border-radius:8px;padding:.32rem .75rem;font-size:.72rem;box-shadow:var(--shadow-panel);transition:all .28s var(--ease-drawer)}.gazette-tag{font-family:var(--font-display);font-weight:800;color:var(--accent-gold);letter-spacing:.08em;display:flex;align-items:center;gap:.35rem;cursor:pointer;padding:1px 4px;border-radius:4px;transition:color .15s ease,background .15s ease;-webkit-user-select:none;user-select:none}.gazette-tag:hover{color:#fde68a;background:#f59e0b1a}.gazette-pulse{width:6px;height:6px;background:var(--accent-gold);border-radius:50%;animation:pulseDot 1.5s infinite}.gazette-headline{color:var(--text-secondary);font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gazette-close-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px 4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease}.gazette-close-btn svg{width:13px;height:13px}.gazette-close-btn:hover{color:var(--text-primary);background:#ffffff14}.gazette-stream.minimized{width:fit-content;max-width:140px;padding:.25rem .55rem;background:#0a0f1a80}.gazette-stream.minimized .gazette-headline,.gazette-stream.minimized .gazette-close-btn{display:none}.gis-layer-bar{pointer-events:auto;align-self:start;justify-self:start;display:flex;align-items:center;background:var(--bg-obsidian);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--border-hairline);border-radius:10px;padding:.22rem .35rem .22rem .25rem;gap:.25rem;box-shadow:var(--shadow-panel);transition:all .28s var(--ease-drawer)}.gis-layer-pills{display:flex;align-items:center;gap:.25rem}.layer-btn{display:flex;align-items:center;gap:.4rem;background:transparent;border:none;border-radius:6px;padding:.35rem .65rem;font-family:var(--font-body);font-size:.7rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:transform .16s var(--ease-out),background .16s ease,color .16s ease}.layer-btn:hover{background:#ffffff0d;color:var(--text-primary)}.layer-btn:active{transform:scale(.97)}.layer-btn.active{background:#ffffff1f;color:#fff;box-shadow:0 2px 8px #0006}.gis-toggle-btn{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-muted);padding:.3rem .35rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .16s var(--ease-out),background .16s ease,color .16s ease,border-color .16s ease}.gis-toggle-btn svg{width:13px;height:13px}.gis-toggle-btn:hover{background:#ffffff0f;color:var(--text-primary);border-color:var(--border-hairline)}.gis-layer-bar.collapsed{padding:.2rem .3rem}.gis-layer-bar.collapsed .layer-btn:not(.active){display:none}.gis-layer-bar.collapsed .gis-toggle-btn{margin-left:2px}.command-deck{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:1rem;background:var(--bg-obsidian);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border:1px solid var(--border-hairline);border-radius:18px;padding:.5rem .85rem;margin:0 auto;box-shadow:var(--shadow-dock);animation:slideUp .35s var(--ease-drawer)}.tool-group{display:flex;align-items:center;gap:.3rem;position:relative}.tool-group:not(:last-child):after{content:"";height:24px;width:1px;background:var(--border-hairline);margin:0 .4rem}.tool-btn{display:flex;flex-direction:column;align-items:center;gap:.2rem;background:transparent;border:1px solid transparent;border-radius:10px;padding:.4rem .6rem;color:var(--text-secondary);cursor:pointer;transition:transform .16s var(--ease-out),background .16s ease,border-color .16s ease,color .16s ease;min-width:64px;position:relative}.tool-btn svg{width:18px;height:18px;transition:transform .16s var(--ease-out)}.tool-title{font-size:.65rem;font-weight:600;letter-spacing:.01em}.hotkey-badge{position:absolute;top:2px;right:4px;font-family:var(--font-mono);font-size:.55rem;color:var(--text-dim);font-weight:700}.tool-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-hairline);transform:translateY(-2px)}.tool-btn:hover svg{transform:scale(1.1)}.tool-btn:active{transform:scale(.97) translateY(0)}.tool-btn.active{background:#f59e0b24;border-color:var(--accent-gold);color:var(--accent-gold);box-shadow:0 0 16px #f59e0b40}.tool-btn.active .hotkey-badge{color:var(--accent-gold)}.minimap-wrapper{pointer-events:auto;position:absolute;bottom:5.5rem;right:1.25rem;background:var(--bg-obsidian);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--border-hairline);border-radius:12px;padding:.5rem;box-shadow:var(--shadow-panel);display:flex;flex-direction:column;gap:.4rem;width:160px;transition:width .28s var(--ease-drawer),bottom .28s var(--ease-drawer);overflow:hidden}.minimap-header{display:flex;align-items:center;justify-content:space-between;font-size:.62rem;font-weight:700;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;gap:.4rem}.minimap-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.minimap-toggle-btn{background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text-muted);width:20px;height:20px;flex:0 0 20px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.8rem;line-height:1;transition:background .15s ease,color .15s ease,border-color .15s ease}.minimap-toggle-btn:hover{background:#ffffff14;color:var(--text-primary);border-color:var(--border-hairline)}.minimap-body{display:flex;flex-direction:column;gap:.4rem;transition:max-height .3s var(--ease-drawer),opacity .25s ease;max-height:200px;opacity:1;overflow:hidden}.minimap-wrapper.minimized .minimap-body{max-height:0;opacity:0;pointer-events:none}.minimap-wrapper.minimized{gap:0}#minimap-canvas{width:100%;height:120px;border-radius:6px;background:#090e17;border:1px solid var(--border-hairline);cursor:crosshair}.camera-bookmarks{display:grid;grid-template-columns:1fr 1fr;gap:.25rem}.bookmark-btn{background:#ffffff0a;border:1px solid var(--border-hairline);border-radius:4px;padding:.25rem .35rem;font-size:.58rem;font-weight:600;color:var(--text-secondary);cursor:pointer;text-align:center;transition:transform .16s var(--ease-out),background .16s ease,border-color .16s ease,color .16s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookmark-btn:hover{background:var(--bg-card-hover);color:#fff;border-color:var(--border-hover)}.bookmark-btn:active{transform:scale(.97)}.inspector-card{pointer-events:auto;position:absolute;right:1.25rem;top:5rem;width:290px;background:var(--bg-obsidian);-webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%);border:1px solid var(--border-hairline);border-radius:14px;padding:1.15rem;box-shadow:var(--shadow-panel);animation:fadeIn .25s var(--ease-out)}.inspector-card.hidden{display:none}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;padding-bottom:.45rem;border-bottom:1px solid var(--border-hairline)}.card-header h3{font-family:var(--font-display);font-size:.92rem;font-weight:700;color:var(--accent-gold)}.close-btn{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .16s var(--ease-out),color .16s ease}.close-btn:hover{color:#fff}.close-btn:active{transform:scale(.92)}.card-body{display:flex;flex-direction:column;gap:.45rem;font-size:.78rem;margin-bottom:.85rem}.stat-row{display:flex;justify-content:space-between;align-items:center}.stat-name{color:var(--text-secondary)}.stat-val{font-family:var(--font-mono);font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.drawer-backdrop{pointer-events:auto;position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:90;display:flex;justify-content:flex-end;animation:fadeIn .25s var(--ease-out)}.drawer-backdrop.hidden{display:none}.ledger-drawer{width:420px;height:100%;background:var(--bg-obsidian-solid);border-left:1px solid var(--border-hairline);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;box-shadow:-10px 0 40px #000000b3;animation:slideLeft .3s var(--ease-drawer)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.75rem;border-bottom:1px solid var(--border-hairline)}.drawer-header h2{font-family:var(--font-display);font-size:1.15rem;color:#fff}.ledger-breakdown{display:flex;flex-direction:column;gap:.65rem}.ledger-item{display:flex;justify-content:space-between;align-items:center;background:#ffffff05;border:1px solid var(--border-hairline);border-radius:8px;padding:.6rem .75rem;font-size:.8rem;transition:transform .16s var(--ease-out),background .16s ease}.ledger-item:hover{background:#ffffff0d;transform:translate(-2px)}.ledger-item .rev-name{color:var(--text-secondary)}.ledger-item .rev-val{font-family:var(--font-mono);font-weight:700;color:#4ade80}.ledger-item .rev-val.loss{color:var(--accent-rose)}.modal-backdrop{pointer-events:auto;position:absolute;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .25s var(--ease-out)}.modal-backdrop.hidden{display:none}.modal-card{width:90%;max-width:840px;max-height:85vh;overflow-y:auto;background:var(--bg-obsidian-solid);border:1px solid var(--border-hairline);border-radius:18px;padding:1.5rem;box-shadow:var(--shadow-dock);animation:scaleIn .28s var(--ease-out)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.65rem;border-bottom:1px solid var(--border-hairline)}.modal-header h2{font-family:var(--font-display);font-size:1.15rem;color:#fff}.monuments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem}.monument-item{background:#ffffff05;border:1px solid var(--border-hairline);border-radius:10px;padding:.85rem;display:flex;flex-direction:column;gap:.4rem;transition:transform .16s var(--ease-out),background .16s ease,border-color .16s ease}.monument-item:hover{background:#ffffff0a;border-color:var(--border-hover);transform:translateY(-2px)}.monument-item h4{font-size:.85rem;color:var(--accent-gold)}.monument-item .theme-tag{font-size:.68rem;color:var(--text-muted)}.progress-bar-bg{width:100%;height:5px;background:#ffffff14;border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-gold),var(--accent-terracotta));transition:width .3s ease}.studio-btn{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:var(--font-body);font-weight:600;font-size:.75rem;padding:.5rem .85rem;border-radius:8px;border:1px solid var(--border-hairline);background:#ffffff0a;color:#fff;cursor:pointer;transition:transform .16s var(--ease-out),background .16s ease,border-color .16s ease,box-shadow .16s ease}.studio-btn:hover{background:#ffffff1a;border-color:var(--border-hover)}.studio-btn:active{transform:scale(.97)}.studio-btn.gold{border-color:#f59e0b66;background:#f59e0b1f;color:var(--accent-gold)}.studio-btn.gold:hover{background:#f59e0b40;box-shadow:0 0 16px #f59e0b59}.studio-btn.danger{border-color:#f43f5e66;background:#f43f5e1f;color:var(--accent-rose)}.studio-btn.danger:hover{background:#f43f5e40}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(8px);background:#0d121feb;border:1px solid var(--border-hairline);color:#e2e8f0;padding:8px 16px;border-radius:10px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);font-family:var(--font-body);font-size:13px;font-weight:500;box-shadow:0 12px 36px #0009;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:120}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}#toast.error{border-color:#f43f5e80;color:#fecdd3}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideLeft{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}#game-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}#map-container.cursor-build,#map-container.cursor-build .maplibregl-canvas{cursor:crosshair}#map-container.cursor-inspect{cursor:default}.hover-chip{position:fixed;z-index:9996;pointer-events:none;background:#020617d1;border:1px solid rgba(251,191,36,.35);color:#e2e8f0;font:500 11px JetBrains Mono,ui-monospace,monospace;padding:3px 8px;border-radius:6px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .12s}.hover-chip .hc-cell{color:#fbbf24;letter-spacing:.06em}.hover-chip b{color:#7dd3fc;font-weight:600}.gf-tooltip{position:fixed;z-index:10000;pointer-events:none;min-width:210px;max-width:280px;background:linear-gradient(180deg,#0f172af5,#020617f7);border:1px solid rgba(251,191,36,.28);border-radius:10px;padding:9px 12px;box-shadow:0 14px 34px #0000008c,inset 0 1px #ffffff0d;animation:tip-in .16s cubic-bezier(.23,1,.32,1)}@keyframes tip-in{0%{opacity:0;transform:translateY(4px) scale(.97)}to{opacity:1;transform:none}}.gt-head{display:flex;justify-content:space-between;align-items:baseline;font:700 13px Outfit,Inter,sans-serif;color:#f1f5f9;margin-bottom:3px}.gt-head em{font-style:normal;font:700 11px JetBrains Mono,monospace;color:#fbbf24;background:#fbbf241f;padding:1px 6px;border-radius:5px}.gt-desc{font:400 11.5px/1.45 Inter,sans-serif;color:#94a3b8}.gt-key{margin-top:6px;font:600 10px JetBrains Mono,monospace;color:#64748b;letter-spacing:.08em}.gt-key b{color:#e2e8f0;background:#1e293b;border:1px solid #334155;border-radius:4px;padding:0 5px;margin-left:2px}.tool-btn.tip-open{transform:translateY(-2px)}.gf-compass{position:fixed;right:14px;top:74px;z-index:9995;width:46px;height:46px;border-radius:50%;background:#020617b8;border:1px solid #1e293b;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s}.gf-compass:hover{border-color:#fbbf24}.gc-ring{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;border:1px dashed rgba(148,163,184,.25)}.gc-needle{width:2px;height:26px;position:relative;background:linear-gradient(180deg,#f87171 50%,#94a3b8 50%);clip-path:polygon(50% 0,100% 18%,100% 100%,0 100%,0 18%);transition:transform .12s ease-out}.gc-n{position:absolute;top:-7px;left:50%;transform:translate(-50%);font:700 9px JetBrains Mono,monospace;color:#f87171;background:#020617e6;padding:0 3px;border-radius:3px}.gf-clock{position:fixed;right:70px;top:82px;z-index:9995;background:#020617b8;border:1px solid #1e293b;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px;padding:4px 10px;color:#e2e8f0;font:600 12px JetBrains Mono,monospace;display:flex;gap:6px;align-items:center}.clk-icon{font-size:13px}.rail-adopted.gf-compass{position:static!important;z-index:auto!important;width:40px!important;height:40px!important;flex:0 0 40px}.rail-adopted.gf-clock{position:static!important;z-index:auto!important;background:#ffffff0a!important;border-color:var(--border-hairline)!important;padding:4px 7px!important;border-radius:7px!important;font-size:11px!important;flex:1;justify-content:center}.gazette-headline{transition:opacity .26s ease,transform .26s ease}.gazette-headline.gazette-swap{opacity:0;transform:translateY(-6px)}#layers-panel{background:#0a0f1ac7!important;border:1px solid rgba(255,255,255,.09)!important;-webkit-backdrop-filter:blur(28px) saturate(1.8)!important;backdrop-filter:blur(28px) saturate(1.8)!important;border-radius:12px!important;box-shadow:0 20px 50px #0009!important;font-family:Inter,sans-serif!important;font-size:12px!important;line-height:1.9!important;padding:10px 14px!important}#layers-panel>div:first-child{font:700 10px JetBrains Mono,monospace;letter-spacing:.14em;color:#64748b;margin-bottom:4px}#layers-panel input[type=checkbox]{accent-color:#fbbf24;width:13px;height:13px;cursor:pointer}.intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#0206179e,#020617e6);opacity:0;transition:opacity .45s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.intro-overlay.shown{opacity:1}.intro-card{max-width:520px;margin:20px;background:linear-gradient(180deg,#0f172afa,#020617fc);border:1px solid rgba(251,191,36,.22);border-radius:20px;padding:38px 44px 30px;text-align:center;box-shadow:0 40px 90px #000000b3,inset 0 1px #ffffff0f;transform:translateY(14px) scale(.985);transition:transform .45s cubic-bezier(.23,1,.32,1)}.intro-overlay.shown .intro-card{transform:none}.intro-kicker{font:700 10px JetBrains Mono,monospace;color:#fbbf24;letter-spacing:.22em;margin-bottom:14px}.intro-card h1{font:800 42px/1 Outfit,sans-serif;color:#f8fafc;letter-spacing:-.02em;margin-bottom:4px}.intro-card h1 span{display:block;font:500 15px Outfit,sans-serif;color:#94a3b8;letter-spacing:.28em;margin-top:8px;text-transform:uppercase}.intro-card p{font:400 14px/1.6 Inter,sans-serif;color:#cbd5e1;margin:18px 0 20px}.intro-card ul{list-style:none;text-align:left;margin:0 auto 26px;max-width:400px}.intro-card li{font:400 12.5px/1.55 Inter,sans-serif;color:#94a3b8;padding:7px 0 7px 26px;position:relative;border-bottom:1px solid rgba(148,163,184,.08)}.intro-card li b{color:#e2e8f0;font-weight:600}.intro-card li:before{content:"◆";position:absolute;left:4px;top:8px;color:#fbbf24;font-size:10px}.intro-start{font:700 14px Outfit,sans-serif;letter-spacing:.04em;color:#0b1220;background:linear-gradient(180deg,#fcd34d,#f59e0b);border:none;border-radius:12px;padding:12px 34px;cursor:pointer;box-shadow:0 8px 24px #f59e0b59;transition:transform .15s,box-shadow .15s}.intro-start:hover{transform:translateY(-1px);box-shadow:0 12px 30px #f59e0b73}.intro-start:active{transform:translateY(0)}.intro-foot{margin-top:18px;font:500 10px JetBrains Mono,monospace;color:#475569;letter-spacing:.06em}.gf-pulse{position:fixed;right:10px;top:50%;transform:translateY(-50%);z-index:9994;width:118px;background:#0a0f1ac7;border:1px solid rgba(255,255,255,.09);-webkit-backdrop-filter:blur(28px) saturate(1.8);backdrop-filter:blur(28px) saturate(1.8);border-radius:12px;padding:9px 11px;box-shadow:0 20px 50px #0009}.rail-adopted.gf-pulse{position:static!important;transform:none!important;width:100%!important;background:transparent!important;border:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:4px 6px!important;border-radius:0!important}.gp-title{font:700 10px JetBrains Mono,monospace;color:#64748b;letter-spacing:.14em;margin-bottom:7px}.rail-adopted.gf-pulse .gp-title{display:none}.gp-row{display:grid;grid-template-columns:5px 1fr auto;gap:5px;align-items:center;padding:3px 0;cursor:default}.gp-track{height:28px;background:#020617cc;border-radius:3px;overflow:hidden;display:flex;align-items:flex-end}.gp-fill{display:block;width:100%;height:0%;transition:height .6s cubic-bezier(.23,1,.32,1),background .3s}.gp-green{background:linear-gradient(180deg,#34d399,#059669)}.gp-power{background:linear-gradient(180deg,#fbbf24,#d97706)}.gp-water{background:linear-gradient(180deg,#38bdf8,#0284c7)}.gp-flood{background:linear-gradient(180deg,#fb7185,#be123c)}.gp-val{display:none;font:600 9px JetBrains Mono,monospace;color:var(--text-secondary);text-align:right;white-space:nowrap}.gp-row:hover .gp-val,.rail-adopted.gf-pulse .gp-val{display:block}.gf-inspect{position:fixed;right:138px;top:50%;transform:translateY(-50%) translate(12px);z-index:9994;width:252px;background:linear-gradient(180deg,#0f172af5,#020617f7);border:1px solid rgba(251,191,36,.25);border-radius:14px;padding:14px 16px 10px;box-shadow:0 24px 60px #000000a6,inset 0 1px #ffffff0d;opacity:0;transition:opacity .22s ease,transform .22s cubic-bezier(.23,1,.32,1);pointer-events:none}.gf-inspect.shown{opacity:1;transform:translateY(-50%);pointer-events:auto}.gf-inspect.hidden{display:block!important;visibility:hidden}.gf-inspect header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.gi-title{font:700 11px JetBrains Mono,monospace;color:#fbbf24;letter-spacing:.1em}.gi-close{background:none;border:none;color:#64748b;font-size:18px;cursor:pointer;line-height:1;padding:0 2px}.gi-close:hover{color:#e2e8f0}.gi-zone{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.gi-zone-name{font:600 15px Outfit,sans-serif;color:#f1f5f9}.gi-badge{font:700 9px JetBrains Mono,monospace;letter-spacing:.08em;padding:2px 7px;border-radius:5px}.gi-badge.ok{color:#34d399;background:#10b98124}.gi-badge.warn{color:#fbbf24;background:#f59e0b24}.gi-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;margin-bottom:10px}.gi-grid dt{font:600 9px JetBrains Mono,monospace;color:#64748b;letter-spacing:.08em}.gi-grid dd{font:600 13px Outfit,sans-serif;color:#e2e8f0;margin:1px 0 0}.gi-grid dd.risk{color:#fb7185}.gi-bars{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.gi-bar{height:4px;background:#020617e6;border-radius:2px;overflow:hidden}.gi-bar i{display:block;height:100%;background:#fbbf24;border-radius:2px;transition:width .4s ease}.gi-bar.green i{background:#34d399}.gi-bar.risk i{background:#fb7185}.gf-inspect footer{font:500 9px JetBrains Mono,monospace;color:#475569;letter-spacing:.06em;text-align:center}#right-rail{position:fixed;right:10px;top:74px;bottom:190px;z-index:9993;width:148px;display:flex;flex-direction:column;align-items:stretch;pointer-events:none;transition:top .28s var(--ease-drawer),bottom .28s var(--ease-drawer),width .28s var(--ease-drawer),opacity .22s ease}.rail-header{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;background:var(--bg-obsidian);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--border-hairline);border-radius:10px;padding:.3rem .55rem;margin-bottom:6px;box-shadow:var(--shadow-panel);gap:.4rem;cursor:default}.rail-header-label{font:700 9px JetBrains Mono,monospace;letter-spacing:.14em;color:var(--text-muted);text-transform:uppercase;flex:1}#rail-toggle{background:transparent;border:1px solid var(--border-hairline);border-radius:6px;color:var(--text-muted);width:22px;height:22px;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}#rail-toggle:hover{background:var(--accent-gold);color:#0b1220;border-color:var(--accent-gold)}.rail-body{display:flex;flex-direction:column;gap:8px;align-items:stretch;overflow-y:auto;overflow-x:hidden;max-height:100%;scrollbar-width:none;pointer-events:auto;transition:max-height .3s var(--ease-drawer),opacity .22s ease}.rail-body::-webkit-scrollbar{display:none}#right-rail.collapsed .rail-body{max-height:0;opacity:0;pointer-events:none}#right-rail.collapsed .rail-header{border-radius:10px}.widget-slot{background:var(--bg-obsidian);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--border-hairline);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #00000073;transition:border-color .15s ease}.widget-slot:hover{border-color:#ffffff24}.ws-header{display:flex;align-items:center;justify-content:space-between;padding:.28rem .5rem;border-bottom:1px solid var(--border-hairline);background:#ffffff05;gap:.4rem}.ws-label{font:700 9px JetBrains Mono,monospace;letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;flex:1}.ws-toggle{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-dim);width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.7rem;line-height:1;transition:background .13s ease,color .13s ease,border-color .13s ease}.ws-toggle:hover{background:#ffffff14;color:var(--text-primary);border-color:var(--border-hairline)}.ws-body{padding:.4rem .3rem;display:flex;flex-direction:column;gap:5px;transition:max-height .3s var(--ease-drawer),opacity .22s ease,padding .28s ease;max-height:600px;opacity:1;overflow:hidden}.widget-slot.ws-collapsed .ws-header{border-bottom-color:transparent}.widget-slot.ws-collapsed .ws-body{max-height:0;opacity:0;pointer-events:none;padding-top:0;padding-bottom:0}.widget-slot[data-widget-id=nav] .ws-body{flex-direction:row;align-items:center;justify-content:space-around;flex-wrap:wrap;padding:.35rem .25rem}.rail-adopted{position:static!important;transform:none!important}.rail-slot{pointer-events:auto}.ws-body .gf-pulse{width:100%!important}.ws-body .gf-clock{justify-content:center}.gf-inspect{right:158px}@media(max-width:900px){.telemetry-bar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.metrics-cluster{order:3;overflow-x:auto;flex-wrap:nowrap;min-width:0}.metric-card{white-space:nowrap}.gazette-stream,.tool-btn .tool-title{display:none}.command-deck{overflow-x:auto;scrollbar-width:none;gap:8px}.command-deck::-webkit-scrollbar{display:none}.tool-btn{min-width:44px}.minimap-wrapper{transform:scale(.82);transform-origin:bottom right}#right-rail{top:64px;bottom:150px;width:118px}}@media(max-width:640px){.gis-layer-bar{overflow-x:auto;scrollbar-width:none}.layer-btn{flex:0 0 auto}.gf-inspect{right:10px;left:10px;top:auto;bottom:132px;width:auto;transform:translateY(8px)}.gf-inspect.shown{transform:none}.hover-chip{display:none!important}#right-rail{top:60px;bottom:128px;width:104px}.intro-card{padding:28px 22px 22px;margin:14px}.intro-card h1{font-size:32px}.camera-bookmarks{gap:4px}.bookmark-btn{font-size:10px;padding:5px 8px}}#right-rail{bottom:190px}.rail-tight .rail-body{gap:4px}.rail-tight .ws-body{gap:3px}.rail-tight .gf-pulse{padding:5px 8px}.command-deck{min-width:0}.tool-group{min-width:0;flex-shrink:1}.metrics-cluster,.telemetry-bar{min-width:0}body{overflow-x:hidden}@media(max-width:900px){.minimap-wrapper{transform:scale(.72)}}@media(max-width:900px){.command-deck{position:fixed;left:10px;right:10px;bottom:10px;z-index:9992;margin:0;justify-content:flex-start;padding:.45rem .6rem}}#camera-controls{position:fixed;left:10px;z-index:9993;display:flex;flex-direction:column;gap:6px;padding:7px;background:#0a0f1ac7;border:1px solid rgba(255,255,255,.09);-webkit-backdrop-filter:blur(28px) saturate(1.8);backdrop-filter:blur(28px) saturate(1.8);border-radius:14px;box-shadow:0 20px 50px #0009;overflow-y:auto;scrollbar-width:none;transition:top .28s var(--ease-drawer),max-height .28s var(--ease-drawer)}#camera-controls::-webkit-scrollbar{display:none}.cc-btn{width:38px;height:38px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:#0206178c;color:#cbd5e1;border:1px solid #1e293b;border-radius:10px;cursor:pointer;transition:background .13s,color .13s,border-color .13s,transform .1s}.cc-btn:hover{background:#f59e0b29;color:#fbbf24;border-color:#fbbf2466}.cc-btn:active,.cc-btn.cc-pressed{transform:scale(.92)}.cc-zoom{font:600 19px/1 Inter,sans-serif}.cc-n{font:700 12px JetBrains Mono,monospace;letter-spacing:.02em}.controls-tight .cc-btn{width:32px;height:32px;gap:4px}#camera-controls.controls-tight{gap:4px;padding:5px}@media(max-width:640px){#camera-controls{left:8px}.cc-btn{width:34px;height:34px}}
