: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:#6c8072;--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:40px;--control-lg:48px;--hud-chip:40px;--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;--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}.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}}.econ-lead{margin:0 0 var(--s-3);color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-body)}.econ-section-title{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.econ-actions{gap:var(--s-2);margin-top:var(--s-3);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.econ-well{margin:0 0 var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--paper-2);color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-body)}.econ-well>strong{color:var(--ink)}.econ-head{gap:var(--s-3);align-items:center;min-width:0;display:flex}.econ-head:has(.food-effect){align-items:flex-start}.econ-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.econ-main>.progress{margin-top:var(--s-1)}.econ-name{color:var(--ink);font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.econ-meta{color:var(--ink-2);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.econ-qty{color:var(--ink-2);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.econ-side{color:var(--ink);font-weight:var(--fw-bold);text-align:right;font-variant-numeric:tabular-nums;flex:none}.econ-side-stack{gap:var(--s-1);flex-direction:column;align-items:flex-end;display:flex}.econ-fraction{min-width:5.5em}.econ-side-muted{color:var(--ink-3);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.econ-controls{gap:var(--s-2);margin-top:var(--s-2);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.econ-select+.econ-controls{margin-top:var(--s-3)}.econ-total{min-width:0;color:var(--ink-2);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;flex:1}.econ-detail{margin-top:var(--s-2)}.econ-detail>.progress{margin-top:var(--s-1)}:is(.econ-row:has(>.econ-head>.item-art)>.econ-controls,.econ-row:has(>.econ-head>.item-art)>.econ-detail){padding-left:calc(36px + var(--s-3))}.item-row.econ-row{min-height:0;padding:var(--s-3) 0;display:block}.item-row.econ-row[data-here] .econ-name{color:var(--accent-ink)}.econ-meta.econ-meta-warn{color:var(--warn-ink)}.item-art{border-radius:var(--r-sm);background:var(--paper-2);flex:none;place-items:center;width:36px;height:36px;font-size:19px;line-height:1;display:inline-grid}.item-art>svg.lucide{--icon-size:18px;color:var(--ink-2)}.stepper{border-radius:var(--r-sm);background:var(--paper-2);flex:none;align-items:center;height:36px;padding:0 2px;display:inline-flex}.stepper-btn{border-radius:var(--r-xs);width:32px;height:32px;color:var(--ink);font:inherit;font-size:var(--fs-lg);font-weight:var(--fw-bold);cursor:pointer;transition:background var(--dur-1);background:0 0;border:0;place-items:center;padding:0;line-height:1;display:inline-grid}.stepper-btn:hover:not(:disabled){background:var(--paper-4)}.stepper-btn:disabled{color:var(--ink-3);opacity:.5;cursor:not-allowed}.stepper-btn:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.stepper-value{min-width:36px;color:var(--ink);font-weight:var(--fw-bold);text-align:center;font-variant-numeric:tabular-nums}.econ-stats{gap:var(--s-3);margin:0 0 var(--s-4);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--paper-2);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.econ-stats>.progress{grid-column:1/-1}.econ-stat{flex-direction:column;gap:2px;min-width:0;display:flex}.econ-stat-label{color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.econ-stat-value{align-items:baseline;gap:var(--s-1);color:var(--ink);font-size:var(--fs-xl);font-weight:var(--fw-heavy);line-height:var(--lh-tight);font-variant-numeric:tabular-nums;display:flex}.econ-stat-value>small{color:var(--ink-3);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.econ-stat-sub{color:var(--ink-2);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.econ-notice{gap:var(--s-2);margin:var(--s-3) 0 0;color:var(--warn-ink);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:var(--lh-body);align-items:flex-start;display:flex}.econ-notice[data-tone=danger]{color:var(--danger-ink)}.econ-status{gap:var(--s-2);margin:var(--s-2) 0 0;color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-body);align-items:baseline;display:flex}.econ-status:before{content:"";background:var(--ink-3);border-radius:50%;flex:none;width:8px;height:8px;translate:0 -1px}.econ-status[data-state=ok]:before{background:var(--accent-bright)}.econ-status[data-state=warn]:before{background:var(--warn)}.econ-status[data-state=done]:before{background:var(--gold)}.panel-footer.econ-wallet{color:var(--ink-2);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;justify-content:flex-start;align-items:center}.panel-footer.econ-wallet>span{flex:1;min-width:0}.econ-notice>svg.lucide{--icon-size:16px;color:var(--warn);margin-top:1px}.econ-stat-value>svg.lucide{--icon-size:18px;color:var(--gold);align-self:center}.panel-footer.econ-wallet>svg.lucide{--icon-size:18px;color:var(--gold)}.econ-notice[data-tone=danger]>svg.lucide{color:var(--danger)}.econ-fields{gap:var(--s-3);margin-top:var(--s-3);grid-template-columns:1fr 1fr;display:grid}.econ-field{flex-direction:column;min-width:0;display:flex}.econ-field>.field-label{margin-bottom:var(--s-1);font-size:var(--fs-sm)}.field-label.econ-field-top{margin-top:var(--s-4)}.field-row.econ-field-row{margin-top:var(--s-2)}.econ-select{min-width:0;display:block;position:relative}.econ-select>select.field-input{appearance:none;padding-right:var(--s-8);cursor:pointer}.econ-select:after{content:"";top:50%;right:var(--s-3);background:var(--ink-2);pointer-events:none;width:16px;height:16px;position:absolute;translate:0 -50%;-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' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%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' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}.field-input.econ-input-sm{width:96px;min-height:36px;padding:6px var(--s-2);font-size:var(--fs-md);font-variant-numeric:tabular-nums}.panel.depot-panel.building-panel{width:min(460px, calc(100% - 2 * var(--gutter)));max-height:min(70%,560px)}.tabs.building-tabs{scrollbar-width:none;overflow-x:auto}.tabs.building-tabs::-webkit-scrollbar{display:none}.tabs.building-tabs>.tab{padding:0 var(--s-2);white-space:nowrap;flex:1 0 auto}.hires-section .weight-bar{margin:var(--s-2) 0 0}.weight-bar.econ-timer{margin-top:var(--s-4)}@media (width<=700px){.panel.depot-panel.building-panel{width:calc(100% - var(--gutter-left) - var(--gutter-right))}:is(.econ-row:has(>.econ-head>.item-art)>.econ-controls,.econ-row:has(>.econ-head>.item-art)>.econ-detail){padding-left:0}}.item-icon{border-radius:var(--r-sm);background:var(--paper-3);flex:none;place-items:center;line-height:1;display:inline-grid}.item-icon--md{width:34px;height:34px;font-size:19px}.item-icon--sm{border-radius:7px;width:24px;height:24px;font-size:14px}.item-name--with-icon{gap:var(--s-3);align-items:center;display:flex}.item-row--icon{grid-template-columns:1fr auto}.item-name-stack{flex-direction:column;gap:2px;min-width:0;display:flex}.item-sub{gap:var(--s-2);font-size:var(--fs-sm);font-weight:var(--fw-regular,400);display:flex}@media (width<=700px){.item-row--icon{grid-template-columns:1fr auto}.item-row--icon .item-actions{grid-column:auto}}.house-interior{z-index:0;background:#2b2433;position:absolute;inset:0}.house-canvas{touch-action:none;cursor:pointer;width:100%;height:100%;display:block}.house-dock{right:var(--gutter-right);bottom:calc(var(--gutter-bottom) + 56px + var(--s-4));left:var(--gutter-left);z-index:3;gap:var(--s-3);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute}.house-dock>*{pointer-events:auto}.house-card{border-radius:var(--r-lg);background:var(--paper);width:min(560px,100%);max-height:min(52vh,460px);color:var(--ink);box-shadow:var(--shadow-2);animation:panel-in var(--dur-2) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.house-hint{max-width:min(420px,100%);padding:var(--s-2) var(--s-4);border-radius:var(--r-md);background:var(--inverse);color:var(--inverse-ink);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-align:center;box-shadow:var(--shadow-1);margin:0}.house-bar{gap:var(--s-2) var(--s-4);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.house-sheet+.house-bar{border-top:1px solid var(--line)}.house-bar-title{min-width:0;line-height:var(--lh-tight);gap:2px;display:grid}.house-bar-title strong{font-size:var(--fs-lg);font-weight:var(--fw-heavy)}.house-likes{gap:var(--s-1);color:var(--ink-2);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;align-items:center;display:inline-flex}.house-likes>svg.lucide{--icon-size:14px;color:var(--ink-3)}.house-likes-total{color:var(--ink);font-weight:var(--fw-bold)}.house-likes small{color:var(--ink-3);font-size:inherit}.house-likes small:before{content:"·";margin:0 var(--s-1) 0 2px}.house-bar-actions{gap:var(--s-2);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.house-bar-actions .primary-small{min-height:var(--control-md);padding:0 var(--s-4)}.house-toggle{gap:var(--s-2);min-height:var(--control-md);margin-right:var(--s-1);color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;align-items:center;display:inline-flex}.house-switch{border-radius:var(--r-pill);background:var(--paper-4);appearance:none;cursor:pointer;width:36px;height:22px;transition:background var(--dur-1);flex:none;margin:0;position:relative}.house-switch:before{content:"";background:var(--paper);width:16px;height:16px;box-shadow:var(--shadow-1);transition:translate var(--dur-2) var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px}.house-switch:checked{background:var(--accent)}.house-switch:checked:before{translate:14px}.house-switch:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.house-switch:disabled{opacity:.5;cursor:progress}.house-sheet{overscroll-behavior:contain;min-height:0;padding:var(--s-3) var(--s-4) var(--s-4);overflow-y:auto}.house-sheet .phone-tabs{margin-top:0}.house-art{border-radius:var(--r-sm);background:var(--paper-2);flex:none;place-items:center;width:40px;height:40px;font-size:22px;line-height:1;display:grid}.house-sheet-row{gap:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}.house-sheet-text{min-width:0;line-height:var(--lh-tight);flex:140px;gap:1px;display:grid}.house-sheet-text strong{font-size:var(--fs-md);font-weight:var(--fw-bold)}.house-sheet-text small{color:var(--ink-2);font-size:var(--fs-sm)}.house-sheet-actions{gap:var(--s-2);flex-wrap:wrap;justify-content:flex-end;margin-left:auto;display:flex}.house-picker{gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(92px,1fr));margin:0;padding:0;list-style:none;display:grid}.house-pick{width:100%;min-height:84px;padding:var(--s-2) var(--s-1);border-radius:var(--r-md);background:var(--paper-2);color:var(--ink);font:inherit;font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-1);border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.house-pick:hover{background:var(--paper-3)}.house-pick:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.house-pick-icon{margin-bottom:2px;font-size:26px;line-height:1}.house-pick-name{font-weight:var(--fw-medium);line-height:var(--lh-tight);text-align:center}.house-pick small{color:var(--ink-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.house-styles{flex-direction:column;display:flex}.house-style-row{gap:var(--s-2) var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;display:flex}.house-style-row:last-of-type{border-bottom:0}.house-style-label{line-height:var(--lh-tight);flex:100px;display:grid}.house-style-label strong{font-size:var(--fs-md);font-weight:var(--fw-bold)}.house-style-label small{color:var(--ink-3);font-size:var(--fs-sm)}.house-style-options{gap:var(--s-1);flex-wrap:wrap;justify-content:flex-end;display:flex}.house-tip{margin:var(--s-3) 0 0;color:var(--ink-3);font-size:var(--fs-xs)}@media (width<=700px){.house-dock{bottom:calc(var(--gutter-bottom) + 2 * var(--control-lg) + 2 * var(--s-3))}.house-card{width:100%;max-height:46vh}}.house-door{gap:var(--s-2) var(--s-3);margin:var(--s-2) 0;padding:var(--s-3);border-radius:var(--r-md);background:var(--paper-2);color:var(--ink-2);font-size:var(--fs-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.houses-list{margin:var(--s-2) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.houses-row{gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.houses-row:last-child{border-bottom:0}.houses-rank{color:var(--ink-3);font-variant-numeric:tabular-nums;margin-right:6px}.houses-row small{color:var(--ink-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;margin-top:2px;display:block}.houses-champion{gap:var(--s-2);margin:var(--s-3) 0 var(--s-1);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--gold-soft);color:var(--gold-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold);align-items:center;display:flex}.houses-champion>svg.lucide{--icon-size:16px}.carpentry-list .item-row{align-items:flex-start}.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}.price-advice{gap:var(--s-1);margin:var(--s-2) 0 0;padding: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);font-variant-numeric:tabular-nums;flex-direction:column;display:flex}.price-advice-line{margin:0}.price-advice .econ-notice{margin:var(--s-1) 0 0}.price-suggest{margin-top:var(--s-1);align-self:flex-start}.price-chip{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;vertical-align:1px;align-items:center;padding:0 7px;line-height:1;display:inline-flex}.price-chip-cheap{background:var(--info-soft);color:color-mix(in srgb, var(--info) 70%, var(--ink))}.price-chip-fair{background:var(--accent-soft);color:var(--accent-ink)}.price-chip-pricey{background:var(--warn-soft);color:var(--warn-ink)}.price-chip-none{background:var(--danger-soft);color:var(--danger-ink)}.price-chip-noNpc{background:var(--paper-3);color:var(--ink-2)}.city-prices{width:100%;margin:0 0 var(--s-2);border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.city-prices th{color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.city-prices th,.city-prices td{padding:6px var(--s-2);text-align:right;border-bottom:1px solid var(--line)}.city-prices tr:last-child td{border-bottom:0}.city-prices th:first-child,.city-prices td:first-child{text-align:left;padding-left:0}.city-prices th:last-child,.city-prices td:last-child{padding-right:0}.city-prices small{color:var(--ink-3)}.city-prices-trend-up{color:var(--accent-ink);font-weight:var(--fw-bold)}.city-prices-trend-down{color:var(--danger-ink);font-weight:var(--fw-bold)}.city-prices-trend-flat,.city-prices-trend-none{color:var(--ink-3)}.campfire-fire{margin-top:var(--s-1);padding:var(--s-3) var(--s-4) var(--s-4);border-radius:var(--r-md);background:var(--paper-2)}.campfire-fire-row{gap:var(--s-3);font-size:var(--fs-md);align-items:center;display:flex}.campfire-fire-row>strong{font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;flex:1}.campfire-flame{background:var(--paper-3);width:36px;height:36px;color:var(--ink-3);border-radius:50%;place-items:center;display:grid}.campfire-flame>svg.lucide{--icon-size:20px}.campfire-fire.is-lit .campfire-flame{background:var(--warn-soft);color:var(--warn);animation:1.4s ease-in-out infinite alternate campfire-flicker}@keyframes campfire-flicker{to{rotate:2deg;scale:1.06}}@media (prefers-reduced-motion:reduce){.campfire-fire.is-lit .campfire-flame{animation:none}}.campfire-meter{height:6px;margin:var(--s-3) 0;border-radius:var(--r-pill);background:var(--paper-4);overflow:hidden}.campfire-meter-fill{border-radius:inherit;background:var(--warn);height:100%;transition:width .25s linear}.campfire-fuel{gap:var(--s-2);flex-wrap:wrap;display:flex}.campfire-fuel button{flex:130px}.campfire-have{color:inherit;font-weight:var(--fw-medium);opacity:.7;font-variant-numeric:tabular-nums}.campfire-note{margin-top:var(--s-3)}.campfire-queue{gap:var(--s-3);margin-top:var(--s-4);font-size:var(--fs-md);font-weight:var(--fw-medium);align-items:center;display:flex}.campfire-queue-text{font-variant-numeric:tabular-nums;flex:1;gap:6px;min-width:0;display:grid}.campfire-art{flex:none;place-items:center;width:28px;font-size:22px;line-height:1;display:grid}.campfire-row{gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--line);align-items:flex-start;display:flex}.campfire-row:last-child{border-bottom:0}.campfire-row>.campfire-art{margin-top:1px}.campfire-row-body{flex:1;gap:2px;min-width:0;display:grid}.campfire-row-body>.food-effect{order:0;margin-top:0}.campfire-recipe{font-size:var(--fs-md);flex-wrap:wrap;align-items:baseline;gap:0 6px;display:flex}.campfire-recipe>strong{font-weight:var(--fw-bold)}.campfire-qty{color:var(--ink-3);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.campfire-arrow{color:var(--ink-3)}.campfire-output{color:var(--ink-2)}.campfire-actions{gap:var(--s-1);margin-top:var(--s-2);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.campfire-each{color:var(--ink-3);font-size:var(--fs-xs);margin-right:auto}.talents-panel{--talent-root:color-mix(in oklab, var(--danger) 88%, var(--ink));--talent-brown:color-mix(in oklab, var(--warn-ink) 72%, var(--danger-ink));--talent-green:var(--accent);--talent-blue:var(--info);--tree-bg:var(--paper-2)}.talent-root{--branch:var(--talent-root)}.talent-brown{--branch:var(--talent-brown)}.talent-green{--branch:var(--talent-green)}.talent-blue{--branch:var(--talent-blue)}.panel.talents-panel{top:calc(var(--gutter-top) + var(--hud-chip) + var(--s-2));right:auto;left:var(--gutter-left);width:min(400px, calc(100% - var(--gutter-left) - var(--gutter-right)))}.talents-panel>.panel-header{padding-left:var(--s-2)}.talents-panel>.panel-header .panel-title{flex:1;justify-content:center}.panel-back>svg.lucide{--icon-size:22px}.talent-tabs-wrap{margin:var(--s-3) 0 0;border-radius:var(--r-md);background:var(--paper-3);position:relative}.talent-tabs{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--s-2);scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:2px;padding:3px;display:flex;overflow-x:auto}.talent-tabs::-webkit-scrollbar{display:none}.talent-tabs-wrap[data-start=true] .talent-tabs{-webkit-mask-image:linear-gradient(90deg,#0000,#000 32px);mask-image:linear-gradient(90deg,#0000,#000 32px)}.talent-tabs-wrap[data-end=true] .talent-tabs{-webkit-mask-image:linear-gradient(270deg,#0000,#000 32px);mask-image:linear-gradient(270deg,#0000,#000 32px)}.talent-tabs-wrap[data-start=true][data-end=true] .talent-tabs{-webkit-mask-image:linear-gradient(90deg,#0000,#000 32px calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#0000,#000 32px calc(100% - 32px),#0000)}.talent-tabs-arrow{z-index:2;background:var(--paper);width:28px;height:28px;color:var(--ink-2);box-shadow:var(--shadow-1);cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;display:none;position:absolute;top:50%;translate:0 -50%}.talent-tabs-arrow>svg.lucide{--icon-size:18px}.talent-tabs-arrow:hover{color:var(--ink)}.talent-tabs-arrow[data-dir=start]{left:4px}.talent-tabs-arrow[data-dir=end]{right:4px}@media (hover:hover) and (pointer:fine){.talent-tabs-arrow:not([hidden]){display:grid}}.talent-tab{gap:var(--s-2);min-height:44px;padding:0 var(--s-3) 0 10px;color:var(--ink-2);font:inherit;text-align:left;white-space:nowrap;scroll-snap-align:start;cursor:pointer;transition:background var(--dur-1), color var(--dur-1);background:0 0;border:0;border-radius:11px;flex:none;align-items:center;display:flex}.talent-tab:hover{color:var(--ink)}.talent-tab:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.talent-tab[aria-selected=true]{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1)}.talent-tab-icon{color:var(--ink-3);place-items:center;display:grid}.talent-tab-icon>svg.lucide{--icon-size:18px}.talent-tab[aria-selected=true] .talent-tab-icon{color:var(--ink-2)}.talent-tab-text{line-height:var(--lh-tight);display:grid}.talent-tab-name{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.talent-tab-level{color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.talent-summary{gap:2px var(--s-3);margin:var(--s-4) 0 var(--s-3);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.talent-summary-free{color:var(--ink-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);align-items:baseline;gap:6px;display:flex}.talent-summary-free strong{color:var(--ink);font-size:var(--fs-xl);font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;line-height:1}.talent-summary[data-free=true] .talent-summary-free strong{color:var(--gold-ink)}.talent-summary-src{color:var(--ink-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.talent-tree{aspect-ratio:300/440;border-radius:var(--r-md);background:var(--tree-bg);width:100%;margin:0 auto;position:relative}.talent-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.talent-line{fill:none;stroke:var(--paper-4);stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke;transition:stroke var(--dur-2)}.talent-line[data-next=true]{stroke:color-mix(in oklab, var(--branch-line) 45%, var(--paper-4))}.talent-line[data-on=true]{stroke:var(--branch-line);stroke-width:4px}.talent-line-brown{--branch-line:var(--talent-brown)}.talent-line-green{--branch-line:var(--talent-green)}.talent-line-blue{--branch-line:var(--talent-blue)}.talent-node{gap:var(--s-2);width:96px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex;position:absolute;translate:-50% -20px}.talent-dot{background:var(--paper);width:40px;height:40px;color:var(--branch);font-size:var(--fs-md);font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 2.5px var(--branch);transition:scale var(--dur-1) var(--ease-out), background var(--dur-2), box-shadow var(--dur-2);border-radius:50%;place-items:center;display:grid;position:relative}.talent-dot>svg.lucide{--icon-size:var(--dot-icon,20px);--icon-stroke:2.6}.talent-root .talent-dot{--dot-icon:22px;width:48px;height:48px}.talent-root.talent-node{translate:-50% -24px}.talent-label{max-width:96px;padding:1px var(--s-1);border-radius:var(--r-xs);background:var(--tree-bg);font-size:10.5px;font-weight:var(--fw-bold);text-align:center;text-wrap:balance;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;display:-webkit-box;overflow:hidden}.talent-node[data-state=owned] .talent-dot{background:var(--branch);color:var(--ink-on-accent);box-shadow:none}.talent-node[data-state=available] .talent-dot{background:color-mix(in oklab, var(--branch) 14%, var(--paper));box-shadow:inset 0 0 0 2.5px var(--branch), 0 0 0 4px color-mix(in oklab, var(--branch) 16%, transparent)}.talent-node[data-state=reachable] .talent-dot{color:color-mix(in oklab, var(--branch) 70%, var(--ink-3));box-shadow:inset 0 0 0 2px color-mix(in oklab, var(--branch) 50%, var(--paper-4))}.talent-node[data-state=locked] .talent-dot{background:var(--paper-3);color:var(--ink-3);box-shadow:none}.talent-node[data-state=locked] .talent-label,.talent-node[data-state=reachable] .talent-label{color:var(--ink-2);font-weight:var(--fw-medium)}.talent-node[aria-pressed=true] .talent-dot{scale:1.08}.talent-node[aria-pressed=true] .talent-dot:after,.talent-node:focus-visible .talent-dot:after{content:"";box-shadow:0 0 0 2px var(--ink);pointer-events:none;border-radius:50%;position:absolute;inset:-5px}.talent-node:focus-visible{outline:none}.talent-node:focus-visible .talent-dot:after{box-shadow:0 0 0 3px var(--focus)}.talent-node:hover .talent-dot{scale:1.05}.talent-node[data-soon=true] .talent-dot{outline:2px dashed color-mix(in oklab, var(--branch) 55%, var(--paper-4));outline-offset:2px}.talent-node[data-soon=true][data-state=locked] .talent-dot{outline-color:var(--paper-4)}@media (prefers-reduced-motion:reduce){.talent-dot,.talent-line{transition:none}}.talent-legend{gap:var(--s-1) var(--s-4);margin:var(--s-3) 0 0;color:var(--ink-2);font-size:var(--fs-sm);flex-wrap:wrap;justify-content:center;padding:0;list-style:none;display:flex}.talent-legend li{align-items:center;gap:6px;display:inline-flex}.talent-legend li:before{content:"";background:var(--branch);border-radius:50%;width:8px;height:8px}.talent-detail{margin-top:var(--s-4);padding:var(--s-3) var(--s-4) var(--s-4);border-radius:var(--r-md);background:var(--paper-2)}.talent-detail-head{gap:var(--s-2);align-items:center;min-height:20px;display:flex}.talent-detail-branch{color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:var(--tracking-caps);text-transform:uppercase;align-items:center;gap:6px;display:inline-flex}.talent-detail-branch:before{content:"";background:var(--branch);border-radius:50%;width:8px;height:8px}.talent-detail-tip{margin:var(--s-3) 0 0;color:var(--ink-3);font-size:var(--fs-xs);text-align:center}.talent-detail-name{margin:var(--s-1) 0 2px;font-size:var(--fs-lg);font-weight:var(--fw-heavy);line-height:var(--lh-tight)}.talent-detail-desc{margin:0 0 var(--s-3);color:var(--ink-2);font-size:var(--fs-md)}.talent-detail-note{color:var(--ink-3);font-size:var(--fs-sm);margin:0}.talent-detail-desc+.talent-detail-note{margin-top:calc(-1 * var(--s-2));margin-bottom:var(--s-3)}.talent-detail-owned{color:var(--accent-ink);font-size:var(--fs-md);font-weight:var(--fw-bold);align-items:center;gap:6px;margin:0;display:flex}.talent-detail-owned>svg.lucide{--icon-size:18px}.talents-panel .talent-detail[data-pinned=true]{bottom:calc(-1 * var(--s-4));z-index:2;margin:var(--s-4) calc(-1 * var(--s-4)) 0;padding:var(--s-3) var(--s-4) var(--s-4);border-top:1px solid var(--line);background:var(--paper);border-radius:0;position:sticky}.talent-footer{gap:var(--s-2);margin-top:var(--s-5);flex-direction:column;align-items:flex-end;display:flex}.talent-reset-rule{color:var(--ink-3);font-size:var(--fs-sm);align-self:stretch;margin:0}.talent-footer .confirm{width:100%;margin-top:0}.prof-talents{gap:var(--s-2);color:var(--ink-2);font-size:var(--fs-sm);grid-column:1/-1;justify-content:space-between;align-items:center;display:flex}.prof-talents .secondary-button{min-height:var(--control-sm);padding:0 10px}.prof-talents-button{position:relative}.prof-hint{margin:var(--s-3) 0 var(--s-1);color:var(--ink-2);font-size:var(--fs-sm)}.prof-icon{width:22px;color:var(--ink-2);vertical-align:-3px;place-items:center;margin-right:6px;display:inline-grid}.prof-icon>svg.lucide{--icon-size:17px}.class-mark{background:var(--paper);width:40px;height:40px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line);border-radius:50%;flex:none;place-items:center;display:grid}.class-mark>svg.lucide{--icon-size:20px}.class-bonus{color:var(--gold-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold);line-height:1.35}.class-bonus>span{white-space:nowrap}.class-badge{gap:var(--s-3);width:100%;margin-top:var(--s-2);padding:var(--s-3);border-radius:var(--r-md);background:var(--paper-2);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-1);border:0;align-items:center;display:flex;position:relative}.class-badge:hover{background:var(--paper-3)}.class-badge:focus-visible,.class-card:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.class-badge-body{min-width:0;line-height:var(--lh-tight);flex:1;gap:1px;display:grid}.class-badge-label{color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.class-badge-name{font-size:var(--fs-lg);font-weight:var(--fw-heavy)}.class-badge .class-bonus{margin-top:2px}.class-badge-more{top:var(--s-3);right:var(--s-3);color:var(--accent-ink);font-size:var(--fs-sm);font-weight:var(--fw-bold);white-space:nowrap;align-items:center;gap:2px;display:inline-flex;position:absolute}.class-badge-more>svg.lucide{--icon-size:16px}.class-info-intro{margin:var(--s-2) 0 var(--s-3)}.class-picker,.class-info-list{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.class-picker{margin-top:var(--s-3)}.class-card{gap:var(--s-3);width:100%;padding:var(--s-3);border-radius:var(--r-md);background:var(--paper-2);color:inherit;font:inherit;text-align:left;border:0;align-items:flex-start;display:flex}button.class-card{cursor:pointer;transition:background var(--dur-1), box-shadow var(--dur-1)}button.class-card:hover{background:var(--paper-3)}button.class-card[aria-pressed=true],.class-card[data-mine=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.class-card[aria-pressed=true] .class-mark,.class-card[data-mine=true] .class-mark{color:var(--accent-ink)}.class-card-body{flex:1;gap:2px;min-width:0;display:grid}.class-card-head{gap:var(--s-2);align-items:center;display:flex}.class-card-name{font-size:var(--fs-md);font-weight:var(--fw-heavy);line-height:var(--lh-tight)}.class-card-who{color:var(--ink-2);font-size:var(--fs-sm)}.class-card-check{width:24px;height:24px;color:var(--ink-on-accent);border-radius:50%;flex:none;align-self:center;place-items:center;display:grid}.class-card[aria-pressed=true] .class-card-check{background:var(--accent)}.class-card-check>svg.lucide{--icon-size:15px;--icon-stroke:3}.class-info-rule{margin-top:var(--s-4)}.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:4;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}.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}@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-emoji{filter:drop-shadow(0 1px 1px #0003);font-size:28px;line-height:1}.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{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:calc(env(safe-area-inset-top) + 52px)}.phone-app-tile{border-radius:18px;width:64px;height:64px}.phone-app-emoji{font-size:32px}.phone-app{padding-top:calc(env(safe-area-inset-top) + 34px);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}.style-app{gap:var(--s-3);padding-bottom:var(--s-2);flex-direction:column;display:flex}.style-preview{border-radius:var(--r-md);background:var(--paper-2);touch-action:pan-y;cursor:grab;height:200px;position:relative;overflow:hidden}.style-preview canvas{width:100%;height:100%;display:block}.style-note{margin:0}.style-section{border:0;min-width:0;margin:0;padding:0}.style-section .choice-row{gap:var(--s-2)}.style-section .swatch{flex:none;width:36px;height:36px}.style-swatch-auto{background:linear-gradient(135deg, var(--paper-3) 0 50%, var(--paper-4) 50% 100%)}.style-dot{width:12px;height:12px;box-shadow:0 0 0 1px var(--line-strong);border-radius:50%;flex:none}.style-footer{gap:var(--s-2);padding:var(--s-2) 0;background:var(--phone-screen,var(--paper));flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex;position:sticky;bottom:0}.style-footer .field-hint{margin:0}.style-actions{gap:var(--s-2);margin-left:auto;display:flex}@media (hover:none){.style-section .choice-chip,.style-actions button{min-height:44px}}.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}.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{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);align-items:flex-start;max-width:280px}.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-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:208px;min-height:48px;padding:6px var(--s-3) 7px 7px;text-align:left;grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;display:grid;position:relative}.hud-level-icon{border-radius:var(--r-sm);background:var(--accent-soft);width:34px;height:34px;color:var(--accent-ink);grid-row:1/span 2;place-items:center;display:grid}.hud-level-badge{font-size:var(--fs-md);font-weight:var(--fw-heavy)}.hud-level-text{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{max-width:280px;min-height:48px;padding:7px var(--s-3) 7px 7px;text-align:left;gap:10px}.mission-icon{border-radius:var(--r-sm);background:var(--gold-soft);width:34px;height:34px;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)}.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}.hud-city-goal-title{gap:var(--s-2);font-weight:var(--fw-bold);align-items:center;display:flex}.hud-city-goal-title>svg.lucide{--icon-size:15px;color:var(--ink-3)}.hud-city-goal-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.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-city-goal>.hud-city-goal-buff:only-child{margin:0}.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:var(--gutter-bottom);z-index:var(--z-panel);width:min(360px, calc(100% - 2 * var(--gutter)));max-height:min(48%,380px);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:absolute}.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-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-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-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)}.fishing-cast-buttons{right:var(--gutter-right);bottom:calc(var(--gutter-bottom) + var(--control-lg) + var(--s-3));z-index:var(--z-popover);gap:var(--s-2);pointer-events:none;flex-direction:column;align-items:stretch;display:flex;position:absolute}.vehicle-quick{left:50%;bottom:calc(var(--gutter-bottom) + var(--control-lg) + var(--s-3));z-index:var(--z-popover);pointer-events:none;position:absolute;translate:-50%}.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:absolute;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-title{width:var(--hud-chip);justify-content:center;padding:0}.hud-title-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hud-level{width:100%}.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-city-goal{padding:var(--s-2) 10px}.hud-city-goal-title{flex-wrap:wrap;row-gap:2px}.hud-city-goal-title>svg.lucide{display:none}.hud-city-goal-name{white-space:normal;flex-basis:100%}.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{gap:6px}.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}}
