@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-cyrillic-wght-normal-DveCct9I.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-latin-wght-normal-CnQIisVs.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Russo One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/russo-one-cyrillic-400-normal-BXZIn0h3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Russo One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/russo-one-latin-400-normal-BfOuQF9V.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light;--bg: #f1ebdd;--surface: #faf6ec;--surface-2: #efe6d2;--border: #d9cdb4;--text: #3a332a;--text-dim: #8b7f6a;--accent: #b07607;--accent-strong: #8f5f03;--danger: #bf4a30;--fraction-mazut: #7a6450;--fraction-diesel: #c9932e;--fraction-gasoline: #8aa65a;--fraction-kerosene: #6d94bd;--border-strong: #b9a77e;--ink: #2a241c;--ok: #4e7d3a;--ok-soft: #6f9e57;--gold: #d9c37a;--danger-soft: #f3d9cd;--sand: #efd794;--shore: #cdbf9d;--road: #8a6f4d;--night: #2b2416;--night-2: #4a3a1c;--paper-light: #f4e8c8;--on-accent: #fff;--surface-warm: #f7ecd2;--road-surface: #d9b67c;--lamp: #ffe9a8;--lamp-red: #ff9f7a;--radar: #2f3a2a;--crude-hi: #5a4c3d;--beacon: #ff5a4a;--flood: #eef5ff;--status-ok: #8dff9c;--flame: #ff9a3c;--font-ui: "Rubik", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Russo One", var(--font-ui);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--radius-s: 4px;--radius-m: 8px;--radius-l: 14px;--border-w: 2px;--shadow-1: 0 2px 0 rgba(58, 51, 42, .16);--shadow-2: 0 3px 0 rgba(58, 51, 42, .16), 0 8px 16px -8px rgba(58, 51, 42, .3);--shadow-3: 0 4px 20px rgba(58, 51, 42, .25);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-back: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .12s;--dur-med: .24s;--dur-slow: .48s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html,body{height:100%}#root{height:100%;height:100dvh}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overscroll-behavior:none;user-select:none;-webkit-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}:focus:not(:focus-visible){outline:none}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{--btn-border: var(--border);--btn-drop: rgba(42, 36, 28, .22);font:inherit;color:inherit;background:var(--surface-2);border:none;border-radius:0;padding:8px 12px;margin:2px;cursor:pointer;box-shadow:-2px 0 0 0 var(--btn-border),2px 0 0 0 var(--btn-border),0 -2px 0 0 var(--btn-border),0 2px 0 0 var(--btn-border),0 4px 0 0 var(--btn-drop)}button:active{transform:translateY(2px);box-shadow:-2px 0 0 0 var(--btn-border),2px 0 0 0 var(--btn-border),0 -2px 0 0 var(--btn-border),0 2px 0 0 var(--btn-border)}button:disabled{cursor:default}button:disabled:active{transform:none;box-shadow:-2px 0 0 0 var(--btn-border),2px 0 0 0 var(--btn-border),0 -2px 0 0 var(--btn-border),0 2px 0 0 var(--btn-border),0 4px 0 0 var(--btn-drop)}.btn--accent{--btn-border: var(--accent);color:var(--accent-strong)}.btn--danger{--btn-border: var(--danger);color:var(--danger)}.pbar{display:flex;height:12px;background:var(--bg);border:var(--border-w) solid var(--border);overflow:hidden}.pbar__fill,.pbar__seg{height:100%;transition:width .3s}.pbar__fill{background:var(--accent)}.refineprogress{display:flex;align-items:center;gap:8px;margin:6px 0}.refineprogress__label{font-size:11px;color:var(--text-dim);white-space:nowrap}.refineprogress__bar{flex:1;height:8px}.refineprogress__fill{transition:width 1s linear}.refineprogress__cycle{width:100%;transform-origin:left;animation:refine-cycle 1s linear infinite}.refineprogress--idle{opacity:.45}.refineprogress--idle .refineprogress__cycle{animation-play-state:paused}@keyframes refine-cycle{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes badge-pop{0%{transform:scale(.4)}to{transform:scale(1)}}.icon{display:inline-block;vertical-align:-.19em;flex-shrink:0}.app{display:flex;flex-direction:column;height:100%;max-width:640px;margin:0 auto}.topbar{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-3);padding-top:calc(var(--space-2) + env(safe-area-inset-top));background:var(--surface);border-bottom:var(--border-w) solid var(--border);box-shadow:0 2px #3a332a0f}.topbar__money{display:flex;align-items:center;gap:var(--space-2);min-width:0}.topbar__coin{filter:drop-shadow(0 2px 0 rgba(58,51,42,.2))}.topbar__moneycol{display:flex;flex-direction:column;min-width:0;line-height:1.1}.topbar__moneyvalue{font-family:var(--font-display);font-size:24px;color:var(--accent-strong);font-variant-numeric:tabular-nums;white-space:nowrap}.topbar__income{font-size:12px;font-weight:600;color:var(--ok);font-variant-numeric:tabular-nums}.topbar__income--idle{color:var(--text-dim);font-weight:400}.topbar__chips{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.chip{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px 0 6px;border-radius:999px;background:var(--surface-2);border:var(--border-w) solid var(--border);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.chip--accent{border-color:var(--accent);color:var(--accent-strong)}.chip--ok{border-color:var(--ok-soft);color:var(--ok)}.chip--danger{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.chip--pulse{animation:chip-pulse 1.4s var(--ease-out) infinite}@keyframes chip-pulse{0%,to{transform:scale(1)}15%{transform:scale(1.08)}30%{transform:scale(1)}}.card{background:var(--surface);border:var(--border-w) solid var(--border);border-radius:var(--radius-l);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-2)}.card--inset{background:var(--surface-2);box-shadow:inset 0 2px #3a332a14}.card--highlight{border-color:var(--accent);background:linear-gradient(180deg,var(--surface) 0%,var(--surface-warm) 100%)}.card__head{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.card__title{font-size:16px;font-weight:700}.card__aside{margin-left:auto}.sectiontitle{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-5) 0 var(--space-2)}.sectiontitle__text{font-size:12px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.sectiontitle__rule{flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--border) 0 6px,transparent 6px 10px)}h1,h2{font-family:var(--font-display);font-weight:400;letter-spacing:.01em}.screen{flex:1;overflow-y:auto;padding:16px}.screen--stub{display:flex;align-items:center;justify-content:center;color:var(--text-dim);text-align:center}.mapscreen{padding:0;position:relative}.region{position:relative;isolation:isolate;background-color:var(--sand);background-size:256px 256px;image-rendering:pixelated;overflow:hidden}.region__coast{position:absolute;top:0;right:0;bottom:0;left:0;filter:drop-shadow(-3px 0 0 var(--shore));pointer-events:none}.region__water{position:absolute;top:0;right:0;bottom:0;left:0;background-size:256px 256px}.region__foam{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper-light);opacity:.8;animation:foam 4.5s ease-in-out infinite alternate}@keyframes foam{0%{transform:translate(-4px)}to{transform:translate(-9px)}}.region__sky{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;mix-blend-mode:multiply;transition:background 60s linear}.roadlayer{position:absolute;top:0;left:0;pointer-events:none;image-rendering:auto}.road,.pipe{fill:none;stroke-linecap:round;stroke-linejoin:round}.road--shoulder{stroke:var(--road);stroke-opacity:.45;stroke-width:26}.road--surface{stroke:var(--road-surface);stroke-width:20}.road--dash{stroke:var(--surface);stroke-opacity:.75;stroke-width:2;stroke-dasharray:9 11}.pipe--outer{stroke:var(--text-dim);stroke-width:6;stroke-linecap:butt}.pipe--inner{stroke:var(--border);stroke-width:2;stroke-dasharray:16 4;stroke-linecap:butt}.depot{position:absolute;display:flex;flex-direction:column;align-items:center;pointer-events:none;filter:drop-shadow(0 3px 0 rgba(58,51,42,.18))}.depot__sign,.diorama__sign{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--surface);background:var(--road);padding:2px 6px;border-radius:var(--radius-s);box-shadow:0 2px #2a241c59;white-space:nowrap}.traffic{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.truck,.oilpulse{position:absolute;left:0;top:0;offset-anchor:center;offset-rotate:0deg;animation-name:drive;animation-timing-function:linear}.truck{animation-fill-mode:forwards;filter:drop-shadow(0 2px 0 rgba(42,36,28,.3))}.oilpulse{z-index:4;width:4px;height:4px;border-radius:1px;background:color-mix(in srgb,var(--ink),var(--lamp) calc(var(--night-k, 0) * 100%));box-shadow:0 0 calc(var(--night-k, 0) * 6px) calc(var(--night-k, 0) * 1px) #ffbe5ae6;animation-iteration-count:infinite}@keyframes drive{0%{offset-distance:0%}to{offset-distance:100%}}.zone{position:absolute;width:168px;height:128px;margin:0;padding:0;background:none;box-shadow:none;border-radius:0}.zone:active{transform:none;box-shadow:none}.zone--confirming{z-index:5}.zone--offscreen *{animation-play-state:paused!important}.diorama,.forsale{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.diorama__pad,.forsale__pad{position:absolute;left:0;top:0}.diorama__pad ellipse{fill:var(--road);fill-opacity:.22;stroke:var(--road);stroke-opacity:.5;stroke-width:2;stroke-dasharray:5 4;transition:stroke var(--dur-med)}.diorama--selected .diorama__pad ellipse{stroke:var(--accent);stroke-opacity:1;stroke-width:3;stroke-dasharray:none;fill-opacity:.3}.zone:active .diorama__pad ellipse{fill-opacity:.34}.diorama__obj{position:absolute;display:block;line-height:0;filter:drop-shadow(0 3px 0 rgba(42,36,28,.22))}.diorama__refinery--idle .icon{filter:saturate(.4) brightness(.92)}.diorama__aa--broken .icon{filter:grayscale(.8) brightness(.8)}.diorama__barrel{animation:barrel-spawn .15s var(--ease-out)}.diorama__sign{position:absolute;left:50%;bottom:0;transform:translate(-50%);line-height:1.3}.diorama__tanks{position:absolute;display:flex;gap:3px}.tank{position:relative;width:12px;height:20px;border:2px solid var(--text);border-radius:5px 5px 2px 2px;background:var(--surface);overflow:hidden}.tank__fill{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:bottom;transition:transform 1s var(--ease-out)}.diorama__smoke{position:absolute;width:12px;height:12px;border-radius:50%;background:color-mix(in srgb,var(--surface),var(--ink) calc(var(--night-k, 0) * 75%));opacity:0;animation:smoke 3s ease-out infinite}.diorama__smoke--2{animation-delay:1s}.diorama__smoke--3{animation-delay:2s}.diorama__smoke--dark{background:var(--text-dim);animation-duration:2.2s}@keyframes smoke{0%{transform:translate(0) scale(.5);opacity:0}20%{opacity:.8}to{transform:translate(8px,-30px) scale(1.8);opacity:0}}.nightfx{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;opacity:var(--night-k, 0);mix-blend-mode:screen}.glow{position:absolute;border-radius:50%}.glow--pad{background:radial-gradient(closest-side,rgba(255,196,120,.55),rgba(255,170,90,.2) 60%,transparent)}.glow--warm{background:radial-gradient(closest-side,rgba(255,150,70,.6),rgba(255,120,50,.18) 60%,transparent)}.glow--flare{background:radial-gradient(closest-side,rgba(255,170,60,.95),rgba(255,110,40,.35) 45%,transparent);animation:flicker .18s steps(2) infinite alternate}.glow--cone{border-radius:0;clip-path:polygon(44% 0,56% 0,100% 100%,0 100%);background:linear-gradient(180deg,#ffecb480,#ffdc960d)}.glow--street{background:radial-gradient(closest-side,rgba(255,214,140,.5),rgba(255,190,110,.15) 60%,transparent)}.glow--flood{background:radial-gradient(closest-side,rgba(225,238,255,.6),rgba(200,220,255,.18) 60%,transparent)}.lamp{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--lamp);box-shadow:0 0 4px 2px #ffdc8ce6}.lamp--beacon{width:5px;height:5px;background:var(--beacon);box-shadow:0 0 4px 2px #ff503cf2,0 0 14px 6px #ff3c2873;animation:beacon 1.6s steps(1) infinite}.lamp--white{width:3px;height:3px;background:var(--flood);box-shadow:0 0 3px 1px #ebf5ffe6;animation:beacon 2.4s steps(1) infinite .4s}.lamp--late{animation-delay:1.2s}.lamp--work{width:6px;height:4px;border-radius:1px;box-shadow:0 0 5px 2px #ffe6aa,0 0 16px 6px #ffdc9666}.lamp--status{width:3px;height:3px;background:var(--status-ok);box-shadow:0 0 4px 1px #78ff8ccc}.lamp--dead{background:var(--beacon);box-shadow:0 0 4px 1px #ff503ce6;animation:beacon .8s steps(1) infinite}.lamp--street{width:6px;height:4px;border-radius:2px;box-shadow:0 0 5px 2px #ffdc96,0 0 20px 8px #ffc87859}.window{position:absolute;width:3px;height:3px;background:var(--lamp);box-shadow:0 0 3px 1px #ffd278cc}.window--flicker{animation:window-flicker 5s steps(1) infinite}.glint{position:absolute;width:10px;height:2px;background:var(--flood);opacity:.2;animation:glint-shimmer 3s ease-in-out infinite}@keyframes beacon{50%{opacity:.15}}@keyframes window-flicker{0%,86%{opacity:1}88%{opacity:.3}90%{opacity:1}93%{opacity:.2}}@keyframes glint-shimmer{50%{opacity:.9;transform:scaleX(1.6)}}@keyframes flicker{to{opacity:.75;transform:scale(.92)}}.flare{position:absolute;z-index:4;width:8px;height:14px;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;background:radial-gradient(ellipse at 50% 75%,var(--flood) 0 18%,var(--lamp) 32%,var(--flame) 55%,rgba(255,90,40,0) 80%);transform-origin:50% 100%;animation:flame .3s ease-in-out infinite alternate;pointer-events:none}@keyframes flame{0%{transform:scaleY(.85) skew(-4deg)}to{transform:scale(.9,1.15) skew(5deg)}}.headlights{position:absolute;left:0;top:0;z-index:4;width:84px;height:40px;offset-anchor:10% 50%;offset-rotate:auto;animation-name:drive;animation-timing-function:linear;animation-fill-mode:forwards;clip-path:polygon(0 42%,100% 0,100% 100%,0 58%);background:radial-gradient(ellipse at 0% 50%,rgba(255,244,200,.95),rgba(255,230,160,.3) 45%,transparent 75%);opacity:var(--night-k, 0);mix-blend-mode:screen;pointer-events:none}.lamppost{fill:var(--text);opacity:.75}.diorama__bubbles{position:absolute;z-index:5;top:-6px;right:4px;display:flex;gap:4px}.bubble{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:700;padding:2px 6px 2px 4px;border-radius:999px;background:var(--surface);border:2px solid var(--accent);color:var(--accent-strong);box-shadow:var(--shadow-1);animation:badge-pop .35s var(--ease-back),bob 1.8s ease-in-out .35s infinite}.bubble--danger{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.pj-dark{fill:var(--text)}.pj-metal{fill:var(--text-dim)}.pj-frame{fill:var(--road)}.pj-head{fill:var(--accent)}.pj-weight{fill:var(--danger)}.pj-beam,.pj-crank{transform-box:view-box}.pj-beam{transform-origin:20.5px 9.5px}.pj-crank{transform-origin:30px 21px}.pumpjack--running .pj-beam{animation:pj-nod calc(var(--pj-period) / 2) ease-in-out infinite alternate}.pumpjack--running .pj-crank{animation:pj-turn var(--pj-period) linear infinite}@keyframes pj-nod{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)}}@keyframes pj-turn{to{transform:rotate(360deg)}}.forsale__pad ellipse{fill:none;stroke:var(--road);stroke-opacity:.45;stroke-width:2;stroke-dasharray:3 6;transition:stroke var(--dur-med)}.forsale__pad rect{fill:var(--road);opacity:.8}.forsale__post{position:absolute;left:82px;top:52px;width:4px;height:34px;background:var(--road);box-shadow:1px 2px #2a241c40}.forsale__sign{position:absolute;left:50%;top:20px;transform:translate(-50%) rotate(-2deg);display:flex;flex-direction:column;align-items:center;min-width:96px;padding:4px 10px 5px;background:var(--surface);border:2px solid var(--border-strong);border-radius:var(--radius-s);box-shadow:0 3px #2a241c33;white-space:nowrap;transition:border-color var(--dur-med),transform var(--dur-med) var(--ease-back)}.forsale__head{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.forsale__price{font-family:var(--font-display);font-size:15px;color:var(--text-dim)}.forsale__confirm{font-size:10px;color:var(--accent-strong)}.forsale--affordable .forsale__sign{border-color:var(--accent);animation:sign-sway 3s ease-in-out infinite}.forsale--affordable .forsale__price{color:var(--accent-strong)}.forsale--confirming .forsale__sign{border-color:var(--accent);background:var(--surface-warm);transform:translate(-50%) rotate(0) scale(1.08);animation:none}.forsale--confirming .forsale__pad ellipse{stroke:var(--accent);stroke-opacity:1}@keyframes sign-sway{0%,to{transform:translate(-50%) rotate(-2deg)}50%{transform:translate(-50%) rotate(2deg)}}.poolbar--sticky{position:sticky;top:0;z-index:10;margin:0;padding:var(--space-2) var(--space-3);background:var(--surface);border-bottom:var(--border-w) solid var(--border);box-shadow:0 2px #3a332a0f}.poolbar__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.poolbar--sticky .poolbar__label{display:flex;justify-content:space-between;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.poolbar--sticky .poolbar__value{color:var(--text);letter-spacing:0}.poolbar--sticky .poolbar__bar{flex:none;height:12px;border-radius:6px}.poolbar--sticky .poolbar__bar .pbar__fill{background:linear-gradient(180deg,var(--crude-hi),var(--ink))}.poolbar__upgrade{display:inline-flex;align-items:center;gap:2px;font-size:13px;font-weight:600;padding:6px 10px;min-height:36px;white-space:nowrap}.plotdetail{position:fixed;left:50%;transform:translate(-50%);bottom:calc(52px + env(safe-area-inset-bottom));width:calc(100% - 16px);max-width:624px;max-height:52vh;overflow-y:auto;z-index:40;box-shadow:0 -4px 20px #3a332a40;animation:sheet-up .15s ease-out}.plotdetail__actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.plotdetail__close{width:36px;height:36px;padding:0;font-size:20px;line-height:1}.plotdetail__buildrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;font-size:12px;color:var(--text-dim)}.plotcard{background:var(--surface);border:var(--border-w) solid var(--border);border-radius:var(--radius-l);padding:var(--space-3) var(--space-4) var(--space-4)}.plotcard__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.plotcard__heading{display:flex;flex-direction:column;gap:4px;min-width:0}.plotcard__title{font-size:20px;line-height:1.1}.plotcard__chips{display:flex;gap:4px;flex-wrap:wrap}.plotcard__chips .chip{height:22px;font-size:11px;padding:0 7px 0 4px}.plotcard__upgrades{font-size:13px;font-weight:600;padding:7px 10px;display:inline-flex;align-items:center;gap:4px}.plotcard__production{display:flex;gap:var(--space-3);align-items:stretch}.wellcol{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;width:104px}.well{position:relative;display:grid;place-items:center;width:92px;height:92px;margin:2px 0 6px;padding:0;border-radius:50%;background:radial-gradient(circle at 40% 35%,var(--surface) 0 45%,var(--surface-2) 75%);box-shadow:0 0 0 3px var(--accent),0 6px 0 3px var(--accent-strong),0 10px 14px #3a332a40;transition:transform .35s var(--ease-back)}.well:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:3px solid var(--accent);animation:well-ring 2.2s var(--ease-out) infinite;pointer-events:none}.well:active{transform:translateY(5px) scale(1.04,.92);transition:transform 40ms;box-shadow:0 0 0 3px var(--accent),0 1px 0 3px var(--accent-strong)}@keyframes well-ring{0%{transform:scale(1);opacity:.7}70%,to{transform:scale(1.35);opacity:0}}.well__label{font-size:13px;font-weight:600}.well__hint{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.barrelfield{flex:1;display:flex;flex-wrap:wrap;align-content:flex-start;gap:2px;min-height:128px;background:radial-gradient(circle,var(--border) 1px,transparent 1.6px) 0 0 / 12px 12px,var(--surface-2);border:var(--border-w) dashed var(--border-strong);border-radius:var(--radius-m);padding:8px;touch-action:none}.barrelfield__hint{align-self:center;width:100%;text-align:center;font-size:12px;color:var(--text-dim)}.barrel{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:26px;cursor:pointer;animation:barrel-spawn .15s ease-out}@keyframes barrel-spawn{0%{opacity:0;scale:.4}to{opacity:1;scale:1}}.pipefield{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:128px;background:var(--surface-2);border:var(--border-w) solid var(--border);border-radius:var(--radius-m);padding:8px}.pipefield__pipe{width:85%;height:14px;border-radius:7px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden;position:relative}.pipefield__flow{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:5px;background:repeating-linear-gradient(90deg,var(--accent) 0 14px,transparent 14px 28px);animation:pipe-flow 1s linear infinite;opacity:.7}@keyframes pipe-flow{0%{transform:translate(0)}to{transform:translate(28px)}}.pipefield__hint{font-size:12px;color:var(--text-dim)}.tradinghouse{margin-top:var(--space-4)}.tradinghouse__status{font-size:13px;color:var(--text-dim);margin-bottom:var(--space-1)}.tradinghouse__buyrow{display:flex;align-items:center;gap:var(--space-3)}.tradinghouse__effect{flex:1;font-size:13px;color:var(--text-dim)}.buybtn{display:inline-flex;flex-direction:column;align-items:center;min-width:92px;padding:6px 12px;font-size:13px;font-weight:600;white-space:nowrap}.buybtn__cost{font-family:var(--font-display);font-weight:400;font-size:15px}.buybtn:disabled{color:var(--text-dim)}.poolbar{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px}.poolbar__label{color:var(--text-dim);white-space:nowrap}.poolbar__bar{flex:1;height:10px}.poolbar__value{font-variant-numeric:tabular-nums;white-space:nowrap}.refinery{margin-top:var(--space-4)}.refinery__title{display:flex;align-items:center;gap:6px;font-size:15px;margin-bottom:var(--space-2)}.refinery__hint{font-size:11px;color:var(--text-dim);font-weight:400;margin-left:auto}.refinery__tankers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:var(--space-2)}.tanker{position:relative;display:flex;align-items:center;gap:8px;min-height:56px;padding:8px 10px;overflow:visible;text-align:left}.tanker__tank,.tanker__fill{position:absolute;left:0;width:100%;transform-origin:left;transition:transform 1s linear;pointer-events:none}.tanker__tank{top:0;bottom:0;opacity:.18}.tanker__fill{bottom:0;height:4px}.tanker__fill--mazut{background:var(--fraction-mazut)}.tanker__fill--diesel{background:var(--fraction-diesel)}.tanker__fill--gasoline{background:var(--fraction-gasoline)}.tanker__fill--kerosene{background:var(--fraction-kerosene)}.tanker__icon{position:relative;line-height:0}.tanker__text{position:relative;display:flex;flex-direction:column;min-width:0;line-height:1.2}.tanker__label{font-size:13px;font-weight:600}.tanker__value{font-family:var(--font-display);font-size:13px;color:var(--ok)}.tanker--empty{cursor:default;background:var(--surface-2)}.tanker--empty .tanker__icon{filter:grayscale(.7);opacity:.55}.tanker--empty .tanker__label{color:var(--text-dim)}.tanker--ready{--btn-border: var(--accent);background:var(--surface)}.tanker--ready .tanker__icon{animation:bob 1.2s ease-in-out infinite}.tanker--auto .tanker__icon{animation:truck-idle .6s steps(2) infinite}@keyframes truck-idle{50%{transform:translateY(-1px)}}.tanker__auto{display:inline-flex;align-items:center;gap:2px;font-size:11px;color:var(--ok)}.tanker__badge{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;border-radius:11px;background:var(--accent);border:2px solid var(--surface);color:var(--on-accent);font-size:12px;font-weight:700;animation:badge-pop .35s var(--ease-back);display:flex;align-items:center;justify-content:center;padding:0 5px}.marketscreen__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.stepring{display:inline-flex;align-items:center;gap:6px}.stepring svg{transform:rotate(-90deg)}.stepring__track,.stepring__arc{fill:none;stroke-width:4}.stepring__track{stroke:var(--border)}.stepring__arc{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.stepring__text{display:flex;flex-direction:column;line-height:1.1;text-align:right}.stepring__label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.stepring__time{font-family:var(--font-display);font-size:16px;font-variant-numeric:tabular-nums}.board{display:grid;gap:10px}.ticker{position:relative;background:var(--surface);border:var(--border-w) solid var(--border);border-left:6px solid var(--fraction);border-radius:var(--radius-l);padding:var(--space-3) var(--space-3) 0 var(--space-3);box-shadow:var(--shadow-2);overflow:hidden}.ticker__top{display:flex;align-items:center;gap:10px}.ticker__info{flex:1;min-width:0}.ticker__name{font-size:16px;font-weight:700}.ticker__base{font-size:11px;color:var(--text-dim)}.ticker__price{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.ticker__price .chip{height:22px;font-size:11px;padding:0 8px}.ticker__current{display:inline-block;font-family:var(--font-display);font-size:24px;line-height:1;font-variant-numeric:tabular-nums;animation:price-flip .5s var(--ease-out);transform-origin:50% 60%}@keyframes price-flip{0%{transform:perspective(200px) rotateX(90deg);opacity:0}60%{transform:perspective(200px) rotateX(-12deg);opacity:1}to{transform:none}}.ticker .sparkline{display:block;margin:6px calc(-1 * var(--space-3)) 0;width:calc(100% + 2 * var(--space-3))}.sparkline__area{fill:currentColor;fill-opacity:.18}.sparkline__base{stroke:var(--text-dim);stroke-opacity:.5;stroke-dasharray:3 3;stroke-width:1;vector-effect:non-scaling-stroke}.sparkline__line{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#3a332a59;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:640px;max-height:82vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-bottom:none;border-radius:16px 16px 0 0;animation:sheet-up .2s ease-out}@keyframes sheet-up{0%{transform:translateY(40%);opacity:.5}to{transform:translateY(0);opacity:1}}.sheet__handle{width:40px;height:4px;border-radius:2px;background:var(--border);margin:8px auto 0}.sheet__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4) var(--space-1)}.sheet__header h2{font-size:19px}.sheet__close{width:36px;height:36px;line-height:1;padding:0;font-size:20px}.sheettabs{display:flex;gap:4px;padding:0 var(--space-3);border-bottom:var(--border-w) solid var(--border)}.sheettabs__tab{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;margin:0;padding:6px 2px 7px;font-size:12px;font-weight:600;color:var(--text-dim);background:var(--surface-2);border-radius:var(--radius-m) var(--radius-m) 0 0;box-shadow:none;transform:translateY(2px)}.sheettabs__tab:active{box-shadow:none;transform:translateY(3px)}.sheettabs__tab .icon{filter:grayscale(.5);opacity:.7}.sheettabs__tab--active{color:var(--accent-strong);background:var(--surface);box-shadow:-2px 0 0 0 var(--border),2px 0 0 0 var(--border),0 -2px 0 0 var(--border);transform:translateY(2px)}.sheettabs__tab--active .icon{filter:none;opacity:1}.sheettabs__tab .bottomnav__badge{right:18%}.sheet__content{overflow-y:auto;padding:var(--space-3) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));animation:fade-in .2s ease-out}.sheet__section{margin-bottom:var(--space-4)}.sheet__section h3{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2)}.repairbanner{background:var(--danger-soft);border:var(--border-w) solid var(--danger);border-radius:var(--radius-m);padding:var(--space-2) var(--space-3)}.repairbanner h3{color:var(--danger)}.repairbanner .upgraderow{background:var(--surface)}.sheet__subtitle{font-size:12px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin:var(--space-4) 0 var(--space-2)}.upgraderow,.storagerow{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 10px;margin-bottom:6px;min-height:60px;background:var(--surface-2);border:var(--border-w) solid var(--border);border-radius:var(--radius-m)}.upgraderow--maxed{border-color:var(--gold);background:var(--surface-warm)}.upgraderow--flash{animation:row-flash .7s var(--ease-out)}.upgraderow--flash .upgraderow__icon{animation:level-up .6s var(--ease-back)}@keyframes row-flash{0%{background:var(--lamp);border-color:var(--accent)}}@keyframes level-up{40%{transform:translateY(-8px) scale(1.2)}}.upgraderow__icon{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-m);background:var(--surface);border:1px solid var(--border)}.upgraderow__info,.storagerow__info{flex:1;min-width:0}.upgraderow__title{font-size:14px;font-weight:700}.upgraderow__effect{font-size:12px;color:var(--text-dim);margin-top:2px}.upgraderow__buy{display:flex;flex-direction:column;align-items:center;min-width:88px;min-height:44px;padding:4px 10px;--btn-border: var(--accent);background:var(--surface-warm);font-size:12px;font-weight:600}.upgraderow__buy--poor{--btn-border: var(--border);background:var(--surface-2);opacity:.6}.upgraderow__cost{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-display);font-size:14px;font-weight:400;color:var(--accent-strong)}.upgraderow__maxed{min-width:88px;text-align:center;font-size:12px;font-weight:700;color:var(--accent-strong)}.storagerow__fill{font-weight:400;font-size:12px;color:var(--text-dim)}.storagerow__sell{min-height:44px;font-size:12px}.yieldbar{margin:6px 0 10px}.yieldbar__label{font-size:11px;color:var(--text-dim)}.yieldbar__mix{height:20px;margin:4px 0;border-radius:10px;box-shadow:inset 0 3px #ffffff59}.yieldbar__seg--mazut{background:var(--fraction-mazut)}.yieldbar__seg--diesel{background:var(--fraction-diesel)}.yieldbar__seg--gasoline{background:var(--fraction-gasoline)}.yieldbar__seg--kerosene{background:var(--fraction-kerosene)}.yieldbar__pcts{font-size:11px;color:var(--text-dim);font-variant-numeric:tabular-nums}.defensescreen h2{margin-bottom:var(--space-3)}.defensescreen__empty{font-size:13px;color:var(--text-dim);padding:var(--space-2) 0}.radarcard{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-l);background:radial-gradient(circle at 30% 50%,var(--radar) 0%,var(--night) 75%);color:var(--paper-light);box-shadow:var(--shadow-2)}.radar{flex:0 0 auto;width:128px;height:128px}.radar__ring{fill:none;stroke:var(--ok-soft);stroke-opacity:.45;stroke-width:.8}.radar__sweep{transform-origin:50px 50px;transform-box:view-box;animation:radar-sweep 3s linear infinite}.radar__sweep path{fill:var(--ok-soft);fill-opacity:.35}.radar__blip{fill:var(--lamp-red);animation:blip 3s linear infinite}@keyframes radar-sweep{to{transform:rotate(360deg)}}@keyframes blip{0%{opacity:1}60%,to{opacity:.25}}.radarcard__info{display:flex;flex-direction:column;min-width:0}.radarcard__label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;opacity:.7}.radarcard__wave{font-family:var(--font-display);font-size:34px;line-height:1.1;margin-bottom:var(--space-2)}.radarcard__wave small{font-family:var(--font-ui);font-size:14px;opacity:.8}.radarcard__timer{font-family:var(--font-display);font-size:20px;font-variant-numeric:tabular-nums;color:var(--lamp)}.defensestats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-top:var(--space-3)}.defensestat{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:var(--border-w) solid var(--border);border-radius:var(--radius-m);padding:var(--space-2) var(--space-3)}.defensestat__label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-dim)}.defensestat__value{font-family:var(--font-display);font-size:18px}.defenserow{display:flex;align-items:center;gap:var(--space-3);background:var(--surface);border:var(--border-w) solid var(--border);border-left:5px solid var(--ok-soft);border-radius:var(--radius-m);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-2)}.defenserow--bad{border-left-color:var(--danger)}.defenserow__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.defenserow__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.defenserow__head .chip{height:22px;font-size:11px;padding:0 8px}.defenserow__plot{font-weight:700}.vsbar{display:flex;align-items:center;gap:6px}.vsbar__track{flex:1;height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.vsbar__fill{display:block;height:100%;transform-origin:left;transition:transform var(--dur-slow) var(--ease-out)}.vsbar__fill--wave{background:var(--danger)}.vsbar__fill--def{background:var(--ok-soft)}.vsbar__num{min-width:28px;text-align:right;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.historyrow{background:var(--paper-light);border:1px solid var(--border);padding:var(--space-3);margin-bottom:var(--space-3);font-size:13px;box-shadow:var(--shadow-1);clip-path:polygon(0 2%,3% 0,20% 1.5%,45% 0,70% 2%,100% 0,99% 50%,100% 98%,80% 100%,55% 98.5%,30% 100%,0 98%,1% 50%)}.historyrow:nth-child(odd){transform:rotate(-.6deg)}.historyrow:nth-child(2n){transform:rotate(.5deg)}.historyrow__head{display:flex;gap:8px}.historyrow__day{font-family:var(--font-display);color:var(--text-dim);white-space:nowrap}.historyrow__broken{margin-top:4px;color:var(--danger)}.historyrow__scrap{margin-top:2px;color:var(--text-dim)}.repairtimer{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--danger);margin-top:4px;flex-wrap:wrap}.repairtimer__count{font-variant-numeric:tabular-nums}.repairtimer__btn{font-size:11px;padding:5px 8px;min-height:32px;--btn-border: var(--accent);color:var(--accent-strong)}.report{width:calc(100% - 32px);max-width:480px;max-height:80vh;margin-bottom:8vh;display:flex;flex-direction:column;background:var(--surface);border:var(--border-w) solid var(--border);border-radius:var(--radius-l);padding:var(--space-4) var(--space-5) var(--space-5);box-shadow:var(--shadow-3);animation:modal-in .35s var(--ease-back);align-self:center}@keyframes modal-in{0%{transform:translateY(24px) scale(.94);opacity:0}}.sheet-backdrop:has(.report){align-items:center;animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0}}.report__title{font-size:20px;margin-bottom:var(--space-3);display:flex;align-items:center;gap:8px}.onboarding{text-align:center}.onboarding__art{display:grid;place-items:center;width:112px;height:112px;margin:0 auto var(--space-2);border-radius:50%;background:radial-gradient(circle,var(--surface-warm) 0 55%,var(--surface-2) 56% 100%);border:var(--border-w) solid var(--border);animation:trophy-in .4s var(--ease-back)}.onboarding__title{justify-content:center;font-size:24px}.onboarding__slide{min-height:7.5em;font-size:15px;animation:fade-in .3s ease-out}.onboarding .report__entries p{margin-bottom:10px}.onboarding__dots{display:flex;justify-content:center;gap:6px;margin-top:var(--space-2)}.onboarding__dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:transform var(--dur-med) var(--ease-back),background var(--dur-med)}.onboarding__dot--on{background:var(--accent);transform:scale(1.3)}.install__later{--btn-border: var(--border);font-weight:400}.report__entries{overflow-y:auto;font-size:14px;line-height:1.5}.report__entry{border-bottom:1px solid var(--border);padding:8px 0}.report__entry ul{padding-left:18px;color:var(--danger)}.report__day{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.report__hint{color:var(--accent-strong)}.report__ok{margin-top:var(--space-4);min-height:48px;--btn-border: var(--accent);background:var(--surface-warm);font-size:16px;font-weight:700}.newspaper{background:var(--paper-light)}.newspaper__masthead{text-align:center;border-bottom:3px double var(--text);padding-bottom:var(--space-2);margin-bottom:var(--space-2)}.newspaper__rule{display:block;height:3px;border-top:1px solid var(--text);border-bottom:1px solid var(--text);margin-bottom:var(--space-2)}.newspaper__name{font-size:26px;line-height:1.05;text-transform:uppercase;letter-spacing:.04em}.newspaper__sub{display:inline-flex;align-items:center;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim)}.newspaper__article{position:relative;border-bottom:1px solid var(--border-strong);padding:var(--space-3) 0}.newspaper__article:last-child{border-bottom:none}.newspaper__headline{font-family:var(--font-display);font-weight:400;font-size:21px;line-height:1.15;margin:2px 0 6px;padding-right:112px}.newspaper__scrap{font-weight:600}.stamp{position:absolute;top:var(--space-3);right:0;padding:3px 8px;border:3px solid var(--danger);border-radius:var(--radius-s);color:var(--danger);font-family:var(--font-display);font-size:14px;text-transform:uppercase;letter-spacing:.06em;transform:rotate(-12deg);opacity:.85;animation:stamp .45s .25s var(--ease-back) both}.stamp--ok{border-color:var(--ok);color:var(--ok)}@keyframes stamp{0%{transform:rotate(-12deg) scale(2.2);opacity:0}}.welcome{text-align:center}.welcome__sun{margin:-4px auto 0;animation:sunrise .8s var(--ease-out)}@keyframes sunrise{0%{transform:translateY(20px);opacity:0}}.welcome__title{justify-content:center;font-size:22px}.welcome__hero{display:flex;flex-direction:column;padding:var(--space-3);margin-bottom:var(--space-2);border-radius:var(--radius-m);background:var(--surface-warm);border:var(--border-w) solid var(--gold)}.welcome__herolabel{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.welcome__money{font-family:var(--font-display);font-size:36px;color:var(--ok);font-variant-numeric:tabular-nums}.welcome__rows{font-size:14px;text-align:left}.welcome__row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.welcome__attacks{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:13px;color:var(--danger)}.raid{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;pointer-events:none;overflow:hidden;animation:raid-vignette 4.2s ease-out forwards}@keyframes raid-vignette{0%{box-shadow:inset 0 0 #bf4a3000}10%,70%{box-shadow:inset 0 0 80px 10px #bf4a3073}to{box-shadow:inset 0 0 #bf4a3000}}.raid__alert{position:absolute;top:calc(72px + env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:var(--danger);color:var(--on-accent);font-family:var(--font-display);font-size:14px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;box-shadow:var(--shadow-3);animation:raid-alert .5s steps(2) 6}@keyframes raid-alert{50%{opacity:.55}}.raid__drone{position:absolute;left:0;top:0;opacity:0;animation-name:raid-fly;animation-timing-function:cubic-bezier(.45,0,.8,.6);animation-fill-mode:both;filter:drop-shadow(0 6px 4px rgba(42,36,28,.35))}@keyframes raid-fly{0%{opacity:1;transform:translate(var(--sx),var(--sy)) translate(-50%,-50%)}97%{opacity:1}to{opacity:0;transform:translate(var(--ex),var(--ey)) translate(-50%,-50%)}}.raid__tracer{position:absolute;width:3px;height:var(--len);transform-origin:top;background:linear-gradient(180deg,var(--lamp) 0%,rgba(255,233,168,0) 60%);opacity:0;animation:tracer .28s linear both}@keyframes tracer{0%{opacity:1;transform:translateY(40px) scaleY(.2)}to{opacity:0;transform:translateY(0) scaleY(1)}}.fxlayer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:92;pointer-events:none;overflow:hidden}.fx-origin{position:absolute;width:0;height:0}.fx-float{position:absolute;transform:translate(-50%,-50%);font-family:var(--font-display);font-size:20px;white-space:nowrap;color:var(--text);text-shadow:0 2px 0 var(--surface),0 -1px 0 var(--surface),1px 0 0 var(--surface),-1px 0 0 var(--surface);animation:fx-float 1.1s var(--ease-out) forwards}.fx-float--money{color:var(--ok)}.fx-float--danger{color:var(--danger)}@keyframes fx-float{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}30%{transform:translate(-50%,-70%) scale(1)}to{opacity:0;transform:translate(-50%,-190%) scale(1)}}.fx-coin-x{position:absolute;animation:fx-coin-x .7s cubic-bezier(.3,0,.7,1) both}.fx-coin-y{position:absolute;display:block;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--lamp) 0 25%,var(--accent) 60%,var(--accent-strong) 100%);box-shadow:0 0 0 1.5px var(--accent-strong);animation:fx-coin-y .7s cubic-bezier(.55,-.35,.8,1) both}@keyframes fx-coin-x{0%{transform:translate(0)}to{transform:translate(var(--dx))}}@keyframes fx-coin-y{0%{transform:translateY(0) scale(.6);opacity:0}10%{opacity:1;transform:translateY(0) scale(1)}90%{opacity:1}to{transform:translateY(var(--dy)) scale(.7);opacity:0}}.fx-bit{position:absolute;margin:-2px 0 0 -2px;border-radius:1px;animation:fx-bit .7s var(--ease-out) both}.fx-bit--oil{background:var(--ink)}.fx-bit--spark{background:var(--lamp);box-shadow:0 0 0 1px var(--accent)}.fx-bit--fire{background:var(--lamp-red);box-shadow:0 0 6px 1px #ff823cb3}.fx-bit--fire:nth-child(3n){background:var(--text-dim);box-shadow:none}.fx-bit--dust{background:var(--road-surface);box-shadow:0 0 0 1px var(--road)}@keyframes fx-bit{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.3);opacity:0}}.app--shake{animation:shake .35s linear}.app--shake-strong{animation:shake-strong .45s linear}@keyframes shake{20%{transform:translate(-2px,1px)}40%{transform:translate(2px,-1px)}60%{transform:translate(-1px,-1px)}80%{transform:translate(1px,1px)}}@keyframes shake-strong{15%{transform:translate(-5px,2px)}30%{transform:translate(4px,-3px)}45%{transform:translate(-3px,-2px)}60%{transform:translate(3px,2px)}80%{transform:translate(-1px,1px)}}.topbar__money--pulse .topbar__coin{animation:coin-pulse .35s var(--ease-back)}.topbar__money--pulse .topbar__moneyvalue{animation:money-glow .5s ease-out}@keyframes coin-pulse{40%{transform:scale(1.3) rotate(-10deg)}}@keyframes money-glow{30%{color:var(--ok)}}.toggle{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;cursor:pointer}.toggle--disabled{opacity:.55;cursor:default}.toggle__text{flex:1;display:flex;flex-direction:column;font-size:15px}.toggle__hint{font-size:11px;color:var(--text-dim)}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle__track{position:relative;width:46px;height:26px;border-radius:999px;background:var(--surface-2);border:var(--border-w) solid var(--border-strong);transition:background var(--dur-med)}.toggle__thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-1);transition:transform var(--dur-med) var(--ease-back)}.toggle input:checked+.toggle__track{background:var(--accent);border-color:var(--accent-strong)}.toggle input:checked+.toggle__track .toggle__thumb{transform:translate(20px)}.toggle input:focus-visible+.toggle__track{outline:2px solid var(--accent);outline-offset:2px}.wealthscreen h2{margin-bottom:var(--space-3)}.cabinet{display:grid;grid-template-columns:repeat(3,1fr);gap:0 var(--space-2);padding:var(--space-2) var(--space-3) 0;border-radius:var(--radius-l);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:var(--border-w) solid var(--border);box-shadow:inset 0 3px #3a332a0f}.cabinet__slot{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-2) 0 var(--space-3);text-align:center}.cabinet__slot:after{content:"";position:absolute;left:calc(-1 * var(--space-2));right:calc(-1 * var(--space-2));bottom:0;height:8px;background:var(--road);box-shadow:0 3px #2a241c40}.cabinet__icon{line-height:0;filter:brightness(0) opacity(.18)}.cabinet__slot--owned .cabinet__icon{filter:drop-shadow(0 0 8px rgba(255,214,120,.8));animation:trophy-in .5s var(--ease-back)}.cabinet__slot--next .cabinet__icon{filter:grayscale(.6) opacity(.75);animation:bob 2s ease-in-out infinite}.cabinet__name{font-size:11px;line-height:1.2;color:var(--text-dim);min-height:2.4em;padding-bottom:6px}.cabinet__slot--owned .cabinet__name{color:var(--text);font-weight:600}@keyframes trophy-in{0%{transform:scale(.5)}}.wealthnext__head{display:flex;align-items:center;gap:var(--space-3)}.wealthnext__info{flex:1;min-width:0}.wealthnext__name{font-size:17px;font-weight:700}.wealthnext__price{font-family:var(--font-display);font-size:18px;color:var(--accent-strong)}.wealthnext__eta{font-size:12px;color:var(--text-dim)}.wealthnext__buy{width:calc(100% - 4px);margin-top:var(--space-3);padding:10px;font-weight:700;font-size:15px}.pring{position:relative;display:inline-grid;place-items:center;flex-shrink:0}.pring svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.pring__track,.pring__arc{fill:none;stroke-width:5}.pring__track{stroke:var(--border)}.pring__arc{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset var(--dur-slow) var(--ease-out)}.pring--full .pring__arc{stroke:var(--ok-soft)}.pring__inner{position:relative;line-height:0}.wealthdone{text-align:center;font-size:16px;font-weight:700;padding:16px 0;display:flex;flex-direction:column;gap:12px;align-items:center}.achievements{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.achievement{position:relative;display:flex;align-items:center;gap:8px;min-height:52px;background:var(--surface-2);border:var(--border-w) solid var(--border);border-radius:var(--radius-m);padding:8px 10px;font-size:12px;color:var(--text-dim);overflow:hidden}.achievement__mark{flex-shrink:0;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--surface);border:2px dashed var(--border)}.achievement--unlocked{color:var(--text);font-weight:600;background:var(--surface);border-color:var(--gold)}.achievement--unlocked .achievement__mark{border:2px solid var(--gold);background:var(--surface-warm)}.achievement--unlocked:after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.7),transparent);animation:glint 5s ease-in-out infinite}@keyframes glint{0%,70%{transform:translate(0)}to{transform:translate(400%)}}.final{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:linear-gradient(180deg,var(--night) 0%,var(--night-2) 100%);color:var(--paper-light);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;animation:final-in .5s ease-out}@keyframes final-in{0%{opacity:0}to{opacity:1}}.final__crown{font-size:56px}.final__title{font-size:34px;letter-spacing:.3em;margin:8px 0 4px}.final__subtitle{font-size:14px;opacity:.8}.final__statstitle{margin:18px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;opacity:.7}.final__stats{width:100%;max-width:420px;font-size:13px;max-height:40vh;overflow-y:auto}.final__restart{margin-top:var(--space-3);min-height:44px;background:transparent;color:var(--paper-light);font-size:14px;opacity:.8}.final__restart--armed{background:var(--danger);color:var(--on-accent);opacity:1;animation:badge-pop .3s var(--ease-back)}.final__row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(244,232,200,.15)}.final .report__ok{margin-top:18px;min-width:200px;background:var(--paper-light);color:var(--night);--btn-border: transparent}.toasts{position:fixed;top:calc(64px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:95;display:flex;flex-direction:column;gap:6px;pointer-events:none}.toast{display:flex;align-items:center;gap:6px;background:var(--surface);border:var(--border-w) solid var(--gold);border-radius:999px;padding:6px 16px 6px 8px;font-size:13px;box-shadow:var(--shadow-3);animation:toast-in .45s var(--ease-back);white-space:nowrap}.toast .icon{animation:medal-spin .8s var(--ease-out)}@keyframes toast-in{0%{transform:translateY(-30px) scale(.8);opacity:0}}@keyframes medal-spin{0%{transform:rotateY(540deg) scale(1.4)}}.toast--update{pointer-events:auto;display:flex;align-items:center;gap:10px}.toast__btn{font-size:12px;padding:4px 10px;--btn-border: var(--accent);color:var(--accent-strong)}.decoration{position:absolute;transform:translate(-50%,-50%);font-size:26px;filter:drop-shadow(0 2px 3px rgba(58,51,42,.3))}.decoration--rocket{animation:rocket 6s ease-in-out infinite}.decoration--float{animation:float 4s ease-in-out infinite}@keyframes float{0%,to{transform:translate(-50%,-50%) rotate(-3deg)}50%{transform:translate(-50%,-50%) translateY(3px) rotate(3deg)}}@keyframes rocket{0%,to{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-14px)}}.settingsscreen h2{font-size:16px;margin-bottom:12px}.settingsblock{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:10px;display:flex;flex-direction:column;gap:8px}.settingsbtn{margin-top:0!important}.settingslabel{font-size:12px;color:var(--text-dim)}.settingsblob{width:100%;min-height:72px;font-size:10px;font-family:monospace;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px;color:var(--text);resize:vertical;user-select:text;-webkit-user-select:text}.settingserror{font-size:12px;color:var(--danger)}.settingsabout{font-size:12px;color:var(--text-dim)}.bottomnav{position:relative;z-index:20;display:flex;background:var(--surface);border-top:var(--border-w) solid var(--border);padding:0 var(--space-1) env(safe-area-inset-bottom)}.bottomnav__tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;border-radius:0;margin:0;box-shadow:none;padding:6px 2px 8px;font-size:11px;color:var(--text-dim);min-width:0}.bottomnav__tab:active{transform:none;box-shadow:none}.bottomnav__iconwrap{position:relative;display:grid;place-items:center;width:52px;height:34px;border-radius:999px;transition:background var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-back)}.bottomnav__icon{opacity:.7;filter:grayscale(.35);transition:opacity var(--dur-med),filter var(--dur-med)}.bottomnav__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bottomnav__tab:active .bottomnav__iconwrap{transform:scale(.92)}.bottomnav__tab--active{color:var(--accent-strong);font-weight:700}.bottomnav__tab--active .bottomnav__iconwrap{background:#b0760729;transform:translateY(-2px)}.bottomnav__tab--active .bottomnav__icon{opacity:1;filter:none}.bottomnav__badge{position:absolute;top:2px;right:10px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);animation:badge-pop .35s var(--ease-back)}.bottomnav__badge--danger{background:var(--danger)}.devpanel{position:fixed;right:8px;bottom:72px;z-index:100;width:240px;background:var(--surface);border:1px solid var(--accent);border-radius:10px;padding:10px;font-size:12px}.devpanel__title{font-weight:700;margin-bottom:8px;color:var(--accent)}.devpanel__grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.devpanel__grid button{font-size:11px;padding:6px 4px}.devpanel__danger{width:100%;--btn-border: var(--danger);color:var(--danger)}.devpanel__info{margin-top:8px;color:var(--text-dim);font-variant-numeric:tabular-nums;line-height:1.5;word-break:break-all}@media(hover:hover)and (pointer:fine){button:hover:not(:disabled){filter:brightness(1.05)}.zone:hover .diorama__pad ellipse,.zone:hover .forsale__pad ellipse{stroke:var(--accent)}}@media(min-width:768px){.app{max-width:720px}.screen:not(.mapscreen){padding:20px 24px}}@media(min-width:900px){.sheet{position:absolute;top:0;bottom:0;left:min(calc(50% + 360px),calc(100% - 440px));width:440px;max-width:none;max-height:none;border-radius:0;border-bottom:none;border-left:2px solid var(--border);animation:sheet-side .2s ease-out}.sheet__handle{display:none}}@keyframes sheet-side{0%{transform:translate(48px);opacity:.5}}
