.soft-finale{position:absolute;inset:0;z-index:80;overflow:hidden;background:radial-gradient(ellipse at 20% 5%,#476757,#102e29 70%);color:#fff1d8;isolation:isolate;animation:sfEnter .8s ease both}
.sf-opening{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 4vw 72px;gap:12px}
.sf-little-heart{font:32px/1 Georgia,serif;color:#f3c797}.sf-opening h2{font:clamp(23px,3.1vw,43px)/1.2 Georgia,serif;font-weight:400;text-align:center;max-width:90%;margin:0 0 13px;text-wrap:balance;text-shadow:0 3px 22px #001f22}
.sf-inspirations{display:grid;grid-template-columns:1.65fr 1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'one three' 'two three';gap:24px;width:min(100%,1080px);height:min(62svh,660px);min-height:0}
.sf-frame{margin:0;background:linear-gradient(130deg,#fff9ee,#f3e6ce);border:1px solid #fff7e2b3;padding:9px;border-radius:3px;box-shadow:0 14px 40px #00191f52,0 1px 3px #0005;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;max-width:100%;max-height:100%}
.sf-frame img{display:block;object-fit:contain;max-width:100%;max-height:100%;width:100%;height:100%;min-height:0;flex:1}.sf-frame figcaption{color:#4c554b;text-align:center;flex:none;font:italic clamp(12px,1.3vw,16px)/1.3 Georgia,serif;padding:8px 4px 2px}
.sf-stage1{grid-area:one}.sf-stage2{grid-area:two}.sf-stage3{grid-area:three}.sf-inspirations .sf-frame{opacity:0;will-change:transform,opacity}
.sf-photo-scene{position:absolute;inset:0;opacity:0;pointer-events:none;background:#102523}.sf-blur{position:absolute;inset:-7%;width:114%;height:114%;object-fit:cover;filter:blur(28px) brightness(.45) saturate(.8);opacity:.7}
.sf-single{position:absolute;inset:5% 5% 70px;display:flex;align-items:center;justify-content:center;min-height:0;will-change:transform}
.sf-single .sf-frame{width:max-content;height:100%;max-width:100%;padding:clamp(6px,1vw,14px)}.sf-single .sf-frame img{width:auto;height:auto;max-width:100%;max-height:100%;flex:0 1 auto;object-fit:contain}
.sf-flash{position:absolute;top:4%;left:3%;width:clamp(76px,13vw,175px);height:min(24svh,220px);opacity:0;z-index:5;transform:rotate(-4deg);pointer-events:none}.sf-flash .sf-frame{height:100%;padding:6px}
/* A quiet, reserved gutter keeps the reminder beside the complete main photo. */
.sf-photo-3 .sf-single{left:max(22%,200px)}
.sf-white{position:absolute;inset:0;background:#fff;opacity:0;z-index:6;pointer-events:none}.sf-prayer{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(60px,8vw,104px);z-index:7;opacity:0;pointer-events:none}
.sf-return{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));min-height:44px;padding:10px 14px;z-index:10;font:13px/1.4 'Trebuchet MS',sans-serif;border:1px solid #dbe4dc60;border-radius:20px;background:#142d2f50;color:#fff8e9;backdrop-filter:blur(8px);cursor:pointer;transition:background .4s,color .4s,border-color .4s}.sf-return:hover{background:#26464c90}.sf-return:focus-visible{outline:2px solid #e6bf85;outline-offset:3px}.sf-light .sf-return{background:#ffffffb0;border-color:#5c6a6530}.sf-light .sf-return:hover{background:#eff3f0}
.sf-status{position:absolute;bottom:76px;left:5%;right:5%;text-align:center;font:14px/1.5 'Trebuchet MS',sans-serif;z-index:9;color:#ffe0b6}.sf-status:empty{display:none}
.soft-finale-active #rotate-hint,.soft-finale-active #toast,.soft-finale-active #bubble,.soft-finale-active #g-mode-banner{display:none!important}
@keyframes sfEnter{from{opacity:0}to{opacity:1}}
@media(max-width:600px) and (orientation:portrait){.sf-opening{padding:28px 20px 76px;gap:8px}.sf-inspirations{width:100%;height:65svh;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,.75fr) minmax(0,1fr);grid-template-areas:'one one' 'two three';gap:16px}.sf-frame{padding:6px}.sf-frame figcaption{font-size:12px}.sf-single{inset:5% 5% 77px}.sf-flash{top:2%;left:3%;width:72px;height:108px}.sf-opening h2{margin-bottom:8px}.sf-little-heart{font-size:26px}}
@media(max-height:500px){.sf-opening{padding:12px 5% 57px;gap:4px}.sf-little-heart{display:none}.sf-opening h2{font-size:23px;margin-bottom:7px}.sf-inspirations{height:66svh;gap:13px}.sf-frame{padding:5px}.sf-frame figcaption{padding:3px 2px 0;font-size:11px}.sf-single{inset:4% 4% 56px}.sf-return{bottom:7px}}
@media(max-width:600px){.sf-photo-3 .sf-single{left:25%}.sf-flash{width:18%;max-width:90px;height:min(24svh,150px)}}
@media(prefers-reduced-motion:reduce){.soft-finale{animation:none}.sf-inspirations .sf-frame,.sf-single{will-change:opacity}.sf-return{transition:none}}
/* Shared memory/adventure finale. All overlays have their own reserved space. */
.soft-finale{position:fixed;z-index:800;--sf-settle:0}
.sf-martha,.sf-flash,.sf-video{position:absolute;left:3%;width:19%;z-index:5;opacity:0;pointer-events:none;transform:none}
.sf-martha{top:3%;height:17%}.sf-flash{top:22%;height:16%}.sf-video-0{top:40%;height:20%}.sf-video-1{top:62%;height:24%}
.sf-martha .sf-frame,.sf-flash .sf-frame,.sf-video .sf-frame{height:100%;width:100%;padding:5px}
.sf-frame video{width:100%;height:100%;min-height:0;object-fit:contain;display:block}
.sf-photo-3 .sf-single{left:calc(26% - 21% * var(--sf-settle));right:5%;bottom:72px}
.soft-finale-active .topbar,.soft-finale-active .small-footer,.soft-finale-active #activityBadge,.soft-finale-active #gBanner,.soft-finale-active #toast{visibility:hidden}
@media(max-width:600px) and (orientation:portrait){.sf-photo-3 .sf-single{left:5%;top:calc(5% + 26% * (1 - var(--sf-settle)))}.sf-martha,.sf-flash,.sf-video{top:3%;height:24%;left:3%;width:21%}.sf-flash{left:27%}.sf-video-0{left:51%}.sf-video-1{left:75%}.sf-frame video{object-fit:contain}.sf-martha .sf-frame,.sf-video .sf-frame{padding:3px}}
@media(prefers-reduced-motion:reduce){.sf-photo-3 .sf-single{left:26%}.sf-martha,.sf-flash,.sf-video{transform:none}}

.sf-audio-retry{position:absolute;top:18px;right:18px;z-index:20;min-height:44px;padding:10px 16px;border:1px solid #ddc384;border-radius:12px;background:#17382ee6;color:#fff2d0;cursor:pointer}.sf-audio-retry[hidden]{display:none!important}
