:root{--paper:#fbfcf6;--paper-glass:#fbfcf6f0;--paper-2:#f2f5ec;--paper-3:#e6ecdd;--paper-4:#d6dfcb;--line:#1c32261a;--line-strong:#1c32262e;--inverse:#1c2b22;--inverse-ink:#f3f8ec;--bezel:#16211b;--scrim:#101c1673;--sky:#bfe3f2;--ink:#1c3226;--ink-2:#4b6454;--ink-3:#526557;--ink-on-accent:#fff;--accent:#3b8530;--accent-hover:#327328;--accent-bright:#7cc25a;--accent-soft:#e3f1d7;--accent-ink:#2f6b1f;--gold:#e8b019;--gold-soft:#fff3c9;--gold-ink:#7a5300;--warn:#d68910;--warn-soft:#fdf0d8;--warn-ink:#7a4a00;--danger:#c2412b;--danger-hover:#a8361f;--danger-soft:#fbe8e3;--danger-ink:#9a2f1c;--info:#3a78c2;--info-soft:#e4eefa;--night:#5d74b0;--focus:#f0a030;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-pill:999px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--gutter:16px;--gutter-top:max(12px, env(safe-area-inset-top));--gutter-bottom:max(16px, env(safe-area-inset-bottom));--gutter-left:max(var(--gutter), env(safe-area-inset-left));--gutter-right:max(var(--gutter), env(safe-area-inset-right));--shadow-1:0 1px 2px #10201824, 0 4px 12px #1020181f;--shadow-2:0 2px 6px #1020181f, 0 18px 44px #1020183d;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;--fs-xs:11px;--fs-sm:12.5px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:26px;--fw-regular:450;--fw-medium:600;--fw-bold:700;--fw-heavy:800;--lh-tight:1.2;--lh-body:1.45;--tracking-caps:.07em;--control-sm:32px;--control-md:44px;--control-lg:48px;--hud-chip:44px;--z-world:1;--z-hud:2;--z-hud-float:3;--z-panel:4;--z-popover:6;--z-toast:8;--z-banner:9;--z-modal:10;--z-tower-entry:22;--z-tower-interior:60;--z-tower-dialog:85;--z-inventory:90;--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--ease-out:cubic-bezier(.2, .9, .3, 1);--ease-spring:cubic-bezier(.3, 1.35, .5, 1)}*{box-sizing:border-box}html,body,#root{background:var(--sky);width:100%;height:100%;font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;padding:0;overflow:hidden}#app{width:100%;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:relative}.game-canvas-container{position:absolute;inset:0;overflow:hidden}.game-canvas-container canvas{width:100%;height:100%;display:block}button{-webkit-tap-highlight-color:transparent}svg.lucide{width:var(--icon-size,1.25em);height:var(--icon-size,1.25em);stroke-width:var(--icon-stroke,2);flex:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.panel{z-index:var(--z-panel);top:calc(var(--gutter-top) + var(--hud-chip) + var(--s-3));right:var(--gutter-right);width:min(340px, calc(100% - 2 * var(--gutter)));max-height:calc(100% - var(--gutter-top) - var(--hud-chip) - var(--s-3) - 96px);overscroll-behavior:contain;padding:0 var(--s-4) var(--s-4);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);font-size:var(--fs-md);line-height:var(--lh-body);box-shadow:var(--shadow-2);pointer-events:auto;animation:panel-in var(--dur-2) var(--ease-out);position:absolute;overflow-y:auto}@keyframes panel-in{0%{opacity:0;translate:0 6px;scale:.985}}.panel-header{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.panel>.panel-header{z-index:3;min-height:56px;margin:0 calc(-1 * var(--s-4)) var(--s-1);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);background:var(--paper);position:sticky;top:0}.modal>.panel-header{top:calc(-1 * var(--s-5));z-index:3;margin:calc(-1 * var(--s-5)) calc(-1 * var(--s-5)) 0;padding:var(--s-4) var(--s-3) var(--s-2) var(--s-5);background:var(--paper);position:sticky}.panel-title{align-items:center;gap:var(--s-2);min-width:0;font-size:var(--fs-lg);font-weight:var(--fw-heavy);line-height:var(--lh-tight);letter-spacing:-.005em;margin:0;display:flex}.panel-title>svg.lucide{--icon-size:20px;color:var(--ink-2)}.panel-subtitle{margin:var(--s-5) 0 var(--s-2);color:var(--ink);font-size:var(--fs-md);font-weight:var(--fw-heavy)}.panel-empty,.panel-tools,.panel-note{margin:var(--s-2) 0 0;color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-body)}.panel-footer{bottom:calc(-1 * var(--s-4));gap:var(--s-2);margin:var(--s-4) calc(-1 * var(--s-4)) calc(-1 * var(--s-4));padding:var(--s-3) var(--s-4) var(--s-4);border-top:1px solid var(--line);background:var(--paper);justify-content:flex-end;display:flex;position:sticky}.panel-close,.icon-button{width:var(--control-md);height:var(--control-md);border-radius:var(--r-sm);color:var(--ink-2);font:inherit;cursor:pointer;transition:background var(--dur-1), color var(--dur-1);background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}.panel-close{font-size:0}.panel-close:before{content:"";background:currentColor;width:20px;height:20px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") 50%/contain no-repeat}.panel-close:hover,.icon-button:hover{background:var(--paper-3);color:var(--ink)}.icon-button>svg.lucide{--icon-size:20px}.btn,.primary-small,.primary-button,.secondary-button,.ghost-button,.danger-button,.item-discard{justify-content:center;align-items:center;gap:var(--s-2);min-height:36px;padding:0 var(--s-3);border-radius:var(--r-sm);font:inherit;font-size:13.5px;font-weight:var(--fw-bold);text-align:center;cursor:pointer;transition:background var(--dur-1), color var(--dur-1), translate var(--dur-1);border:0;line-height:1.15;display:inline-flex}.btn>svg.lucide,.primary-small>svg.lucide,.primary-button>svg.lucide,.secondary-button>svg.lucide,.ghost-button>svg.lucide,.danger-button>svg.lucide{--icon-size:18px;margin-left:-2px}.btn:active:not(:disabled),.primary-small:active:not(:disabled),.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.ghost-button:active:not(:disabled),.danger-button:active:not(:disabled),.item-discard:active:not(:disabled){translate:0 1px}.btn-primary,.primary-small,.primary-button{background:var(--accent);color:var(--ink-on-accent)}.btn-primary:hover:not(:disabled),.primary-small:hover:not(:disabled),.primary-button:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary,.secondary-button{background:var(--paper-3);color:var(--ink)}.btn-secondary:hover:not(:disabled),.secondary-button:hover:not(:disabled){background:var(--paper-4)}.btn-ghost,.ghost-button,.item-discard{color:var(--ink-2);background:0 0}.btn-ghost:hover:not(:disabled),.ghost-button:hover:not(:disabled){background:var(--paper-3);color:var(--ink)}.item-discard:hover:not(:disabled){background:var(--danger-soft);color:var(--danger-ink)}.btn-danger,.danger-button{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled),.danger-button:hover:not(:disabled){background:var(--danger-hover)}.btn-sm{min-height:var(--control-sm);font-size:var(--fs-sm);padding:0 10px}.btn-lg,.primary-button{min-height:var(--control-lg);padding:0 var(--s-5);border-radius:var(--r-md);font-size:var(--fs-lg)}.primary-button{width:100%;margin-top:var(--s-5)}.btn-block{width:100%}.btn:disabled,.primary-small:disabled,.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled,.danger-button:disabled,.item-discard:disabled{opacity:.45;cursor:not-allowed}.primary-button:disabled{cursor:progress}.btn:focus-visible,.primary-small:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.ghost-button:focus-visible,.danger-button:focus-visible,.item-discard:focus-visible,.panel-close:focus-visible,.icon-button:focus-visible,.choice-chip:focus-visible,.swatch:focus-visible,.tab:focus-visible,.phone-tab:focus-visible,.info-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.item-list{margin:0;padding:0;list-style:none}.item-row,.list-row{gap:var(--s-2);min-height:52px;padding:var(--s-2) 0;border-bottom:1px solid var(--line);font-size:var(--fs-md);grid-template-columns:1fr auto auto auto;align-items:center;display:grid}.item-row:last-child,.list-row:last-child{border-bottom:0}.item-name{min-width:0;font-weight:var(--fw-medium)}.item-qty{color:var(--ink-2);font-variant-numeric:tabular-nums}.item-weight{color:var(--ink-3);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.item-actions{gap:var(--s-1);justify-content:flex-end;align-items:center;display:flex}.summary-list{gap:var(--s-2);margin:0 0 var(--s-4);flex-direction:column;padding:0;list-style:none;display:flex}.summary-row,.kv{gap:var(--s-3);color:var(--ink-2);font-size:var(--fs-md);justify-content:space-between;align-items:baseline;display:flex}.summary-row>strong,.kv>strong{color:var(--ink);font-weight:var(--fw-bold);text-align:right;font-variant-numeric:tabular-nums}.summary-kind{color:var(--ink);font-weight:var(--fw-bold)}.summary-value{color:var(--ink-2);text-align:right}.progress{border-radius:var(--r-pill);background:var(--paper-3);height:6px;display:block;position:relative;overflow:hidden}.progress>span,.progress-fill{border-radius:inherit;background:var(--accent-bright);height:100%;transition:width var(--dur-3) var(--ease-out);display:block}.progress[data-tone=gold]>span{background:var(--gold)}.progress[data-tone=danger]>span{background:var(--danger)}.weight-bar{height:22px;margin:var(--s-1) 0 var(--s-3);border-radius:var(--r-pill);background:var(--paper-3);position:relative;overflow:hidden}.weight-bar-fill{border-radius:inherit;background:var(--accent-bright);height:100%;transition:width var(--dur-3) var(--ease-out)}.weight-bar-text{color:var(--ink);font-size:var(--fs-xs);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;place-items:center;display:grid;position:absolute;inset:0}.tabs,.phone-tabs{margin:var(--s-2) 0 var(--s-3);border-radius:var(--r-md);background:var(--paper-3);gap:2px;padding:3px;display:flex}.tab,.phone-tab{min-height:34px;padding:0 var(--s-2);color:var(--ink-2);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-bold);cursor:pointer;transition:background var(--dur-1), color var(--dur-1);background:0 0;border:0;border-radius:11px;flex:1}.tab:hover,.phone-tab:hover{color:var(--ink)}.tab[aria-selected=true],.phone-tab[aria-selected=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #1020181f}.badge{border-radius:var(--r-pill);background:var(--paper-3);min-height:20px;color:var(--ink-2);font-size:var(--fs-xs);font-weight:var(--fw-bold);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:3px;padding:0 7px;line-height:1;display:inline-flex}.badge-accent{background:var(--accent-soft);color:var(--accent-ink)}.badge-gold{background:var(--gold-soft);color:var(--gold-ink)}.badge-danger{background:var(--danger-soft);color:var(--danger-ink)}.count-dot{border:2px solid var(--paper);border-radius:var(--r-pill);background:var(--danger);color:#fff;min-width:18px;height:18px;font-size:10.5px;font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;place-items:center;padding:0 5px;line-height:1;display:grid;position:absolute;top:-4px;right:-4px}.count-dot[data-tone=gold]{background:var(--gold);color:var(--gold-ink)}.field-group{margin:var(--s-4) 0 0;border:0;padding:0}.field-label{margin-bottom:var(--s-2);color:var(--ink);font-size:13px;font-weight:var(--fw-bold);padding:0;display:block}.field-input{width:100%;min-height:44px;padding:10px var(--s-3);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);color:var(--ink);font:inherit;transition:border-color var(--dur-1), box-shadow var(--dur-1);background:#fff;font-size:16px}.field-input::placeholder{color:var(--ink-3)}.field-input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-input[aria-invalid=true]{border-color:var(--danger)}.field-hint{margin:var(--s-1) 0 0;color:var(--ink-3);font-size:var(--fs-sm)}.field-error{margin:var(--s-3) 0 0;color:var(--danger-ink);font-size:13px;font-weight:var(--fw-medium)}.field-row{gap:var(--s-2);margin-top:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}.field-row .field-input{flex:1;min-width:0}.field-row .primary-small{white-space:nowrap}.choice-row{gap:var(--s-2);flex-wrap:wrap;display:flex}.choice-chip{min-height:var(--control-md);border-radius:var(--r-pill);background:var(--paper-3);color:var(--ink);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-1), border-color var(--dur-1);border:1.5px solid #0000;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.choice-chip:hover{background:var(--paper-4)}.choice-chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:var(--fw-bold)}.swatch{border:3px solid var(--paper);width:36px;height:36px;box-shadow:0 0 0 1.5px var(--line-strong);cursor:pointer;border-radius:50%}.swatch[aria-pressed=true]{box-shadow:0 0 0 3px var(--ink)}.confirm{margin-top:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--fs-md);animation:panel-in var(--dur-2) var(--ease-out)}.confirm p{margin:0 0 var(--s-3)}.confirm-actions{gap:var(--s-2);justify-content:flex-end;display:flex}.modal-backdrop{z-index:var(--z-modal);pointer-events:auto;padding:max(var(--s-4), env(safe-area-inset-top)) var(--s-4) max(var(--s-4), env(safe-area-inset-bottom));background:var(--scrim);animation:fade-in var(--dur-2) ease-out;place-items:center;display:grid;position:absolute;inset:0;overflow-y:auto}@keyframes fade-in{0%{opacity:0}}.modal{overscroll-behavior:contain;width:min(400px,100%);max-height:calc(100dvh - 32px);padding:var(--s-5);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);font-size:var(--fs-md);line-height:var(--lh-body);box-shadow:var(--shadow-2);animation:panel-in var(--dur-3) var(--ease-out);overflow-y:auto}.modal-title{margin:0 0 var(--s-2);font-size:var(--fs-xl);font-weight:var(--fw-heavy);line-height:var(--lh-tight);letter-spacing:-.01em}.age-choice{align-items:center;gap:var(--s-2);cursor:pointer;min-height:44px;display:flex}.profile-modal{gap:var(--s-3);flex-direction:column;display:flex;overflow:hidden}.profile-modal-body{overscroll-behavior:contain;min-height:0;padding:var(--s-1);overflow-y:auto}.profile-modal-footer{gap:var(--s-2);flex-shrink:0;display:grid}.modal-text{margin:0 0 var(--s-4);color:var(--ink-2);font-size:var(--fs-md);line-height:var(--lh-body)}.info-toggle{width:20px;height:20px;margin-left:var(--s-1);background:var(--paper-3);color:var(--ink-2);font-size:12px;font-weight:var(--fw-heavy);vertical-align:middle;cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;line-height:1;display:inline-grid}.info-toggle:hover{background:var(--paper-4);color:var(--ink)}.info-toggle[aria-expanded=true]{background:var(--ink);color:var(--paper)}.info-box{margin:var(--s-2) 0;padding:10px var(--s-3);border-radius:var(--r-sm);background:var(--paper-2);color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-body)}.info-box p{margin:0 0 6px}.info-box p:last-child{margin-bottom:0}.empty-state{gap:var(--s-2);padding:var(--s-6) var(--s-4);color:var(--ink-2);font-size:var(--fs-md);text-align:center;flex-direction:column;align-items:center;display:flex}.empty-state>p{margin:0}.empty-state>svg.lucide{--icon-size:28px;--icon-stroke:1.75;color:var(--ink-3)}.toast{max-width:min(440px, calc(100vw - 2 * var(--gutter)));padding:10px var(--s-4) 10px var(--s-3);border-radius:var(--r-md);background:var(--inverse);color:var(--inverse-ink);font-size:var(--fs-md);font-weight:var(--fw-medium);box-shadow:var(--shadow-2);pointer-events:none;animation:toast-in var(--dur-3) var(--ease-spring);align-items:center;gap:10px;line-height:1.35;display:inline-flex}.toast>svg.lucide{--icon-size:18px;color:var(--accent-bright)}.toast[data-kind=error]>svg.lucide{color:#ff9a85}@keyframes toast-in{0%{opacity:0;translate:0 -6px;scale:.97}}@media (hover:hover){[data-tip]{position:relative}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);z-index:var(--z-popover);padding:5px var(--s-2);border-radius:var(--r-xs);background:var(--inverse);color:var(--inverse-ink);font-size:var(--fs-xs);font-weight:var(--fw-bold);white-space:nowrap;pointer-events:none;animation:fade-in var(--dur-1) ease-out;line-height:1.2;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}[data-tip][data-tip-side=top]:hover:after,[data-tip][data-tip-side=top]:focus-visible:after{top:auto;bottom:calc(100% + 6px)}[data-tip][data-tip-side=right]:hover:after,[data-tip][data-tip-side=right]:focus-visible:after{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}}@media (width<=700px){.panel{top:calc(var(--gutter-top) + var(--hud-chip) + var(--s-2));right:var(--gutter-right);width:calc(100% - var(--gutter-left) - var(--gutter-right));max-height:calc(100% - var(--gutter-top) - var(--hud-chip) - var(--s-2) - 84px)}.item-row{row-gap:var(--s-1);grid-template-columns:1fr auto auto}.item-actions{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.panel,.modal,.modal-backdrop,.confirm,.toast{animation:none}}.chunk-load-notice{inset:auto auto max(var(--s-3), env(safe-area-inset-bottom)) var(--gutter-left,var(--gutter));width:min(360px, calc(100vw - 2 * var(--gutter)));max-height:calc(100dvh - 2 * var(--gutter));padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-2);pointer-events:auto;z-index:var(--z-inventory);margin:0;position:fixed;overflow-y:auto}.chunk-load-notice::backdrop{display:none}.chunk-load-notice .choice-row{flex-wrap:wrap}@supports not selector(:popover-open){.chunk-load-notice[popover]{display:block}}.dump-search{z-index:85;width:min(360px,100vw - 24px);max-height:calc(100dvh - 32px);position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.dump-search.is-auto{top:auto;bottom:94px;transform:translate(-50%)}.dump-sack{width:100%;color:var(--ink);font:inherit;cursor:pointer;background:#e5eadb;border:2px solid #0000;border-radius:18px;place-items:center;padding:10px;font-weight:700;display:grid}.dump-sack svg{width:min(220px,70vw);height:180px}.dump-sack.is-ready{background:#ebf2dc;border-color:#649647}.dump-sack.is-ready .dump-paper{animation:.7s ease-in-out infinite alternate dump-paper-peek}.dump-sack:disabled{cursor:default;opacity:.72}.dump-sack:focus-visible{outline-offset:3px;outline:3px solid #416a44}.dump-pulls{text-align:center;margin:8px 0;font-weight:700}.dump-meter{background:#d3dcc9;border-radius:8px;height:9px;margin-top:12px;overflow:hidden}.dump-meter>span{transform-origin:0;background:#669449;height:100%;display:block}.dump-result{background:#eef1e4;border-radius:10px;margin:12px 0;padding:10px}.dump-result .item-row{gap:8px}.dump-result .item-row strong{margin-left:auto}.dump-job-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}@keyframes dump-paper-peek{to{transform:translateY(-7px)}}@media (prefers-reduced-motion:reduce){.dump-sack.is-ready .dump-paper{animation:none}}.garage-panel{max-width:430px}.garage-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.garage-list{margin-block:12px}.garage-list>li{border-bottom:1px solid var(--phone-stroke,#dce5d7);flex-direction:column;gap:12px;padding-block:14px;display:flex}.garage-list>li>div:first-child{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.garage-list svg{width:24px;height:24px}.garage-list small{flex-basis:100%}.mastery-announcements{gap:var(--s-2);pointer-events:auto;max-height:28vh;display:grid;overflow-y:auto}.mastery-announcement{align-items:center;gap:var(--s-2);padding:var(--s-3);border-radius:var(--r-md);background:var(--gold-soft);color:var(--gold-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold);display:flex}.mastery-announcement svg{flex-shrink:0;width:24px;height:24px}.buff-details{pointer-events:auto;position:relative}.buff-details button{cursor:pointer;list-style:none}.buff-description{width:max-content;max-width:min(270px,100vw - 32px);padding:var(--s-3);border-radius:var(--r-sm);background:var(--inverse);color:var(--inverse-ink);font-size:var(--fs-sm);z-index:var(--z-popover);display:none;position:absolute;top:100%;left:50%;transform:translate(-50%)}.buff-description strong,.buff-description span{display:block}.buff-description span{margin-top:var(--s-1)}.buff-details[data-expanded=true] .buff-description{display:block}.buff-dot-global{background:var(--gold)}.buff-dot-community{background:var(--accent)}@media (width<=1000px){.buff-description{left:auto;right:0;transform:none}}.mining-manual{z-index:28;pointer-events:auto;flex-direction:column;align-items:center;gap:12px;width:min(340px,100vw - 24px);max-height:calc(100dvh - 24px);display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.mining-manual>p{margin:0}.mining-stone-stage{background:#263f46;border-radius:20px;place-items:center;width:100%;height:292px;min-height:292px;display:grid;overflow:hidden}.mining-manual .panel-header{width:100%}.mining-stone{cursor:pointer;background:0 0;border:0;width:168px;height:168px;margin:0;position:relative}.mining-stone svg{width:100%;height:100%}.mining-ring{pointer-events:none;border:5px solid #f5f3e8;border-radius:50%;position:absolute;inset:-8px}.mining-stone.is-green .mining-ring{border-color:#55dd96;box-shadow:0 0 18px #55dd9660}.mining-ready{color:#267048}@media (height<=650px){.mining-stone-stage{height:220px;min-height:220px}.mining-stone{width:128px;height:128px}}.owner-line{align-items:center;gap:var(--s-2);min-height:var(--control-sm);margin:0 0 var(--s-3);color:var(--ink-2);font-size:var(--fs-sm);display:flex}.owner-line>span:not(.props-dot){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.owner-line strong{color:var(--ink)}.owner-line-mine{width:fit-content;min-height:26px;padding:0 10px 0 var(--s-2);border-radius:var(--r-pill);background:var(--gold-soft);color:var(--gold-ink);font-weight:var(--fw-bold);gap:6px}.owner-line-mine>svg.lucide{--icon-size:15px}.props-dot{background:var(--gold);width:12px;height:12px;box-shadow:0 0 0 2px var(--line-strong);border-radius:50%;flex:none}.props-main{flex:1;min-width:0}.props-actions{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.props-mine{border-left:4px solid var(--gold);padding-left:var(--s-2)}.props-ok{color:var(--accent-ink);font-weight:700}.props-legend{font-size:var(--fs-xs);color:var(--ink-2);flex-wrap:wrap;gap:2px 12px;margin:0 0 8px;display:flex}.props-legend-item{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.props-swatch{border-radius:3px;width:14px;height:6px;display:inline-block}.props-swatch-mine{background:var(--gold)}.props-swatch-other{background:linear-gradient(90deg, var(--danger), var(--info), var(--accent-bright))}.props-owner{margin-bottom:10px}.props-owner-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.props-owner-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.props-owner-head small{color:var(--ink-2);white-space:nowrap}.hud--compact{--gutter:12px;--gutter-left:max(var(--gutter), env(safe-area-inset-left));--gutter-right:max(var(--gutter), env(safe-area-inset-right))}.mobile-hud-top,.mobile-hud-goals{left:var(--gutter-left);right:var(--gutter-right);align-items:flex-start;gap:var(--s-2);pointer-events:none;display:flex;position:absolute}.mobile-hud-top{top:var(--gutter-top);border-radius:var(--r-md);background:var(--paper-glass);box-shadow:var(--shadow-1)}.mobile-hud-top>.hud-row{justify-content:flex-end;gap:var(--s-2);flex:1;min-width:0}.mobile-hud-top .hud-level--compact{width:64px;height:var(--control-lg);min-height:var(--control-lg);padding:var(--s-2);text-align:center;pointer-events:auto;box-shadow:none;background:0 0;flex:none;grid-template-rows:1fr 4px;grid-template-columns:1fr}.mobile-hud-top .hud-level-icon,.mobile-hud-top .hud-level-text{display:none}.mobile-hud-top .hud-level-badge{font-size:var(--fs-sm)}.mobile-hud-top .hud-level-bar{grid-column:1;height:4px}.mobile-hud-top .hud-level .count-dot{top:-4px;right:-4px}.mobile-hud-top .hud-coins,.mobile-hud-top .hud-backpack{min-height:var(--control-lg);padding:0 var(--s-2);font-size:var(--fs-sm);gap:var(--s-1);white-space:nowrap;flex-wrap:nowrap}.mobile-hud-top .hud-backpack{justify-content:center}.mobile-hud-top .hud-coins,.mobile-hud-top .hud-backpack{box-shadow:none;background:0 0}.mobile-hud-top .panel,.mobile-hud-top .modal-backdrop,.mobile-hud-tools .panel{position:fixed}.mobile-hud-top .hud-coins>svg,.mobile-hud-top .hud-backpack>svg{flex:none}.mobile-hud-goals{top:calc(var(--gutter-top) + var(--control-lg) + var(--s-2))}.mobile-hud-goals .mission-tracker{width:auto;min-width:0;min-height:var(--control-lg);padding:var(--s-2) var(--s-3);flex:1}.mobile-hud-goals .mission-label,.mobile-hud-goals .mission-icon{display:none}.mobile-hud-goals .mission-task{font-size:var(--fs-sm);line-height:1.3}.mobile-hud-goals .city-goal-control{pointer-events:auto;margin-left:auto}.mobile-hud-goals .city-goal-popover{top:calc(var(--gutter-top) + 2 * var(--control-lg) + 2 * var(--s-2))}.mobile-hud-more{right:var(--gutter-right);bottom:var(--gutter-bottom);height:var(--control-lg);position:absolute}.mobile-hud-more:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.mobile-hud-update-dot{background:var(--accent-ink);border-radius:50%;flex:none;width:8px;height:8px}.mobile-hud-scrim{z-index:var(--z-panel);pointer-events:auto;background:#1020182e;border:0;position:fixed;inset:0}.mobile-hud-tools{display:contents}.mobile-hud-tools.is-open{z-index:var(--z-popover);right:var(--gutter-right);bottom:calc(var(--gutter-bottom) + var(--control-lg) + var(--s-2));gap:var(--s-2);width:min(320px, calc(100vw - var(--gutter-left) - var(--gutter-right)));max-height:calc(100dvh - var(--gutter-top) - var(--gutter-bottom) - var(--control-lg) - var(--s-2));padding:var(--s-3);border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--shadow-2);pointer-events:auto;flex-direction:column;display:flex;position:fixed;overflow-y:auto}.mobile-hud-tools .hud-title,.mobile-hud-tools .mobile-hud-update,.mobile-hud-tools .hud-releases,.mobile-hud-tools .emote-toggle,.mobile-hud-tools .hud-home{width:100%;min-height:var(--control-lg);padding:0 var(--s-3);box-shadow:none;background:var(--paper-2);flex-shrink:0;justify-content:flex-start;position:relative;inset:auto}.mobile-hud-tools .mobile-hud-update{color:var(--accent-ink);background:var(--accent-soft)}.mobile-hud-tools .hud-title-text,.mobile-hud-tools .hud-button-text{clip-path:none;width:auto;height:auto;position:static;overflow:visible}.mobile-hud-tools .emote-menu{align-items:stretch;position:static}.mobile-hud-tools .emote-options{box-shadow:none;background:var(--paper-2)}.mobile-hud-tools .hud-clock{min-height:var(--control-lg);box-shadow:none;justify-content:space-between}.mobile-hud-tools .buff-bar{flex-direction:row;justify-content:flex-start}.mobile-hud-tools .buff-name,.mobile-hud-tools .vehicle-chip-name{display:inline}.mobile-hud-tools .vehicle-chip{box-shadow:none;flex-wrap:wrap}.mobile-hud-notices{top:calc(var(--gutter-top) + 2 * var(--control-lg) + 2 * var(--s-2));left:var(--gutter-left);right:var(--gutter-right);gap:var(--s-2);flex-direction:column;align-items:center;display:flex;position:absolute}.mobile-hud-notices>*{pointer-events:auto}.hud--compact .chat-panel{right:var(--gutter-right);width:auto;height:min(420px, calc(var(--chat-viewport-height,100dvh) - var(--gutter-top) - var(--gutter-bottom)));max-height:calc(var(--chat-viewport-height,100dvh) - var(--gutter-top) - var(--gutter-bottom))}.hud--compact .chat-lines{min-height:0}.hud--compact .chat-panel .panel-close,.hud--compact .chat-channels .choice-chip,.hud--compact .chat-form button{min-height:var(--control-lg);min-width:var(--control-lg)}:is(.hud--compact:has(.chat-panel) .mobile-hud-more,.hud--compact:has(.chat-panel) .mobile-hud-top,.hud--compact:has(.chat-panel) .mobile-hud-goals,.hud--compact:has(.chat-panel) .mobile-hud-tools,.hud--compact:has(.chat-panel) .mobile-hud-scrim,.hud--compact:has(.chat-panel) .phone-toggle){visibility:hidden}.hud--compact:has([role=dialog]) .mobile-hud-more{visibility:hidden}@media (width>=701px) and (height<=500px){.mobile-hud-top{width:320px;right:auto}.mobile-hud-goals{top:var(--gutter-top);width:min(420px, calc(100vw - 320px - var(--gutter-left) - var(--gutter-right) - var(--s-4)));left:auto}.mobile-hud-notices{top:calc(var(--gutter-top) + var(--control-lg) + var(--s-2))}}.item-image{object-fit:contain;vertical-align:middle;flex:none;width:24px;height:24px;display:inline-block}.item-icon>.item-image,.item-art>.item-image{width:100%;height:100%;padding:2px}.fishing-catch-icon>.item-image{width:80px;height:80px}.phone{--phone-bezel:#16211b;--phone-screen:#fbfff5;--phone-ink:#1c3226;--phone-dim:#5b7563;--phone-accent:#7cc25a;--phone-accent-ink:#2f6b1f;--phone-badge:#e5483b;z-index:var(--z-panel);top:max(84px, calc(env(safe-area-inset-top) + 72px));right:max(16px, env(safe-area-inset-right));background:linear-gradient(145deg, #2b3a31, var(--phone-bezel) 40%, #0c130f);width:340px;height:min(700px,100% - 180px);min-height:420px;color:var(--phone-ink);pointer-events:auto;border-radius:44px;padding:10px;animation:.26s cubic-bezier(.2,.9,.3,1.15) phone-rise;position:absolute;box-shadow:inset 0 0 0 2px #3a4c41,0 24px 60px #00000073,0 6px 16px #0000004d}.phone-screen{background:var(--phone-screen);isolation:isolate;border-radius:34px;flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}@keyframes phone-rise{0%{opacity:0;transform:translateY(40px)scale(.96)}}.phone-status{z-index:3;font-variant-numeric:tabular-nums;height:34px;color:var(--phone-ink);flex:none;justify-content:space-between;align-items:center;padding:0 18px 0 24px;font-size:13px;font-weight:800;display:flex;position:relative}.phone-screen:has(.phone-home) .phone-status{color:#fff;text-shadow:0 1px 2px #00000040;background:#3d8f55}.phone-notch{background:#0c130f;border-radius:999px;width:84px;height:20px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.phone-status-right{align-items:center;gap:6px;display:flex}.phone-signal{align-items:center;gap:4px;display:inline-flex}.phone-signal rect.on{fill:currentColor}.phone-signal rect.off{fill:currentColor;opacity:.25}.phone-signal[data-quality=good]{--signal:#3f9d2b}.phone-signal[data-quality=ok]{--signal:#d99a14}.phone-signal[data-quality=bad]{--signal:#d5392c}.phone-signal svg{color:var(--signal,currentColor)}.phone-signal-ms{font-size:11px;font-weight:700}.phone-battery{color:currentColor}.phone-home{background:radial-gradient(110% 55% at 0 100%,#ffd23f59,#0000 60%),radial-gradient(90% 50% at 100% 0,#7cc25a8c,#0000 70%),linear-gradient(170deg,#3d8f55 0%,#2b7a55 50%,#17503f 100%);flex-direction:column;gap:14px;padding:44px 16px 26px;animation:.22s ease-out phone-home-in;display:flex;position:absolute;inset:0;overflow-y:auto}@keyframes phone-home-in{0%{opacity:.4;transform:scale(1.06)}}.phone-widget{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;width:100%;font:inherit;text-align:left;cursor:pointer;text-shadow:0 1px 2px #00000040;background:#081e1459;border:1px solid #ffffff40;border-radius:22px;grid-template-columns:1fr auto;align-items:center;gap:4px 8px;padding:12px 14px;display:grid}.phone-widget-hello{text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:800;overflow:hidden}.phone-widget-level{color:#6b4b00;text-shadow:none;background:#fff3b0;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800}.phone-widget-bar{background:#0003;border-radius:999px;grid-column:1/-1;height:8px;overflow:hidden}.phone-widget-bar>span{border-radius:inherit;background:linear-gradient(90deg,#fff3b0,#ffd23f);height:100%;display:block}.phone-widget-xp{opacity:.9;grid-column:1/-1;font-size:11px;font-weight:700}.phone-grid{flex:1;grid-template-columns:repeat(4,1fr);align-content:start;gap:16px 6px;display:grid}.phone-dock{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff4d;border-radius:28px;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px 8px 8px;display:grid}.phone-app-icon{color:#fff;min-width:0;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;align-items:center;gap:5px;padding:0;display:flex}.phone-app-tile{background:linear-gradient(160deg,#fff,#e6f3dc);border-radius:16px;place-items:center;width:56px;height:56px;transition:transform .12s;display:grid;position:relative;box-shadow:0 4px 10px #0000002e,inset 0 -2px #0000000f}.phone-app-icon[data-app=job] .phone-app-tile{background:linear-gradient(160deg,#ffe2a8,#f5a53b)}.phone-app-icon[data-app=routine] .phone-app-tile{background:linear-gradient(160deg,#d9e8ff,#7ea6f0)}.phone-app-icon[data-app=plots] .phone-app-tile{background:linear-gradient(160deg,#ffd9c9,#ef8a63)}.phone-app-icon[data-app=economy] .phone-app-tile{background:linear-gradient(160deg,#e1f7e8,#52b788)}.phone-app-icon[data-app=levels] .phone-app-tile{background:linear-gradient(160deg,#fff6c2,#ffc61a)}.phone-app-icon[data-app=ranking] .phone-app-tile{background:linear-gradient(160deg,#f1e0ff,#a978e8)}.phone-app-icon[data-app=profile] .phone-app-tile{background:linear-gradient(160deg,#e3f4ff,#58b4e8)}.phone-app-icon[data-app=missions] .phone-app-tile{background:linear-gradient(160deg,#e3ffd4,#6cc04a)}.phone-app-icon[data-app=online] .phone-app-tile{background:linear-gradient(160deg,#d6fbff,#26b3c7)}.phone-app-icon[data-app=friends] .phone-app-tile{background:linear-gradient(160deg,#ffe0ef,#ef6fa6)}.phone-app-icon[data-app=bank] .phone-app-tile{background:linear-gradient(160deg,#e9eef2,#8397a8)}.phone-app-icon[data-app=shops] .phone-app-tile{background:linear-gradient(160deg,#ffe3d6,#f06f5a)}.phone-app-icon[data-app=houses] .phone-app-tile{background:linear-gradient(160deg,#f6eadc,#c08a5b)}.phone-app-icon[data-app=election] .phone-app-tile{background:linear-gradient(160deg,#e4e8ff,#6f7fe0)}.phone-app-icon:hover .phone-app-tile{transform:translateY(-2px)}.phone-app-icon:active .phone-app-tile{transform:scale(.92)}.phone-app-icon:focus-visible{outline:none}.phone-app-icon:focus-visible .phone-app-tile{outline-offset:2px;outline:3px solid #f2a33a}.phone-app-art{object-fit:contain;width:42px;height:42px}.phone-app-label{text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px #00000073;max-width:100%;font-size:11.5px;font-weight:700;overflow:hidden}.phone-badge{background:var(--phone-badge,#e5483b);color:#fff;min-width:20px;height:20px;text-shadow:none;border:2px solid #fff;border-radius:999px;place-items:center;padding:0 5px;font-size:11px;font-weight:800;line-height:1;animation:.3s cubic-bezier(.3,1.6,.5,1) phone-badge-pop;display:grid;position:absolute;top:-6px;right:-6px}@keyframes phone-badge-pop{0%{transform:scale(0)}}.phone-toggle .phone-badge{top:-2px;right:-2px}.phone-close{width:36px;height:36px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:22px;line-height:1;display:grid}.phone-home-close{z-index:2;color:#fff;background:#0000002e;width:32px;height:32px;font-size:20px;position:absolute;top:50px;right:14px}.phone-home-close+.phone-widget{width:calc(100% - 42px)}.phone-app{background:var(--phone-screen);transform-origin:var(--phone-origin,50% 50%);touch-action:pan-y;flex-direction:column;padding-top:34px;animation:.24s cubic-bezier(.2,.9,.3,1) phone-app-in;display:flex;position:absolute;inset:0}@keyframes phone-app-in{0%{opacity:0;border-radius:34px;transform:scale(.2)}}.phone-app-header{border-bottom:1px solid #e3ecd9;flex:none;grid-template-columns:1fr auto 1fr;align-items:center;gap:4px;min-height:44px;padding:0 6px 6px;display:grid}.phone-back{min-height:40px;color:var(--phone-accent-ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;justify-self:start;align-items:center;gap:4px;padding:0 8px;font-size:14px;font-weight:700;display:inline-flex}.phone-back:hover{background:#eef7e3}.phone-app-title{white-space:nowrap;margin:0;font-size:16px;font-weight:800}.phone-app-header .phone-close{justify-self:end}.phone-back:focus-visible,.phone-close:focus-visible,.phone-widget:focus-visible,.phone-home-bar:focus-visible{outline-offset:2px;outline:3px solid #f2a33a}.phone-app-body{overscroll-behavior:contain;flex:1;min-height:0;padding:10px 14px 30px;position:relative;overflow-y:auto}.phone-home-bar{z-index:4;cursor:pointer;background:0 0;border:0;width:120px;height:14px;padding:0;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.phone-home-bar:before{content:"";background:#1c32268c;border-radius:999px;height:5px;position:absolute;top:5px;left:0;right:0}.phone-screen:has(.phone-home) .phone-home-bar:before{background:#ffffffd9}@media (width<=700px){.phone{--phone-navigation-top:calc(var(--gutter-top) + var(--control-lg) + var(--s-2));background:var(--phone-bezel);width:auto;height:auto;min-height:0;box-shadow:none;border-radius:0;padding:0;animation-name:phone-rise-full;position:fixed;inset:0}.phone-screen{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);border-radius:0}.phone-notch{display:none}.phone-status{margin-top:env(safe-area-inset-top)}.phone-home{padding-top:calc(env(safe-area-inset-top) + 46px);padding-bottom:calc(env(safe-area-inset-bottom) + 28px)}.phone-home-close{top:max(calc(env(safe-area-inset-top) + 52px), var(--phone-navigation-top));width:var(--control-lg);height:var(--control-lg)}.phone-app-header .phone-close{width:var(--control-lg);height:var(--control-lg)}.phone-app-tile{border-radius:18px;width:64px;height:64px}.phone-app-art{width:36px;height:36px}.phone-app{padding-top:max(calc(env(safe-area-inset-top) + 34px), var(--phone-navigation-top));padding-bottom:env(safe-area-inset-bottom)}.phone-home-bar{bottom:calc(env(safe-area-inset-bottom) + 4px)}.phone-grid{gap:20px 6px}@keyframes phone-rise-full{0%{opacity:0;transform:translateY(8%)}}}@media (prefers-reduced-motion:reduce){.phone,.phone-home,.phone-app,.phone-badge,.online-pulse{animation:none}.phone-app-tile{transition:none}}.phone-goal-widget{background:#28180457;gap:3px 8px;padding:10px 14px}.phone-goal-widget.met{border-color:#ffd23fb3}.phone-goal-kicker{letter-spacing:.06em;text-transform:uppercase;opacity:.9;align-items:center;gap:4px;font-size:10px;font-weight:800;display:inline-flex}.phone-goal-kicker>svg.lucide{--icon-size:12px;--icon-stroke:2.5}.phone-goal-left{opacity:.9;justify-self:end;font-size:11px;font-weight:700}.phone-goal-name{text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:15px;font-weight:800;overflow:hidden}.phone-goal-bar>span{background:linear-gradient(90deg,#b8f28c,#7cc25a)}.phone-goal-meta{opacity:.92;grid-column:1/-1;font-size:11px;font-weight:700}.phone-page{flex-direction:column;display:flex}.phone-page>.panel-subtitle:first-child,.phone-page>.friend-section:first-child{margin-top:var(--s-1)}.phone-lead{margin:0 0 var(--s-3)}.friend-section{margin:var(--s-5) 0 var(--s-2);color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--tracking-caps);text-transform:uppercase}.phone-list,.summary-list.phone-list{padding:0 var(--s-3);border-radius:var(--r-md);background:var(--paper-2);margin:0;list-style:none;display:block}.phone-list>li,.phone-list>.summary-row{justify-content:space-between;align-items:center;gap:var(--s-3);min-height:44px;padding:var(--s-2) 0;border-bottom:1px solid var(--line);display:flex}.phone-list>li:last-child{border-bottom:0}.phone-list>.summary-row>span:first-child{min-width:0}.phone-list+.panel-note,.phone-list+.phone-warn{margin-top:var(--s-2)}.phone-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.phone-row-title{color:var(--ink);font-weight:var(--fw-medium);text-overflow:ellipsis;overflow:hidden}.phone-row-main small,.phone-row-value small{color:var(--ink-3);font-size:var(--fs-sm)}.phone-row-main .progress{max-width:160px;margin-top:var(--s-1)}.phone-row-value{flex-direction:column;flex:none;align-items:flex-end;gap:2px;display:flex}.phone-row-value strong{color:var(--ink);font-variant-numeric:tabular-nums}.phone-row-actions{justify-content:flex-end;gap:var(--s-1);flex-wrap:wrap;flex:none;display:flex}.phone-row-wrap{flex-wrap:wrap}.phone-row-wrap>.phone-row-actions{margin-left:auto}.phone-row>.badge{flex:none}.phone-num,.phone-list strong{font-variant-numeric:tabular-nums}.phone-ok{color:var(--accent-ink)}.phone-bad{color:var(--danger-ink)}.phone-list .summary-row>strong.phone-coins,.phone-coins{color:var(--gold-ink)}.phone-actions{justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-4);display:flex}.phone-hero{gap:var(--s-1);margin-bottom:var(--s-1);flex-direction:column;display:flex}.phone-hero-head{margin:0}.phone-hero-name{color:var(--ink);font-size:var(--fs-xl);font-weight:var(--fw-heavy);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.phone-hero-head .summary-row{align-items:center}.phone-hero-label{color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.phone-hero-figure.debt-amount{color:var(--danger-ink)}.phone-hero-figure{color:var(--ink);font-size:var(--fs-2xl);font-weight:var(--fw-heavy);line-height:var(--lh-tight);font-variant-numeric:tabular-nums}.phone-xp-bar .weight-bar-fill{background:var(--gold)}.phone-options{padding:0}.phone-option{justify-content:space-between;align-items:center;gap:var(--s-2);width:100%;min-height:52px;padding:var(--s-2) var(--s-3);border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);text-align:left;cursor:pointer;background:0 0;display:flex}.phone-option:first-child{border-radius:var(--r-md) var(--r-md) 0 0}.phone-option:last-child{border-radius:0 0 var(--r-md) var(--r-md);border-bottom:0}.phone-option:hover:not(:disabled){background:var(--paper-3)}.phone-option[aria-pressed=true]{color:var(--accent-ink);font-weight:var(--fw-bold)}.phone-option-current{--icon-size:18px;align-items:center;gap:var(--s-1);color:var(--accent-ink);font-size:var(--fs-sm);display:inline-flex}.phone-option:disabled{color:var(--ink-3);cursor:default}.phone-option:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.friend-add{margin:0 0 var(--s-2)}.friend-online,.friend-offline{align-items:center;gap:6px;display:inline-flex}.friend-online:before,.friend-offline:before{content:"";background:var(--ink-3);border-radius:50%;width:7px;height:7px}.friend-online{color:var(--accent-ink)}.friend-online:before{background:var(--accent-bright)}.phone-list>.prof-row{display:grid}.phone-prof-name{--icon-size:16px;align-items:center;gap:var(--s-2);display:inline-flex}.phone-prof-name>svg.lucide{color:var(--ink-3)}.phone-push{justify-content:space-between;align-items:center;gap:var(--s-3);min-height:52px;display:flex}.push-status{color:var(--ink-2);font-size:var(--fs-md)}.rank-board+.rank-board{margin-top:var(--s-1)}.rank-champion{--icon-size:14px;margin:0 0 var(--s-2);color:var(--gold-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold);align-items:center;gap:6px;display:flex}.rank-champion>svg.lucide{color:var(--gold);fill:var(--gold)}.rank-list{counter-reset:none}.rank-pos{width:22px;color:var(--ink-3);font-weight:var(--fw-heavy);text-align:center;font-variant-numeric:tabular-nums;flex:none}.rank-row[data-pos="1"] .rank-pos{color:var(--gold-ink)}.rank-row>strong{flex:none}.rank-me{margin:var(--s-2) 0 0;color:var(--ink-2);font-size:var(--fs-sm)}.bank-panel .panel-subtitle{margin:var(--s-5) 0 var(--s-2);flex-wrap:wrap;align-items:center;display:flex}.bank-panel .panel-subtitle:first-of-type{margin-top:var(--s-2)}.bank-panel .panel-subtitle>.info-box{font-weight:var(--fw-regular);flex-basis:100%}.bank-figure{font-size:var(--fs-lg)}.city-stats-balance{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--paper-2)}.city-stats-group{margin:var(--s-4) 0 var(--s-2);color:var(--ink);font-size:var(--fs-md);font-weight:var(--fw-bold)}.city-stats-out>strong{color:var(--ink-2)}.props-app .props-mine{border-left:0;padding-left:0}.props-app .props-ok{color:var(--accent-ink)}.props-app .props-actions{gap:var(--s-1);flex:none}.props-app .props-legend{gap:2px var(--s-3);margin:0 0 var(--s-2);color:var(--ink-3);font-size:var(--fs-xs)}.props-app .props-owner{margin:var(--s-4) 0 0}.props-app .props-owner-head{gap:var(--s-2);margin-bottom:var(--s-2)}.props-app .props-owner-name{color:var(--ink)}.props-app .props-owner-head small{color:var(--ink-3)}.props-app .friend-add{margin-top:var(--s-1)}.levels-hero{gap:var(--s-1);padding:var(--s-4);border-radius:var(--r-md);background:var(--gold-soft);color:var(--gold-ink);flex-direction:column;display:flex}.levels-hero-level{color:var(--ink);font-size:var(--fs-xl);font-weight:var(--fw-heavy)}.levels-hero .weight-bar{margin:var(--s-1) 0 var(--s-2);background:var(--paper)}.levels-hero-next{color:var(--gold-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold);margin:0}.level-unlocks{gap:var(--s-1) var(--s-4);margin:var(--s-1) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.level-unlock{color:var(--ink);font-size:var(--fs-sm);font-weight:var(--fw-medium);align-items:center;gap:6px;display:inline-flex}.level-unlock-art{place-items:center;width:20px;font-size:15px;line-height:1;display:inline-grid}.levels-timeline{margin:var(--s-4) 0 0;padding:0;list-style:none;position:relative}.levels-timeline:before{content:"";border-radius:var(--r-pill);background:var(--paper-3);width:2px;position:absolute;top:16px;bottom:16px;left:15px}.level-step{gap:var(--s-3);padding:var(--s-1) 0;display:flex;position:relative}.level-step-dot{--icon-size:16px;--icon-stroke:3;z-index:1;background:var(--paper-3);width:32px;height:32px;color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;display:grid}.level-step[data-state=done] .level-step-dot{background:var(--accent);color:var(--ink-on-accent)}.level-step[data-state=current] .level-step-dot{background:var(--gold);color:var(--gold-ink)}.level-step[data-state=next] .level-step-dot{background:var(--paper);box-shadow:inset 0 0 0 2px var(--gold);color:var(--gold-ink)}.level-step-body{min-width:0;padding:6px var(--s-3) var(--s-2);border-radius:var(--r-md);flex:1}.level-step[data-state=current] .level-step-body{background:var(--gold-soft)}.level-step[data-state=next] .level-step-body{background:var(--paper-2)}.level-step[data-state=done] .level-unlock,.level-step[data-state=locked] .level-unlock,.level-step[data-state=locked] .level-step-title strong{color:var(--ink-2)}.level-step-title{align-items:center;gap:var(--s-2);font-size:var(--fs-md);flex-wrap:wrap;margin:0 0 2px;display:flex}.level-step-xp{color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;margin-left:auto}.level-step-empty{color:var(--ink-3);font-size:var(--fs-sm);margin:0}.online-count{align-items:center;gap:var(--s-2);margin:0 0 var(--s-3);color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);display:flex}.online-pulse{background:var(--accent-bright);border-radius:50%;width:8px;height:8px}.online-list{padding:0 var(--s-3);border-radius:var(--r-md);background:var(--paper-2);margin:0;list-style:none}.online-row{gap:var(--s-2) var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--line);grid-template-columns:auto 1fr;align-items:center;display:grid}.online-row:last-child{border-bottom:0}.online-row[data-relation=incoming]{margin:0 calc(-1 * var(--s-3));padding-inline:var(--s-3);background:var(--warn-soft)}.online-avatar{width:40px;height:40px;color:var(--ink);font-size:var(--fs-lg);font-weight:var(--fw-heavy);border-radius:50%;place-items:center;display:grid}.online-info{min-width:0;color:var(--ink-3);font-size:var(--fs-sm);flex-direction:column;gap:2px;display:flex}.online-name{align-items:center;gap:var(--s-2);min-width:0;color:var(--ink);font-size:var(--fs-md);font-weight:var(--fw-bold);display:flex}.online-name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.online-actions{justify-content:flex-end;align-items:center;gap:var(--s-1);flex-wrap:wrap;grid-column:2;display:flex}.online-actions:empty{display:none}.online-sent{color:var(--ink-3);font-size:var(--fs-sm);font-weight:var(--fw-bold);margin-right:auto}.goal-app-name{margin:var(--s-1) 0 var(--s-2);color:var(--ink);font-size:var(--fs-xl);font-weight:var(--fw-heavy);line-height:var(--lh-tight)}.goal-app-met{margin:0 0 var(--s-3)}.goal-app .weight-bar{margin-bottom:var(--s-4)}.goal-app-how{margin-top:var(--s-3)}.myshops{gap:var(--s-6)}.myshop-head{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.myshop-name{color:var(--ink);font-size:var(--fs-lg);font-weight:var(--fw-heavy)}.myshop-revenue{margin:var(--s-1) 0 var(--s-2);color:var(--gold-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.myshop-listings>.myshop-listing{display:block}.myshop-listing-row{align-items:center;gap:var(--s-1) var(--s-3);flex-wrap:wrap;display:flex}.myshop-art{text-align:center;flex:none;width:24px;font-size:20px;line-height:1}.myshop-price{color:var(--ink);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.myshop-listing-row>.item-actions{margin-left:auto}.myshop-soldout{color:var(--danger-ink);font-weight:var(--fw-bold)}.myshop-edit{gap:var(--s-2);padding:var(--s-2) 0 var(--s-1);flex-direction:column;display:flex}.myshop-edit-row{justify-content:flex-end;margin-top:0}.myshop-edit-row .field-input{flex:0 120px}.myshop-sales{margin-top:var(--s-2)}.myshop-sales>summary{color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);cursor:pointer}.election-app{gap:var(--s-2);flex-direction:column;display:flex}.election-app>section>.friend-section:first-child{margin-top:var(--s-3)}.election-mayor{align-items:center;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-md);background:var(--paper-2);display:flex}.election-mayor-icon{--icon-size:24px;background:var(--gold-soft);width:48px;height:48px;color:var(--gold-ink);border-radius:50%;flex:none;place-items:center;display:grid}.election-mayor-body{min-width:0}.election-mayor .friend-section{margin:0 0 2px}.election-mayor-name{color:var(--ink);font-size:var(--fs-lg);font-weight:var(--fw-heavy);line-height:var(--lh-tight);display:block}.election-decree{margin:var(--s-1) 0 0;color:var(--accent-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold)}.election-decree-desc,.election-slogan{color:var(--ink-3);font-size:var(--fs-sm)}.election-slogan{overflow-wrap:anywhere;white-space:normal;font-style:italic}.election-avatar{background:var(--gold-soft)}.election-row[data-voted=yes] .online-avatar{background:var(--accent);color:var(--ink-on-accent)}.election-votes{color:var(--ink);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;margin-right:auto}.election-decrees{gap:var(--s-2);margin:var(--s-2) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.election-decree-card{width:100%;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--paper-2);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-1);border:0;flex-direction:column;gap:2px;display:flex}.election-decree-card:hover:not(:disabled){background:var(--accent-soft)}.election-decree-card:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.election-app .election-decree-card small{color:var(--ink-2)}.election-run form{gap:var(--s-2);flex-direction:column;display:flex}.election-run form .primary-small{align-self:flex-end}.tower-entry,.tower-loading{z-index:var(--z-tower-entry);background:var(--paper);max-width:calc(100% - 32px);color:var(--ink);border:1px solid var(--line-strong);box-shadow:var(--shadow-1);border-radius:14px;padding:14px 22px;font-weight:800;position:absolute;bottom:100px;left:50%;transform:translate(-50%)}.tower-entry{cursor:pointer}.tower-loading{margin:0}.name-plates{pointer-events:none;position:absolute;inset:0;overflow:hidden}.name-plate{will-change:transform;flex-direction:column;align-items:center;display:flex;position:absolute;top:0;left:0}.name-plate-label{padding:2px var(--s-2);border-radius:var(--r-pill);color:var(--inverse-ink);font-size:12px;font-weight:var(--fw-medium);white-space:nowrap;background:#14221cb3;line-height:1.4}.name-plate--self .name-plate-label{background:#3b8530eb}.name-plate--worker .name-plate-label{color:#e5e7eb;background:#5a6068d9}.chat-bubble{max-width:200px;margin-bottom:var(--s-1);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font-size:13px;font-weight:var(--fw-medium);white-space:normal;text-align:center;overflow-wrap:anywhere;box-shadow:var(--shadow-1);padding:6px 10px;line-height:1.3}.action-overlays{pointer-events:none;position:absolute;inset:0;overflow:hidden}.progress-ring{will-change:transform;width:34px;height:34px;position:absolute;top:0;left:0}.progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring-track{fill:#14221c8c;stroke:#f4ffe959;stroke-width:4px}.progress-ring-arc{fill:none;stroke:var(--gold);stroke-width:4px;stroke-linecap:round}.float-text{padding:2px var(--s-2);border-radius:var(--r-pill);color:#ffd84d;font-size:14px;font-weight:var(--fw-heavy);white-space:nowrap;will-change:transform, opacity;background:#14221cbf;position:absolute;top:0;left:0}.action-menu{z-index:5;border-radius:var(--r-md);background:var(--paper);min-width:180px;color:var(--ink);box-shadow:var(--shadow-2);pointer-events:auto;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 12px))}.action-menu-item{min-height:44px;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);color:inherit;font:inherit;font-weight:var(--fw-bold);text-align:left;cursor:pointer;background:0 0;border:0}.action-menu-item:hover{background:var(--paper-3)}.action-menu-item:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.action-menu-repeat{gap:var(--s-2);min-height:36px;padding:0 var(--s-2);color:var(--ink-2);align-items:center;font-size:13px;display:flex}.panel.depot-panel{top:auto;left:50%;right:auto;bottom:calc(var(--gutter-bottom) + 56px + var(--s-4));width:min(400px, calc(100% - 2 * var(--gutter)));max-height:min(64%,460px);transform:translate(-50%)}.depot-row{row-gap:var(--s-1);grid-template-columns:1fr auto}.depot-actions{gap:var(--s-2);grid-column:1/-1;justify-content:flex-end;display:flex}.depot-row[data-current]{margin:0 calc(-1 * var(--s-2));padding-inline:var(--s-2);border-radius:var(--r-sm);background:var(--accent-soft)}.report-toggle{color:var(--ink-3);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:10px;padding:0;font-size:13px;text-decoration:underline}.report-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.report-form{gap:var(--s-2);margin-top:10px;display:flex}.report-form .danger-button{flex-shrink:0}.panel.professions-panel{top:calc(var(--gutter-top) + var(--hud-chip) + var(--s-2));right:auto;left:var(--gutter-left)}.prof-row{gap:6px var(--s-2);border-bottom:1px solid var(--line);font-size:var(--fs-md);grid-template-columns:1fr auto;align-items:center;padding:10px 0;display:grid}.prof-row:last-child{border-bottom:0}.prof-bar{border-radius:var(--r-pill);background:var(--paper-3);grid-column:1/-1;height:5px;display:block;position:relative;overflow:hidden}.prof-fill{border-radius:inherit;background:var(--accent-bright);height:100%;display:block}.save-password{margin-top:var(--s-3)}.save-later{width:100%;margin-top:var(--s-2)}.panel.settings-panel{top:calc(var(--gutter-top) + var(--hud-chip) + var(--s-2));right:auto;left:var(--gutter-left);z-index:var(--z-popover)}.settings-range{width:100%;min-height:44px;accent-color:var(--accent)}.settings-controls{color:var(--ink-2);font-size:var(--fs-sm);margin:0;padding-left:18px;line-height:1.6}.settings-about{margin-top:var(--s-3);text-decoration:none;display:inline-flex}.phone-warn{margin:var(--s-2) 0 0;color:var(--warn-ink);font-size:12px}.debt-amount{color:var(--danger-ink)}.debug-anim{width:100%;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:flex}.debug-anim-scene{flex:1;min-width:0}.debug-anim-scene canvas{width:100%;height:100%;display:block}.debug-anim-panel{background:var(--inverse);width:300px;color:var(--inverse-ink);flex-shrink:0;padding:16px;overflow-y:auto}.debug-anim-title{margin:0 0 4px;font-size:17px}.debug-anim-panel h2{text-transform:uppercase;letter-spacing:.08em;color:#f3f8ecb3;margin:14px 0 6px;font-size:12px}.debug-anim-panel h3{color:#f3f8ecb3;margin:8px 0 4px;font-size:12px}.debug-anim-playing{color:#f3f8ecb3;margin:0;font-size:13px}.debug-anim-empty{color:#f3f8ecb3;font-size:13px}.debug-anim-buttons{flex-wrap:wrap;gap:6px;display:flex}.debug-anim-buttons button{color:var(--inverse-ink);font:inherit;cursor:pointer;background:#f4ffe914;border:1px solid #f4ffe940;border-radius:8px;padding:5px 10px;font-size:12px}.debug-anim-buttons button.active{color:#1c3226;background:#7cc25a;border-color:#7cc25a;font-weight:700}@media (width<=700px){.debug-anim{flex-direction:column}.debug-anim-scene{flex:45%}.debug-anim-panel{border-radius:16px 16px 0 0;width:100%;max-height:55%}}.panel.depot-panel.job-panel,.panel.depot-panel.shift-panel{width:min(420px, calc(100% - 2 * var(--gutter)));max-height:min(100% - 260px,640px)}.job-status{margin:0 0 var(--s-2)}.job-ranks .item-row{min-height:44px}.job-rank-you{margin-left:var(--s-2);color:var(--accent-ink);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.panel-subtitle.shift-heading{flex-wrap:wrap;align-items:center;display:flex}.panel-subtitle.shift-heading>.info-box{font-weight:var(--fw-regular);flex-basis:100%}.job-shift-intro{margin:0 0 var(--s-3)}.job-shift-rules{margin-bottom:var(--s-2)}.shift-instruction{margin:0 0 var(--s-3);color:var(--ink);font-size:var(--fs-md);font-weight:var(--fw-medium);line-height:var(--lh-body)}.shift-meter{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.shift-status{gap:0 var(--s-3);color:var(--ink);font-size:var(--fs-md);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;flex-wrap:wrap;margin:0;display:flex}.shift-status[data-stable=false],.shift-status-extra[data-bad]{color:var(--danger-ink)}.shift-status-extra{color:var(--ink-2);font-weight:var(--fw-medium)}.shift-clock{--icon-size:14px;align-items:center;gap:var(--s-1);color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;flex:none;display:inline-flex}.shift-clock[data-low]{color:var(--danger-ink)}.shift-timer{height:6px;margin:var(--s-2) 0 var(--s-4);border-radius:var(--r-pill);background:var(--paper-3);overflow:hidden}.shift-timer-fill{border-radius:inherit;background:var(--accent-bright);height:100%;transition:width var(--dur-1) linear}.shift-panel:has(.shift-clock[data-low]) .shift-timer-fill{background:var(--warn)}.shift-stage{position:relative}.shift-stage[data-done]>:not(.shift-result-card){opacity:.35}.shift-kicker{margin:0 0 var(--s-2);color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--tracking-caps);text-transform:uppercase}.panel-note.shift-hint{margin-top:var(--s-3);color:var(--ink-3)}.shift-result-card{inset:calc(-1 * var(--s-1));z-index:2;justify-content:center;align-items:center;gap:var(--s-1);padding:var(--s-4);border-radius:var(--r-md);background:var(--paper-glass);text-align:center;animation:panel-in var(--dur-2) var(--ease-out);flex-direction:column;display:flex;position:absolute}.shift-result-icon{--icon-size:26px;--icon-stroke:2.5;width:52px;height:52px;margin-bottom:var(--s-1);background:var(--accent-soft);color:var(--accent-ink);border-radius:50%;place-items:center;display:grid}.shift-result-card[data-passed=false] .shift-result-icon{background:var(--danger-soft);color:var(--danger-ink)}.shift-result{color:var(--ink);font-size:var(--fs-xl);font-weight:var(--fw-heavy);line-height:var(--lh-tight);margin:0}.shift-result-sub{color:var(--ink-2);font-size:var(--fs-md);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;margin:0}.shift-result-card[data-passed=true] .shift-result-sub{color:var(--gold-ink);font-weight:var(--fw-bold)}.shift-result-actions{justify-content:center;gap:var(--s-2);width:100%;margin-top:var(--s-3);display:flex}.shift-result-actions>button{max-width:180px;min-height:var(--control-md);flex:1}.valve-order{gap:var(--s-2);margin:0 0 var(--s-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.valve-order-step{min-width:36px;height:36px;padding:0 var(--s-2);border-radius:var(--r-sm);background:var(--paper-3);color:var(--ink-2);font-size:var(--fs-lg);font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;transition:background var(--dur-1), color var(--dur-1);place-items:center;display:grid}.valve-order-step[data-next]{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 2px var(--info)}.valve-order-step[data-done]{background:var(--info);color:var(--ink-on-accent)}.valve-grid{gap:var(--s-3);grid-template-columns:repeat(4,1fr);display:grid}.valve-btn{--valve-face:var(--info-soft);--valve-spoke:color-mix(in srgb, var(--info) 35%, transparent);--valve-rim:color-mix(in srgb, var(--info) 45%, transparent);isolation:isolate;aspect-ratio:1;width:100%;max-width:72px;color:var(--ink);font:inherit;font-size:var(--fs-lg);font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;cursor:pointer;transition:scale var(--dur-1) var(--ease-out);background:0 0;border:0;border-radius:50%;justify-self:center;place-items:center;padding:0;display:grid;position:relative}.valve-btn:before{content:"";z-index:-1;background:radial-gradient(circle closest-side, var(--paper) 0 44%, transparent 45%), repeating-conic-gradient(from 45deg, var(--valve-spoke) 0 14deg, transparent 14deg 90deg), var(--valve-face);box-shadow:inset 0 0 0 5px var(--valve-rim), 0 2px 0 var(--line-strong);transition:rotate var(--dur-3) var(--ease-spring), background-color var(--dur-2);border-radius:50%;position:absolute;inset:0}.valve-btn[data-open]{--valve-face:color-mix(in srgb, var(--info) 28%, var(--paper));--valve-spoke:var(--info);--valve-rim:var(--info)}.valve-btn[data-open]:before{rotate:45deg}.valve-btn:hover:not(:disabled){scale:1.04}.valve-btn:active:not(:disabled){scale:.93}.valve-btn:disabled{cursor:default}.sweep-street{--asphalt:#4f575b;--curb:#c9c2b0;--lane-mark:#ffffff8c;--litter:#c9903f;border-radius:var(--r-md);background:var(--asphalt);box-shadow:inset 0 4px 0 var(--curb), inset 0 -4px 0 var(--curb);flex-direction:column;padding:4px 0;display:flex;overflow:hidden}.sweep-lane{cursor:pointer;width:100%;min-height:48px;transition:background var(--dur-1);background:0 0;border:0;padding:0;display:block;position:relative;overflow:hidden}.sweep-lane+.sweep-lane:before{content:"";top:-1px;left:var(--s-3);right:var(--s-3);background:repeating-linear-gradient(90deg, var(--lane-mark) 0 18px, transparent 18px 34px);height:2px;position:absolute}.sweep-lane:hover:not(:disabled){background:#ffffff0f}.sweep-lane:active:not(:disabled){background:#ffffff24}.sweep-lane:disabled{cursor:default}.sweep-lane:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.sweep-litter{background:var(--litter);border-radius:45% 55% 40% 60%/55% 45%;width:22px;height:18px;margin-top:-9px;animation:2s linear forwards sweep-litter-drift;position:absolute;top:50%;left:4px;box-shadow:inset -3px -3px #0000002e,0 2px 3px #0000004d}@keyframes sweep-litter-drift{0%{left:4px;rotate:0deg}to{left:calc(100% - 26px);rotate:540deg}}.fire-block{--roof:#c4643f;--roof-hot:#8f3a26;--wall:#f1e3c8;--wall-hot:#f6c49a;--window:#8fb3c9;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);background:color-mix(in srgb, var(--accent-bright) 22%, var(--paper-2));grid-template-columns:repeat(3,1fr);display:grid}.fire-house{border-radius:var(--r-xs);cursor:pointer;min-height:68px;transition:translate var(--dur-1), scale var(--dur-1);background:0 0;border:0;padding:0;position:relative}.fire-house:before{content:"";background:var(--roof);clip-path:polygon(50% 0,100% 100%,0 100%);height:42%;position:absolute;top:0;left:6%;right:6%}.fire-house:after{content:"";background:linear-gradient(var(--window) 0 0) 22% 30% / 26% 32% no-repeat, linear-gradient(var(--roof) 0 0) 78% 100% / 22% 52% no-repeat, var(--wall);border-radius:0 0 4px 4px;position:absolute;inset:41% 14% 0}.fire-house[data-burning]{filter:drop-shadow(0 0 10px #ff8c288c)}.fire-house[data-burning]:before{background:var(--roof-hot)}.fire-house[data-burning]:after{--wall:var(--wall-hot)}.fire-house:hover:not(:disabled){translate:0 -2px}.fire-house:active:not(:disabled){scale:.94}.fire-house:disabled{cursor:default}.fire-house:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.fire-flame{z-index:1;transform-origin:50% 100%;background:radial-gradient(circle at 50% 70%,#fff3a0 0 20%,#f8a23a 45%,#e0412f 80%);border-radius:50% 50% 45% 45%/65% 65% 35% 35%;width:30px;height:38px;animation:.35s ease-in-out infinite alternate fire-flicker;position:absolute;bottom:10px;left:calc(50% - 15px)}.fire-house[data-wet] .fire-flame{opacity:.55;filter:grayscale(.4)}@keyframes fire-flicker{0%{filter:brightness()}to{filter:brightness(1.25)}}.patrol-radio-card{align-items:center;gap:var(--s-2) var(--s-3);margin-bottom:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--inverse);color:var(--inverse-ink);grid-template-columns:auto 1fr;display:grid}.patrol-radio-dot{background:var(--ink-3);border-radius:50%;width:10px;height:10px}.patrol-radio-card[data-live] .patrol-radio-dot{background:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb, var(--danger) 35%, transparent)}.patrol-radio{font-size:var(--fs-lg);font-weight:var(--fw-heavy);line-height:var(--lh-tight);margin:0}.patrol-radio-bar{border-radius:var(--r-pill);background:color-mix(in srgb, var(--inverse-ink) 16%, transparent);grid-column:1/-1;height:4px;overflow:hidden}.patrol-radio-fill{border-radius:inherit;background:var(--gold);height:100%}.patrol-map{gap:var(--s-2);grid-template-columns:repeat(3,1fr);display:grid}.patrol-point{min-height:56px;padding:var(--s-2);border-radius:var(--r-md);background:var(--paper-3);color:var(--ink);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-bold);cursor:pointer;transition:scale var(--dur-1);border:0}.patrol-point:hover:not(:disabled){background:var(--paper-4)}.patrol-point:active:not(:disabled){scale:.96}.patrol-point[data-called],.patrol-point[data-called]:hover:not(:disabled){background:var(--info);color:var(--ink-on-accent);box-shadow:0 4px 12px color-mix(in srgb, var(--info) 40%, transparent)}.patrol-point:disabled{cursor:default}.patrol-point:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.turbine-dial{width:min(220px,100%);margin:0 auto;position:relative}.turbine-dial svg{width:100%;height:auto;display:block}.turbine-arc{fill:none;stroke-width:16px}.turbine-arc-low{stroke:var(--ink-3)}.turbine-arc-ok{stroke:var(--accent-bright)}.turbine-arc-high{stroke:var(--danger)}.turbine-dial-label{font-size:10px;font-weight:var(--fw-bold);fill:var(--ink-3)}.turbine-needle{transform-origin:100px 100px;transition:transform .1s linear}.turbine-needle line{stroke:var(--ink);stroke-width:5px;stroke-linecap:round}.turbine-hub{fill:var(--ink)}.turbine-dial[data-zone=ok] .turbine-hub{fill:var(--accent)}.turbine-sparks{background:radial-gradient(circle, var(--gold-soft) 0 20%, var(--gold) 35%, transparent 70%);width:26px;height:26px;animation:.18s steps(2,end) infinite turbine-spark;position:absolute;top:6px;right:8px}@keyframes turbine-spark{0%{opacity:1;rotate:0deg;scale:1}to{opacity:.3;rotate:45deg;scale:1.4}}.turbine-zone{margin:var(--s-1) 0 0;color:var(--accent-ink);font-size:var(--fs-xl);font-weight:var(--fw-heavy);text-align:center}.turbine-zone[data-zone=low]{color:var(--ink-2)}.turbine-zone[data-zone=high]{color:var(--danger-ink)}.turbine-spike{--icon-size:16px;min-height:30px;margin:var(--s-2) 0 0;padding:4px var(--s-3);border-radius:var(--r-sm);background:var(--warn-soft);color:var(--warn-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold);visibility:hidden;justify-content:center;align-items:center;gap:6px;display:flex}.turbine-spike[data-on]{visibility:visible;animation:panel-in var(--dur-2) var(--ease-out)}.turbine-city{--night-sky:#22304f;--night-sky-off:#10151f;--house-a:#c96f4a;--house-b:#d9a05b;--lit:#ffe36e;--unlit:#2b3340;margin:var(--s-3) 0 0;padding:var(--s-2) 6px 0;border-radius:var(--r-sm);background:var(--night-sky);transition:background var(--dur-2);justify-content:space-between;gap:4px;display:flex}.turbine-city[data-zone=low]{background:var(--night-sky-off)}.turbine-house{background:var(--house-a);border-radius:4px 4px 0 0;flex:1;justify-content:center;align-items:center;gap:3px;height:26px;display:flex}.turbine-house:nth-child(2n){background:var(--house-b);height:32px}.turbine-window{background:var(--lit);width:7px;height:8px;box-shadow:0 0 6px var(--lit);transition:background var(--dur-2), box-shadow var(--dur-2);border-radius:1px}.turbine-city[data-zone=low] .turbine-window{background:var(--unlit);box-shadow:none}.turbine-city[data-zone=high] .turbine-window{background:var(--paper);box-shadow:0 0 8px var(--paper);animation:.15s steps(2,end) infinite alternate turbine-blink}@keyframes turbine-blink{to{opacity:.35}}.turbine-score-bar{height:6px;margin:var(--s-3) 0 0;border-radius:var(--r-pill);background:var(--paper-3);position:relative}.turbine-score-fill{border-radius:inherit;background:var(--warn);height:100%;transition:width var(--dur-2) var(--ease-out)}.turbine-score-fill[data-ok]{background:var(--accent-bright)}.turbine-score-marker{background:var(--ink);border-radius:1px;width:2px;height:12px;margin-left:-1px;position:absolute;top:-3px}.turbine-goal-mark{margin:var(--s-1) 0 0;color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-align:right}.turbine-controls{gap:var(--s-2);margin-top:var(--s-3);grid-template-columns:1fr 1fr;display:grid}.turbine-btn{--icon-size:20px;justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-md);min-height:52px;font:inherit;font-size:var(--fs-lg);font-weight:var(--fw-heavy);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:scale var(--dur-1), filter var(--dur-1);border:0;display:inline-flex}.turbine-btn-down{background:var(--info-soft);color:var(--ink)}.turbine-btn-down>svg.lucide{color:var(--info)}.turbine-btn-up{background:var(--gold-soft);color:var(--gold-ink)}.turbine-btn:hover:not(:disabled){filter:brightness(.97)}.turbine-btn:active:not(:disabled){scale:.96}.turbine-btn:disabled{opacity:.45;cursor:default}.turbine-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.shift-result-card,.turbine-spike[data-on],.valve-btn:before{transition:none;animation:none}}.medal-row{margin:var(--s-2) 0 0;flex-wrap:wrap;gap:6px;padding:0;list-style:none;display:flex}.medal-chip{border-radius:var(--r-pill);background:var(--gold-soft);min-height:24px;color:var(--gold-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold);align-items:center;padding:0 10px;display:inline-flex}.medal-chip.locked{min-width:32px;color:var(--ink-3);box-shadow:inset 0 0 0 1.5px var(--line-strong);font-weight:var(--fw-medium);background:0 0;justify-content:center;padding:0}.player-card-since{gap:var(--s-2);align-items:center;display:flex}.player-card-swatch{width:12px;height:12px;box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:50%;flex:none}.player-card-actions{gap:var(--s-2);margin-top:var(--s-5);flex-wrap:wrap;align-items:center;display:flex}.player-card-actions>button{min-height:var(--control-md);flex:140px}.player-card-status{margin:0}.offline-summary .summary-row{padding:var(--s-2) 0;border-bottom:1px solid var(--line)}.offline-summary .summary-row:last-child{border-bottom:0}.offline-summary .summary-list{gap:0}.offline-summary .summary-kind{color:var(--ink-2);font-weight:var(--fw-medium)}.offline-summary .summary-value{color:var(--ink);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.summary-part{white-space:nowrap}.report-form .field-input{flex:1;min-height:36px;padding:6px 10px;font-size:13px}.account-login{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--line);text-align:left;flex-direction:column;display:flex}.account-login .field-label+.field-input+.field-label{margin-top:var(--s-3)}.account-login>.secondary-button,.account-login>.primary-small{margin-top:var(--s-4)}.account-login>.report-toggle{align-self:center}.save-or{text-align:center;margin-top:10px}.trade-modal{width:min(600px,100%)}.trade-columns{gap:var(--s-3);margin-top:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.trade-side{min-width:0;padding:var(--s-3) var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--paper-2);flex-direction:column;display:flex}.trade-heading{color:var(--ink);font-size:var(--fs-md);font-weight:var(--fw-heavy);margin:0}.trade-subtitle{margin:2px 0 var(--s-2);color:var(--ink-2);font-size:var(--fs-sm)}.trade-side .item-art{background:var(--paper)}.trade-picker{max-height:200px;overflow-y:auto}.trade-side .stepper{background:var(--paper)}.trade-offer{flex:1;min-height:96px}.trade-coins{align-items:center;gap:var(--s-2);margin-top:var(--s-3);display:flex}.trade-coins>.field-label,.trade-coins>.trade-subtitle{margin:0}.trade-side-footer{gap:var(--s-2);padding-top:var(--s-3);flex-direction:column;margin-top:auto;display:flex}.trade-confirmed{gap:var(--s-1);color:var(--accent-ink);font-weight:var(--fw-bold);align-items:center;display:inline-flex}.trade-confirmed>svg.lucide{--icon-size:16px}.trade-side .item-art-coins>svg.lucide{color:var(--gold)}.trade-value{color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;margin:0}.trade-hint{margin:var(--s-3) 0 0}@media (width<=560px){.trade-columns{grid-template-columns:1fr}}.food-effect{color:var(--ink-2);font-size:var(--fs-xs);font-weight:var(--fw-medium);flex-wrap:wrap;flex-basis:100%;order:99;grid-column:1/-1;align-items:center;gap:2px 0;margin-top:2px;line-height:1.35;display:flex}.food-effect-name{color:var(--accent-ink);font-weight:var(--fw-bold);align-items:center;gap:5px;display:inline-flex}.food-effect-chip:before,.food-effect-time:before{content:"·";color:var(--ink-3);margin:0 5px}.food-effect-time{color:var(--ink-3)}.account-section{margin:0 0 var(--s-2);padding:0 0 var(--s-4);border-bottom:1px solid var(--line)}.account-section h3{margin:0 0 4px}.account-status{margin:0 0 var(--s-3);font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-2);overflow-wrap:anywhere}.hud{--hud-navigation-size:var(--control-lg);--hud-profile-width:280px;color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-md);pointer-events:none;position:absolute;inset:0}.hud-cluster{gap:var(--s-2);pointer-events:none;flex-direction:column;display:flex;position:absolute}.hud-cluster>*,.hud-row>*{pointer-events:auto}.hud-cluster .panel,.hud-cluster .modal-backdrop{position:fixed}.hud-cluster--tl{top:var(--gutter-top);left:var(--gutter-left);width:var(--hud-profile-width);align-items:flex-start}.hud-navigation{width:100%}.hud-cluster--tc{top:var(--gutter-top);align-items:center;width:320px;margin:0 auto;left:0;right:0}.hud-cluster--tr{top:var(--gutter-top);right:var(--gutter-right);align-items:flex-end}.hud-row{gap:var(--s-2);pointer-events:none;align-items:center;display:flex}.hud-chip,.hud-title,.hud-releases,.hud-level,.mission-tracker,.hud-clock,.buff-chip,.vehicle-chip,.hud-city-goal,.hud-inactivity-row,.hud-coins,.hud-backpack,.chat-toggle,.emote-toggle,.hud-home{gap:var(--s-2);min-height:var(--hud-chip);padding:0 var(--s-3);border-radius:var(--r-md);background:var(--paper-glass);color:var(--ink);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-bold);box-shadow:var(--shadow-1);pointer-events:auto;border:0;align-items:center;line-height:1.2;display:inline-flex}button.hud-chip,.hud-title,.hud-releases,.hud-level,.mission-tracker,.hud-backpack,.chat-toggle,.emote-toggle,.hud-home{cursor:pointer;transition:background var(--dur-1), translate var(--dur-1)}.hud-title:hover,.hud-releases:hover,.hud-level:hover,.mission-tracker:hover,.hud-backpack:hover,.chat-toggle:hover,.emote-toggle:hover,.hud-home:hover:not(:disabled){background:var(--paper)}.hud-title:active,.hud-releases:active,.hud-level:active,.mission-tracker:active,.hud-backpack:active,.chat-toggle:active,.emote-toggle:active,.hud-home:active:not(:disabled){translate:0 1px}.hud-title:focus-visible,.hud-releases:focus-visible,.hud-level:focus-visible,.mission-tracker:focus-visible,.hud-backpack:focus-visible,.chat-toggle:focus-visible,.emote-toggle:focus-visible,.emote-option:focus-visible,.hud-home:focus-visible,.phone-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.hud svg.lucide{--icon-size:18px}.hud-title{padding:0 var(--s-4) 0 var(--s-3);font-size:15px;font-weight:var(--fw-heavy);letter-spacing:-.01em;position:relative}.hud-title>svg.lucide{color:var(--ink-2)}.hud-title[data-guest]:after{content:"";background:var(--gold);width:8px;height:8px;box-shadow:0 0 0 2px var(--paper);border-radius:50%;position:absolute;top:6px;right:6px}.hud-releases{width:var(--hud-chip);color:var(--ink-2);justify-content:center;padding:0;position:relative}.hud-releases.has-new{color:var(--gold-ink)}.hud-navigation>.hud-title{flex:1;min-width:0}.hud-navigation>.hud-title,.hud-navigation>.hud-releases{height:var(--hud-navigation-size);min-height:var(--hud-navigation-size)}.hud-navigation>.hud-releases{width:var(--hud-navigation-size);flex:none}.hud-releases .count-dot{background:var(--gold);border-width:2px;min-width:10px;height:10px;padding:0;top:5px;right:5px}.hud-level{gap:4px var(--s-2);width:100%;min-height:var(--hud-navigation-size);padding:var(--s-2);text-align:left;grid-template-rows:auto auto;grid-template-columns:auto auto minmax(0,1fr);display:grid;position:relative}.hud-level-icon{width:var(--control-sm);height:var(--control-sm);border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-ink);grid-row:1/span 2;place-items:center;display:grid}.hud-level-badge{white-space:nowrap;font-size:var(--fs-md);font-weight:var(--fw-heavy)}.hud-level-text{text-align:right;min-width:0;color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;justify-self:end}.hud-level-bar{border-radius:var(--r-pill);background:var(--paper-3);grid-column:2/span 2;height:5px;overflow:hidden}.hud-level-fill{border-radius:inherit;background:var(--accent-bright);height:100%;transition:width var(--dur-3) var(--ease-out);display:block}.hud-level .count-dot{top:-5px;right:-5px}.mission-tracker{gap:var(--s-2);width:100%;min-height:var(--hud-navigation-size);padding:var(--s-2);text-align:left}.mission-icon{width:var(--control-sm);height:var(--control-sm);border-radius:var(--r-sm);background:var(--gold-soft);color:var(--gold-ink);flex:none;place-items:center;display:grid}.mission-body{flex-direction:column;gap:1px;min-width:0;display:flex}.mission-label{color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--tracking-caps);text-transform:uppercase}.mission-task{font-size:13px;font-weight:var(--fw-bold);line-height:1.25}.hud-clock{min-height:34px;padding:0 var(--s-3);font-size:13px;font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;gap:6px}.hud-clock>svg.lucide{--icon-size:16px;color:var(--gold)}.hud-clock[data-night]>svg{color:var(--night)}.hud-ping{margin-left:var(--s-1);padding-left:var(--s-2);border-left:1px solid var(--line-strong);color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);align-items:center;gap:5px;display:inline-flex}.hud-ping:before{content:"";background:var(--ink-3);border-radius:50%;width:7px;height:7px}.hud-ping[data-quality=good]:before{background:var(--accent)}.hud-ping[data-quality=ok]:before{background:var(--warn)}.hud-ping[data-quality=bad]:before{background:var(--danger)}.buff-bar{pointer-events:none;flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.buff-chip{min-height:30px;font-size:var(--fs-sm);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;white-space:nowrap;gap:6px;padding:0 10px}.buff-name{color:var(--ink-2);font-weight:var(--fw-medium)}.buff-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.buff-dot-food{background:var(--gold)}.buff-dot-drink{background:var(--info)}.buff-dot-rest{background:var(--success)}.vehicle-chip{gap:var(--s-2);padding:0 4px 0 var(--s-3);white-space:nowrap;font-size:13px}.vehicle-chip>svg.lucide{color:var(--ink-2)}.vehicle-chip-fuel{color:var(--ink-3);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.vehicle-chip-dismount{min-height:var(--control-sm)}.hud-city-goal{width:100%;padding:10px var(--s-3);font-size:var(--fs-sm);flex-direction:column;align-items:stretch;gap:6px;display:flex}.city-goal-control{--city-goal-size:var(--hud-navigation-size);flex:none}.hud-city-goal-toggle{min-width:var(--city-goal-size);height:var(--city-goal-size);padding:var(--s-1);border-radius:var(--r-md);background:var(--paper-glass);color:var(--ink);box-shadow:var(--shadow-1);font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;cursor:pointer;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.hud-city-goal-toggle[data-met]{color:var(--gold-ink)}.hud-city-goal-toggle[aria-expanded=true]{background:var(--paper-3)}.hud-city-goal.city-goal-popover{top:calc(var(--gutter-top) + var(--city-goal-size) + var(--s-2));left:var(--gutter-left);z-index:var(--z-popover);width:min(320px, calc(100vw - var(--gutter-left) - var(--gutter-right)));max-height:calc(100dvh - var(--gutter-top) - var(--gutter-bottom) - 80px);padding:var(--s-3);background:var(--paper);position:fixed;overflow-y:auto}.city-goal-heading{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.city-goal-popover p{color:var(--ink-2);font-weight:var(--fw-medium);margin:0;line-height:1.5}.hud-city-goal-count{color:var(--ink-2);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;white-space:nowrap}.hud-city-goal-done{color:var(--gold-ink);font-weight:var(--fw-bold)}.hud-city-goal-buff{color:var(--accent-ink);font-weight:var(--fw-medium);align-items:center;gap:6px;display:flex}.hud-city-goal-buff>svg.lucide{--icon-size:14px}.hud-decree{color:var(--ink-2)}.hud-inactivity{pointer-events:none;flex-direction:column;gap:6px;width:100%;display:flex}.hud-inactivity-row{justify-content:space-between;gap:var(--s-3);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1.3}.hud-inactivity-row>svg.lucide{color:var(--warn)}.hud-inactivity-row>span{flex:1}.hud-toast{z-index:var(--z-toast)}.hud-net{top:calc(var(--gutter-top) + var(--hud-chip) + var(--s-2));z-index:var(--z-toast);gap:var(--s-3);max-width:calc(100% - 2 * var(--gutter));padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--inverse);color:var(--inverse-ink);font-size:var(--fs-sm);font-weight:var(--fw-medium);box-shadow:var(--shadow-2);pointer-events:auto;align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud-net-logout{color:var(--accent-bright);font:inherit;font-weight:var(--fw-bold);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.hud-coins{padding:0 var(--s-3) 0 10px;font-size:15px;font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;transition:scale var(--dur-2) var(--ease-spring), box-shadow var(--dur-2);gap:6px}.hud-coins>svg.lucide{--icon-size:19px;color:var(--gold)}.hud-coins--rising{box-shadow:0 0 0 2px var(--gold), var(--shadow-1);scale:1.06}.hud-backpack>svg.lucide{color:var(--ink-2)}.hud-backpack-kg{font-variant-numeric:tabular-nums}.hud-backpack[data-load=high]{color:var(--danger-ink)}.hud-backpack[data-load=high]>svg{color:var(--danger)}.chat-toggle,.emote-toggle,.hud-home{min-height:var(--control-lg);padding:0 var(--s-4) 0 14px;position:absolute}.chat-toggle{left:var(--gutter-left);bottom:var(--gutter-bottom)}.chat-toggle .count-dot,.hud-home .count-dot{top:-5px;right:-5px}.emote-menu{right:var(--gutter-right);bottom:var(--gutter-bottom);gap:var(--s-2);pointer-events:none;flex-direction:column;align-items:flex-end;display:flex;position:absolute}.emote-toggle{position:relative}.emote-menu>*{pointer-events:auto}.emote-options{border-radius:var(--r-md);background:var(--paper);min-width:180px;box-shadow:var(--shadow-2);animation:panel-in var(--dur-2) var(--ease-out);flex-direction:column;gap:2px;padding:6px;display:flex}.emote-option{min-height:var(--control-md);padding:0 var(--s-3);border-radius:var(--r-sm);color:var(--ink);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);text-align:left;cursor:pointer;background:0 0;border:0}.emote-option:hover{background:var(--paper-3)}.hud-home{left:var(--gutter-left);bottom:calc(var(--gutter-bottom) + var(--control-lg) + var(--s-3));width:var(--control-lg);justify-content:center;padding:0}.hud-home:disabled{opacity:.6;cursor:default}.hud-home>svg.lucide{--icon-size:20px;color:var(--ink-2)}.phone-toggle{left:50%;bottom:var(--gutter-bottom);background:var(--bezel);color:#fff;width:56px;height:56px;box-shadow:0 0 0 1.5px #ffffff24 inset, var(--shadow-2);cursor:pointer;pointer-events:auto;transition:translate var(--dur-1);border:0;border-radius:18px;place-items:center;display:grid;position:absolute;transform:translate(-50%)}.phone-toggle:hover{translate:0 -1px}.phone-toggle:active{translate:0 1px}.phone-toggle>svg.lucide{--icon-size:24px}.hud-hint{bottom:calc(var(--gutter-bottom) + 56px + var(--s-3));max-width:min(880px, calc(100% - 2 * var(--gutter)));padding:var(--s-2) var(--s-4);border-radius:var(--r-md);color:var(--inverse-ink);font-size:var(--fs-sm);font-weight:var(--fw-medium);transition:opacity var(--dur-3) ease;background:#1c2b22b8;flex-wrap:wrap;justify-content:center;gap:4px 14px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud-hint[data-leaving]{opacity:0}.hud-hint>span{white-space:nowrap}.chat-panel{left:var(--gutter-left);bottom:calc(var(--gutter-bottom) + var(--chat-keyboard-inset,0px));z-index:calc(var(--z-inventory) + 1);width:min(390px, calc(100% - 2 * var(--gutter)));max-height:min(48%, 380px, calc(var(--chat-viewport-height,100dvh) - var(--gutter-top) - var(--gutter-bottom)));padding:var(--s-2) var(--s-3) var(--s-3);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-2);pointer-events:auto;animation:panel-in var(--dur-2) var(--ease-out);flex-direction:column;display:flex;position:fixed}.chat-channels{border-radius:var(--r-md);background:var(--paper-3);border:0;gap:2px;margin:0;padding:3px;display:flex}.chat-channels .choice-chip{min-height:30px;padding:0 var(--s-3);color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);background:0 0;border:0;border-radius:11px}.chat-channels .choice-chip[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #1020181f}.chat-friends{align-items:center;gap:var(--s-2);display:flex}.chat-friends select{flex:1;min-width:0}.chat-note{color:var(--ink-3);font-size:var(--fs-sm);margin:var(--s-2) 0 0}.chat-lines{min-height:80px;margin:var(--s-2) 0;flex:1;padding:0 2px;font-size:13.5px;line-height:1.4;list-style:none;overflow-y:auto}.chat-line{overflow-wrap:anywhere;padding:3px 0}.chat-time{color:var(--ink-3);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.chat-name{font-weight:var(--fw-heavy)}.chat-line--local .chat-name{color:var(--accent-ink)}.chat-empty{padding:var(--s-4) 0;color:var(--ink-3);text-align:center}.chat-form{gap:6px;display:flex}.chat-input{min-height:var(--control-md);font-size:16px}.mayor-dialog{left:50%;bottom:calc(var(--gutter-bottom) + 56px + var(--s-4));z-index:var(--z-popover);gap:2px var(--s-3);width:min(460px, calc(100% - 2 * var(--gutter)));padding:var(--s-4) var(--s-4) var(--s-3);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-2);pointer-events:auto;animation:panel-in var(--dur-3) var(--ease-out);grid-template-columns:auto 1fr;display:grid;position:absolute;transform:translate(-50%)}.mayor-avatar{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-ink);border-radius:50%;grid-row:1/span 2;place-items:center;display:grid}.mayor-avatar>svg.lucide{--icon-size:20px}.mayor-name{color:var(--accent-ink);font-size:var(--fs-sm);font-weight:var(--fw-heavy);align-self:end}.mayor-text{margin:0;font-size:15px;line-height:1.45}.mayor-ask{gap:var(--s-2);margin-top:var(--s-3);flex-direction:column;grid-column:1/-1;display:flex}.mayor-ask-row{gap:var(--s-2);display:flex}.mayor-ask-row .field-input{flex:1;min-width:0}.mayor-ask-answer{padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--paper-2);margin:0;font-size:14px;line-height:1.45}.mayor-ask-status,.mayor-ask-hint{color:var(--ink-3);font-size:var(--fs-sm);margin:0}.mayor-actions{margin-top:var(--s-2);grid-column:1/-1;justify-content:flex-end;display:flex}.level-up{z-index:var(--z-toast);min-width:260px;max-width:calc(100% - 2 * var(--gutter));padding:var(--s-5) var(--s-6) var(--s-4);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);text-align:center;box-shadow:var(--shadow-2);animation:level-up-pop .5s var(--ease-spring);pointer-events:none;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:22%;left:50%;transform:translate(-50%)}.level-up-medal{width:52px;height:52px;margin-bottom:var(--s-2);background:var(--gold-soft);color:var(--gold);border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 2px #e8b01959}.level-up-medal>svg.lucide{--icon-size:26px;fill:currentColor}.level-up-title{font-size:var(--fs-xl);font-weight:var(--fw-heavy);letter-spacing:-.01em}.level-up-text{color:var(--ink-2);font-size:13px;font-weight:var(--fw-medium)}@keyframes level-up-pop{0%{opacity:0;scale:.8}}.hud-update{top:var(--gutter-top);z-index:var(--z-banner);gap:var(--s-3);width:max-content;max-width:min(640px, calc(100% - 2 * var(--gutter)));padding:var(--s-2) var(--s-2) var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-2);pointer-events:auto;animation:hud-update-in var(--dur-3) var(--ease-out);align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud-update-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;display:grid}.hud-update-text{flex-direction:column;gap:1px;min-width:0;font-size:13px;line-height:1.3;display:flex}.hud-update-text strong{font-weight:var(--fw-heavy)}.hud-update-what{color:var(--ink-2);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hud-update-actions{flex-shrink:0;gap:4px;display:flex}@keyframes hud-update-in{0%{opacity:0;translate:0 -12px}}.releases-modal{width:min(480px,100%);padding-bottom:var(--s-2)}.releases-modal .modal-text{margin-bottom:var(--s-2)}.release-list{margin:0;padding:0;list-style:none}.release-item{padding:var(--s-4) 0;border-top:1px solid var(--line)}.release-head{gap:var(--s-2);color:var(--ink-3);font-size:var(--fs-sm);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;align-items:center;display:flex}.release-date{font-weight:var(--fw-medium);margin-left:auto}.release-title{font-size:var(--fs-lg);font-weight:var(--fw-heavy);letter-spacing:-.005em;margin-top:2px}.release-item:not(.fresh) .release-title{color:var(--ink-2)}.release-points{margin:var(--s-2) 0 0;color:var(--ink-2);padding-left:18px;font-size:13.5px;line-height:1.5}.release-points li+li{margin-top:4px}.release-item.fresh .release-points{color:var(--ink)}.craft-sources{color:var(--ink-2);font-size:var(--fs-sm)}.craft-sources summary,.quarry-progress summary{cursor:pointer;min-height:var(--control-md);align-content:center}.craft-sources ul{padding-left:var(--s-4);gap:var(--s-2);display:grid}.mining-paused{padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink)}.mining-paused p{margin:var(--s-2) 0 0;color:var(--ink-2);font-size:var(--fs-sm)}.quarry-progress{gap:var(--s-2);padding:var(--s-3);background:var(--paper);color:var(--ink);border-radius:var(--r-md);font-size:var(--fs-sm);display:grid}.quarry-progress progress{width:100%;accent-color:var(--gold)}.world-actions{right:var(--gutter-right);bottom:calc(var(--gutter-bottom) + var(--control-lg) + var(--s-3));z-index:var(--z-hud-float);gap:var(--s-2);pointer-events:none;max-height:min(65dvh,580px);max-width:min(320px, calc(100vw - var(--gutter-left) - var(--gutter-right)));flex-direction:column;align-items:stretch;display:flex;position:absolute;overflow-y:auto}.world-actions:empty{display:none}:is(.hud--compact:not(:has(.backpack-layer)):has(>[role=dialog]) .world-actions,.hud--compact:not(:has(.backpack-layer)):has(>:not(.world-actions) [role=dialog]) .world-actions,.hud--compact:not(:has(.backpack-layer)):has(.mobile-hud-tools.is-open) .world-actions){visibility:hidden}.fishing-cast-buttons{gap:var(--s-2);pointer-events:auto;flex-direction:column;flex-shrink:0;display:flex}.vehicle-quick{pointer-events:auto;flex-shrink:0}.vehicle-quick-button{gap:var(--s-2);min-height:var(--control-lg);padding:0 var(--s-4);border-radius:var(--r-md);background:var(--paper);color:var(--ink);white-space:nowrap;box-shadow:var(--shadow-1);pointer-events:auto;align-items:center;font-size:15px;display:inline-flex}.fishing-cast-button{min-width:168px;min-height:var(--control-lg);border-radius:var(--r-md);box-shadow:var(--shadow-1);pointer-events:auto;font-size:15px}.fishing-cast-button.auto{background:var(--paper);color:var(--ink)}.fishing-cast-button.auto:hover:not(:disabled){background:var(--paper-2)}.fishing-overlay{z-index:var(--z-popover);padding:0 var(--gutter) calc(var(--gutter-bottom) + 56px + var(--s-6));pointer-events:none;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.fishing-card,.fishing-auto,.fishing-bite,.fishing-catch,.fishing-reel{gap:var(--s-2);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);font:inherit;text-align:center;box-shadow:var(--shadow-2);pointer-events:auto;border:0;flex-direction:column;align-items:center;display:flex}.fishing-hint{padding:var(--s-2) var(--s-4);border-radius:var(--r-md);background:var(--paper-glass);color:var(--ink);font-size:var(--fs-md);font-weight:var(--fw-bold);box-shadow:var(--shadow-1)}.fishing-wait{gap:var(--s-3);flex-direction:column;align-items:center;display:flex}.fishing-bobber{filter:drop-shadow(0 3px 4px #0000004d);width:34px;height:44px;animation:1.6s ease-in-out infinite fishing-bob}.bobber-line{stroke:var(--ink);stroke-width:2px;stroke-linecap:round}.bobber-top{fill:var(--danger)}.bobber-bottom{fill:var(--paper)}.bobber-band{fill:var(--ink)}.fishing-bobber.nibble{animation:.35s ease-in-out 2 fishing-nibble}@keyframes fishing-bob{50%{translate:0 -6px}}@keyframes fishing-nibble{40%{translate:0 7px;scale:1.12}}.fishing-cancel{min-height:var(--control-md);box-shadow:var(--shadow-1);pointer-events:auto}.fishing-wait .fishing-cancel{background:var(--paper)}.fishing-bite{min-width:220px;padding:var(--s-5) var(--s-6) var(--s-4);cursor:pointer;animation:fishing-pop .18s var(--ease-spring)}@keyframes fishing-pop{0%{scale:.8}}.fishing-bite-mark{background:var(--danger);color:#fff;border-radius:50%;place-items:center;width:52px;height:52px;font-size:32px;font-weight:900;line-height:1;animation:.4s steps(2,jump-none) infinite fishing-bite-blink;display:grid}@keyframes fishing-bite-blink{50%{opacity:.55}}.fishing-bite-bar{border-radius:var(--r-pill);background:var(--paper-3);width:100%;height:6px;overflow:hidden}.fishing-bite-fill{border-radius:inherit;background:var(--danger);transform-origin:0;width:100%;height:100%;display:block}.fishing-bite-label{font-size:var(--fs-lg);font-weight:var(--fw-heavy)}.fishing-key-hint{color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.fishing-reel{gap:var(--s-5);padding:var(--s-5);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;flex-direction:row;align-items:center}.fishing-reel-track{border-radius:var(--r-pill);background:var(--paper-3);width:40px;height:240px;position:relative;overflow:visible}.fishing-reel-zone{border-radius:var(--r-pill);background:#7cc25a8c;position:absolute;left:0;right:0}.fishing-reel-marker{border-radius:var(--r-pill);background:var(--gold);width:48px;height:30px;color:var(--gold-ink);place-items:center;transition:bottom 40ms linear;display:grid;position:absolute;left:50%;transform:translate(-50%,50%);box-shadow:0 2px 8px #e8b01999}.fishing-reel.holding .fishing-reel-marker{background:var(--warn)}.fishing-reel-side{gap:var(--s-3);flex-direction:column;align-items:stretch;min-width:150px;display:flex}.fishing-reel-coach{border-radius:var(--r-sm);font-size:var(--fs-lg);font-weight:var(--fw-heavy);text-align:center;transition:background var(--dur-1) linear;padding:6px 10px}.fishing-reel-coach.holdNow{background:var(--gold-soft);color:var(--gold-ink)}.fishing-reel-coach.releaseNow{background:var(--danger-soft);color:var(--danger-ink)}.fishing-reel-coach.keepIt{background:var(--accent-soft);color:var(--accent-ink)}.fishing-reel-meter{border-radius:var(--r-pill);background:var(--paper-3);height:10px;overflow:hidden}.fishing-reel-meter>span{border-radius:inherit;background:var(--accent-bright);transform-origin:0;height:100%;transition:transform 60ms linear;display:block}.fishing-reel-meter.time{width:100%;height:5px}.fishing-reel-meter.time>span{background:var(--ink-3)}.fishing-reel-label{font-size:15px;font-weight:var(--fw-heavy)}.fishing-reel-hint{bottom:calc(var(--gutter-bottom) + 56px + var(--s-3));text-align:center;max-width:min(92vw,420px);font-size:13px;position:absolute}.fishing-auto{min-width:260px;padding:var(--s-4) var(--s-5);gap:6px}.fishing-auto-title{color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);align-items:center;gap:6px;display:flex}.fishing-auto-count{font-size:var(--fs-2xl);font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums}.fishing-auto-last{color:var(--ink-2);font-size:13px}.fishing-auto .fishing-cancel{margin-top:var(--s-2);box-shadow:none}.fishing-catch{min-width:260px;padding:var(--s-5) var(--s-6) var(--s-4);animation:fishing-pop .22s var(--ease-spring);gap:6px}.fishing-catch.rare{box-shadow:0 0 0 3px var(--gold), var(--shadow-2)}.fishing-catch-title{color:var(--accent-ink);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--tracking-caps);text-transform:uppercase}.fishing-catch-icon{font-size:56px;line-height:1.1;animation:.6s ease-out fishing-catch-flip}@keyframes fishing-catch-flip{0%{translate:0 24px;rotate:-30deg;scale:.6}60%{translate:0 -8px;rotate:10deg;scale:1.1}}.fishing-catch-name{font-size:22px;font-weight:var(--fw-heavy);letter-spacing:-.01em}.fishing-catch-tags{gap:6px;display:flex}.fishing-tag{min-height:22px;padding:0 var(--s-2);border-radius:var(--r-pill);background:var(--paper-3);color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-bold);align-items:center;display:inline-flex}.fishing-catch.rare .fishing-catch-rarity{background:var(--gold-soft);color:var(--gold-ink)}.fishing-catch-xp{color:var(--ink-3);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.fishing-catch-actions{gap:var(--s-2);margin-top:var(--s-2);display:flex}.fishing-catch-actions .fishing-cancel{box-shadow:none}.hud-loading{background:var(--sky);color:var(--ink);font-size:var(--fs-lg);font-weight:var(--fw-bold);place-items:center;display:grid;position:absolute;inset:0}@media (width<=1000px){.hud-cluster--tl{max-width:calc(50% - var(--gutter) - 4px)}.hud-cluster--tc{top:calc(var(--gutter-top) + var(--hud-chip) + var(--s-2));right:var(--gutter-right);width:min(300px, calc(50% - var(--gutter) - 4px));align-items:flex-end;margin:0;left:auto}.buff-bar{justify-content:flex-end}}@media (width<=700px){.hud-navigation{width:calc(100vw - var(--gutter-left) - var(--gutter-right))}.hud-cluster--tr{top:calc(var(--gutter-top) + var(--hud-navigation-size) + var(--s-2));max-width:calc(50% - var(--gutter) - 4px)}.hud-cluster--tr>.hud-row{flex-direction:column;align-items:flex-end;max-width:100%}.hud-cluster--tc{top:calc(var(--gutter-top) + var(--hud-navigation-size) + 2 * var(--hud-chip) + 3 * var(--s-2))}.hud-level{grid-template-columns:auto minmax(0,1fr);width:100%}.hud-level-icon{display:none}.hud-level-bar{grid-column:1/-1}.mission-tracker{max-width:100%}.mission-icon{display:none}.mission-tracker{padding-left:var(--s-3)}.buff-bar{flex-direction:column;align-items:flex-end}.buff-name{display:none}.hud-inactivity-row{flex-wrap:wrap}.vehicle-chip-name{display:none}.hud-toast{left:var(--gutter-left);right:var(--gutter-right);bottom:calc(var(--gutter-bottom) + 56px + var(--s-3));max-width:none;position:fixed}.hud-coins,.hud-backpack{padding:0 10px;font-size:14px}.hud-backpack{white-space:normal;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:100%}.chat-toggle,.emote-toggle{width:var(--control-lg);justify-content:center;padding:0}.hud-button-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.chat-toggle>svg.lucide,.emote-toggle>svg.lucide{--icon-size:22px}.hud-hint{display:none}.mayor-dialog{bottom:calc(var(--gutter-bottom) + 56px + var(--s-3))}.hud-update{width:calc(100% - 2 * var(--gutter));flex-wrap:wrap}.hud-update-text{flex:1}.hud-update-actions{justify-content:flex-end;width:100%}.fishing-cast-button{min-width:0}}@media (prefers-reduced-motion:reduce){.hud-coins--rising{scale:1}.level-up,.hud-update,.mayor-dialog,.emote-options,.chat-panel,.fishing-bobber,.fishing-bite,.fishing-bite-mark,.fishing-catch,.fishing-catch-icon{animation:none}}.fishing-overlay.mining-overlay{top:auto;right:var(--gutter-right);bottom:calc(var(--gutter-bottom) + var(--control-lg) + var(--s-3));width:min(260px, calc(100vw - 2 * var(--gutter-right)));max-height:calc(100dvh - 180px);padding:0;left:auto;overflow-y:auto;transform:none}.world-actions:has(.mining-overlay){z-index:calc(var(--z-panel) - 1)}.mining-overlay .fishing-auto{box-sizing:border-box;width:100%;min-width:0}.hud-backpack{z-index:var(--z-inventory);position:relative}.backpack-layer{display:contents}.backpack-layer>.panel{z-index:var(--z-inventory);pointer-events:auto}.backpack-panel .confirm{z-index:1;background:var(--paper);box-shadow:var(--shadow-2);position:sticky;bottom:0}@media (width<=700px){.backpack-panel .storage-quantity-field .secondary-button{min-height:var(--control-lg)}}
