html,body{background:#11151c;height:100%;margin:0;overflow:hidden}canvas{touch-action:none;display:block}body.start-screen-open{background:#11151c;overflow:auto}#start-screen{z-index:120;box-sizing:border-box;color:#e6edf5;background:linear-gradient(135deg,#0e749033,#0000 42%),linear-gradient(315deg,#22c55e1f,#0000 46%),#11151c;justify-content:center;align-items:center;padding:28px;font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;position:fixed;inset:0;overflow:auto}.start-shell{width:min(760px,100%)}.start-header{justify-content:center;margin-bottom:22px;display:flex}.start-logo{width:min(280px,72vw);height:auto;display:block}.start-tabs{gap:6px;margin-bottom:12px;display:flex}.start-tab,.start-primary,.start-secondary,.start-debug{color:#e6edf5;font:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #cdd6e429;border-radius:6px}.start-tab{min-height:36px;padding:0 14px;font-weight:750}.start-tab:hover,.start-tab:focus-visible,.start-tab.is-active,.start-primary:hover,.start-primary:focus-visible,.start-secondary:hover,.start-secondary:focus-visible,.start-debug:hover,.start-debug:focus-visible{background:#7eb3f51f;border-color:#7eb3f5b8;outline:none}.start-tab.is-active{color:#9dd2ff}.start-error{color:#fecaca;background:#7f1d1d52;border:1px solid #f8717157;border-radius:6px;margin:0 0 10px;padding:8px 10px}.start-panel{background:#ffffff0e;border:1px solid #cdd6e426;border-radius:8px;padding:18px;box-shadow:0 20px 54px #00000038}.start-label{color:#aeb9c7;letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:12px;font-weight:750;display:block}.start-entry{gap:8px;display:flex}.start-input{box-sizing:border-box;color:#fff;min-width:0;height:40px;font:inherit;background:#ffffff1a;border:1px solid #cdd6e433;border-radius:6px;flex:1;padding:0 11px;font-size:16px}.start-input:focus{border-color:#7eb3f5d1;outline:none}.start-primary{color:#fff;background:#0e74908c;min-width:94px;padding:0 16px;font-weight:800}.start-label-size{margin-top:16px}.start-size-options{gap:8px;display:flex}.start-size-option{color:#e6edf5;font:inherit;text-align:left;cursor:pointer;background:#ffffff0f;border:1px solid #cdd6e429;border-radius:6px;flex-direction:column;flex:1;align-items:flex-start;gap:3px;padding:9px 12px;display:flex}.start-size-option:hover,.start-size-option:focus-visible{background:#7eb3f51f;border-color:#7eb3f5b8;outline:none}.start-size-option.is-active{background:#7eb3f529;border-color:#7eb3f5d1}.start-size-option-title{color:#fff;font-weight:750}.start-size-option.is-active .start-size-option-title{color:#9dd2ff}.start-size-option-detail{color:#aeb9c7;font-size:12px}.start-panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.start-panel-head h2{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:14px}.start-panel-actions{gap:8px;display:flex}.start-secondary{color:#cbd5e1;min-height:36px;padding:0 12px}.start-secondary:disabled{opacity:.5;cursor:not-allowed}.start-empty{color:#aeb9c7;margin:0}.start-save-list,.start-debug-list{gap:8px;display:grid}.start-debug{text-align:left;gap:5px;width:100%;min-height:64px;padding:10px 12px;display:grid}.start-save{text-align:left;background:#ffffff0f;border:1px solid #cdd6e429;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}.start-save-info{gap:5px;min-width:0;display:grid}.start-save-actions{flex-shrink:0;gap:6px;display:flex}.start-save-btn{color:#e6edf5;min-height:34px;font:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #cdd6e429;border-radius:6px;padding:0 12px;font-weight:700}.start-save-btn:hover,.start-save-btn:focus-visible{background:#7eb3f51f;border-color:#7eb3f5b8;outline:none}.start-save-btn:disabled{opacity:.5;cursor:not-allowed}.start-save-btn--load{color:#fff;background:#0e74908c;border-color:#0e749080;font-weight:800}.start-save-btn--load:hover,.start-save-btn--load:focus-visible{background:#0e7490c7;border-color:#7eb3f5b8}.start-save-btn--danger{color:#fecaca;border-color:#f8717166}.start-save-btn--danger:hover,.start-save-btn--danger:focus-visible{background:#7f1d1d66;border-color:#f87171c7}.start-save-title,.start-debug-title{color:#fff;font-weight:800}.start-save-meta,.start-debug-detail{color:#aeb9c7;gap:12px;font-size:13px;display:flex}.start-import-label{cursor:pointer;align-items:center;display:inline-flex;position:relative}.start-import-label.is-busy{opacity:.5;pointer-events:none}.start-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.start-modal-overlay{z-index:130;box-sizing:border-box;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#080c12a8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.start-modal{box-sizing:border-box;background:linear-gradient(160deg,#1e293bfa,#0f172afa);border:1px solid #cdd6e42e;border-radius:10px;width:min(420px,100%);padding:22px;box-shadow:0 24px 70px #00000080}.start-modal-title{color:#fff;margin:0 0 8px;font-size:18px;font-weight:800}.start-modal-text{color:#cbd5e1;margin:0 0 20px;line-height:1.5}.start-modal-text strong{color:#fff}.start-modal-actions{justify-content:flex-end;gap:8px;display:flex}.start-danger{color:#fff;min-width:96px;min-height:36px;font:inherit;cursor:pointer;background:#b91c1c99;border:1px solid #f8717180;border-radius:6px;padding:0 16px;font-weight:800}.start-danger:hover,.start-danger:focus-visible{background:#b91c1cd9;border-color:#f87171d9;outline:none}.start-danger:disabled{opacity:.5;cursor:not-allowed}@media (max-width:520px){.start-save{flex-wrap:wrap}.start-save-info,.start-save-actions{flex:100%}.start-save-btn{flex:1}}[data-cursor=grab]{cursor:grab}[data-cursor=grabbing]{cursor:grabbing}[data-cursor=crosshair]{cursor:crosshair}#debug-design-legend{left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:10;width:min(1060px,100vw - 24px);max-height:min(48dvh, calc(100dvh - 24px - env(safe-area-inset-bottom,0px)));box-sizing:border-box;-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);color:#0f172a;pointer-events:auto;-webkit-user-select:none;user-select:none;background:#e5edf6eb;border:1px solid #64748b47;border-radius:6px;flex-direction:column;gap:5px;padding:5px;font:10px/1.2 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;position:fixed;overflow:auto;transform:translate(-50%);box-shadow:0 16px 42px #0f172a47,inset 0 1px #ffffffbf}.debug-design-legend-header{color:#475569;cursor:pointer;border-bottom:1px solid #64748b33;padding:3px 5px 7px;font-weight:600;text-decoration:none}.debug-design-legend-header:hover{color:#0e7490}.debug-design-legend-random{color:#1e293b;font:inherit;cursor:pointer;background:#ffffffbd;border:1px solid #64748b47;border-radius:4px;justify-self:start;padding:3px 7px;font-weight:600}.debug-design-legend-random:hover{color:#0f172a;background:#fff;border-color:#0e749052}.debug-design-legend-group{display:block}.debug-design-legend-section{color:#475569;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;padding-top:2px;font-weight:700}.debug-design-legend-items{grid-template-columns:repeat(4,max-content);gap:5px 10px;padding-top:5px;display:grid}.debug-design-legend-item{white-space:nowrap;color:#1e293b;cursor:pointer;border-radius:4px;align-items:center;gap:5px;margin:-2px -3px;padding:2px 5px;text-decoration:none;display:inline-flex}.debug-design-legend-item:hover{background:#2563eb24}.debug-design-legend-item.is-active{background:#2563eb3d;font-weight:600}.debug-design-legend-swatch{background:var(--swatch);border:1px solid #0000002e;width:10px;height:10px}#debug-type-labels,#debug-overview-labels{pointer-events:none;z-index:5;position:fixed;inset:0}.debug-type-label{color:#fff;white-space:nowrap;transform:translate(-50%, -50%) translate(var(--x,0), var(--y,0));background:#11151cc7;border:1px solid #ffffff59;border-radius:999px;padding:2px 6px;font:700 13px/1 ui-monospace,monospace;position:absolute;top:0;left:0}.debug-overview-label{letter-spacing:0;color:#fff;white-space:nowrap;transform:translate(-100%, -50%) translate(var(--x,0), var(--y,0));background:#0d1218e0;border:1px solid #ffffff59;border-radius:4px;padding:3px 6px;font:800 12px/1.1 ui-monospace,monospace;position:absolute;top:0;left:0}#debug-construction-toggle{color:#1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;align-self:flex-start;align-items:center;gap:7px;padding:5px 8px;font:650 11px system-ui,sans-serif;display:inline-flex}#loading{z-index:100;pointer-events:none;background:#11151c;flex-direction:column;justify-content:center;align-items:center;gap:10px;transition:opacity .4s;display:flex;position:fixed;inset:0}#loading.done{opacity:0}#loading-logo{width:min(240px,68vw);height:auto;margin-bottom:8px;display:block}#loading-bar-track{background:#ffffff1a;border-radius:999px;width:200px;height:3px;overflow:hidden}#loading-bar-fill{height:100%;width:var(--load,0%);background:#7eb3f5;border-radius:999px;transition:width 80ms linear}#loading-label{color:#cdd6e480;letter-spacing:.06em;font:11px/1 ui-monospace,monospace}#play-dock,#hud-top-left,#hud-top-right,#hud-bottom-right,.debug-bottom-dock{z-index:10;box-sizing:border-box;-webkit-backdrop-filter:blur(16px)saturate(1.12);backdrop-filter:blur(16px)saturate(1.12);color:#0f172a;-webkit-user-select:none;user-select:none;background:linear-gradient(160deg,#f8fafcf2,#e2ecf4f0);border:1px solid #0e749047;border-top-color:#0e749070;border-radius:8px;gap:4px;padding:5px;font:12px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;position:fixed;box-shadow:0 18px 48px #0f172a4d,0 2px 10px #0f172a1a,inset 0 1px #ffffffd1}#top-overlay-row{top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));left:calc(92px + env(safe-area-inset-left,0px));z-index:10;pointer-events:none;align-items:flex-start;gap:8px;display:flex;position:fixed}#top-overlay-row>*{pointer-events:auto}#top-overlay-row>#hud-top-left,#top-overlay-row>#hud-top-right{position:relative;top:auto;left:auto;right:auto}#top-overlay-row>#hud-top-right{margin-left:auto}#play-dock,.debug-bottom-dock{left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:min(1120px,100vw - 320px);max-height:calc(100dvh - 24px - env(safe-area-inset-bottom,0px));flex-direction:column;align-items:stretch;transform:translate(-50%)}.debug-bottom-dock{width:min(1120px,100vw - 24px);max-height:min(48dvh, calc(100dvh - 24px - env(safe-area-inset-bottom,0px)));overflow:auto}#hud-top-left{top:calc(14px + env(safe-area-inset-top,0px));left:calc(92px + env(safe-area-inset-left,0px));align-items:stretch}#hud-top-right{top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));align-items:center}#hud-bottom-right{bottom:calc(14px + env(safe-area-inset-bottom,0px));right:calc(14px + env(safe-area-inset-right,0px));flex-direction:column;align-items:stretch;max-width:calc(100vw - 28px)}.minimap{width:var(--minimap-size,120px);height:var(--minimap-size,120px);cursor:crosshair;background:#e2ecf499;border:1px solid #0e749033;border-radius:6px;flex:none;align-self:center;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff94}.minimap__canvas{touch-action:none;width:100%;height:100%;display:block}@media (max-width:760px){.minimap{display:none}}.city-stats{grid-template-columns:repeat(3,minmax(54px,1fr));gap:4px;min-width:0;display:grid}.city-stat{background:#ffffffa3;border:1px solid #0e749024;border-radius:5px;min-width:54px;padding:4px 6px;box-shadow:inset 0 1px #ffffff8c}.city-stat__label{color:#64748b;letter-spacing:.06em;text-transform:uppercase;font-size:8px;font-weight:700;line-height:1;display:block}.city-stat__value{color:#0f172a;font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:2px;font-size:11px;font-weight:800;line-height:1.1;display:block}.city-stats--headline{grid-template-columns:repeat(6,minmax(50px,max-content));gap:3px}.city-stats--headline .city-stat{min-width:50px;padding:2px 5px}.city-stat--cash .city-stat__value{color:#34d399}.city-stat--cash.is-warning .city-stat__value{color:#fbbf24}.city-stat--cash.is-negative .city-stat__value{color:#fb7185}.city-stat--mood.is-good .city-stat__value,.city-stat--migration.is-good .city-stat__value{color:#16a34a}.city-stat--mood.is-warning .city-stat__value,.city-stat--migration.is-warning .city-stat__value{color:#d97706}.city-stat--mood.is-negative .city-stat__value,.city-stat--migration.is-negative .city-stat__value{color:#dc2626}#build-status{color:#0f172a;background:#ffffffb3;border:1px solid #0e749033;border-radius:6px;flex:auto;min-width:280px;height:34px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffa6}#build-status:before{content:"CITY NEWS";z-index:2;color:#0e7490;letter-spacing:.1em;background:#0e74901a;border-radius:4px;padding:3px 7px;font-size:8px;font-weight:800;position:absolute;top:50%;left:10px;transform:translateY(-50%)}#build-status:after{content:"";z-index:1;background:linear-gradient(90deg,#fffffffa 0%,#ffffffe0 72%,#0000 100%);width:124px;position:absolute;inset:0 auto 0 0}.build-status__text{white-space:nowrap;font-size:12px;font-weight:700;line-height:1;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.build-status__text.is-sliding{animation:12s linear infinite status-slide}@keyframes status-slide{0%{transform:translateY(-50%)}to{transform:translate(calc(-100% - 100vw),-50%)}}.time-controls,.speed-controls{align-items:center;gap:4px;display:flex}.time-controls{background:#ffffff94;border:1px solid #0e749024;border-radius:6px;flex:none;padding:1px}.speed-lag-indicator{cursor:help;background:#f59e0b29;border-radius:5px;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;line-height:1;display:inline-flex}.speed-lag-indicator.is-hidden{display:none}#build-menu{background:0 0;border:none;min-width:0;min-height:0;padding:0;display:flex}.build-tool-header{grid-template-columns:minmax(0,1fr) max-content;align-items:stretch;gap:6px;min-width:0;display:grid}.build-category-tabs{scrollbar-width:none;background:#ffffff80;border:1px solid #0e749024;border-radius:6px;flex-wrap:nowrap;gap:2px;min-width:0;padding:2px;display:flex;overflow-x:auto}.build-category-tabs::-webkit-scrollbar{display:none}.build-category-tab{color:#475569;text-align:center;background:0 0;border-color:#0000;flex:1 1 0;min-width:max-content;min-height:20px;padding:0 6px}.build-category-tab:hover:not(:disabled){background:#0e749012;border-color:#0e749029}.build-category-tab.is-selected{color:#0e7490;background:#0e749021;border-color:#0e74904d;outline:none;box-shadow:inset 0 -3px #0e74909e}.active-tool-status{color:#64748b;white-space:nowrap;background:#ffffff94;border:1px solid #64748b2e;border-radius:6px;align-items:center;gap:6px;min-width:160px;padding:0 8px;font-size:11px;font-weight:750;display:flex}.active-tool-status.is-active{color:#0e7490;background:#0e749012;border-color:#0e749042;box-shadow:inset 0 0 0 1px #0e74901a}.active-tool-status__label{color:#64748b;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.active-tool-status__value{min-width:0;color:inherit;text-overflow:ellipsis;overflow:hidden}.toolbar-group{background:#ffffff94;border:1px solid #0e749024;border-radius:6px;flex-direction:row;min-width:0;display:flex;overflow:hidden;box-shadow:inset 0 1px #ffffff94}.build-category-panel{flex:auto;width:100%;min-height:0}.build-category-panel.is-hidden{display:none}.toolbar-group__controls,.toolbar-mini-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.toolbar-group__controls{flex:auto;min-width:0;padding:3px 4px}.toolbar-mini-group{border-left:1px solid #0e749024;margin-left:2px;padding-left:4px}.toolbar-btn{color:#1e293b;cursor:pointer;min-height:22px;font:inherit;background:#ffffffbd;border:1px solid #64748b3d;border-radius:5px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;line-height:1;transition:background-color .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.toolbar-btn:hover:not(:disabled){color:#0f172a;background:#fff;border-color:#0e749052}#hud-top-left .toolbar-btn{align-self:stretch;padding:0 12px}.toolbar-btn.is-selected{outline-offset:0;color:#0e7490;background:#0e749017;border-color:#0e749061;outline:1px solid #0e749052;box-shadow:inset 0 -2px #0e749061}.toolbar-btn--stacked{flex-direction:column;gap:1px;min-height:34px;padding:3px 8px;line-height:1.1}.toolbar-btn__label{font-size:11px;font-weight:700}.toolbar-btn__cost{color:#64748b;font-size:9px;font-weight:700}.toolbar-btn.is-unaffordable{opacity:.5}.toolbar-btn.is-unaffordable .toolbar-btn__cost{color:#dc2626}.toolbar-mini-group--lead{border-left:none;border-right:1px solid #0e749024;margin-left:0;margin-right:2px;padding-left:0;padding-right:4px}.toolbar-btn--pause{color:#92400e;background:#fef3c7e0;border-color:#d9770647}.toolbar-btn--pause.is-paused{color:#047857;background:#d1fae5e0;border-color:#05966947}.toolbar-btn--size{min-width:30px;min-height:22px;padding:0 6px;font-size:10px;font-weight:800}.toolbar-btn--size.is-selected{color:#0e7490;background:#0e74901a;border-color:#0e749057}.toolbar-btn--size.is-locked{color:#64748b80;opacity:1;cursor:not-allowed;background:#e2e8f08c}.toolbar-btn--zone-res{color:#166534;background:#dcfce7d1;border-color:#16a34a47}.toolbar-btn--zone-com{color:#1d4ed8;background:#dbeafed1;border-color:#2563eb47}.toolbar-btn--zone-off{color:#7e22ce;background:#f3e8ffd1;border-color:#7e22ce47}.toolbar-btn--zone-ind{color:#854d0e;background:#fef9c3d1;border-color:#ca8a044d}.toolbar-btn--tool-park{color:#047857;background:#d1fae5d1;border-color:#0596694d}.toolbar-btn--tool-raise,.toolbar-btn--tool-lower,.toolbar-btn--tool-level{border-color:#94a3b838}.toolbar-btn--tool-erase{color:#991b1b;background:#fee2e2db;border-color:#dc26264d}.dock-menu-btn{position:relative}#dock-options-panel{z-index:12;font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#dock-layers-panel,#dock-news-panel{z-index:12;position:absolute;bottom:calc(100% + 8px);right:0}#dock-options-panel,#dock-layers-panel,#dock-news-panel{width:min(420px,100vw - 24px);max-height:min(420px, calc(100dvh - 96px - env(safe-area-inset-top,0px)));box-sizing:border-box;overscroll-behavior:contain;scrollbar-color:#0e7490b3 #e2e8f0bf;scrollbar-width:thin;background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);border:1px solid #0e749047;border-top-color:#0e749075;border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex;overflow:auto;box-shadow:0 18px 44px #0f172a47,inset 0 1px #ffffffd6}#dock-layers-panel{width:min(340px,100vw - 24px)}#dock-news-panel{width:min(380px,100vw - 24px);max-height:min(460px, calc(100dvh - 96px - env(safe-area-inset-top,0px)))}#dock-options-panel.is-hidden,#dock-layers-panel.is-hidden,#dock-news-panel.is-hidden{display:none}.news-badge{color:#fff;background:#dc2626;border-radius:999px;justify-content:center;align-items:center;min-width:15px;height:15px;margin-left:5px;padding:0 4px;font-size:9px;font-weight:800;line-height:1;display:inline-flex}.news-badge.is-hidden{display:none}.toolbar-btn.has-unread{border-color:#dc26266b}.news-feed{flex-direction:column;gap:6px;display:flex}.news-empty{color:#64748b;text-align:center;border:1px dashed #64748b4d;border-radius:6px;padding:14px 10px;font-size:11px}.news-item{border:1px solid #0e749029;border-left:4px solid var(--news-severity,#94a3b8);color:#0f172a;font:inherit;text-align:left;cursor:pointer;background:#ffffffc7;border-radius:6px;flex-direction:column;gap:3px;padding:7px 9px 7px 12px;display:flex}.news-item:hover{border-color:#0e749066;border-left-color:var(--news-severity,#94a3b8);background:#fff}.news-item__top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.news-item__headline{font-size:12px;font-weight:800;line-height:1.2}.news-item__date{color:#94a3b8;letter-spacing:.04em;white-space:nowrap;flex:none;font-size:9px;font-weight:700}.news-item__body{color:#475569;font-size:11px;line-height:1.35}.news-item__cause{color:#0e7490;letter-spacing:.06em;text-transform:uppercase;background:#0e74901a;border-radius:4px;align-self:flex-start;margin-top:2px;padding:2px 6px;font-size:9px;font-weight:800}.dock-layers-section{flex-direction:column;gap:4px;display:flex}.dock-layers-section+.dock-layers-section{margin-top:8px}.dock-layers-section__title{color:#64748b;letter-spacing:.07em;text-transform:uppercase;font-size:10px;font-weight:800}.dock-layers{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.dock-layers .toolbar-btn{width:100%;min-width:0}.layer-btn{justify-content:flex-start;align-items:center;gap:6px;padding:4px 8px;display:flex;overflow:hidden}.layer-btn__chip{background:var(--layer-gradient,#cbd5e1);border-radius:3px;flex:none;width:14px;height:14px;box-shadow:inset 0 0 0 1px #0f172a38}.layer-btn__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#map-legend{z-index:9;top:calc(66px + env(safe-area-inset-top,0px));left:calc(92px + env(safe-area-inset-left,0px));box-sizing:border-box;-webkit-backdrop-filter:blur(16px)saturate(1.12);backdrop-filter:blur(16px)saturate(1.12);color:#0f172a;-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(160deg,#f8fafcf2,#e2ecf4f0);border:1px solid #0e749047;border-top-color:#0e749070;border-radius:8px;width:176px;padding:8px 10px;font:12px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed;box-shadow:0 18px 48px #0f172a4d,inset 0 1px #ffffffd1}#map-legend.is-hidden{display:none}.map-legend__title{letter-spacing:.02em;font-size:12px;font-weight:800}.map-legend__bar{background:var(--layer-gradient,#cbd5e1);border-radius:3px;height:10px;margin-top:7px;box-shadow:inset 0 0 0 1px #0f172a2e}.map-legend__scale{justify-content:space-between;gap:6px;margin-top:4px;display:flex}.map-legend__tick{color:#475569;font-size:10px;font-weight:700}.map-legend__readout{color:#1e293b;border-top:1px solid #0f172a24;flex-direction:column;gap:2px;margin-top:8px;padding-top:7px;font-size:11px;font-weight:700;display:flex}.map-legend__readout.is-hidden{display:none}.map-legend__swatches{flex-direction:column;gap:4px;margin-top:7px;display:flex}.map-legend__swatch{color:#334155;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.map-legend__dot{background:var(--swatch,#cbd5e1);border-radius:3px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #0f172a38}#dock-options-panel::-webkit-scrollbar{width:9px;height:9px}#dock-layers-panel::-webkit-scrollbar{width:9px;height:9px}.debug-bottom-dock::-webkit-scrollbar{width:9px;height:9px}#dock-options-panel::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}#dock-layers-panel::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}.debug-bottom-dock::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}#dock-options-panel::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}#dock-layers-panel::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}.debug-bottom-dock::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}#dock-options-panel::-webkit-scrollbar-thumb:hover{background:#0e7490f0}#dock-layers-panel::-webkit-scrollbar-thumb:hover{background:#0e7490f0}.debug-bottom-dock::-webkit-scrollbar-thumb:hover{background:#0e7490f0}.dock-options__header{border-bottom:1px solid #0e749029;justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;display:flex}.dock-options__logo{width:172px;height:auto;display:block}.dock-options__title{color:#0f172a;letter-spacing:.09em;text-transform:uppercase;margin-left:auto;font-size:12px;font-weight:800}.dock-options__save-load{flex-direction:column;gap:6px;display:flex}.dock-options__save-load .toolbar-btn{width:100%}#sim-panel{-webkit-user-select:none;user-select:none;background:#ffffff94;border:1px solid #0e749024;border-radius:6px;flex-direction:column;align-items:stretch;gap:3px;min-width:0;padding:4px 6px;display:flex;box-shadow:inset 0 1px #ffffff94}.sim-title{color:#475569;letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800}.sim-row{align-items:center;gap:5px;min-width:0;display:flex}.sim-label{width:10px;font-size:10px;font-weight:800}.sim-label--res{color:#4ade80}.sim-label--com{color:#60a5fa}.sim-label--ind{color:#facc15}.sim-label--off{color:#c084fc}.sim-track{background:#0f172a29;border:1px solid #64748b29;border-radius:999px;flex:1;min-width:30px;height:8px;position:relative;overflow:hidden}.sim-track:after{content:"";background:#e2e8f05c;width:1px;height:100%;position:absolute;top:0;left:50%}.sim-track-fill{width:50%;height:100%;transition:transform .18s;position:absolute;top:0;transform:scaleX(0)}.sim-track-fill.is-positive{transform-origin:0;left:50%}.sim-track-fill.is-negative{transform-origin:100%;background:#dc2626;right:50%}.sim-track-fill--res{background:#22c55e}.sim-track-fill--com{background:#3b82f6}.sim-track-fill--ind{background:#eab308}.sim-track-fill--off{background:#a855f7}.sim-track-fill--level-0{transform:scaleX(0)}.sim-track-fill--level-1{transform:scaleX(.1)}.sim-track-fill--level-2{transform:scaleX(.2)}.sim-track-fill--level-3{transform:scaleX(.3)}.sim-track-fill--level-4{transform:scaleX(.4)}.sim-track-fill--level-5{transform:scaleX(.5)}.sim-track-fill--level-6{transform:scaleX(.6)}.sim-track-fill--level-7{transform:scaleX(.7)}.sim-track-fill--level-8{transform:scaleX(.8)}.sim-track-fill--level-9{transform:scaleX(.9)}.sim-track-fill--level-10{transform:scaleX(1)}@media (max-width:980px){#play-dock,.debug-bottom-dock,#debug-design-legend{width:calc(100vw - 16px);padding:6px}#hud-bottom-right{bottom:calc(var(--bottom-dock-height,0px) + 16px + env(safe-area-inset-bottom,0px))}}@media (max-width:620px){.dock-options__logo{width:130px}#play-dock,.debug-bottom-dock,#debug-design-legend{bottom:calc(8px + env(safe-area-inset-bottom,0px));gap:4px}.debug-design-legend-items{grid-template-columns:repeat(2,max-content)}.city-stats--headline{grid-template-columns:repeat(3,minmax(56px,max-content))}.build-tool-header{grid-template-columns:1fr}.build-category-tab{text-align:center;justify-content:center}.active-tool-status{min-height:28px}#build-status{min-width:0}.time-controls{flex-wrap:wrap}.toolbar-group{width:100%}.toolbar-group__label{writing-mode:horizontal-tb;justify-content:center;min-width:58px}.toolbar-btn{padding:0 8px}}#building-info,#car-info,#ped-info{bottom:calc(var(--bottom-dock-height,0px) + 24px + env(safe-area-inset-bottom,0px));z-index:11;box-sizing:border-box;-webkit-backdrop-filter:blur(16px)saturate(1.12);backdrop-filter:blur(16px)saturate(1.12);color:#0f172a;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);border:1px solid #0e749047;border-top-color:#0e749075;border-radius:8px;flex-direction:column;gap:0;font:12px/1.35 system-ui,-apple-system,sans-serif;display:flex;position:fixed;overflow:hidden;box-shadow:0 18px 46px #0f172a47,0 2px 10px #0f172a1a,inset 0 1px #ffffffd6}#building-info{width:min(780px,100vw - 24px);max-height:min(38dvh, calc(100dvh - var(--bottom-dock-height,0px) - 48px));left:50%;transform:translate(-50%)}#building-info.is-hidden{display:none}#car-info,#ped-info{width:min(380px,100vw - 24px);max-width:calc(100vw - 24px);max-height:min(42dvh, calc(100dvh - var(--bottom-dock-height,0px) - 48px));left:12px}#car-info.is-hidden,#ped-info.is-hidden{display:none}.info-header{background:linear-gradient(#ffffffc7,#f1f7fbad);border-bottom:1px solid #0e749029;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 9px;display:flex}.info-title{color:#0f172a;letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;min-width:0;font-size:12px;font-weight:850;overflow:hidden}.info-close{color:#475569;cursor:pointer;background:#ffffffbd;border:1px solid #64748b3d;border-radius:6px;flex:none;width:30px;height:30px;font-weight:800;line-height:1}.info-close:hover{color:#0f172a;background:#fff}#dock-options-panel .info-close{flex:none;width:30px;height:30px}.info-tabs{background:#f1f7fb80;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px 10px 0;display:grid}.info-tab{color:#475569;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:#ffffff94;border:1px solid #64748b2e;border-radius:6px 6px 0 0;min-width:0;height:30px;font-size:10px;font-weight:850}.info-tab:hover{color:#0f172a;background:#ffffffd1}.info-tab.is-selected{color:#0e7490;background:#ffffffd1;border-color:#0e749052 #0e749052 #ffffffc7}.info-sections{scrollbar-color:#0e7490b3 #e2e8f0bf;scrollbar-width:thin;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;min-height:0;padding:10px;display:grid;overflow:auto}#car-info .info-sections,#ped-info .info-sections{grid-template-columns:1fr}.info-sections::-webkit-scrollbar{width:9px;height:9px}.info-sections::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}.info-sections::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}.info-sections::-webkit-scrollbar-thumb:hover{background:#0e7490f0}.info-section{background:#ffffff9e;border:1px solid #0e749024;border-radius:7px;min-width:0;overflow:hidden;box-shadow:inset 0 1px #ffffff94}.info-section--people,.info-section--household,.info-section--service{grid-column:span 2}#car-info .info-section,#ped-info .info-section{grid-column:auto}.info-section__title{color:#0e7490;letter-spacing:.1em;text-transform:uppercase;background:#e2ecf48f;border-bottom:1px solid #0e749021;align-items:center;gap:7px;padding:7px 9px;font-size:9px;font-weight:850;display:flex}.info-section__title:before{content:"";background:#0e7490b8;flex:none;width:2px;height:.9em}.info-section__rows{grid-template-columns:1fr;gap:1px;padding:4px;display:grid}.info-row{background:#f8fafc94;border:1px solid #0000;border-radius:4px;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:6px 7px;display:flex}.info-label{color:#64748b;letter-spacing:.07em;text-transform:uppercase;flex:none;font-size:10px;font-weight:800}.info-value{color:#0f172a;font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere;min-width:0;font-weight:750}.info-row--note{background:#ffffffad;border-color:#0e74901a;justify-content:flex-start}.info-row--note .info-value{text-align:left}.info-action{background:#f1f7fb99;border-top:1px solid #0e749029;flex-direction:column;flex:none;gap:6px;padding:10px;display:flex}.info-action.is-hidden{display:none}.info-action-btn{color:#0e7490;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#ffffffe6,#e2ecf4d9);border:1px solid #0e749066;border-radius:6px;width:100%;padding:9px 12px;font-size:11px;font-weight:850}.info-action-btn:hover:not(:disabled){background:linear-gradient(#fffffff5,#d6e6f0eb);border-color:#0e749099}.info-action-btn.is-armed{color:#be123c;background:linear-gradient(#fee2e2f2,#fccdd3eb);border-color:#be123c99}.info-action-btn:disabled{opacity:.55;cursor:not-allowed}.info-action-note{color:#64748b;letter-spacing:.02em;text-align:center;font-size:10px;font-weight:650}@media (max-width:620px){#building-info,#car-info,#ped-info{width:calc(100vw - 16px);max-height:min(48dvh, calc(100dvh - var(--bottom-dock-height,0px) - 32px));left:50%;right:auto;transform:translate(-50%)}.info-sections{grid-template-columns:1fr}.info-section--people,.info-section--household,.info-section--service{grid-column:auto}}#accounting-panel{left:50%;top:calc((100dvh - var(--bottom-dock-height,0px)) / 2);z-index:11;width:min(980px,100vw - 28px);max-width:calc(100vw - 24px);max-height:min(760px, calc(100dvh - var(--bottom-dock-height,0px) - 56px));box-sizing:border-box;-webkit-backdrop-filter:blur(16px)saturate(1.12);backdrop-filter:blur(16px)saturate(1.12);color:#0f172a;overscroll-behavior:contain;touch-action:auto;-webkit-user-select:none;user-select:none;background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);border:1px solid #0e749052;border-top-color:#0e749094;border-radius:8px;flex-direction:column;gap:0;font:13px/1.38 system-ui,-apple-system,sans-serif;display:flex;position:fixed;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 70px #0f172a57,0 2px 10px #0f172a24,inset 0 1px #ffffffe6}#accounting-panel.is-hidden{display:none}.acct-header{background:linear-gradient(#ffffffd1,#f1f7fbc2);border-bottom:1px solid #0e749033;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px 12px;display:flex}#accounting-panel .info-title{color:#0f172a;letter-spacing:.08em;font-size:15px}.acct-subtitle{color:#64748b;margin-top:2px;font-size:11px}.acct-rate-tolerance{color:#64748b;text-align:center;min-width:92px;font-size:10px}#accounting-panel .info-close{color:#334155;background:#fffc;border-color:#0e74903d;border-radius:6px;flex:none;width:36px;height:36px;font-size:17px;font-weight:800}#accounting-panel .info-close:hover{color:#0e7490;background:#fff;border-color:#0e74906b}.acct-tabs{scrollbar-width:none;overscroll-behavior-x:contain;gap:2px;display:flex;overflow:visible}.acct-tabs::-webkit-scrollbar{display:none}.acct-tabs--parent{background:#f1f7fbad;border-bottom:1px solid #0e74902e;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 16px 0;display:grid}.acct-tabs--child{background:#fff6;border-bottom:1px solid #64748b29;flex-wrap:wrap;gap:5px;padding:8px 16px}.acct-tab{color:#64748b;cursor:pointer;min-width:0;font:inherit;letter-spacing:.06em;text-align:center;text-transform:uppercase;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px 5px 0 0;flex:none;margin-bottom:0;padding:9px 12px;font-size:11px;font-weight:700;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s}.acct-tab:hover{color:#0e7490;background:#0e749014}.acct-tab.is-active{color:#0e7490;background:#fffc;border-color:#0e74904d #0e74904d #fffc}.acct-tabs--child .acct-tab{color:#64748b;background:#f8fafc94;border:1px solid #64748b33;border-radius:5px;flex:0 auto;margin-bottom:0;padding:6px 9px;font-size:10px}.acct-tabs--child .acct-tab.is-active{color:#0e7490;background:#0e74901f;border-color:#0e749066}.acct-content{scrollbar-color:#0e7490b3 #e2e8f0bf;scrollbar-width:thin;overscroll-behavior:contain;min-height:0;padding:14px 16px 16px;overflow:auto}.acct-content::-webkit-scrollbar{width:9px;height:9px}.acct-content::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}.acct-content::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}.acct-content::-webkit-scrollbar-thumb:hover{background:#0e7490f0}.acct-loan{flex-direction:column;gap:10px;display:flex}.acct-control-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.acct-control-row__label{color:#64748b;letter-spacing:.04em;text-transform:uppercase;flex:0 0 56px;font-size:11px;font-weight:700}.acct-action{color:#0e7490;cursor:pointer;font:inherit;background:#0e74901a;border:1px solid #0e749059;border-radius:6px;flex:none;padding:6px 12px;font-size:11px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s}.acct-action:hover:not(:disabled){background:#0e749033;border-color:#0e74908c}.acct-action:disabled{opacity:.4;cursor:default}.acct-rate-value{color:#0e7490;font-variant-numeric:tabular-nums;text-align:center;flex:0 0 52px;font-size:13px;font-weight:800}.acct-ordinance{flex-direction:column;gap:10px;display:flex}.acct-ordinance .acct-rate-value{text-align:right;flex:none;min-width:96px}.acct-ordinance__slider{accent-color:#0e7490;cursor:pointer;flex:120px;min-width:120px}.acct-ordinance__summary{flex-direction:column;display:flex}.acct-stack{flex-direction:column;gap:16px;display:flex}.acct-card-grid{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px;display:grid}.acct-card{background:#ffffffb8;border:1px solid #0e749029;border-top:2px solid #0e749057;border-radius:6px;min-width:0;padding:11px 13px;box-shadow:0 1px 2px #0f172a0f}.acct-card__value{color:#0f172a;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:22px;font-weight:800;line-height:1.12}.acct-card__label{color:#64748b;letter-spacing:.09em;text-transform:uppercase;margin-top:6px;font-size:10px;font-weight:700}.acct-card__detail{color:#475569;overflow-wrap:anywhere;margin-top:4px;font-size:11px}.acct-card--good{border-color:#16a34a57}.acct-card--good .acct-card__value{color:#15803d}.acct-card--bad{border-color:#dc262657}.acct-card--bad .acct-card__value{color:#b91c1c}.acct-card--warn{border-color:#d977065c}.acct-card--warn .acct-card__value{color:#b45309}.acct-card--info{border-color:#0e749052}.acct-card--info .acct-card__value{color:#0e7490}.acct-card--violet{border-color:#7c3aed4d}.acct-card--violet .acct-card__value{color:#6d28d9}.acct-section{background:#ffffff94;border:1px solid #0e749026;border-radius:7px;min-width:0;padding:12px;box-shadow:inset 0 1px #ffffff9e}.acct-section__title{color:#0e7490;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #0e749029;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:7px;font-size:10px;font-weight:700;display:flex}.acct-section__title:before{content:"";background:#0e7490b3;flex:none;width:2px;height:.85em;display:block}#accounting-panel .info-rows{grid-template-columns:repeat(auto-fit,minmax(178px,1fr))}#accounting-panel .info-row{background:#f8fafcb8;border-color:#64748b24;padding:6px 8px}#accounting-panel .info-label{color:#64748b;font-size:11px}#accounting-panel .info-value{color:#0f172a;font-variant-numeric:tabular-nums}.acct-two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.acct-row-group{min-width:0}.acct-row-group__title{color:#64748b;letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:10px;font-weight:800}.acct-table-wrap{scrollbar-color:#0e7490b3 #e2e8f0bf;scrollbar-width:thin;width:100%;overflow-x:auto}.acct-table-wrap::-webkit-scrollbar{height:9px}.acct-table-wrap::-webkit-scrollbar-track{background:#e2e8f0bf}.acct-table-wrap::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px}.acct-table{border-collapse:collapse;font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text;width:100%;min-width:720px;font-size:12px}.acct-table th,.acct-info{color:#0e7490;cursor:pointer;background:#0e749014;border:1px solid #0e749066;border-radius:50%;flex:none;width:15px;height:15px;padding:0;font-size:9px;font-weight:800;line-height:1}.acct-info:hover{background:#0e749033}.acct-section__note{color:#475569;text-transform:none;letter-spacing:0;margin:0 0 10px;font-size:11px;line-height:1.45}.acct-section__note.is-hidden{display:none}.acct-table tbody tr.is-activatable{cursor:pointer}.acct-table tbody tr.is-activatable:hover,.acct-table tbody tr.is-activatable:focus-visible{background:#0e74901a;outline:none}.acct-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #64748b24;padding:7px 10px}.acct-table th:first-child,.acct-table td:first-child{text-align:left}.acct-table th{color:#64748b;letter-spacing:.07em;text-transform:uppercase;background:#0e74900f;font-size:10px;font-weight:800}.acct-table tr:hover{background:#0e74900d}.acct-chart-container{min-width:0}.acct-chart-header{border-bottom:1px solid #0e749029;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:8px;padding-bottom:7px;display:flex}.acct-chart-selectors,.acct-chart-range,.acct-chart-resolution{flex:none;gap:2px;display:flex}.acct-chart-selectors{flex-wrap:wrap;justify-content:flex-end;gap:4px 10px}.acct-chart-resolution{border-left:1px solid #0e749029;padding-left:8px}.acct-chart-range__btn,.acct-chart-resolution__btn{color:#64748b;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:4px;padding:4px 7px;font-size:11px;font-weight:700}.acct-chart-range__btn:hover,.acct-chart-resolution__btn:hover:not(:disabled){color:#0e7490;background:#0e749014}.acct-chart-range__btn.is-active,.acct-chart-resolution__btn.is-active{color:#0e7490;background:#0e749024}.acct-chart-resolution__btn:disabled{cursor:default;opacity:.32}.chart-canvas-wrapper{box-sizing:border-box;background:linear-gradient(#0e749009 1px,#0000 1px) 0 0/100% 42px,linear-gradient(90deg,#0e749009 1px,#0000 1px) 0 0/80px 100%,#ffffffbd;border:1px solid #0e749024;border-radius:6px;width:100%;min-width:0;height:270px;padding:7px;position:relative}.chart-canvas-wrapper--compact{height:210px}.acct-empty{color:#64748b;background:#f8fafcc7;border:1px solid #0e74902e;border-radius:6px;padding:14px}@media (max-width:680px){#accounting-panel{top:calc((100dvh - var(--bottom-dock-height,0px)) / 2);width:calc(100vw - 16px);max-height:calc(100dvh - var(--bottom-dock-height,0px) - 28px)}.acct-header,.acct-tabs--parent,.acct-tabs--child,.acct-content{padding-left:10px;padding-right:10px}.acct-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.acct-two-col{grid-template-columns:1fr}.acct-card__value{font-size:18px}.acct-chart-header{flex-direction:column;align-items:flex-start}.acct-chart-selectors{justify-content:flex-start}}#scene-controls{color:#dcecff;background:#080d14e0;width:min(420px,100vw - 16px);max-height:calc(100vh - 52px);font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.scene-controls-head{border-bottom:1px solid #64748b33;align-items:center;gap:6px;padding:2px 3px 5px;display:flex}.scene-controls-title{letter-spacing:.04em;text-transform:uppercase;color:#475569;flex:1;font-size:10px;font-weight:700}.scene-controls-body.is-hidden{display:none}.scene-controls-body{grid-template-columns:1fr;gap:4px;padding-top:4px;display:grid}.scene-controls-section-panel{background:#0f172ab8;border:1px solid #64748b38;border-radius:4px;min-width:0;padding:5px 6px 6px}.scene-controls-section{color:#7dd3fc;letter-spacing:.05em;text-transform:uppercase;margin:0 0 4px;font-size:10px;font-weight:700}.scene-controls-row{margin:5px 0 0}.scene-controls-label-row{justify-content:space-between;gap:6px;display:flex}.scene-controls-val{color:#94a3b8}.scene-controls-slider{accent-color:#0e7490;width:100%;margin:1px 0 0}.scene-controls-toggle{cursor:pointer;align-items:center;gap:7px;margin:4px 0;display:flex}.scene-controls-checkbox{accent-color:#0e7490;cursor:pointer;margin:0}.scene-controls-btn{color:#dcecff;cursor:pointer;font:inherit;background:#1e293be6;border:1px solid #64748b47;border-radius:4px;padding:1px 7px}#selection-panel{left:50%;bottom:calc(var(--bottom-dock-height,0px) + 24px + env(safe-area-inset-bottom,0px));width:min(760px,100vw - 24px);max-height:min(32dvh, calc(100dvh - var(--bottom-dock-height,0px) - 48px));box-sizing:border-box;-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);color:#0f172a;z-index:11;-webkit-user-select:none;user-select:none;background:#e5edf6f0;border:1px solid #64748b47;border-radius:6px;padding:7px 9px;font:12px/1.35 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed;overflow:auto;transform:translate(-50%);box-shadow:0 14px 34px #0f172a3d,inset 0 1px #ffffffbf}.selection-head{align-items:center;gap:6px;margin-bottom:5px;display:flex}.selection-title{letter-spacing:.05em;text-transform:uppercase;color:#0e7490;flex:1;font-size:10px;font-weight:700}.selection-btn{color:#1e293b;cursor:pointer;font:inherit;background:#ffffffbd;border:1px solid #64748b47;border-radius:4px;padding:1px 8px}.selection-body{-webkit-user-select:text;user-select:text;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:4px;display:grid}.selection-row{background:#f8fafcb8;border:1px solid #64748b2e;border-radius:4px;justify-content:space-between;gap:14px;min-width:0;padding:3px 6px;display:flex}.selection-row-key{color:#64748b;flex:none}.selection-row span:last-child{overflow-wrap:anywhere;text-align:right;min-width:0}.selection-hint{color:#64748b;grid-column:1/-1}#terrain-debug{font:12px/1.35 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.terrain-debug-title{letter-spacing:.04em;text-transform:uppercase;color:#475569;margin-bottom:7px;font-size:10px;font-weight:700}.terrain-debug-tools{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.terrain-debug-btn{color:#1e293b;cursor:pointer;min-height:22px;font:inherit;background:#ffffffbd;border:1px solid #64748b47;border-radius:4px;padding:0 7px;font-size:11px;font-weight:650}.terrain-debug-btn--active{background:#fff2a0;border-color:#ca8a04b3;box-shadow:inset 0 0 0 1px #ca8a0480}.terrain-debug-btn--full{width:auto}.terrain-debug-btn--regen{margin-bottom:6px}.terrain-debug-btn--flat{margin-bottom:7px}.terrain-debug-status{color:#475569;background:#ffffffb8;border:1px solid #0e74902e;border-radius:4px;padding:4px 6px}body.debug-index{color:#e6edf5;background:#11151c;min-height:100%;font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:auto}#debug-index{width:min(1120px,100% - 32px);margin:0 auto;padding:44px 0 64px}.debug-index-header{margin-bottom:28px}.debug-index-logo{box-sizing:border-box;background:#f8fafcf5;border:1px solid #cdd6e42e;border-radius:10px;width:min(420px,100%);height:auto;margin-bottom:18px;padding:10px 14px;display:block}.debug-index-header h1{letter-spacing:0;margin:0 0 8px;font-size:34px;font-weight:750;line-height:1.1}.debug-index-header p{color:#aeb9c7;max-width:620px;margin:0}.debug-index-section{margin-top:30px}.debug-index-section h2{letter-spacing:.08em;text-transform:uppercase;color:#8fa2b8;margin:0 0 10px;font-size:12px;font-weight:750;line-height:1}.debug-index-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.debug-index-link{min-height:104px;color:inherit;background:#ffffff0b;border:1px solid #cdd6e426;border-radius:6px;gap:5px;padding:13px 14px;text-decoration:none;display:grid}.debug-index-link:hover,.debug-index-link:focus-visible{background:#7eb3f51a;border-color:#7eb3f5bf;outline:none}.debug-index-link-title{color:#fff;font-weight:750}.debug-index-link-detail{color:#aeb9c7;font-size:13px}.debug-index-link code{overflow-wrap:anywhere;color:#9dd2ff;align-self:end;min-width:0;font:12px/1.25 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}body.debug-textures{color:#d9e2ec;background:#10141a;min-height:100%;font:13px/1.4 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:auto}#texture-debug{width:min(1500px,100vw - 32px);margin:0 auto;padding:16px 0 28px}.texture-toolbar{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#10141af0;border-bottom:1px solid #ffffff1a;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0 12px;display:flex;position:sticky;top:0}.texture-toolbar h1{margin:0 10px 0 0;font-size:18px;font-weight:700;line-height:1}.texture-toolbar select,.texture-toolbar input,.texture-toolbar button{color:#e5edf5;height:30px;font:inherit;background:#17202b;border:1px solid #a0aec061;border-radius:6px}.texture-toolbar select{min-width:220px;padding:0 8px}.texture-toolbar button{cursor:pointer;padding:0 10px}.texture-field{color:#9fb1c5;align-items:center;gap:6px;font-size:12px;display:inline-flex}.texture-field input{width:76px;padding:0 7px}#debug-construction-toggle input{cursor:pointer}.texture-meta{color:#9fb1c5;padding:10px 0 12px;font:12px/1.3 ui-monospace,Menlo,Consolas,monospace}.texture-sections{gap:22px;display:grid}.texture-section h2{color:#d9e2ec;text-transform:uppercase;margin:0 0 8px;font:700 13px/1.2 ui-monospace,Menlo,Consolas,monospace}.texture-grid{grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:10px;display:grid}.texture-card{background:#151c25;border:1px solid #ffffff1c;border-radius:8px;min-width:0;overflow:hidden}.texture-card.is-wide{grid-column:span 2}.texture-canvas{aspect-ratio:1;object-fit:contain;background:#0b0f14;width:100%;display:block}.texture-card.is-wide .texture-canvas{aspect-ratio:5}.texture-label{color:#9fb1c5;border-top:1px solid #ffffff14;padding:6px 8px;font:11px/1 ui-monospace,Menlo,Consolas,monospace}body.debug-sound{color:#d9e2ec;background:#10141a;min-height:100%;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:auto}#sound-debug{width:min(880px,100vw - 32px);margin:0 auto;padding:32px 0}.sound-debug-header{border-bottom:1px solid #ffffff1c;grid-template-columns:1fr auto;align-items:end;gap:8px 16px;padding-bottom:18px;display:grid}.sound-debug-header h1{color:#f8fafc;margin:0;font-size:28px;font-weight:800;line-height:1}.sound-debug-header p{color:#9fb1c5;margin:0}.sound-debug-play-all,.sound-debug-button{color:#e5edf5;font:inherit;cursor:pointer;background:#17202b;border:1px solid #a0aec05c;border-radius:7px}.sound-debug-play-all{min-height:38px;padding:0 14px;font-weight:800}.sound-debug-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding-top:18px;display:grid}.sound-debug-button{text-align:left;grid-template-rows:auto 1fr;gap:7px;min-height:112px;padding:14px;display:grid}.sound-debug-play-all:hover,.sound-debug-button:hover{background:#1d2a35;border-color:#5eead494}.sound-debug-button__label{color:#f8fafc;font-size:17px;font-weight:800;line-height:1.15}.sound-debug-button__detail{color:#9fb1c5;font-size:12px}@media (max-width:560px){.sound-debug-header{grid-template-columns:1fr}.sound-debug-play-all{width:100%}}.gpu-timing{color:#dcecff;-webkit-user-select:none;user-select:none;background:#080d14d1;max-width:min(420px,100vw - 16px);font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.sim-performance-timing{color:#dcfce7;-webkit-user-select:none;user-select:none;background:#08140de0;max-width:min(760px,70vw);max-height:calc(100vh - 52px);font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}#debug-panel-dock{pointer-events:auto;flex-wrap:nowrap;flex:1 1 0;justify-content:center;align-items:flex-start;gap:8px;min-width:0;display:flex;position:relative;overflow-x:auto}body>.movable-panel{z-index:1000}#debug-panel-dock>.movable-panel{pointer-events:auto;flex:0 auto;position:relative;top:auto;left:auto;right:auto}#debug-panel-dock>.movable-panel.is-folded{flex:none;width:auto;max-width:none}.sim-timing-summary{white-space:pre-wrap;gap:2px;padding-bottom:6px;display:grid}.sim-timing-log{width:max-content;color:inherit;font:inherit;cursor:pointer;background:#ffffff12;border:1px solid #dcfce747;border-radius:3px;margin-top:4px;padding:2px 6px}.sim-timing-section{border-top:1px solid #dcfce724}.sim-timing-section>summary{cursor:pointer;padding:4px 2px;font-weight:700}.sim-timing-section .sim-timing-section{border-top-color:#dcfce714;margin-left:12px}.sim-timing-section table{border-collapse:collapse;width:100%;font:inherit;font-variant-numeric:tabular-nums;margin:0 0 6px}.sim-timing-section th,.sim-timing-section td{text-align:right;white-space:nowrap;border-bottom:1px solid #dcfce712;padding:1px 6px}.sim-timing-section th:first-child,.sim-timing-section td:first-child{text-align:left}.sim-timing-section th{color:#dcfce7b3;font-weight:400}.movable-panel-header{width:100%;color:inherit;font:inherit;text-align:left;cursor:grab;background:0 0;border:0;padding:5px 9px;display:block}.movable-panel-header:active{cursor:grabbing}.movable-panel-content{white-space:pre;cursor:copy;max-height:calc(100vh - 60px);padding:2px 9px 7px;overflow:auto}.movable-panel.is-folded .movable-panel-content{display:none}.sim-performance-timing .movable-panel-content{white-space:normal;cursor:default;min-width:min(680px,68vw)}.benchmark-report{z-index:200;color:#dcecff;background:#080d14f0;border:1px solid #60a5fa66;border-radius:6px;flex-direction:column;max-width:min(760px,100vw - 32px);max-height:calc(100vh - 32px);display:flex;position:fixed;inset:16px auto auto 16px;box-shadow:0 10px 30px #00000073}.benchmark-report.invalid{border-color:#f8717199}.benchmark-report-header{letter-spacing:.04em;text-transform:uppercase;color:#86efac;border-bottom:1px solid #64748b40;padding:8px 12px;font:700 12px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace}.benchmark-report.invalid .benchmark-report-header{color:#fca5a5}.benchmark-report-body{white-space:pre;flex:1;margin:0;padding:10px 12px;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.benchmark-report-actions{border-top:1px solid #64748b40;gap:6px;padding:8px 12px;display:flex}.benchmark-report-button{color:#dcecff;cursor:pointer;background:#1e293be6;border:1px solid #60a5fa66;border-radius:4px;padding:4px 10px;font:600 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.benchmark-report-button:hover{background:#334155f2}
