/* Shared game and controls, with roomier composition on larger screens. */
body:not(.inStory) .app{width:min(1120px,100%);max-width:1120px}
body.inStory{isolation:isolate}
body.inStory .app{width:min(1200px,100%);max-width:1200px}
.langMini svg,.utilityBtn svg{display:block;flex-shrink:0}.langMini>span{display:flex;align-items:center}
body.inStory:before{display:block}
.sceneVisualColumn{min-width:0}
#sceneMedia.sceneMedia{aspect-ratio:var(--art-ratio,1672/941)!important}
.imageLoading{position:absolute;inset:auto 12px 12px auto;z-index:5;max-width:80%;padding:8px 12px;border-radius:12px;background:#fff9fcf2;color:#76515f;font-size:13px;line-height:1.6}
.childPhotoReveal{flex-wrap:wrap}.childPhotoStrip{margin-left:auto}
#childAlbumBtn{width:100%;font-size:13px;min-height:40px;padding:9px}
.childhoodAlbumDialog{max-width:760px}.childhoodAlbumDialog img{display:block;width:100%;height:auto;max-height:67dvh;object-fit:contain}.childhoodAlbumDialog h2{font-size:22px}
#gameScreen.active{display:block}
#gameScreen>.top{position:relative;top:auto;grid-template-columns:minmax(0,1fr)}
#gameScreen .topRight{justify-content:space-between;flex-wrap:wrap}
#gameScreen .progress{grid-column:1}
.sceneVisualColumn{position:static}
.sceneVisualColumn .mediaPanel{margin-top:0}
#gameScreen>.storyBox{min-width:0}
@media(min-width:1000px){
 #gameScreen.active{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:0 22px;align-items:start}
 #gameScreen>.top{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto}
 #gameScreen .progress{grid-column:1/-1}
 #gameScreen .topRight{justify-content:flex-end;gap:14px}
 .sceneVisualColumn{position:sticky;top:20px}
 #gameScreen>.storyBox{margin-top:0}
}
.fields,.profileGrid,.audioRow,.endingGrid{grid-template-columns:minmax(0,1fr)}
@media(min-width:761px){.fields,.profileGrid,.endingGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.audioRow{grid-template-columns:150px minmax(0,1fr)}}
.utilityBtn,.utilityBtn.iconOnly,.memoryBtn{min-height:44px}
.utilityBtn.iconOnly{min-width:44px}
.playPreferences,.heroVisual figcaption,#childAlbumBtn{font-size:14px}
.narration{font-size:16px;line-height:1.8}
.dialogue{font-size:clamp(18px,2.4vw,21px);line-height:1.8}
.hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;align-items:center;min-height:0;padding:86px 38px 30px}
.heroCopy{width:100%;padding:0;min-width:0;text-align:left}
.hero h1{font-size:clamp(32px,4.6vw,46px);line-height:1.35}
.heroVisual{position:relative;inset:auto;width:100%;max-width:640px;margin:auto;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px;min-width:0}
.heroVisual .photoCard{position:relative;inset:auto;width:auto;height:auto;transform:none;padding:7px 7px 13px;border-radius:13px;overflow:hidden;box-shadow:0 12px 25px #58314318;min-width:0}
.heroVisual .photoA{grid-column:1/-1}
.heroVisual .photoCard img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:7px;background:#f9edf2}
.heroVisual figcaption{margin:10px 2px 0;line-height:1.5;font-family:'Anuphan',sans-serif;font-size:14px}
.heroVisual .waxHeart{right:-12px;bottom:-12px;width:46px;height:46px;font-size:23px}
.heroDeck{position:relative;inset:auto;grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.hero .spark{display:none}
.heroMemo{display:block;max-width:410px;margin:0;font-size:14px;line-height:1.8}
.endingVisual{aspect-ratio:auto;width:min(760px,100%);transform:none;border-width:7px}
.endingVisual img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:#f8eaf0}
.endingShade{display:none}
.endingScore{position:relative;inset:auto;padding:25px 12px 20px;color:var(--wine);background:#fff9fc}
.endingScore .bigScore{font-family:'Anuphan',sans-serif;font-weight:600;font-size:68px;line-height:1.1;color:var(--pink);text-shadow:none;margin-bottom:6px}
.resultHero h1{font-family:'Anuphan',sans-serif;font-weight:600;font-size:clamp(26px,4vw,36px);line-height:1.5;overflow-wrap:anywhere}
.endingLetterPanel,.epilogue,.memorySection{min-width:0;height:auto;max-height:none;overflow:visible}
#endingMemoryChips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;border:0;background:none;min-height:0}
.memoryKeepsake{padding:16px 18px;border:1px solid #efd5df;border-radius:16px;background:#fff8fb;min-width:0}
.memoryKeepsake b{display:block;color:#9e5572;font-size:14px;line-height:1.6}.memoryKeepsake p{margin:7px 0 0;font-size:16px;line-height:1.85;overflow-wrap:anywhere}
.epilogue p{font-size:17px;line-height:2;margin:20px 0}.epilogue blockquote{margin:27px 0 10px;padding:20px 22px;border-left:3px solid #d899b2;background:#fffafb;border-radius:0 15px 15px 0;font-size:19px;line-height:1.9}.letterSign{display:block;text-align:right;color:#a45b78}
#shareModal .modalCard{max-height:calc(100dvh - 28px);overflow-y:auto;overscroll-behavior:contain}
.sharePreviewWrap{height:auto;aspect-ratio:9/16;box-sizing:content-box}.sharePreviewWrap img{object-fit:contain}
.profilePortrait{width:min(360px,78vw);max-width:100%;aspect-ratio:1/1;padding:10px;box-sizing:border-box;border-radius:18px;border:1px solid #ead5df;transform:none}
.profilePortrait img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;object-position:center;border-radius:10px}
@media(max-width:760px){
 .hero{grid-template-columns:1fr;gap:25px;padding:73px 22px 25px;min-height:0}
 .heroCopy{padding:0;text-align:center}.hero h1{font-size:34px}.heroThai{font-size:15px}
 .heroVisual{width:100%;height:auto;inset:auto;max-width:530px;margin:auto;gap:10px}
 .heroVisual .photoCard{padding:5px 5px 10px}.heroVisual figcaption{font-size:14px;margin-top:8px}
 .heroMemo{margin:auto}.heroDeck{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.miniCard{min-height:79px;padding:12px 8px 8px}.miniCard b{font-size:14px}.miniCard small{font-size:12px;line-height:1.5}
 .endingVisual{width:100%;aspect-ratio:auto}.endingScore .bigScore{font-size:58px}
 #endingMemoryChips{grid-template-columns:minmax(0,1fr)}.epilogue p{font-size:16px}.epilogue blockquote{font-size:18px;padding:17px}
}
@media(max-width:360px){.hero{padding-left:15px;padding-right:15px}.hero h1{font-size:30px}.heroDeck{grid-template-columns:repeat(2,minmax(0,1fr))}}
