/* (c) 2026 City Nightfall. All rights reserved. No part of this game, its code or its art may be copied or reused without written permission. */
:root{--font-ui: "Poppins", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-black: 800;--fs-2xs: .64rem;--fs-xs: .72rem;--fs-sm: .84rem;--fs-md: 1rem;--fs-lg: 1.2rem;--fs-xl: 1.55rem;--fs-2xl: 2rem;--fs-hero: clamp(2.8rem, 10vmin, 6.5rem);--lh-tight: 1.15;--lh-body: 1.5;--tracking-label: .08em;--tracking-wide: .14em;--night-950: #0f0a1c;--night-900: #160f2a;--night-800: #211741;--purple-900: #2a0f57;--purple-700: #5a1fc2;--purple-600: #7b2ff7;--purple-500: #9656ff;--purple-300: #c9a8ff;--lilac-200: #e4dcf5;--lilac-100: #eee9f8;--lilac-50: #f5f2fb;--pink-500: #ff4f8b;--coral-500: #ff5d73;--orange-400: #ff9a4d;--peach-300: #ffc28a;--gold-400: #ffc93c;--teal-500: #1fb3a3;--green-500: #22a06b;--cream: #f8f8f8;--paper: #fcfbf8;--ink-900: #1c1530;--ink-700: #3a3150;--ink-500: #6a6280;--ink-400: #8e87a2;--white: #ffffff;--surface: var(--cream);--surface-raised: var(--white);--surface-muted: var(--lilac-100);--text: var(--ink-900);--text-soft: var(--ink-500);--text-on-accent: var(--white);--accent: var(--purple-600);--accent-strong: var(--purple-700);--accent-grad: linear-gradient(145deg, #9a4dff 0%, #7b2ff7 45%, #5a1fc2 100%);--warm-grad: linear-gradient(135deg, #ff4f8b 0%, #ff9a4d 100%);--glass: rgba(20, 13, 38, .72);--glass-edge: rgba(255, 255, 255, .12);--scrim: rgba(12, 6, 26, .55);--sunset: linear-gradient(180deg, #160b33 0%, #2c1161 22%, #5a1d8c 40%, #9c2f8f 55%, #e0527e 70%, #ff7b62 84%, #ffb36b 100%);--stat-energy: #f5b50b;--stat-fullness: #ff7a3d;--stat-hygiene: #1eaee0;--stat-fun: #9b5cff;--stat-bladder: #2fb7c4;--stat-charisma: #ff3d7f;--stat-fitness: #12a88f;--stat-smarts: #4c6fff;--stat-culture: #c34dff;--stat-money: #22a06b;--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 20px;--r-xl: 24px;--r-pill: 999px;--shadow-sm: 0 2px 8px rgba(20, 10, 40, .16);--shadow-md: 0 10px 30px rgba(0, 0, 0, .3);--shadow-lg: 0 24px 64px rgba(12, 4, 32, .45);--shadow-accent: 0 14px 34px rgba(123, 47, 247, .45);--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.34, 1.5, .64, 1);--dur-fast: .12s;--dur-med: .22s;--dur-slow: .42s;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}html{font-size:clamp(13px,1.9vmin,20px);-webkit-text-size-adjust:100%}html,body{height:100%;margin:0;overflow:hidden;background:var(--night-900);color:var(--text);font-family:var(--font-ui);font-weight:var(--fw-medium);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}#screen{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;display:block;touch-action:none}.ui{position:fixed;inset:0;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.ui button,.ui input,.ui .interactive{pointer-events:auto}:where(.ui button){font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer}.icon{width:1em;height:1em;display:block;flex:none}.t-display{font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.02em;line-height:var(--lh-tight)}.t-title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.03em;line-height:var(--lh-tight);color:var(--text)}.t-heading{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;line-height:var(--lh-tight)}.t-label{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label)}.t-body{margin:0;font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:var(--lh-body);color:var(--text-soft)}.t-hint{margin:0;font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-400)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}.modal{position:relative;width:min(100%,30rem);max-height:100%;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5);background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-md),0 1px #fffc inset;color:var(--text);animation:modal-in var(--dur-slow) var(--ease-spring) both}.modal-header{display:flex;flex-direction:column;gap:var(--sp-1);text-align:center}.modal-body{min-height:0;overflow:auto;overscroll-behavior:contain}.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.modal-footer .t-hint{flex:1 1 12rem}.modal-footer .actions{display:flex;gap:var(--sp-2);margin-left:auto}@keyframes modal-in{0%{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:2.6rem;padding:0 var(--sp-5);border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-med) var(--ease-out),background-color var(--dur-med) var(--ease-out)}.btn:active{transform:scale(.96)}.ui .btn-primary{background:var(--accent-grad);color:var(--text-on-accent);box-shadow:var(--shadow-accent)}.ui .btn-primary:hover{box-shadow:0 16px 38px #7b2ff799}.ui .btn-ghost{background:var(--surface-muted);color:var(--ink-700)}.ui .btn-ghost:hover{background:var(--lilac-200)}.btn-lg{min-height:3.2rem;padding:0 var(--sp-6);font-size:var(--fs-md)}.btn.is-active{outline:3px solid var(--purple-300);outline-offset:2px}.pill{display:inline-flex;align-items:center;gap:var(--sp-2);height:2.4rem;padding:0 var(--sp-4);border-radius:var(--r-pill);background:var(--glass);border:1px solid var(--glass-edge);box-shadow:var(--shadow-sm);color:var(--white);backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3);font-weight:var(--fw-bold);font-size:var(--fs-md);white-space:nowrap}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-2);justify-content:center;margin:0;padding:0;list-style:none}.chip{--chip: var(--accent);display:inline-flex;align-items:center;gap:.3em;padding:.3em .75em;border-radius:var(--r-pill);background:color-mix(in srgb,var(--chip) 14%,white);color:color-mix(in srgb,var(--chip) 80%,black);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.chip b{font-weight:var(--fw-black);font-size:1.15em}.bar{--fill: var(--accent);position:relative;height:.5rem;border-radius:var(--r-pill);background:var(--lilac-200);overflow:hidden}.bar>i{position:absolute;inset:0 auto 0 0;width:var(--value, 0%);border-radius:inherit;background:var(--fill);transition:width .7s var(--ease-out)}.scrim{position:absolute;inset:0;display:grid;place-items:center;padding:var(--sp-4);background:var(--scrim);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);pointer-events:auto;animation:fade-in var(--dur-med) var(--ease-out) both}.dialog{width:min(100%,22rem);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-5);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-lg);text-align:center;animation:modal-in var(--dur-slow) var(--ease-spring) both}.dialog .actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;justify-content:center;margin-top:var(--sp-2)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.badge-icon{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:var(--r-md);font-size:1.9rem}.front{position:fixed;inset:0;background:var(--sunset);pointer-events:auto;overflow:hidden}.front-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;min-height:0;padding:calc(var(--sp-4) + var(--safe-top)) calc(var(--sp-4) + var(--safe-right)) calc(var(--sp-4) + var(--safe-bottom)) calc(var(--sp-4) + var(--safe-left))}.front-stage>*{max-height:100%;min-height:0}.backdrop{position:absolute;inset:0;overflow:hidden}.backdrop .stars{position:absolute;inset:0 0 45%;width:100%;height:55%;opacity:.7}.backdrop .sun{position:absolute;left:50%;bottom:18vh;width:min(62vmin,34rem);aspect-ratio:1;transform:translate(-50%);border-radius:50%;background:repeating-linear-gradient(180deg,transparent 0 62%,rgba(224,82,126,.9) 62% 64.5%,transparent 64.5% 70%),linear-gradient(180deg,#ffe8a3,#ffb36b 45%,#ff6f7d);-webkit-mask:linear-gradient(180deg,#000 55%,transparent 100%);mask:linear-gradient(180deg,#000 55%,transparent 100%);filter:drop-shadow(0 0 60px rgba(255,150,110,.55));opacity:.92}.backdrop .skyline{position:absolute;left:0;right:0;bottom:0;width:100%;display:block}.backdrop .skyline-far{height:44vh;opacity:.9}.backdrop .skyline-near{height:30vh}.backdrop .haze{position:absolute;inset:auto 0 0;height:22vh;background:linear-gradient(180deg,transparent,rgba(12,6,26,.55))}.title-screen{display:flex;flex-direction:column;align-items:center;gap:var(--sp-5);margin-bottom:12vh;text-align:center}.title-screen .legal{margin:var(--sp-4) 0 0;font-size:var(--fs-2xs);color:#fff9;letter-spacing:.02em}.title-screen .legal a{color:inherit;text-decoration:underline;pointer-events:auto}.wordmark{margin:0;font-size:var(--fs-hero);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.01em;line-height:.95;background:linear-gradient(180deg,#fff,#ffe3c2 55%,#ffb36b);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 0 rgba(42,15,87,.55)) drop-shadow(0 18px 36px rgba(20,5,50,.5));animation:modal-in .7s var(--ease-spring) both}.tagline{margin:0;color:#ffffffe0;font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);text-shadow:0 2px 10px rgba(20,5,50,.5)}.press{animation:pulse 1.6s ease-in-out infinite}.press .when-touch{display:none}@media(pointer:coarse){.press .when-touch{display:inline}.press .when-fine{display:none}}@keyframes pulse{0%,to{transform:scale(1);box-shadow:var(--shadow-accent)}50%{transform:scale(1.05);box-shadow:0 18px 44px #7b2ff7b3}}.modal-menu{width:min(100%,21rem)}.menu-list{display:flex;flex-direction:column;gap:var(--sp-2)}.menu-item{width:100%;min-height:3rem;border-radius:var(--r-md);background:var(--surface-muted);color:var(--ink-700);font-size:var(--fs-md);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);transition:background-color var(--dur-med) var(--ease-out),color var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-spring),box-shadow var(--dur-med) var(--ease-out)}.menu-item.is-active{background:var(--accent-grad);color:var(--white);box-shadow:var(--shadow-accent);transform:scale(1.03)}.modal-text{width:min(100%,32rem)}.modal-creator{width:min(100%,50rem);min-height:0}.modal-creator .modal-header,.modal-creator .modal-footer{flex-shrink:0}.creator-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,17rem);grid-template-rows:minmax(0,1fr);gap:var(--sp-5);min-height:0;overflow:hidden}.creator-rows{display:flex;flex-direction:column;gap:.2rem;min-height:0;overflow:auto;overscroll-behavior:contain}.crow{position:relative;display:grid;grid-template-columns:minmax(5.5rem,1fr) auto;align-items:center;gap:var(--sp-3);min-height:2.6rem;padding:0 var(--sp-2) 0 var(--sp-4);border-radius:var(--r-sm);transition:background-color var(--dur-med) var(--ease-out)}.crow:before{content:"";position:absolute;left:.35rem;top:25%;bottom:25%;width:4px;border-radius:4px;background:var(--accent);transform:scaleY(0);transition:transform var(--dur-med) var(--ease-spring)}.crow.is-active{background:var(--surface-muted)}.crow.is-active:before{transform:scaleY(1)}.crow-label{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-500)}.crow.is-active .crow-label{color:var(--accent-strong)}.stepper{display:flex;align-items:center;gap:var(--sp-2)}.stepper-btn{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--white);color:var(--accent);font-size:.9rem;box-shadow:var(--shadow-sm);transition:transform var(--dur-fast) var(--ease-out),background-color var(--dur-med)}.stepper-btn:hover{background:var(--lilac-50)}.stepper-btn:active{transform:scale(.9)}.stepper-value{min-width:8.5rem;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text);text-align:center}.swatch{width:1.5rem;height:1.5rem;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 3px var(--white),0 0 0 4px var(--lilac-200),var(--shadow-sm)}.field-input{width:12.5rem;height:2.2rem;padding:0 var(--sp-3);border:2px solid var(--lilac-200);border-radius:var(--r-sm);background:var(--white);color:var(--text);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);outline:none;user-select:text;-webkit-user-select:text;transition:border-color var(--dur-med),box-shadow var(--dur-med)}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #7b2ff726}.creator-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2);padding-left:var(--sp-2);flex-wrap:wrap}.creator-actions .btn-primary{flex:1}.preview{position:relative;display:flex;flex-direction:column;align-items:center;border-radius:var(--r-lg);background:radial-gradient(120% 70% at 50% 100%,rgba(123,47,247,.22),transparent 70%),linear-gradient(180deg,var(--lilac-50),var(--lilac-200));overflow:hidden;min-height:14rem}.preview canvas{flex:1 1 auto;min-height:0;width:100%;height:100%}.preview-name{flex:none;max-width:calc(100% - var(--sp-4));margin:var(--sp-2) var(--sp-2) 0;padding:.25em .9em;overflow:hidden;text-overflow:ellipsis;border-radius:var(--r-pill);background:var(--white);box-shadow:var(--shadow-sm);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);white-space:nowrap}.modal-career{width:min(100%,58rem);gap:var(--sp-5)}.modal-career .t-body{text-align:center}.career-strip{position:relative;margin:0 calc(-1 * var(--sp-2))}.career-grid{display:flex;gap:var(--sp-4);padding:var(--sp-3) var(--sp-2);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding:0 var(--sp-2);scrollbar-width:thin;scrollbar-color:var(--purple-300) transparent;-webkit-overflow-scrolling:touch}.career-grid::-webkit-scrollbar{height:6px}.career-grid::-webkit-scrollbar-thumb{background:var(--purple-300);border-radius:var(--r-pill)}.career-arrow{position:absolute;top:50%;z-index:1;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--white);color:var(--accent-strong);box-shadow:var(--shadow-md);transform:translateY(-50%);transition:opacity var(--dur-med) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.career-arrow .icon{font-size:1.2rem}.career-arrow:hover{transform:translateY(-50%) scale(1.08)}.career-arrow.is-prev{left:calc(-1 * var(--sp-3))}.career-arrow.is-next{right:calc(-1 * var(--sp-3))}.career-arrow[disabled]{opacity:0;pointer-events:none}@media(pointer:coarse){.career-arrow{display:none}}.career-card{--career: var(--accent);flex:0 0 min(17.5rem,80%);scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-4);border-radius:var(--r-lg);background:var(--lilac-100);color:var(--text);text-align:center;box-shadow:0 0 0 1px #5a1fc20f inset;transition:transform var(--dur-slow) var(--ease-spring),background-color var(--dur-med) var(--ease-out),box-shadow var(--dur-med) var(--ease-out),color var(--dur-med) var(--ease-out)}.career-card:hover{background:var(--lilac-200)}.career-card .badge-icon{background:var(--white);color:var(--career);box-shadow:var(--shadow-sm);transition:inherit}.career-name{font-size:var(--fs-lg)}.career-desc{flex:1}.career-bonus{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:100%;padding-top:var(--sp-3);border-top:1px solid rgba(58,49,80,.1)}.career-bonus .t-label{color:var(--ink-400);font-size:var(--fs-2xs)}.career-card.is-active{background:var(--accent-grad);color:var(--white);transform:translateY(-6px) scale(1.03);box-shadow:var(--shadow-accent)}.career-card.is-active .badge-icon{background:#ffffff2e;color:var(--white);box-shadow:0 0 0 1px #ffffff4d inset}.career-card.is-active .career-desc{color:#ffffffdb}.career-card.is-active .career-bonus{border-top-color:#ffffff38}.career-card.is-active .career-bonus .t-label{color:#ffffffb8}.career-card.is-active .chip{background:#fff3;color:var(--white)}.confirm-career{color:var(--accent-strong);font-weight:var(--fw-bold)}@media(max-width:640px){.modal{padding:var(--sp-4);border-radius:var(--r-lg)}.creator-body{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.preview{min-height:0;height:11rem}.stepper-value{min-width:6.5rem}.field-input{width:9.5rem}.career-grid{gap:var(--sp-3)}.career-card{padding:var(--sp-4)}.career-card.is-active{transform:scale(1.02)}}@media(max-height:520px){.modal{padding:var(--sp-4);gap:var(--sp-3)}.career-card{padding:var(--sp-3);gap:var(--sp-2)}.career-card .badge-icon{width:2.6rem;height:2.6rem;font-size:1.4rem}.crow{min-height:2.2rem}.preview{min-height:0}.title-screen{margin-bottom:4vh;gap:var(--sp-4)}}@media(max-width:640px){.preview{order:-1}.career-card.is-active{transform:none;box-shadow:0 8px 20px #7b2ff766}.creator-rows{padding-bottom:var(--sp-3)}}.modal-account{width:min(24rem,calc(100vw - 2rem))}.account-form{display:flex;flex-direction:column;gap:var(--sp-3)}.account-form .account-input{width:100%;height:2.6rem;font-size:var(--fs-md)}.account-form .actions{display:flex;flex-direction:column-reverse;align-items:stretch;gap:var(--sp-2)}.account-error{min-height:1.2em;margin:0;color:#d4304a;font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.account-who{margin:var(--sp-1) 0 0;color:var(--text-muted, #6b6480)}.hud{position:fixed;inset:0}.hud-top{position:absolute;top:calc(var(--sp-3) + var(--safe-top));left:calc(var(--sp-3) + var(--safe-left));right:calc(var(--sp-3) + var(--safe-right));display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.hud-left{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.pill-time .day{color:var(--purple-300);font-size:var(--fs-xs);letter-spacing:var(--tracking-label);text-transform:uppercase}.pill-time .clock,.pill-cash{font-variant-numeric:tabular-nums}.pill-cash{color:var(--gold-400)}.energy{position:relative;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--glass);border:1px solid var(--glass-edge);box-shadow:var(--shadow-sm);color:var(--gold-400);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.energy svg.ring{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);transform:rotate(-90deg)}.energy .track{stroke:#ffffff24}.energy .fill{stroke:currentColor;transition:stroke-dashoffset .6s var(--ease-out)}.energy .icon{font-size:1rem}.energy.is-low{color:var(--coral-500);animation:throb 1s ease-in-out infinite}@keyframes throb{50%{transform:scale(1.08)}}.hud-phone{position:relative;display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:var(--r-md);background:var(--accent-grad);color:var(--white);box-shadow:0 6px 16px #7b2ff773;font-size:1.3rem;transition:transform var(--dur-fast) var(--ease-out)}.hud-phone:hover{transform:translateY(-1px) scale(1.05)}.hud-phone:active{transform:scale(.94)}.hud-phone .dot{position:absolute;top:-3px;right:-3px;width:.8rem;height:.8rem;border-radius:50%;background:var(--coral-500);box-shadow:0 0 0 2px var(--white);animation:pulse-dot 1s ease-in-out infinite}@keyframes pulse-dot{50%{transform:scale(1.35)}}.hud-hint{position:absolute;left:50%;bottom:calc(var(--sp-4) + var(--safe-bottom));transform:translate(-50%);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:var(--tracking-label);transition:opacity var(--dur-med),transform var(--dur-med) var(--ease-out)}.hud-hint.is-hidden{opacity:0;transform:translate(-50%,8px)}.hud-hint .key{display:grid;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 .35rem;border-radius:var(--r-xs);background:#ffffff29;font-size:var(--fs-2xs)}@media(pointer:coarse){.hud-hint .key{display:none}}@media(max-width:420px){.pill{height:2.2rem;padding:0 var(--sp-3);font-size:var(--fs-sm)}.pill-time .day{display:none}}.overlay{position:fixed;inset:0}.overlay>.layer{position:absolute;inset:0;pointer-events:auto}.layer-center{display:grid;place-items:center;padding:var(--sp-4)}.layer-bottom{display:flex;align-items:flex-end;justify-content:center;padding:var(--sp-4) var(--sp-4) calc(var(--sp-5) + var(--safe-bottom))}.continue{display:inline-flex;align-items:center;gap:.3em;color:var(--accent);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);animation:nudge 1s ease-in-out infinite}.continue .icon{font-size:.9rem}@keyframes nudge{50%{transform:translate(3px)}}.message{--tone: var(--accent);width:min(100%,26rem);display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-5);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-md);animation:modal-in var(--dur-slow) var(--ease-spring) both}.message.is-warning{--tone: var(--coral-500)}.message.is-goal{--tone: var(--teal-500)}.message-tag{align-self:flex-start;display:inline-flex;align-items:center;gap:.4em;padding:.3em .8em;border-radius:var(--r-pill);background:color-mix(in srgb,var(--tone) 14%,white);color:var(--tone)}.message-text{margin:0;color:var(--ink-700);font-size:var(--fs-md);font-weight:var(--fw-medium);line-height:var(--lh-body)}.message .continue{align-self:flex-end;color:var(--tone)}.speech{width:min(100%,36rem);display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) var(--sp-4);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-lg);animation:modal-in var(--dur-slow) var(--ease-spring) both}.speech-head{display:flex;align-items:center;gap:var(--sp-3)}.avatar{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--warm-grad);color:var(--white);font-weight:var(--fw-black);font-size:var(--fs-md);flex:none}.speech-who{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.speech-rel{display:flex;align-items:center;gap:var(--sp-2);color:var(--ink-400)}.speech-rel .bar{width:5rem;height:.35rem;--fill: var(--warm-grad)}.speech-text{margin:0;min-height:3em;color:var(--ink-700);font-size:var(--fs-md);line-height:var(--lh-body)}.speech .continue{align-self:flex-end;visibility:hidden}.speech.is-done .continue{visibility:visible}.ring-who{position:absolute;top:calc(4rem + var(--safe-top));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4) var(--sp-2) var(--sp-2);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-md);animation:modal-in var(--dur-slow) var(--ease-spring) both}.ring-who .avatar{width:2rem;height:2rem;font-size:var(--fs-sm)}.ring-who .bar{width:4.5rem;height:.35rem;--fill: var(--warm-grad)}.action-banner{display:flex;flex-direction:column;gap:var(--sp-2);min-width:min(100%,18rem);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-lg);background:var(--glass);border:1px solid var(--glass-edge);color:var(--white);box-shadow:var(--shadow-md);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:modal-in var(--dur-slow) var(--ease-spring) both}.action-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4)}.action-clock{font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;color:var(--purple-300)}.action-banner .bar{background:#ffffff26;--fill: var(--warm-grad)}.action-banner .bar>i{transition:none}.phone-layer{display:flex;align-items:flex-end;justify-content:center;padding:var(--sp-4) var(--sp-4) calc(var(--sp-3) + var(--safe-bottom));background:var(--scrim);animation:fade-in var(--dur-med) var(--ease-out) both}.phone{width:min(100%,22rem);height:min(100%,40rem);padding:.55rem;border-radius:2.2rem;background:linear-gradient(160deg,#2a2140,#120d20);box-shadow:var(--shadow-lg),0 0 0 1px #ffffff14 inset;animation:phone-up var(--dur-slow) var(--ease-spring) both}@keyframes phone-up{0%{transform:translateY(110%)}to{transform:none}}.phone-screen{height:100%;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4) var(--sp-3);border-radius:1.7rem;background:var(--paper);overflow:hidden}.phone-status{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font-size:var(--fs-xs);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.phone-status .notch{width:4.5rem;height:1.1rem;border-radius:var(--r-pill);background:#120d20}.phone-status .close{justify-self:end;display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--lilac-100);font-size:.8rem}.tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.25rem;padding:.25rem;border-radius:var(--r-pill);background:var(--lilac-100)}.tab{height:2.1rem;border-radius:var(--r-pill);color:var(--ink-500);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);transition:background-color var(--dur-med),color var(--dur-med),box-shadow var(--dur-med)}.tab.is-active{background:var(--accent-grad);color:var(--white);box-shadow:var(--shadow-sm)}.phone-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:var(--sp-3);padding:0 .1rem}.phone-body>*{animation:fade-in var(--dur-med) var(--ease-out) both}.phone-hint{text-align:center}.profile-head{display:flex;align-items:center;gap:var(--sp-3)}.profile-head .avatar{width:3rem;height:3rem;font-size:var(--fs-lg);background:var(--accent-grad)}.profile-head .who{display:flex;flex-direction:column}.career-panel{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);border-radius:var(--r-lg);background:linear-gradient(145deg,color-mix(in srgb,var(--career) 80%,white),var(--career) 60%,color-mix(in srgb,var(--career) 70%,black));color:var(--white);box-shadow:0 10px 24px color-mix(in srgb,var(--career) 45%,transparent)}.career-panel .top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.career-panel .t-label{opacity:.8}.career-panel .icon{font-size:1.4rem}.career-panel .bar{background:#ffffff47;--fill: var(--white)}.career-panel .xp{display:flex;justify-content:space-between;font-size:var(--fs-2xs);font-weight:var(--fw-semibold);opacity:.9}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.tile{display:flex;flex-direction:column;gap:.15rem;padding:var(--sp-3);border-radius:var(--r-md);background:var(--lilac-50);box-shadow:0 0 0 1px var(--lilac-100) inset}.tile .t-label{color:var(--ink-400);font-size:var(--fs-2xs)}.tile strong{font-size:var(--fs-md);font-weight:var(--fw-black);font-variant-numeric:tabular-nums}.tile.money strong{color:var(--stat-money)}.goal-box{padding:var(--sp-3);border-radius:var(--r-md);background:var(--lilac-50)}.goal-box .t-label{color:var(--ink-400);font-size:var(--fs-2xs)}.goal-box p{margin:.2rem 0 0;font-weight:var(--fw-semibold);font-size:var(--fs-sm)}.stat-group{display:flex;flex-direction:column;gap:var(--sp-2)}.stat-group>.t-label{color:var(--ink-400);font-size:var(--fs-2xs)}.stat-row{display:grid;grid-template-columns:1fr auto;gap:.25rem var(--sp-2);align-items:center}.stat-row .name{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em}.stat-row .value{font-size:var(--fs-xs);font-weight:var(--fw-black);color:var(--stat);font-variant-numeric:tabular-nums}.stat-row .bar{grid-column:1 / -1;--fill: var(--stat);background:color-mix(in srgb,var(--stat) 14%,white)}.person{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:.15rem var(--sp-3);align-items:center;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--lilac-50)}.person .avatar{grid-row:1 / 3;width:2.2rem;height:2.2rem;font-size:var(--fs-sm)}.person .name{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.person .rel{font-size:var(--fs-2xs);color:var(--ink-400);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em}.person .bar{grid-column:2 / 4;height:.35rem;--fill: var(--warm-grad)}.person .contact{color:var(--teal-500);font-size:.9rem}.empty{text-align:center;padding:var(--sp-5) var(--sp-3)}.worldui{position:fixed;inset:0;overflow:hidden;pointer-events:none}.world-anchor{position:absolute;left:0;top:0;will-change:transform}.bubble-pos{position:absolute;left:0;top:0;transform:translate(-50%,calc(-100% - var(--stack, 0) * 3.4rem))}.bubble{position:relative;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.35rem .6rem .4rem;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-md);transform-origin:50% 100%;animation:bubble-life 2s var(--ease-out) forwards}.bubble:after{content:"";position:absolute;left:50%;bottom:-.45rem;width:.9rem;height:.9rem;border-radius:0 0 .25rem;background:var(--surface);transform:translate(-50%) rotate(45deg);z-index:-1}.bubble-emoji{font-size:1.7rem;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.bubble-tags{display:flex;gap:.25rem}.bubble-tag{padding:.1em .5em;border-radius:var(--r-pill);background:color-mix(in srgb,var(--green-500) 14%,white);color:var(--green-500);font-size:var(--fs-2xs);font-weight:var(--fw-bold);white-space:nowrap}.bubble-tag.is-down{background:color-mix(in srgb,var(--coral-500) 14%,white);color:var(--coral-500)}@keyframes bubble-life{0%{opacity:0;transform:translateY(6px) scale(.3)}14%{opacity:1;transform:translateY(0) scale(1.1)}24%{transform:translateY(-2px) scale(1)}75%{opacity:1}to{opacity:0;transform:translateY(-28px) scale(1)}}.pin{position:absolute;left:0;top:0;display:flex;align-items:center;gap:.35rem;padding:.2rem .65rem .2rem .2rem;border-radius:var(--r-pill);background:var(--glass);border:1px solid var(--glass-edge);color:var(--white);box-shadow:var(--shadow-md);transform:translate(-50%,calc(-100% - .9rem));animation:pin-bob 1.4s ease-in-out infinite;white-space:nowrap}.pin-dot{display:grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--warm-grad);font-weight:var(--fw-black);font-size:var(--fs-sm)}.pin-label{font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label)}.pin-arrow{position:absolute;left:50%;top:50%;width:0;height:0;margin:-.35rem 0 0 -.2rem;border-left:.6rem solid var(--gold-400);border-top:.35rem solid transparent;border-bottom:.35rem solid transparent;transform-origin:.2rem .35rem;translate:0 0}.world-anchor:not(.is-edge) .pin-arrow{top:calc(100% + .25rem)}.world-anchor.is-edge .pin{transform:translate(-50%,-50%);animation:none}.world-anchor.is-edge .pin-arrow{margin-left:-.2rem}@keyframes pin-bob{50%{translate:0 -4px}}.hustle-slot{position:relative}.hustle-btn{position:relative;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:#ffffff38;border:1px solid var(--glass-edge);color:#ffffffb8;box-shadow:var(--shadow-sm);font-size:1.05rem}.hustle-btn.is-active{background:var(--accent);border-color:transparent;color:var(--white)}.hustle-btn.is-step{animation:hustle-pulse .9s var(--ease-out)}@keyframes hustle-pulse{0%,40%{background:var(--green-500);box-shadow:0 0 0 5px #22a06b59}to{background:var(--accent);box-shadow:var(--shadow-sm)}}.hustle-badge{position:absolute;top:-.28rem;right:-.28rem;min-width:1rem;height:1rem;padding:0 .2rem;border-radius:var(--r-pill);background:var(--white);color:var(--accent-strong);font-size:.62rem;font-weight:var(--fw-black);line-height:1rem;text-align:center;box-shadow:0 0 0 2px #140d2659}.hustle-card{position:absolute;top:calc(100% + .45rem);right:0;width:min(16rem,calc(100vw - 1.5rem - var(--safe-left) - var(--safe-right)));padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:#140d26e0;border:1px solid var(--glass-edge);box-shadow:var(--shadow-md);color:var(--white);text-align:left;z-index:2}.hustle-detail{display:flex;flex-direction:column;gap:.2rem}.hustle-card .hustle-title{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.hustle-card .hustle-step{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:#ffffffe6;line-height:1.35}.hustle-card .hustle-where,.hustle-card .hustle-count{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--purple-300);text-transform:uppercase;letter-spacing:.06em}.hustle-empty{margin:0;font-size:var(--fs-xs);line-height:1.35}body:has(.pad.is-menu) .hustle-card{opacity:0;pointer-events:none}.skill-row .level{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--ink-400);text-transform:uppercase;letter-spacing:.05em}.skill-row .value{display:flex;align-items:baseline;gap:.4rem}.skill-row .value{color:var(--accent-strong)}.skill-row .bar{--fill: var(--accent-grad);background:var(--lilac-100)}.skills-mini{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.skills-mini .stat-row{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--lilac-50)}.hustle-box{display:flex;flex-direction:column;gap:.15rem;padding:var(--sp-3);border-radius:var(--r-md);background:linear-gradient(145deg,#2a1d4a,#1a1230);color:var(--white)}.hustle-box .t-label{color:var(--gold-400);font-size:var(--fs-2xs)}.hustle-box strong{font-size:var(--fs-sm)}.hustle-box span:last-child{font-size:var(--fs-xs);color:#fffc}.shop-cash{flex-direction:row;justify-content:space-between;align-items:center}.shop-cat{color:var(--ink-400);font-size:var(--fs-2xs);margin-top:var(--sp-1)}.shop-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-raised);box-shadow:0 0 0 1px var(--lilac-100) inset,var(--shadow-sm);transition:box-shadow var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-spring)}.shop-item.is-active{box-shadow:0 0 0 2px var(--accent) inset,var(--shadow-accent);transform:translateY(-1px)}.shop-icon{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:var(--r-sm);background:linear-gradient(145deg,var(--lilac-50),var(--lilac-200));font-size:1.45rem;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.shop-item.is-owned .shop-icon{background:linear-gradient(145deg,#fff3d6,#ffd9a0)}.shop-info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.shop-item>.btn{grid-column:2;justify-self:start}.shop-name{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.shop-perks{display:flex;flex-wrap:wrap;gap:.2rem}.shop-perks .chip{font-size:.6rem}.shop-desc{font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--ink-500);line-height:1.35}.btn-sm{min-height:2rem;padding:0 var(--sp-3);font-size:var(--fs-2xs)}.btn-sm .icon{font-size:.8rem}.ui .btn-done{background:color-mix(in srgb,var(--green-500) 14%,white);color:var(--green-500)}.ui .btn[disabled]{cursor:default;opacity:.75}.ui .btn-ghost[disabled]{color:var(--ink-400)}.promo-layer{background:var(--scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fade-in var(--dur-med) var(--ease-out) both}.promo{--career: var(--accent);position:relative;width:min(100%,24rem);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-5) var(--sp-5);border-radius:var(--r-xl);background:linear-gradient(150deg,var(--career) 0%,#7b2ff7 50%,#ff4f8b 100%);box-shadow:var(--shadow-lg),0 0 60px color-mix(in srgb,var(--career) 45%,transparent);color:var(--white);text-align:center;overflow:hidden;animation:promo-in .65s var(--ease-spring) both}@keyframes promo-in{0%{opacity:0;transform:scale(.6) rotate(-3deg)}to{opacity:1;transform:none}}.promo-badge{display:grid;place-items:center;width:5.5rem;height:5.5rem;border-radius:50%;background:#fff3;box-shadow:0 0 0 8px #ffffff1a,0 12px 30px #14053259;font-size:2.8rem;animation:badge-spin .9s var(--ease-spring) .2s both}@keyframes badge-spin{0%{transform:scale(0) rotate(-120deg)}to{transform:none}}.promo-eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.3em;color:#ffe08a}.promo-title{margin:0;font-size:var(--fs-2xl);font-weight:var(--fw-black);text-transform:uppercase;line-height:1.05;text-shadow:0 4px 16px rgba(20,5,50,.35)}.promo-body{margin:0;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:#ffffffe6;line-height:var(--lh-body)}.promo-pay{display:inline-flex;align-items:center;gap:.5em;padding:.5em 1.1em;border-radius:var(--r-pill);background:#fffffff2;color:var(--green-500);font-size:var(--fs-sm);font-weight:var(--fw-black);box-shadow:var(--shadow-md)}.promo .btn{margin-top:var(--sp-2);background:var(--white);color:var(--accent-strong);box-shadow:var(--shadow-md)}.confetti{position:absolute;top:-10%;width:.5rem;height:.9rem;border-radius:2px;animation:confetti-fall 2.6s linear infinite;opacity:.9}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0)}to{transform:translateY(34rem) rotate(540deg)}}.promo>:not(.confetti){position:relative;z-index:1}.confetti{z-index:0}.tab{font-size:.56rem;letter-spacing:.04em;padding:0 .1rem;min-width:0}.rent-card{display:flex;flex-direction:column;gap:.35rem;padding:var(--sp-3);border-radius:var(--r-md);background:var(--lilac-50);box-shadow:0 0 0 1px var(--lilac-100) inset}.rent-top{display:flex;justify-content:space-between;align-items:center}.rent-top .t-label{color:var(--ink-400);font-size:var(--fs-2xs)}.rent-icon{font-size:1rem}.rent-card strong{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.rent-card .bar{--fill: var(--accent-grad)}.rent-card.is-urgent{background:color-mix(in srgb,var(--coral-500) 10%,white);box-shadow:0 0 0 1px color-mix(in srgb,var(--coral-500) 35%,white) inset}.rent-card.is-urgent strong{color:var(--coral-500)}.rent-card.is-urgent .bar{--fill: var(--warm-grad)}.rent-card.is-free strong{color:var(--green-500)}.roommate-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:linear-gradient(135deg,#fff0f5,#f3ecff)}.roommate-card .avatar{width:2.4rem;height:2.4rem;background:var(--warm-grad)}.roommate-card .who{display:flex;flex-direction:column;gap:.05rem;min-width:0}.roommate-card .t-label{color:var(--pink-500);font-size:var(--fs-2xs)}.roommate-card strong{font-size:var(--fs-sm)}.roommate-card .who>span:last-child{font-size:var(--fs-2xs);color:var(--ink-500);font-weight:var(--fw-medium)}.person .romance{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--pink-500)}.homes-head{display:flex;flex-direction:column;gap:.1rem}.homes-head .t-body{font-size:var(--fs-xs)}.home-card{display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;background:var(--surface-raised);box-shadow:0 0 0 1px var(--lilac-100) inset,var(--shadow-sm)}.home-card.is-current{box-shadow:0 0 0 2px var(--accent) inset,var(--shadow-accent)}.home-hero{position:relative;height:5.5rem;display:flex;align-items:flex-end;justify-content:space-between;padding:var(--sp-3);background:linear-gradient(0deg,rgba(22,11,51,.85) 0 18%,transparent 18%),linear-gradient(90deg,transparent 0 8%,rgba(22,11,51,.85) 8% 16%,transparent 16% 22%,rgba(22,11,51,.85) 22% 27%,transparent 27% 60%,rgba(22,11,51,.85) 60% 70%,transparent 70% 78%,rgba(22,11,51,.85) 78% 90%,transparent 90%) bottom / 100% 55% no-repeat,var(--sunset)}.home-hero.home-apartment{background:linear-gradient(0deg,rgba(40,30,20,.35) 0 20%,transparent 20%),linear-gradient(160deg,#ffd9a0,#ff9a6b)}.home-icon{font-size:2.2rem;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.home-price{padding:.25em .8em;border-radius:var(--r-pill);background:#fffffff2;color:var(--accent-strong);font-size:var(--fs-sm);font-weight:var(--fw-black)}.home-info{display:flex;flex-direction:column;gap:.35rem;padding:var(--sp-3)}.home-info>.btn{align-self:flex-start;margin-top:.2rem}.home-perks{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.2rem}.home-perks li{display:flex;align-items:center;gap:.35rem;font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--ink-700)}.home-perks .icon{color:var(--green-500);font-size:.8rem}.call-layer{background:#0a0516b3;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in var(--dur-med) var(--ease-out) both}.city{width:min(92vw,640px);max-height:86vh;overflow:auto;padding:18px 20px;border-radius:18px;background:#160f2af5;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;gap:12px}.city-body{display:flex;flex-direction:column;gap:10px}.city-district-name{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.7;margin-bottom:4px}.city-maps{display:flex;flex-wrap:wrap;gap:6px}.city-map.is-active{outline:2px solid #ff5bd6;outline-offset:1px}.city-map.is-locked{opacity:.4}.call{width:min(100%,21rem);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-5) var(--sp-5);border-radius:2rem;background:linear-gradient(180deg,#2c1161,#5a1d8c 45%,#d44a86);box-shadow:var(--shadow-lg);color:var(--white);text-align:center;animation:call-in .5s var(--ease-spring) both,call-shake 1.2s ease-in-out .6s 3}@keyframes call-in{0%{opacity:0;transform:translateY(40px) scale(.9)}to{opacity:1;transform:none}}@keyframes call-shake{0%,to{transform:none}10%,30%{transform:rotate(-1.5deg)}20%,40%{transform:rotate(1.5deg)}50%{transform:none}}.call-eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:#ffffffbf}.call-avatar{position:relative;display:grid;place-items:center;width:6rem;height:6rem;margin:var(--sp-3) 0}.call-face{position:relative;display:grid;place-items:center;width:5.2rem;height:5.2rem;border-radius:50%;background:var(--cream);font-size:2.6rem;box-shadow:var(--shadow-md);z-index:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.call-pulse{position:absolute;inset:.4rem;border-radius:50%;border:2px solid rgba(255,255,255,.6);animation:call-ring 1.8s ease-out infinite}.call-pulse+.call-pulse{animation-delay:.9s}@keyframes call-ring{0%{transform:scale(.9);opacity:.9}to{transform:scale(1.8);opacity:0}}.call-name{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-black)}.call-line{margin:0;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--cream);color:var(--ink-700);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1.4;box-shadow:var(--shadow-sm)}.call-actions{display:flex;justify-content:center;gap:var(--sp-6);margin-top:var(--sp-3)}.call-btn{display:flex;flex-direction:column;align-items:center;gap:.4rem;font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--white)}.call-round{display:grid;place-items:center;width:3.8rem;height:3.8rem;border-radius:50%;font-size:1.5rem;box-shadow:var(--shadow-md);transition:transform var(--dur-med) var(--ease-spring)}.call-pay .call-round{background:#22c55e}.call-decline .call-round{background:#ef4444}.call-btn.is-active .call-round{transform:scale(1.14);box-shadow:0 0 0 4px #ffffff59,var(--shadow-md)}.ui .call-btn[disabled]{opacity:.45;cursor:default}.hud-right{display:flex;align-items:center;gap:var(--sp-2)}.hud-stats{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--glass);border:1px solid var(--glass-edge);color:var(--white);box-shadow:var(--shadow-sm);font-size:1.05rem}.hud-stats .icon{width:1.15rem;height:1.15rem}.hud-stats:active{transform:scale(.94)}.stats-layer{padding:calc(var(--sp-4) + var(--safe-top)) calc(var(--sp-4) + var(--safe-right)) calc(var(--sp-4) + var(--safe-bottom)) calc(var(--sp-4) + var(--safe-left))}.stats-panel{width:min(100%,26rem);max-height:calc(100dvh - 2 * var(--sp-4) - var(--safe-top) - var(--safe-bottom));overflow:auto;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-4);border-radius:var(--r-xl);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.stats-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.stats-head .t-title{margin:0}.stats-close{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--lilac-100);color:var(--ink-700);font-size:.9rem}.stats-cash{display:flex;align-items:baseline;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--lilac-50)}.stats-cash .t-label{color:var(--ink-400)}.stats-money{font-size:var(--fs-xl);font-weight:var(--fw-black);color:var(--stat-money);font-variant-numeric:tabular-nums}.stats-panel .stat-group{display:flex;flex-direction:column;gap:var(--sp-2)}.stats-panel .need-row{grid-template-columns:1.6rem 1fr auto}.need-icon{font-size:1.15rem;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.stats-panel .skill-row .value{justify-content:flex-end}.ladder{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:3px;height:1.25rem;padding:3px;border-radius:var(--r-pill);background:var(--lilac-200);box-shadow:inset 0 1px 2px #140d261f}.ladder .rung{position:relative;overflow:hidden;border-radius:3px;background:color-mix(in srgb,var(--seg) 16%,white)}.ladder .rung:first-child{border-radius:var(--r-pill) 3px 3px var(--r-pill)}.ladder .rung:last-child{border-radius:3px var(--r-pill) var(--r-pill) 3px}.ladder .rung>i{position:absolute;inset:0 auto 0 0;width:var(--f, 0%);background:linear-gradient(180deg,color-mix(in srgb,var(--seg) 70%,white) 0%,var(--seg) 55%,color-mix(in srgb,var(--seg) 80%,black) 100%);transition:width .6s var(--ease-out)}.ladder .rung.is-now{box-shadow:0 0 0 2px var(--seg);animation:rungGlow 1.6s ease-in-out infinite}@keyframes rungGlow{50%{box-shadow:0 0 0 2px var(--seg),0 0 10px var(--seg)}}.ladder-marks{display:grid;grid-template-columns:repeat(4,1fr);color:var(--ink-400);font-size:var(--fs-2xs);font-weight:var(--fw-bold)}.ladder-marks span{text-align:right}.skill-card,.need-card{display:flex;flex-direction:column;gap:.35rem;padding:var(--sp-3) var(--sp-3);border-radius:var(--r-md);background:var(--lilac-50)}.skill-top,.need-top{display:flex;align-items:center;gap:var(--sp-2)}.skill-top .name,.need-top .name{flex:1;font-size:var(--fs-sm);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.05em;color:var(--stat)}.lvl-pts{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--ink-400);font-variant-numeric:tabular-nums}.lvl-badge{padding:.15rem .6rem;border-radius:var(--r-pill);background:var(--seg, var(--accent));color:var(--white);font-size:var(--fs-xs);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.05em;text-shadow:0 1px 0 rgba(0,0,0,.25);box-shadow:0 2px 6px color-mix(in srgb,var(--seg, var(--accent)) 45%,transparent)}.lvl-next{font-size:var(--fs-2xs);color:var(--ink-400);font-weight:var(--fw-bold)}.needs-panel .ladder{height:1.5rem}.need-top .need-icon{font-size:1.3rem}.need-value{font-size:var(--fs-lg);font-weight:var(--fw-black);color:var(--seg);font-variant-numeric:tabular-nums}.need-state{padding:.1rem .5rem;border-radius:var(--r-pill);background:color-mix(in srgb,var(--seg) 18%,white);color:color-mix(in srgb,var(--seg) 75%,black);font-size:var(--fs-2xs);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.05em}.need-card.is-low .need-value{animation:throb 1s ease-in-out infinite}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;padding:var(--sp-4);border-radius:var(--r-md);background:var(--lilac-50);color:var(--text);text-align:left}.setting-copy{display:flex;flex-direction:column;gap:.15rem;min-width:0}.setting-copy .t-hint{text-transform:none;letter-spacing:0}.switch{position:relative;flex:none;width:3.2rem;height:1.8rem;border-radius:var(--r-pill);background:var(--lilac-200);transition:background-color var(--dur-med) var(--ease-out)}.switch i{position:absolute;top:.15rem;left:.15rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--white);box-shadow:var(--shadow-sm);transition:transform var(--dur-med) var(--ease-spring)}.sound-switch.is-on .switch{background:var(--accent)}.sound-switch.is-on .switch i{transform:translate(1.4rem)}.story-layer{display:grid;place-items:center;padding:12vh var(--sp-4);background:radial-gradient(120% 90% at 50% 40%,#5a1d8c8c,#0a0516eb);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:fade-in .6s var(--ease-out) both}.story-bar{position:absolute;left:0;right:0;height:9vh;background:#07040f;animation:bar-in .7s var(--ease-out) both}.story-bar.top{top:0;transform-origin:top}.story-bar.bottom{bottom:0;transform-origin:bottom}@keyframes bar-in{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.story-card{position:relative;width:min(100%,30rem);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-5) var(--sp-5);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-lg);text-align:center}.story-card.is-turn{animation:story-turn .52s var(--ease-spring) both}@keyframes story-turn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}.story-art{display:grid;place-items:center;width:5.2rem;height:5.2rem;margin-top:-4.6rem;border-radius:50%;background:var(--sunset);box-shadow:0 0 0 6px var(--surface),var(--shadow-md);font-size:2.5rem;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.story-eyebrow{font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--accent)}.story-title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-black);text-transform:uppercase;line-height:1.1}.story-text{margin:0;min-height:4.5em;color:var(--ink-700);font-size:var(--fs-md);font-weight:var(--fw-medium);line-height:var(--lh-body)}.story-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;margin-top:var(--sp-2)}.story-dots{display:flex;gap:.35rem}.story-dot{width:.5rem;height:.5rem;border-radius:var(--r-pill);background:var(--lilac-200);transition:width var(--dur-med) var(--ease-out),background-color var(--dur-med)}.story-dot.is-active{width:1.4rem;background:var(--accent)}.avatar.has-portrait{overflow:hidden;background:linear-gradient(160deg,#fff3e3,#f1dcff);box-shadow:0 0 0 2px var(--white),var(--shadow-sm)}.avatar.has-portrait img{width:190%;height:auto;margin-top:8%;display:block;margin-left:-45%;pointer-events:none}.speech-head .avatar.has-portrait{width:3.2rem;height:3.2rem}.pad-root{position:fixed;inset:0;pointer-events:none;z-index:5}.hud-hint{display:none}.pad{--slot: 3.3rem;--reach: 3.7rem;--size: 11rem;position:absolute;right:calc(.9rem + var(--safe-right));bottom:calc(.9rem + var(--safe-bottom));display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:opacity var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-spring)}@media(pointer:fine){.pad{--slot: 2.9rem;--reach: 3.3rem;--size: 9.8rem}}.pad.is-hidden{opacity:0;transform:scale(.9)}.pad.is-hidden *{pointer-events:none!important}.pad.is-busy{opacity:.35}.pad.is-busy *{pointer-events:none!important}.pad-disc{position:relative;width:var(--size);height:var(--size);border-radius:50%;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background:radial-gradient(circle,#160e2a6b,#160e2a42 62%,#160e2a00 72%);transition:width var(--dur-med) var(--ease-spring),height var(--dur-med) var(--ease-spring)}.pad.is-menu{--reach: 4.6rem;--size: 14.4rem}@media(pointer:fine){.pad.is-menu{--reach: 4.2rem;--size: 13.6rem}}.pad-slot,.pad-center{position:absolute;left:50%;top:50%;border:0;padding:0;cursor:pointer;display:grid;place-items:center;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.pad-slot{width:var(--slot);height:var(--slot);margin:calc(var(--slot) / -2) 0 0 calc(var(--slot) / -2);border-radius:50%;background:#f8f6ff33;border:1.5px solid rgba(255,255,255,.4);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 6px 16px #0a041a4d;transition:transform var(--dur-med) var(--ease-spring),background-color var(--dur-fast),border-color var(--dur-fast),width var(--dur-med) var(--ease-spring),height var(--dur-med) var(--ease-spring),opacity var(--dur-med)}.pad-up{transform:translateY(calc(var(--reach) * -1))}.pad-down{transform:translateY(var(--reach))}.pad-left{transform:translate(calc(var(--reach) * -1))}.pad-right{transform:translate(var(--reach))}.pad-arrow svg{width:1.3rem;height:1.3rem;fill:#ffffffeb;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.pad-icon,.pad-label{display:none}.pad-slot.is-held{background:#ff5bd68c;border-color:#ffffffd9}.pad.is-walking .pad-slot:not(.is-held){opacity:.7}.pad-center{width:4.3rem;height:4.3rem;margin:-2.15rem 0 0 -2.15rem;border-radius:50%;background:var(--accent-grad);box-shadow:var(--shadow-accent);border:2px solid rgba(255,255,255,.5);color:var(--white);transition:transform var(--dur-fast) var(--ease-out),filter var(--dur-med),opacity var(--dur-med),background var(--dur-med)}@media(pointer:fine){.pad-center{width:3.7rem;height:3.7rem;margin:-1.85rem 0 0 -1.85rem}}.pad-center-icon{font-size:1.75rem;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.pad-center.is-idle{filter:saturate(.2);opacity:.55}.pad-center-label{position:absolute;bottom:calc(100% + var(--reach) + var(--slot) / 2 + .55rem);left:50%;transform:translate(-50%);white-space:nowrap;padding:.35em .9em;border-radius:var(--r-pill);background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-md);font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;pointer-events:none}.pad-center-label:empty{display:none}.is-pressed{animation:pad-press .24s var(--ease-spring)}@keyframes pad-press{40%{scale:.86}}.pad.is-menu .pad-slot{width:4.6rem;height:4.6rem;margin:-2.3rem 0 0 -2.3rem;border-radius:1.4rem;background:var(--surface);border-color:#ffffffe6;color:var(--ink-700);grid-template-rows:auto auto;align-content:center;gap:.15rem}.pad.is-menu .pad-arrow{display:none}.pad.is-menu .pad-icon,.pad.is-menu .pad-label{display:block}.pad.is-menu .pad-icon{font-size:1.6rem;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.pad.is-menu .pad-label{max-width:4.3rem;padding:0 .2rem;font-size:.58rem;font-weight:700;line-height:1.1;text-align:center;color:var(--ink-500);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.pad.is-menu .pad-slot.is-active{background:var(--accent-grad);color:var(--white);box-shadow:var(--shadow-accent)}.pad.is-menu .pad-slot.is-active .pad-label{color:var(--white)}@media(hover:hover){.pad.is-menu .pad-slot:not(.is-empty):hover{background:var(--accent-grad)}.pad.is-menu .pad-slot:not(.is-empty):hover .pad-label{color:var(--white)}}.pad.is-menu .pad-slot.is-empty{opacity:0;pointer-events:none}.pad.is-menu .pad-slot.is-in{animation:pad-in .32s var(--ease-spring) backwards}@keyframes pad-in{0%{opacity:0;scale:.4}}.pad.is-menu .pad-center{background:var(--ink-700);box-shadow:0 6px 16px #0a041a73}.pad.is-menu .pad-center-label,.pad.is-next .pad-center-label{position:static;transform:none;padding:0;background:none;box-shadow:none;color:#ffffffd9;font-size:.55rem;text-transform:uppercase;letter-spacing:.08em}.pad.is-menu .pad-center,.pad.is-next .pad-center{grid-template-rows:auto auto;align-content:center;gap:.1rem}.pad.is-menu .pad-center-icon,.pad.is-next .pad-center-icon{font-size:1.25rem;font-family:inherit}.pad.is-next .pad-slot{opacity:0;transform:translate(0) scale(.5);pointer-events:none}.pad-path{display:flex;align-items:center;gap:.35rem;min-height:1.8rem;pointer-events:none}.pad-path:empty{visibility:hidden}.pad-path-item{padding:.3em .85em;border-radius:var(--r-pill);background:var(--glass);color:var(--white);font-size:var(--fs-xs);font-weight:700;box-shadow:var(--shadow-md)}.pad-path-item:last-child{background:var(--surface);color:var(--accent-strong)}.pad-path-sep{color:#fffc;font-weight:700}@media(max-width:760px){.overlay>.layer-bottom{padding-bottom:calc(11.5rem + var(--safe-bottom))}}.layer-passive{pointer-events:none!important}.ring-who-object{padding:var(--sp-2) var(--sp-4)}.hud-map{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:var(--r-md);background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-md);transition:transform var(--dur-fast) var(--ease-out)}.hud-map:active{transform:scale(.92)}.hud-map .icon{width:1.35rem;height:1.35rem}.citymap-layer{display:grid;place-items:center;padding:calc(var(--sp-3) + var(--safe-top)) var(--sp-3) calc(var(--sp-3) + var(--safe-bottom));background:var(--scrim);animation:fade-in var(--dur-med) var(--ease-out) both}.citymap{width:min(100%,64rem);max-height:100%;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:1.6rem;background:var(--paper);box-shadow:var(--shadow-lg);animation:modal-in var(--dur-slow) var(--ease-spring) both}.citymap-head{display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-1)}.citymap-title{font-weight:800;font-size:var(--fs-lg);color:var(--ink-700)}.citymap-close{width:2rem;height:2rem;border-radius:50%;background:var(--lilac-100);color:var(--ink-700);font-size:.9rem}.citymap-board{min-height:0;flex:1;border-radius:1.1rem;overflow:hidden;background:#f7efe2;box-shadow:inset 0 0 0 1px #3c1e6e1f}.citymap-svg{display:block;width:100%;height:auto;max-height:calc(100vh - 11rem)}.cm-district{font:800 15px var(--font, sans-serif);letter-spacing:.12em;fill:#46286e73}.cm-sea-label{font:800 18px var(--font, sans-serif);letter-spacing:.4em;fill:#ffffffbf;text-anchor:middle}.cm-deco{font-size:18px;text-anchor:middle}.cm-landmark{font-size:30px;text-anchor:middle}.cm-landmark-label{font:700 12px var(--font, sans-serif);fill:#3c285ab3;text-anchor:middle}.cm-pin{cursor:pointer;transition:transform var(--dur-med) var(--ease-spring)}.cm-pin-ring{fill:none;stroke:transparent;stroke-width:4}.cm-pin-disc{fill:#fff;stroke:#8d5bd1;stroke-width:3}.cm-pin-icon{font-size:19px;text-anchor:middle;pointer-events:none}.cm-pin-label{font:800 13px var(--font, sans-serif);text-anchor:middle;fill:#3a2358;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.cm-pin.is-locked .cm-pin-disc{fill:#ece8f2;stroke:#b9aecb}.cm-pin.is-locked .cm-pin-label{fill:#8f84a3}.cm-pin.is-active .cm-pin-ring{stroke:#ff5bd6}.cm-pin.is-active .cm-pin-disc{fill:#fff0fb;stroke:#ff5bd6}.cm-pin.is-active .cm-pin-label{fill:#c02f95;font-size:15px}.cm-pin.is-shake{animation:cm-shake .36s var(--ease-out)}@keyframes cm-shake{25%{translate:-5px 0}75%{translate:5px 0}}.cm-here-pulse{fill:#ff5bd62e;stroke:#ff5bd6;stroke-width:2;animation:cm-pulse 1.6s ease-out infinite;transform-box:fill-box;transform-origin:center}@keyframes cm-pulse{0%{transform:scale(.7);opacity:1}to{transform:scale(1.5);opacity:0}}.cm-here-label{font:800 11px var(--font, sans-serif);letter-spacing:.1em;text-anchor:middle;fill:#c02f95;text-transform:uppercase}.citymap-info{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:1rem;background:var(--lilac-100)}.citymap-info-icon{font-size:1.8rem;line-height:1}.citymap-info-text{flex:1;display:flex;flex-direction:column;min-width:0}.citymap-info-text strong{color:var(--ink-700)}.citymap-info-text span{color:var(--ink-500);font-size:var(--fs-xs)}@media(max-width:760px){.citymap-layer{padding-bottom:calc(12rem + var(--safe-bottom))}}.pad{--slot: 3.8rem;--reach: 4.6rem;--size: 13.2rem}@media(pointer:fine){.pad{--slot: 3.3rem;--reach: 4.05rem;--size: 11.6rem}}.pad-arrow{display:grid;place-items:center;width:100%;height:100%}.pad-arrow svg{display:block;width:1.9rem;height:1.9rem}@media(pointer:fine){.pad-arrow svg{width:1.6rem;height:1.6rem}}.pad-center-label{bottom:calc(100% + var(--reach) + var(--slot) / 2 - 1.2rem)}.pad.is-nav .pad-center,.pad.is-next .pad-center{grid-template-rows:auto auto;align-content:center;gap:.1rem}.pad.is-nav .pad-center-label{position:static;transform:none;padding:0;background:none;box-shadow:none;color:#ffffffe6;font-size:.55rem;text-transform:uppercase;letter-spacing:.08em}.pad.is-nav .pad-center-icon{font-size:1.3rem;font-family:inherit}@media(orientation:landscape)and (min-width:700px){.phone-layer{align-items:center}.phone{width:min(94vw,58rem);height:min(90vh,36rem);border-radius:1.9rem;padding:.7rem}.phone-screen{display:grid;grid-template-columns:11.5rem 1fr;grid-template-rows:auto 1fr auto;column-gap:var(--sp-4);border-radius:1.3rem}.phone-status{grid-column:1 / -1}.phone-status .notch{width:.7rem;height:.7rem}.tabs{grid-column:1;grid-row:2;display:flex;flex-direction:column;align-self:start;gap:.35rem;border-radius:1.1rem;padding:.4rem}.tab{height:2.6rem;border-radius:.8rem;font-size:.66rem;text-align:left;padding:0 .9rem}.phone-body{grid-column:2;grid-row:2}.phone-hint{grid-column:1 / -1;grid-row:3}}@media(orientation:portrait){.phone-layer{--phone-gap: max(var(--sp-5), var(--safe-top), var(--safe-right), var(--safe-bottom), var(--safe-left));align-items:stretch;padding:var(--phone-gap)}.phone{width:100%;height:100%;max-width:none;max-height:none}}.citymap{height:min(100%,46rem)}.citymap-board{flex:1 1 auto;min-height:14rem;position:relative}.citymap-svg{position:absolute;inset:0;width:100%;height:100%;max-height:none}.cm-street{font:700 11px var(--font, sans-serif);fill:#5a3c828c;letter-spacing:.06em;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:3px}@media(max-width:760px)and (orientation:portrait){.citymap{height:auto}.citymap-board{flex:none;aspect-ratio:1000 / 640}}@media(pointer:fine){.pad.is-nav{opacity:0;pointer-events:none}.pad.is-nav *{pointer-events:none!important}}@media(pointer:coarse)and (orientation:landscape){.citymap-layer{padding-right:calc(14rem + var(--safe-right))}}.career-ladder{display:flex;flex-direction:column;gap:.5rem;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg, 1rem);background:var(--surface);box-shadow:var(--shadow-sm)}.career-ladder .stage{display:flex;align-items:center;gap:.75rem;padding:.5rem .6rem;border-radius:.8rem}.career-ladder .stage-n{display:grid;place-items:center;flex:none;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--lilac-100);color:var(--ink-500);font-weight:800;font-size:.85rem}.career-ladder .stage-text{display:flex;flex-direction:column;min-width:0}.career-ladder .stage-text span{font-size:var(--fs-xs);color:var(--ink-500)}.career-ladder .stage.is-current{background:color-mix(in srgb,var(--career) 14%,transparent)}.career-ladder .stage.is-current .stage-n{background:var(--career);color:#fff}.career-ladder .stage.is-done .stage-n{background:#2fbf8f;color:#fff}.career-ladder .stage.is-next{opacity:.75}.news-box{display:flex;flex-direction:column;gap:.35rem;padding:var(--sp-3) var(--sp-4);border-radius:1rem;background:#fff4d6;box-shadow:var(--shadow-sm)}.news-item{font-weight:700;color:var(--ink-700)}.needs-icons{position:absolute;transform:translate(-50%,-100%);padding:.15rem .45rem;border-radius:999px;background:#ffffffeb;box-shadow:var(--shadow-md);font-size:1.05rem;line-height:1.2;white-space:nowrap;animation:needs-bob 1.6s ease-in-out infinite;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}@keyframes needs-bob{50%{transform:translate(-50%,calc(-100% - 4px))}}.bag-card{display:flex;flex-direction:column;gap:.35rem;padding:var(--sp-3);border-radius:var(--r-md);background:linear-gradient(135deg,#fff7e8,#f3ecff);box-shadow:0 0 0 1px var(--lilac-100) inset}.bag-card .t-label{color:var(--ink-400);font-size:var(--fs-2xs)}.bag-items{display:flex;flex-direction:column;gap:.2rem}.bag-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.4rem;font-size:var(--fs-xs);font-weight:var(--fw-bold)}.bag-item-icon{font-size:1rem;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.bag-item-paid{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--ink-500)}.bag-empty{font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--ink-500);line-height:1.35}.bag-profit{font-size:var(--fs-2xs);font-weight:var(--fw-black);color:var(--green-500)}.bag-profit.is-down{color:var(--coral-500)}.market-layer{display:grid;place-items:center;padding:calc(var(--sp-3) + var(--safe-top)) var(--sp-3) calc(var(--sp-3) + var(--safe-bottom));background:var(--scrim);animation:fade-in var(--dur-med) var(--ease-out) both}.market{--shop: var(--accent);width:min(100%,36rem);max-height:100%;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--shadow-lg),0 0 0 1px #fff9 inset;animation:modal-in var(--dur-slow) var(--ease-spring) both}.market-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);background:linear-gradient(135deg,color-mix(in srgb,var(--shop) 85%,white),var(--shop) 55%,color-mix(in srgb,var(--shop) 70%,black));color:var(--white);box-shadow:0 10px 24px color-mix(in srgb,var(--shop) 40%,transparent)}.market-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:var(--r-md);background:#ffffffeb;font-size:1.7rem;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;box-shadow:var(--shadow-sm)}.market-title{display:flex;flex-direction:column;gap:.15rem;min-width:0}.market-title .t-heading{font-size:var(--fs-lg)}.market-hours{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);opacity:.9}.market-status{font-weight:var(--fw-bold);color:#d9ffe9}.market-status.is-closed{color:#ffd0d8}.market-money{display:flex;flex-direction:column;align-items:flex-end}.market-money .t-label{font-size:var(--fs-2xs);opacity:.85}.market-cash{font-size:var(--fs-lg);font-weight:var(--fw-black);font-variant-numeric:tabular-nums}.market-close{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#ffffff38;color:var(--white);font-size:.9rem}.market-close:hover{background:#ffffff59}.market-tabs{grid-template-columns:1fr 1fr}.market-tabs .tab{height:2.3rem;font-size:var(--fs-xs);letter-spacing:var(--tracking-label)}.market-tabs .tab.is-active{background:linear-gradient(145deg,color-mix(in srgb,var(--shop) 80%,white),var(--shop))}.market-ticker{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem var(--sp-2);min-height:1.6rem}.market-ticker .t-label{color:var(--ink-400);font-size:var(--fs-2xs)}.market-ticker-none{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--ink-400)}.market-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:var(--sp-2);padding:0 .1rem;overscroll-behavior:contain}.market-empty{margin:var(--sp-5) var(--sp-3);text-align:center;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--ink-500);line-height:var(--lh-body)}.trade-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-1) var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-raised);box-shadow:0 0 0 1px var(--lilac-100) inset,var(--shadow-sm);transition:box-shadow var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-spring),background-color var(--dur-med);cursor:pointer}.trade-row.is-active{box-shadow:0 0 0 2px var(--shop) inset,0 10px 24px color-mix(in srgb,var(--shop) 30%,transparent);transform:translateY(-1px)}.trade-row.is-dim{opacity:.62}.trade-row.is-dim.is-active{opacity:.85}.trade-row.is-flash{animation:trade-flash .7s var(--ease-out) both}.trade-row.is-shake{animation:trade-shake .38s var(--ease-out) both}@keyframes trade-flash{0%{background:color-mix(in srgb,var(--shop) 28%,white)}to{background:var(--surface-raised)}}@keyframes trade-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.trade-icon{grid-row:1 / 3;display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:var(--r-sm);background:linear-gradient(145deg,var(--lilac-50),var(--lilac-200));font-size:1.5rem;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.trade-row.has-stock .trade-icon{background:linear-gradient(145deg,#fff3d6,#ffd9a0)}.trade-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.trade-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}.trade-name{font-size:var(--fs-sm);font-weight:var(--fw-bold)}.trade-price{font-size:var(--fs-md);font-weight:var(--fw-black);color:var(--shop);font-variant-numeric:tabular-nums}.trade-tags{display:flex;flex-wrap:wrap;gap:.2rem}.trade-tags .chip,.market-ticker .chip{font-size:.58rem;padding:.25em .6em}.chip.is-cheap{--chip: var(--green-500)}.chip.is-dear{--chip: var(--coral-500)}.chip.is-usual{--chip: var(--ink-400)}.chip.is-limit{--chip: var(--purple-500)}.chip.trend.is-up{--chip: var(--orange-400)}.chip.trend.is-down{--chip: var(--teal-500)}.chip.trend.is-flat{--chip: var(--ink-400)}.trade-held-row{display:flex;flex-wrap:wrap;gap:.2rem .6rem;font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--ink-500)}.trade-gain.is-up{color:var(--green-500);font-weight:var(--fw-black)}.trade-gain.is-down{color:var(--coral-500);font-weight:var(--fw-black)}.trade-act{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2)}.qty{display:inline-flex;align-items:center;gap:.15rem;padding:.15rem;border-radius:var(--r-pill);background:var(--lilac-100)}.qty-btn{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--white);color:var(--ink-700);font-size:1rem;font-weight:var(--fw-black);box-shadow:var(--shadow-sm)}.qty-btn:active{transform:scale(.92)}.qty-btn[disabled]{opacity:.4;cursor:default}.qty-n{min-width:1.4rem;text-align:center;font-size:var(--fs-sm);font-weight:var(--fw-black);font-variant-numeric:tabular-nums}.qty-max{height:1.7rem;padding:0 .6rem;border-radius:var(--r-pill);font-size:.58rem;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--accent-strong)}.qty-max:hover{background:var(--white)}.ui .btn-sell{background:linear-gradient(135deg,#2fbf8f,#1fa36f);color:var(--white);box-shadow:0 12px 28px #22a06b66}.market-notice{margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:color-mix(in srgb,var(--coral-500) 12%,white);color:var(--coral-500);font-size:var(--fs-xs);font-weight:var(--fw-bold);animation:fade-in var(--dur-med) var(--ease-out) both}.market-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem var(--sp-3);align-items:center}.market-bag{display:flex;flex-direction:column;gap:.25rem}.market-bag-text{font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-500)}.market-bag .bar{--fill: var(--accent-grad)}.market-bag .bar.is-full{--fill: var(--warm-grad)}.market-profit{font-size:var(--fs-xs);font-weight:var(--fw-black);color:var(--green-500);white-space:nowrap}.market-profit.is-down{color:var(--coral-500)}.market-hint{grid-column:1 / -1;text-align:center}@media(pointer:coarse){.market-hint{display:none}}@media(pointer:coarse)and (orientation:landscape){.market-layer{padding-right:calc(14rem + var(--safe-right))}}@media(max-width:480px){.market{padding:var(--sp-3)}.market-head{grid-template-columns:auto minmax(0,1fr) auto}.market-money{display:none}.trade-icon{width:2.3rem;height:2.3rem;font-size:1.25rem}}.shop-sign{position:absolute;transform:translate(-50%,-100%);display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .55rem .18rem .35rem;border-radius:var(--r-pill);background:#140d26c7;border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow-sm);color:var(--white);font-size:.6rem;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;opacity:var(--near, 1);transition:opacity var(--dur-med) var(--ease-out)}.shop-sign-icon{font-size:.9rem;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.shop-sign-dot{width:.45rem;height:.45rem;border-radius:50%;background:#39d98a;box-shadow:0 0 6px #39d98a}.shop-sign.is-closed .shop-sign-dot{background:#ff6b7a;box-shadow:none}.shop-sign.is-closed{opacity:calc(var(--near, 1) * .7)}.market .tabs{display:grid;grid-template-columns:1fr 1fr;grid-column:auto;grid-row:auto;align-self:stretch;gap:.25rem;padding:.25rem;border-radius:var(--r-pill)}.market .tab{height:2.3rem;padding:0 .5rem;border-radius:var(--r-pill);text-align:center;font-size:var(--fs-xs);letter-spacing:var(--tracking-label)}.market-layer{grid-template-columns:minmax(0,1fr)}.market{min-width:0;max-width:100%}.trade-row,.trade-info{min-width:0}.trade-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-act>.btn{flex:1 1 auto;min-width:0}.opts{position:absolute;left:calc(.9rem + var(--safe-left, 0px));bottom:calc(.9rem + var(--safe-bottom));width:min(25rem,calc(100% - 15.5rem));display:grid;gap:.4rem;pointer-events:auto}.opt{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.6rem;padding:.5rem .75rem .5rem .5rem;border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-md);color:var(--ink-900);text-align:left;pointer-events:auto;animation:modal-in var(--dur-slow) var(--ease-spring) both;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-med) var(--ease-out)}.opt:nth-child(2){animation-delay:30ms}.opt:nth-child(3){animation-delay:60ms}.opt:nth-child(4){animation-delay:90ms}.opt:hover{transform:translate(3px);box-shadow:0 0 0 2px var(--purple-500),var(--shadow-md)}.opt:active{transform:scale(.98)}.opt.is-off{background:#ecebf2}.opt.is-off .opt-name,.opt.is-off .opt-icon{opacity:.55}.opt-key{display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--purple-600);color:#fff;font-size:.62rem}.opt-icon{font-size:1.35rem;line-height:1}.opt-body{display:grid;gap:.22rem;min-width:0}.opt-name{font-weight:var(--fw-bold);font-size:var(--fs-sm);line-height:1.2}.opt-line{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.opt-line-label{font-size:.62rem;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-500);margin-right:.1rem}.opt-line.is-yes .opt-line-label{color:var(--green-500)}.opt-line.is-no .opt-line-label{color:var(--coral-500)}.opt-chip{display:inline-flex;align-items:center;gap:.2rem;padding:.08rem .42rem;border-radius:var(--r-pill);font-size:.68rem;font-weight:var(--fw-bold);line-height:1.5;white-space:nowrap;font-variant-numeric:tabular-nums;background:#ebe7f5;color:var(--ink-700)}.opt-chip-icon{font-size:.72rem}.opt-chip.is-time{background:#e6e9f7;color:#3d4a8a}.opt-chip.is-cost{background:#ffe4e0;color:#b3261e}.opt-chip.is-earn{background:#d9f5e6;color:#116c44}.opt-chip.is-up{background:#e0f6ea;color:#116c44}.opt-chip.is-down{background:#ffe7e3;color:#b3261e}.opt-chip.is-free{background:#e0f6ea;color:#116c44}.opt-chip.is-story{background:#efe2ff;color:#5a1fc2}.opt-note{font-size:.68rem;font-weight:var(--fw-semibold);color:var(--coral-500)}@media(max-width:640px){.opts{left:.6rem;right:.6rem;width:auto;bottom:calc(15rem + var(--safe-bottom));gap:.3rem}.opt{padding:.35rem .6rem .35rem .4rem;gap:.45rem}.opt-icon{font-size:1.1rem}}@media(max-height:520px){.opt{padding:.3rem .6rem .3rem .4rem}.opt-name{font-size:var(--fs-xs)}}.net-notice{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#0a0516b8;color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-lg);letter-spacing:.02em;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:auto}.net-notice[hidden]{display:none}.pill-job{gap:.4rem;cursor:pointer;pointer-events:auto;color:var(--white);position:relative;max-width:13rem}.pill-job .job-icon{display:grid;place-items:center;font-size:1.05rem;color:var(--purple-300)}.pill-job .job-title{overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-sm)}.pill-job .job-dot{display:none;width:.5rem;height:.5rem;border-radius:50%;background:#45e08a;box-shadow:0 0 0 3px #45e08a40}.pill-job.is-ready .job-dot{display:block;animation:pulse-dot 1.6s ease-in-out infinite}@keyframes pulse-dot{50%{opacity:.35}}@media(max-width:760px){.pill-job .job-title{display:none}.pill-job{padding:0 var(--sp-3)}}.job-shift{font-size:var(--fs-xs);font-weight:var(--fw-semibold);opacity:.9}.job-shift.is-ready{color:#b9ffd6}.prompt{width:min(100%,25rem);display:grid;justify-items:center;gap:var(--sp-2);padding:var(--sp-5) var(--sp-5) var(--sp-4);border-radius:var(--r-xl);background:var(--surface);color:var(--ink-900);box-shadow:var(--shadow-lg);text-align:center;animation:modal-in var(--dur-slow) var(--ease-spring) both;max-height:calc(100% - 2rem);overflow:auto}.prompt-morning{background:linear-gradient(180deg,#fff3d6 0%,#fffaf0 34%,var(--surface) 70%)}.prompt-icon{font-size:3rem;line-height:1;filter:drop-shadow(0 6px 10px rgba(255,170,40,.35));animation:prompt-rise .9s var(--ease-spring) both}@keyframes prompt-rise{0%{transform:translateY(14px) scale(.6);opacity:0}}.prompt-eyebrow{font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-500)}.prompt-title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-black);line-height:var(--lh-tight)}.prompt-text{margin:0;color:var(--ink-700);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.prompt-lines{list-style:none;margin:var(--sp-2) 0 0;padding:0;width:100%;display:grid;gap:.35rem;text-align:left}.prompt-line{display:grid;grid-template-columns:1.6rem minmax(0,1fr);align-items:center;gap:.5rem;padding:.45rem .7rem;border-radius:var(--r-sm);background:#f0edf8;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--ink-700)}.prompt-line-icon{font-size:1.05rem;text-align:center}.prompt-line.is-warn{background:#ffe9e4;color:#9c2a1c}.prompt-line.is-good{background:#e2f7ec;color:#116c44}.prompt-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2);margin-top:var(--sp-3);width:100%}.prompt-btn{flex:1 1 auto}
