/* V6.4: scene coordinates, reading state and theme only; no gameplay rules. */
:root { color-scheme: light; --game-width: 560px; --bg:#e5edeb; --paper:#243b40; --paper-soft:#415956; --ink:#223a3e; --muted:#647873; --line:#c5d2cc; --panel:#f9faf6; --panel-solid:#f5f7f3; --accent:#4d8070; --accent-strong:#2d6958; --danger:#ab4d45; --ok:#347253; --life-bg:#f0f5f0; --life-line:#c5d2cc; --life-muted:#617971; --life-gold:#406b58; --life-green:#32775a; --life-blue:#356c86; --life-rose:#9d6465; }
body { background:#dce7e6; color:var(--ink); padding:0; }
.app-shell { background:#f3f6f0; box-shadow:0 0 40px #233f3d16; }
button { cursor:pointer; }
button:disabled { cursor:default; }
.primary-button { background:#3d7967; color:#fff; border:1px solid #2e6656; border-radius:8px; }
.primary-button:hover { background:#306b59; }
.ghost-button { color:#345b50; background:#f9fbf8; border:1px solid #a5bdb0; min-height:44px; }
.text-button, .icon-button { color:#456c60; }
.gold { --tone:#806429; }.blue { --tone:#3b708a; }.green { --tone:#34765b; }.rose { --tone:#a06069; }.teal { --tone:#2c7a75; }
.gain-text { color:#297454; }.loss-text { color:#a24d46; }
.effect-chip.gain { background:#e1eee2; color:#285b43; }.effect-chip.loss { background:#f4e3df; color:#934b42; }
.effect-chip { font-size:12px; }
.protagonist-portrait { background-image:url('./assets/arrival-v64.webp') !important; background-size:330% auto !important; background-position:42% 23% !important; background-color:#b9d0c5 !important; border-radius:50%; display:block; flex-shrink:0; }
.app-shell.arrival-shell { width:min(100%,var(--game-width)); height:100svh; min-height:0; background:#b3c8cb; }
.arrival-screen { position:relative; height:100%; isolation:isolate; overflow:hidden; }
.arrival-art { position:absolute; inset:0; z-index:-1; width:100%; height:100%; object-fit:cover; object-position:center; animation:arrival-in .6s ease-out both; }
.arrival-title { position:absolute; left:22px; right:22px; top:11%; text-align:center; color:#fff; text-shadow:0 2px 8px #22344c60; }
.arrival-title h1 { font-size:44px; line-height:1.35; font-family:"STKaiti","KaiTi","Microsoft YaHei",serif; font-weight:700; margin:0; letter-spacing:0; }
.arrival-title p { font-size:20px; margin:12px 0; color:#fff; }
.arrival-settings { position:absolute; right:16px; top:max(14px,env(safe-area-inset-top)); background:#f4f8f0e8; border:1px solid #b2c2b5; border-radius:50%; width:44px; height:44px; }
.arrival-controls { position:absolute; bottom:max(28px,env(safe-area-inset-bottom)); left:26px; right:26px; display:grid; gap:8px; text-align:center; }
.arrival-controls .primary-button { min-height:54px; font-size:19px; box-shadow:0 3px 12px #173c3640; }
.arrival-controls small { color:#fff; font-size:12px; text-shadow:0 1px 4px #000; }
.arrival-controls .ghost-button { background:#f6f7eee8; }
@keyframes arrival-in { from { opacity:.4; } to { opacity:1; } }
.profile-game-shell { width:min(100%,var(--game-width)); height:100svh; min-height:0; }
.profile-editor { height:100%; display:flex; flex-direction:column; }
.editor-header { display:flex; align-items:center; gap:10px; padding:8px 14px; min-height:60px; border-bottom:1px solid var(--line); }
.editor-header h1 { font-size:20px; margin:0; }
.editor-header > span { margin-left:auto; font-size:12px; color:#6c8175; }
.profile-scroll { flex:1; min-height:0; overflow:auto; padding:20px; overscroll-behavior:contain; }
.profile-identity { display:flex; gap:18px; align-items:center; margin:0 0 24px; }
.profile-identity .protagonist-portrait { width:88px; height:88px; border:3px solid #fff; box-shadow:0 0 0 1px #b3c8bf; }
.profile-identity h2 { font-size:24px; margin:0 0 6px; }.profile-identity p { font-size:13px; color:#658174; margin:0; }
.profile-editor fieldset { border:0; border-top:1px solid #c4d0c9; padding:18px 0; margin:0; }
.profile-editor legend { padding-right:14px; font-size:14px; color:#497960; }
.profile-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px 12px; }
.profile-field { display:grid; gap:7px; min-width:0; font-size:13px; color:#536e60; }
.profile-field select { min-height:46px; width:100%; font:inherit; font-size:14px; color:#263e36; background:#fff; border:1px solid #b7c7bc; border-radius:6px; padding:8px; }
.debt-field { margin-top:18px; font-size:13px; color:#536e60; }
.debt-options { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:8px; }
.debt-options label { display:flex; align-items:center; gap:8px; min-height:44px; background:#e8efe7; border-radius:6px; padding:8px; color:#324d40; }
.debt-options input { accent-color:#42785e; width:18px; height:18px; }
.editor-footer { padding:12px 20px max(14px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); }
.editor-footer button { min-height:48px; }
.profile-review { margin:16px 0; }.profile-review > div { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid #d1ddd3; font-size:14px; }.profile-review dt { color:#638171; }.profile-review dd { margin:0; text-align:right; }
.overwrite-warning { color:#a1453d; background:#f5e4df; padding:10px; border-left:3px solid #ab5d51; }
.profile-review ~ .ghost-button { margin-top:10px; }
.app-shell.game-shell { width:min(100%,var(--game-width)); height:100svh; min-height:0; overflow:hidden; padding:0; background:#f0f5ee; }
.game-shell .life-dashboard { height:100%; padding:0; display:flex; flex-direction:column; overflow:hidden; }
.game-hud { flex-shrink:0; padding:8px 12px; gap:9px; background:#f9faf6; border-color:#c6d6cd; padding-top:max(8px,env(safe-area-inset-top)); }
.game-hud .hud-person { border:2px solid #fff; box-shadow:0 0 0 1px #b5c8bc; }
.hud-time strong, .hud-cash strong { color:#293f3b; }.hud-time > span, .hud-time strong small, .hud-cash small, .hud-energy small { color:#637e70; }
.hud-energy { border-color:#c6d6cd; color:#a27a23; }.hud-cash strong { font-size:23px; }
.game-shell .life-layout { flex:1; min-height:0; overflow:hidden; }
.game-shell .life-main { height:100%; min-height:0; display:flex; flex-direction:column; overflow:auto; overscroll-behavior:contain; scroll-padding-top:8px; scroll-padding-bottom:24px; }
.game-shell [data-mobile-tab="life"] .life-main { overflow:hidden; }
.quick-vitals { flex-shrink:0; min-height:34px; padding:0 12px; background:#e7efe7; }
.quick-vitals > span, .quick-vitals button { color:#4b695b; }.quick-vitals b { color:#274d3c; }.quick-vitals svg { color:#558373; }
.quick-vitals button { min-height:44px; }
.room-viewport { flex:1; min-height:0; width:100%; position:relative; display:grid; place-items:center; container-type:size; background:#d7e6e1; overflow:hidden; }
.room-stage { width:min(100cqw,100cqh); height:min(100cqw,100cqh); position:relative; flex-shrink:0; }
.room-image { width:100%; height:100%; display:block; object-fit:contain; animation:room-light .3s ease-out; }
.scene-afternoon .room-image { filter:sepia(.08) saturate(1.02); }
.room-location { position:absolute; right:8px; top:5px; padding:3px 7px; color:#f4faf4; background:#2b4c43b8; border-radius:4px; font-size:10px; pointer-events:none; }
.scene-hotspot { position:absolute; display:flex; align-items:center; justify-content:center; gap:5px; min-width:60px; min-height:44px; padding:7px 9px; transform:translate(-50%,-50%); border:1px solid #e3ece3; border-radius:8px; background:#24483fe8; color:#fff; box-shadow:0 2px 5px #122e3344; font-size:13px; white-space:nowrap; }
.scene-hotspot svg { width:17px; height:17px; }.scene-hotspot:hover { background:#447863; }
.object-computer { transform:translate(-50%,-100%); }.object-phone { transform:translate(-50%,0); }
.object-computer::after { content:""; position:absolute; bottom:-5px; left:calc(50% - 4px); width:8px; height:8px; background:#24483f; border-right:1px solid #e3ece3; border-bottom:1px solid #e3ece3; transform:rotate(45deg); }
.object-phone::after { content:""; position:absolute; top:-5px; left:calc(50% - 4px); width:8px; height:8px; background:#24483f; border-left:1px solid #e3ece3; border-top:1px solid #e3ece3; transform:rotate(45deg); }
.recent-object svg { animation:object-work .5s 2 ease-in-out; }
@keyframes room-light { from { opacity:.65; } to { opacity:1; } }
@keyframes object-work { 50% { transform:translateY(-3px); } }
.game-shell .phone-notifications { flex-shrink:0; padding:4px 10px; background:#edf3eb; }
.game-shell .notification-list { gap:3px; }
.game-shell .phone-notification { min-height:44px; padding:5px 8px; background:#fafbf7; border:1px solid #b9ccbd; }
.game-shell .notification-copy > small { color:#5a7865; font-size:10px; }.game-shell .notification-copy > small b { color:#377858; }
.game-shell .notification-copy > strong { font-size:13px; color:#273f33; line-height:1.3; }.game-shell .notification-copy > span { display:none; }
.game-shell .phone-notification svg { color:#487661; }.game-shell .notification-symbol { width:25px; min-width:25px; }
.game-shell .notifications-quiet { min-height:24px; padding:2px 0; font-size:11px; color:#65816e; }
.life-controls { flex-shrink:0; padding:6px 10px 8px; display:grid; grid-template-columns:1.05fr 1fr; gap:5px 8px; background:#f7f9f3; }
.arrange-button { min-height:44px; font-size:14px; padding:8px 10px; background:#40765e; color:#fff; gap:6px; }
.arrange-button > span { font-size:11px; }
.game-shell .day-footer { display:contents; }
.game-shell .end-day-button { min-height:44px; font-size:13px; margin:0; padding:7px; gap:5px; color:#345c46; background:#e3ecdf; border-color:#9cbaa5; }
.game-shell .end-day-button small { display:none; }
.game-shell .early-finish-button { margin:0; min-height:44px; grid-column:1/-1; font-size:12px; padding:4px 8px; color:#436b54; background:transparent; }
.game-shell .evening-risk-note { grid-column:1/-1; grid-row:2; margin:0; padding:0 3px; color:#92503e; font-size:11px; line-height:1.4; }
.game-shell .mobile-life-nav { position:static; transform:none; width:100%; flex-shrink:0; border-color:#becfc3; background:#fbfcf8; padding:4px 10px max(6px,env(safe-area-inset-bottom)); }
.mobile-life-nav button { color:#6d8478; min-height:48px; font-size:11px; }.mobile-life-nav button.active { color:#235c46; }.mobile-life-nav b { background:#a3463c; color:#fff; }
.game-shell .phone-device { background:transparent; padding-bottom:32px; }.game-shell .phone-column { height:100%; min-height:0; }
.game-shell .phone-heading h2, .game-shell .thread-heading strong { color:#2a4539; }.game-shell .unread-total, .game-shell .phone-status { color:#5b7968; }
.game-shell .phone-app { color:#476654; }.game-shell .phone-app > span { background:#e6ede3; border-color:#b5c9b9; color:var(--tone); }.game-shell .phone-app.selected > span { background:#d1e3d2; border-color:#5b8e6b; }
.game-shell .phone-category-nav { border-color:#c3d5c6; }.game-shell .phone-category-nav button { color:#53705e; background:transparent; }.game-shell .phone-category-nav button[aria-pressed="true"] { background:#dce9d8; border-color:#96b595; color:#294d35; }
.game-shell .message-row { border-color:#c9d8c9; }.game-shell .message-row.needs-attention { background:#e5efdf; }
.game-shell .message-summary > span strong, .game-shell .message-summary > b { color:#294437; }.game-shell .message-summary > p, .game-shell .message-summary > span small { color:#5e796a; }.game-shell .message-badge { color:#3c7759; }
.game-shell .sender-avatar { background:#e1eadf; }.game-shell .message-bubbles p { color:#284235; background:#dce9d7; }.game-shell .thread-subject, .game-shell .phone-relationship-note, .game-shell .inbox-label { color:#627963; }
.game-shell .phone-safety { border-color:#c6d9c4; color:#53795c; }.game-shell .phone-safety strong, .game-shell .bank-amount { color:#317054; }
.game-shell .relationship-panel, .game-shell .route-map, .game-shell .asset-panel { padding-top:18px; padding-bottom:32px; }
.game-shell .growth-heading h1 { color:#294838; }.game-shell .growth-heading p, .game-shell .section-kicker, .game-shell .growth-count > span { color:#607d68; }
.game-shell .relationship-person { background:#fcfcf7; border-color:#b9cdbd; }.game-shell .relationship-person h2 { color:#2c4739; }.game-shell .relationship-person header small, .game-shell .relationship-person footer small { color:#69816a; }.game-shell .relationship-person .person-status { color:#496750; }
.game-shell .relationship-person .person-avatar { background:#e8efe2; border-color:#b1c5b0; }.game-shell .relationship-meter { background:#dbe6d7; }.game-shell .relationship-person footer { border-color:#c3d4c0; }
.game-shell .relationship-person footer button { background:#e3edde; color:#376442; border-color:#a8c0a5; }.game-shell .relationship-person footer button:disabled { color:#71856f; opacity:.75; }
.game-shell .relationship-recent > div, .game-shell .relationship-recent { border-color:#c3d3be; }.game-shell .relationship-recent span { color:#385b40; }.game-shell .relationship-legend, .game-shell .relationship-legend b { color:#628164; }
.growth-tabs button { border-color:#bcd0be; color:#58765e; }.growth-tabs button[aria-pressed="true"] { color:#2f6745; border-color:#397a53; }
.game-shell .route-node { background:#fcfcf5; border-color:#b9cbb6; }.game-shell .route-node.selected { background:#e3efdd; border-color:var(--tone); }.game-shell .route-node strong { color:#344e38; }.game-shell .route-self { background:#eff4e9; }.game-shell .route-self > span { background:#d5e3cd; color:#396341; }
.game-shell .route-description, .game-shell .route-inspector-title p, .game-shell .route-next { color:#58755b; }.game-shell .route-stages i { background:#f1f6ec; }.game-shell .route-inspector, .game-shell .growth-heading { border-color:#c0d1b9; }
.game-shell .asset-item { background:#fbfcf6; border-color:#bdcdb5; }.game-shell .asset-item h2 { color:#304e36; }.game-shell .asset-description, .game-shell .asset-records p { color:#526e55; }.game-shell .asset-item header small, .game-shell .asset-records summary, .game-shell .asset-progress-label > span { color:#6b8468; }
.game-shell .asset-filters button { color:#587751; }.game-shell .asset-filters button[aria-pressed="true"] { background:#e0ead7; color:#345b39; border-color:#9fb897; }.game-shell .asset-overview b, .game-shell .asset-records summary > span { color:#35593a; }.game-shell .asset-track { background:#dce6d5; }
.life-dialog { background:#f7f9f2; color:#2a4335; border-color:#b4c7b4; box-shadow:0 20px 70px #17363044; }.dialog-toolbar { background:#f7f9f2; }.life-dialog .dialog-close { background:#e2ebdc; color:#42624a; }.life-dialog::backdrop { background:#1f3a325e; backdrop-filter:blur(3px); }
.life-dialog p, .life-dialog .budget-note, .life-dialog .decision-dialog-copy { color:#60755f; }.life-dialog .evening-risk-note { color:#98523f; }.life-dialog h2 { color:#2c4b36; }.life-dialog .cashflow-panel div, .life-dialog .cost-breakdown { border-color:#cedcc5; }.life-dialog .cashflow-panel span, .life-dialog .cost-row span { color:#6b8063; }.life-dialog .cashflow-panel strong, .life-dialog .cost-row strong, .life-dialog .cost-title strong { color:#344f37; }
.motion-setting { display:flex !important; gap:10px; align-items:center; min-height:44px; color:#516b54 !important; }.life-dialog .motion-setting input { width:20px; height:20px; margin:0; accent-color:#427652; }
.life-dialog input { background:#fff; color:#2a4834; border-color:#9cb095; }
.character-dialog .hero-cash { color:#396c45; }.character-dialog .character-avatar { background:#d9e6d3; color:#3e6945; }.character-dialog .character-name h1, .character-dialog .attribute strong, .character-dialog .safety-row strong { color:#34513b; }.character-dialog .character-details p, .character-dialog .attribute span, .character-dialog .receipt-row, .character-dialog .net-row > span, .character-dialog .safety-row > span { color:#62795e; }
.object-menu { width:min(480px,calc(100% - 24px)); }.object-menu .action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.object-menu .life-action { min-height:190px; height:auto; }.object-menu .daily-record { display:none; }.object-menu .section-title h2 { font-size:17px; }.object-menu .section-title { gap:8px; }
.life-dialog .life-action { background:#fdfef9; border-color:#b5c9af; color:#344b37; }.life-dialog .life-action strong { color:#2a4531; }.life-dialog .action-preview { color:#466e45; }.life-dialog .action-detail, .life-dialog .action-cost { color:#647f60; }.life-dialog .action-risk { color:#9b4e3e; }.life-dialog .record-heading, .life-dialog .daily-record, .life-dialog .record-row { border-color:#ceddc4; color:#55714e; }.life-dialog .empty-record { color:#748a6b; }
.app-shell.story-game-shell { width:min(100%,var(--game-width)); height:100svh; min-height:0; padding:0; overflow:hidden; background:#e9f0eb; }
.dialogue-screen { height:100%; display:flex; flex-direction:column; }
.dialogue-header { display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:4px 10px; flex-shrink:0; font-size:13px; background:#f8faf5; border-bottom:1px solid #bed0c1; }
.dialogue-stage { flex:1; min-height:120px; position:relative; display:grid; place-items:center; background:#c8d9d9; overflow:hidden; }
.dialogue-stage img { width:100%; height:100%; position:absolute; object-fit:contain; }.dialogue-stage > span { position:absolute; top:8px; left:10px; font-size:11px; color:#fff; background:#365d54ca; padding:4px 8px; border-radius:4px; }
.dialogue-bottom { flex-shrink:0; max-height:68%; display:flex; flex-direction:column; min-height:0; padding:10px 12px max(12px,env(safe-area-inset-bottom)); background:#f4f7ee; }
.dialogue-title { flex-shrink:0; margin-bottom:6px; }.dialogue-title > span { color:#52806b; font-size:11px; }.dialogue-title h1 { font-size:18px; line-height:1.4; margin:4px 0; color:#273e34; }
.dialogue-box { min-height:0; background:#fff; border:1px solid #c1d1be; border-radius:8px; overflow:hidden; flex:1; }
.dialogue-text { max-height:19svh; min-height:60px; overflow:auto; padding:10px 14px; overscroll-behavior:contain; scroll-padding:10px; }
.dialogue-text p { font-size:15px; line-height:1.65; margin:0 0 5px; }.dialogue-text p:last-child { margin:0; }
.dialogue-tools { display:flex; align-items:center; justify-content:space-between; border-top:1px solid #d9e3d3; height:44px; padding:0 4px; }.dialogue-tools small { color:#76906e; font-size:11px; }.dialogue-tools .text-button { font-size:12px; gap:4px; }
.dialogue-bottom .event-notice { display:flex; align-items:center; justify-content:space-between; gap:6px; background:#e5edde; padding:7px 10px; margin:6px 0; border:0; border-radius:4px; flex-shrink:0; }.dialogue-bottom .event-notice span { color:#647b5d; font-size:11px; }.dialogue-bottom .event-notice strong { color:#426337; font-size:15px; }
.dialogue-choices { overflow:auto; max-height:27svh; flex-shrink:0; margin-top:7px; padding-bottom:1px; overscroll-behavior:contain; }
.dialogue-choices .choice-list { gap:6px; margin:0; }.dialogue-choices .choice-button { background:#fbfcf6; border:1px solid #a8c2a2; border-radius:6px; min-height:48px; padding:10px; color:#294336; font-size:14px; gap:8px; }.dialogue-choices .choice-button > span { background:#e4eddc; color:#54744b; border-color:#b5c9a9; width:25px; height:25px; font-size:12px; }.dialogue-choices .choice-button strong { color:#2c4534; line-height:1.6; font-size:14px; }
.dialogue-outcome { min-height:0; overflow:auto; }.dialogue-outcome .choice-result { margin:0; padding:0; border:0; background:transparent; }.dialogue-outcome .result-narrative { max-height:25svh; overflow:auto; }.dialogue-outcome .result-narrative p { font-size:15px; color:#395039; line-height:1.8; }.dialogue-outcome .delta-list { gap:5px; margin:10px 0; }.dialogue-outcome [data-action="next-event"] { position:sticky; bottom:0; min-height:48px; margin-top:8px; }
.dialogue-transcript p { font-size:15px; line-height:1.9; color:#40573d; }.dialogue-transcript .event-notice { background:#e9f0e3; color:#406535; }
.app-shell.action-feedback-shell { width:min(100%,var(--game-width)); height:100svh; min-height:0; overflow:hidden; background:#eef4e9; }.action-experience { height:100%; overflow:auto; padding-bottom:92px; overscroll-behavior:contain; }.action-experience-top { color:#55744d; border-color:#bed1b4; }.action-experience-top > span:last-child { color:#517448; }
.action-experience .action-scene, .action-experience .action-scene.with-scene-image { background:linear-gradient(90deg,#f2f6ecd9,#f2f6eceb),url('./assets/room-day-v64.webp') center 45%/cover; color:#2d4a33; }.action-experience .scene-copy h1 { color:#29492f; }.action-experience .scene-copy p, .action-experience .action-process p { color:#526c4c; }.action-experience .scene-stamp { color:#5d7c55; }.action-experience .action-process { border-color:#c1d3b7; }.action-experience .growth-result-heading { color:#386236; }.action-experience .growth-numbers > div { border-color:#c3d5b9; }.action-experience .growth-numbers > div > span { color:#66815d; }.action-experience .growth-numbers strong { color:#294b2c; }.action-experience .growth-numbers small { color:#6c8565; }
.feedback-footer { background:#f8fbf1f5; border-color:#b9cfae; width:min(100%,var(--game-width)); }.feedback-footer > span { color:#5c7a4f; }.feedback-sources, .action-experience .relationship-feedback, .decision-record { border-color:#c2d5b5; }.feedback-sources > summary, .source-note, .feedback-sources .decision-record p { color:#617e54; }.action-experience .relationship-feedback h3, .action-experience .relationship-feedback strong { color:#426b3a; }
.app-shell.result-game-shell { background:#f3f6ec; width:min(100%,var(--game-width)); height:100svh; min-height:0; overflow:auto; }.result-game-shell .result-panel { background:transparent; border:0; padding:0; }.result-game-shell .result-narrative p, .result-game-shell .quality-note, .result-game-shell .report-note { color:#536e48; }.result-game-shell .metric { background:#e2ecd8; border-color:#bed0b0; }.result-game-shell .metric strong { color:#406735; }.result-game-shell .report-ledger, .result-game-shell .cashflow-panel div, .result-game-shell .timeline-item { background:transparent; border-color:#b9cbaa; }.result-game-shell .timeline-item strong, .result-game-shell .report-ledger strong, .result-game-shell .cashflow-panel strong, .result-game-shell .score-row span { color:#35522c; }.result-game-shell .report-ledger span, .result-game-shell .cashflow-panel span, .result-game-shell .asset-carryover p { color:#68835b; }
.life-feedback { color:#2e5636; background:#f1f8e8; border-color:#a5c597; bottom:76px; }
.game-shell .relationship-panel { padding-bottom:44px; flex-shrink:0; }
.game-shell .route-map, .game-shell .asset-panel { flex-shrink:0; }
.game-shell .phone-column { flex-shrink:0; }
.game-shell .message-row.needs-attention .message-summary > span > strong { color:#244b47; }
.game-shell .message-row.needs-attention .message-badge { color:#386b5d; }
.game-shell .phone-apps, .game-shell .thread-heading, .game-shell .message-effects { border-color:#bfceca; }
.game-shell .message-bubbles p { background:#e0edf0; color:#2a4c56; }
.game-shell .message-row.message-kind-bank .message-badge { color:#816b36; }
.game-shell .message-row.message-kind-relationship .message-badge { color:#925967; }
.game-shell .asset-records, .game-shell .asset-records p, .game-shell .asset-overview { border-color:#c4d0c4; }
.game-shell .asset-overview > span, .game-shell .asset-bonus small, .game-shell .asset-records p small, .game-shell .route-self small { color:#667b72; }
.game-shell .route-mini-progress { background:#c4d3cb; }
.game-shell .asset-filters button:hover { background:#e5eee5; }
.result-game-shell .page-screen { background:transparent; backdrop-filter:none; }
.result-game-shell .result-panel > .eyebrow, .result-game-shell .positive-cashflow { color:#3a6858; }
.result-game-shell .asset-carryover > div > span { color:#557367; }
.result-game-shell .score-row span { background:#e2ebe5; }
.action-experience .scene-stamp span, .action-experience .scene-stamp time, .action-experience .growth-result-heading > span { color:#617b6b; }
.action-experience .growth-asset-results p, .action-experience .growth-asset-results b, .action-experience .relationship-feedback > div > span { color:#4c6c59; }
.action-experience .action-scene, .action-experience .action-scene.with-scene-image { background:#e2ecea; }
.action-experience .action-scene::after { content:""; position:absolute; right:8px; bottom:8px; width:68px; height:84px; border-radius:6px; background:url('./assets/arrival-v64.webp') 42% 23%/330% auto; border:2px solid #fff; animation:arrival-in .4s ease-out; }
.action-experience .scene-copy { padding-right:74px; }
.dialogue-box { display:flex; flex-direction:column; }
.dialogue-text { flex:1; }
.dialogue-tools { flex-shrink:0; }
[data-dialogue-event="layoff-day-1"] .dialogue-stage img { object-fit:cover; object-position:center 40%; }
@media (max-width:360px) {
  .arrival-title h1 { font-size:36px; }.arrival-title { top:10%; }.arrival-title p { font-size:17px; }
  .game-hud { gap:6px; padding:6px 8px; }.hud-cash strong { font-size:19px; }.hud-time strong { font-size:14px; }
  .quick-vitals { padding:0 8px; }.quick-vitals button { min-height:44px; }.scene-hotspot { padding:6px; gap:3px; font-size:12px; min-width:58px; }
  .life-controls { gap:4px; padding:4px 8px; }.arrange-button { font-size:12px; padding:6px; }.game-shell .end-day-button { font-size:12px; }.arrange-button > span { font-size:10px; }
  .dialogue-header { min-height:48px; padding:2px 8px; }.dialogue-title h1 { font-size:16px; }.dialogue-bottom { padding:7px 8px max(8px,env(safe-area-inset-bottom)); max-height:70%; }.dialogue-text { max-height:17svh; padding:8px 10px; }.dialogue-text p { font-size:14px; }.dialogue-choices { max-height:26svh; }.dialogue-choices .choice-button strong { font-size:13px; }
  .profile-scroll { padding:14px; }.profile-fields { gap:12px 8px; }.profile-field select { font-size:13px; }.profile-identity { margin-bottom:18px; }.profile-identity .protagonist-portrait { width:68px; height:68px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
html[data-reduced-motion="true"] *,html[data-reduced-motion="true"] *::before,html[data-reduced-motion="true"] *::after { animation:none !important; transition:none !important; }
.editor-header, .dialogue-header, .action-experience-top { padding-top:max(4px,env(safe-area-inset-top)); }
.result-game-shell .page-screen { padding-top:max(20px,env(safe-area-inset-top)); }
.icon-button:hover { background:#dde9e1; color:#305d51; border-color:#a4bcb0; }
.life-dialog .life-action:hover:not(:disabled) { background:#e9f1e5; border-color:var(--tone); transform:none; }
.game-shell .relationship-person button:hover:not(:disabled) { background:#dceada; color:#315e41; }
.game-shell .route-node:hover { background:#e9f1e4; }
.character-dialog .cash-heading, .character-dialog .cash-heading > span { color:#587466; }
.character-dialog .income-expense, .character-dialog .income-expense b, .character-dialog .receipt-row b, .character-dialog .opportunity-readings b { color:#456955; }
.character-dialog .attribute-track { background:#d2dfd5; }
.character-dialog .safety-row, .character-dialog .opportunity-readings { border-color:#c1d1c7; }
.character-dialog .income-expense, .character-dialog .receipt-row { font-size:11px; }

/* End-of-day guidance stays outside the room's coordinate space. */
.life-action-tools { display:flex; gap:5px; min-width:0; align-items:stretch; }
.life-action-tools .arrange-button { flex:1; min-width:0; }
.life-action-tools .arrange-button > span { display:none; }
.pocket-play { flex-shrink:0; width:44px; min-height:44px; align-self:stretch; background:#e8f0e4; color:#376454; }
.object-menu .dialog-body { padding-top:0; }
.object-focus { position:relative; height:158px; overflow:hidden; margin:0 -2px 16px; background:#d8e7df; }
.object-focus > img { position:absolute; left:50%; top:50%; width:250%; max-width:none; height:auto; transform:translate(calc(-1 * var(--focus-x)),calc(-1 * var(--focus-y))); animation:focus-arrive .3s ease-out; }
.focus-caption { position:absolute; left:10px; bottom:10px; padding:7px 12px; background:#f5faf2ed; color:#315847; border-radius:4px; }
.focus-caption span { font-size:11px; }.focus-caption h2 { font-size:17px; margin:2px 0 0; }
.focus-tidy { position:absolute; right:10px; bottom:10px; display:flex; align-items:center; gap:6px; min-height:44px; background:#2f6254; color:white; padding:8px 12px; border:1px solid #e3eee8; border-radius:5px; font-size:12px; }
.focus-tidy svg { width:17px; }
.object-menu .daily-record { margin-top:8px; }
.action-recollection { margin-top:4px; }.action-recollection summary { min-height:44px; display:flex; align-items:center; gap:7px; cursor:pointer; color:#476959; font-size:12px; }.action-recollection summary svg { width:15px; }
.desk-play-dialog { width:min(100% - 20px,510px); max-height:calc(100svh - 20px); padding:0; overflow:hidden; background:#f5f8f2; }
.desk-play-dialog .dialog-toolbar { flex-shrink:0; min-height:44px; padding:0 8px; }
.desk-play-dialog .dialog-body { padding:0 16px 12px; overflow:auto; }
.desk-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 0 8px; }
.desk-heading small { font-size:11px; color:#6c8376; }.desk-heading h2 { margin:3px 0 0; font-size:19px; color:#2c5443; }.desk-heading > strong { font-size:18px; color:#547a67; white-space:nowrap; }
.desk-board { position:relative; width:100%; height:min(56svh,490px); min-height:260px; background:#dbe5de; border:1px solid #adbcad; border-radius:6px; overflow:hidden; isolation:isolate; }
.desk-blotter { position:absolute; inset:6px 6px 44%; background:#b4cec2; border:1px solid #8eac9e; border-radius:5px; box-shadow:0 3px 0 #8199892b; }
.desk-target { position:absolute; transform:translate(-50%,-50%); width:34%; height:21%; min-height:50px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:3px; border:1px dashed #769a87; border-radius:7px; background:#dcebe14d; color:#456a59; font-size:11px; transition:background .15s,box-shadow .15s; }
.desk-target svg { width:23px; height:23px; opacity:.65; }.desk-target.ready { background:#edf5d4; border:2px solid #527d4b; box-shadow:0 0 0 3px #f4f8e991; }.desk-target.filled { border-style:solid; background:#d3e3d8; }
.desk-target.filled > * { opacity:0; }
.desk-piece { position:absolute; z-index:2; transform:translate(-50%,-50%) rotate(-4deg); width:29%; height:19%; min-height:56px; padding:0; background:none; border:0; cursor:grab; touch-action:none; user-select:none; transition:left .22s ease-out,top .22s ease-out,transform .2s,filter .2s; }
.desk-piece img { display:block; width:100%; height:100%; object-fit:contain; pointer-events:none; transform:scale(1.2); filter:drop-shadow(0 3px 2px #24382e38); }
.desk-piece span { position:absolute; left:50%; bottom:-2px; transform:translateX(-50%); white-space:nowrap; font-size:10px; padding:1px 5px; border-radius:3px; background:#f5f8f1e6; color:#365a49; }
.desk-piece:nth-of-type(even) { rotate:5deg; }
.desk-piece[aria-pressed="true"] { filter:drop-shadow(0 0 3px #598868); transform:translate(-50%,-50%) rotate(0deg) scale(1.06); }
.desk-piece.dragging { cursor:grabbing; z-index:5; rotate:0deg; transform:translate(-50%,-58%) rotate(3deg) scale(1.1); transition:none; filter:drop-shadow(0 9px 3px #253f3238); }
.desk-piece.placed { opacity:1; rotate:0deg; transform:translate(-50%,-50%); cursor:default; pointer-events:none; }.desk-piece.placed span { display:none; }
.desk-board.all-placed { border-color:#649777; }.desk-board.all-placed .desk-blotter { background:#bfd8c6; transition:background .4s; }
.desk-status { color:#3d634f; font-size:13px; min-height:42px; padding:10px 0 4px; line-height:1.5; }
.desk-footer { display:flex; align-items:center; gap:7px; padding:4px 0 max(0px,env(safe-area-inset-bottom)); }
.desk-footer small { flex:1; color:#6d8175; font-size:10px; line-height:1.5; }.desk-footer .primary-button { padding:8px 10px; font-size:12px; min-height:44px; }.desk-footer .icon-button { min-width:44px; }
@keyframes focus-arrive { from { opacity:.65; } to { opacity:1; } }
@media (max-height:640px) { .desk-heading h2 { font-size:16px; }.desk-board { height:48svh; }.desk-status { min-height:35px; padding-top:6px; }.desk-play-dialog .dialog-body { padding:0 10px 6px; } }
.room-life-layer { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.room-life-layer[hidden] { display:none; }
.scene-afternoon .room-life-layer { filter:sepia(.08) saturate(1.02); }
.room-viewport:has(.time-passage.overnight) .room-life-layer { animation:overnight-light .95s ease-in-out; }
.downtime-guide { flex-shrink:0; display:flex; align-items:center; gap:8px; margin:5px 10px; min-height:58px; padding:8px 10px; border:1px solid #487e6c; border-radius:7px; background:#356b59; color:#fff; text-align:left; }
.downtime-check { display:grid; place-items:center; width:24px; flex-shrink:0; }
.downtime-copy { display:grid; gap:4px; min-width:0; }
.downtime-copy strong { font-size:13px; line-height:1.4; font-weight:600; }
.downtime-copy small { font-size:11px; line-height:1.4; color:#e2eee6; }
.downtime-command { display:flex; align-items:center; gap:4px; margin-left:auto; flex-shrink:0; font-size:13px; }
.downtime-command svg { width:16px; animation:next-nudge .7s ease-in-out 2; }
.downtime-guide:hover { background:#285d4c; }
.day-arranged .arrange-button { background:#edf2e9; border-color:#b5c6b5; color:#617465; }
.game-shell .day-arranged [data-action="open-today"] { color:#fff; background:#356b59; border-color:#356b59; }
.room-daylight { position:absolute; inset:0; pointer-events:none; background:linear-gradient(112deg,transparent 28%,#fff6ce17 41%,#fffbe430 44%,transparent 58%); clip-path:polygon(43% 0,75% 0,100% 100%,6% 100%); animation:room-breath 10s ease-in-out infinite alternate; }
.scene-evening .room-daylight { background:linear-gradient(145deg,transparent 40%,#ffe1a312 75%,transparent); animation-duration:7s; }
.scene-hotspot { transition:scale .12s,background .15s,box-shadow .15s; }
.scene-hotspot:active { scale:.94; box-shadow:0 0 0 4px #e9fff233; }
.phone-notification.message-kind-core .notification-symbol svg { animation:message-tap .7s ease-in-out 2; transform-origin:50% 70%; }
.life-dialog[open] { animation:sheet-arrive .18s ease-out; }
.time-passage { position:absolute; inset:auto 12px 12px; display:flex; align-items:center; gap:12px; padding:12px; background:#fafdf3f2; color:#335647; border:1px solid #bed2c4; border-radius:8px; pointer-events:none; animation:passage-arrive .25s ease-out; box-shadow:0 6px 20px #173e2820; }
.time-passage > span { display:grid; place-items:center; width:40px; }
.time-passage > div { display:grid; gap:5px; }
.time-passage small { font-size:11px; color:#6d8174; }
.time-passage strong { font-size:17px; }
.time-passage button { pointer-events:auto; margin-left:auto; min-width:44px; min-height:44px; }
@keyframes room-breath { from { opacity:.3; } to { opacity:1; } }
@keyframes next-nudge { 50% { transform:translateX(3px); } }
@keyframes message-tap { 25%,75% { rotate:7deg; } 50% { rotate:-7deg; } }
@keyframes sheet-arrive { from { opacity:.4; translate:0 12px; } to { opacity:1; translate:0 0; } }
@keyframes passage-arrive { from { opacity:0; translate:0 8px; } to { opacity:1; translate:0 0; } }
.room-viewport:has(.time-passage.overnight) .room-image { animation:overnight-light .95s ease-in-out; }
.game-shell:has(.time-passage.overnight) .hud-time strong { animation:day-turn .35s ease-out; }
@keyframes overnight-light { 0%,100% { filter:brightness(1); } 40% { filter:brightness(.65) saturate(.75); } }
@keyframes day-turn { from { opacity:.4; translate:0 5px; } to { opacity:1; translate:0 0; } }
@container (max-height:220px) {
  .object-computer { transform:translate(-50%,-50%); }
  .object-computer::after { display:none; }
  .object-phone { transform:translate(-50%,7px); }
}
@media (max-width:360px) {
  .downtime-guide { margin:3px 8px; padding:7px; gap:5px; }
  .downtime-copy strong, .downtime-command { font-size:12px; }
  .downtime-copy small { font-size:10px; }
  .downtime-check { width:20px; }
}
