.header-wallet.active{border-color:var(--gold);color:var(--gold);background:#3b3032}
.today-pocket{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0 15px;font-size:.9375rem;color:var(--muted)}
.today-pocket>span{display:flex;align-items:center;gap:8px}.today-pocket strong{color:var(--text);font-size:1rem;font-variant-numeric:tabular-nums}
.status-cash{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.875rem;white-space:nowrap}
.status-cash strong{font-size:1rem;color:var(--text);font-variant-numeric:tabular-nums}
.today-payment-note{display:flex;align-items:center;gap:10px;width:100%;padding:11px 13px;margin:14px 0;background:#352c2f;border:1px solid #9c7e5855;border-radius:9px;color:var(--gold);font-size:.9375rem;text-align:left}
.today-payment-note>span{flex:1;line-height:1.6}.today-payment-note.urgent{color:#f2b6b6;border-color:#ab6674}
.screen-life .home-layout{display:block}.screen-life .home-detail{max-width:none}
.repayment-layout{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.repayment-overview,.repayment-form-card,.repayment-history{padding:26px}
.repayment-balance{display:block;font-size:clamp(2rem,6vw,3.2rem);font-weight:600;line-height:1.3;margin:10px 0 20px;font-variant-numeric:tabular-nums}
.repayment-week{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:19px 0;border-block:1px solid var(--line);margin:22px 0;color:var(--gold);font-size:.9375rem}
.repayment-week>span:first-child{display:grid;gap:6px}.repayment-week strong{font-size:1.25rem}
.repayment-facts{display:grid;gap:15px;margin:0}.repayment-facts>div{display:flex;justify-content:space-between;gap:16px;font-size:1rem}
.repayment-facts dt{color:var(--muted)}.repayment-facts dd{margin:0;font-variant-numeric:tabular-nums}
.repayment-note{font-size:.9375rem;color:var(--muted);line-height:1.8;margin:16px 0}
.repayment-form-card h2,.repayment-history h2{font-size:1.15rem;display:flex;gap:9px;align-items:center;margin:0 0 22px}
.repayment-form-card .button{width:100%}.repayment-history{margin-top:22px}
.repayment-history ol{list-style:none;padding:0;margin:0}.repayment-history li{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);line-height:1.7}
.repayment-history li>span{font-size:.875rem;color:var(--gold);min-width:58px}.repayment-history p{font-size:1rem;line-height:1.8;margin:5px 0 0;color:var(--muted)}
.repayment-history summary{min-height:44px;padding:17px 0 0;color:var(--gold);cursor:pointer;font-size:.9375rem}
@media(max-width:800px){.repayment-layout{grid-template-columns:1fr;gap:16px}.repayment-overview,.repayment-form-card,.repayment-history{padding:20px}.status-strip{gap:8px}.status-cash{gap:5px}.status-cash strong{font-size:.9375rem}.repayment-week{margin:16px 0}.finance-heading h1{font-size:1.6rem}}
@media(max-width:380px){.status-cash{font-size:.8125rem}.status-cash strong{font-size:.875rem}.status-strip>.status-cash>.icon{display:none}.header-wallet .icon{display:none}}

#narrative-stage[hidden]{display:none}
#narrative-stage:not([hidden]){position:fixed;inset:0;z-index:100;background:#17131b}
body.story-open .primary-nav{visibility:hidden}
.narrative-stage{height:100%;height:100dvh;color:var(--text);background:radial-gradient(ellipse at 20% 0,#3b2c39,transparent 65%),#17131b}
.narrative-shell{height:100%;max-width:960px;margin:auto;display:flex;flex-direction:column;min-width:0;background:#1d1721;box-shadow:0 0 80px #08060a55}
.narrative-header{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-shrink:0;padding:calc(17px + env(safe-area-inset-top)) 26px 15px;border-bottom:1px solid #a996aa30;background:#211b26}
.narrative-header>div{min-width:0}.narrative-header span{font-size:.875rem;line-height:1.7;color:var(--gold)}
.narrative-header h1{font-family:var(--serif);font-size:1.3rem;line-height:1.5;margin:4px 0 0;overflow-wrap:anywhere}
.narrative-position{white-space:nowrap;font-variant-numeric:tabular-nums}.narrative-header .icon-button{flex-shrink:0;min-height:44px;min-width:44px}
.narrative-scroll{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;flex:1;min-height:0;min-width:0;-webkit-overflow-scrolling:touch}
.rpg-cast-stage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-items:center;align-items:end;gap:clamp(18px,6vw,60px);max-width:740px;margin:auto;padding:25px 30px 12px;background:radial-gradient(ellipse at 50% 40%,#55414a55,transparent 70%)}
.rpg-cast-stage.solo{grid-template-columns:minmax(0,1fr)}
.rpg-character{margin:0;min-width:0;width:100%;max-width:244px;text-align:center}
.rpg-character .rpg-portrait{display:block;width:100%;height:auto;aspect-ratio:4/5;border:1px solid #88718766;border-radius:10px;overflow:hidden;background:#372c3d;transition:filter .25s,transform .25s,box-shadow .25s}
.rpg-character .rpg-portrait img{display:block;position:static;width:100%;height:100%;object-fit:cover;object-position:center 26%;transform:none}
.rpg-character.is-speaking .rpg-portrait{border-color:var(--gold);box-shadow:0 0 25px #ddc79f2b;filter:none;transform:none;animation:rpg-speaking .28s ease-out}
.rpg-character.rpg-self.is-speaking .rpg-portrait{border-color:var(--pink);box-shadow:0 0 25px #dfaabc30}
.rpg-character.is-listening .rpg-portrait{filter:brightness(.62) saturate(.65);transform:scale(.96)}
.rpg-character figcaption{padding:10px 0 0;line-height:1.4}.rpg-character figcaption strong{font-weight:500;font-size:1rem;color:var(--muted)}.rpg-character figcaption small{display:block;min-height:1.5em;font-size:.8125rem;color:var(--gold);margin-top:4px}.rpg-character.is-speaking figcaption strong{color:var(--text)}.rpg-self.is-speaking figcaption small{color:var(--pink)}
.rpg-text-window{position:relative;margin:10px 26px 0;padding:19px 23px 22px;border:1px solid #b798ab75;border-radius:10px;background:linear-gradient(135deg,#352a38,#2b2330);box-shadow:0 8px 28px #0d0b1133;overflow-wrap:anywhere}
.rpg-text-window:focus{outline:none}.rpg-name{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-bottom:12px;color:var(--gold);font-size:1rem;line-height:1.5}.rpg-name small{font-size:.8125rem;color:var(--muted)}.rpg-thought .rpg-name{color:var(--pink)}
.rpg-text-window p{font-size:1.0625rem;line-height:1.95;margin:0;color:#f3eaf2}.rpg-narration{background:#2b2530;border-color:#88728d4a}.rpg-narration .rpg-name{color:var(--muted);font-size:.875rem}
.narrative-footer{position:static;max-height:none;overflow:visible;flex-shrink:0;padding:20px 26px calc(20px + env(safe-area-inset-bottom));background:transparent;border:0}
.narrative-next{display:flex;margin-left:auto;min-width:230px;justify-content:space-between;min-height:50px}
.narrative-reading-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px}.narrative-reading-tools:empty{display:none}.narrative-reading-tools .text-button{min-height:44px;font-size:.875rem;gap:8px;color:var(--muted)}.narrative-skip{margin-left:auto}
.narrative-no-time{font-size:.875rem;line-height:1.7;color:#bcaac3;margin:10px 0 0;text-align:right}
.narrative-choices{display:grid;gap:10px;max-width:760px;margin:auto}.narrative-question{font-size:1rem;color:var(--pink);margin-bottom:3px}
.narrative-choice{display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;background:#342a3a;border:1px solid #b696b157;border-radius:10px;color:var(--text);padding:14px 17px;min-height:54px;line-height:1.6;white-space:normal}
.narrative-choice-copy{min-width:0}.narrative-choice strong{font-size:1rem;font-weight:600;overflow-wrap:anywhere}.narrative-choice>.icon{flex-shrink:0}.narrative-choice-detail{display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px;margin-top:7px;font-size:.875rem;color:#cdbbd0}.narrative-choice-detail small{font-size:inherit;line-height:1.6;margin:0}.narrative-choice-detail .growth-chips{margin:0;gap:5px}.narrative-choice-detail .growth-chip{font-size:.8125rem;padding:2px 6px;line-height:1.5}.narrative-choice-detail .growth-chip .icon{width:15px;height:15px}
.narrative-choice:hover:not(:disabled),.narrative-choice:focus-visible{border-color:var(--pink);background:#493542}
.narrative-choice.secondary{background:transparent;border-color:#8472824a}.narrative-choice.secondary strong{font-size:.9375rem;font-weight:400;color:#cdbccc}.narrative-choice:disabled{opacity:.5;cursor:not-allowed}
.cinema-image{width:100%;aspect-ratio:3/2;max-height:520px;overflow:hidden;background:#110e14}
.cinema-image img{display:block;width:100%;height:100%;object-fit:contain;animation:cinema-breathe 11s ease-out both;transform-origin:50% 46%}
.cinema-mode .rpg-text-window{margin-top:18px}
.narrative-history{margin:12px 26px 0;border-bottom:1px solid #9a829d33}.narrative-history summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-size:.875rem;color:var(--muted);cursor:pointer}
.narrative-transcript{list-style:none;padding:0;margin:10px 0;display:grid;gap:19px}.narrative-transcript li{padding-left:15px;border-left:1px solid #96789b66}.narrative-transcript span{font-size:.875rem;color:var(--pink);line-height:1.7}.narrative-transcript p{font-size:1rem;color:var(--text);line-height:1.9;margin:6px 0 0;overflow-wrap:anywhere}.narrative-summary{padding:25px 26px 0}.narrative-summary h2{font-size:1rem;color:var(--gold);margin:0 0 24px}.narrative-summary:focus{outline:none}
.motion-paused .cinema-image img{animation:none}.motion-paused .rpg-character .rpg-portrait{animation:none;transition:none}
.cinema-memory-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 26px}
.cinema-memory{border:1px solid #9f8a9e55;background:#2b2430;color:var(--text);border-radius:11px;overflow:hidden;padding:0;text-align:left}
.cinema-memory img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}.cinema-memory span{display:block;padding:13px 15px;font-size:.9375rem;line-height:1.65}.cinema-memory small{display:block;color:var(--gold);font-size:.8125rem;margin-bottom:4px}
.receipt-cinema{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.receipt-cinema h3{font-size:1rem}.receipt-cinema button{display:flex;gap:8px;min-height:44px;color:var(--pink);font-size:.9375rem}
.booking-price-guide{margin-top:16px;border-top:1px solid var(--line);padding-top:8px}.booking-price-guide summary{min-height:44px;padding:10px 0;color:var(--gold);cursor:pointer;font-size:.9375rem}
.booking-price-guide table{width:100%;border-collapse:collapse;font-size:.875rem;text-align:right}.booking-price-guide th,.booking-price-guide td{padding:10px 5px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.booking-price-guide th:first-child{text-align:left}.booking-price-guide thead{color:var(--muted)}
.booking-price-guide p{font-size:.875rem;line-height:1.8;color:var(--muted);margin:12px 0 0}
.course-table small{display:block;font-size:.875rem;font-weight:400;color:var(--pink);margin-top:3px}.course-table caption{font-size:1rem}
.designation-note{font-size:.875rem;line-height:1.8;color:var(--muted);margin:10px 0 18px}
.customer-breakdown>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}.customer-breakdown>div>span{font-size:.875rem;line-height:1.65;flex-wrap:wrap}.customer-breakdown>div>span b{margin-left:auto;white-space:nowrap}
@keyframes cinema-breathe{from{opacity:.65;transform:scale(1)}to{opacity:1;transform:scale(1.025)}}
@keyframes rpg-speaking{from{filter:brightness(.76);opacity:.85}to{filter:none;opacity:1}}
.header>.header-settings{display:flex;align-items:center;justify-content:center;gap:6px;width:auto;min-width:70px;height:44px;min-height:44px;padding:8px 10px;font-size:.875rem;flex-shrink:0;border:1px solid var(--line);border-radius:10px;color:var(--muted)}
.header>.header-settings .icon{width:19px;height:19px}.header>.header-settings.active{color:var(--pink);border-color:var(--pink)}
.settings-sections{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 22px}.settings-sections button{padding:9px 18px;min-height:44px;border:1px solid var(--line);border-radius:9px;font-size:.9375rem;color:var(--gold);background:var(--surface)}
#settings-routines,#settings-display,#settings-service,#daily-routines{scroll-margin-top:82px}
.routine-status{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 22px;margin:16px 0}.routine-status strong{display:flex;align-items:center;gap:9px;font-size:1rem;color:var(--gold)}.routine-status p{font-size:.9375rem;line-height:1.8;color:var(--muted);margin:8px 0 0}.routine-status .routine-settings-link{flex-shrink:0;min-height:44px;margin:0;font-size:.9375rem}
.manual-routines>summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;cursor:pointer;font-size:.9375rem;color:var(--muted);padding:10px 0}.manual-routine-note{font-size:.9375rem;line-height:1.8;color:var(--muted);margin:8px 0 18px}
@media(max-width:800px){
 .header{height:64px;min-height:64px;padding:10px 16px;gap:8px}.header>.header-settings{min-width:64px;padding:8px;font-size:.875rem}.header .brand{gap:7px;font-size:1.12rem}.header .brand>.icon{width:21px;height:21px}.header-wallet{min-height:44px}
 .narrative-header{padding:calc(12px + env(safe-area-inset-top)) 16px 12px;gap:10px}.narrative-header h1{font-size:1.1rem}.narrative-header span{font-size:.875rem}
 .rpg-cast-stage{padding:18px 18px 7px;gap:20px}.rpg-character{max-width:205px}.rpg-character figcaption{padding-top:7px}.rpg-character figcaption strong{font-size:.9375rem}.rpg-character figcaption small{font-size:.8125rem;margin-top:2px}
 .rpg-text-window{margin:8px 15px 0;padding:16px 17px 19px}.rpg-text-window p{font-size:1.0625rem;line-height:1.85}.rpg-name{margin-bottom:10px;font-size:.9375rem}.rpg-name small{font-size:.8125rem}
 .narrative-footer{padding:17px 15px calc(18px + env(safe-area-inset-bottom));max-height:none;overflow:visible}.narrative-next{width:100%;min-width:0;min-height:48px}.narrative-choice{padding:12px 14px;min-height:52px}.narrative-choices{gap:9px}.narrative-choice-detail{gap:4px 8px}
 .cinema-image{max-height:none}.cinema-mode .rpg-text-window{margin-top:14px}.narrative-history{margin:10px 16px 0}.narrative-summary{padding:22px 16px 0}
 .cinema-memory-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cinema-memory span{padding:10px 12px}.booking-price-guide th,.booking-price-guide td{padding:9px 3px}
 .routine-status{display:block;padding:17px 18px}.routine-status .routine-settings-link{margin-top:9px}.settings-sections{gap:8px}.settings-sections button{flex:1;padding:9px 10px}
}
@media(max-width:380px){.header{padding-inline:12px;gap:7px}.header .brand{font-size:1.06rem;gap:5px}.header-wallet{padding-inline:7px}.header>.header-settings{min-width:60px;gap:4px;padding-inline:7px}.header>.header-settings .icon{width:17px;height:17px}.rpg-cast-stage{gap:16px;padding-inline:16px}}
@media(prefers-reduced-motion:reduce){.cinema-image img{animation:none}.rpg-character.is-speaking .rpg-portrait{animation:none;transition:none}}

/* Keep the current line and its next action together on phone screens. */
#narrative-title:focus{outline:none}
.rpg-cast-stage,.rpg-cast-stage.solo{padding:12px 20px 4px;gap:24px}
.rpg-character{width:auto;max-width:190px;margin:0;justify-self:center}
.rpg-character .rpg-portrait{height:clamp(90px,22dvh,180px);width:auto;aspect-ratio:4/5}
.rpg-character figcaption{padding-top:5px}
.rpg-character figcaption small{display:none}
.rpg-text-window{margin:8px 20px;padding:12px 17px}
.rpg-text-window p{font-size:1.05rem;line-height:1.75;margin:8px 0 0}
.rpg-text-window p{white-space:pre-wrap}
.rpg-text-window .rpg-scene-context{margin:0 0 14px;color:#e0d5df}
.rpg-text-window .rpg-scene-context+.rpg-name{padding-top:10px;border-top:1px solid #c1a7b43d}
.narrative-footer{padding:10px 20px calc(12px + env(safe-area-inset-bottom))}
.narrative-reading-tools{margin-top:7px;gap:8px;flex-wrap:wrap}
.narrative-reading-tools button{min-height:44px}
.narrative-history{margin:5px 20px;font-size:.8rem}
.cinema-image{height:clamp(100px,27dvh,340px);max-height:340px;aspect-ratio:auto}
.narrative-choice-intro{padding:22px 20px 4px;color:var(--muted)}
.narrative-summary>.button{width:100%;margin-bottom:18px}
.narrative-no-time{font-size:.75rem;margin:6px 0 0}
.trip-complete-art{margin:-8px -8px 20px;border-radius:14px;overflow:hidden}
.trip-complete-art .modal-life-art{max-height:230px}
.trip-complete-modal h2{color:var(--gold);font-size:2rem}
.trip-complete-modal .modal-summary small{display:block;font-size:.75rem;margin-top:5px}
.trip-complete-modal{animation:trip-arrival .45s ease-out}
.shop-credit-rate{font-size:.85rem;color:var(--gold);line-height:1.7}
@keyframes trip-arrival{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(max-height:650px){.narrative-header{padding-top:8px;padding-bottom:8px}.rpg-cast-stage,.rpg-cast-stage.solo{padding-top:6px}.rpg-text-window p{font-size:1rem;line-height:1.65}.narrative-no-time{display:none}}
@media(prefers-reduced-motion:reduce){.trip-complete-modal{animation:none}}

/* A title break belongs to a new event; outcomes remain inside that event. */
.event-opening-mode .narrative-scroll{display:flex;flex-direction:column}
.event-opening{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:36px 24px;min-height:260px;animation:event-reveal .4s ease-out}
.event-opening>span{letter-spacing:.16em;color:var(--gold);font-size:.9rem;border-block:1px solid #d4bb8959;padding:10px 24px}
.event-opening>p{color:var(--muted);font-size:.875rem;line-height:1.7;margin:28px 0 12px}
.event-opening h2{font-family:var(--serif);font-size:clamp(1.5rem,6vw,2.4rem);line-height:1.65;margin:0 0 24px;max-width:650px}
.event-opening>small{color:var(--muted);font-size:.875rem}
.event-phase{display:block;color:var(--pink);font-size:.8rem;margin-bottom:5px}
.event-opening:focus,.narrative-choice-intro:focus{outline:none}
/* Preserve the complete original composition; text and controls get their own rows. */
.cinema-immersive .narrative-shell{position:relative;max-width:1200px;display:grid;grid-template-rows:auto minmax(120px,1fr) auto;background:#110e14}
.cinema-immersive .narrative-header{grid-row:1;background:#201925;border:0}
.cinema-immersive .cinema-image{grid-row:2;position:relative;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;overflow:hidden;background:#110e14}
.cinema-immersive .cinema-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;animation:none;transform:none}
.cinema-immersive .narrative-scroll{grid-row:3;display:block;padding:0;max-height:55dvh;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(#231c29,#19141e)}
.cinema-immersive .rpg-text-window{margin:0 16px;padding:12px 18px;max-width:800px;border-color:#e6cfb854;background:#17121bbd;box-shadow:none}
.cinema-immersive .narrative-footer{margin:0 auto;max-width:832px;background:transparent}
.cinema-immersive .rpg-name{margin-bottom:6px}
.cinema-immersive .narrative-reading-tools{gap:3px 12px}
.cinema-immersive .narrative-reading-tools .text-button{color:#e3d1e2}
.cinema-art-toggle{position:static;min-height:44px;border:0;padding:8px 0;font-size:.8125rem}
.cinema-art-only .narrative-header,.cinema-art-only .narrative-scroll{display:none}
.cinema-art-only .narrative-shell{grid-template-rows:minmax(0,1fr) auto;padding:0}
.cinema-art-only .cinema-image{grid-row:1}
.cinema-art-return{grid-row:2;justify-self:center;min-height:48px;margin:12px 16px calc(16px + env(safe-area-inset-bottom));padding-inline:28px}
@media(min-width:801px){.cinema-immersive .rpg-text-window{margin-inline:auto}.cinema-immersive .narrative-header{padding-inline:32px}}
@media(max-height:560px) and (min-width:600px){.cinema-immersive:not(.cinema-art-only) .narrative-shell{grid-template-columns:minmax(0,1.35fr) minmax(270px,1fr);grid-template-rows:auto minmax(0,1fr)}.cinema-immersive .narrative-header{grid-column:1/-1}.cinema-immersive .cinema-image{grid-column:1;grid-row:2}.cinema-immersive .narrative-scroll{grid-column:2;grid-row:2;max-height:none}.cinema-immersive .rpg-text-window{margin:0 10px;padding:10px 12px}.cinema-immersive .narrative-footer{padding:10px}.cinema-art-only .cinema-image{grid-column:1;grid-row:1}}
@keyframes event-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.event-opening{animation:none}}

.event-opening-mode .narrative-header h1{display:none}
.motion-paused .event-opening{animation:none}

/* New story artwork always shows its original complete composition. */
.story-scene-art.tsumugi-image{display:block;width:100%;height:auto;aspect-ratio:3/2;margin:0 0 18px;border-radius:12px;background:#17131b}
.story-scene-art.tsumugi-image>img,.night-expanded-art.tsumugi-image>img{object-fit:contain;object-position:center;transform:none}
.night-memory.night-illustrated>div{display:block}
.night-expanded-art.tsumugi-image{width:100%;height:auto;aspect-ratio:3/2;background:#17131b;border-radius:10px;margin-bottom:12px}
.story-scene-art.tsumugi-image>img,.night-expanded-art.tsumugi-image>img{position:absolute;inset:0}
.current-day{grid-template-columns:minmax(0,1fr)}
.current-day-picture{min-height:0;border-left:0;border-top:1px solid #b3939840;aspect-ratio:3/2;width:100%;background:#17131b}
.current-day-picture>.tsumugi-image>img{object-fit:contain;object-position:center;transform:none}
.current-day-picture>span{position:static;display:none}
.rpg-character .rpg-portrait img{object-fit:contain;object-position:center;transform:none}
.memory-card.memory-illustrated{grid-template-columns:minmax(0,1fr)}
.memory-illustrated>.story-scene-art{margin-bottom:0}
.receipt-event.has-scene-art{display:block}
.receipt-event.has-scene-art>span{display:block}

/* Portrait art stays complete; dialogue is layered over its lower portion. */
.cinema-image{display:block;border:0;border-radius:0;padding:0;cursor:zoom-in}
.cinema-image picture{display:block;width:100%;height:100%}
.cinema-image:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.cinema-art-only .cinema-image{cursor:zoom-out}
.narrative-header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.narrative-header .cinema-art-toggle{padding:8px;min-width:44px;min-height:44px;border:1px solid var(--line)}
.cinema-controls{display:flex;align-items:center;gap:8px}
.cinema-controls>.narrative-next{flex:1;width:auto;min-width:0;margin:0}
.cinema-previous{width:48px;height:48px;min-height:48px;flex:none}
.mobile-event-art{display:block}
@media(max-width:800px) and (orientation:portrait){
 .cinema-portrait:not(.cinema-art-only) .narrative-shell{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);overflow:hidden;height:100dvh;isolation:isolate}
 .cinema-portrait:not(.cinema-art-only) .narrative-header{grid-row:1;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;gap:8px}
 .cinema-portrait .narrative-header h1{font-size:1rem;line-height:1.5}
 .cinema-portrait .narrative-header span{font-size:.75rem}
 .cinema-portrait .narrative-header-actions{flex-direction:row;gap:4px}
 .cinema-portrait .narrative-header-actions .icon-button{width:44px;height:44px;min-width:44px;min-height:44px}
 .cinema-portrait:not(.cinema-art-only) .cinema-image{grid-row:2;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;overflow:hidden}
 .cinema-portrait:not(.cinema-art-only) .cinema-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none;animation:none}
 .cinema-portrait:not(.cinema-art-only) .narrative-scroll{position:absolute;inset:auto 12px 0;width:auto;max-height:none;overflow:visible;z-index:2;padding:0 0 calc(10px + env(safe-area-inset-bottom));background:none;pointer-events:none}
 .cinema-portrait .rpg-text-window{margin:0;padding:12px 14px;background:#19131ede;border:1px solid #ccb3be80;box-shadow:0 8px 28px #08060b60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto}
 .cinema-portrait .rpg-text-window{max-height:min(48dvh,max(72px,calc(100dvh - var(--scene-header,110px) - var(--scene-controls,80px) - 24px)));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
 .cinema-portrait .rpg-text-window p{font-size:1rem;line-height:1.6}
 .cinema-portrait .rpg-name{font-size:.875rem;line-height:1.4;margin-bottom:6px}
 .cinema-portrait .narrative-footer{padding:6px 0 0;pointer-events:auto}
 .cinema-portrait .narrative-no-time{display:none}
 .cinema-portrait.cinema-art-only .narrative-shell{padding-top:env(safe-area-inset-top)}
 .cinema-portrait.cinema-art-only .cinema-image img{object-fit:contain;transform:none;animation:none}
 .story-scene-art.mobile-event-art,.night-expanded-art.mobile-event-art,.recovery-art.mobile-event-art{width:100%;height:auto;aspect-ratio:auto;max-height:none}
 .story-scene-art.mobile-event-art>img,.night-expanded-art.mobile-event-art>img,.recovery-art.mobile-event-art>img{position:static;display:block;width:100%;height:auto;aspect-ratio:auto 9/16;object-fit:contain;transform:none}
 dialog.recovery-modal{width:100%;max-width:100%;max-height:100dvh;height:100dvh;margin:0;inset:0;border:0;border-radius:0}
 .recovery-quote{position:static;inset:auto;margin:0;padding:20px 18px;background:#191a28}
}

/* Relationship experiences and preparation rewards use the existing story rhythm. */
.contact-progress{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-block:1rem;color:var(--muted);font-size:.9rem;line-height:1.6}
.contact-progress strong{color:var(--text);font-weight:600}
.keepsake-list{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.6rem}
.keepsake-list li{display:flex;align-items:flex-start;gap:.5rem;line-height:1.7}
.keepsake-list svg{flex:none;width:1rem;margin-top:.3rem}
.experience-reward,.preparation-benefit,.relationship-promise,.referral-note{line-height:1.8;overflow-wrap:anywhere}
.experience-reward{padding:.85rem 1rem;margin:1rem 0;border-left:2px solid var(--pink);background:rgba(224,178,194,.06);font-size:.95rem}
.learned-benefits{margin-block:1.5rem}
.learned-benefits ul{list-style:none;padding:0;display:grid;gap:1rem}
.learned-benefits li{display:grid;gap:.35rem;line-height:1.7}
.learned-benefits li span{color:var(--muted)}
.route-steps .preparation-benefit{margin:.5rem 0;font-size:.9rem;color:var(--muted)}
.relationship-promise{font-size:.9rem;color:var(--muted)}
@media(max-width:480px){.route-steps li{flex-wrap:wrap}.route-steps li>div{min-width:0;flex:1}.route-steps li>b{margin-left:auto}.learned-benefits h2{font-size:1.1rem}}
