@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/B0JifZgm.woff2)format("woff2"),url(/assets/BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/C4zohCW5.woff2)format("woff2"),url(/assets/CcrEjrB4.woff)format("woff")}:root{--ui-bg:#fff6e9;--ui-surface:#fff;--ui-surface-alt:#f4e9d8;--ui-ink:#1e2230;--ui-ink-muted:#4d5266;--ui-line:#d9c9af;--ui-primary:#1f4e8c;--ui-primary-ink:#fff;--ui-accent:#f26b1d;--ui-accent-ink:#1e2230;--ui-highlight:#ffc21a;--ui-success:#2e7d4f;--ui-success-ink:#fff;--ui-warning:#9a5b00;--ui-danger:#b3261e;--ui-danger-ink:#fff;--ui-focus:#1f4e8c;--ui-disabled-bg:#e7dfd2;--ui-disabled-ink:#5f6170;--ui-dark-bg:#171a26;--ui-dark-surface:#22263a;--ui-dark-ink:#f4efe6;--ui-dark-ink-muted:#b8b9c9;--art-outline:#1e2230;--art-outline-soft:#3a3550;--art-work-blue-hi:#5b8fd0;--art-work-blue-base:#2f6db5;--art-work-blue-lo:#1f4e8c;--art-safety-orange-hi:#ff9a52;--art-safety-orange-base:#f26b1d;--art-safety-orange-lo:#c24e0e;--art-hat-yellow-hi:#ffe07a;--art-hat-yellow-base:#ffc21a;--art-hat-yellow-lo:#d99a00;--art-cream-hi:#fffdf6;--art-cream-base:#fff6e9;--art-cream-lo:#eadbc2;--art-tan-hi:#ebd6b5;--art-tan-base:#d9c2a0;--art-tan-lo:#b79d78;--art-brown-hi:#8c735c;--art-brown-base:#6e5a48;--art-brown-lo:#4d3e32;--art-wood-hi:#e0b57e;--art-wood-base:#c89a63;--art-wood-lo:#9c7244;--art-wood-dark-hi:#b07f4e;--art-wood-dark-base:#8e6238;--art-wood-dark-lo:#6a4626;--art-shingle-hi:#6b7180;--art-shingle-base:#4a4f5c;--art-shingle-lo:#363a45;--art-shingle-worn-hi:#857b6f;--art-shingle-worn-base:#6a6158;--art-shingle-worn-lo:#4e4740;--art-metal-seam-hi:#b4c4d1;--art-metal-seam-base:#7c93a6;--art-metal-seam-lo:#5a6f82;--art-membrane-light-hi:#fafbfc;--art-membrane-light-base:#e8ecef;--art-membrane-light-lo:#c3cad1;--art-membrane-dark-hi:#5a606c;--art-membrane-dark-base:#3a3f4a;--art-membrane-dark-lo:#2a2e37;--art-membrane-worn-hi:#a7a49c;--art-membrane-worn-base:#8e8b83;--art-membrane-worn-lo:#6e6b64;--art-metal-worn-hi:#8f9aa3;--art-metal-worn-base:#717c86;--art-metal-worn-lo:#56606a;--art-impossible-membrane-hi:#c9bcf2;--art-impossible-membrane-base:#a894e6;--art-impossible-membrane-lo:#7c66c4;--art-mod-bit-hi:#a99e91;--art-mod-bit-base:#8a7f73;--art-mod-bit-lo:#6b6157;--art-insulation-hi:#f7e3a6;--art-insulation-base:#ebcb78;--art-insulation-lo:#c9a653;--art-deck-hi:#d9ae78;--art-deck-base:#c49461;--art-deck-lo:#9e7246;--art-brick-hi:#d9785a;--art-brick-base:#b85a3e;--art-brick-lo:#8e432e;--art-steel-hi:#d5dce3;--art-steel-base:#a9b4bf;--art-steel-lo:#7d8996;--art-tarp-hi:#6fa8e6;--art-tarp-base:#3c82d0;--art-tarp-lo:#2a5f9e;--art-leaf-hi:#9bcb6a;--art-leaf-base:#6fa84a;--art-leaf-lo:#4d7f35;--art-skin-hi:#f2c8a0;--art-skin-base:#e0a87e;--art-skin-lo:#b97e57;--art-hair-hi:#6a4a35;--art-hair-base:#4a3324;--art-hair-lo:#33231a;--art-glass-hi:#d8f0fa;--art-glass-base:#a8d6ec;--art-glass-lo:#6fa9c8;--art-teal-hi:#6fe0d2;--art-teal-base:#2bb3a3;--art-teal-lo:#1c8075;--art-violet-hi:#a891f0;--art-violet-base:#7b5cd6;--art-violet-lo:#5638a8;--art-luminous-gold-hi:#fff1bf;--art-luminous-gold-base:#ffd978;--art-luminous-gold-lo:#e8b33c;--art-void-hi:#3b3f7a;--art-void-base:#232552;--art-void-lo:#141533;--font-display:"Fredoka", "Trebuchet MS", system-ui, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-numeric:"Fredoka", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body{background:var(--ui-bg);height:100%;color:var(--ui-ink);font-family:var(--font-body);-webkit-text-size-adjust:100%;margin:0;font-size:16px;line-height:1.4}#app{height:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:2px solid var(--ui-ink);background:var(--ui-surface);border-radius:10px;align-items:center;gap:6px;min-height:44px;padding:8px 14px;display:inline-flex}button:disabled,button[aria-disabled=true]{cursor:not-allowed}:focus-visible{outline:3px solid var(--ui-focus);outline-offset:2px}.primary{background:var(--ui-primary);color:var(--ui-primary-ink);border-color:var(--ui-primary);font-weight:600}.primary:disabled{background:var(--ui-disabled-bg);color:var(--ui-disabled-ink);border-color:var(--ui-disabled-bg)}.danger{background:var(--ui-danger);color:var(--ui-danger-ink);border-color:var(--ui-danger)}.icon-btn{background:0 0;border:none;justify-content:center;min-width:44px;padding:8px}.link{min-height:32px;color:var(--ui-ink-muted);background:0 0;border:none;padding:4px;text-decoration:underline}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip{z-index:50;background:var(--ui-surface);padding:8px 12px;position:absolute;top:0;left:-999px}.skip:focus{left:8px}.boot{text-align:center;min-height:100%;font-family:var(--font-display);place-content:center;gap:12px;padding:24px;display:grid}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.layout{flex:1;grid-template-columns:1fr;min-height:0;display:grid;position:relative}.work-area{min-height:0;position:relative;overflow:hidden}.hud{padding:calc(6px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 6px calc(12px + env(safe-area-inset-left));background:var(--ui-surface);border-bottom:2px solid var(--ui-line);z-index:5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;display:flex}.hud-main{flex-wrap:wrap;align-items:center;gap:4px 18px;display:flex}.balance{align-items:center;gap:8px;display:flex}.balance .amount{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:600;line-height:1}.balance .unit{color:var(--ui-ink-muted);max-width:5.5em;font-size:.8rem;line-height:1.1}.sym{object-fit:contain;width:28px;height:28px}.rates{font-family:var(--font-numeric);gap:14px;font-weight:500;display:flex}.rate{font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:inline-flex}.rate .sym{width:22px;height:22px}.hud-side{align-items:center;gap:8px;min-width:0;display:flex}.goal{background:var(--ui-surface-alt);border-radius:999px;align-items:center;gap:6px;min-width:0;margin:0;padding:4px 12px;font-size:.9rem;display:inline-flex;position:relative;overflow:hidden}.goal-bar{background:var(--ui-line);height:3px;position:absolute;bottom:0;left:0;right:0}.goal-bar>span{background:var(--ui-success);height:100%;display:block}:root[data-motion=full] .goal-bar>span{transition:width .3s ease-out}.goal-text{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.save-indicator{color:var(--ui-ink-muted);align-items:center;gap:4px;font-size:.8rem;display:inline-flex}.save-indicator.warn{color:var(--ui-warning);font-weight:600}.worksite{position:absolute;inset:0}.scene{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:relative}.scene-top{pointer-events:none;position:absolute;inset:0}.roof-hit{pointer-events:visiblePainted;fill:#fff0;cursor:pointer;stroke:#0000;stroke-width:6px;-webkit-tap-highlight-color:transparent;outline:none}.roof-shield{fill:#0000;pointer-events:all}.roof-hit:hover{fill:#ffffff12}.roof-hit:focus-visible{stroke:var(--ui-focus);stroke-dasharray:14 8}.roof-complete{fill:#fff;opacity:0;pointer-events:none}.roof-complete.on{animation:.7s ease-out roof-sweep}@keyframes roof-sweep{0%{opacity:.55}to{opacity:0}}.motion-reduced .roof-complete.on{animation:.9s steps(2,end) roof-fade}@keyframes roof-fade{0%{opacity:.3}to{opacity:0}}.fx{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.job-progress{color:#fff;text-align:center;background:#1e2230e0;border-radius:999px;width:min(420px,80%);font-size:.85rem;position:absolute;bottom:12px;left:50%;overflow:hidden;transform:translate(-50%)}.job-progress .bar{transform-origin:0;background:var(--art-safety-orange-lo);position:absolute;inset:0}.job-progress span{padding:4px 12px;display:block;position:relative}.popups{pointer-events:none;gap:6px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.popup{background:var(--ui-highlight);color:var(--ui-ink);border:2px solid var(--ui-ink);font-family:var(--font-display);border-radius:999px;padding:4px 14px;font-weight:600;animation:2.2s ease-out forwards pop-in}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)}12%{opacity:1;transform:none}80%{opacity:1}to{opacity:0}}.motion-reduced .popup{animation:none}.onboarding{background:var(--ui-surface);border:2px solid var(--ui-ink);border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;max-width:min(420px,100% - 24px);padding:8px 12px;display:grid;position:absolute;bottom:52px;left:12px;box-shadow:0 4px #1e223026}.onboarding .portrait{object-fit:contain;grid-row:span 2;width:64px;height:64px}.onboarding p{margin:0;font-size:.95rem}.onboarding .link{justify-self:end}.work-area:has(.skill-btn) .onboarding{max-width:min(420px,100% - 104px);left:92px}@media (height<=700px){.onboarding{gap:2px 8px;padding:5px 10px}.onboarding .portrait{width:40px;height:40px}.onboarding p{font-size:.85rem}}.office{background:var(--ui-surface);flex-direction:column;min-height:0;display:flex}.office-tabs{border-bottom:2px solid var(--ui-line);gap:4px;padding:8px 8px 0;display:flex}.office-tabs button{background:0 0;border:none;border-bottom:3px solid #0000;border-radius:10px 10px 0 0;font-weight:600}.office-tabs button[aria-selected=true]{border-bottom-color:var(--ui-primary);background:var(--ui-surface-alt)}.count{background:var(--ui-accent);color:var(--ui-accent-ink);text-align:center;border-radius:999px;min-width:20px;padding:0 6px;font-size:.75rem;font-weight:700}:root[data-motion=full] .count{animation:.9s ease-out count-pulse}@keyframes count-pulse{0%{transform:scale(.6)}40%{transform:scale(1.5);box-shadow:0 0 0 6px #f26b1d59}to{transform:none;box-shadow:0 0 #f26b1d00}}.sheet{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.panel{padding:10px 12px 16px}.panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.panel-head h2{font-family:var(--font-display);margin:0;font-size:1.25rem}.qty{border:2px solid var(--ui-ink);border-radius:10px;display:inline-flex;overflow:hidden}.qty button{border:none;border-radius:0;justify-content:center;min-width:44px;min-height:36px;padding:4px 8px}.qty button+button{border-left:2px solid var(--ui-ink)}.qty button.on{background:var(--ui-primary);color:var(--ui-primary-ink);font-weight:700}.cards{gap:8px;margin:0;padding:0;list-style:none;display:grid}.card{position:relative}.card-main{text-align:left;border:2px dashed var(--ui-line);background:var(--ui-surface);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;padding:8px 48px 8px 8px;display:grid}.card.affordable .card-main{border:2px solid var(--ui-primary);box-shadow:0 3px 0 var(--ui-primary);background:#f2f7fd}.card.gen:not(.affordable) .cost:after,.card.upg:not(.affordable) .cost:after{content:" · not enough credits";color:var(--ui-ink-muted);font-size:.8rem;font-weight:400}.card.locked .card-main{background:var(--ui-surface-alt);border-style:dotted}.card.locked .cost:after{content:none}.card-text{gap:2px;min-width:0;display:grid}.card .name{font-weight:700;font-family:var(--font-display);font-size:1.05rem}.card .cost{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-weight:600}.card .effect,.card .hint{color:var(--ui-ink-muted);font-size:.85rem}.card .owned{font-family:var(--font-numeric);text-align:right;min-width:2ch;color:var(--ui-ink-muted);font-size:1.6rem;font-weight:600}.info-btn{position:absolute;top:4px;right:2px}.info{background:var(--ui-surface-alt);border-radius:10px;margin:4px 0 0;padding:8px 12px;font-size:.9rem}.info p{margin:4px 0}.card.contract .flavor{color:var(--ui-ink-muted);font-size:.85rem;font-style:italic}.info .flavor{color:var(--ui-ink-muted);font-style:italic}.info ul{margin:4px 0;padding-left:1.2em}.hud-info{flex-basis:100%;order:4;margin:0}.hud-info dl{margin:0}.hud-info dt{align-items:center;gap:6px;font-weight:700;display:inline-flex}.hud-info dd{margin:0 0 6px 28px}.hud-info .sym{width:22px;height:22px}.thumb{object-fit:contain;background:var(--ui-surface-alt);border-radius:10px;width:64px;height:64px}.thumb.silhouette{filter:brightness(0);opacity:.35;background:0 0}.thumb.covered{background:repeating-linear-gradient(0deg, transparent 0 7px, #ffffff59 7px 8px), repeating-linear-gradient(90deg, transparent 0 7px, #ffffff59 7px 8px), var(--ui-primary);display:inline-block}.badge-wrap{display:inline-block;position:relative}.badge-wrap img{object-fit:contain;width:56px;height:56px}.tier{background:var(--ui-highlight);border:2px solid var(--ui-ink);font-family:var(--font-display);border-radius:8px;padding:0 5px;font-size:.75rem;font-weight:700;position:absolute;bottom:-4px;right:-4px}.empty{color:var(--ui-ink-muted)}.milestone{border:2px solid var(--ui-accent);background:#fff4ec;border-radius:12px;grid-template-columns:auto 1fr;align-items:start;gap:10px;margin-bottom:10px;padding:10px;display:grid}.milestone h3{font-family:var(--font-display);margin:0 0 4px;font-size:1.05rem}.milestone p{margin:0 0 8px;font-size:.9rem}.milestone img{object-fit:contain}.bottom-nav{background:var(--ui-surface);border-top:2px solid var(--ui-line);padding:4px calc(4px + env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) calc(4px + env(safe-area-inset-left));z-index:6;justify-content:space-around;display:flex}.bottom-nav button{background:0 0;border:none;flex-direction:column;flex:1;gap:2px;min-height:52px;font-size:.75rem;position:relative}.bottom-nav button[aria-current=page]{color:var(--ui-primary);font-weight:700}.bottom-nav .count{position:absolute;top:2px;right:22%}.dialog{border:2px solid var(--ui-ink);background:var(--ui-surface);width:min(520px,100vw - 24px);max-height:calc(100dvh - 32px);color:var(--ui-ink);border-radius:16px;padding:0}.dialog.wide{width:min(760px,100vw - 24px)}.dialog::backdrop{background:#171a268c}@media (width<=899px){.dialog.sheet{width:100vw;max-width:100vw;padding-bottom:env(safe-area-inset-bottom,0px);border-width:2px 0 0;border-radius:16px 16px 0 0;margin:auto 0 0}:root[data-motion=full] .dialog.sheet[open]{animation:.2s ease-out sheet-up}}@keyframes sheet-up{0%{transform:translateY(100%)}}.dialog-body{padding:8px 16px 16px}.dialog-head{background:var(--ui-surface);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.dialog-head h2{font-family:var(--font-display);margin:0}.dialog .big{font-family:var(--font-numeric);font-size:1.6rem;font-weight:600}.tag{font-size:.8rem;font-family:var(--font-body);background:var(--ui-surface-alt);vertical-align:middle;border-radius:999px;padding:2px 8px}.settings section{border-top:2px solid var(--ui-line);padding:8px 0}.settings h3{font-family:var(--font-display);align-items:center;gap:6px;margin:6px 0;display:flex}.field{margin:8px 0}.field.toggle{grid-template-columns:auto 1fr;align-items:center;gap:0 8px;display:grid}.field.toggle input{width:22px;height:22px}.field.toggle .help{grid-column:2}.field.slider{grid-template-columns:9em 1fr 3.5em;align-items:center;gap:8px;display:grid}.field select{border:2px solid var(--ui-ink);background:var(--ui-surface);border-radius:8px;min-height:40px;padding:4px 8px}.notice{background:var(--ui-surface-alt);border-left:4px solid var(--ui-primary);border-radius:6px;padding:8px 12px}.notice.warn{border-left-color:var(--ui-danger)}.row{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}textarea{border:2px solid var(--ui-ink);border-radius:8px;width:100%;padding:8px;font-family:ui-monospace,monospace;font-size:.8rem}.file-btn{border:2px solid var(--ui-ink);cursor:pointer;border-radius:10px;align-items:center;min-height:44px;padding:8px 14px;display:inline-flex}.file-btn input{opacity:0;width:1px;position:absolute}.file-btn:focus-within{outline:3px solid var(--ui-focus);outline-offset:2px}.restore{gap:6px;padding:0;list-style:none;display:grid}.restore li{justify-content:space-between;align-items:center;gap:8px;font-size:.85rem;display:flex}.toasts{z-index:20;pointer-events:none;gap:8px;width:min(340px,100% - 24px);display:grid;position:absolute;top:48px;left:50%;transform:translate(-50%)}.toasts>*{pointer-events:none}.toasts .toast-close{pointer-events:auto}.work-area:has(.buff-tray) .toasts{top:96px}.toast-close{min-width:44px;min-height:44px}:root[data-motion=full] .toast{animation:.18s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}}.toast{background:var(--ui-surface);border:2px solid var(--ui-ink);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 6px 6px 12px;display:grid;box-shadow:0 3px #1e223033}.toast div{font-size:.85rem;display:grid}@media (width>=900px){.layout{grid-template-columns:1fr minmax(340px,400px)}.office{border-left:2px solid var(--ui-line)}.bottom-nav{display:none}.hud{flex-wrap:nowrap}.hud.info-open{flex-wrap:wrap}.hud-main{flex:none}.hud-side{flex:auto;justify-content:flex-end}.goal{line-height:1.25}}@media (width<=899px){.office{border-top:2px solid var(--ui-ink);visibility:hidden;z-index:4;border-radius:16px 16px 0 0;max-height:62%;transition:transform .2s ease-out,visibility .2s;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -6px 16px #1e22302e}.app:not(.tab-work) .office{visibility:visible;transform:none}.office-tabs{display:none}.hud{grid-template:"balance save"minmax(32px,auto)"rates info-btn"44px"info info""goal goal"/minmax(0,1fr) auto;align-items:center;gap:2px 8px;display:grid}.hud-info-btn{grid-area:info-btn}.hud-main,.hud-side{display:contents}.balance{grid-area:balance;min-width:0}.balance .amount{white-space:nowrap}.balance .amount.long{font-size:1.05rem}.balance .amount.long~.unit{display:none}.save-indicator{grid-area:save;justify-self:end;max-width:6em;line-height:1.2}.rates{white-space:nowrap;flex-direction:column;grid-area:rates;align-items:flex-start;gap:0;min-width:0;font-size:.95rem}.rate .sym{width:18px;height:18px}.hud-info{grid-area:info}.goal{box-sizing:border-box;border-radius:14px;grid-area:goal;height:calc(2.6em + 8px);line-height:1.3}.hud-side>.icon-btn{display:none}.balance .amount{font-size:1.45rem}.onboarding{padding:6px 10px;bottom:44px}.onboarding .portrait{width:48px;height:48px}.onboarding p{font-size:.85rem}}@media (prefers-reduced-motion:reduce){.office{transition:none}}.badge{flex:none;place-items:center;display:inline-grid;position:relative}.badge:before{content:"";background:var(--frame) center / contain no-repeat;position:absolute;inset:0}.badge.frame-base{--frame:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='29' fill='%23FFF6E9' stroke='%231E2230' stroke-width='3'/%3E%3Ccircle cx='32' cy='32' r='25' fill='none' stroke='%232F6DB5' stroke-width='3'/%3E%3C/svg%3E")}.badge.frame-advanced{--frame:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='29' fill='%23FFF1E6' stroke='%231E2230' stroke-width='3'/%3E%3Ccircle cx='32' cy='32' r='25' fill='none' stroke='%23F26B1D' stroke-width='5'/%3E%3C/svg%3E")}.badge.frame-master{--frame:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='29' fill='%23FFF7D6' stroke='%231E2230' stroke-width='3'/%3E%3Ccircle cx='32' cy='32' r='25' fill='none' stroke='%23D99A00' stroke-width='5'/%3E%3Ccircle cx='32' cy='32' r='20.5' fill='none' stroke='%23D99A00' stroke-width='1.5' stroke-dasharray='3 3'/%3E%3C/svg%3E")}.badge.frame-cosmic{--frame:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='29' fill='%23E6FBF8' stroke='%231E2230' stroke-width='3'/%3E%3Ccircle cx='32' cy='32' r='25' fill='none' stroke='%232BB3A3' stroke-width='5'/%3E%3Ccircle cx='32' cy='32' r='20.5' fill='none' stroke='%232BB3A3' stroke-width='1.5' stroke-dasharray='3 3'/%3E%3C/svg%3E")}.badge-emblem{place-items:center;width:62%;height:62%;display:grid;position:relative}.badge.locked{filter:grayscale()brightness(.6);opacity:.5}.badge-tier{background:var(--ui-highlight);border:2px solid var(--ui-ink);font-family:var(--font-display);border-radius:7px;padding:0 4px;font-size:.7rem;font-weight:700;line-height:1.3;position:absolute;bottom:-4px;right:-4px}.worksite{--u:max(100cqw / var(--vw), 100cqh / var(--vh));container-type:size}.sprites{pointer-events:none;position:absolute;inset:0;overflow:hidden}.sky{pointer-events:none;--top:calc((100cqh - var(--vh) * var(--u)) / 2);background:linear-gradient(to bottom, var(--sky0) var(--top), var(--sky1) calc(var(--top) + var(--horizon) * var(--u)));position:absolute;inset:0;overflow:hidden}.cloud{left:calc((100cqw - var(--vw) * var(--u)) / 2 + var(--x) * var(--u));top:calc((100cqh - var(--vh) * var(--u)) / 2 + var(--y) * var(--u));width:calc(var(--w) * var(--u));height:calc(var(--h) * var(--u));background-size:100% 100%;position:absolute}.motion-full .cloud{will-change:transform;animation:drift var(--period) linear var(--delay) infinite}@keyframes drift{to{transform:translateX(calc((var(--vw) + var(--w)) * var(--u)))}}.sprite-motion{left:calc((100cqw - var(--vw) * var(--u)) / 2 + var(--x) * var(--u));top:calc((100cqh - var(--vh) * var(--u)) / 2 + var(--y) * var(--u));width:calc(var(--w) * var(--u));height:calc(var(--h) * var(--u));transform-origin:50% 100%;position:absolute}.sprite{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.sprite.flip{transform:scaleX(-1)}.motion-full .anim-breathe{animation:3.6s ease-in-out infinite breathe}@keyframes breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.012)scaleX(.996)}}.motion-full .anim-crew{animation:1.4s ease-in-out infinite alternate crew-bob}@keyframes crew-bob{0%{transform:translateY(0)}to{transform:translateY(calc(-3 * var(--u)))}}.motion-full .anim-carry{animation:9s ease-in-out infinite carry}.motion-full .anim-carry-1{animation-delay:-3s}.motion-full .anim-carry-2{animation-delay:-6s}.walk-face,.walk-bob{transform-origin:50% 100%;width:100%;height:100%}.motion-full .anim-carry .walk-face{animation:9s step-end infinite carry-face}.motion-full .anim-carry-1 .walk-face{animation-delay:-3s}.motion-full .anim-carry-2 .walk-face{animation-delay:-6s}@keyframes carry-face{0%{transform:none}50%{transform:scaleX(-1)}}.motion-full .anim-carry .walk-bob{animation:.45s ease-in-out infinite alternate walk-bob}@keyframes walk-bob{to{transform:translateY(calc(-2.5 * var(--u)))}}@keyframes carry{0%,to{transform:translate(0)}45%,55%{transform:translateX(calc(-70 * var(--u)))}}.motion-full .roof-layers .new-tab{animation:.26s ease-out settle}.roof-sheen{opacity:0}.motion-full .roof-sheen{animation:.75s ease-in-out .12s sheen}@keyframes sheen{0%{opacity:1;transform:translate(0)}to{opacity:1;transform:translateX(var(--sweep))}}.motion-full.wide .house-out{animation:.26s ease-in forwards house-out}.motion-full.wide .house-in{animation:.34s cubic-bezier(.2,.7,.3,1) house-in}@keyframes house-out{to{opacity:0;transform:translate(-80px)}}@keyframes house-in{0%{opacity:0;transform:translate(110px)}}.motion-full.tall .house-out,.motion-full.tall .house-in{transform-box:fill-box;transform-origin:50% 100%}.motion-full.tall .house-out{animation:.26s ease-in forwards house-fade-out}.motion-full.tall .house-in{animation:.34s ease-out house-fade-in}@keyframes house-fade-out{to{opacity:0;transform:scale(.98)}}@keyframes house-fade-in{0%{opacity:0;transform:scale(.98)}}.motion-reduced .house-in{animation:.15s linear fade-in}@keyframes fade-in{0%{opacity:0}}.foreman-pose{width:calc(var(--pw) * var(--u));height:calc(var(--ph) * var(--u));-webkit-user-select:none;user-select:none;-webkit-user-drag:none;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.foreman-pose.working{transform:translate(-50%)scaleX(-1)}.motion-full .foreman-pose.working{animation:.24s ease-in-out infinite alternate hammering}@keyframes hammering{0%{transform:translate(-50%)scaleX(-1)}to{transform:translateX(-50%) scaleX(-1) translateY(calc(2.5 * var(--u))) rotate(-1.5deg)}}@keyframes settle{0%{opacity:.4;transform:translateY(-6px)}to{opacity:1;transform:none}}.card-main.just-bought{animation:.38s ease-out bought}@keyframes bought{0%{box-shadow:0 0 0 0 var(--ui-highlight)}40%{box-shadow:0 0 0 6px var(--ui-highlight)}to{box-shadow:0 3px 0 var(--ui-primary)}}:root:not([data-motion=full]) .card-main.just-bought,:root:not([data-motion=full]) .card.milestone-reached .card-main{outline:3px solid var(--ui-highlight);animation:none}.card.milestone-reached .card-main{animation:1.6s ease-out milestone-glow}@keyframes milestone-glow{0%{box-shadow:0 0 #ffc21ae6}30%{box-shadow:0 0 0 8px #ffc21a8c}to{box-shadow:0 0 #ffc21a00}}.banner{z-index:3;background:var(--ui-surface);border:2px solid var(--ui-danger);border-radius:12px;width:min(560px,100% - 24px);margin:0;padding:10px 14px;font-weight:600;position:absolute;top:8px;left:50%;transform:translate(-50%)}.banners{z-index:5;pointer-events:none;gap:6px;width:min(560px,100% - 24px);display:grid;position:absolute;top:8px;left:50%;transform:translate(-50%)}.banners:empty{display:none}.banners>.banner{pointer-events:auto;width:auto;position:static;transform:none}.work-area>.ticker,.work-area>.buff-tray,.work-area>.toasts{margin-top:var(--banners-h,0px)}@media (width>=900px){.office-tabs{grid-template-columns:repeat(var(--tab-cols,4), minmax(0, 1fr));display:grid}}.office-tabs button{white-space:nowrap;flex-direction:column;gap:2px;min-width:0;min-height:52px;padding:4px 2px;font-size:.75rem;position:relative}.office-tabs .count{position:absolute;top:2px;right:4px}.more-menu{gap:8px;margin:0;padding:8px 16px 16px;list-style:none;display:grid}.more-menu button{justify-content:flex-start;gap:10px;width:100%;min-height:48px}.more-menu .count{margin-left:auto}.panel h3{font-family:var(--font-display);align-items:center;gap:6px;margin:14px 0 6px;font-size:1.05rem;display:flex}.help{color:var(--ui-ink-muted);margin:0 0 8px;font-size:.85rem}.hint{color:var(--ui-ink-muted);font-size:.8rem}.hint.good{color:var(--ui-ink);font-weight:600}.tag{border:1.5px solid var(--ui-line);background:var(--ui-surface-alt);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:600;display:inline-block}.card-main.static{cursor:default}.codex .cards>li{content-visibility:auto;contain-intrinsic-size:auto 88px}.scene-thumb{object-fit:cover;background:var(--ui-surface-alt);border-radius:6px;width:96px;height:54px;display:block}.card-main>button{flex:none;align-self:center}.card .done{color:var(--ui-ink);align-self:center}.progress{background:var(--ui-surface-alt);border:1.5px solid var(--ui-line);border-radius:999px;height:10px;margin:4px 0;display:block;overflow:hidden}.progress .bar{background:var(--ui-primary);height:100%;display:block}.active-project{border:2px solid var(--ui-ink);background:var(--ui-surface-alt);border-radius:12px;margin-bottom:8px;padding:8px 12px}.active-project h3{margin-top:0}.samples{flex-wrap:wrap;gap:6px;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.samples li{border:1.5px dashed var(--ui-line);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.samples li.have{border-style:solid;border-color:var(--ui-ink);font-weight:600}.table-wrap{overflow-x:auto}table.forecast,table.compare{border-collapse:collapse;width:100%;font-size:.8rem}table.forecast th,table.forecast td,table.compare th,table.compare td{border:1px solid var(--ui-line);text-align:left;vertical-align:top;padding:4px 6px}.forecast .wx{font-weight:600;display:block}.forecast .wx-effect{font-size:.72rem;display:block}dl.stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;margin:0 0 8px;display:grid}dl.stats div{background:var(--ui-surface-alt);border-radius:10px;padding:6px 8px}dl.stats dt{font-size:.75rem}dl.stats dd{margin:0;font-weight:700}dl.stats dd .sym{vertical-align:middle}.confirm{border:2px solid var(--ui-ink);border-radius:12px;padding:8px 12px}.confirm .row,.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}fieldset{border:none;gap:6px;margin:0;padding:0;display:grid}label.check{align-items:center;gap:8px;min-height:40px;display:flex}label.check input{width:20px;height:20px}.approaches label.approach{border:2px solid var(--ui-line);border-radius:12px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.approaches label.approach.on{border-color:var(--ui-primary);background:var(--ui-surface-alt)}.approaches legend{margin-bottom:4px;font-weight:700}.filters{margin-bottom:8px}.filters button.on{background:var(--ui-primary);color:var(--ui-primary-ink)}.filters .search{flex:140px;align-items:center;gap:4px;display:inline-flex}.filters .search input{border:2px solid var(--ui-line);width:100%;min-height:36px;font:inherit;border-radius:10px;padding:2px 8px}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.badge-grid li{content-visibility:auto;contain-intrinsic-size:auto 64px;background:var(--ui-surface-alt);border-radius:12px;align-items:center;gap:8px;padding:6px 8px;font-size:.85rem;display:flex}.badge-grid li div{display:grid}.badge-grid li.locked{opacity:.75}.banner.story{background:var(--ui-surface);border:2px solid var(--ui-ink);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.opportunity{z-index:3;border:3px solid var(--ui-ink);background:var(--ui-accent);border-radius:50%;place-items:center;min-width:72px;min-height:72px;padding:6px;animation:1.6s ease-in-out infinite opp-bob;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 6px #ffd25a73}.opp-token{background:radial-gradient(circle at 35% 35%,#fff6c8,#f0b429 55%,#b7791f);border-radius:50%;display:block}.opportunity:before{content:"";background:conic-gradient(var(--ui-ink) calc(var(--left,1) * 360deg), transparent 0);pointer-events:none;border-radius:50%;position:absolute;inset:-9px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px))}.opp-caption{white-space:nowrap;border:2px solid var(--ui-ink);background:var(--ui-surface);color:var(--ui-ink);font-family:var(--font-display);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600;line-height:1.3;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)}@keyframes opp-bob{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-58%)}}.opportunity.static{animation:none}button.opportunity:disabled,.opp-available:disabled{cursor:not-allowed;opacity:.6}.buff-tray{z-index:3;gap:4px;max-width:min(320px,100% - 16px);font-size:.8rem;display:grid;position:absolute;top:8px;right:8px}.buff-tray ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.buff-tray .buff,.buff-tray .combo,.buff-tray .opp-available{background:var(--ui-surface);border:2px solid var(--ui-ink);border-radius:999px;align-items:center;gap:6px;margin:0;padding:2px 10px 2px 4px;display:flex}.buff-tray .opp-available{min-height:40px;padding:4px 10px;font-weight:600}.buff-tray .mult{font-weight:700}.buff-tray .timer{font-variant-numeric:tabular-nums;margin-left:auto}.buff-tray .combo{background:var(--ui-accent);color:var(--ui-accent-ink);justify-content:center;font-weight:700}.node-icon{flex:none;align-self:center}.forecast .wx img{vertical-align:middle}.story-card{z-index:4;background:var(--ui-surface);border:2px solid var(--ui-ink);border-radius:14px;gap:6px;width:min(460px,100% - 24px);padding:8px 12px 10px;display:grid;position:absolute;bottom:52px;left:12px;box-shadow:0 6px #1e22302e}.story-card header,.story-card footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.story-card h2{font-family:var(--font-display);margin:0;font-size:1.05rem}.story-scene{object-fit:cover;border:2px solid var(--ui-line);border-radius:10px;width:100%;height:auto;max-height:160px}.story-scene.tall{object-fit:contain;background:var(--ui-surface-alt);height:160px}.story-line{grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.story-line p{margin:0}.story-line .portrait{object-fit:contain;width:64px;height:64px}.story-line .portrait.placeholder{background:var(--ui-surface-alt);border:2px solid var(--ui-line);border-radius:50%}.story-step{color:var(--ui-ink-muted);font-size:.8rem}.story-chip{z-index:4;background:var(--ui-surface);border:2px solid var(--ui-ink);border-radius:999px;gap:8px;max-width:calc(100% - 24px);min-height:44px;padding:4px 14px;font-weight:600;position:absolute;bottom:52px;left:12px;box-shadow:0 3px #1e22302e}:root[data-motion=full] .story-card footer .primary{animation:1.8s ease-in-out 4s infinite story-nudge}@keyframes story-nudge{0%,60%,to{transform:none}30%{transform:scale(1.07)}}@media (width<=899px){.story-card,.story-chip{bottom:44px}.story-card:not(.replay) .story-scene{display:none}}.motion-full .anomaly-shimmer{animation:4s ease-in-out infinite anomaly-shimmer}@keyframes anomaly-shimmer{0%,to{opacity:1}50%{opacity:.55}}.motion-full .anomaly-drip{animation:2.8s ease-in infinite anomaly-drip}.motion-full .anomaly-drip-1{animation-delay:.9s}.motion-full .anomaly-drip-2{animation-delay:1.8s}@keyframes anomaly-drip{0%{opacity:0;transform:translateY(0)}15%{opacity:1}to{opacity:0;transform:translateY(140px)}}.chapter-card{z-index:5;background:var(--ui-surface);border:2px solid var(--ui-ink);pointer-events:none;border-radius:16px;justify-items:center;gap:2px;padding:12px 28px;animation:3.5s ease-in-out both chapter-in;display:grid;position:absolute;top:18%;left:50%;transform:translate(-50%);box-shadow:0 6px #1e223033}.chapter-art{border-radius:10px;width:min(360px,70vw);height:auto;margin-bottom:6px;display:block}.chapter-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ui-ink-muted);font-size:.85rem}.chapter-name{font-family:var(--font-display);font-size:clamp(1.3rem,4vw,2rem)}@keyframes chapter-in{0%{opacity:0;transform:translate(-50%,8px)}12%,85%{opacity:1;transform:translate(-50%)}to{opacity:0}}.banner.final-job{background:var(--ui-surface);border:2px solid var(--ui-ink);font-weight:700}.ending-flash{z-index:3;pointer-events:none;background:radial-gradient(circle at 50% 30%,#ffd978d9,#ffd97800 70%);animation:2.2s ease-out both ending-flash;position:absolute;inset:0}@keyframes ending-flash{0%{opacity:0}20%{opacity:1}to{opacity:0}}.chapter-card.still{animation:none}.ending-flash.still{opacity:.5;animation:none}.approach-art{flex:none;align-self:center}.ticker{z-index:2;background:var(--ui-surface);border:2px solid var(--ui-ink);border-radius:999px;align-items:center;gap:8px;max-width:min(560px,100% - 340px);padding:4px 10px;font-size:.82rem;display:flex;position:absolute;top:8px;left:8px}.ticker-tag{text-transform:uppercase;letter-spacing:.06em;color:var(--ui-ink-muted);font-size:.7rem;font-weight:700}.ticker-line{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;overflow:hidden}.ticker-text{display:inline-block}:root[data-motion=full] .ticker-line[data-overflow]{text-overflow:clip}:root[data-motion=full] .ticker-line[data-overflow] .ticker-text{animation:ticker-run var(--dur,6s) linear 1.5s 1 forwards}@keyframes ticker-run{to{transform:translateX(var(--shift,0))}}:root:not([data-motion=full]) .ticker-line[data-overflow]{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}:root:not([data-motion=full]) .ticker:has(.ticker-line[data-overflow]){border-radius:18px}:root:not([data-motion=full]) .work-area:has(.ticker-line[data-overflow]) .toasts{top:72px}.news-log{gap:6px;margin:0;padding:8px 16px 16px 36px;display:grid}@media (width<=1299px){.ticker{max-width:calc(100% - 16px);right:8px}.ticker~.buff-tray{top:48px}}.dispatch-map{width:100%;max-width:600px;height:auto;margin:8px 0 12px;display:block}.dispatch-map .map-name{font:600 19px var(--font-display);fill:var(--ui-ink)}.dispatch-map .map-name.fog{fill:var(--ui-ink-muted);font-size:22px}.loadout-board{border:2px solid var(--ui-ink);background:linear-gradient(#ffffff1f 1px,#0000 1px) 0 0/16px 16px,linear-gradient(90deg,#ffffff1f 1px,#0000 1px) 0 0/16px 16px,#1f4e8c;border-radius:12px;align-items:flex-end;gap:12px;margin:8px 0;padding:10px 12px;display:flex}.board-foreman{flex:none;width:64px;height:auto}.board-slots{flex-wrap:wrap;flex:1;gap:8px;display:flex}.board-slot{text-align:center;border-radius:10px;align-content:center;justify-items:center;gap:4px;width:92px;min-height:84px;padding:6px;font-size:.75rem;line-height:1.2;display:grid}.board-slot.filled{background:var(--ui-bg);border:2px solid var(--ui-ink);color:var(--ui-ink)}.board-slot.empty{color:#fff;border:2px dashed #ffffffb3}.board-slot img{object-fit:contain;width:40px;height:40px}.rebuild-art{border:2px solid var(--ui-ink);border-radius:10px;width:100%;height:auto;margin-bottom:8px;display:block}.motion-full .anim-celebrate{animation:.8s ease-out celebrate}@keyframes celebrate{0%,to{transform:translateY(0)}30%{transform:translateY(calc(-14 * var(--u))) scaleY(1.03)}55%{transform:translateY(0)scaleY(.98)}}.sprite-motion.echo{opacity:.32;filter:saturate(.4)hue-rotate(200deg)}.motion-full .echo-a{animation-delay:-.45s}.motion-full .echo-b{animation-delay:-.9s}.motion-full .anim-arrive{animation:1s cubic-bezier(.2,.7,.3,1) arrive}@keyframes arrive{0%{transform:translateX(calc(160 * var(--u)));opacity:0}30%{opacity:1}to{transform:translate(0)}}.motion-full.scene-in .scene,.motion-full.scene-in .sprites{animation:.45s ease-out scene-in}@keyframes scene-in{0%{opacity:.35}to{opacity:1}}.blueprint-redraw{z-index:2;pointer-events:none;background:linear-gradient(#ffffff2e 1px,#0000 1px) 0 0/24px 24px,linear-gradient(90deg,#ffffff2e 1px,#0000 1px) 0 0/24px 24px,#1f4e8cd9;animation:1.3s ease-in forwards redraw;position:absolute;inset:0}@keyframes redraw{0%{opacity:1}to{opacity:0}}.weather-overlay{pointer-events:none;position:absolute;inset:0;overflow:hidden}.motion-battery .weather-overlay{display:none}.weather-overlay:before,.weather-overlay:after{content:"";inset:calc(-1 * var(--tile-h,0px)) calc(-1 * var(--tile-w,0px)) 0 0;position:absolute}.wx-rain,.wx-hail{background:linear-gradient(#7887a042,#7887a014 55%,#0000 80%)}.wx-snow{background:linear-gradient(#c8d4e657,#c8d4e61a 55%,#0000 80%)}.wx-rain:before{--tile-h:90px;background:linear-gradient(104deg,#0000 47%,#dcebfa73 48% 50%,#0000 51%) 0 0/60px 90px}.wx-snow:before{--tile-h:131px;background-color:#0000;background-image:radial-gradient(circle at 17px 23px,#fffffff2 0 1.8px,#ffffff59 2.8px,#0000 4px),radial-gradient(circle at 71px 88px,#ffffffe6 0 1.5px,#ffffff4d 2.4px,#0000 3.5px),radial-gradient(circle at 103px 41px,#ffffffd9 0 1.3px,#ffffff4d 2.2px,#0000 3.2px),radial-gradient(circle at 48px 117px,#ffffffe6 0 1.6px,#ffffff52 2.6px,#0000 3.8px);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:127px 131px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}.wx-snow:after{--tile-h:79px;background-color:#0000;background-image:radial-gradient(circle at 9px 61px,#fff9 0 .9px,#0000 2px),radial-gradient(circle at 37px 14px,#ffffff80 0 .8px,#0000 1.8px),radial-gradient(circle at 58px 47px,#ffffff8c 0 1px,#0000 2.1px);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:73px 79px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.wx-hail:before{--tile-h:46px;background:radial-gradient(circle,#ffffffe6 0 1.3px,#ffffff59 2.1px,#0000 3px) 0 0/46px 46px,radial-gradient(circle,#ffffffbf 0 1px,#ffffff4d 1.7px,#0000 2.5px) 23px 17px/46px 46px}.wx-wind:before{--tile-w:160px;background:linear-gradient(176deg,#0000 46%,#ffffff4d 48% 49%,#0000 51%) 0 0/160px 60px}.wx-cloud{background:linear-gradient(#6e788c38,#0000 55%)}.wx-heat{background:linear-gradient(#ffaa4624,#0000 60%)}.wx-aurora{background:linear-gradient(#6fe0d238,#a891f024 30%,#0000 55%)}.wx-meteor{background:linear-gradient(#2325522e,#0000 60%)}.wx-reality-storm{background:linear-gradient(#7b5cd633,#0000 65%)}.motion-full .wx-rain:before{animation:.45s linear infinite wx-fall}.motion-full .wx-snow:before{animation:2.6s linear infinite wx-fall}.motion-full .wx-snow:after{animation:2.9s linear infinite wx-fall}.motion-full .wx-hail:before{animation:.4s linear infinite wx-fall}.motion-full .wx-wind:before{animation:1.1s linear infinite wx-blow}@keyframes wx-fall{0%{transform:translateY(0)}to{transform:translateY(var(--tile-h))}}@keyframes wx-blow{0%{transform:translate(0)}to{transform:translateX(calc(-1 * var(--tile-w)))}}.lab-reaction{border:2px solid var(--art-teal-base);background:#e6fbf8;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-weight:600;display:flex}.lab-reaction.discovery{border-color:var(--ui-highlight);background:#fff7d6}.lab-reaction .flask{place-items:center;display:inline-grid;position:relative}.lab-reaction .flask i{background:var(--art-teal-base);opacity:0;border-radius:50%;width:6px;height:6px;position:absolute;bottom:14px}.lab-reaction.discovery .flask i{background:var(--ui-highlight)}:root[data-motion=full] .lab-reaction .flask i{animation:1.2s ease-out 2 bubble}.lab-reaction .flask i:nth-child(3){animation-delay:.2s;left:4px}.lab-reaction .flask i:nth-child(4){animation-delay:.45s;right:4px}@keyframes bubble{0%{opacity:.9;transform:translateY(0)scale(.6)}to{opacity:0;transform:translateY(-16px)scale(1.1)}}.panel-scene{object-fit:cover;border:2px solid var(--ui-ink);border-radius:10px;width:100%;height:auto;max-height:150px;margin-bottom:8px;display:block}.flying-coin{pointer-events:none;z-index:60;width:24px;height:24px;margin:-12px 0 0 -12px;position:fixed;top:0;left:0}.hud .balance .amount.gain{animation:.38s ease-out balance-gain}@keyframes balance-gain{40%{transform:scale(1.12)}}@media (width<=899px) and (height<=520px) and (orientation:landscape){.hud{grid-template:"balance rates info-btn save"38px"info info info info""goal goal goal goal"30px/minmax(0,auto) minmax(0,1fr) auto auto;gap:2px 10px;padding-top:2px;padding-bottom:4px}.rates{font-size:.8rem;line-height:1.15}.balance .amount{font-size:1.2rem}.balance .unit{display:none}.save-indicator{max-width:9em}.goal{white-space:nowrap;height:30px;font-size:.85rem;line-height:1.2;overflow:hidden}.goal-text{text-overflow:ellipsis;overflow:hidden}.ticker{max-width:55%;padding:2px 8px;font-size:.72rem;top:4px;left:6px;right:auto}.onboarding{max-width:min(320px,42%);padding:4px 8px;bottom:32px;left:auto;right:8px}.onboarding .portrait{width:32px;height:32px}.onboarding p{font-size:.75rem}.bottom-nav button{flex-direction:row;gap:6px;min-height:34px}.job-progress{font-size:.75rem;bottom:4px}.office{max-height:78%}}.job-card,.thanks{box-sizing:border-box;background:var(--ui-surface);max-width:min(420px,100% - 24px);color:var(--ui-ink);border:2px solid var(--ui-ink);pointer-events:none;z-index:3;border-radius:14px;padding:6px 12px;position:absolute;left:50%;transform:translate(-50%)}.job-card{text-align:center;gap:2px;font-size:.85rem;display:grid;top:56px}.job-card strong{font-family:var(--font-display);font-size:.95rem;font-weight:600}.job-card.rare{background:var(--ui-highlight)}.motion-full .anim-job-card{animation:5.2s ease-out forwards job-card}@keyframes job-card{0%{opacity:0;transform:translate(-50%,-8px)}8%,85%{opacity:1;transform:translate(-50%)}to{opacity:0}}.thanks{border-radius:16px 16px 16px 4px;margin:0;font-size:.9rem;top:96px}@media (width<=899px) and (height<=520px) and (orientation:landscape){.job-card,.thanks{font-size:.75rem;top:34px}}.skill-btn{border:3px solid var(--ui-ink);background:var(--ui-surface);cursor:pointer;z-index:4;border-radius:50%;place-items:center;width:64px;height:64px;padding:0;display:grid;position:absolute;bottom:56px;left:12px}@media (width<=899px){.app:not(.tab-work) .skill-btn{visibility:hidden}}.skill-btn img{object-fit:cover;border-radius:50%;width:52px;height:52px;display:block}.skill-ring{background:conic-gradient(var(--ui-accent) calc(var(--p,0) * 1turn), var(--ui-line) 0);pointer-events:none;border-radius:50%;position:absolute;inset:-7px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px))}.skill-btn.ready .skill-ring{background:var(--ui-success)}.skill-btn[aria-disabled=true] img{filter:grayscale(.7)}.skill-btn.kit .skill-ring{background:conic-gradient(var(--ui-highlight) calc(var(--p,0) * 1turn), var(--ui-line) 0)}.skill-badge{background:var(--ui-highlight);min-width:22px;height:22px;color:var(--ui-ink);border:2px solid var(--ui-ink);font:700 .8rem/18px var(--font-display,system-ui);text-align:center;border-radius:11px;align-items:center;gap:2px;padding:0 5px;display:inline-flex;position:absolute;top:-6px;right:-6px}.skill-badge img{object-fit:contain;border-radius:0;width:14px;height:14px}.skill-caption{white-space:nowrap;border:2px solid var(--ui-ink);background:var(--ui-surface);color:var(--ui-ink);font:600 .75rem/1.3 var(--font-display,system-ui);pointer-events:none;border-radius:999px;padding:1px 8px;position:absolute;bottom:calc(100% + 10px);left:-6px}.work-area:has(.skill-btn) .story-chip{max-width:calc(100% - 104px);left:92px}.work-area:has(.fi) .ticker{visibility:hidden}.skill-fallback{font-weight:700}.skill-btn.ready:before{content:"";opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-3px;box-shadow:0 0 14px 5px #2e7d4f8c}.motion-full .skill-btn.ready:before{animation:2.4s ease-in-out infinite skill-glow}@keyframes skill-glow{0%,to{opacity:0}50%{opacity:1}}.nail-box{pointer-events:all;cursor:pointer;outline:none}.nail-halo{fill:#ffe07a59;stroke:#ffc21ae6;stroke-width:2px}.nail-box:focus-visible .nail-halo{stroke:var(--ui-focus);stroke-width:4px;stroke-dasharray:8 5}.nail-spark{fill:#fff;stroke:var(--art-outline);stroke-width:1px;pointer-events:none}.motion-full .nail-spark{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite nail-twinkle}@keyframes nail-twinkle{0%,to{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1.1)}}.walt-card{border:2px solid var(--ui-line);background:var(--ui-surface);border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:4px 12px;margin:0 0 10px;padding:10px;display:grid}.walt-card .walt-portrait{border-radius:50%;grid-row:span 2}.walt-card h3{margin:0;font-size:1rem}.walt-card p{margin:2px 0 0;font-size:.88rem}.walt-card .walt-stats{color:var(--ui-ink-muted)}.walt-card .walt-level{grid-column:1/-1;min-height:44px}.fi{z-index:30;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;background:#171a2652;outline:none;position:absolute;inset:0;overflow:hidden}.fi-top{pointer-events:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;top:10px;left:12px;right:12px}.fi-hint,.fi-combo,.fi-note{background:var(--ui-dark-bg);color:var(--ui-dark-ink);border-radius:999px;margin:0;padding:4px 12px;font-size:.88rem}.fi-combo{font-family:var(--font-display,system-ui);text-align:center;min-width:4.5em;font-weight:600}.fi-note{position:absolute;bottom:120px;left:50%;transform:translate(-50%)}.fi-stop{pointer-events:auto;cursor:pointer;min-width:44px;min-height:44px}.fi-walt{pointer-events:none;width:auto;position:absolute;transform:translate(-50%,-100%)}.fi-mark{pointer-events:none;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute}.fi-core{background:var(--ui-highlight);border:3px solid var(--ui-ink);box-sizing:border-box;border-radius:50%;position:absolute;inset:12px}.fi-mark:not([data-shown]){visibility:hidden}.fi-mark[data-shown] .fi-core{animation:.14s ease-out both fi-pop}.fi-mark.active .fi-core{background:var(--ui-accent)}.fi-ring{box-sizing:border-box;box-shadow:0 0 0 2px var(--ui-ink);transform:scale(calc(3 - 2 * var(--k,0)));opacity:min(1, calc(var(--k,0) / .15));border:4px solid #fff;border-radius:50%;position:absolute;inset:0}@keyframes fi-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.fi-bar{background:#171a268c;border-radius:4px;width:8px;height:44px;margin-left:-4px;position:absolute;bottom:6px;left:50%;overflow:hidden}.fi-bar i{transform-origin:50% 100%;width:100%;height:100%;transform:scaleY(var(--k,0));background:#fff;display:block}.fi-reduced .fi-mark[data-shown] .fi-core{animation:none}.fi-mark.done .fi-core{opacity:1;animation:none}.fi-mark.done.miss .fi-core{background:var(--ui-disabled-bg);opacity:.7}.fi-patch{border:2px solid var(--art-outline);background:repeating-linear-gradient(0deg, var(--art-work-blue-base) 0 9px, var(--art-work-blue-lo) 9px 11px);opacity:.9;border-radius:4px;width:54px;height:30px;margin:-15px 0 0 -27px;position:absolute;top:50%;left:50%}.fi-judge{border:2px solid var(--ui-ink);background:var(--ui-dark-bg);color:var(--ui-dark-ink);font:700 1rem/1.3 var(--font-display,system-ui);white-space:nowrap;border-radius:999px;padding:2px 12px;position:absolute;top:-30px;left:50%;transform:translate(-50%)}.fi-mark.perfect .fi-judge{background:var(--ui-highlight);color:var(--ui-ink)}.fi:not(.fi-reduced) .fi-judge{animation:.7s ease-out both fi-rise}@keyframes fi-rise{0%{opacity:1;margin-top:0}to{opacity:0;margin-top:-22px}}.fi-card{border:3px solid var(--ui-ink);background:var(--ui-bg);width:min(420px,100% - 32px);color:var(--ui-ink);cursor:default;border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:8px 14px;padding:16px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fi-card .portrait{border-radius:50%}.fi-card p{margin:0}.fi-card .fi-msg{font-family:var(--font-display,system-ui);font-size:1.05rem;font-weight:600}.fi-card .fi-sub{color:var(--ui-ink-muted);font-size:.88rem}.fi-card button{grid-column:1/-1;min-height:44px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fi-card{background:var(--ui-dark-surface);color:var(--ui-dark-ink)}:root:not([data-theme=light]) .fi-card .fi-sub{color:var(--ui-dark-ink-muted)}}.fi-play{outline:none;position:absolute;inset:0}.fi-play:focus-visible{outline-offset:-8px;outline:4px dashed #fff}.miss-layer{pointer-events:none;z-index:3;position:absolute;inset:0;overflow:hidden}.miss-tap{width:0;height:0;position:absolute}.miss-ripple{box-sizing:border-box;border:3px solid var(--ui-highlight);opacity:.8;border-radius:50%;width:36px;height:36px;position:absolute;top:-18px;left:-18px}:root[data-motion=full] .miss-ripple{animation:.52s ease-out forwards miss-ripple}@keyframes miss-ripple{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.5)}}.miss-hint{border:2px solid var(--ui-ink);background:var(--ui-highlight);max-width:70vw;color:var(--ui-ink);font-family:var(--font-display);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:600;position:absolute;top:-52px;left:0;transform:translate(-50%)}@media (width<=899px){.ticker{display:none}.ticker~.buff-tray,.work-area .toasts{top:8px}:root:not([data-motion=full]) .work-area:has(.ticker-line[data-overflow]) .toasts{top:8px}.work-area:has(.buff-tray) .toasts{top:56px}}.panel-title{flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0;display:flex}.buy-chip{font-family:var(--font-body,inherit);background:var(--ui-highlight);color:var(--ui-accent-ink);white-space:nowrap;border-radius:999px;padding:0 8px;font-size:.8rem;font-weight:600;line-height:1.4}.card .cost .qty-tag{background:var(--ui-primary);color:var(--ui-primary-ink);vertical-align:1px;border-radius:999px;margin-right:6px;padding:0 7px;font-size:.8rem;font-weight:700;line-height:1.5;display:inline-block}.card .cost-row{flex-wrap:wrap;align-items:baseline;column-gap:8px;min-width:0;display:flex}.card .impact{color:var(--ui-ink);overflow-wrap:anywhere;min-width:0;font-size:.85rem;line-height:1.25}.card .unit-cost{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;color:var(--ui-ink-muted);font-size:.8rem}.card .best-tag{background:var(--ui-success);color:var(--ui-success-ink);font-family:var(--font-body,inherit);vertical-align:2px;white-space:nowrap;border-radius:999px;margin-left:8px;padding:0 8px;font-size:.75rem;font-weight:700;line-height:1.5;display:inline-block}.card.best .impact{color:var(--ui-success);font-weight:600}.card.slow .thumb{opacity:.45;filter:grayscale(.7)}.card.slow .card-main{background:var(--ui-surface-alt);box-shadow:none;border-style:dashed}.milestone-row{border:1px dashed var(--ui-line);color:var(--ui-ink-muted);border-radius:10px;align-items:center;gap:8px;margin:10px 0 0;padding:6px 10px;font-size:.85rem;display:flex}.milestone-row .icon{flex:none}.sheet-balance{z-index:2;background:var(--ui-surface-alt);border-bottom:1px solid var(--ui-line);font-family:var(--font-numeric);font-variant-numeric:tabular-nums;margin:-10px -12px 8px;padding:6px 12px;font-size:.95rem;font-weight:600;display:none;position:sticky;top:0}@media (width<=899px){.sheet-balance{display:block}}.dialog.welcome{overscroll-behavior:contain;width:min(480px,100vw - 16px);max-height:calc(100dvh - 16px);overflow-y:auto}.welcome .dialog-body{padding:4px 14px 14px}.welcome-body{gap:10px;display:grid}.jo-line{grid-template-columns:64px 1fr;align-items:center;gap:10px;display:grid}.jo-line .portrait{object-fit:contain;width:64px;height:64px}.jo-line p{margin:0}.welcome form{gap:10px;display:grid}.welcome-note{color:var(--ui-ink-muted);margin:0;font-size:.85rem}.step-count{color:var(--ui-ink-muted);margin:0;font-size:.8rem}.welcome .field,.company-settings .field{gap:4px;display:grid}.welcome label,.company-settings label{font-weight:600}.welcome input[type=text],.company-settings input[type=text]{border:2px solid var(--ui-ink);background:var(--ui-surface);width:100%;min-width:0;min-height:44px;color:var(--ui-ink);border-radius:10px;padding:6px 10px;font-size:16px}.with-dice{gap:6px;display:flex}.with-dice .dice{flex:none;padding:6px 10px;font-weight:600}fieldset.choices{border:none;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;min-width:0;margin:0;padding:0;display:grid}fieldset.choices legend{margin-bottom:4px;padding:0;font-weight:600}.choice{border:2px solid var(--ui-ink);background:var(--ui-surface);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;width:100%;max-width:52px;height:44px;min-height:44px;font-weight:400;display:inline-flex;position:relative}.choice input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.choice .tick{font-weight:700;display:none}.choice:has(input:checked){outline:3px solid var(--ui-focus);outline-offset:2px}.choice:has(input:checked) .tick{display:inline}.choice:has(input:focus-visible){outline:3px solid var(--ui-focus);outline-offset:3px;box-shadow:0 0 0 5px var(--ui-highlight)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{text-align:left;border-radius:999px;min-height:36px;padding:4px 10px;font-size:.85rem}.chip[aria-pressed=true]{background:var(--ui-surface-alt);border-color:var(--ui-primary)}.welcome-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.welcome form .welcome-actions{z-index:1;background:var(--ui-surface);border-top:1px solid var(--ui-ink-muted);margin:0 -4px;padding:8px 4px 6px;position:sticky;bottom:-10px}.welcome-actions .link{margin-left:auto}.emblem{background:var(--art-cream-base);box-sizing:border-box;border-radius:50%;flex:none;padding:3px;display:inline-flex}.emblem svg{width:100%;height:100%}.choice .emblem{background:0 0;padding:0}.company-card{border:2px solid var(--ui-ink);border-radius:12px;align-items:center;gap:10px;min-width:0;padding:8px 12px;display:flex}.company-card .company-text{min-width:0;display:grid}.company-name{font-family:var(--font-display);overflow-wrap:anywhere}.company-motto,.company-founded{font-size:.85rem}.company-card.compact{border-width:0 0 2px;border-radius:0;flex:none;height:40px;padding:0 10px}.company-card.compact .company-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.codex-company{margin-bottom:10px}@media (width<=339px){fieldset.choices{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (height<=700px){.welcome-body,.welcome form{gap:6px}}@media (width<=380px){.welcome .dialog-body{padding:2px 10px 10px}.jo-line{grid-template-columns:48px 1fr}.jo-line .portrait{width:48px;height:48px}}@media (prefers-reduced-motion:reduce){.dialog.welcome *{transition:none!important}}.away-status{z-index:4;pointer-events:none;width:min(420px,100% - 24px);position:absolute;bottom:12px;left:12px}.away-card{pointer-events:auto;background:var(--ui-surface);color:var(--ui-ink);border:2px solid var(--ui-ink);border-radius:12px;align-items:center;gap:8px;padding:8px 8px 8px 12px;font-size:.9rem;display:flex;box-shadow:0 3px #1e223033}.away-card p{flex:1;margin:0}.dialog.away .dialog-body{padding:4px 14px 14px}.away-body{gap:10px;display:grid}.away-body h3,.away-body p{margin:0}.away-time{color:var(--ui-ink-muted);font-size:.85rem}.away-total{font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:800}.away-rows{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.away-rows li{grid-template-columns:40px 1fr auto;grid-template-areas:"img name amount""img bar bar";align-items:center;gap:2px 8px;display:grid}.away-rows img,.away-rows .thumb{object-fit:contain;grid-area:img;width:40px;height:40px}.away-name{grid-area:name;font-weight:600}.away-amount{font-variant-numeric:tabular-nums;grid-area:amount}.away-bar{background:var(--ui-surface-alt);border-radius:4px;grid-area:bar;height:8px;display:block;overflow:hidden}.away-bar>span{background:var(--ui-primary);border-radius:4px;height:100%;display:block}.away-storage{background:var(--ui-surface-alt);border-radius:8px;padding:8px 10px}.away-actions{flex-wrap:wrap;justify-content:flex-end}.portfolio{gap:8px;display:grid}.portfolio dl{grid-template-columns:auto 1fr;gap:2px 12px;margin:4px 0 0;display:grid}.portfolio dd{font-variant-numeric:tabular-nums;margin:0}.away-rows .thumb.away-glyph{color:var(--ui-ink);justify-content:center;align-items:center;display:inline-flex}
