/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-20{margin:calc(var(--spacing) * 20)}.\!grid{display:grid!important}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.flex-shrink,.shrink{flex-shrink:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--townhall-world-build-revision:20260800;--ink-950:#10191c;--ink-900:#172326;--ink-850:#1d2a2d;--ink-800:#263539;--ink-700:#3d4d50;--ink-600:#5a686a;--ink-500:#798587;--ink-300:#b9c1bf;--ivory-50:#fffdf7;--ivory-100:#f9f5e9;--ivory-200:#ece6d7;--mint-300:#93dec4;--mint-400:#62c8a4;--mint-500:#37ac87;--mint-700:#1f715b;--amber-300:#f2c877;--amber-400:#dfae52;--coral-300:#eea18d;--coral-400:#d97b67;--rose-300:#e7a8ba;--danger-400:#e06d67;--positive:#77d7af;--glass:#111c1fdb;--glass-soft:#182528c2;--glass-border:#ffffff1c;--glass-highlight:#ffffff29;--shadow-panel:0 18px 55px #0711123d, 0 4px 16px #07111226;--shadow-float:0 24px 70px #0711124d, 0 4px 16px #07111229;--ease-out:cubic-bezier(.2, .75, .22, 1);--font-ui:"Pretendard Variable", Pretendard, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", sans-serif;--skin-0:#f5c8a8;--skin-1:#eeb68f;--skin-2:#d99b73;--skin-3:#bd7955;--skin-4:#936044;--skin-5:#6c4534;--outfit-0:#e6806d;--outfit-1:#66ae9c;--outfit-2:#697f96;--outfit-3:#d8a455;--outfit-4:#9c7896;--outfit-5:#4f7a81;--outfit-6:#d0b493;--outfit-7:#b36363;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{background:var(--ink-950);color:var(--ivory-50);font-family:var(--font-ui);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{color:inherit;font:inherit}button{border:0}button:not(:disabled){cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--mint-300);outline-offset:3px}::selection{color:#fff;background:#62c8a459}.game-shell{isolation:isolate;-webkit-user-select:none;user-select:none;width:100%;height:100dvh;min-height:560px;position:relative;overflow:hidden}.skip-link{background:var(--ivory-50);color:var(--ink-950);z-index:1000;border-radius:0 0 12px;padding:12px 16px;font-size:16px;font-weight:750;transition:transform .18s;position:fixed;top:0;left:0;transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}.world-layer{z-index:0;position:absolute;inset:0;overflow:hidden}.world-layer>canvas{outline:none;display:block;width:100%!important;height:100%!important}.world-atmosphere{pointer-events:none;z-index:1;background:radial-gradient(circle at 50% 45%,#0000 42%,#0c171914 84%),linear-gradient(#fff8de05,#0710121a);position:absolute;inset:0}.game-ui{pointer-events:none;z-index:10;position:absolute;inset:0}.game-ui button,.game-ui input,.game-ui select,.game-ui a,.glass-panel,.game-modal{pointer-events:auto}.glass-panel{background:linear-gradient(145deg, #ffffff0e, transparent 45%), var(--glass);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 #fff1, var(--shadow-panel);-webkit-backdrop-filter:blur(18px)saturate(135%);backdrop-filter:blur(18px)saturate(135%)}.icon-button{color:#ffffffc2;height:38px;transition:background .16s ease, color .16s ease, transform .16s var(--ease-out);background:0 0;border-radius:10px;justify-content:center;align-items:center;width:38px;padding:0;display:inline-flex}.icon-button:active{transform:scale(.94)}.primary-button,.secondary-button,.danger-button,.danger-ghost-button{min-height:42px;transition:transform .16s var(--ease-out), box-shadow .16s ease, background .16s ease;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:16px;font-weight:750;display:inline-flex}.primary-button{color:#122821;background:linear-gradient(#7ad5b4,#55bd99);box-shadow:inset 0 1px #ffffff73,0 8px 20px #2081634d}.primary-button:hover{transform:translateY(-1px);box-shadow:inset 0 1px #ffffff80,0 10px 26px #20816366}.secondary-button{color:#ffffffd1;background:#ffffff12;border:1px solid #ffffff1a}.danger-button{color:#fff;background:linear-gradient(#ea7d77,#ce5c58)}.danger-ghost-button{color:#f3a19c;background:#e06d6717}.full-width{width:100%}.top-hud{left:max(16px, env(safe-area-inset-left));pointer-events:none;right:max(16px, env(safe-area-inset-right));top:max(16px, env(safe-area-inset-top));z-index:40;grid-template-columns:minmax(190px,280px) minmax(0,1fr) minmax(300px,340px);align-items:flex-start;gap:12px;display:grid;position:absolute}.top-hud>*{pointer-events:auto;height:64px}.brand-cluster{border-radius:18px;align-items:center;gap:11px;min-width:0;padding:6px 16px 6px 9px;display:flex;overflow:hidden}.menu-button{flex:none}.brand-mark{filter:drop-shadow(0 4px 8px #050a0c47);flex:none;width:40px;height:37px;display:block}.brand-mark.large{width:70px;height:64px}.brand-copy{flex-direction:column;min-width:0;display:flex}.brand-copy strong{letter-spacing:.115em;white-space:nowrap;font-size:16px;line-height:1}.brand-copy span{color:var(--mint-300);letter-spacing:.42em;margin-top:6px;font-size:14px;font-weight:850;line-height:1}.current-town-name{color:#ffffff94;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;max-width:150px;margin-top:3px;font-size:10px;font-weight:720;line-height:1;display:flex;overflow:hidden}.current-town-name:before{content:"";background:#ffffff57;border-radius:50%;flex:0 0 5px;width:5px;height:5px}.current-town-name.is-cloud:before{background:#8fc7ff}.current-town-name.is-device:before{background:var(--mint-300)}.current-town-name.is-unsaved{color:#f2c877b8}.current-town-name.is-unsaved:before{background:var(--amber-300)}.metric-strip{border-radius:18px;grid-template-columns:1.3fr 1px 1fr 1px .75fr 1px 1fr;align-items:center;min-width:0;padding:8px 16px;display:grid;overflow:hidden}.metric{align-items:center;gap:9px;min-width:0;padding:0 10px;display:flex;position:relative}.metric-icon{color:var(--ivory-200);background:#ffffff12;border:1px solid #ffffff12;border-radius:11px;flex:0 0 34px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.coin-icon{color:var(--amber-300);background:#dfae5221}.revenue-icon{color:var(--mint-300);background:#62c8a41f;transform:rotate(-90deg)}.happiness-icon{color:#edb0c1;background:#e7a8ba1f}.metric-copy{flex-direction:column;min-width:0;display:flex}.metric-copy small{color:#ffffff75;letter-spacing:.035em;white-space:nowrap;margin-bottom:6px;font-size:13px;font-weight:700;line-height:1}.metric-copy strong{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;min-width:0;font-size:17px;font-weight:780;line-height:1;display:flex}.metric-copy strong>span{color:var(--amber-300);font-family:Georgia,serif;font-size:27px;line-height:.6}.metric-copy em{color:#ffffff5e;margin-left:4px;font-size:13px;font-style:normal;font-weight:650}.positive{color:var(--positive)!important}.metric-divider{background:#ffffff16;height:32px}.metric-gauge{background:#ffffff14;border-radius:4px;height:2px;position:absolute;bottom:-9px;left:54px;right:12px;overflow:hidden}.metric-gauge i{background:linear-gradient(90deg, var(--rose-300), var(--mint-300));border-radius:inherit;height:100%;display:block}.time-cluster{border-radius:18px;justify-content:flex-end;align-items:center;min-width:0;padding:8px 9px 8px 14px;display:flex}.time-copy{align-items:center;gap:9px;min-width:76px;margin-right:auto;display:flex}.daylight-icon{color:var(--amber-300);filter:drop-shadow(0 0 8px #f2c87740);align-items:center;display:flex}.daylight-icon.is-night{color:#a9c6e8;filter:drop-shadow(0 0 8px #a9c6e847)}.time-copy>span:last-child{flex-direction:column;display:flex}.time-copy small{color:#ffffff6e;letter-spacing:.09em;margin-bottom:5px;font-size:12px;font-weight:750;line-height:1}.time-copy strong{font-variant-numeric:tabular-nums;font-size:17px;line-height:1}.speed-controls{background:#00000030;border:1px solid #ffffff0d;border-radius:11px;align-items:center;gap:2px;padding:3px;display:flex}.speed-controls button{color:#ffffff6e;background:0 0;border-radius:8px;justify-content:center;align-items:center;min-width:28px;height:28px;padding:0 6px;font-size:14px;font-weight:800;display:flex}.speed-controls button:hover{color:#ffffffd1}.compact-divider{background:#ffffff17;width:1px;height:25px;margin:0 5px 0 9px}.top-action{border-radius:9px;width:34px;height:34px}.sandbox-badge{left:50%;top:calc(max(16px, env(safe-area-inset-top)) + 76px);z-index:32;border-color:#f2c87733;border-radius:999px;align-items:center;gap:8px;padding:7px 13px 7px 8px;display:flex;position:absolute;transform:translate(-50%)}.sandbox-badge>span{color:var(--amber-300);background:#f2c87729;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.sandbox-badge strong{color:var(--amber-300);font-size:14px;font-weight:800}.sandbox-badge i{background:#ffffff24;width:1px;height:12px}.sandbox-badge small{color:#ffffff8c;white-space:nowrap;font-size:13px}.sandbox-lighting-toggle{color:var(--amber-300);cursor:pointer;white-space:nowrap;background:#f2c8771f;border:1px solid #f2c87740;border-radius:999px;align-items:center;gap:5px;margin-left:2px;padding:4px 10px;font-size:14px;font-weight:700;display:flex}.sandbox-lighting-toggle:hover{background:#f2c87738}.camera-orbit-pad{bottom:calc(max(8px, env(safe-area-inset-bottom)) + 8px);left:max(9px, env(safe-area-inset-left));z-index:30;border-radius:15px;grid-template-columns:repeat(2,42px);gap:4px;padding:5px;display:grid;position:absolute}.camera-orbit-button{color:var(--ui-ink-soft,#ffffffb8);background:#ffffff85;border:1px solid #374d461f;border-radius:11px;justify-content:center;align-items:center;height:40px;display:flex}.camera-orbit-button:active{background:var(--ui-mint-soft,#62c8a42e);color:var(--ui-ink,var(--ivory-200))}.camera-orbit-button.is-mirrored svg{transform:scaleX(-1)}.camera-orbit-button.is-tilt-up svg{transform:rotate(180deg)}.game-shell:has(.build-category-drawer.is-open) .camera-orbit-pad{display:none}.camera-hints{bottom:max(18px, env(safe-area-inset-bottom));left:max(18px, env(safe-area-inset-left));z-index:22;border-radius:13px;align-items:center;gap:13px;padding:8px 11px;display:flex;position:absolute}.camera-hints span{color:#ffffff7d;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:650;display:flex}.camera-hints kbd{color:#ffffffa8;background:#ffffff14;border:1px solid #ffffff1a;border-radius:4px;padding:2px 4px;font-size:11px}.camera-mode-toolbar{bottom:max(18px, env(safe-area-inset-bottom));z-index:37;border-radius:14px;align-items:center;gap:7px;padding:5px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.camera-mode-title{color:#ffffff85;white-space:nowrap;align-items:center;gap:5px;padding:0 5px;font-size:12px;font-weight:760;display:flex}.camera-mode-toolbar>div{background:#0003;border:1px solid #ffffff0e;border-radius:10px;align-items:center;gap:2px;padding:2px;display:flex}.camera-mode-toolbar button{color:#ffffff7a;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:5px;min-height:30px;padding:0 9px;font-size:12px;font-weight:780;display:flex}.camera-mode-toolbar button:hover{color:#ffffffd6}.camera-mode-toolbar button.is-active{color:var(--mint-300);background:#62c8a429;border-color:#7ddfbb3b}.camera-mode-toolbar>kbd,.ground-camera-guide kbd{color:#ffffffa8;background:#ffffff14;border:1px solid #ffffff1c;border-radius:5px;padding:2px 5px;font-size:10px}.ground-tour-panel{z-index:8;color:#f1ead8;pointer-events:auto;width:285px;padding:16px;position:absolute;top:108px;right:20px}.ground-tour-panel>div{justify-content:space-between;align-items:center;display:flex}.ground-tour-panel strong{font-size:15px}.ground-tour-panel output{font-variant-numeric:tabular-nums;font-size:24px}.ground-tour-panel p{color:#d1d8ca;margin:10px 0;font-size:12px;line-height:1.5}.ground-tour-panel button{color:#f3eedf;cursor:pointer;background:#31584b;border:1px solid #658778;border-radius:9px;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;display:flex}.ground-tour-panel small{color:#bacac0;margin-top:9px;font-size:10px;line-height:1.5;display:block}.ground-tour-panel output small{display:inline}.ground-tour-panel button.ground-tour-cafe{background:#233e35;border-color:#53665c;margin-top:6px}.ground-touch-controls{z-index:48;pointer-events:none;position:absolute;inset:0}.ground-touch-joystick,.ground-touch-look{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none}.ground-touch-joystick{bottom:116px;left:max(20px, env(safe-area-inset-left));color:#fff7df;background:radial-gradient(circle,#31594fb8 0 23%,#193b3299 24% 58%,#102b277a 59%);border:1px solid #9eb4a066;border-radius:50%;outline:none;width:132px;height:132px;position:absolute;box-shadow:inset 0 0 0 10px #d6e8d50b,0 8px 24px #0714113b}.ground-touch-joystick:focus-visible{box-shadow:inset 0 0 0 3px #82efd0,0 8px 24px #0714113b}.ground-touch-joystick-arrows{color:#d8ede37a;place-items:center;font-size:52px;font-weight:200;line-height:1;display:grid;position:absolute;inset:0}.ground-touch-joystick-knob{will-change:transform;background:linear-gradient(145deg,#6d9a83e8,#315d4fe8);border:1px solid #d6ead7a8;border-radius:50%;width:58px;height:58px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 1px #fff5,0 5px 14px #07141166}.ground-touch-joystick small{color:#fffce0c9;letter-spacing:.08em;font-size:11px;font-weight:760;position:absolute;bottom:-22px;left:50%;transform:translate(-50%)}.ground-touch-look{right:max(22px, env(safe-area-inset-right));color:#fff7df;background:#193b32a8;border:1px solid #859b8677;border-radius:50%;align-content:center;justify-items:center;gap:6px;width:112px;height:112px;font-size:12px;display:grid;position:absolute;bottom:122px;box-shadow:inset 0 0 0 8px #d6e8d50a}.ground-touch-look small{opacity:.65}.ground-touch-brake{pointer-events:auto;touch-action:none;color:#fff2dd;background:#684536dc;border:1px solid #d2a87a;border-radius:10px;min-height:44px;padding:10px 20px;position:absolute;bottom:74px;right:38px}@media (width<=760px){.ground-tour-panel{width:220px;padding:11px;top:140px;right:12px}.ground-tour-panel p{margin:6px 0;font-size:11px}.ground-tour-panel>small{display:none}}@media (height<=520px){.ground-tour-panel{width:240px;top:86px}.ground-tour-panel>small{display:none}.ground-touch-joystick{bottom:72px}.ground-touch-look{bottom:76px}}.ground-camera-guide{bottom:max(72px, calc(env(safe-area-inset-bottom) + 54px));z-index:36;border-color:#7ddfbb33;border-radius:13px;align-items:center;gap:9px;padding:8px 11px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.ground-camera-guide>span{color:#ffffff94;white-space:nowrap;font-size:12px;font-weight:680}.view-only-badge{color:var(--mint-300);letter-spacing:.04em;white-space:nowrap;background:#62c8a429;border:1px solid #7ddfbb3d;border-radius:999px;padding:4px 7px;font-size:11px}.mini-map{left:max(16px, env(safe-area-inset-left));top:max(92px, calc(env(safe-area-inset-top) + 92px));z-index:34;border-radius:18px;width:222px;padding:10px;position:absolute}.mini-map-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.mini-map-header>span{color:var(--ivory-100);align-items:center;gap:6px;font-size:15px;display:flex}.mini-map-header small{color:#ffffff73;font-size:12px;font-weight:700}.mini-map-header .mini-map-navigation-status{color:var(--amber-300);text-align:right;max-width:112px;font-size:10px;line-height:1.25}.mini-map-canvas{aspect-ratio:1;image-rendering:auto;cursor:crosshair;touch-action:none;background:#16262b;border:1px solid #ffffff17;border-radius:12px;width:100%;display:block}.mini-map-layers{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:7px;display:grid}.mini-map-layers button{color:#ffffff7a;background:#ffffff09;border:1px solid #ffffff12;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:25px;font-size:12px;font-weight:750;display:flex}.mini-map-layers button.is-active{color:var(--ivory-100);background:#5ec9a41c;border-color:#5ec9a43d}.mini-map-dot{border-radius:50%;width:6px;height:6px}.citizen-dot{background:#f7f1df}.building-dot{background:#d76f5f}.path-dot{background:#b7b7a8}.vehicle-dot{background:var(--amber-400)}.town-growth-actions{border-top:1px solid #ffffff12;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px;padding-top:8px;display:grid}.town-growth-actions button{color:#fffc;background:#ffffff0b;border:1px solid #ffffff13;border-radius:9px;flex-direction:column;gap:4px;min-height:44px;padding:6px 7px;display:flex}.town-growth-actions button:hover:not(:disabled){background:#5ec9a41f;border-color:#5ec9a440}.town-growth-actions button:disabled{cursor:not-allowed;opacity:.36}.town-growth-actions button span{align-items:center;gap:5px;font-size:12px;font-weight:780;display:flex}.town-growth-actions button small{color:var(--amber-300);font-size:11px;font-weight:760}.mouse-glyph{border:1px solid #ffffff70;border-radius:6px;width:11px;height:15px;display:inline-block;position:relative}.mouse-glyph:before{content:"";background:#ffffff70;width:1px;height:4px;position:absolute;top:0;left:5px}.scroll-glyph{border:1px solid #ffffff70;border-radius:3px;width:7px;height:12px;display:inline-block;position:relative}.scroll-glyph:before{content:"";background:#ffffffa6;border-radius:1px;width:1px;height:3px;position:absolute;top:2px;left:2px}.build-dock-toggle{color:var(--ivory-100);background:#172326eb;border:1px solid #ffffff1a;border-radius:12px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 12px;font-size:13px;font-weight:780;transition:background .15s,border-color .15s;display:none}.build-dock-toggle svg:last-child{transition:transform .15s}.build-dock-toggle svg.is-rotated{transform:rotate(180deg)}.build-controls-stack{bottom:max(66px, calc(env(safe-area-inset-bottom) + 48px));left:max(16px, env(safe-area-inset-left));pointer-events:none;z-index:35;flex-direction:column;align-items:flex-start;gap:8px;width:max-content;max-width:min(620px,100vw - 32px);display:flex;position:absolute}.build-controls-stack>*{pointer-events:auto}.placement-feedback-anchor{left:calc(max(16px, env(safe-area-inset-left)) + 238px);pointer-events:none;max-width:min(620px,100vw - 270px);top:max(92px, calc(env(safe-area-inset-top) + 92px));z-index:35;width:max-content;position:absolute}.placement-feedback-anchor>*{pointer-events:auto}.build-dock-wrap{max-width:inherit;align-items:flex-end;gap:8px;width:max-content;display:flex;position:relative}.build-dock-column{flex:0 0 222px;width:222px}.build-dock-column .build-dock{width:100%}.build-category-drawer{border-radius:17px;flex:0 0 366px;width:366px;max-height:min(430px,100dvh - 210px);padding:7px;overflow:hidden}.dock-label{color:#ffffffa6;text-shadow:0 1px 4px #0006;align-items:center;gap:6px;margin:0 0 7px 4px;font-size:14px;font-weight:760;display:flex}.dock-label-icon{background:var(--amber-400);color:var(--ink-900);border-radius:5px;justify-content:center;align-items:center;width:20px;height:20px;display:flex}kbd{color:#ffffff75;font-family:var(--font-ui);text-align:center;background:#ffffff17;border:1px solid #ffffff1c;border-radius:4px;min-width:17px;padding:0 4px;font-size:12px;line-height:16px;box-shadow:0 1px #0003}.build-dock{border-radius:19px;width:max-content;padding:6px;overflow:hidden}.build-category-tabs{grid-template-columns:1fr;align-items:stretch;gap:3px;margin:0;padding:0;display:grid}.build-category-tab{color:#ffffff6e;background:0 0;border:1px solid #0000;border-radius:9px;justify-content:flex-start;align-items:center;gap:7px;min-width:104px;height:32px;padding:0 10px;font-size:13px;font-weight:760;transition:background .15s,border-color .15s,color .15s;display:flex}.build-category-tab.is-selected{color:var(--mint-300);background:#62c8a421;border-color:#7ddfbb33}.build-demolish-toggle{color:#ffcdc7c2;background:#e66b6214;border:1px solid #f06a6224;border-radius:9px;justify-content:flex-start;align-items:center;gap:7px;width:100%;height:32px;margin-top:5px;padding:0 10px;font-size:13px;font-weight:760;transition:background .15s,border-color .15s,color .15s;display:flex}.build-demolish-toggle:hover,.build-demolish-toggle:focus-visible,.build-demolish-toggle.is-selected{color:#ffd2cb;background:#e66b6233;border-color:#f06a626b}.build-demolish-toggle kbd{margin-left:auto}.build-category-panel{min-height:0;scroll-padding-inline:5px}.build-dock-scroll{scrollbar-color:#7ddfbb59 transparent;scrollbar-width:thin;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:min(416px,100dvh - 224px);padding-right:3px;display:grid;overflow:hidden auto}.build-dock-scroll::-webkit-scrollbar{width:4px;display:block}.build-dock-scroll::-webkit-scrollbar-thumb{background:#7ddfbb59;border-radius:999px}.build-card{width:100%;min-height:108px;transition:background .17s ease, border .17s ease, transform .17s var(--ease-out);background:0 0;border:1px solid #0000;border-radius:13px;grid-template-rows:34px auto auto;grid-template-areas:"icon""copy""cost";padding:7px 5px 5px;display:grid;position:relative}.build-card:hover:not(:disabled),.build-card.is-selected{background:#ffffff16;border-color:#ffffff14;transform:translateY(-2px)}.build-card-key{color:#ffffff40;font-size:11px;font-weight:700;position:absolute;top:5px;left:6px}.build-card-icon{color:var(--ivory-200);background:#ffffff17;border:1px solid #ffffff14;border-radius:10px;grid-area:icon;justify-content:center;place-self:center;align-items:center;width:36px;height:31px;display:flex}.tone-coral .build-card-icon{color:#f3b09f;background:#d97b672b}.tone-coffee .build-card-icon{color:#e7ba85;background:#bf8a542e}.tone-rose .build-card-icon{color:#f0b9c9;background:#e7a8ba29}.tone-leaf .build-card-icon,.tone-forest .build-card-icon{color:#a7d6a4;background:#69af7429}.tone-mint .build-card-icon{color:#a0dfc8;background:#62c8a426}.tone-amber .build-card-icon{color:var(--amber-300);background:#dfae522e}.tone-slate .build-card-icon{color:#b7cbd3;background:#97aeb926}.tone-road .build-card-icon{color:#c2c7c8;background:#7d858a2b}.build-card-copy{text-align:center;flex-direction:column;grid-area:copy;min-width:0;display:flex}.build-card-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:750;overflow:hidden}.build-card-copy small{color:#ffffff59;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:11px;line-height:1.32;display:-webkit-box;overflow:hidden}.build-card-cost{color:var(--amber-300);font-variant-numeric:tabular-nums;grid-area:cost;justify-content:center;align-items:center;gap:3px;padding-bottom:2px;font-size:12px;font-weight:750;line-height:1.45;display:flex}.build-card-cost i{background:var(--amber-400);border:1px solid #ffffff38;border-radius:50%;width:7px;height:7px}.build-card.is-locked{filter:saturate(.25);opacity:.43}.build-card.is-unaffordable:not(.is-selected){opacity:.63}.placement-feedback{z-index:1;border-radius:15px;align-items:center;gap:10px;max-width:100%;min-height:51px;padding:7px 8px 7px 10px;display:flex;position:relative}.placement-status-icon{color:var(--mint-300);background:#62c8a429;border-radius:50%;flex:0 0 30px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.placement-feedback.is-invalid{border-color:#e06d6766}.placement-copy{flex-direction:column;flex:auto;min-width:0;display:flex}.placement-copy small{color:#ffffff6b;margin-bottom:3px;font-size:12px}.placement-copy strong{overflow-wrap:anywhere;word-break:keep-all;white-space:normal;font-size:14px;font-weight:720;line-height:1.35}.placement-rotation{color:#ffffff85;font-variant-numeric:tabular-nums;background:#ffffff12;border-radius:6px;flex:none;padding:4px 6px;font-size:13px}.placement-actions{flex:none;align-items:center;gap:10px;display:flex}.placement-direction-actions{white-space:nowrap;background:#ffffff6b;border-radius:10px;flex:none;align-items:center;gap:6px;padding:2px;display:flex}.placement-action{color:#ffffffab;background:#ffffff0e;border-radius:9px;flex:none;align-items:center;gap:5px;height:34px;padding:0 8px;font-size:13px;display:flex}.placement-action:hover{background:#ffffff1a}.placement-action:disabled{cursor:not-allowed;opacity:.42}.placement-confirm-action:not(:disabled){color:var(--mint-300);background:#62c8a433}.placement-confirm-action:not(:disabled):hover,.placement-confirm-action:not(:disabled):focus-visible{background:#62c8a452}.coaster-editor-panel{bottom:max(18px, env(safe-area-inset-bottom));left:max(16px, env(safe-area-inset-left));scrollbar-color:#7ddfbb4d transparent;z-index:54;flex-direction:column;gap:10px;width:min(390px,100vw - 32px);max-height:calc(100dvh - 112px);padding:15px;display:flex;position:absolute;overflow:hidden auto}.coaster-editor-header,.coaster-node-title{justify-content:space-between;align-items:center;display:flex}.coaster-editor-header>span,.coaster-node-title>span:first-child{flex-direction:column;display:flex}.coaster-editor-header small,.coaster-node-title small,.coaster-editor-summary small,.coaster-stepper-grid small,.coaster-segment-options>small{color:#ffffff70;margin-bottom:3px;font-size:12px}.coaster-editor-header strong{font-size:18px}.coaster-editor-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.coaster-editor-summary>span{background:#ffffff0b;border-radius:10px;flex-direction:column;min-width:0;padding:8px;display:flex}.coaster-editor-summary strong{overflow-wrap:anywhere;font-size:15px}.coaster-validation{color:#a7e4cf;background:#62c8a417;border:1px solid #7ddfbb29;border-radius:10px;align-items:flex-start;gap:7px;padding:8px 9px;font-size:13px;line-height:1.4;display:flex}.coaster-validation svg{flex:none}.coaster-validation.is-invalid{color:#f2aaa5;background:#e06d671a;border-color:#eb807933}.coaster-node-strip{scrollbar-width:thin;gap:4px;padding-bottom:3px;display:flex;overflow-x:auto}.coaster-node-strip button{color:#ffffff94;background:#ffffff0e;border:1px solid #ffffff14;border-radius:7px;flex:0 0 28px;height:27px;font-size:12px}.coaster-node-strip button.is-selected{color:#ffe5a4;background:#f4bf592e;border-color:#ffdc855c}.coaster-node-editor{background:#ffffff09;border:1px solid #fff1;border-radius:12px;flex-direction:column;gap:10px;padding:10px;display:flex}.coaster-node-title>span:last-child{color:#ffffff80;font-size:12px}.coaster-stepper-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.coaster-stepper-grid>div{min-width:0}.coaster-stepper-grid>div>span{grid-template-columns:28px minmax(42px,1fr) 28px;align-items:center;gap:4px;display:grid}.coaster-stepper-grid button{color:var(--ivory-200);background:#fff1;border-radius:7px;height:28px}.coaster-stepper-grid strong{text-align:center;font-size:14px}.coaster-segment-options>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.coaster-segment-options button{color:#ffffff8c;background:#ffffff0d;border:1px solid #0000;border-radius:8px;min-height:29px;font-size:12px}.coaster-segment-options button.is-selected{color:var(--mint-300);background:#62c8a424;border-color:#7ddfbb38}.coaster-editor-tip{color:#ffffff78;align-items:flex-start;gap:7px;font-size:12px;line-height:1.45;display:flex}.coaster-editor-tip svg{flex:none}.coaster-editor-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.coaster-editor-actions button{border-radius:8px;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:34px;padding:5px;font-size:12px;display:flex}.coaster-editor-actions button:not(.primary-button):not(.danger-ghost-button){color:#ffffffa8;background:#ffffff0f}.inspector-panel{max-height:calc(100dvh - 118px);right:max(16px, env(safe-area-inset-right));scrollbar-color:#ffffff24 transparent;top:calc(max(16px, env(safe-area-inset-top)) + 76px);z-index:30;border-radius:20px;width:286px;padding:18px;position:absolute;overflow:hidden auto}.panel-handle{display:none}.panel-close{width:31px;height:31px;position:absolute;top:10px;right:10px}.panel-focus-button{color:var(--mint-300);background:#62c8a41a;border:1px solid #62c8a42e;border-radius:9px;align-items:center;gap:5px;height:31px;padding:0 9px;font-size:12px;font-weight:800;display:flex;position:absolute;top:10px;right:47px}.panel-focus-button:hover,.panel-focus-button:focus-visible{color:#edfff8;background:#62c8a42e}.inspector-hero{align-items:center;gap:12px;padding-top:34px;padding-right:0;display:flex}.inspector-hero-icon{color:var(--amber-300);background:#dfae5221;border:1px solid #dfae522b;border-radius:14px;flex:0 0 48px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.vehicle-color-chip{color:#ffffffe6;border:2px solid #fff3;border-radius:14px;flex:0 0 48px;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:inset 0 0 0 3px #111e2238}.inspector-hero>span:last-child{flex-direction:column;min-width:0;display:flex}.inspector-hero small{color:#fff6;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:700}.inspector-hero strong{overflow-wrap:anywhere;word-break:keep-all;font-size:18px;line-height:1.3}.status-ribbon{background:#0000002b;border:1px solid #ffffff0d;border-radius:10px;flex-wrap:wrap;align-items:center;gap:7px;min-height:36px;margin-top:15px;padding:8px 10px;display:flex}.status-dot{background:var(--ink-500);border:2px solid #ffffff26;border-radius:50%;width:8px;height:8px}.status-dot.is-open{background:var(--mint-400);box-shadow:0 0 8px #62c8a4a6}.status-ribbon strong{font-size:14px}.status-ribbon small{color:#ffffff61;overflow-wrap:anywhere;text-align:right;min-width:0;margin-left:auto;font-size:12px}.inspector-section{border-top:1px solid #ffffff13;margin-top:15px;padding-top:15px}.stats-grid{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.stats-grid.is-four{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid>div{background:#ffffff0b;border:1px solid #ffffff0a;border-radius:10px;flex-direction:column;align-items:center;padding:9px 4px 8px;display:flex}.stat-mini-icon{color:#ffffff70;height:18px;margin-bottom:4px}.stats-grid small{color:#ffffff63;font-size:11px}.stats-grid strong{font-variant-numeric:tabular-nums;margin-top:3px;font-size:16px}.section-title-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title-row>strong,.citizen-schedule>strong{font-size:14px;font-weight:750}.section-title-row>small{color:#ffffff52;font-size:12px}.live-label{color:#ffffff5e;letter-spacing:.08em;align-items:center;gap:5px;font-size:11px;font-weight:800;display:flex}.live-label i{background:var(--mint-400);border-radius:50%;width:5px;height:5px;animation:1.8s infinite live-pulse}.detail-progress+.detail-progress{margin-top:11px}.detail-progress>span{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.detail-progress small{color:#ffffff80;font-size:12px}.detail-progress strong{color:#ffffffbd;font-variant-numeric:tabular-nums;font-size:12px}.detail-progress>div{background:#ffffff12;border-radius:6px;height:4px;overflow:hidden}.detail-progress>div i{background:linear-gradient(90deg, var(--mint-500), var(--mint-300));border-radius:inherit;height:100%;transition:width .4s var(--ease-out);display:block}.detail-progress.secondary>div i{background:linear-gradient(90deg,#6da8b6,#a5ced0)}.detail-progress.construction>div i{background:linear-gradient(90deg, var(--amber-400), var(--amber-300))}.detail-note{color:#ffffff8c;background:#dfae5214;border:1px solid #dfae521a;border-radius:9px;align-items:center;gap:8px;margin-top:12px;padding:9px;font-size:12px;line-height:1.45;display:flex}.detail-note svg{color:var(--amber-300);flex:none}.detail-note.visitor-connection.is-connected{background:#5bc2a314;border-color:#5bc2a321}.detail-note.visitor-connection.is-connected svg{color:var(--mint-300)}.detail-note.visitor-connection.is-disconnected,.detail-note.visitor-connection.is-no-residents{background:#dc695b14;border-color:#dc695b1f}.detail-note.visitor-connection.is-disconnected svg,.detail-note.visitor-connection.is-no-residents svg{color:#e18f82}.company-tenant-list{gap:6px;display:grid}.company-tenant-list>div,.employment-summary{background:#ffffff0a;border:1px solid #ffffff0b;border-radius:9px;justify-content:space-between;align-items:center;padding:8px 9px;display:flex}.company-tenant-list span,.employment-summary span{gap:2px;min-width:0;display:grid}.company-tenant-list strong,.employment-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.company-tenant-list small,.employment-summary small{color:#ffffff61;font-size:11px}.company-tenant-list em,.employment-summary em{color:var(--mint-300);flex:none;margin-left:8px;font-size:11px;font-style:normal}.employment-summary{margin-bottom:10px}.staff-highlight-toggle{color:#ffffff9e;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff17;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:750}.staff-highlight-toggle.is-active{color:var(--mint-300);background:#62c8a426;border-color:#62c8a44d}.employment-person-list{gap:6px;display:grid}.employment-person-list>div{background:#ffffff0a;border:1px solid #ffffff0b;border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:8px 9px;display:flex}.employment-person-list span{gap:2px;min-width:0;display:grid}.employment-person-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.employment-person-list small{color:#ffffff6b;font-size:10px;line-height:1.4}.employment-person-list button{color:var(--mint-300);cursor:pointer;background:#62c8a41c;border:1px solid #62c8a433;border-radius:7px;flex:none;padding:5px 8px;font-size:11px;font-weight:800}.employment-person-list button:disabled{cursor:not-allowed;opacity:.38}.employment-person-list .danger-ghost-button{color:#eaa89f;background:#dc695b14;border-color:#dc695b2b}.empty-employment-list{text-align:center;background:#ffffff06;border:1px dashed #ffffff14;border-radius:9px;padding:10px;display:block}.inspector-actions{grid-template-columns:1fr auto;gap:6px;margin-top:15px;display:grid}.citizen-avatar{background:linear-gradient(160deg,#d8ead9,#94c5b2);border:2px solid #ffffff26;border-radius:14px;flex:0 0 48px;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:relative;overflow:hidden}.citizen-avatar i{z-index:2;border-radius:50%;width:18px;height:20px;position:absolute;top:8px}.citizen-avatar i:before{content:"";background:#423630;border-radius:50% 50% 40% 40%;width:20px;height:8px;position:absolute;top:-1px;left:-1px}.citizen-avatar b{border-radius:10px 10px 4px 4px;width:30px;height:27px;position:absolute;bottom:-5px}.citizen-status{background:#62c8a412}.needs-list .detail-progress{grid-template-columns:48px 1fr;gap:8px;display:grid}.needs-list .detail-progress>span{margin:0}.needs-list .detail-progress>span strong{display:none}.needs-list .detail-progress>div{align-self:center}.citizen-schedule ol{margin:12px 0 0;padding:0;list-style:none;position:relative}.citizen-schedule li{color:#fff6;grid-template-columns:9px 34px 1fr;align-items:center;gap:8px;min-height:28px;font-size:12px;display:grid}.citizen-schedule li i{background:var(--ink-700);border:2px solid var(--ink-500);border-radius:50%;width:8px;height:8px;position:relative}.citizen-schedule li:not(:last-child) i:after{content:"";background:#ffffff1a;width:1px;height:22px;position:absolute;top:6px;left:2px}.citizen-schedule li span{font-variant-numeric:tabular-nums}.citizen-schedule li.is-current{color:#fffc;font-weight:700}.citizen-schedule li.is-current i{background:var(--mint-400);border-color:var(--mint-300);box-shadow:0 0 8px #62c8a480}.citizen-schedule li.is-done i{background:var(--mint-700);border-color:var(--mint-500)}.ledger-fab{bottom:max(18px, env(safe-area-inset-bottom));right:max(18px, env(safe-area-inset-right));z-index:29;border-radius:13px;align-items:center;gap:8px;padding:6px 12px 6px 6px;display:flex;position:absolute}.ledger-fab>span{color:var(--mint-300);background:#62c8a41f;border-radius:9px;justify-content:center;align-items:center;width:31px;height:31px;display:flex}.ledger-fab strong{font-size:13px}.ledger-fab>i{background:var(--coral-400);border:2px solid var(--ink-850);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:17px;height:17px;font-size:11px;font-style:normal;font-weight:800;display:flex;position:absolute;top:-4px;right:-4px}.ledger-drawer{opacity:0;bottom:70px;right:max(18px, env(safe-area-inset-right));transform-origin:100% 100%;transition:opacity .19s ease, transform .24s var(--ease-out), visibility .19s;visibility:hidden;z-index:38;border-radius:20px;width:330px;position:absolute;overflow:hidden;transform:translateY(12px)scale(.97)}.ledger-drawer.is-open{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.ledger-drawer>header{align-items:center;padding:16px 14px 12px 18px;display:flex}.ledger-drawer>header>span{flex-direction:column;display:flex}.ledger-drawer>header small,.modal-header small{color:var(--mint-300);letter-spacing:.17em;margin-bottom:4px;font-size:11px;font-weight:850}.ledger-drawer>header strong{font-size:17px}.ledger-drawer>header button{margin-left:auto}.ledger-summary{background:#00000024;border-top:1px solid #ffffff0d;border-bottom:1px solid #ffffff0d;grid-template-columns:1fr 1fr;display:grid}.ledger-summary>span{flex-direction:column;padding:11px 17px;display:flex}.ledger-summary>span+span{border-left:1px solid #ffffff0f}.ledger-summary small{color:#ffffff59;margin-bottom:4px;font-size:12px}.ledger-summary strong{font-variant-numeric:tabular-nums;font-size:15px}.ledger-list{min-height:150px;max-height:360px;padding:8px;overflow-y:auto}.ledger-entry{border-radius:10px;align-items:center;gap:9px;padding:8px;transition:background .15s;display:flex}.ledger-entry:hover{background:#ffffff0b}.ledger-entry-icon{color:#ffffff8c;background:#ffffff0f;border-radius:9px;flex:0 0 31px;justify-content:center;align-items:center;width:31px;height:31px;display:flex}.ledger-entry-icon.kind-service,.ledger-entry-icon.kind-tax,.ledger-entry-icon.kind-refund{color:var(--mint-300);background:#62c8a41a}.ledger-entry-icon.kind-construction,.ledger-entry-icon.kind-expansion{color:var(--amber-300);background:#dfae521c}.ledger-entry-copy{flex-direction:column;flex:1;min-width:0;display:flex}.ledger-entry-copy small{color:#ffffff47;margin-bottom:3px;font-size:11px}.ledger-entry-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.ledger-amount{color:#ffffff94;font-variant-numeric:tabular-nums;font-size:13px;font-weight:750}.ledger-amount.is-positive{color:var(--mint-300)}.empty-ledger{color:#ffffff80;flex-direction:column;justify-content:center;align-items:center;min-height:150px;display:flex}.empty-ledger>span{color:var(--mint-300);margin-bottom:8px}.empty-ledger strong{font-size:14px}.empty-ledger small{margin-top:4px;font-size:12px}.living-postcard{pointer-events:auto;z-index:100;background:linear-gradient(90deg,#0b1618e0,#0b161840 48%,#0000 75%),linear-gradient(#0a141629,#0000 45%,#0a14163b);position:absolute;inset:0}.postcard-topline{left:max(28px, env(safe-area-inset-left));right:max(28px, env(safe-area-inset-right));top:max(26px, env(safe-area-inset-top));align-items:center;display:flex;position:absolute}.postcard-topline>span{color:#ffffff9e;letter-spacing:.16em;align-items:center;gap:9px;font-size:12px;font-weight:850;display:flex}.postcard-topline>span i{background:var(--mint-300);border-radius:50%;width:5px;height:5px;box-shadow:0 0 10px #93dec48c}.postcard-topline button{color:#ffffffad;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#101c1e66;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:8px 12px;font-size:14px;display:flex}.postcard-title{max-width:440px;position:absolute;top:50%;left:clamp(32px,7vw,112px);transform:translateY(-48%)}.postcard-seal{color:var(--amber-300);background:#f2c8771f;border:1px solid #f2c87738;border-radius:50%;justify-content:center;align-items:center;width:43px;height:43px;margin-bottom:22px;display:flex}.postcard-title small{color:var(--mint-300);letter-spacing:.18em;margin-bottom:12px;font-size:13px;font-weight:850;display:block}.postcard-title h1{letter-spacing:-.05em;text-shadow:0 7px 28px #030b0c47;margin:0;font-size:clamp(38px,5vw,68px);font-weight:680;line-height:1.04}.postcard-title h1 em{color:var(--ivory-100);letter-spacing:-.055em;font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:500}.postcard-title p{color:#ffffff94;margin:21px 0 0;font-size:16px;line-height:1.7}.intro-progress{bottom:max(30px, env(safe-area-inset-bottom));height:2px;left:max(28px, env(safe-area-inset-left));right:max(28px, env(safe-area-inset-right));background:#ffffff1f;position:absolute;overflow:hidden}.intro-progress i{background:linear-gradient(90deg, var(--mint-300), var(--amber-300));transform-origin:0;height:100%;animation:5s linear forwards intro-progress;display:block}.tutorial-card{bottom:66px;left:calc(max(18px, env(safe-area-inset-left)) + 136px);z-index:45;border-color:#93dec438;border-radius:20px;grid-template-columns:46px 1fr;grid-template-areas:"icon copy""footer footer";align-items:flex-start;gap:11px 13px;width:380px;padding:17px;display:grid;position:absolute}.tutorial-skip{color:#ffffff61;background:0 0;font-size:12px;position:absolute;top:10px;right:13px}.tutorial-skip:hover{color:#ffffffbf}.tutorial-icon{color:var(--mint-300);background:#62c8a421;border:1px solid #62c8a429;border-radius:13px;grid-area:icon;justify-content:center;align-items:center;width:44px;height:44px;margin-top:3px;display:flex}.tutorial-copy{flex-direction:column;grid-area:copy;padding-right:4px;display:flex}.tutorial-copy>small{color:var(--mint-300);letter-spacing:.12em;margin-bottom:7px;font-size:11px;font-weight:850}.tutorial-copy>strong{font-size:16px;line-height:1.35}.tutorial-copy p{color:#ffffff7a;margin:7px 0 0;font-size:13px;line-height:1.55}.tutorial-footer{border-top:1px solid #ffffff12;grid-area:footer;justify-content:space-between;align-items:center;padding-top:12px;display:flex}.tutorial-footer .primary-button{min-height:37px}.tutorial-dots{gap:4px;display:flex}.tutorial-dots i{background:#ffffff21;border-radius:3px;width:8px;height:4px;transition:width .18s}.tutorial-dots i.is-active{background:var(--mint-400);width:16px}.tutorial-pointer{border-top:8px solid #0000;border-bottom:8px solid #0000;border-left:9px solid #62c8a44d;width:0;height:0;position:absolute;bottom:-1px;right:-9px}.modal-layer{padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));pointer-events:auto;z-index:200;-webkit-backdrop-filter:blur(12px)saturate(90%);backdrop-filter:blur(12px)saturate(90%);background:#070e109e;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-layer-front{z-index:220}.game-modal{background:radial-gradient(circle at 20% 0,#93dec412,#0000 37%),linear-gradient(150deg,#ffffff0b,#0000 40%),#131f22f7;border:1px solid #ffffff1c;border-radius:22px;max-height:min(760px,100dvh - 40px);overflow:hidden;box-shadow:inset 0 1px #ffffff12,0 35px 100px #00000073}.settings-modal{flex-direction:column;width:min(510px,100%);display:flex}.modal-header{border-bottom:1px solid #ffffff12;align-items:center;padding:17px 17px 14px 21px;display:flex}.modal-header>span{flex-direction:column;min-width:0;display:flex}.modal-header strong{overflow-wrap:anywhere;word-break:keep-all;font-size:19px}.modal-header .icon-button{margin-left:auto}.modal-content{padding:8px 20px 14px;overflow-y:auto}.settings-group{border:0;border-bottom:1px solid #ffffff12;margin:0;padding:24px 0}.settings-group:last-child{border-bottom:0}.settings-group legend{color:#ffffffb8;align-items:center;gap:7px;margin-bottom:14px;padding:16px 0 0;font-size:14px;font-weight:750;display:flex}.settings-group legend svg{color:var(--mint-300)}.quality-options{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.quality-options label{text-align:center;background:#ffffff09;border:1px solid #ffffff0f;border-radius:11px;flex-direction:column;align-items:center;min-height:70px;padding:10px 4px 8px;display:flex;position:relative}.quality-options label:hover{background:#ffffff0f}.quality-options label.is-selected{background:#62c8a417;border-color:#62c8a457}.quality-options input{opacity:0;width:1px;height:1px;position:absolute}.quality-options label>span{flex-direction:column;display:flex}.quality-options strong{font-size:14px}.quality-options small{color:#ffffff59;margin-top:4px;font-size:11px;line-height:1.35}.quality-options label>i{background:var(--mint-400);color:var(--ink-900);opacity:0;height:16px;transition:opacity .15s ease, transform .15s var(--ease-out);border-radius:50%;justify-content:center;align-items:center;width:16px;display:flex;position:absolute;top:5px;right:5px;transform:scale(.6)}.quality-options label.is-selected>i{opacity:1;transform:scale(1)}.range-setting,.toggle-setting{align-items:center;min-height:48px;display:flex}.range-setting>span,.toggle-setting>span{flex-direction:column;flex:1;display:flex}.range-setting strong,.toggle-setting strong{font-size:14px}.range-setting small,.toggle-setting small{color:#ffffff54;margin-top:3px;font-size:12px;line-height:1.4}.range-setting input{accent-color:var(--mint-400);width:165px;height:4px}.range-setting input:disabled{opacity:.3}.toggle-setting+.toggle-setting{border-top:1px solid #ffffff0d}.toggle-setting>input{opacity:0;width:1px;height:1px;position:absolute}.toggle-setting>i{background:#ffffff1f;border:1px solid #ffffff14;border-radius:999px;width:44px;height:25px;margin-left:18px;padding:3px;transition:background .16s}.toggle-setting>i b{height:17px;transition:transform .2s var(--ease-out);background:#ffffffbf;border-radius:50%;width:17px;display:block;box-shadow:0 2px 5px #00000040}.toggle-setting>input:checked+i{background:var(--mint-500)}.toggle-setting>input:checked+i b{background:#fff;transform:translate(18px)}.toggle-setting>input:focus-visible+i{outline:2px solid var(--mint-300);outline-offset:3px}.modal-footer{background:#00000021;border-top:1px solid #ffffff12;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 18px;display:flex}.settings-policy-link{color:var(--mint-300);border:1px solid #62c8a433;border-radius:11px;align-items:center;gap:12px;min-height:48px;margin:18px 0 8px;padding:10px 12px;text-decoration:none;display:flex}.settings-policy-link:hover{background:#62c8a414}.settings-policy-link>span{flex-direction:column;flex:1;min-width:0;display:flex}.settings-policy-link strong{font-size:14px}.settings-policy-link small{color:#ffffff59;margin-top:3px;font-size:11px;line-height:1.4}.settings-policy-link:focus-visible{outline:2px solid var(--mint-300);outline-offset:3px}.modal-footer>span{color:#ffffff59;overflow-wrap:anywhere;flex:180px;align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.modal-footer>span svg{color:var(--mint-300)}.modal-footer .primary-button{min-width:84px;margin-left:auto}.menu-modal{flex-direction:column;width:min(390px,100%);padding:24px;display:flex}.menu-brand{flex:none;align-items:center;gap:20px;margin-bottom:24px;padding:2px 6px;display:flex}.menu-brand>span:last-child{flex-direction:column;min-width:0;display:flex}.menu-brand small{color:var(--mint-300);letter-spacing:.17em;margin-bottom:5px;font-size:12px;font-weight:850}.menu-brand strong{overflow-wrap:anywhere;word-break:keep-all;font-size:20px}.menu-actions{scrollbar-color:#7ddfbb59 transparent;scrollbar-width:thin;flex-direction:column;gap:5px;min-height:0;padding-right:3px;display:flex;overflow:hidden auto}.menu-actions::-webkit-scrollbar{width:4px;display:block}.menu-actions::-webkit-scrollbar-thumb{background:#7ddfbb59;border-radius:999px}.menu-actions>*{flex-shrink:0}.menu-actions button{color:#ffffffb3;text-align:left;background:#ffffff09;border:1px solid #ffffff0b;border-radius:12px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:3px 10px;min-height:48px;padding:8px 11px 8px 7px;display:grid}.menu-actions button:hover{background:#ffffff13}.menu-actions button>span{background:#ffffff0e;border-radius:9px;grid-row:1/span 2;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.menu-actions button>strong{overflow-wrap:anywhere;word-break:keep-all;align-self:end;min-width:0;font-size:14px}.menu-actions button>small{color:#ffffff59;overflow-wrap:anywhere;word-break:keep-all;grid-column:2;align-self:start;min-width:0;font-size:11px;line-height:1.45}.menu-actions button>svg{grid-area:1/3/span 2}.menu-actions .menu-primary{color:var(--mint-300);background:#62c8a41c;border-color:#62c8a426;min-height:58px}.menu-actions .menu-primary>span{background:var(--mint-500);color:var(--ink-950)}.menu-actions .menu-danger{color:#e99b96}.cloud-setup-panel{color:#ffffffb3;background:#f2c87714;border:1px solid #f2c87733;border-radius:12px;gap:8px;padding:13px;display:grid}.cloud-setup-panel>strong{color:var(--amber-300);font-size:13px}.cloud-setup-panel p,.cloud-setup-panel small{color:#ffffff94;margin:0;font-size:11px;line-height:1.55}.cloud-setup-panel ol{gap:5px;margin:0;padding-left:19px;display:grid}.cloud-setup-panel li{color:#ffffffb3;font-size:11px}.cloud-setup-panel code{color:#ffe0a0;overflow-wrap:anywhere;background:#0003;border-radius:4px;padding:2px 4px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.cloud-setup-panel .cloud-setup-close{color:var(--amber-300);background:#f2c87724;border:1px solid #f2c8773d;justify-content:center;min-height:34px;padding:0 11px;font-size:12px;display:inline-flex}.menu-version{color:#ffffff47;border-top:1px solid #fff1;flex:none;justify-content:space-between;margin-top:18px;padding-top:13px;font-size:11px;display:flex}.confirm-modal{text-align:center;flex-direction:column;align-items:center;width:min(380px,100%);padding:26px;display:flex}.confirm-icon{color:var(--mint-300);background:#62c8a41c;border:1px solid #62c8a426;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:16px;display:flex}.confirm-icon.tone-danger{color:#ef928c;background:#e06d671c;border-color:#e06d6729}.confirm-modal>strong{font-size:19px}.confirm-modal>p{color:#ffffff75;max-width:290px;margin:10px 0 21px;font-size:13px;line-height:1.65}.confirm-actions{grid-template-columns:1fr 1.2fr;gap:7px;width:100%;display:grid}.confirm-actions button{white-space:normal;min-width:0}.town-name-modal form{flex-direction:column;gap:10px;width:100%;display:flex}.town-name-modal input{color:#fff;background:#fff1;border:1px solid #ffffff1f;border-radius:12px;outline:none;width:100%;min-height:46px;padding:0 14px;font-size:15px}.town-name-modal input:focus{border-color:#62c8a4b3;box-shadow:0 0 0 3px #62c8a41f}.town-name-modal form>small{color:var(--amber-300);overflow-wrap:anywhere;text-align:left;font-size:12px;line-height:1.45}.toast-stack{pointer-events:none;left:0;right:0;top:calc(max(16px, env(safe-area-inset-top)) + 84px);z-index:210;flex-direction:column;align-items:center;gap:7px;width:auto;padding:0 16px;display:flex;position:fixed}.game-toast{animation:toast-in .32s var(--ease-out) both;box-shadow:var(--shadow-float);pointer-events:auto;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(135deg,#ffffff0d,#0000 45%),#121e21f0;border:1px solid #ffffff1c;border-radius:13px;align-items:flex-start;gap:10px;width:100%;max-width:460px;min-height:49px;padding:7px 8px 7px 9px;display:flex}.toast-icon{color:#ffffff9e;background:#ffffff12;border-radius:9px;flex:0 0 31px;justify-content:center;align-items:center;width:31px;height:31px;display:flex}.game-toast.tone-neutral .toast-icon{color:#7db5ff;background:#3b82f624}.game-toast.tone-positive .toast-icon{color:var(--mint-300);background:#62c8a421}.game-toast.tone-warning .toast-icon{color:var(--amber-300);background:#f2c87721}.game-toast>span:nth-child(2){flex-direction:column;flex:1;min-width:0;padding-top:4px;display:flex}.game-toast strong{overflow-wrap:anywhere;word-break:keep-all;font-size:13px}.game-toast small{color:#fff6;overflow-wrap:anywhere;word-break:keep-all;margin-top:3px;font-size:12px;line-height:1.35}.game-toast button{color:#ffffff57;background:0 0;flex:0 0 30px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.game-toast .toast-action{color:var(--mint-300);background:#62c8a421;border:1px solid #80e0be3d;border-radius:8px;flex:none;align-self:center;width:auto;height:30px;padding:0 10px;font-size:13px;font-weight:800}.game-toast>button:last-child{align-self:flex-start}.hidden-file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed}.loading-layer,.error-layer{background:radial-gradient(circle at 50% 40%, #62c8a414, transparent 37%), var(--ink-950);z-index:300;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.loading-seal{background:#ffffff0a;border:1px solid #ffffff12;border-radius:24px;justify-content:center;align-items:center;width:86px;height:86px;margin-bottom:22px;animation:2.4s ease-in-out infinite loading-float;display:flex}.loading-layer>strong{font-size:17px}.loading-layer>small{color:#ffffff57;margin-top:9px;font-size:12px}.loading-bar{background:#ffffff14;border-radius:3px;width:180px;height:3px;margin-top:16px;overflow:hidden}.loading-bar i{background:linear-gradient(90deg, var(--mint-500), var(--mint-300));border-radius:inherit;width:60%;height:100%;animation:1.5s ease-in-out infinite loading-slide;display:block}.error-layer{text-align:center}.error-illustration{color:#ed918b;background:#e06d671a;border:1px solid #e06d6726;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:18px;display:flex}.error-layer>small{color:#e99590;letter-spacing:.16em;font-size:12px;font-weight:850}.error-layer h1{letter-spacing:-.04em;margin:8px 0 0;font-size:26px}.error-layer p{color:#ffffff73;max-width:360px;margin:10px 0 20px;font-size:14px;line-height:1.6}.error-layer>div{gap:7px;display:flex}.town-postcard{perspective:1100px;background:radial-gradient(circle at 72% 8%,#fff8ccd1,#0000 20%),linear-gradient(#9ed2cf 0%,#cce2cf 36%,#cbd7ac 100%);width:100%;height:100%;position:relative;overflow:hidden}.sky-glow{filter:blur(6px);background:radial-gradient(circle,#fff5bbe6,#fff5bb00 67%);border-radius:50%;width:420px;height:420px;position:absolute;top:-180px;right:-60px}.postcard-hills{border-radius:50% 50% 0 0;height:270px;position:absolute;bottom:43%;transform:rotate(-5deg)}.postcard-hills-back{filter:blur(1px);opacity:.8;background:#9abf9e;width:65%;left:-8%}.postcard-hills-front{background:#82ac8a;width:62%;height:230px;bottom:37%;right:-12%;transform:rotate(8deg)}.postcard-ground{background:radial-gradient(circle at 38% 32%,#f2e7ba59,#0000 20%),linear-gradient(145deg,#b9cc93,#92b47b);border-radius:48% 48% 0 0/17% 17% 0 0;height:79%;position:absolute;bottom:-18%;left:-8%;right:-8%;transform:rotateX(4deg);box-shadow:inset 0 28px 70px #fff9cb2e}.postcard-road{background:#74817c;position:absolute;box-shadow:inset 0 1px #ffffff38,inset 0 -2px #34413f33,0 10px 22px #2a3a2f2e}.postcard-road:before,.postcard-road:after{content:"";background:#d8ceb4;position:absolute}.road-horizontal{width:106%;height:68px;top:47%;left:-3%;transform:rotate(-7deg)}.road-horizontal:before,.road-horizontal:after{height:8px;bottom:-8px;left:0;right:0}.road-horizontal:before{top:-8px;bottom:auto}.road-horizontal span{background:#fff5ca8c;width:48px;height:3px;position:absolute;top:32px}.road-horizontal span:first-child{left:10%}.road-horizontal span:nth-child(2){left:35%}.road-horizontal span:nth-child(3){left:60%}.road-horizontal span:nth-child(4){left:85%}.road-vertical{width:62px;height:78%;top:26%;left:47%;transform:rotate(7deg)}.road-vertical:before,.road-vertical:after{width:8px;top:0;bottom:0;left:-8px}.road-vertical:after{left:auto;right:-8px}.road-vertical span{background:#fff5ca8a;width:3px;height:45px;position:absolute;left:30px}.road-vertical span:first-child{top:10%}.road-vertical span:nth-child(2){top:45%}.road-vertical span:nth-child(3){top:80%}.mini-building{filter:drop-shadow(15px 20px 16px #2d413647);z-index:5;position:absolute}.townhall-building{width:260px;height:230px;top:11%;left:35%}.mini-roof{clip-path:polygon(50% 0,100% 42%,90% 52%,88% 100%,12% 100%,10% 52%,0 42%);z-index:3;background:linear-gradient(145deg,#53686d,#30464b);border-radius:8px 8px 2px 2px;width:100%;height:105px;position:absolute;top:0;left:0}.mini-facade{background:repeating-linear-gradient(90deg,#0000 0 43px,#74573d12 44px 45px),linear-gradient(90deg,#e7d6b8,#f2e4c9 48%,#d5c09f);border-radius:2px 2px 7px 7px;width:220px;height:151px;position:absolute;bottom:0;left:20px}.mini-facade:before{content:"";background:#d4bc94;width:236px;height:12px;position:absolute;bottom:0;left:-8px}.mini-windows{gap:22px;display:flex;position:absolute;top:39px;left:27px}.mini-windows i{background:linear-gradient(145deg,#8db8b2,#527d7c);border:4px solid #f5ead4;width:26px;height:44px;display:block;box-shadow:inset 8px 0 11px #fff9d940,0 3px #b99f7e}.mini-door{background:linear-gradient(90deg,#5c726f,#72918c);border:4px solid #efe1c5;border-bottom:0;width:39px;height:62px;position:absolute;bottom:0;box-shadow:inset 6px 0 10px #fff4c92e}.double-door{width:42px;height:67px;display:flex;left:90px}.double-door i{border-right:1px solid #eee7c873;flex:1;display:block}.clock-face{background:#f5edda;border:6px solid #34484c;border-radius:50%;width:44px;height:44px;position:absolute;top:27px;left:108px;box-shadow:0 3px #00000026}.clock-face i,.clock-face b{transform-origin:bottom;background:#3e5356;border-radius:2px;width:2px;height:13px;position:absolute;top:7px;left:18px}.clock-face b{height:10px;top:17px;transform:rotate(118deg)}.flag-pole{z-index:4;background:#596b68;width:2px;height:66px;position:absolute;top:15px;left:197px}.flag-pole i{clip-path:polygon(0 0,100% 11%,88% 88%,0 100%);transform-origin:0;background:linear-gradient(90deg,#da8068,#efaa82);width:39px;height:24px;animation:2.2s ease-in-out infinite flag-wave;position:absolute;top:4px;left:2px}.cafe-building{background:linear-gradient(90deg,#d49f70,#e2b88b);border-radius:6px;width:145px;height:100px;top:52%;left:59%}.cafe-building:before{content:"";background:#5d4338;border-radius:7px 7px 2px 2px;width:155px;height:18px;position:absolute;top:-13px;left:-5px;transform:skew(-18deg);box-shadow:inset 0 5px #ffffff14}.awning{width:126px;height:20px;display:flex;position:absolute;top:20px;left:9px;overflow:hidden;transform:skew(-6deg)}.awning i{background:#f4e2bf;flex:1;display:block}.awning i:nth-child(2n){background:#b96355}.cafe-building .mini-window{width:68px;height:43px;bottom:10px;left:13px}.cafe-building .mini-door{width:31px;height:50px;bottom:0;right:15px}.warm-window{background:linear-gradient(145deg,#fff3bb,#d9bd79);border:3px solid #f4ddba;position:absolute;box-shadow:inset 4px 3px 9px #ffffff8c}.cafe-sign{color:#fff0d3;letter-spacing:.18em;font-family:Georgia,serif;font-size:12px;font-weight:800;position:absolute;top:-7px;left:55px}.house-building{background:linear-gradient(90deg,#ddbfa6,#efd4b9);border-radius:4px;width:102px;height:82px}.house-one{top:55%;left:21%}.house-two{top:24%;left:72%;transform:scale(.85)}.house-roof{clip-path:polygon(50% 0,100% 70%,93% 78%,7% 78%,0 70%);background:linear-gradient(145deg,#ca6f5f,#9e534b);width:114px;height:65px;position:absolute;top:-48px;left:-6px}.house-building .mini-window{width:30px;height:31px;top:25px;left:14px}.house-building .mini-door{width:29px;height:47px;bottom:0;right:15px}.mini-tree{z-index:6;width:70px;height:92px;position:absolute}.mini-tree i{background:#685943;width:8px;height:35px;position:absolute;bottom:0;left:32px}.mini-tree b{filter:drop-shadow(8px 11px 9px #2c412d3d);transform-origin:50% 100%;background:radial-gradient(circle at 32% 25%,#b6d794 0 14%,#0000 15%),radial-gradient(circle at 60% 20%,#91bc7d 0 22%,#0000 23%),radial-gradient(circle at 68% 57%,#6e9e6b 0 26%,#0000 27%),radial-gradient(circle at 30% 62%,#7ead73 0 30%,#0000 31%);width:70px;height:68px;animation:3.5s ease-in-out infinite alternate tree-sway;position:absolute;top:0;left:0}.tree-a{top:23%;left:12%;transform:scale(1.1)}.tree-b{top:58%;left:8%;transform:scale(.82)}.tree-c{top:35%;left:29%;transform:scale(.68)}.tree-d{top:41%;left:68%;transform:scale(.74)}.tree-e{top:54%;left:82%;transform:scale(1.06)}.tree-f{top:15%;left:58%;transform:scale(.7)}.mini-person{z-index:8;width:15px;height:35px;animation:6s linear infinite alternate person-walk;position:absolute}.mini-head{background:#d79970;border-radius:50%;width:11px;height:12px;display:block;position:absolute;top:0;left:2px;box-shadow:inset 0 5px #493a33}.mini-body{transform-origin:bottom;background:#668a8d;border-radius:5px 5px 2px 2px;width:13px;height:15px;animation:.55s ease-in-out infinite alternate person-bob;display:block;position:absolute;top:11px;left:1px}.mini-person>span:before,.mini-person>span:after{content:"";background:#394f52;width:4px;height:10px;position:absolute;bottom:0}.mini-person>span:before{left:3px}.mini-person>span:after{right:3px}.person-one{top:52%;left:43%}.person-two{animation-delay:-2s;top:61%;left:48%;transform:scale(.9)}.person-three{animation-delay:-3.5s;top:68%;left:62%;transform:scale(.82)}.person-four{animation-delay:-1s;top:72%;left:33%;transform:scale(.88)}.person-five{animation-delay:-4.2s;top:46%;left:75%;transform:scale(.76)}.person-six{animation-delay:-5s;top:43%;left:24%;transform:scale(.72)}.person-two .mini-body{background:#cf7d6c}.person-three .mini-body{background:#d3a45d}.person-four .mini-body{background:#8b6f8d}.person-five .mini-body{background:#5d9b79}.mini-car{z-index:7;background:linear-gradient(#e5a163,#c6754f);border-radius:12px 16px 7px 7px;width:55px;height:28px;animation:12s linear infinite car-drive;position:absolute;top:49%;left:5%;transform:rotate(-7deg);box-shadow:8px 10px 9px #2c3a3640}.mini-car i{background:#72999b;border-radius:9px 12px 2px 2px;width:31px;height:17px;position:absolute;top:-10px;left:14px}.mini-car b,.mini-car span{background:#263538;border:3px solid #879492;border-radius:50%;width:11px;height:11px;position:absolute;bottom:-5px}.mini-car b{left:7px}.mini-car span{right:7px}.postcard-shadow{filter:blur(11px);background:#2b3c3026;border-radius:50%;position:absolute;transform:rotate(-10deg)}.postcard-shadow-one{width:330px;height:40px;top:36%;left:28%}.postcard-shadow-two{width:230px;height:35px;top:67%;left:55%}.postcard-vignette{pointer-events:none;background:linear-gradient(#1828270d,#0000 25% 73%,#13241f2e),radial-gradient(circle,#0000 55%,#1c312c29);position:absolute;inset:0}@keyframes intro-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-9px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes live-pulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@keyframes loading-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(170%)}}@keyframes flag-wave{0%,to{transform:perspective(30px)rotateY(0)skewY(-2deg)}50%{transform:perspective(30px)rotateY(-13deg)skewY(3deg)}}@keyframes tree-sway{0%{transform:rotate(-1.5deg)}to{transform:rotate(1.5deg)}}@keyframes person-bob{0%{transform:translateY(0)rotate(-1deg)}to{transform:translateY(-1.5px)rotate(1deg)}}@keyframes person-walk{0%{translate:-6px}to{translate:12px 2px}}@keyframes car-drive{0%{left:-8%}to{left:108%}}@media (width>=921px) and (height<=1013px){.build-category-tabs{scrollbar-color:#7ddfbb59 transparent;scrollbar-gutter:stable;scrollbar-width:thin;max-height:172px;overflow:hidden auto}}@media (width>=921px) and (height<=830px){.camera-hints{display:none}.build-controls-stack{bottom:max(16px, calc(env(safe-area-inset-bottom) + 12px));left:max(16px, env(safe-area-inset-left));max-width:min(222px,100vw - 32px)}.build-dock-column{flex-basis:222px;width:222px}.dock-label{display:none}.build-dock{padding:4px}.build-category-tabs{grid-template-columns:repeat(5,minmax(0,1fr));max-height:none;overflow:visible}.build-category-tab{justify-content:center;gap:4px;min-width:0;height:28px;padding:0 4px;font-size:12px}.build-demolish-toggle{justify-content:center;height:28px;padding:0 6px}.town-growth-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:6px;padding-top:6px}.town-growth-actions button{min-height:36px;padding:4px}.town-growth-actions button small{display:none}.town-growth-actions button span{gap:3px;font-size:11px}.build-category-drawer{transform:none}}@media (width<=1180px){.top-hud{grid-template-columns:170px minmax(0,1fr) 285px}.brand-cluster{padding-right:10px}.brand-mark{width:36px;height:33px}.metric{gap:6px;padding:0 7px}.metric-icon{flex-basis:30px;width:30px;height:30px}.metric-copy strong{font-size:16px}.time-copy{margin-right:7px}.top-action,.compact-divider{display:none}.build-controls-stack{max-width:calc(100vw - 360px)}.build-card{flex-basis:73px}.tutorial-card{width:350px}}@media (width<=920px){.game-shell{min-height:500px}.top-hud{grid-template-columns:1fr auto;gap:8px;display:grid}.top-hud>*{height:56px}.brand-cluster{grid-column:1;width:max-content;min-width:170px}.metric-strip{grid-area:2/1/auto/-1;justify-self:center;width:min(620px,100%);max-width:620px}.time-cluster{grid-area:1/2;width:285px}.sandbox-badge{top:136px}.placement-feedback-anchor{left:calc(max(12px, env(safe-area-inset-left)) + 204px);max-width:min(620px,100vw - 230px);top:136px}.mini-map{left:max(12px, env(safe-area-inset-left));width:190px;top:136px}.inspector-panel{max-height:calc(100dvh - 210px);top:136px}.build-controls-stack{width:calc(100vw - 28px);max-width:calc(100vw - 28px)}.build-dock-toggle{width:max-content;display:inline-flex}.build-dock-wrap[data-dock-collapsed=true]{width:max-content}.build-dock-wrap[data-dock-collapsed=true] .build-dock-toggle{min-width:92px}.build-dock-wrap{flex-direction:column;align-items:stretch;gap:6px;width:100%;max-width:100%}.build-dock,.build-dock-column,.build-category-drawer{width:100%;max-height:none}.build-category-drawer{flex:none}.build-category-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.build-category-tab{flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:3px 2px}.build-category-tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;line-height:1;overflow:hidden}.build-dock-scroll{grid-template-columns:repeat(auto-fill,minmax(94px,1fr));max-height:min(385px,100dvh - 115px)}.build-card{flex:1 0 72px}.camera-hints{display:none}.ledger-fab{bottom:170px}.ledger-drawer{bottom:218px}.tutorial-card{bottom:171px;left:max(18px, env(safe-area-inset-left))}}@media (width<=680px),(height<=650px) and (width<=920px){.game-shell{min-height:0}.top-hud{height:110px;left:max(9px, env(safe-area-inset-left));right:max(9px, env(safe-area-inset-right));top:max(9px, env(safe-area-inset-top));gap:7px;display:block}.top-hud>*{height:50px}.brand-cluster{border-radius:14px;gap:6px;width:auto;min-width:0;max-width:172px;padding:5px 9px 5px 5px;position:absolute;top:0;left:0}.menu-button{width:38px;height:38px}.brand-mark{width:31px;height:29px}.brand-copy strong{font-size:14px}.brand-copy span{letter-spacing:.33em;margin-top:2px;font-size:12px}.current-town-name{max-width:92px;margin-top:2px;font-size:9px}.time-cluster{border-radius:14px;width:auto;padding:5px 6px;position:absolute;top:0;right:0}.time-copy{gap:5px;min-width:0;margin-right:7px}.time-copy small{display:none}.time-copy strong{font-size:15px}.daylight-icon svg{width:16px;height:16px}.speed-controls button{min-width:30px;height:30px}.metric-strip{border-radius:14px;grid-template-columns:1.18fr 1px .85fr 1px .65fr 1px .72fr;width:auto;height:53px;padding:5px 7px;position:absolute;top:57px;left:0;right:0}.metric{gap:5px;padding:0 5px}.metric-icon{display:none}.metric-copy small{margin-bottom:4px;font-size:11px}.metric-copy strong{font-size:14px}.metric-copy strong>span{font-size:22px}.metric-copy em{display:none}.metric-gauge{bottom:-7px;left:5px;right:5px}.metric-divider{height:26px}.sandbox-badge{left:auto;right:max(9px, env(safe-area-inset-right));top:calc(max(9px, env(safe-area-inset-top)) + 115px);padding-right:9px;transform:none}.mini-map{left:max(9px, env(safe-area-inset-left));top:calc(max(9px, env(safe-area-inset-top)) + 115px);border-radius:14px;width:148px;padding:7px}.mini-map-header{margin-bottom:5px}.mini-map-header>span{font-size:13px}.mini-map-header small{display:none}.mini-map-canvas{border-radius:9px}.mini-map-layers{gap:4px;margin-top:5px}.mini-map-layers button{min-height:22px;font-size:11px}.town-growth-actions{gap:4px;margin-top:5px;padding-top:5px}.town-growth-actions button{min-height:31px;padding:4px}.town-growth-actions button span{gap:3px;font-size:11px}.town-growth-actions button small,.sandbox-badge i,.sandbox-badge small{display:none}.sandbox-badge strong{font-size:12px}.game-shell[data-placement-active=true] .sandbox-badge,.game-shell[data-placement-active=true] .mini-map{display:none}.camera-mode-toolbar{bottom:auto;left:auto;right:max(9px, env(safe-area-inset-right));top:calc(max(9px, env(safe-area-inset-top)) + 160px);flex-direction:column;align-items:stretch;width:132px;transform:none}.camera-mode-title{justify-content:space-between;padding:2px 5px 0}.camera-mode-toolbar>div{flex-direction:column;align-items:stretch}.camera-mode-toolbar button{justify-content:flex-start;width:100%}.camera-mode-toolbar>kbd{position:absolute;top:8px;right:9px}.ground-camera-guide{max-width:calc(100vw - 174px);bottom:auto;left:auto;right:max(9px, env(safe-area-inset-right));top:calc(max(9px, env(safe-area-inset-top)) + 306px);flex-direction:column;align-items:flex-start;gap:6px;transform:none}.ground-camera-guide>span{white-space:normal;line-height:1.45}.placement-feedback-anchor{left:max(9px, env(safe-area-inset-left));max-width:calc(100vw - 18px);top:calc(max(9px, env(safe-area-inset-top)) + 115px);width:calc(100vw - 18px)}.build-controls-stack{bottom:max(8px, env(safe-area-inset-bottom));width:calc(100vw - 16px);max-width:calc(100vw - 16px)}.build-dock-wrap{width:100%;max-width:100%}.dock-label{display:none}.build-dock{border-radius:16px;padding:5px}.build-category-tabs{margin-bottom:4px;padding-bottom:4px}.build-category-tab{border-radius:8px;min-width:0;height:42px;font-size:12px}.build-category-panel{min-height:82px}.build-category-drawer{max-height:min(230px,100dvh - 470px)}.build-dock-scroll{max-height:100%}.game-shell:has(.build-category-drawer.is-open) .mini-map{display:none}.build-card{flex:0 0 67px;grid-template-rows:31px auto 14px;min-height:82px;padding:5px 3px 4px}.build-card-key{display:none}.build-card-icon{width:33px;height:29px}.build-card-copy strong{font-size:13px}.build-card-copy small{display:none}.build-card-cost{font-size:11px}.placement-feedback{width:100%;max-width:calc(100vw - 18px);min-height:47px}.placement-copy{flex:1;min-width:0}.placement-copy small{display:none}.placement-copy strong{text-overflow:clip;white-space:normal;max-width:100%;line-height:1.3;overflow:visible}.placement-rotation,.placement-action span,.placement-action kbd{display:none}.placement-action{justify-content:center;width:34px;height:34px;padding:0}.inspector-panel{max-height:min(56dvh,430px);padding:20px max(18px, env(safe-area-inset-right)) max(20px, calc(env(safe-area-inset-bottom) + 12px)) max(18px, env(safe-area-inset-left));z-index:52;border-radius:19px 19px 0 0;width:auto;inset:auto 0 0}.coaster-editor-panel{max-height:min(64dvh,520px);padding:14px max(12px, env(safe-area-inset-right)) max(14px, calc(env(safe-area-inset-bottom) + 8px)) max(12px, env(safe-area-inset-left));border-radius:19px 19px 0 0;width:auto;bottom:0;left:0;right:0}.coaster-editor-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-handle{background:#ffffff2b;border-radius:4px;width:37px;height:4px;display:block;position:absolute;top:7px;left:50%;transform:translate(-50%)}.panel-close{top:14px}.ledger-fab{bottom:calc(max(8px, env(safe-area-inset-bottom)) + 127px);right:max(9px, env(safe-area-inset-right));padding-right:6px}.ledger-fab strong{display:none}.ledger-drawer{bottom:calc(max(8px, env(safe-area-inset-bottom)) + 175px);max-width:calc(100vw - 18px);right:max(9px, env(safe-area-inset-right));width:330px}.tutorial-card{bottom:calc(max(8px, env(safe-area-inset-bottom)) + 127px);left:max(9px, env(safe-area-inset-left));gap:8px 10px;width:350px;max-width:calc(100vw - 18px);padding:14px}.tutorial-icon{width:39px;height:39px}.tutorial-copy>strong{font-size:15px}.tutorial-copy p{font-size:12px}.tutorial-footer{padding-top:9px}.tutorial-footer .primary-button{min-height:34px;font-size:14px}.postcard-title{max-width:calc(100vw - 54px);top:47%;left:27px}.postcard-seal{width:36px;height:36px;margin-bottom:17px}.postcard-title h1{font-size:clamp(34px,12vw,52px)}.postcard-title p{font-size:15px}.postcard-topline{left:max(18px, env(safe-area-inset-left));right:max(18px, env(safe-area-inset-right))}.townhall-building{left:22%;transform:scale(.78)}.cafe-building{left:60%;transform:scale(.8)}.house-two{display:none}.modal-layer{align-items:flex-end;padding:0}.game-modal{border-bottom:0;border-radius:22px 22px 0 0;width:100%;max-height:min(88dvh,760px)}.settings-modal,.menu-modal,.confirm-modal{width:100%}.menu-modal{padding-bottom:max(24px, calc(env(safe-area-inset-bottom) + 16px))}.quality-options{grid-template-columns:repeat(2,1fr)}.quality-options label{min-height:60px}.modal-footer{padding-bottom:max(12px, env(safe-area-inset-bottom))}.confirm-modal{padding-bottom:max(26px, calc(env(safe-area-inset-bottom) + 18px))}}@media (width<=390px){.brand-mark{display:none}.brand-cluster{padding-left:5px}.speed-controls button{min-width:28px;padding:0 4px}.metric-strip{grid-template-columns:1.1fr 1px .83fr 1px .6fr 1px .65fr}.metric{padding:0 3px}.metric-copy strong{font-size:13px}.build-category-tab{gap:3px;padding-inline:2px}.tutorial-card{grid-template-columns:38px 1fr}.tutorial-icon{width:36px;height:36px}.tutorial-copy p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media (width<=340px){.build-category-tab span{display:none}}@media (height<=610px) and (width>=681px){.top-hud{top:9px}.top-hud>*{height:54px}.sandbox-badge,.mini-map{top:72px}.inspector-panel{max-height:calc(100dvh - 95px);top:72px}.build-controls-stack{bottom:max(16px, calc(env(safe-area-inset-bottom) + 12px))}.dock-label{display:none}.build-card{min-height:100px}.tutorial-card{bottom:137px}.ledger-fab{bottom:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-shell[data-reduced-motion] *,.game-shell[data-reduced-motion] :before,.game-shell[data-reduced-motion] :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}@media (forced-colors:active){.glass-panel,.game-modal,.game-toast{border:1px solid canvastext}.metric-gauge i,.detail-progress>div i,.tutorial-dots i.is-active{background:highlight}}.operation-control{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.operation-control>small{color:#ffffff7a;font-size:12px}.operation-control>div{background:#00000026;border-radius:8px;gap:2px;padding:2px;display:flex}.operation-control button{color:#ffffff73;border-radius:6px;min-height:26px;padding:0 8px;font-size:12px}.operation-control button.is-active{color:var(--mint-300);background:#62c8a42b}.transit-stop-control{background:#54b89914;border:1px solid #62c8a429;border-radius:10px;gap:7px;padding:10px;display:grid}.transit-stop-control>strong{color:var(--mint-300);font-size:13px}.transit-stop-control>label{color:#ffffff8f;justify-content:space-between;align-items:center;font-size:12px;display:flex}.transit-stop-control select{color:#ffffffdb;background:#091417d6;border:1px solid #ffffff21;border-radius:8px;min-height:32px;padding:0 28px 0 10px}.transit-stop-control>small{color:#ffffff70;font-size:11px}.inspector-section>.primary-button{width:100%;margin-top:9px}.mini-map-canvas.is-navigation-locked{cursor:not-allowed;filter:saturate(.65);opacity:.76}.infrastructure-removal-row{background:#ffffff09;border:1px solid #ffffff0e;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-top:7px;padding:7px 8px 7px 10px;display:flex}.infrastructure-removal-row>span{color:#ffffffb3;align-items:center;gap:7px;font-size:13px;display:flex}.infrastructure-removal-row>span svg{color:var(--mint-300)}.infrastructure-removal-row>button{border-radius:8px;min-height:30px;padding:0 10px;font-size:13px}.building-operation-actions{grid-template-columns:1fr;gap:6px;margin-top:12px;display:grid}.building-operation-actions button{color:#ffffffad;background:#ffffff0e;border:1px solid #ffffff0f;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:34px;font-size:12px;display:flex}.building-operation-actions button:hover:not(:disabled){color:var(--mint-300);background:#62c8a41f}.building-operation-actions button:disabled,.management-card-list button:disabled{cursor:not-allowed;opacity:.36}.operation-max-label{color:#ffffff59;text-align:center;margin-top:10px;font-size:12px;display:block}.citizen-thought{background:#62c8a412;border:1px solid #62c8a41c;border-radius:11px;padding:11px}.citizen-thought small{color:var(--mint-300);letter-spacing:.08em;font-size:11px;font-weight:800}.citizen-thought p{color:#ffffffb3;margin:6px 0 0;font-size:13px;line-height:1.55}.resident-life-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.resident-life-grid>div{background:#ffffff09;border-radius:8px;flex-direction:column;min-width:0;padding:8px;display:flex}.resident-life-grid small{color:#ffffff57;margin-bottom:4px;font-size:11px}.resident-life-grid strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.citizen-memories>strong{font-size:14px}.citizen-memories ul{margin:9px 0 0;padding:0;list-style:none}.citizen-memories li{color:#ffffff7a;padding:5px 0 5px 13px;font-size:12px;line-height:1.45;position:relative}.citizen-memories li:before{background:var(--mint-400);content:"";border-radius:50%;width:4px;height:4px;position:absolute;top:10px;left:1px}.town-management-fab{bottom:max(18px, env(safe-area-inset-bottom));right:calc(max(18px, env(safe-area-inset-right)) + 118px);z-index:29;border-radius:13px;align-items:center;gap:8px;padding:6px 12px 6px 6px;display:flex;position:absolute}.town-management-fab>span{color:var(--amber-300);background:#dfae521f;border-radius:9px;justify-content:center;align-items:center;width:31px;height:31px;display:flex}.town-management-fab strong{font-size:13px}.town-management-fab>i{background:var(--coral-400);border:2px solid var(--ink-850);border-radius:50%;width:10px;height:10px;position:absolute;top:-2px;right:-2px}.town-management-panel{opacity:0;max-height:calc(100dvh - 92px);bottom:70px;right:max(18px, env(safe-area-inset-right));transform-origin:100% 100%;transition:opacity .19s ease, transform .24s var(--ease-out), visibility .19s;visibility:hidden;z-index:39;border-radius:20px;width:390px;position:absolute;overflow:hidden;transform:translateY(12px)scale(.97)}.town-management-panel.is-open{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.town-management-panel>header{align-items:center;padding:16px 14px 12px 18px;display:flex}.town-management-panel>header>span{flex-direction:column;display:flex}.town-management-panel>header small,.management-heading>span small{color:var(--mint-300);letter-spacing:.14em;margin-bottom:4px;font-size:11px;font-weight:850}.town-management-panel>header strong{font-size:18px}.town-management-panel>header button{margin-left:auto}.management-economy-strip{background:#00000026;border-top:1px solid #ffffff0d;border-bottom:1px solid #ffffff0d;grid-template-columns:repeat(3,1fr);display:grid}.management-economy-strip>span{flex-direction:column;padding:10px 13px;display:flex}.management-economy-strip>span+span{border-left:1px solid #ffffff0d}.management-economy-strip small{color:#ffffff59;margin-bottom:3px;font-size:11px}.management-economy-strip strong{font-variant-numeric:tabular-nums;font-size:14px}.management-tabs{grid-template-columns:repeat(5,1fr);gap:3px;padding:8px;display:grid}.management-tabs button{color:#ffffff6b;border-radius:8px;min-height:30px;font-size:12px}.management-tabs button.is-active{color:var(--mint-300);background:#62c8a41f;font-weight:750}.management-scroll{min-height:280px;max-height:min(590px,100dvh - 245px);padding:0 10px 12px;overflow-y:auto}.management-section{border-top:1px solid #ffffff0f;padding:14px 2px 2px}.management-section+.management-section{margin-top:12px}.management-heading{justify-content:space-between;align-items:flex-end;margin:0 4px 10px;display:flex}.management-heading>span{flex-direction:column;display:flex}.management-heading strong{font-size:15px}.management-heading>small{color:#ffffff4d;font-size:11px}.town-needs-list{grid-template-columns:1fr 1fr;gap:8px 12px;display:grid}.town-needs-list>div>span{justify-content:space-between;margin-bottom:5px;display:flex}.town-needs-list strong,.town-needs-list small{font-size:11px}.town-needs-list small{color:#ffffff59}.town-needs-list>div>i,.civic-project-progress>i{background:#fff1;border-radius:5px;height:4px;display:block;overflow:hidden}.town-needs-list b,.civic-project-progress b{background:linear-gradient(90deg, var(--amber-500), var(--coral-400));border-radius:inherit;height:100%;display:block}.management-stat-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.management-stat-grid>span{background:#ffffff0a;border-radius:9px;flex-direction:column;padding:9px;display:flex}.management-stat-grid small{color:#ffffff59;margin-bottom:4px;font-size:11px}.management-stat-grid strong{font-size:15px}.management-card-list{gap:6px;display:grid}.management-card-list.compact{grid-template-columns:1fr 1fr}.management-card-list button{color:#ffffffb8;text-align:left;background:#ffffff09;border:1px solid #ffffff0b;border-radius:10px;align-items:center;gap:10px;width:100%;min-height:54px;padding:9px 10px;display:flex}.management-card-list button:hover:not(:disabled),.management-card-list button.is-active{background:#62c8a417;border-color:#62c8a429}.management-card-list button>span{flex-direction:column;flex:1;min-width:0;display:flex}.management-card-list strong{margin-bottom:4px;font-size:13px}.management-card-list small{color:#ffffff61;font-size:11px;line-height:1.45}.management-card-list em{color:var(--amber-300);margin-top:5px;font-size:11px;font-style:normal}.management-card-list svg{color:var(--mint-300);flex:none}.management-switch{background:#ffffff1f;border-radius:8px;width:24px;height:14px;position:relative}.management-switch:after{content:"";background:#ffffff80;border-radius:50%;width:10px;height:10px;transition:transform .16s;position:absolute;top:2px;left:2px}.management-card-list button.is-active .management-switch{background:#62c8a459}.management-card-list button.is-active .management-switch:after{background:var(--mint-300);transform:translate(10px)}.active-town-activity{background:radial-gradient(circle at 95% 0,#dfae522e,#0000 40%),#dfae520f;border:1px solid #dfae5221;border-radius:12px;flex-direction:column;margin:2px 2px 12px;padding:13px;display:flex}.growth-overview{background:radial-gradient(circle at 95% 0,#62c8a433,#0000 42%),linear-gradient(135deg,#62c8a41a,#45687714);border-color:#62c8a42e}.growth-overview small{color:var(--mint-300)}.growth-requirements b{background:linear-gradient(90deg, var(--mint-600), var(--mint-300))}.town-request-list button:disabled{opacity:.72}.town-request-list button.is-active{box-shadow:inset 3px 0 #62c8a499}.active-town-activity small,.active-town-activity span{color:var(--amber-300);font-size:11px}.active-town-activity strong{margin-top:4px;font-size:16px}.active-town-activity p,.civic-project-progress p{color:#ffffff6e;margin:6px 0;font-size:12px;line-height:1.5}.civic-project-progress{background:#62c8a40f;border:1px solid #62c8a41a;border-radius:11px;padding:12px}.civic-project-progress>span{justify-content:space-between;margin-bottom:8px;display:flex}.civic-project-progress strong{font-size:14px}.civic-project-progress small{color:var(--mint-300);font-size:12px}.civic-project-progress b{background:linear-gradient(90deg, var(--mint-600), var(--mint-300))}.town-news-list{gap:8px;display:grid}.town-news-list article{background:#ffffff09;border-left:2px solid #62c8a459;border-radius:0 9px 9px 0;padding:10px 11px}.town-news-list article>span{color:var(--mint-300);margin-bottom:4px;font-size:11px;font-weight:800;display:block}.town-news-list article strong{font-size:13px}.town-news-list article p{color:#ffffff6b;margin:5px 0 0;font-size:12px;line-height:1.5}.negative{color:var(--coral-300)!important}@media (width<=680px){.town-management-fab{bottom:58px;right:max(12px, env(safe-area-inset-right))}.town-management-fab strong{display:none}.town-management-panel{transform-origin:bottom;border-radius:18px 18px 0 0;width:100%;max-height:min(76dvh,720px);bottom:0;left:0;right:0;transform:translateY(30px)}.town-management-panel.is-open{transform:translateY(0)}.management-scroll{max-height:calc(min(76dvh,720px) - 158px)}.management-card-list.compact{grid-template-columns:1fr}.resident-life-grid{grid-template-columns:1fr 1fr}}@media (height<=610px) and (width>=681px){.town-management-fab{bottom:8px}.town-management-panel{bottom:58px}}.building-guide-fab{bottom:max(18px, env(safe-area-inset-bottom));right:calc(max(18px, env(safe-area-inset-right)) + 300px);z-index:29;border-radius:13px;align-items:center;gap:8px;padding:6px 12px 6px 6px;display:flex;position:absolute}.building-guide-fab>span{color:var(--mint-300);background:#93dec41f;border-radius:9px;justify-content:center;align-items:center;width:31px;height:31px;display:flex}.building-guide-fab strong{font-size:13px}.building-guide-layer{opacity:0;pointer-events:none;visibility:hidden;z-index:60;justify-content:center;align-items:center;padding:24px;transition:opacity .18s,visibility .18s;display:flex;position:absolute;inset:0}.building-guide-layer.is-open{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .18s,visibility}.building-guide-backdrop{background:#050e10b8;position:absolute;inset:0}.sheet-grip,.sheet-backdrop{display:none}.building-guide-panel{max-width:1080px;height:min(720px,100dvh - 48px);transition:transform .24s var(--ease-out);border-radius:24px;flex-direction:column;width:min(1080px,100vw - 48px);display:flex;position:relative;overflow:hidden;transform:translateY(12px)scale(.985)}.building-guide-layer.is-open .building-guide-panel{transform:translateY(0)scale(1)}.building-guide-header{background:#ffffff06;border-bottom:1px solid #ffffff12;align-items:center;min-height:88px;padding:18px 22px 16px 28px;display:flex}.building-guide-header>span{flex-direction:column;display:flex}.building-guide-header>span small{color:var(--mint-300);letter-spacing:.17em;margin-bottom:5px;font-size:11px;font-weight:850}.building-guide-header>span strong{font-size:21px}.building-guide-header>em{color:#ffffff57;margin-left:22px;font-size:13px;font-style:normal}.building-guide-header>button{margin-left:auto}.building-guide-tabs{scrollbar-color:#93dec466 #ffffff08;scrollbar-width:thin;background:#00000021;flex:none;gap:6px;min-height:53px;padding:9px 28px;display:flex;overflow-x:auto}.building-guide-tabs button{color:#ffffff6e;border:1px solid #0000;border-radius:9px;flex:none;align-items:center;gap:5px;padding:0 13px;font-size:13px;font-weight:700;display:flex}.building-guide-tabs button small{color:#ffffff40;font-size:11px}.building-guide-tabs button.is-active{color:var(--mint-300);background:#62c8a424;border-color:#93dec438}.building-guide-tabs button.is-active small{color:#93dec4a6}.building-guide-content{flex:1;grid-template-columns:minmax(0,1.45fr) minmax(340px,1fr);min-height:0;display:grid}.building-guide-list,.building-guide-detail{scrollbar-color:#93dec466 #ffffff08;scrollbar-width:thin;min-height:0;overflow-y:auto}.building-guide-list{padding:20px 20px 22px 28px}.building-guide-list-heading{justify-content:space-between;align-items:baseline;margin-bottom:13px;display:flex}.building-guide-list-heading strong{font-size:15px}.building-guide-list-heading small{color:#ffffff4d;font-size:11px}.building-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.building-guide-grid>button{text-align:left;background:#ffffff08;border:1px solid #ffffff0e;border-radius:13px;align-items:center;gap:10px;width:100%;min-height:102px;padding:11px;transition:background .15s,border-color .15s,transform .15s;display:flex;position:relative}.building-guide-grid>button:hover{background:#ffffff0e;transform:translateY(-1px)}.building-guide-grid>button.is-locked:not(.is-selected){opacity:.68}.building-guide-card-icon{background:linear-gradient(145deg, var(--guide-accent), var(--guide-roof));align-items:center}@supports (color:color-mix(in lab, red, red)){.building-guide-card-icon{background:linear-gradient(145deg, color-mix(in srgb, var(--guide-accent) 42%, transparent), color-mix(in srgb, var(--guide-roof) 28%, transparent))}}.building-guide-card-icon{border:1px solid var(--guide-accent)}@supports (color:color-mix(in lab, red, red)){.building-guide-card-icon{border:1px solid color-mix(in srgb, var(--guide-accent) 38%, transparent)}}.building-guide-card-icon{color:var(--guide-accent);border-radius:11px}@supports (color:color-mix(in lab, red, red)){.building-guide-card-icon{color:color-mix(in srgb, var(--guide-accent) 80%, white)}}.building-guide-card-icon{flex:none;justify-content:center;width:46px;height:46px;display:flex}.building-guide-card-copy{flex-direction:column;flex:1;min-width:0;display:flex}.building-guide-card-copy small{color:var(--mint-300);margin-bottom:4px;font-size:11px}.building-guide-card-copy strong{font-size:14px}.building-guide-card-copy em{color:#ffffff57;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:11px;font-style:normal;line-height:1.45;display:-webkit-box;overflow:hidden}.building-guide-lock{color:var(--amber-300);align-items:center;gap:3px;font-size:11px;display:flex;position:absolute;top:8px;right:8px}.building-guide-detail{background:#0000002b;border-left:1px solid #ffffff0e;padding:22px 25px}.building-guide-identity{background:radial-gradient(circle at 18% 50%, var(--guide-accent), transparent 42%), linear-gradient(135deg, var(--guide-roof), var(--ink-900));align-items:center}@supports (color:color-mix(in lab, red, red)){.building-guide-identity{background:radial-gradient(circle at 18% 50%, color-mix(in srgb, var(--guide-accent) 42%, transparent), transparent 42%), linear-gradient(135deg, color-mix(in srgb, var(--guide-roof) 72%, var(--ink-950)), var(--ink-900))}}.building-guide-identity{border:1px solid var(--guide-accent)}@supports (color:color-mix(in lab, red, red)){.building-guide-identity{border:1px solid color-mix(in srgb, var(--guide-accent) 24%, transparent)}}.building-guide-identity{border-radius:16px;gap:18px;min-height:134px;padding:20px;display:flex;position:relative;overflow:hidden}.building-guide-identity:after{background:var(--guide-accent)}@supports (color:color-mix(in lab, red, red)){.building-guide-identity:after{background:color-mix(in srgb, var(--guide-accent) 55%, transparent)}}.building-guide-identity:after{content:"";filter:blur(24px);opacity:.35;border-radius:99px;width:80px;height:80px;position:absolute;top:-25px;right:-25px}.building-guide-identity>span{color:var(--guide-accent);background:#08131475;border:1px solid #ffffff1a;border-radius:16px;align-items:center}@supports (color:color-mix(in lab, red, red)){.building-guide-identity>span{color:color-mix(in srgb, var(--guide-accent) 75%, white)}}.building-guide-identity>span{flex:none;justify-content:center;width:78px;height:78px;display:flex}.building-guide-identity>div{z-index:1;flex-direction:column;justify-content:center;min-width:0;display:flex;position:relative}.building-guide-identity small{color:var(--guide-accent)}@supports (color:color-mix(in lab, red, red)){.building-guide-identity small{color:color-mix(in srgb, var(--guide-accent) 75%, white)}}.building-guide-identity small{margin-bottom:7px;font-size:11px;font-weight:800}.building-guide-identity strong{font-size:15px;line-height:1.5}.building-guide-detail-title{margin-top:17px}.building-guide-detail-title>small{color:var(--mint-300);font-size:11px;font-weight:800}.building-guide-detail-title h2{margin:5px 0 6px;font-size:22px}.building-guide-detail-title p,.building-guide-tip p,.building-guide-progress p{color:#fff6;margin:0;font-size:12px;line-height:1.55}.building-guide-stats{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:15px;display:grid}.building-guide-stats>span{background:#ffffff0a;border-radius:10px;flex-direction:column;min-height:62px;padding:10px;display:flex}.building-guide-stats small,.building-guide-progress small{color:#ffffff4d;margin-bottom:6px;font-size:11px}.building-guide-stats strong{font-size:13px}.building-guide-tip,.building-guide-progress{border-radius:11px;margin-top:12px;padding:11px 13px}.building-guide-tip{background:#dfae5212;border:1px solid #dfae521f}.building-guide-tip>span{color:var(--amber-300);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;display:flex}.building-guide-progress{background:#62c8a40e;border:1px solid #62c8a41a;flex-direction:column;display:flex}.building-guide-progress>span{flex-direction:column;display:flex}.building-guide-progress strong{font-size:13px}.building-guide-progress p{color:var(--amber-300);margin-top:7px}.building-guide-build{background:var(--mint-400);color:var(--ink-950);border-radius:11px;justify-content:center;align-items:center;gap:7px;width:100%;min-height:42px;margin-top:13px;font-size:13px;font-weight:850;display:flex}.building-guide-build:disabled{color:#ffffff59;cursor:not-allowed;background:#ffffff0f}@media (width<=900px){.building-guide-header>em{display:none}.building-guide-content{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr)}.building-guide-grid{grid-template-columns:1fr}.building-guide-list-heading small{display:none}}@media (width<=680px){.building-guide-fab{bottom:calc(max(8px, env(safe-area-inset-bottom)) + 127px);right:calc(max(9px, env(safe-area-inset-right)) + 48px);padding-right:6px}.building-guide-fab strong{display:none}.building-guide-layer{align-items:flex-end;padding:0}.building-guide-panel{border-radius:20px 20px 0 0;width:100%;height:min(88dvh,760px)}.sheet-grip{touch-action:none;background:#374d4638;border-radius:999px;flex:none;width:40px;height:4px;margin:7px auto 0;display:block;position:relative}.sheet-grip:after{content:"";touch-action:none;position:absolute;inset:-11px -80px}.sheet-backdrop{z-index:38;background:#050e1057;display:block;position:absolute;inset:0}.building-guide-header{min-height:68px;padding:13px 12px 11px 18px}.building-guide-header>span strong{font-size:20px}.building-guide-tabs{min-height:48px;padding:7px 12px}.building-guide-content{flex-direction:column;display:flex;overflow-y:auto}.building-guide-detail,.building-guide-list{flex:none;overflow:visible}.building-guide-detail{border-bottom:1px solid #ffffff0f;border-left:0;order:1;padding:14px}.building-guide-list{order:2;padding:15px 12px 22px}.building-guide-identity{min-height:100px;padding:13px}.building-guide-identity>span{width:62px;height:62px}.building-guide-detail-title h2{font-size:19px}.building-guide-stats{grid-template-columns:repeat(3,1fr)}.building-guide-stats>span:nth-child(n+4),.building-guide-progress{display:none}.building-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.building-guide-grid>button{flex-direction:column;align-items:flex-start;min-height:125px}.building-guide-card-copy em{-webkit-line-clamp:3}}@media (width<=390px){.building-guide-grid{grid-template-columns:1fr}}.town-library{z-index:60;border-radius:22px;flex-direction:column;gap:12px;width:620px;max-width:calc(100vw - 32px);max-height:min(680px,100dvh - 96px);padding:18px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.town-library-head{justify-content:space-between;align-items:center;display:flex}.town-library-head strong{font-size:17px;font-weight:780}.town-library-head button{color:#fff9;background:#ffffff0d;border:1px solid #ffffff12;border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.town-library-tabs{background:#ffffff0a;border-radius:11px;gap:3px;width:max-content;padding:3px;display:flex}.town-library-tabs button{color:#ffffff75;background:0 0;border-radius:8px;height:30px;padding:0 16px;font-size:13px;font-weight:740}.town-library-tabs button.is-selected{color:var(--mint-300);background:#62c8a424}.town-library-confirm{background:#62c8a417;border:1px solid #7ddfbb2e;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;display:flex}.town-library-confirm p{color:#ffffffb8;margin:0;font-size:13px}.town-library-confirm strong{color:#fff}.town-library-confirm div{flex:none;gap:7px;display:flex}.town-library-confirm button{color:#ffffffa8;background:#ffffff0f;border:1px solid #ffffff17;border-radius:9px;height:32px;padding:0 14px;font-weight:720}.town-library-confirm button.is-primary{color:var(--mint-300);background:#62c8a433;border-color:#7ddfbb4d}.town-library-error,.town-library-empty{color:#ffffff80;margin:0;font-size:13px}.town-library-error{color:var(--coral-300,#f0a08e)}.town-library-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.town-library-grid li{position:relative}.town-card{text-align:left;transition:background .16s ease, border-color .16s ease, transform .16s var(--ease-out);background:#ffffff0a;border:1px solid #ffffff12;border-radius:14px;gap:2px;width:100%;padding:8px;display:grid}.town-card:hover,.town-card:focus-visible{background:#62c8a41a;border-color:#7ddfbb38;transform:translateY(-2px)}.town-card-map{aspect-ratio:1;background:#16262b;border-radius:9px;width:100%;margin-bottom:6px;display:block}.town-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:760;overflow:hidden}.town-card small,.town-card time{color:#ffffff6b;font-size:11px}.town-card-remove{color:#ffffff8c;background:#141c20b8;border:1px solid #ffffff17;border-radius:8px;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;top:14px;right:14px}.town-card-remove:hover,.town-card-remove:focus-visible{color:var(--coral-300,#f0a08e)}.visit-banner{z-index:46;align-items:center;gap:14px;padding:10px 12px 10px 16px;display:flex;position:fixed;top:92px;left:50%;transform:translate(-50%)}.visit-banner span{gap:2px;display:grid}.visit-banner small{color:var(--ink-300);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.visit-banner button,.public-town-actions button,.public-town-report button{cursor:pointer;border:0;border-radius:10px;min-height:34px;padding:0 12px}.public-town-browser{width:min(920px,100%);max-height:min(760px,100dvh - 40px);padding:20px;overflow:auto}.public-town-browser>:first-child{margin-top:0}.public-town-browser>:last-child{margin-bottom:0}.public-town-head{justify-content:space-between;align-items:center;display:flex}.public-town-head span{gap:3px;display:grid}.public-town-head small{color:var(--ink-300);letter-spacing:.12em}.public-town-head button{color:inherit;cursor:pointer;background:0 0;border:0}.public-town-intro,.public-town-message,.public-town-empty{color:var(--ink-300)}.public-town-message{border-radius:10px;padding:10px 12px}.public-town-message.is-error{color:#f0a08e;background:#be4d4421}.public-town-message.is-success{color:#82efd0;background:#32897021}.public-town-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:18px 0 0;padding:0;list-style:none;display:grid}.public-town-card{background:#ffffff0f;border:1px solid #ffffff17;border-radius:16px;gap:10px;padding:10px;display:grid;overflow:hidden}.public-town-card-copy{gap:4px;display:grid}.public-town-card-copy small,.public-town-card-copy time{color:var(--ink-300);font-size:.75rem}.public-town-actions{gap:8px;display:flex}.public-town-author{color:var(--ink-200);font-weight:600}.public-town-reactions{gap:8px;display:flex}.public-town-reactions button{color:var(--ink-200);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:5px;min-height:30px;padding:0 11px;font-size:.74rem;display:inline-flex}.public-town-reactions button:disabled{cursor:default;opacity:.55}.heart-button.is-on{color:#f5a3b1;background:#e96a812e;border-color:#e96a8166}.link-button{color:#82efd0;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.public-town-comments{border-top:1px solid #ffffff17;gap:10px;padding-top:10px;display:grid}.public-town-comments p{color:var(--ink-300);margin:0;font-size:.76rem}.public-town-comments ul{gap:9px;max-height:220px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.public-town-comments li{background:#ffffff0d;border-radius:11px;gap:4px;padding:8px 10px;display:grid}.comment-head{align-items:baseline;gap:7px;display:flex}.comment-head strong{font-size:.78rem}.comment-head time{color:var(--ink-300);font-size:.68rem}.public-town-comments li p{color:var(--ink-100);overflow-wrap:anywhere;font-size:.8rem}.comment-actions{justify-content:flex-end;display:flex}.comment-actions button{color:var(--ink-300);cursor:pointer;background:0 0;border:0;padding:0;font-size:.7rem}.public-town-comments form{gap:7px;display:flex}.public-town-comments input{color:inherit;font:inherit;background:#ffffff12;border:1px solid #ffffff1f;border-radius:9px;flex:1;min-width:0;padding:8px 10px;font-size:.8rem}.public-town-comments form button{cursor:pointer;border:0;border-radius:9px;min-height:34px;padding:0 12px}.nickname-form{gap:8px;padding:10px 4px 2px;display:grid}.menu-actions .nickname-form{background:#62c8a412;border:1px solid #62c8a429;border-radius:12px;padding:12px}.nickname-form label{color:var(--ink-300);gap:5px;font-size:.74rem;display:grid}.nickname-form input{color:inherit;font:inherit;background:#ffffff12;border:1px solid #ffffff1f;border-radius:9px;padding:9px 10px}.nickname-form>div{justify-content:flex-end;gap:8px;display:flex}.nickname-form button{cursor:pointer;border:0;border-radius:10px;min-width:74px;min-height:34px;padding:0 12px}.nickname-form>div button:not(.primary-button){color:#ffffffad;background:#ffffff0f;border:1px solid #ffffff1a}.nickname-form>div button:not(.primary-button):hover{color:#ffffffd9;background:#ffffff1a}.nickname-form .form-message{color:#f5a3b1;margin:0;font-size:.74rem}.public-town-report{background:#141c20f5;border:1px solid #ffffff1f;border-radius:14px;gap:12px;padding:16px;display:grid;position:sticky;bottom:18px;left:18px;right:18px;box-shadow:0 18px 52px #080e1057}.public-town-report label{gap:5px;display:grid}.public-town-report select,.public-town-report textarea{color:inherit;font:inherit;background:#ffffff12;border:1px solid #ffffff1f;border-radius:9px;padding:9px 10px}.public-town-report textarea{resize:vertical;min-height:96px}.public-town-report>div{justify-content:flex-end;gap:8px;display:flex}.town-card-actions{gap:6px;margin:6px 8px 0;display:flex}.town-card-actions>button{flex:1;min-width:0;margin:0}.town-card-publication{color:#82efd0;cursor:pointer;background:#4ccaa821;border:0;border-radius:8px;min-height:30px;margin:6px 8px 0;padding:0 9px;font-size:.72rem}.town-card-publication.is-published{color:#f0a08e;background:#be4d4421}.left-hud-stack{left:max(16px, env(safe-area-inset-left));max-height:calc(100dvh - max(92px, env(safe-area-inset-top) + 92px) - 16px);pointer-events:none;max-width:min(440px,100vw - 32px);top:max(92px, calc(env(safe-area-inset-top) + 92px));z-index:36;flex-direction:column;align-items:stretch;gap:10px;width:min(440px,100vw - 32px);display:flex;position:absolute}.left-hud-stack>*{pointer-events:auto}.left-hud-stack .mini-map{width:100%;position:relative;top:auto!important;left:auto!important}.game-shell[data-placement-active=true] .left-hud-stack .mini-map{display:block!important}.game-shell:has(.build-category-drawer.is-open) .left-hud-stack .mini-map{display:block!important}.mini-map-body{grid-template-columns:minmax(0,222px) minmax(136px,1fr);align-items:start;gap:8px;display:grid}.mini-map-body .mini-map-canvas{min-width:0}.mini-map-body .town-growth-actions{border-top:0;border-left:1px solid #ffffff12;grid-template-columns:1fr;min-width:0;margin:0;padding:0 0 0 8px}.left-hud-stack .mini-map-layers{display:none!important}.left-hud-stack .build-controls-stack{width:100%;max-width:none;max-height:min(48dvh,460px);position:relative;overflow:visible auto;top:auto!important;bottom:auto!important;left:auto!important}.left-hud-stack .build-dock-wrap{flex-direction:column;align-items:stretch;gap:7px;width:100%;max-width:none;display:flex}.left-hud-stack .build-dock-toggle{display:none!important}.left-hud-stack .build-dock-column,.left-hud-stack .build-dock,.left-hud-stack .build-category-drawer{width:100%}.left-hud-stack .build-dock-column{flex:none}.left-hud-stack .build-category-drawer{flex:none;max-height:min(42dvh,420px)}.left-hud-stack .build-dock-scroll{max-height:min(38dvh,380px)}.build-card.is-access-locked{color:#ffffff94;border-color:#ffc46b29}.build-card.is-access-locked .build-card-cost{color:var(--amber-300);font-size:10px}@media (width<=390px){.left-hud-stack{left:max(9px, env(safe-area-inset-left));max-width:calc(100vw - 18px);max-height:calc(100dvh - 124px);top:calc(max(9px, env(safe-area-inset-top)) + 115px);width:calc(100vw - 18px)}.mini-map-body{grid-template-columns:1fr}.mini-map-body .town-growth-actions{border-top:1px solid #ffffff12;border-left:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:7px 0 0}.left-hud-stack .build-controls-stack{max-height:min(42dvh,340px)}}@media (height<=680px){.left-hud-stack{max-height:calc(100dvh - 108px)}.left-hud-stack .build-controls-stack{max-height:min(35dvh,260px)}}.left-hud-stack{align-items:flex-start;width:min(370px,100vw - 32px);max-width:min(370px,100vw - 32px);overflow:visible}.left-hud-stack .mini-map{width:100%;max-width:100%}.mini-map-header{gap:6px}.mini-map-header-actions{align-items:center;gap:5px;min-width:0;display:flex}.mini-map-header>span{flex:auto;min-width:0}.mini-map-header>span strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mini-map-header-actions small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mini-map-toggle{color:#ffffffb8;background:#ffffff0e;border:1px solid #ffffff1a;border-radius:7px;flex:none;justify-content:center;align-items:center;width:25px;height:25px;padding:0;display:inline-flex}.mini-map-toggle:hover,.mini-map-toggle:focus-visible{color:var(--mint-300);background:#62c8a429;border-color:#7ddfbb57}.mini-map-toggle svg{transition:transform .15s}.mini-map-toggle svg.is-rotated{transform:rotate(180deg)}.mini-map.is-collapsed .mini-map-header{margin-bottom:0}.left-hud-stack .mini-map-body{grid-template-columns:minmax(0,222px) minmax(112px,1fr);align-items:stretch;gap:8px;display:grid}.left-hud-stack .mini-map-body .town-growth-actions{border-top:0;border-left:0;grid-template-columns:1fr;gap:4px;min-width:0;margin:0;padding:0;display:grid}.left-hud-stack .town-growth-actions button{flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:4px 7px}.left-hud-stack .town-growth-actions button span{white-space:nowrap;min-width:0}.left-hud-stack .town-growth-actions button small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.left-hud-stack .build-controls-stack{width:100%;max-width:100%;overflow:visible}.left-hud-stack .build-dock-wrap{width:100%;max-width:100%;display:block;position:relative}.left-hud-stack .build-dock-toggle{width:100%;min-width:0;display:flex!important}.left-hud-stack .build-dock-wrap[data-dock-collapsed=true] .build-dock-column{display:none}.left-hud-stack .build-dock-column,.left-hud-stack .build-dock{width:100%}.left-hud-stack .build-category-tabs{scrollbar-color:#7ddfbb59 transparent;scrollbar-width:thin;max-height:min(36dvh,270px);overflow-y:auto;grid-template-columns:1fr!important}.left-hud-stack .build-category-drawer{z-index:4;flex:none;width:min(366px,100vw - 270px);max-height:min(430px,100dvh - 210px);margin:0;position:absolute;top:0;bottom:auto;left:calc(100% + 8px)}.left-hud-stack .build-dock-wrap[data-dock-collapsed=true] .build-category-drawer{display:none}@media (width<=620px){.left-hud-stack{left:max(9px, env(safe-area-inset-left));max-width:min(222px,100vw - 18px);top:calc(max(9px, env(safe-area-inset-top)) + 115px);width:min(222px,100vw - 18px)}.left-hud-stack .mini-map-body{flex-direction:column;display:flex}.left-hud-stack .mini-map-body .town-growth-actions{border-top:1px solid #ffffff12;padding:8px 0 0}.left-hud-stack .town-growth-actions button{flex-direction:row;justify-content:space-between}.left-hud-stack .build-category-drawer{width:min(366px,100vw - 18px);top:calc(100% + 8px);left:0}}@media (width<=760px),(width<=1180px) and (pointer:coarse){.camera-hints,.ground-camera-guide{display:none!important}.top-hud .metric-strip{box-sizing:border-box;grid-template-columns:minmax(62px,1fr) 1px minmax(86px,1.2fr) 1px minmax(44px,.7fr) 1px minmax(58px,.8fr);column-gap:4px;width:100%;max-width:none;padding-inline:6px}.top-hud .metric{justify-content:center;padding-inline:3px}.top-hud .metric-copy{text-align:center;align-items:center;width:100%}.top-hud .metric-copy small{letter-spacing:0;max-width:100%;font-size:10px}.top-hud .metric-copy strong{justify-content:center;font-size:13px}.left-hud-stack{left:max(9px, env(safe-area-inset-left));max-width:min(136px,100vw - 18px);max-height:calc(100dvh - 124px);top:calc(max(9px, env(safe-area-inset-top)) + 115px);gap:6px;width:min(136px,100vw - 18px)}.left-hud-stack .mini-map{-webkit-backdrop-filter:blur(4px)saturate(112%);backdrop-filter:blur(4px)saturate(112%);background:#08121429;border-color:#ffffff13;border-radius:13px;padding:6px;box-shadow:inset 0 1px #ffffff0b}.mini-map-header{gap:4px;margin-bottom:5px}.mini-map-header>span{gap:4px;font-size:12px}.mini-map-header>span strong,.build-category-tab span,.build-dock-toggle span,.left-hud-stack .town-growth-actions button span{overflow-wrap:anywhere;text-overflow:clip;white-space:normal;word-break:keep-all;min-width:0;max-width:100%;display:block;overflow:visible}.mini-map-header-actions small,.left-hud-stack .town-growth-actions button small{display:none}.mini-map-toggle{width:22px;height:22px}.left-hud-stack .mini-map-body{flex-direction:column;gap:5px;display:flex}.left-hud-stack .mini-map-canvas{background:#0a191c4d;border-color:#ffffff13;border-radius:8px}.left-hud-stack .mini-map-body .town-growth-actions{border-top:1px solid #fff1;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:5px 0 0}.left-hud-stack .town-growth-actions button{flex-direction:column;justify-content:center;gap:2px;min-height:32px;padding:4px 2px}.left-hud-stack .town-growth-actions button span{text-align:center;font-size:10px;line-height:1.25}.left-hud-stack .build-controls-stack,.left-hud-stack .build-dock-wrap{width:100%;max-width:100%}.left-hud-stack .build-dock-toggle{gap:5px;min-height:38px;padding:5px 7px}.left-hud-stack .build-category-tabs{max-height:min(36dvh,270px)}.left-hud-stack .build-category-tab{height:auto;min-height:42px}.left-hud-stack .build-category-tab span{text-align:center;font-size:10px;line-height:1.25}.left-hud-stack .build-category-drawer{width:min(366px,100vw - 18px);top:calc(100% + 6px);left:0}:is(.game-shell:has(.build-category-drawer.is-open) .left-hud-stack .mini-map,.game-shell:has(.build-dock-wrap[data-dock-collapsed=false]) .left-hud-stack .mini-map){display:none!important}.game-shell:has(.build-dock-wrap[data-dock-collapsed=false]) .left-hud-stack .build-category-tabs{max-height:min(430px,100dvh - 255px)}.game-shell[data-placement-active=true] .left-hud-stack{display:none!important}.placement-feedback-anchor{left:max(9px, env(safe-area-inset-left));max-width:calc(100vw - 18px);top:calc(max(9px, env(safe-area-inset-top)) + 115px);width:calc(100vw - 18px)}.placement-feedback{align-items:flex-start;width:100%;min-height:0;padding-block:8px}.placement-copy .placement-tool-label{display:none}.placement-copy .placement-gesture-hint{overflow-wrap:anywhere;white-space:normal;word-break:keep-all;margin:4px 0 0;font-size:10px;line-height:1.35;display:block}.build-card{flex-basis:82px;grid-template-rows:31px auto 14px;min-height:94px}.build-card-copy strong,.company-tenant-list strong,.employment-summary strong,.employment-person-list strong,.ledger-entry-copy strong,.resident-life-grid strong,.town-card strong{overflow-wrap:anywhere;text-overflow:clip;white-space:normal;word-break:keep-all;line-height:1.25;overflow:visible}.stats-grid small,.confirm-modal>p{overflow-wrap:anywhere;white-space:normal;word-break:keep-all}}:root{--ui-paper-base:#fffdf7;--ui-paper-muted:#f6f9ee;--ui-paper-disabled:#edf0e9;--ui-paper:#fffaefe6;--ui-paper-strong:#fffdf7f5;--ui-paper-soft:#f6f9eed1;--ui-ink:#2e403c;--ui-ink-soft:#536762;--ui-ink-faint:#596b65;--ui-disabled-text:#596b65;--ui-mint:#3ca985;--ui-mint-text:#246f58;--ui-mint-soft:#dff3e8;--ui-coral:#db705c;--ui-coral-text:#9f493b;--ui-coral-soft:#f9e2db;--ui-amber:#bd7a2d;--ui-amber-text:#8a571f;--ui-amber-soft:#f8ebcb;--ui-on-dark:#f7fbf8;--ui-on-dark-soft:#d3e4de;--ui-on-mint-text:#102f26;--mint-300:#318f70;--mint-400:#3eaa85;--amber-300:#b87528;--coral-300:#d96f5b;--positive:#287d62;--glass:var(--ui-paper);--glass-soft:var(--ui-paper-soft);--glass-border:#374d4629;--glass-highlight:#ffffffb8;--shadow-panel:0 14px 34px #2a3d3629, 0 3px 9px #2a3d3614;--shadow-float:0 22px 54px #2a3d3638, 0 5px 15px #2a3d361a}.game-ui{color:var(--ui-ink)}.glass-panel,.game-modal{background:linear-gradient(145deg, #ffffffc2, transparent 46%), linear-gradient(165deg, var(--ui-paper-strong), var(--ui-paper-soft));border-color:var(--glass-border);box-shadow:inset 0 1px 0 #ffffffe6, var(--shadow-panel);color:var(--ui-ink);-webkit-backdrop-filter:blur(15px)saturate(118%);backdrop-filter:blur(15px)saturate(118%)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline-color:var(--ui-coral);outline-offset:3px}.icon-button{color:var(--ui-ink-soft)}.icon-button:hover{color:#236f59;background:#3ca98521}.brand-cluster,.metric-strip,.time-cluster{border-radius:22px}.brand-mark{filter:drop-shadow(0 4px 7px #324b422b)}.brand-copy strong,.metric-copy strong,.time-copy strong{color:var(--ui-ink)}.brand-copy span{color:var(--ui-mint-text)}.current-town-name,.metric-copy small,.metric-copy em,.time-copy small{color:var(--ui-ink-faint)}.current-town-name:before{background:var(--ui-ink-faint)}.metric-icon{color:var(--ui-ink-soft);background:#ffffffad;border-color:#374d461c;box-shadow:0 3px 8px #30483f14}.coin-icon{background:var(--ui-amber-soft);color:var(--ui-amber)}.revenue-icon{background:var(--ui-mint-soft);color:var(--ui-mint)}.population-icon{color:#47798a;background:#e3eff3}.happiness-icon{background:var(--ui-coral-soft);color:var(--ui-coral)}.metric-divider,.compact-divider{background:#374d4621}.metric-gauge{background:#374d461a}.metric-gauge i{background:linear-gradient(90deg,#ed9d87,#52b993)}.daylight-icon{color:var(--ui-amber);filter:drop-shadow(0 2px 5px #bd7a2d33)}.speed-controls{background:#374d4613;border-color:#374d461a}.speed-controls button{color:var(--ui-ink-faint)}.speed-controls button:hover{color:var(--ui-ink);background:#ffffff94}.speed-controls button.is-active{color:#226f58;background:#caecdd;box-shadow:inset 0 0 0 1px #2d8f7029}.sandbox-badge,.camera-hints,.camera-mode-toolbar,.ground-camera-guide,.visit-banner{border-radius:999px}.sandbox-badge strong,.sandbox-badge small,.camera-hints span,.ground-camera-guide small,.visit-banner small{color:var(--ui-ink-soft)}.sandbox-badge>span,.sandbox-lighting-toggle{background:var(--ui-amber-soft);color:var(--ui-amber);border-color:#bd7a2d38}.camera-mode-toolbar>div,.camera-mode-toolbar button,.camera-hints kbd,kbd{color:var(--ui-ink-faint);background:#ffffff94;border-color:#374d461f}.camera-mode-toolbar button:hover,.camera-mode-toolbar button.is-active{background:var(--ui-mint-soft);color:#276f59}.mini-map,.build-dock,.build-category-drawer,.inspector-panel,.town-management-panel,.ledger-drawer,.building-guide-panel,.tutorial-card{border-radius:23px}.mini-map-header>span,.mini-map-header small,.mini-map-header .mini-map-navigation-status{color:var(--ui-ink-soft)}.mini-map-header>span svg{color:var(--ui-mint)}.mini-map-canvas{background:#29433f;border:2px solid #ffffffb8;border-radius:15px;box-shadow:inset 0 0 0 1px #374d4624}.mini-map-layers button,.town-growth-actions button{color:var(--ui-ink-soft);background:#ffffff85;border-color:#374d461c}.mini-map-layers button:hover,.town-growth-actions button:hover:not(:disabled),.mini-map-layers button.is-active{background:var(--ui-mint-soft);color:#286f59;border-color:#318f7047}.town-growth-actions,.left-hud-stack .mini-map-body .town-growth-actions{border-color:#374d461a}.build-dock-toggle{background:var(--ui-paper-strong);border-color:var(--glass-border);color:var(--ui-ink);box-shadow:var(--shadow-panel)}.build-dock-toggle:hover,.build-dock-toggle:focus-visible{background:var(--ui-mint-soft);border-color:#318f7047}.build-category-tab{color:var(--ui-ink-faint);border-radius:12px}.build-category-tab:hover,.build-category-tab:focus-visible{color:var(--ui-ink);background:#ffffff9e}.build-category-tab.is-selected{background:var(--ui-mint-soft);color:#226f58;box-shadow:inset 3px 0 0 var(--ui-mint);border-color:#318f703d}.build-demolish-toggle{color:#a34e3f;background:#f9e2dbb8;border-color:#d96f5b33}.build-demolish-toggle:hover,.build-demolish-toggle:focus-visible,.build-demolish-toggle.is-selected{background:var(--ui-coral-soft);color:#913f32;border-color:#d96f5b66}.build-card{background:#ffffff73;border-color:#374d4613;border-radius:17px}.build-card:hover:not(:disabled){background:var(--ui-paper-strong);border-color:#3ca98533;box-shadow:0 8px 18px #2f4b411f}.build-card.is-selected{background:linear-gradient(160deg, #ffffffc7, transparent), var(--ui-mint-soft);border-color:#318f7066;box-shadow:inset 0 0 0 1px #ffffffb3,0 10px 22px #2f745b2e}.build-card-icon{color:var(--ui-ink-soft);background:#ffffffb3;border-color:#374d461a}.tone-coral .build-card-icon,.tone-rose .build-card-icon{color:#aa4d42}.tone-coffee .build-card-icon,.tone-amber .build-card-icon{color:#9b642a}.tone-leaf .build-card-icon,.tone-forest .build-card-icon,.tone-mint .build-card-icon{color:#30775f}.tone-slate .build-card-icon,.tone-road .build-card-icon{color:#526b70}.build-card-copy strong,.build-card-key{color:var(--ui-ink)}.build-card-copy small{color:var(--ui-ink-faint)}.build-card-cost{color:var(--ui-amber-text)}.placement-feedback.is-valid{border-color:#318f7047}.placement-status-icon{background:var(--ui-mint-soft);color:var(--ui-mint)}.placement-feedback.is-invalid{background:linear-gradient(145deg, #ffffffc7, transparent 46%), var(--ui-coral-soft);border-color:#d96f5b61}.placement-feedback.is-invalid .placement-status-icon{color:var(--ui-coral);background:#d96f5b24}.placement-feedback .placement-copy strong{color:var(--ui-ink)}.placement-feedback .placement-copy small{color:var(--ui-ink-soft)}.placement-feedback .placement-rotation{color:var(--ui-ink-soft);background:#ffffff9e;border:1px solid #374d461f}.placement-feedback .placement-action{color:var(--ui-ink);background:#ffffffb8;border:1px solid #374d4624;font-weight:760}.placement-feedback .placement-action:hover,.placement-feedback .placement-action:focus-visible{background:var(--ui-paper-strong);color:#226f58;border-color:#318f704d}.placement-feedback .placement-confirm-action:not(:disabled){background:var(--ui-mint-soft);color:#226f58;border-color:#318f706b}.placement-feedback .placement-confirm-action:not(:disabled):hover,.placement-feedback .placement-confirm-action:not(:disabled):focus-visible{color:#185740;background:#62c8a461;border-color:#318f7094}.placement-feedback .placement-confirm-action:disabled{color:var(--ui-ink-soft);opacity:1;background:#ffffff9e}.inspector-panel,.town-management-panel,.ledger-drawer,.building-guide-panel,.game-modal{color:var(--ui-ink)}:where(.inspector-panel,.town-management-panel,.ledger-drawer,.building-guide-panel,.game-modal) :where(p,li,em,small){color:var(--ui-ink-soft)}:where(.inspector-panel,.town-management-panel,.ledger-drawer,.building-guide-panel,.game-modal) :where(h1,h2,h3,strong){color:var(--ui-ink)}.status-ribbon,.stats-grid>div,.ledger-summary,.management-economy-strip,.building-guide-tabs,.modal-footer,.modal-header{background:#374d460b;border-color:#374d461a}.management-tabs button,.building-guide-tabs button{color:var(--ui-ink-faint)}.management-tabs button.is-active,.building-guide-tabs button.is-active{background:var(--ui-mint-soft);color:#246f58;border-color:#318f703d}.building-guide-grid>button,.ledger-entry,.town-card{background:#ffffff80;border-color:#374d461a}.building-guide-grid>button:hover,.ledger-entry:hover,.town-card:hover{background:#ffffffd1;border-color:#318f7033}.building-guide-grid>button.is-selected{background:var(--ui-mint-soft);border-color:#318f7059}.ledger-summary small,.ledger-entry-copy small,.management-economy-strip small,.management-heading>small,.town-needs-list small,.management-stat-grid small,.management-card-list small{color:var(--ui-ink-faint)}.active-town-activity p,.civic-project-progress p,.town-news-list article p{color:var(--ui-ink-soft)}.tutorial-card[data-ui-surface=paper],.inspector-panel[data-ui-surface=paper]{background:linear-gradient(145deg, #ffffffb8, transparent 46%), linear-gradient(165deg, var(--ui-paper-base), var(--ui-paper-muted));color:var(--ui-ink);scrollbar-color:#53676257 transparent}.tutorial-card .tutorial-copy>strong{color:var(--ui-ink)}.tutorial-card .tutorial-copy p{color:var(--ui-ink-soft)}.tutorial-card .tutorial-copy>small,.tutorial-card .tutorial-icon{color:var(--ui-mint-text)}.tutorial-card .tutorial-skip{color:var(--ui-ink-faint)}.tutorial-card .tutorial-skip:hover,.tutorial-card .tutorial-skip:focus-visible{color:var(--ui-ink);background:#3ca9851a}.tutorial-card .tutorial-footer{border-color:#374d461f}.tutorial-card .tutorial-dots i{background:#2e403c33}.tutorial-card .tutorial-dots i.is-active{background:var(--ui-mint-text)}.inspector-panel .vehicle-color-chip{color:var(--ui-ink);isolation:isolate;position:relative}.inspector-panel .vehicle-color-chip:before{background:var(--ui-paper-base);content:"";z-index:0;border:1px solid #374d4624;border-radius:9px;position:absolute;inset:7px}.inspector-panel .vehicle-color-chip svg{color:var(--ui-ink);z-index:1;position:relative}.inspector-panel .inspector-hero strong,.inspector-panel .status-ribbon strong,.inspector-panel .section-title-row>strong,.inspector-panel .citizen-schedule>strong,.inspector-panel .citizen-memories>strong{color:var(--ui-ink)}.inspector-panel .detail-note,.inspector-panel .citizen-thought p,.inspector-panel .citizen-schedule li,.inspector-panel .citizen-memories li,.inspector-panel .infrastructure-removal-row>span{color:var(--ui-ink-soft)}.inspector-panel .inspector-hero small,.inspector-panel .status-ribbon small,.inspector-panel .stats-grid small,.inspector-panel .section-title-row>small,.inspector-panel .live-label,.inspector-panel .detail-progress small,.inspector-panel .company-tenant-list small,.inspector-panel .employment-summary small,.inspector-panel .employment-person-list small,.inspector-panel .empty-employment-list,.inspector-panel .operation-control>small,.inspector-panel .transit-stop-control>label,.inspector-panel .transit-stop-control>small,.inspector-panel .operation-max-label,.inspector-panel .resident-life-grid small{color:var(--ui-ink-faint)}.inspector-panel .stats-grid strong,.inspector-panel .detail-progress strong,.inspector-panel .company-tenant-list strong,.inspector-panel .employment-summary strong,.inspector-panel .employment-person-list strong,.inspector-panel .resident-life-grid strong,.inspector-panel .transit-stop-control select{color:var(--ui-ink)}.inspector-panel .stat-mini-icon{color:var(--ui-ink-faint)}.inspector-panel .citizen-thought small,.inspector-panel .company-tenant-list em,.inspector-panel .employment-summary em,.inspector-panel .transit-stop-control>strong{color:var(--ui-mint-text)}.inspector-panel .inspector-section{border-color:#374d461f}.inspector-panel .status-ribbon,.inspector-panel .stats-grid>div,.inspector-panel .company-tenant-list>div,.inspector-panel .employment-summary,.inspector-panel .employment-person-list>div,.inspector-panel .resident-life-grid>div,.inspector-panel .infrastructure-removal-row{background:#ffffff85;border-color:#374d461c}.inspector-panel .detail-note,.inspector-panel .citizen-thought,.inspector-panel .transit-stop-control{background:var(--ui-mint-soft);border-color:#318f702e}.inspector-panel .detail-note:not(.visitor-connection),.inspector-panel .detail-note.visitor-connection.is-no-residents{background:var(--ui-amber-soft);border-color:#bd7a2d33}.inspector-panel .detail-note.visitor-connection.is-disconnected{background:var(--ui-coral-soft);border-color:#d96f5b3d}.inspector-panel .panel-focus-button,.inspector-panel .staff-highlight-toggle,.inspector-panel .employment-person-list button,.inspector-panel .operation-control button,.inspector-panel .building-operation-actions button{color:var(--ui-ink-soft);background:#fff9;border-color:#374d4621}.inspector-panel .panel-focus-button,.inspector-panel .staff-highlight-toggle.is-active,.inspector-panel .employment-person-list button:not(.danger-ghost-button),.inspector-panel .operation-control button.is-active{color:var(--ui-mint-text)}.inspector-panel .panel-focus-button:hover,.inspector-panel .panel-focus-button:focus-visible,.inspector-panel .staff-highlight-toggle:hover,.inspector-panel .employment-person-list button:hover:not(:disabled),.inspector-panel .operation-control button:hover,.inspector-panel .building-operation-actions button:hover:not(:disabled){background:var(--ui-mint-soft);color:var(--ui-mint-text);border-color:#318f7045}.inspector-panel .operation-control>div{background:#374d4612;border:1px solid #374d4617}.inspector-panel .transit-stop-control select{background:var(--ui-paper-base);border-color:#374d462e}.inspector-panel .danger-ghost-button,.inspector-panel .employment-person-list .danger-ghost-button{background:var(--ui-coral-soft);color:var(--ui-coral-text);border-color:#d96f5b40}.inspector-panel .citizen-schedule li.is-current{color:var(--ui-ink)}.inspector-panel .citizen-schedule li:not(:last-child) i:after{background:#374d4629}.inspector-panel .empty-employment-list{background:#ffffff5c;border-color:#374d4629}.inspector-panel .employment-person-list button:disabled,.inspector-panel .building-operation-actions button:disabled,.inspector-panel button:disabled,.inspector-panel select:disabled{background:var(--ui-paper-disabled);color:var(--ui-disabled-text);cursor:not-allowed;opacity:1;border-color:#374d4621}.building-guide-panel .building-guide-header>span small,.building-guide-panel .building-guide-card-copy small,.building-guide-panel .building-guide-detail-title>small{color:var(--ui-mint-text)}.building-guide-panel .building-guide-header>span strong,.building-guide-panel .building-guide-list-heading strong,.building-guide-panel .building-guide-card-copy strong,.building-guide-panel .building-guide-detail-title h2,.building-guide-panel .building-guide-stats strong,.building-guide-panel .building-guide-progress strong{color:var(--ui-ink)}.building-guide-panel .building-guide-header>em,.building-guide-panel .building-guide-list-heading small,.building-guide-panel .building-guide-card-copy em,.building-guide-panel .building-guide-tabs button small,.building-guide-panel .building-guide-detail-title p,.building-guide-panel .building-guide-tip p,.building-guide-panel .building-guide-stats small,.building-guide-panel .building-guide-progress small{color:var(--ui-ink-soft)}.building-guide-panel .building-guide-tabs button.is-active small{color:var(--ui-mint-text)}.building-guide-panel .building-guide-grid>button.is-locked:not(.is-selected){opacity:1}.building-guide-panel .building-guide-lock,.building-guide-panel .building-guide-progress p{color:var(--ui-amber-text)}.building-guide-panel .building-guide-detail{color:var(--ui-ink);background:#374d460e;border-color:#374d461a}.building-guide-panel .building-guide-stats>span{background:#ffffff8f;border:1px solid #374d4614}.building-guide-panel .building-guide-identity,.building-guide-panel .building-guide-identity strong{color:var(--ui-on-dark)}.building-guide-panel .building-guide-identity small{color:var(--ui-on-dark-soft)}.building-guide-panel .building-guide-build:disabled{color:var(--ui-ink-soft);background:#374d4614}.primary-button,.menu-primary,.building-guide-build{color:#183d32;background:linear-gradient(#83d5b7,#52b58f);box-shadow:0 8px 18px #30836533}.secondary-button{color:var(--ui-ink-soft);background:#ffffff9e;border-color:#374d4621}.secondary-button:hover{background:#fff}.town-management-fab>span,.ledger-fab>span,.building-guide-fab>span{background:var(--ui-mint-soft);color:var(--ui-mint)}.town-management-fab>i,.ledger-fab>i{border-color:var(--ui-paper-strong)}.game-toast{background:linear-gradient(145deg, #ffffffc7, transparent 45%), var(--ui-paper-strong);border-color:var(--glass-border);box-shadow:var(--shadow-float);color:var(--ui-ink);border-radius:18px}.game-toast small,.game-toast button{color:var(--ui-ink-faint)}.toast-icon{color:var(--ui-ink-soft);background:#374d4612}.game-toast .toast-action{background:var(--ui-mint-soft);color:#246f58;border-color:#318f703d}.game-toast .toast-action:hover,.game-toast .toast-action:focus-visible{color:#185f49;background:#cbeadc}.game-modal .settings-group{border-color:#374d461a}.game-modal .settings-group legend,.game-modal .range-setting small,.game-modal .toggle-setting small,.game-modal .modal-footer>span{color:var(--ui-ink-soft)}.game-modal .settings-policy-link{color:#226f58;background:#dff3e880;border-color:#318f7033}.game-modal .settings-policy-link:hover{background:#dff3e8e6}.game-modal .settings-policy-link small{color:var(--ui-ink-faint)}.game-modal .quality-options label{color:var(--ui-ink);background:#ffffff85;border-color:#374d461c}.game-modal .quality-options label:hover{background:#ffffffd1;border-color:#3ca98533}.game-modal .quality-options label.is-selected{background:var(--ui-mint-soft);border-color:#318f7057}.game-modal .quality-options small{color:var(--ui-ink-faint)}.game-modal .toggle-setting+.toggle-setting{border-color:#374d4614}.game-modal .toggle-setting>i{background:#374d4621;border-color:#374d461f}.game-modal .toggle-setting>i b{background:var(--ui-paper-strong);box-shadow:0 2px 5px #2d433b2e}.game-modal .toggle-setting>input:checked+i{background:var(--ui-mint)}.game-modal .menu-actions button{color:var(--ui-ink-soft);background:#ffffff85;border-color:#374d461a}.game-modal .menu-actions button:hover{color:var(--ui-ink);background:#ffffffd6;border-color:#3ca98533}.game-modal .menu-actions button>span{color:var(--ui-mint);background:#3ca9851c}.game-modal .menu-actions button>small,.game-modal .menu-version{color:var(--ui-ink-faint)}.game-modal .menu-version{border-color:#374d461c}.game-modal .menu-actions .menu-primary{background:var(--ui-mint-soft);color:#226f58;border-color:#318f7047}.game-modal .menu-actions .menu-primary>span{background:var(--ui-mint);color:#173e32}.game-modal .menu-actions .menu-primary:hover{color:#185f49;background:#cbeadc;border-color:#318f705c}.game-modal .menu-actions .menu-danger{color:#a34e3f;background:#f9e2dba8;border-color:#d96f5b33}.game-modal .menu-actions .menu-danger>span{background:var(--ui-coral-soft);color:var(--ui-coral)}.game-modal .menu-actions .menu-danger:hover{color:#913f32;background:#f5d5cc;border-color:#d96f5b57}.game-modal .cloud-setup-panel{color:var(--ui-ink-soft);background:#f8ebcbb3;border-color:#bd7a2d38}.game-modal .cloud-setup-panel p,.game-modal .cloud-setup-panel small,.game-modal .cloud-setup-panel li{color:var(--ui-ink-soft)}.game-modal .cloud-setup-panel code{color:var(--ui-amber-text);background:#ffffff9e}.game-modal .cloud-setup-panel .cloud-setup-close{color:var(--ui-amber-text);background:#ffffff9e;border-color:#bd7a2d40}.game-modal.confirm-modal>p{color:var(--ui-ink-soft)}.game-modal .confirm-icon{background:var(--ui-mint-soft);color:var(--ui-mint);border-color:#318f7038}.game-modal .confirm-icon.tone-danger{background:var(--ui-coral-soft);color:var(--ui-coral);border-color:#d96f5b40}.game-modal.town-name-modal input,.game-modal .nickname-form input,.public-town-browser .public-town-comments input,.public-town-browser .nickname-form input,.public-town-browser .public-town-report select,.public-town-browser .public-town-report textarea{color:var(--ui-ink);background:#ffffffb8;border-color:#374d4629}.game-modal.town-name-modal input:focus,.game-modal .nickname-form input:focus,.public-town-browser .public-town-comments input:focus,.public-town-browser .nickname-form input:focus,.public-town-browser .public-town-report select:focus,.public-town-browser .public-town-report textarea:focus{border-color:#318f7094;outline:none;box-shadow:0 0 0 3px #3ca98521}.game-modal .nickname-form label{color:var(--ui-ink-soft)}.game-modal .nickname-form>div button:not(.primary-button){color:var(--ui-ink-soft);background:#ffffffa3;border:1px solid #374d4621}.game-modal.town-name-modal input::placeholder,.game-modal .nickname-form input::placeholder,.public-town-browser .public-town-comments input::placeholder,.public-town-browser .public-town-report textarea::placeholder{color:var(--ui-ink-faint)}.public-town-browser .public-town-report option{color:var(--ui-ink);background:#fffdf7}.town-library.town-library{color:var(--ui-ink)}.town-library .town-library-head button,.town-library .town-library-confirm button{color:var(--ui-ink-soft);background:#ffffff9e;border-color:#374d4621}.town-library .town-library-tabs{background:#374d4611}.town-library .town-library-tabs button{color:var(--ui-ink-faint)}.town-library .town-library-tabs button.is-selected{background:var(--ui-mint-soft);color:#246f58}.town-library .town-library-confirm{background:#dff3e8b8;border-color:#318f7038}.town-library .town-library-confirm p,.town-library .town-library-confirm strong{color:var(--ui-ink)}.town-library .town-library-confirm button.is-primary{background:var(--ui-mint);border-color:var(--ui-mint);color:var(--ui-on-mint-text)}.town-library .town-library-empty{color:var(--ui-ink-soft)}.town-library .town-library-error{color:var(--ui-coral-text)}.town-library .town-card small,.town-library .town-card time{color:var(--ui-ink-faint)}.town-library .town-card-remove{color:var(--ui-ink-faint);background:#fffdf7e6;border-color:#374d4621}.town-library .town-card-publication{background:var(--ui-mint-soft);color:#246f58}.town-library .town-card-publication.is-published{background:var(--ui-coral-soft);color:#a34e3f}.game-modal.public-town-browser{color:var(--ui-ink)}.public-town-browser .public-town-head small,.public-town-browser .public-town-intro,.public-town-browser .public-town-empty,.public-town-browser .public-town-card-copy small,.public-town-browser .public-town-card-copy time,.public-town-browser .comment-head time,.public-town-browser .public-town-comments>p,.public-town-browser .nickname-form label{color:var(--ui-ink-soft)}.public-town-browser .public-town-author{color:var(--ui-mint-text)}.public-town-browser .public-town-card,.public-town-browser .public-town-comments li{background:#ffffff80;border-color:#374d461c}.public-town-browser .public-town-comments{border-color:#374d461c}.public-town-browser .public-town-comments li p{color:var(--ui-ink)}.public-town-browser .public-town-reactions button,.public-town-browser .public-town-actions button:not(.primary-button),.public-town-browser .public-town-report button:not(.primary-button),.public-town-browser .nickname-form button:not(.primary-button){color:var(--ui-ink-soft);background:#ffffffa3;border:1px solid #374d4621}.public-town-browser .public-town-reactions .heart-button.is-on{background:var(--ui-coral-soft);color:#a34e3f;border-color:#d96f5b4d}.public-town-browser .link-button,.public-town-browser .comment-actions button{color:#287d62}.public-town-browser .nickname-form,.game-modal .menu-actions .nickname-form{color:var(--ui-ink);background:#dff3e8a6;border-color:#318f7033}.public-town-browser .nickname-form .form-message,.game-modal .nickname-form .form-message{color:var(--ui-coral-text)}.public-town-browser .public-town-report{background:var(--ui-paper-strong);box-shadow:var(--shadow-float);color:var(--ui-ink);border-color:#374d4629}.public-town-browser .public-town-message.is-error{background:var(--ui-coral-soft);color:var(--ui-coral-text)}.public-town-browser .public-town-message.is-success{background:var(--ui-mint-soft);color:#246f58}@media (pointer:coarse){.glass-panel,.game-modal{-webkit-backdrop-filter:blur(11px)saturate(112%);backdrop-filter:blur(11px)saturate(112%)}.build-card:hover:not(:disabled),.town-card:hover,.building-guide-grid>button:hover{transform:none}}@media (height<=680px) and (width>=761px) and (pointer:fine),(height<=680px) and (width>=1181px){.left-hud-stack .mini-map-header{overflow:visible}.left-hud-stack .mini-map-header>span{flex:none;max-width:45%}.left-hud-stack .mini-map-header>span strong{text-overflow:clip;overflow:visible}.left-hud-stack .mini-map-header-actions{flex:auto;justify-content:flex-end}.left-hud-stack .mini-map-header-actions small{text-align:right;flex:auto}.left-hud-stack .build-controls-stack{max-height:calc(100dvh - 395px)}.left-hud-stack .build-dock-column{min-height:0}.left-hud-stack .build-dock-column .build-dock{flex-direction:column;max-height:calc(100dvh - 434px);display:flex;overflow:hidden}.left-hud-stack .build-category-tabs{overscroll-behavior:contain;flex:auto;min-height:0;max-height:none;overflow-y:auto}.left-hud-stack .build-demolish-toggle{flex:0 0 32px}.left-hud-stack .build-category-drawer{max-height:calc(100dvh - 395px);overflow:hidden}.left-hud-stack .build-category-drawer .build-dock-scroll{overscroll-behavior:contain;max-height:calc(100dvh - 409px);overflow-y:auto}}.build-category-drawer-header{justify-content:space-between;align-items:center;gap:8px;min-height:32px;padding:0 2px 6px;display:none}.build-category-drawer-title{color:var(--ui-ink,var(--ivory-200));align-items:center;gap:7px;min-width:0;font-size:14px;font-weight:780;display:flex}.build-category-drawer-title strong{overflow-wrap:anywhere}.build-category-close{color:var(--ui-ink-soft,#ffffffb3);background:#ffffff85;border:1px solid #374d461f;border-radius:8px;flex:none;align-items:center;gap:4px;min-height:30px;padding:0 8px;font-size:12px;font-weight:760;display:inline-flex}.build-category-close:hover,.build-category-close:focus-visible{background:var(--ui-mint-soft,#62c8a429);color:var(--ui-ink,var(--ivory-200))}@media (width<=760px),(width<=1180px) and (pointer:coarse){.game-shell:has(.build-category-drawer.is-open) .left-hud-stack .build-category-drawer{box-sizing:border-box;bottom:max(8px, calc(env(safe-area-inset-bottom) + 8px));max-height:min(68dvh,100dvh - 128px);right:max(9px, env(safe-area-inset-right));z-index:65;align-self:auto;width:auto;padding:8px;display:block;overflow:hidden;transform:none;left:max(9px, env(safe-area-inset-left))!important;position:fixed!important;top:auto!important}.game-shell:has(.build-category-drawer.is-open) .left-hud-stack .build-category-drawer-header{display:flex}.game-shell:has(.build-category-drawer.is-open) .left-hud-stack .build-dock-scroll{max-height:min(54dvh,100dvh - 190px)}.placement-feedback .placement-rotation,.placement-feedback .placement-action kbd{display:none}.placement-feedback .placement-action{white-space:nowrap;gap:5px;width:auto;min-width:0;padding-inline:8px}.placement-feedback .placement-action span{display:inline}.placement-direction-actions{flex:none;gap:5px}.placement-feedback{flex-wrap:wrap;align-items:center;gap:7px 8px;padding:7px 9px}.placement-feedback .placement-status-icon{flex:0 0 26px;width:26px;height:26px}.placement-feedback .placement-copy{flex:auto;min-width:0}.placement-feedback .placement-copy strong{font-size:13px}.placement-feedback .placement-actions{flex:1 0 100%;justify-content:flex-end;gap:6px}.placement-feedback .placement-action{height:32px}}.controls-guide-modal{flex-direction:column;width:min(780px,100%);display:flex}.controls-guide-tabs{flex:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 18px 0;display:grid}.controls-guide-tabs>button{color:var(--ui-ink-soft);text-align:left;background:#ffffff85;border:1px solid #374d461c;border-radius:13px;align-items:center;gap:10px;min-height:58px;padding:9px 13px;display:flex}.controls-guide-tabs>button>svg{color:var(--ui-ink-faint);flex:none}.controls-guide-tabs>button>span{flex-direction:column;min-width:0;display:flex}.controls-guide-tabs>button strong{color:inherit;font-size:14px}.controls-guide-tabs>button small{color:var(--ui-ink-faint);margin-top:2px;font-size:11px}.controls-guide-tabs>button:hover,.controls-guide-tabs>button:focus-visible{color:var(--ui-ink);background:#ffffffd1;border-color:#318f7040}.controls-guide-tabs>button.is-active{background:var(--ui-mint-soft);color:#216c55;border-color:#318f7057}.controls-guide-tabs>button.is-active>svg,.controls-guide-tabs>button.is-active small{color:var(--ui-mint-text)}.controls-guide-content{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:12px;min-height:0;padding:14px 18px 16px;display:flex}.controls-guide-summary{background:radial-gradient(circle at 92% 5%, #ffffffb8, transparent 38%), var(--ui-mint-soft);border:1px solid #318f7038;border-radius:15px;align-items:center;gap:13px;padding:13px 15px;display:flex}.controls-guide-summary>span{color:var(--ui-mint);background:#ffffffa8;border:1px solid #318f702b;border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.controls-guide-summary>div{flex-direction:column;min-width:0;display:flex}.controls-guide-summary small{color:var(--ui-mint-text);letter-spacing:.08em;font-size:10px;font-weight:850}.controls-guide-summary strong{color:var(--ui-ink);overflow-wrap:anywhere;word-break:keep-all;margin-top:2px;font-size:16px;line-height:1.45}.controls-guide-summary p{color:var(--ui-ink-soft);overflow-wrap:anywhere;word-break:keep-all;margin:3px 0 0;font-size:11px;line-height:1.55}.controls-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.controls-guide-section{background:#ffffff80;border:1px solid #374d461a;border-radius:15px;min-width:0;padding:13px}.controls-guide-section>header{align-items:center;gap:9px;margin-bottom:9px;display:flex}.controls-guide-section>header>span{background:var(--ui-coral-soft);color:var(--ui-coral);border-radius:9px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.controls-guide-section>header>div{flex-direction:column;min-width:0;display:flex}.controls-guide-section>header small{color:var(--ui-coral-text);letter-spacing:.09em;font-size:9px;font-weight:850}.controls-guide-section>header strong{color:var(--ui-ink);margin-top:1px;font-size:14px}.controls-guide-section ul{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.controls-guide-section li{border-top:1px dashed #374d461a;grid-template-columns:minmax(96px,.78fr) minmax(0,1.22fr);align-items:start;gap:10px;padding:9px 0;display:grid}.controls-guide-section li:first-child{border-top:0;padding-top:3px}.controls-guide-section li:last-child{padding-bottom:2px}.controls-guide-gesture{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.controls-guide-gesture kbd{background:var(--ui-paper-strong);color:var(--ui-ink-soft);overflow-wrap:anywhere;word-break:keep-all;border:1px solid #374d4629;border-bottom-color:#374d4645;border-radius:7px;max-width:100%;padding:5px 7px;font-family:inherit;font-size:10px;font-weight:820;line-height:1.2;box-shadow:0 2px #374d4614}.controls-guide-section li>div:last-child{min-width:0}.controls-guide-section li strong{color:var(--ui-ink);overflow-wrap:anywhere;word-break:keep-all;font-size:12px;line-height:1.4;display:block}.controls-guide-section li p{color:var(--ui-ink-soft);overflow-wrap:anywhere;word-break:keep-all;margin:3px 0 0;font-size:10.5px;line-height:1.52}.controls-guide-note{color:var(--ui-amber-text);background:#f8ebcbad;border:1px solid #bd7a2d33;border-radius:13px;align-items:flex-start;gap:9px;padding:11px 13px;display:flex}.controls-guide-note>svg{flex:none;margin-top:1px}.controls-guide-note strong{font-size:12px;display:block}.controls-guide-note p{color:var(--ui-ink-soft);overflow-wrap:anywhere;word-break:keep-all;margin:3px 0 0;font-size:11px;line-height:1.5}.controls-guide-footer{flex:none}@media (width<=680px){.controls-guide-modal{max-height:min(92dvh,780px)}.controls-guide-tabs{padding:10px 12px 0}.controls-guide-tabs>button{min-height:52px;padding:7px 10px}.controls-guide-content{gap:10px;padding:11px 12px 14px}.controls-guide-grid{grid-template-columns:1fr}.controls-guide-summary{align-items:flex-start;padding:11px 12px}.controls-guide-summary>span{width:38px;height:38px}.controls-guide-summary strong{font-size:14px}.controls-guide-footer{padding-bottom:max(12px, calc(env(safe-area-inset-bottom) + 10px))}}@media (width<=420px){.controls-guide-tabs>button{gap:7px}.controls-guide-tabs>button>svg{display:none}.controls-guide-section li{grid-template-columns:1fr;gap:7px}}@media (width<=760px){.game-shell[data-ground-mode=true] .mini-map,.game-shell[data-ground-mode=true] .ground-camera-guide,.game-shell[data-ground-mode=true] .ledger-fab,.game-shell[data-ground-mode=true] .sandbox-badge{display:none}.game-shell[data-ground-mode=true] .camera-mode-toolbar{top:auto;bottom:max(10px, env(safe-area-inset-bottom));flex-direction:row;justify-content:center;width:auto;left:12px;right:12px;transform:none}.game-shell[data-ground-mode=true] .camera-mode-toolbar>div{flex-direction:row;width:100%}.game-shell[data-ground-mode=true] .camera-mode-toolbar button{justify-content:center;min-height:44px}.game-shell[data-ground-mode=true] .camera-mode-title,.game-shell[data-ground-mode=true] .camera-mode-toolbar>kbd{display:none}.game-shell[data-ground-mode=true] .ground-tour-panel{width:auto;top:128px;left:12px;right:12px}}@media (height<=520px){.game-shell[data-ground-mode=true] .mini-map,.game-shell[data-ground-mode=true] .ground-camera-guide,.game-shell[data-ground-mode=true] .metric-strip,.game-shell[data-ground-mode=true] .sandbox-badge{display:none}.game-shell[data-ground-mode=true] .ground-tour-panel{width:250px;top:85px;left:50%;right:auto;transform:translate(-50%)}.game-shell[data-ground-mode=true] .ground-tour-panel p{margin:5px 0;font-size:10px}}.ground-tour-panel>.ground-tour-destinations{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.ground-tour-panel .ground-tour-destinations button{min-width:0;padding:9px 10px;font-size:12px}.street-preview{position:fixed;inset:0}.street-preview-toolbar{z-index:6;color:var(--ivory-100);border-radius:16px;align-items:center;gap:16px;padding:12px 16px;font-size:13px;display:flex;position:absolute;bottom:18px;left:18px;right:18px}.street-preview-toolbar>span{opacity:.7;margin-right:auto}.street-preview-toolbar button,.street-preview-toolbar select{color:#f7f1df;background:#344c45;border-radius:8px;padding:8px 12px}.street-preview-toolbar button[aria-pressed=true]{background:#537e69}.street-preview-toolbar [role=group]{gap:4px;display:flex}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}.build-category-drawer{flex-direction:column;display:flex}.build-category-drawer[hidden]{display:none}.build-category-panel{flex:1;min-height:0}.build-drawer-header{flex:none}.build-drawer-header strong span{opacity:.65;margin-left:6px;font-size:11px}.build-search-row{flex:none;gap:8px;padding:4px 12px 12px;display:flex}.build-search-row input{color:#294a40;-webkit-user-select:text;user-select:text;background:#fffef8;border:1px solid #c6d6cb;border-radius:8px;flex:1;min-width:0;height:38px;padding:0 11px;font-size:13px}.build-search-row input::placeholder{color:#70867b}.build-search-row button{color:#385c4e;background:#f1f6ee;border:1px solid #c6d6cb;border-radius:8px;flex-shrink:0;padding:0 10px;font-size:11px}.build-search-row button[aria-pressed=true]{background:#bce4ca;border-color:#83b797}.build-empty{color:#526b5f;padding:20px;font-size:13px;line-height:1.7}.street-preview-toolbar{flex-wrap:wrap}.street-preview-toolbar label{align-items:center;gap:5px;display:flex}.street-preview-toolbar select{max-width:220px}@media (width<=920px){.build-search-row{padding:4px 8px 8px}}.app-exit-button{flex:none;margin:8px 24px 0}.ground-tour-destination-picker{align-items:center;gap:8px;margin-top:8px;display:flex}.ground-tour-destination-picker select{color:#294a40;background:#fffef8;border-radius:10px;flex:1;min-width:0;min-height:44px;padding:6px}.ground-tour-panel p,.ground-tour-panel>small{color:#4d665b}.ground-tour-destination-picker button{flex:none;width:auto}@media (width<=760px),(width<=1180px) and (pointer:coarse){.game-shell{--touch-size:44px;--mobile-hud-below:calc(max(9px, env(safe-area-inset-top)) + 125px)}.game-shell .top-hud{grid-template-rows:56px 54px;grid-template-columns:132px minmax(0,1fr);gap:7px 6px;height:117px;display:grid}.game-shell .top-hud>*{box-sizing:border-box;min-width:0;height:auto}.game-shell .brand-cluster{grid-area:1/1;width:100%;max-width:none;height:56px;position:static}.game-shell .time-cluster{grid-area:1/2;width:100%;height:56px;position:static}.game-shell .metric-strip{grid-area:2/1/auto/-1;width:100%;height:54px;position:static}.game-shell .left-hud-stack{top:var(--mobile-hud-below)}.game-shell .modal-layer{top:var(--game-viewport-top,0px);height:var(--game-viewport-height,100dvh);box-sizing:border-box;bottom:auto}.game-shell .game-modal{max-height:calc(var(--game-viewport-height,100dvh) - 16px)}.game-shell .town-name-modal{padding-block:14px;overflow-y:auto}.game-shell .town-name-modal .confirm-icon{width:40px;height:40px;margin-bottom:8px}.game-shell input,.game-shell select{font-size:16px}.game-shell .brand-cluster .icon-button,.game-shell .speed-controls button,.game-shell .mini-map-toggle,.game-shell .camera-orbit-button,.game-shell .build-category-close,.game-shell .build-search-row button{min-width:var(--touch-size);min-height:var(--touch-size)}.game-shell .modal-header .icon-button,.game-shell .confirm-actions button{min-width:44px;min-height:44px}.game-shell .speed-controls{gap:2px;padding:0}.game-shell .time-cluster{gap:2px;padding:4px}.game-shell .time-copy{gap:3px;margin-right:1px}.game-shell .time-copy strong{font-size:14px}.game-shell .time-copy .daylight-icon{width:16px}.game-shell .brand-cluster{gap:4px;width:100%;min-width:0;padding:4px}.game-shell .brand-cluster .brand-mark{display:none}.game-shell .brand-copy strong{font-size:12px}.game-shell .mini-map{width:120px}.game-shell .mini-map-header{padding:0 4px}.game-shell .mini-map-body{width:100%}.game-shell .mini-map canvas{max-height:84px}.game-shell .town-management-panel .town-growth-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;margin:0;display:grid}.game-shell .town-management-panel .town-growth-actions button{min-width:0;height:auto;min-height:64px;padding:9px}.game-shell .town-management-panel .town-growth-actions button span{justify-content:center;font-size:13px}.game-shell .town-management-panel .town-growth-actions button small{white-space:normal;margin-top:4px;font-size:11px;line-height:1.4;display:block}.game-shell .build-dock-toggle{min-height:44px}.game-shell .left-hud-stack .build-dock-wrap.is-browsing{inset:auto max(9px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(9px, env(safe-area-inset-left));width:auto;height:min(70dvh, calc(var(--game-viewport-height,100dvh) - 82px));max-height:calc(var(--game-viewport-height,100dvh) - 16px);z-index:90;background:#f5f6eb;border:1px solid #dbe4d5;border-radius:22px;flex-direction:column;padding:6px;display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 35px #21382b33}.game-shell .build-dock-wrap.is-browsing>.build-dock-toggle{display:none!important}.game-shell .left-hud-stack .build-dock-wrap.is-browsing{bottom:max(8px, calc(var(--game-viewport-bottom,0px) + env(safe-area-inset-bottom)))}.game-shell .build-dock-wrap.is-browsing .build-dock-column{flex:none;width:100%;max-height:none;display:block}.game-shell .build-dock-wrap.is-browsing .dock-label{display:none}.game-shell .build-dock-wrap.is-browsing .build-dock{width:100%;box-shadow:none;background:0 0;border:0;max-height:none;padding:0;display:flex}.game-shell .build-dock-wrap.is-browsing .build-category-tabs{flex:1;gap:4px;width:auto;min-width:0;height:48px;max-height:none;padding:2px;display:flex;overflow:auto hidden}.game-shell .build-dock-wrap.is-browsing .build-category-tab{flex-direction:row;flex:none;width:auto;min-width:58px;height:44px;padding:0 10px;font-size:12px}.game-shell .build-dock-wrap.is-browsing .build-demolish-toggle{flex:none;width:auto;height:44px;margin:2px;padding:0 10px}.game-shell .build-dock-wrap.is-browsing .build-demolish-toggle kbd{display:none}.game-shell:has(.build-category-drawer.is-open) .left-hud-stack .build-category-drawer{width:100%;min-height:0;max-height:none;box-shadow:none;background:0 0;border:0;flex-direction:column;flex:auto;padding:0;display:flex;transform:none;position:static!important;inset:auto!important}.game-shell:has(.build-category-drawer.is-open) .left-hud-stack .build-dock-scroll{overscroll-behavior:contain;flex:auto;align-content:start;min-height:0;max-height:none;padding:3px 2px 10px;overflow-y:auto}.game-shell .build-drawer-header{min-height:44px;padding:0 4px}.game-shell .build-search-row{padding:4px 2px 8px}.game-shell .build-search-row input{height:44px}.game-shell .build-card{min-height:94px}.game-shell .camera-mode-toolbar,.game-shell[data-ground-mode=true] .camera-mode-toolbar{top:var(--mobile-hud-below);right:max(9px, env(safe-area-inset-right));z-index:60;width:auto;padding:4px;display:flex;position:absolute;bottom:auto;left:auto}.game-shell .camera-mode-toolbar>span,.game-shell .camera-mode-toolbar>kbd{display:none}.game-shell .camera-mode-toolbar>div{flex-direction:row;width:auto;display:flex}.game-shell .camera-mode-toolbar button{min-width:60px;min-height:44px;padding:0 9px}.game-shell .sandbox-badge,.game-shell[data-placement-active=true] .camera-mode-toolbar{display:none}.game-shell:has(.build-category-drawer.is-open) .camera-mode-toolbar{display:none}.game-shell .placement-feedback-anchor{top:auto;left:9px;right:9px;bottom:max(10px, env(safe-area-inset-bottom));z-index:80;width:auto;transform:none}.game-shell .placement-feedback .placement-action{height:48px;min-height:48px;padding-inline:12px}.game-shell .placement-feedback .placement-actions{justify-content:stretch}.game-shell .placement-feedback .placement-action{flex:1;justify-content:center}.game-shell[data-placement-active=true] .camera-orbit-pad{bottom:132px}.game-shell[data-placement-active=true] .ledger-fab,.game-shell[data-placement-active=true] .town-management-fab,.game-shell[data-placement-active=true] .building-guide-fab{display:none}.game-shell[data-ground-mode=true]{--mobile-hud-below:calc(max(9px, env(safe-area-inset-top)) + 64px)}.game-shell[data-ground-mode=true] .top-hud{grid-template-rows:56px;height:56px}.game-shell[data-ground-mode=true] .metric-strip,.game-shell[data-ground-mode=true] .left-hud-stack,.game-shell[data-ground-mode=true] .ledger-fab,.game-shell[data-ground-mode=true] .town-management-fab,.game-shell[data-ground-mode=true] .building-guide-fab{display:none}.game-shell[data-ground-mode=true] .ground-tour-panel{top:calc(var(--mobile-hud-below) + 64px);left:auto;right:max(9px, env(safe-area-inset-right));width:min(260px,100% - 18px);max-height:calc(var(--game-viewport-height,100dvh) - 300px);padding:10px;overflow-y:auto;transform:none}.game-shell .ground-tour-panel>small{display:none}.game-shell .ground-tour-panel button{min-height:44px}.game-shell .ground-tour-panel kbd{display:none}.ground-touch-joystick{bottom:max(30px, calc(env(safe-area-inset-bottom) + 24px));left:max(14px, env(safe-area-inset-left));width:132px;height:132px}.ground-touch-look{bottom:max(82px, calc(env(safe-area-inset-bottom) + 76px));right:max(14px, env(safe-area-inset-right));width:112px;height:112px}.ground-touch-brake,.ground-touch-jump{bottom:max(18px, env(safe-area-inset-bottom));right:max(12px, env(safe-area-inset-right));pointer-events:auto;touch-action:none;color:#fff2dd;background:#684536dc;border:1px solid #d2a87a;border-radius:12px;min-width:92px;min-height:48px;position:absolute}}@media (width<=390px){.game-shell .top-hud{grid-template-columns:118px minmax(0,1fr)}.game-shell .brand-copy strong{letter-spacing:.075em;font-size:11px}.game-shell .brand-copy span{letter-spacing:.24em;font-size:10px}.game-shell .current-town-name{display:none}.ground-touch-joystick{width:122px;height:122px}}@media (height<=500px) and (width<=1180px){.game-shell[data-mobile-ui=true] .top-hud{height:58px}.game-shell[data-mobile-ui=true] .time-cluster{justify-self:end;width:max-content}.game-shell[data-mobile-ui=true] .metric-strip{display:none}.game-shell[data-mobile-ui=true] .left-hud-stack{top:72px}.game-shell[data-mobile-ui=true] .camera-mode-toolbar,.game-shell[data-mobile-ui=true][data-ground-mode=true] .camera-mode-toolbar{top:72px;right:9px}.game-shell[data-mobile-ui=true][data-ground-mode=true] .ground-tour-panel{width:min(300px,100% - 340px);max-height:calc(var(--game-viewport-height,100dvh) - 84px);top:72px;left:50%;right:auto;transform:translate(-50%)}.game-shell[data-mobile-ui=true] .ground-tour-panel p{margin:4px 0}.game-shell[data-mobile-ui=true] .ground-touch-look{bottom:70px}.game-shell[data-mobile-ui=true] .left-hud-stack .build-dock-wrap.is-browsing{height:calc(var(--game-viewport-height,100dvh) - 76px);width:min(460px,100vw - 24px);left:auto}.game-shell[data-mobile-ui=true] .build-card{min-height:86px}}
