/* Continuous reading, with the atmosphere kept behind the original prose. */
.act1-reader{--prose:25px;--paper:#eeeee8;--sea:#b8d6d9;background:#071017}
.act1-reader .hero h1{font:400 clamp(58px,9.5vw,132px)/1.03 Georgia,serif;letter-spacing:-.055em;max-width:1000px;overflow-wrap:break-word;margin-inline:auto}
.act1-reader .hero-desc{max-width:540px;font-size:clamp(18px,2vw,23px)}
.act1-reader .hero-overline{letter-spacing:.2em;font-size:11px;margin-bottom:30px}
.act1-reader .hero-note{font-size:11px;color:#a9b6b9}
.act1-reader .topbar{padding:18px 28px;background:linear-gradient(#030a11e0,#030a1140,transparent)}
.act1-reader .logo{font-weight:500;letter-spacing:.2em}
.act1-reader .tool{background:#07131b9e;backdrop-filter:blur(12px)}
.act1-reader .toc-panel{max-height:70svh;overflow-y:auto;overscroll-behavior:contain}
.act1-reader .section-head{min-height:31svh;padding:100px 28px 55px;gap:14px}
.act1-reader .section-head h2{font-size:clamp(28px,4.3vw,56px);letter-spacing:-.025em}
.act1-reader .section-head span{font-size:10px;letter-spacing:.18em}
.act1-reader .scene:first-child{padding-top:6vh}
.act1-reader .passage{width:min(100% - 54px,690px);min-height:0;padding:clamp(24px,4vh,52px) 0;display:block}
.act1-reader .passage:before{display:none}
.act1-reader .prose{line-height:1.8;text-shadow:0 2px 12px #0009}
.act1-reader .prose p{margin-bottom:1.1em;scroll-margin-top:115px}
.act1-reader .prose p:last-child{margin-bottom:0}
.act1-reader .prose p.is-visible{animation:ink-settle .85s ease-out both}
@keyframes ink-settle{from{opacity:.72;transform:translateY(4px)}to{opacity:1;transform:none}}
.act1-reader .system-line{font-size:clamp(14px,.68em,18px);line-height:1.85;color:#bae0df;background:linear-gradient(90deg,#84bac009,transparent);padding:14px 0 14px 19px;letter-spacing:.01em}
.act1-reader .dialogue{color:#f2e5d6}
.act1-reader .reading-shade{display:block;position:absolute;inset:0;background:linear-gradient(90deg,#02080c0a,#02080cbb calc(50% - 380px),#02080cd9 50%,#02080cbb calc(50% + 380px),#02080c0a);opacity:0;transition:opacity 1.1s}
.act1-reader.is-reading .reading-shade{opacity:1}
.act1-reader .camera{transition:filter 1.8s;animation-duration:50s;filter:saturate(.8)}
.act1-reader .shade{background:linear-gradient(#02091160,transparent 40%,#02091150)}
.act1-reader .fog{opacity:0;transition:opacity 2s}
.act1-reader .reader-fog{position:absolute;inset:20% -10% -5%;width:120%;height:85%;object-fit:cover;mix-blend-mode:screen;opacity:.17;pointer-events:none}
.act1-reader[data-mood="warm"] .camera{filter:saturate(.75) sepia(.08)}
.act1-reader[data-mood="dusk"] .camera{filter:saturate(.65) brightness(.78)}
.act1-reader[data-mood="night"] .camera{filter:saturate(.45) brightness(.45)}
.act1-reader[data-mood="blackout"] .camera{filter:saturate(.1) brightness(.15)}
.act1-reader[data-mood="aftermath"] .camera{filter:saturate(.12) brightness(.4)}
.act1-reader[data-mood="emergency"] .camera{filter:sepia(.8) saturate(1.3) brightness(.55)}
.act1-reader .light-wash{position:absolute;inset:0;opacity:0;transition:opacity 1.5s;background:linear-gradient(110deg,#a30d1e66,transparent 48%,#9a172b44)}
.act1-reader[data-mood="emergency"] .light-wash{opacity:.75;animation:emergency-light 5s ease-in-out infinite}
@keyframes emergency-light{50%{opacity:.38}}
.act1-reader .scene-caption{left:28px;bottom:20px;gap:12px;max-width:calc(100% - 150px);background:#051019bb;padding:9px 12px;border-left:1px solid #bed6db44;border-radius:0 3px 3px 0}
.act1-reader .scene-caption h2{font-size:11px}.act1-reader .caption-counter{font-size:10px}
.act1-reader .ending{min-height:65svh;padding-block:110px}.act1-reader .ending .end-mark{font-size:clamp(30px,4vw,48px)}
.act1-reader .end-links{gap:24px;font-size:14px;line-height:1.6}.act1-reader .next-scene{color:#f0d6b7}
.act1-reader .sound-credits{align-self:center;margin-top:50px}
.act1-reader.focus-mode .reading-shade{opacity:1;background:#061017ed}.act1-reader.focus-mode .scene-caption{display:none}
.act1-reader.effects-off .camera,.act1-reader.focus-mode .camera{animation:none!important}
.act1-reader.effects-off .light-wash,.act1-reader.focus-mode .light-wash{animation:none!important}
.act1-reader.effects-off .prose p,.act1-reader.focus-mode .prose p{animation:none!important}
.act1-reader.page-hidden *{animation-play-state:paused!important}
@media(min-width:1450px){.act1-reader .reading-shade{background:linear-gradient(90deg,transparent,#02080cb8 calc(50% - 430px),#02080ce0 50%,#02080cb8 calc(50% + 430px),transparent)}}
@media(max-width:900px){.act1-reader #sound-label,.act1-reader .optional{display:none}.act1-reader .reading-shade{background:#02080cb8}.act1-reader .topbar{gap:12px;padding:14px 18px}}
@media(max-width:550px){.act1-reader{--prose:21px}.act1-reader .edition{display:none}.act1-reader .topbar{padding:12px;gap:8px}.act1-reader .logo{font-size:18px}.act1-reader .tools{gap:5px}.act1-reader .tool{padding:8px 9px;font-size:11px;min-height:40px}.act1-reader .hero{padding-inline:24px}.act1-reader .hero h1{font-size:clamp(54px,12.8vw,82px)}.act1-reader .hero-desc{font-size:19px}.act1-reader .passage{width:calc(100% - 42px);padding:24px 0}.act1-reader .section-head{min-height:26svh;padding:85px 24px 40px}.act1-reader .reading-shade{background:#02080cc7}.act1-reader .scene-caption{left:14px;bottom:14px}.act1-reader .camera{inset:0}.act1-reader .toc-panel{right:-48px;width:min(280px,90vw)}.act1-reader .settings-panel{right:0;width:min(275px,90vw)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.act1-reader .camera,.act1-reader .prose p,.act1-reader .light-wash{animation:none!important}.act1-reader .backdrop,.act1-reader .camera,.act1-reader .reading-shade{transition:none!important}.act1-reader .reader-fog{display:none}}

/* Text-anchored lighting. The torch overlays prose without blocking selection/scroll. */
.reader-blackout,.reader-flash,.reader-haze{position:fixed;inset:0;pointer-events:none;opacity:0}
.reader-blackout{z-index:7;background:radial-gradient(ellipse 260px 220px at var(--beam-x,50vw) var(--beam-y,52vh),transparent 0%,#02040912 40%,#02040975 65%,#020409ed 100%);transition:opacity .18s ease}
.torch-active .reader-blackout{opacity:1}.torch-wide .reader-blackout{opacity:0}
.reader-flash{z-index:8;background:#d5eaff}
.reader-flash[data-pulse="power-off"]{background:#010206;animation:power-cut .85s ease-out both}
.reader-flash[data-pulse="power-on"]{animation:power-return .9s ease-out both}
.reader-flash[data-pulse="lightning"]{background:radial-gradient(ellipse at 90% 10%,#e1f3ffdd,#92c0e630 65%,transparent);animation:power-return .8s ease-out both}
.reader-flash[data-pulse="blue-flash"]{background:#438bdc;animation:power-return .8s ease-out both}
.reader-flash[data-pulse="impact"]{background:#91a2ac;animation:impact-dust 1s ease-out both}
@keyframes power-cut{0%{opacity:0}12%,42%{opacity:.9}100%{opacity:0}}
@keyframes power-return{0%{opacity:0}14%{opacity:.32}100%{opacity:0}}
@keyframes impact-dust{0%{opacity:0}15%{opacity:.4}100%{opacity:0}}
.reader-haze{z-index:2;background:radial-gradient(ellipse at 20% 85%,#8f9c9a38,transparent 60%),radial-gradient(ellipse at 80% 10%,#9ea8a52a,transparent 65%);transform:scale(1.2)}
[data-visual-state="smoke"] .reader-haze,[data-visual-state="rescue"] .reader-haze{opacity:.7;animation:haze-shift 18s ease-in-out infinite alternate}
@keyframes haze-shift{to{transform:scale(1.3) translate3d(4%,-3%,0)}}
.act1-reader[data-visual-state="blackout"] .camera{filter:brightness(.15) saturate(.3);transition:filter .12s}
.act1-reader[data-visual-state="dim"] .camera{filter:brightness(.5) saturate(.65)}
.act1-reader[data-visual-state="emergency"] .camera{filter:brightness(.57) saturate(.4)}
.act1-reader[data-visual-state="emergency"] .light-wash{opacity:.8;background:linear-gradient(105deg,#c6201855,transparent 45%,#8c0c1660);animation:emergency-light 5s ease-in-out infinite}
.act1-reader[data-visual-state="blue"] .light-wash{opacity:.55;background:radial-gradient(ellipse at 50% 15%,#5d9ce0aa,transparent 75%)}
.act1-reader[data-visual-state="uneasy"] .camera{filter:saturate(.25) brightness(.65)}
.act1-reader[data-visual-state="smoke"] .camera{filter:brightness(.4) saturate(.1)}
.act1-reader[data-visual-state="rescue"] .light-wash{opacity:.4;background:linear-gradient(110deg,#497cbe55,transparent 60%,#913c3430);animation:emergency-light 6s ease-in-out infinite}
.act1-reader.visual-impact .camera{animation:scene-impact .65s ease-out both}
@keyframes scene-impact{0%{transform:translate3d(0,0,0)}18%{transform:translate3d(-6px,3px,0)}40%{transform:translate3d(4px,-2px,0)}70%{transform:translate3d(-2px,1px,0)}100%{transform:none}}
.torch-control{position:fixed;right:25px;bottom:85px;z-index:20;display:flex;flex-direction:column;align-items:flex-end;gap:7px;max-width:calc(100vw - 40px)}
.torch-control[hidden]{display:none}.torch-control button{color:#e7edf0;background:#091620ed;border:1px solid #b5d1d75c;border-radius:5px;padding:12px 17px;font:12px/1.4 "Segoe UI",sans-serif;min-height:44px;cursor:pointer;box-shadow:0 3px 20px #0007}
.torch-control button[aria-pressed="true"]{border-color:#b7dfe5aa}.torch-control span{font:10px/1.4 "Segoe UI",sans-serif;color:#c0cdd0;text-shadow:0 1px 5px #000}
.effects-off .reader-blackout,.effects-off .reader-flash,.effects-off .reader-haze,.focus-mode .reader-blackout,.focus-mode .reader-flash,.focus-mode .reader-haze,[data-archive-open="true"] .reader-blackout{display:none!important}
.act1-reader.effects-off .camera,.act1-reader.focus-mode .camera{filter:saturate(.8)!important}
.act1-reader.effects-off .light-wash,.act1-reader.focus-mode .light-wash{display:none}
@media(max-width:600px){.reader-blackout{background:radial-gradient(ellipse 190px 180px at var(--beam-x,50vw) var(--beam-y,52vh),transparent 0%,#02040912 45%,#02040975 72%,#020409ed 100%)}.torch-control{right:15px;bottom:86px}.torch-control span{max-width:190px;text-align:right}}
@media(prefers-reduced-motion:reduce){.reader-blackout,.reader-flash,.reader-haze,.torch-control{display:none!important}.act1-reader .camera{filter:saturate(.8)!important}.act1-reader .light-wash{display:none}}

/* An editorial contents page, separate from the book's minimal cover. */
.act1-index{margin:0;background:#091116;color:#e8e7e1;font-family:"Segoe UI",system-ui,sans-serif}
.index-backdrop{position:fixed;inset:0;background:linear-gradient(90deg,#071017e8 15%,#071017ad 70%,#07101783),url('../assets/act1/forest.png') center/cover;z-index:-1}
.index-top,.index-main,.index-footer{width:min(1060px,100% - 64px);margin-inline:auto}
.index-top{padding:34px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.index-top>a:last-child{font-size:12px;color:#b0bbbc}
.index-main{padding:68px 0 90px}.index-overline{font-size:10px;letter-spacing:.22em;color:#aab9bc;margin:0 0 30px}
.index-main h1{font:400 clamp(70px,12vw,154px)/.98 Georgia,serif;letter-spacing:-.06em;margin:0}.index-main h1 span{display:block;font-size:.35em;letter-spacing:-.025em;color:#91a4aa;margin-top:16px}
.index-intro{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:42px 0 54px}.index-intro p{font:19px/1.7 Georgia,serif;color:#b7c1c0}.index-intro .start{white-space:nowrap}
.index-scenes{list-style:none;padding:0;margin:0;border-top:1px solid #d2e0dc33}.index-scenes li{border-bottom:1px solid #d2e0dc24}.index-scenes a{display:grid;grid-template-columns:55px 1fr 65px 25px;align-items:center;gap:15px;padding:24px 10px;transition:background .2s,padding .2s}.index-scenes a:hover{padding-left:20px;background:#c3d5d509}.index-number{font-size:11px;color:#8ea3ab;letter-spacing:.06em}.index-title{font:26px/1.25 Georgia,serif;letter-spacing:-.02em}.index-time{font-size:11px;color:#8ea3ab}.index-scenes a>span:last-child{color:#b1c3c6;font-size:19px}
.index-footer{display:flex;gap:30px;flex-wrap:wrap;align-items:center;padding:25px 0 40px;font-size:11px;color:#9caeb3}.index-footer span{margin-left:auto;letter-spacing:.1em}
@media(max-width:600px){.index-top,.index-main,.index-footer{width:calc(100% - 40px)}.index-top{padding-top:24px}.index-top>a:last-child{font-size:11px}.index-main{padding-top:50px}.index-intro{display:block;padding-top:24px}.index-intro .start{margin-top:10px}.index-scenes a{grid-template-columns:28px 1fr 40px 16px;gap:10px;padding:22px 2px}.index-title{font-size:22px}.index-time{font-size:10px}.index-footer{gap:20px}.index-footer span{width:100%;margin-left:0}}
.credits-page{margin:0;background:#091116;color:#e4e7e2;font:17px/1.75 "Segoe UI",sans-serif}.credits-page main{max-width:800px;padding:60px 24px;margin:auto}.credits-page h1{font:42px/1.15 Georgia,serif}.credits-page a{color:#bbd6d8}.credits-page table{border-collapse:collapse;width:100%;margin:35px 0}.credits-page td,.credits-page th{border-bottom:1px solid #34434a;padding:15px 10px;text-align:left}.credits-page td:last-child{white-space:nowrap}
