/* Extend the original portrait game; retain its canvas, HUD and touch controls. */
#valley-tools{position:absolute;top:calc(env(safe-area-inset-top,0px) + 159px);right:12px;display:flex;gap:5px;z-index:3}#valley-tools[hidden]{display:none}#valley-tools button{font-size:10px;min-height:34px;padding:6px 9px;background:#203f4fe8}.card label{display:block;text-align:left;font-size:11px;margin:12px 0}.card input,.card select{display:block;width:100%;margin-top:6px;min-height:42px;font:inherit;color:#fff3d5;background:#284b50;border:1px solid #dfc78b;padding:8px;border-radius:4px;font-size:16px}.card .request-entry{text-align:left;border-left:2px solid #e6c780;padding-left:10px}.card .map-row{font-size:11px;line-height:1.8}.card .calendar-date{font-size:10px;color:#e6c780}.card canvas{width:72px!important;height:96px!important;margin:10px auto}.card .notice{color:#f2d28c;font-size:11px}#valley-notice{position:absolute;left:12px;right:12px;bottom:110px;background:#17343bf0;border:1px solid #ddc38c;color:#ffe5a6;z-index:6;padding:10px;font-size:11px;line-height:1.7}#valley-notice[hidden]{display:none}@media(max-height:550px){#valley-tools{top:140px}}

html,body{touch-action:auto}.card{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.hero-creator label{display:inline-block;width:calc(50% - 5px);vertical-align:top;margin:6px 0;text-align:left}.hero-creator label:first-of-type{display:block;width:100%}.hero-creator label:nth-of-type(even){margin-right:10px}.hero-creator canvas{width:48px!important;height:64px!important;margin:6px auto}.hero-creator input,.hero-creator select{font-size:16px;padding:6px;min-height:42px}.hero-creator .hint{margin:6px 0}.hero-creator h2{margin-bottom:6px}
/* Gameplay never behaves like a selectable document in iOS / WeChat. */
#app,#app *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#app input,#app textarea,#app [contenteditable="true"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;touch-action:auto}
#game,canvas,#controls,#controls button{touch-action:none}
.valley-mode #hud .counters{display:none}.valley-mode #objective{font-size:12px;max-width:76%;margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:7px 10px}
#valley-tools{top:calc(env(safe-area-inset-top,0px) + 65px);right:14px}#valley-tools button{width:40px;min-height:40px;font-size:20px;padding:4px}
#valley-context{position:absolute;left:24px;right:24px;bottom:calc(env(safe-area-inset-bottom,0px) + 104px);text-align:center;font-size:13px;line-height:1.5;color:#fff1cb;text-shadow:0 2px 3px #183940;pointer-events:none}#valley-context[hidden]{display:none}
#overlay.speech-overlay{align-items:flex-end;padding:90px 16px calc(env(safe-area-inset-bottom,0px) + 30px);background:transparent;pointer-events:none}
.dialogue-card{pointer-events:auto;text-align:left;padding:16px 18px;max-height:60%;background:#183940fa}.dialogue-card .eyebrow{display:none}.dialogue-card h2{font-size:16px;margin:0 0 10px}.dialogue-card .speech-text{font-family:system-ui,-apple-system,'Microsoft YaHei',sans-serif;font-size:16px;line-height:1.7;margin:0 0 8px;min-height:54px}.speech-page{font-size:10px;color:#b9cdbf}.dialogue-card button{min-height:44px;margin-top:8px}
/* Cottage panels: readable bottom sheets, real touch/keyboard buttons, one task line. */
.cottage-panel{pointer-events:auto;text-align:left;padding:14px 16px;max-height:54%;background:#183940fc;overflow-y:auto}.cottage-panel .eyebrow{display:none}.cottage-panel h2{font-size:16px;margin:0 0 8px}.cottage-panel p{font:14px/1.65 system-ui,-apple-system,'Microsoft YaHei',sans-serif;margin:7px 0}.cottage-panel .hint{font-size:12px}.cottage-panel button{min-height:44px;font-size:12px;margin-top:7px}.word-slots{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;color:#f6d48d;margin:8px 0}.word-slots span{border:1px solid #acb58a;padding:8px}.cottage-panel button[id^=word-],.cottage-panel .keyword{display:inline-block;width:calc(50% - 4px);margin-right:4px;vertical-align:top}.keyword[aria-pressed=true]{background:#d7b77b;color:#183940;outline:2px solid #ffdfa0}.puzzle-feedback{color:#ffdf9c!important;min-height:0}.puzzle-feedback:empty{display:none}.task-list p{font-size:13px}.clue-line{border-left:2px solid #d7b77b;padding-left:8px}#album-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.cottage-panel .album-person{display:grid;justify-items:center;gap:4px;font-size:10px;margin:0;padding:7px 3px;min-width:0}.cottage-panel canvas.portrait{width:36px!important;height:51px!important;margin:0}.silhouette{opacity:.8}.valley-mode #objective[role=button]{pointer-events:auto;cursor:pointer;max-width:76%;min-height:36px}#objective[role=button]:focus-visible{outline:2px solid #ffe29b}.cottage-panel .primary{background:#d7b77b;color:#203e42}

.cottage-panel button{touch-action:pan-y}.cottage-panel .album-person[role=img]{border:1px solid #8caa9970;border-radius:8px;background:#203e43;min-height:80px}
/* Level 02 reuses the existing bottom sheet; portraits replace dense text lists. */
.friend-panel{max-height:49%;padding:12px 15px}.friend-panel p{font-size:14px;line-height:1.6}.friend-panel h2{font-size:16px;line-height:1.4;overflow-wrap:anywhere}.friend-panel .friend-role{font-size:12px;color:#efd28d}.friend-panel button{white-space:normal;overflow-wrap:anywhere}.friend-panel .hint{font-size:12px}
#friend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.friend-tile{min-width:0;border:1px solid #b6bf9170;background:#25474c;border-radius:5px;display:grid;place-items:center;gap:5px;padding:7px 3px;font-size:11px!important;text-align:center;line-height:1.35}.friend-panel .friend-tile{width:auto;margin:0;min-height:92px}.friend-panel canvas.friend-portrait{display:block;width:36px!important;height:51px!important;margin:0 auto;image-rendering:pixelated}.friend-tile .silhouette{opacity:.75}
#profile-portrait{float:right;margin:2px 8px 6px}#match-portrait{display:grid;place-items:center;margin:4px 0}#match-portrait canvas.friend-portrait{width:48px!important;height:68px!important}#match-feedback{font:13px/1.5 system-ui;color:#ffe0a1;min-height:0}#match-feedback:empty{display:none}.friend-panel button[id^=match-]{display:inline-block;width:calc(50% - 4px);margin-right:4px;font-size:12px}.story-card{border-left:2px solid #d7b77b;padding-left:10px}#relationship-graph svg{display:block;width:100%;height:155px}#relationship-graph .relationship-entry{font-size:12px}#group-photo{display:flex;gap:12px;align-items:end;justify-content:center;min-height:100px;background:#254d50;padding:14px;border:3px solid #bda679}#group-photo #mystery-neighbour{width:auto;margin:0;padding:4px;min-height:60px}
#overlay.speech-overlay .dialogue-card{max-height:43%;padding:13px 16px}.dialogue-card .speech-text{font-size:15px;line-height:1.65;min-height:44px}.dialogue-card h2{font-size:15px}.dialogue-card button{min-height:44px;padding:8px 10px}.friend-panel button,.dialogue-card button{touch-action:pan-y}.friend-panel .task-list p{margin:5px 0;font-size:13px}
/* Fallback for older mobile WebKit while preserving modern safe-area sizing. */
#app{height:100vh;height:100dvh}
#valley-tools button{width:44px;min-height:44px}
@keyframes friend-wave{0%,100%{transform:rotate(0)}25%,75%{transform:rotate(-12deg) translateY(-4px)}50%{transform:rotate(12deg)}}
.friend-wave .friend-portrait{animation:friend-wave .7s ease-in-out;transform-origin:bottom center}
.joy-preview{width:90px;height:140px;margin:8px auto;border:3px dashed #fff0be;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#263f40;box-shadow:3px 3px #122d35}.joy-preview>span{font-size:40px}.joy-preview small{font-size:16px;letter-spacing:3px}
#joy-colors{display:flex;gap:5px;margin:8px 0}#joy-colors button{flex:1;min-width:0;font-size:11px;padding:8px 4px;min-height:44px}#joy-colors button[aria-pressed=true]{box-shadow:inset 0 0 0 2px #ffe4a0}
#joy-sewing{position:relative;width:140px;height:210px;margin:12px auto;border-radius:5px;border:2px dashed #ffe7af}#joy-sewing svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#joy-sewing button{position:absolute;transform:translate(-50%,-50%);width:44px;min-height:44px;padding:0;margin:0;border-radius:50%;font-size:16px;z-index:1}#joy-sewing button:disabled{opacity:.8}.joy-verse{font-size:20px;line-height:1.5;overflow-wrap:anywhere}
[id^=joy-recipient-] .friend-portrait{width:24px;height:34px;margin-right:10px;vertical-align:middle}
#chapter-nav{position:absolute;right:12px;top:110px;z-index:5}#chapter-nav button{min-height:44px;min-width:44px;font-size:22px}#chapter-feedback{position:absolute;left:14px;right:14px;top:165px;z-index:7;padding:10px;background:#213f49ee;color:#ffe5ac;font-size:12px;line-height:1.5;border-radius:6px;pointer-events:none}.chapter-panel{max-height:48vh!important;max-height:48dvh!important;overflow-y:auto;overscroll-behavior:contain}.chapter-panel p{line-height:1.5}.chapter-panel button{min-height:44px}.vacation-route{padding:14px;background:#284c61;color:#ffe3a1;letter-spacing:8px;text-align:center}.trip-photo{width:100%;max-height:180px;object-fit:contain;image-rendering:pixelated}.passport-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.passport-grid figure{margin:0;padding:6px;background:#2a4954;font-size:11px;line-height:1.5}.passport-grid img{width:100%;image-rendering:pixelated}.passport-grid span{display:block;text-align:center;padding:20px}#care-preview,.care-final{margin:8px;padding:14px;min-height:120px;color:#29474e;text-align:center;border:3px dashed #fff4d2}#care-preview>span,.care-final>span{font-size:44px}.chapter-mode #valley-tools,.chapter-mode #valley-context{display:none!important}.ice-puzzle{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.ice-puzzle button{aspect-ratio:1;background-size:300% 300%;border:2px solid #779fa6}.ice-puzzle button[aria-pressed=true]{border-color:#ffe4a3}

/* Exit controls stay reachable even when a journal sheet is scrolled. */
#panel-navigation,#chapter-nav{position:absolute;top:calc(env(safe-area-inset-top,0px) + 110px);right:12px;z-index:30;display:flex;gap:6px;max-width:calc(100% - 24px)}
#panel-navigation[hidden],#chapter-nav[hidden]{display:none}
#panel-navigation button,#chapter-nav button{min-height:44px;min-width:44px;font-size:12px;touch-action:manipulation;padding:8px 10px}

#valley-tools{display:flex;gap:6px}#valley-tools[hidden]{display:none}#valley-tools #room-quick-exit{width:auto;min-width:64px;font-size:12px}

#story-replay-exit{position:absolute;left:12px;top:calc(env(safe-area-inset-top,0px) + 60px);z-index:45;min-height:44px;font-size:11px;background:#d7b77b;color:#203e42}#story-replay-exit[hidden]{display:none}
/* Lighthouse shares the original Phaser canvas; touch actions never scroll the page. */
.lighthouse-mode #valley-tools,.lighthouse-mode #valley-context,.lighthouse-mode #chapter-nav{display:none!important}
#lighthouse-ui{position:absolute;inset:0;pointer-events:none;z-index:9}#lighthouse-ui[hidden]{display:none}
#lighthouse-nav{position:absolute;right:12px;top:calc(env(safe-area-inset-top,0px) + 62px);display:flex;gap:6px;pointer-events:auto}
#lighthouse-ui button{min-height:44px;min-width:44px;touch-action:none;white-space:normal;font:12px/1.35 monospace;padding:9px 12px}
#lighthouse-objective{position:absolute;top:122px;left:14px;right:14px;background:#193c4ddd;padding:8px;font:13px/1.4 monospace;color:#ffe2a1}
#lighthouse-feedback{position:absolute;left:14px;right:14px;bottom:calc(env(safe-area-inset-bottom,0px) + 114px);padding:8px;font:12px/1.45 system-ui;color:#fff1c8;background:#193c4de8;border-radius:6px}
#lighthouse-feedback:empty{display:none}#lighthouse-actions{position:absolute;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);display:flex;flex-wrap:wrap;gap:7px;pointer-events:auto}
#lighthouse-actions button{flex:1;background:#dabd80;color:#203e4b}#lighthouse-actions #lighthouse-retry{flex:0 0 auto;background:#345967;color:#f4dfb0}
#dev-test-mode{left:14px!important;right:auto!important;top:106px!important;max-width:88px;font-size:9px!important;white-space:normal;line-height:1.1}
.lighthouse-mode #dev-test-mode{left:12px!important;right:auto!important;top:164px!important;max-width:64px;font-size:9px!important;white-space:normal;line-height:1.1}

.lighthouse-mode #story-replay-exit{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 72px)}
.harbor-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.harbor-photos figure{margin:0;padding:12px 4px;background:#3a6271;text-align:center;font-size:30px}.harbor-photos figcaption{font-size:11px;line-height:1.5;color:#ffe2a1}
#lighthouse-actions button:active{filter:brightness(1.18);transform:translateY(1px)}
#lighthouse-actions button:focus-visible{outline:3px solid #ffdf92}
@media(max-height:700px){#lighthouse-ui button{padding:7px 8px;font-size:11px}#lighthouse-feedback{font-size:11px;padding:6px}}
.harbor-photos img{width:100%;height:auto;image-rendering:pixelated}
/* Protected replay exit stays clear of multi-row sports controls. */
.lighthouse-mode #story-replay-exit{top:calc(env(safe-area-inset-top,0px) + 62px);bottom:auto;max-width:80px;min-height:44px;white-space:normal;padding:6px;font-size:10px}

/* Stable DOM control: the buffet must never rely on a tiny canvas text hitbox. */
#family-tray{position:absolute;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 106px);z-index:31;display:flex;align-items:center;gap:8px;padding:6px 8px;background:#213f49f2;border:1px solid #dfc78b;border-radius:6px;color:#fff0c9;font:12px/1.4 system-ui;pointer-events:auto}
#family-tray[hidden]{display:none}#family-tray span{white-space:pre-line;flex:1;min-width:0;overflow-wrap:anywhere}#buffet-put-down{min-height:48px;min-width:112px;padding:8px 12px;font:14px system-ui;touch-action:manipulation;background:#d9bc7d;color:#17343b}#buffet-put-down:disabled{opacity:.55}

/* All three favourites remain readable instead of inheriting the valley's single-line ellipsis. */
.buffet-mode #objective[role=button]{white-space:normal;overflow:visible;text-overflow:clip;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.buffet-mode #chapter-nav{top:calc(env(safe-area-inset-top,0px) + 150px)}
.buffet-mode #chapter-feedback{top:calc(env(safe-area-inset-top,0px) + 205px)}
.buffet-mode #family-tray{bottom:calc(env(safe-area-inset-bottom,0px) + 90px)}

#chapter-music-panel{position:absolute;z-index:45;right:12px;top:calc(env(safe-area-inset-top,0px) + 205px);width:240px;max-width:calc(100% - 24px);padding:14px;background:#183940fa;border:1px solid #dfc78b;border-radius:6px;color:#fff0c9;font:14px/1.6 system-ui}#chapter-music-panel[hidden]{display:none}#chapter-music-panel label{display:block;min-height:44px;margin-bottom:12px}#chapter-music-panel input[type=range]{display:block;width:100%;height:44px;touch-action:pan-x}#chapter-music-panel input[type=checkbox]{width:24px;height:24px;vertical-align:middle}#chapter-music-panel button{min-height:44px;width:100%;font:14px system-ui}

.midnight-mode #objective[role=button]{white-space:normal;overflow:visible;text-overflow:clip;font-size:11px;line-height:1.35}
.midnight-mode #chapter-nav{top:calc(env(safe-area-inset-top,0px) + 140px)}
.midnight-mode #chapter-feedback{top:calc(env(safe-area-inset-top,0px) + 194px)}

#aurora-hunter-ui{position:absolute;inset:0;z-index:12;pointer-events:none;color:#fff1c6;font:12px/1.4 system-ui}#aurora-hunter-ui[hidden]{display:none}.hunter-status{position:absolute;top:calc(env(safe-area-inset-top,0px) + 200px);left:14px;right:14px;background:#142e40e8;padding:8px;border-radius:5px;display:flex;gap:4px;flex-wrap:wrap;align-items:center}.hunter-status label{width:45%}.hunter-status progress{width:45%;height:12px;accent-color:#efcd84}.hunter-status span,.hunter-status small{width:100%}.hunter-thumbs{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 8px);left:14px;display:flex;gap:8px}.hunter-thumbs img{width:64px;height:39px;image-rendering:pixelated;border:2px solid #d9bd82}#hunter-shutter{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 64px);left:20%;width:60%;min-height:56px;pointer-events:auto;touch-action:none;font-size:16px}.hunter-album{display:flex;gap:8px;flex-wrap:wrap}.hunter-album img{width:95px;image-rendering:pixelated}

.volunteer-speaker{display:flex;gap:14px;align-items:center}.volunteer-speaker canvas{width:48px;height:68px;image-rendering:pixelated;flex-shrink:0}.volunteer-speaker p{margin:8px 0;overflow-wrap:anywhere}
/* WorkBC uses the existing game shell, textures, dialogue sheets and save. */
#workbc-root{position:absolute;inset:calc(env(safe-area-inset-top,0px) + 58px) 0 0;z-index:4;background:#e8dfc8;touch-action:none}#workbc-root[hidden]{display:none}#workbc-canvas{position:absolute;inset:0;image-rendering:pixelated}.workbc-nav{position:absolute;top:5px;left:10px;right:10px;display:flex;gap:6px;justify-content:flex-end}.workbc-nav button{min-height:44px;font-size:11px;padding:6px 10px}#workbc-status{position:absolute;top:57px;left:10px;right:10px;padding:7px 9px;background:#294b50;color:#fff0cb;font:12px/1.4 system-ui;pointer-events:none}#workbc-feedback{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 120px);left:10px;right:10px;padding:8px;background:#294b50ee;color:#ffe6a7;font:13px/1.4 system-ui;pointer-events:none}#workbc-controls{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 10px);left:10px;right:10px;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:44px 44px;gap:5px}#workbc-controls[hidden]{display:none}#workbc-controls button{min-width:0;min-height:44px;padding:5px;font-size:12px}.workbc-direction.up{grid-column:2;grid-row:1}.workbc-direction.left{grid-column:1;grid-row:2}.workbc-direction.down{grid-column:2;grid-row:2}.workbc-direction.right{grid-column:3;grid-row:2}#workbc-interact{grid-column:4/7;grid-row:2;background:#c8ab73;color:#23434c}#workbc-restart{grid-column:5/7;grid-row:1}.workbc-mode header{z-index:10}.workbc-mode #overlay{z-index:8}.workbc-mode #overlay.speech-overlay{padding:90px 14px calc(env(safe-area-inset-bottom,0px) + 16px)}.workbc-mode #card{max-height:45dvh!important;overflow-y:auto;font:14px/1.5 system-ui}.workbc-mode #card h2{font-size:15px}.workbc-mode #card button{min-height:44px}.workbc-speech p{min-height:42px;overflow-wrap:anywhere}.workbc-mode #dev-test-mode{display:none}.workbc-mode #panel-navigation{display:none!important}

#workbc-reward{position:absolute;top:98px;left:18px;right:18px;z-index:6;padding:16px;background:#d6b77c;color:#23434c;border:3px solid #fff0c7;text-align:center;font:bold 15px/1.5 system-ui;pointer-events:none;animation:workbc-reward 2.6s ease-out both}#workbc-reward[hidden]{display:none}.workbc-mode #card h2{animation:workbc-reveal .35s ease-out}@keyframes workbc-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes workbc-reward{0%{opacity:0;transform:scale(.8)}12%,85%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translateY(-12px)}}@media(prefers-reduced-motion:reduce){#workbc-reward,.workbc-mode #card h2{animation:none}}
.home-family-portraits{display:flex;gap:18px;justify-content:center}.home-family-portraits canvas{width:48px!important;height:68px!important;image-rendering:pixelated}#ending-content p,#gallery-prayer-entry p{overflow-wrap:anywhere}#ending-content{font-size:14px;line-height:1.6}

/* Native scrolling for the long optional epilogue prayer, scoped to this scene. */
html.epilogue-reading,html.epilogue-reading body{touch-action:pan-y}html.epilogue-reading #card{touch-action:pan-y;overscroll-behavior:contain}

/* The optional hymn picker scrolls natively while game controls remain fixed. */
html.piano-reading,html.piano-reading body{touch-action:pan-y}html.piano-reading #card{touch-action:pan-y;overscroll-behavior:contain}

/* Chapter test directory: native scrolling for grouped entries on touch devices. */
html:has(#card.dev-chapter-directory),html:has(#card.dev-chapter-directory) body,#card.dev-chapter-directory{touch-action:pan-y}#card.dev-chapter-directory{overscroll-behavior:contain}#card.dev-chapter-directory button{min-height:48px;text-align:left;line-height:1.5}

/* Home: the two game editions precede continue/help/reset controls. */
#card.landing-menu #start,#card.landing-menu #bakerview-start{min-height:64px;line-height:1.6;padding:12px 14px;font-size:14px;text-wrap:balance}
#card.landing-menu h1{font-size:clamp(28px,7vw,38px);margin:12px 0}
#landing-more{margin:22px 0 12px;padding-top:16px;border-top:1px solid #658481;color:#e4c98e;font-size:13px;letter-spacing:1px}
html:has(#overlay:not([hidden]) #card.landing-menu),html:has(#overlay:not([hidden]) #card.landing-menu) body,#card.landing-menu{touch-action:pan-y}
#card.landing-menu{overscroll-behavior:contain}
#card.landing-menu > .eyebrow{display:none}

/* Four-space chapel navigation stays below the task strip and fits touch targets. */
#valley-tools:has(#chapel-spaces){top:calc(env(safe-area-inset-top,0px) + 120px)}
#valley-tools #chapel-spaces{width:auto;min-width:64px;font-size:12px;white-space:nowrap}
html:has(#overlay:not([hidden]) #card.chapel-spaces-panel),html:has(#overlay:not([hidden]) #card.chapel-spaces-panel) body,#card.chapel-spaces-panel{touch-action:pan-y}
#card.chapel-spaces-panel{overscroll-behavior:contain}

/* Read-only community schedule; its own cards scroll without moving the game page. */
html:has(#overlay:not([hidden]) #card.community-board),html:has(#overlay:not([hidden]) #card.community-board) body,#card.community-board{touch-action:pan-y}
#card.community-board{max-height:74vh!important;max-height:74dvh!important;overflow-y:auto;overscroll-behavior:contain;font-size:13px;line-height:1.6}
#card.community-board h2{font-size:17px;line-height:1.5}#card.community-board h3{margin:22px 0 10px;color:#f0d390;font-size:15px}#card.community-board h4{font-size:14px;margin:0 0 8px}
#community-close{position:sticky;top:0;z-index:2;min-height:44px;background:#294f56!important}
.community-event{border:1px solid #839b91;border-radius:8px;background:#29494e;margin:10px 0 16px;padding:12px}.community-event.is-today{border:2px solid #e0c27f;background:#345955}.community-event p{margin:7px 0}.community-time{color:#f4d394;font-weight:bold}.community-people{color:#d2dfd1;font-size:12px}.community-next,.community-special{padding:12px;border-left:4px solid #e6c47c;background:#385b57}.community-special{color:#ffe19d;font-weight:bold}.community-location{padding:12px;background:#365950;border-radius:6px}
#card.community-board button{min-height:44px;white-space:normal}
#valley-tools:has(#home-rooms){top:calc(env(safe-area-inset-top,0px) + 120px)}
#valley-tools #home-rooms{width:auto;min-width:64px;font-size:12px;white-space:nowrap}

/* Shared ship directory: scrolls inside the existing dialogue card. */
.ship-directory{display:grid;gap:6px;margin:12px 0}.ship-directory p{margin:0!important;padding:9px 11px;border:1px solid #b99e68;border-radius:5px;background:#203e49;color:#f1e5c8;text-align:left;overflow-wrap:anywhere}.ship-directory strong{color:#f1d391}.ship-directory small{font-size:11px;color:#bccac4}.ship-directory [aria-current="location"]{border:2px solid #edcf89;background:#375a61}

.care-pack-items{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.care-pack-items button{flex:1 1 90px;min-height:64px;touch-action:none;user-select:none;-webkit-user-select:none}.care-bag{width:100%;min-height:100px!important;border:2px dashed #d9bd80!important;background:#3b625f!important}.care-dragging{outline:3px solid #eac983;opacity:.8}
.chapter-panel.care-pack-panel{max-height:78vh!important;max-height:78dvh!important}.care-pack-panel .care-pack-items button{font-size:11px;line-height:1.35;padding:7px}.care-pack-panel .care-bag{touch-action:none}
/* Shared identity sheets; no change to the menu layout or mini-games. */
#identity-layer[hidden]{display:none}
#identity-layer{position:absolute;inset:calc(env(safe-area-inset-top,0px) + 58px) 0 0;z-index:30;display:grid;place-items:center;overflow:auto;padding:16px;background:#142f38f7;overscroll-behavior:contain;touch-action:pan-y}
#identity-layer .identity-card{position:relative;inset:auto;width:100%;max-width:520px;max-height:100%;overflow-y:auto;margin:0;padding:20px 16px;box-sizing:border-box;overflow-wrap:anywhere;background:#203f47;color:#fff0cb}
#identity-layer h1{font-size:clamp(20px,6vw,32px);line-height:1.3;margin:8px 0 16px}
#identity-layer p{font:14px/1.65 system-ui,-apple-system,'Microsoft YaHei',sans-serif;margin:12px 0}
#identity-layer .identity-kicker{color:#edce91;letter-spacing:.08em;font-size:12px;margin-top:22px}
#identity-layer .identity-credit-name{font-size:19px;margin-top:4px}
#identity-layer .identity-tagline{color:#b7dad1;font-style:italic}
#identity-layer button{width:100%;min-height:44px;margin-top:10px;font-size:13px;white-space:normal;touch-action:manipulation}
#identity-layer .identity-canopy{display:block;width:88px;height:88px;margin:0 auto;image-rendering:pixelated;animation:identity-flight 2.5s ease-in-out infinite alternate}
@keyframes identity-flight{from{transform:translateY(2px)}to{transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){#identity-layer .identity-canopy{animation:none}}

/* Main menu is a full-height centered menu, never a chapter dialogue sheet. */
#overlay:has(> #card.landing-menu){align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 100px) 20px calc(env(safe-area-inset-bottom,0px) + 28px);background:#102b443a;pointer-events:auto}
#card.landing-menu{max-height:100%!important;text-align:center;pointer-events:auto;padding:20px 18px;scroll-padding:12px}
@media(max-height:550px){#overlay:has(> #card.landing-menu){padding-top:65px;padding-bottom:16px}#card.landing-menu{padding:14px}}
/* Reading a modal must never leave the gameplay pad over its action buttons. */
#app:has(#overlay:not([hidden])) #controls{display:none!important;pointer-events:none!important}
#app:has(#overlay:not([hidden])) footer{visibility:hidden}
#overlay:has(#story-go){align-items:center;padding:calc(env(safe-area-inset-top,0px) + 100px) 20px calc(env(safe-area-inset-bottom,0px) + 24px);pointer-events:auto;background:#102b443a}
#card:has(#story-go){max-height:100%!important;text-align:center;pointer-events:auto;padding:22px 18px}
#dev-test-mode{left:auto!important;right:14px!important;min-height:40px;max-width:94px}
#app:has(#overlay:not([hidden]) #story-go) #dev-test-mode{display:none!important}
@media(max-height:550px){#overlay:has(#story-go){padding-top:65px;padding-bottom:14px}}
/* Keep TEST beside First Light counters, below the header, never on the objective. */
#dev-test-mode{top:calc(env(safe-area-inset-top,0px) + 58px)!important}
.valley-mode #dev-test-mode{top:calc(env(safe-area-inset-top,0px) + 145px)!important}
.chapter-mode #dev-test-mode{top:calc(env(safe-area-inset-top,0px) + 58px)!important}
#app:has(#overlay:not([hidden])) #dev-test-mode{top:calc(env(safe-area-inset-top,0px) + 58px)!important}
/* Maze: two thumb zones, generous targets, and no restart button in the D-pad. */
#workbc-root[data-location="maze"] #workbc-controls{grid-template-columns:repeat(3,minmax(48px,60px)) minmax(82px,1fr);grid-template-rows:64px 64px;gap:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);padding:6px;border-radius:16px;background:#264b50d9;box-shadow:0 3px 12px #183b4140}
#workbc-root[data-location="maze"] #workbc-controls button{min-height:64px;border:2px solid #d6d8b5;border-radius:12px;font-size:14px;padding:8px;box-shadow:0 3px #17383e}
#workbc-root[data-location="maze"] #workbc-controls .workbc-direction{font-size:28px;font-weight:bold;background:#305c65}
#workbc-root[data-location="maze"] #workbc-controls .workbc-direction:active{background:#779f99}
#workbc-root[data-location="maze"] #workbc-interact{grid-column:4;grid-row:2;background:#dec18a;color:#203f48}
#workbc-root[data-location="maze"] #workbc-restart{grid-column:4;grid-row:1;background:#3e6265}
#workbc-root[data-location="maze"] #workbc-feedback{bottom:calc(env(safe-area-inset-bottom,0px) + 178px)}
@media(max-height:550px){#workbc-root[data-location="maze"] #workbc-controls{grid-template-rows:52px 52px;gap:8px}#workbc-root[data-location="maze"] #workbc-controls button{min-height:52px}#workbc-root[data-location="maze"] #workbc-feedback{bottom:154px}}
/* 05C: paper board and separate, thumb-sized controls; no game UI overlap. */
#resume-tetris{position:fixed;inset:0;z-index:80;box-sizing:border-box;background:radial-gradient(ellipse at top,#456e73,#183b45 75%);color:#fff0cc;padding:calc(env(safe-area-inset-top,0px) + 12px) 14px calc(env(safe-area-inset-bottom,0px) + 12px);display:flex;flex-direction:column;gap:10px;overflow:auto;touch-action:manipulation}
#resume-tetris[hidden],#resume-sheet[hidden]{display:none!important}
#resume-tetris header{display:flex;align-items:center;gap:8px}#resume-tetris header div{flex:1}#resume-tetris h2{font-size:18px;margin:3px 0}#resume-tetris button{min-height:52px;min-width:48px;border:1px solid #d8c08b;border-radius:10px;background:#315b63;color:#fff0cc;padding:8px;font:inherit;touch-action:none;cursor:pointer}#resume-tetris button:active{background:#698b86}#resume-tetris button:disabled{opacity:.5}
#resume-tetris header button{font-size:12px;max-width:80px}.resume-play{display:flex;flex:1;min-height:280px;gap:12px;align-items:center;justify-content:center}.resume-paper{height:min(48svh,420px);aspect-ratio:2/3;max-width:62%;background:#ebd6ad;border:5px solid #d3b77c;border-radius:5px;box-shadow:0 8px 22px #102b3655;flex-shrink:0}.resume-paper canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.resume-play aside{max-width:210px;min-width:0;font-size:12px;line-height:1.45}.resume-play aside p{margin:9px 0}#resume-piece{border-left:5px solid;padding:8px;background:#15364080;border-radius:4px}#resume-next{display:block;margin-top:8px}#resume-note{opacity:.8;font-size:10px}#resume-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;flex-shrink:0}#resume-controls button{min-height:56px;font-size:16px}#resume-drop{background:#d5b67b!important;color:#173e47!important}#resume-sheet{position:absolute;inset:0;z-index:2;background:#102a38d9;display:grid;place-items:center;padding:16px;overflow:auto}#resume-sheet>div{width:min(100%,480px);box-sizing:border-box;padding:22px;background:#20474f;border:2px solid #d5bb82;border-radius:14px;box-shadow:0 14px 50px #071d2866}#resume-sheet h3{font-size:22px;margin:0 0 12px;color:#f1d79d}#resume-story{white-space:pre-line;font-size:15px;line-height:1.65}#resume-sheet button{width:100%;margin-top:10px}#resume-go{background:#d5b67b!important;color:#183b45!important;font-weight:bold!important}
@media(max-width:360px){#resume-tetris{padding-left:10px;padding-right:10px}.resume-play{gap:8px}.resume-paper{height:43svh;max-width:57%}.resume-play aside{font-size:11px}#resume-note{display:none}#resume-story{font-size:13px}}
@media(max-height:500px) and (min-width:600px){#resume-tetris{padding:8px 14px;display:grid;grid-template-columns:1fr 200px;grid-template-rows:52px 1fr}#resume-tetris header{grid-column:1/3}.resume-play{min-height:0;justify-content:space-evenly}.resume-paper{height:calc(100svh - 90px);max-width:50%}.resume-play aside{max-width:220px}#resume-controls{align-self:center;grid-template-columns:repeat(2,1fr)}#resume-story{font-size:13px;line-height:1.45}#resume-sheet>div{padding:14px;max-width:650px}#resume-sheet button{min-height:48px}}
#resume-sound{font-size:11px!important;padding:4px!important;min-height:48px!important;margin-top:8px;width:100%}#resume-tetris header>div{min-width:0}#resume-tetris h2{overflow-wrap:anywhere}
@media(max-width:360px){#resume-sound{margin-top:4px;font-size:10px!important}.resume-play{min-height:260px}}
#resume-tetris>header{position:static;inset:auto;width:auto;padding:0;background:none;z-index:auto;flex-shrink:0}
@media(max-height:500px) and (min-width:600px){#resume-tetris>header{grid-row:1;grid-column:1/3}#resume-tetris>.resume-play{grid-row:2;grid-column:1}#resume-controls{grid-row:2;grid-column:2}}
@media(orientation:landscape){#resume-tetris{padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px))}}
/* Keep directional buttons adjacent; rotate belongs to the right thumb. */
#resume-left{grid-column:1;grid-row:1}#resume-right{grid-column:2;grid-row:1}#resume-rotate{grid-column:3;grid-row:1}#resume-soft{grid-column:1;grid-row:2}#resume-drop{grid-column:2;grid-row:2}#resume-omit{grid-column:3;grid-row:2}
#resume-help[hidden]{display:none!important}
@media(max-height:500px) and (min-width:600px){#resume-controls{grid-template-columns:repeat(3,1fr);width:260px}#resume-tetris{grid-template-columns:1fr 260px}#resume-controls button{font-size:13px}}

/* Compact grouped quick menu: navigation belongs inside the sheet. */
#card.valley-quick-menu{text-align:left;max-height:calc(100dvh - 150px)!important;overflow-y:auto;padding:18px;overscroll-behavior:contain;touch-action:pan-y}
#card.valley-quick-menu>.eyebrow{display:none}
#card.valley-quick-menu h2{font-size:21px;margin:0 0 12px}
#card.valley-quick-menu>p.hint{font-size:13px;margin:10px 0}
#card.valley-quick-menu details{border-top:1px solid #d7b77b55;margin-top:12px;padding-top:4px}
#card.valley-quick-menu summary{cursor:pointer;min-height:48px;align-content:center;color:#ffe2a2;font:600 16px/1.5 system-ui;touch-action:manipulation}
#card.valley-quick-menu button{min-height:48px;font:14px/1.5 system-ui;margin-top:7px;padding:10px 12px;text-align:left;width:100%}
#card.valley-quick-menu>#valley-back{position:sticky;top:0;z-index:1;text-align:center;margin:0 0 4px;background:#d7b77b;color:#193e45}
html:has(#overlay:not([hidden]) .valley-quick-menu),html:has(#overlay:not([hidden]) .valley-quick-menu) body{touch-action:pan-y}
#app:has(#overlay:not([hidden]) .valley-quick-menu) #panel-navigation,#app:has(#overlay:not([hidden]) .valley-quick-menu) #dev-test-mode{display:none!important}
@media(max-height:550px){#card.valley-quick-menu{max-height:calc(100dvh - 90px)!important}}

/* WorkBC 05D uses the existing modal and centre, with roomy keyboard/touch cards. */
#card.keyword-panel{max-height:calc(100dvh - 115px)!important;padding:16px;text-align:left;font:15px/1.6 system-ui;overflow-y:auto;touch-action:pan-y}
#card.keyword-panel .eyebrow{display:none}#card.keyword-panel h2{font:700 20px/1.4 system-ui;margin:0 0 10px}
.keyword-nav{display:flex;gap:8px;position:sticky;top:0;background:#183940;z-index:2;padding-bottom:8px}
#card.keyword-panel .keyword-nav button{width:auto;flex:1;min-height:48px;margin:0;padding:8px;font-size:13px}
.keyword-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
#card.keyword-panel .keyword-grid button{min-width:0;min-height:94px;margin:0;padding:10px 6px;font:600 14px/1.4 system-ui;white-space:normal;overflow-wrap:anywhere;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px}
.keyword-icon{font-size:32px;line-height:1.2}.keyword-experiences{border-top:2px solid #d7b77b;padding-top:12px}
#card.keyword-panel button[aria-pressed=true]{outline:3px solid #efd086;background:#456b72}
#card.keyword-panel button.matched{opacity:1;background:#315d4c;color:#f2ffe9;border-color:#9ed2a4}
#card.keyword-panel #keyword-feedback{min-height:28px;color:#ffe4a3}
#card.keyword-panel #keyword-body>button{min-height:48px;font:15px/1.5 system-ui}
#app:has(.keyword-panel) #panel-navigation{display:none!important}
html:has(#overlay:not([hidden]) .keyword-panel),html:has(#overlay:not([hidden]) .keyword-panel) body{touch-action:pan-y}
@keyframes keyword-shake{25%,75%{transform:translateX(-3px)}50%{transform:translateX(3px)}}
.keyword-wrong{animation:keyword-shake .25s ease}
@media(prefers-reduced-motion:reduce){.keyword-wrong{animation:none}}
#app:has(#overlay:not([hidden]) .keyword-panel) #dev-test-mode{display:none!important}
.keyword-connections{padding-left:20px;font-size:13px;color:#bfe5c4}
#payday-days .payday-salary-date{outline:2px solid #a9d7be;color:#dcffe9;font-weight:700;font-size:12px}
#payday-days .payday-card-date{outline:2px solid #efb28b;color:#ffdbc6;font-weight:700;font-size:12px}

/* WorkBC directory: stable 05A–05E order, all entries visible, scoped layout. */
.workbc-mode #card.workbc-directory{max-height:76dvh!important;padding:16px;overflow-y:auto;text-align:left;overscroll-behavior:contain}
#card.workbc-directory h2{font:700 18px/1.4 system-ui;margin:0 0 8px}#card.workbc-directory .workbc-directory-intro{font:13px/1.5 system-ui;margin:0 0 12px}
#card .workbc-activity-list{display:grid;gap:9px}#card button.workbc-activity{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center;width:100%;min-height:78px;margin:0;padding:12px 10px;text-align:left;border:1px solid #b6c7b4;background:#244a53;border-radius:12px;color:#fff0cc;white-space:normal}
#card .workbc-activity-code{font:bold 15px/1.3 monospace;color:#f1cf8c}#card .workbc-activity-content{display:grid;gap:5px;min-width:0}#card .workbc-activity-content strong{font:600 16px/1.35 system-ui;overflow-wrap:anywhere}#card .workbc-activity-content small{font:12px/1.45 system-ui;color:#c2d6cf}#card .workbc-activity-status{font:600 12px/1.3 system-ui;white-space:nowrap;color:#f4d69c}#card button.workbc-activity:disabled{opacity:1;background:#213e47;border-color:#5f787b}#card button.workbc-activity:disabled .workbc-activity-content,#card button.workbc-activity:disabled .workbc-activity-code,#card button.workbc-activity:disabled .workbc-activity-status{color:#aabeba}
#card .workbc-directory-extras{border-top:1px solid #78948c;margin-top:15px;padding-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px}#card .workbc-directory-extras button{width:100%;min-height:48px;margin:0;padding:9px;font:13px/1.4 system-ui}#card .workbc-directory-extras #workbc-explore{background:#d5bb82;color:#183b45}#card .workbc-directory-extras #workbc-leave{grid-column:1/-1}
@media(max-width:350px){#card button.workbc-activity{grid-template-columns:36px minmax(0,1fr) auto;padding:10px 8px;gap:6px}#card .workbc-activity-content strong{font-size:14px}#card .workbc-activity-status{font-size:11px}}

.workbc-section-tools{position:sticky;top:-16px;z-index:2;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;background:#1c4049;padding:8px 0;margin-bottom:10px}#card .workbc-section-tools button{margin:0;min-height:48px;padding:6px;font:13px/1.4 system-ui}#card .workbc-section-body[hidden]{display:none}.keyword-nav{flex-wrap:wrap}#resume-restart{width:100%;margin-top:6px}#resume-sheet-restart{width:100%;margin-top:10px}
/* Chapter directory: compact, ordered, and separated from journals. */
#card.valley-quick-menu{border-radius:16px;border-color:#9abfb0;background:linear-gradient(150deg,#24545b,#173d47);padding:20px}
#card.valley-quick-menu h2{color:#efd59b;font:600 23px/1.4 system-ui}
#card.valley-quick-menu #quick-chapters button{border-radius:10px;border-color:#8cafa899;background:#28555f;color:#e3eee4;padding:13px 14px;margin-top:9px;font:500 14px/1.5 system-ui;min-height:55px;box-shadow:0 2px 0 #082d3340}
#card.valley-quick-menu #quick-chapters button:hover{background:#326970}
#card.valley-quick-menu #chapter-first-light,#card.valley-quick-menu #chapter-community{border-left:3px solid #d9bd7f}
#card.valley-quick-menu>#valley-back{border-radius:10px;font-size:14px;padding:12px;background:#dbc18a;color:#173d47}
#card.valley-quick-menu .chapter-entry-subtitle{display:block;font:11px/1.6 system-ui;color:#b5cec7;margin-top:4px;letter-spacing:0}
#card.chapter-activity-directory{text-align:left;border-radius:14px}#card.chapter-activity-directory h2{font:600 20px/1.5 system-ui;color:#efd59b}#card.chapter-activity-directory button{font:14px/1.5 system-ui;text-align:left;min-height:52px;padding:12px;border-radius:10px}#card.chapter-activity-directory small.hint{display:block;margin:0 0 10px;font:11px/1.5 system-ui;color:#b5cec7}#card.chapter-activity-directory summary{min-height:48px;padding:12px 0;color:#e2c88d;font:14px/1.5 system-ui;cursor:pointer}

#card button.workbc-activity{grid-template-columns:minmax(0,1fr) auto}

/* Memory collections use a readable chapter directory on narrow screens. */
#card.memory-directory{text-align:left}#card.memory-directory button{display:block;width:100%;text-align:left;white-space:normal;overflow-wrap:anywhere;min-height:52px;line-height:1.6;padding:12px 16px;margin:10px 0;box-sizing:border-box}#card.memory-directory button small{display:block;font-size:12px;font-weight:400;opacity:.8;margin-top:4px}#card.memory-directory button:disabled{opacity:.65}
