@charset "UTF-8";
:root{color-scheme:dark;--ink:#09131c;--paper:#f2eee4;--muted:#a7b9c1;--gold:#d8bc86;--line:#d7c18a35;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;--font-scale:1;--accent:#d8bc86}
*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:calc(14px * var(--font-scale));line-height:1.8}button,input,select{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit;background:transparent;border:0;cursor:pointer}button:disabled{cursor:default;opacity:.42}a{color:inherit;text-underline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button[hidden],[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}img{max-width:100%;display:block}::selection{background:#b9975470}.skip-link{position:fixed;top:-70px;left:10px;z-index:200;background:#17232b;padding:10px}.skip-link:focus{top:5px}.loading{display:grid;min-height:80vh;place-items:center;color:var(--gold);letter-spacing:.2em}
.world-backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden;background:#09131c}.world-backdrop>.world-art{width:100%;height:100%;object-fit:cover;animation:world-breathe 32s ease-in-out infinite alternate;filter:saturate(.9)}.world-shade{position:absolute;inset:0;background:linear-gradient(90deg,#04111ccf 0%,#06101a35 65%),linear-gradient(0deg,#071018 1%,#07101800 80%)}#atmosphere{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}@keyframes world-breathe{from{transform:scale(1.02) translateX(-.4%)}to{transform:scale(1.08) translateX(.5%)}}
.topbar{height:88px;padding:0 clamp(20px,4.5vw,80px);display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #ddd4b529;background:#07111c55;backdrop-filter:blur(16px);position:relative;z-index:5}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;text-align:left;padding:4px 0}.brand-mark{width:33px;height:33px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;position:relative;color:var(--gold);font-family:var(--serif)}.brand-mark:before{content:"";position:absolute;width:17px;height:17px;border:1px solid var(--gold);transform:rotate(45deg)}.brand strong{display:block;font:21px var(--serif);letter-spacing:.2em}.brand small{display:block;font-size:8px;color:#b7c6ca;letter-spacing:.26em;margin-top:3px}.nav-links{display:flex;gap:clamp(10px,2vw,34px);align-items:center}.nav-links button{font-size:12px;letter-spacing:.07em;white-space:nowrap;padding:9px 0;position:relative}.nav-links button.active:after{content:"";position:absolute;bottom:0;height:1px;background:var(--gold);left:0;right:0}.nav-icon{border:1px solid var(--line)!important;min-width:40px;height:38px;padding:0 8px!important}.eyebrow{font-size:10px;line-height:1.6;letter-spacing:.25em;color:var(--gold);text-transform:uppercase}.kicker{display:flex;align-items:center;gap:14px}.kicker:before{content:"";width:38px;height:1px;background:var(--gold)}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:49px;padding:12px 25px;text-decoration:none;font-size:13px;letter-spacing:.05em;line-height:1.5;border:1px solid var(--line)}.primary{background:#d9bd86;color:#14202a;border-color:#d9bd86;font-weight:600}.primary:hover{background:#f0d7a6}.secondary{background:#12233080;backdrop-filter:blur(10px)}.secondary:hover{border-color:var(--gold)}.text-link{border-bottom:1px solid var(--line);padding:5px 0;font-size:12px;color:#dfcfaa}.actions{display:flex;gap:13px;flex-wrap:wrap;align-items:center}.small-note{font-size:11px;color:var(--muted);line-height:1.9}.save-state{font-size:9px;color:#a6bbb8;letter-spacing:.03em}.save-state.error{color:#ffb5a3}
.home-hero{min-height:min(760px,calc(100svh - 88px));padding:clamp(65px,10vh,150px) clamp(25px,8vw,150px) 70px;position:relative;display:flex;align-items:center}.hero-copy{max-width:720px}.hero-copy h1{font-size:clamp(48px,7vw,104px);letter-spacing:.14em;line-height:1.45;margin:20px 0 6px}.hero-sub{font:clamp(20px,2.5vw,35px) var(--serif);letter-spacing:.22em;color:#e3d8c0}.hero-copy>p:not(.eyebrow):not(.hero-sub){font-size:14px;line-height:2.3;color:#c9d1d2;margin:24px 0 28px}.hero-foot{display:flex;align-items:center;gap:20px;margin-top:34px}.hero-foot .rule{width:50px;height:1px;background:var(--line)}.hero-count{position:absolute;right:5vw;bottom:65px;text-align:right}.hero-count strong{font:60px var(--serif);color:#e7d1a7;line-height:1}.hero-count span{font:21px var(--serif);color:#8b9da4}.hero-count p{font-size:10px;letter-spacing:.16em;margin-top:12px}.scroll-cue{position:absolute;right:5vw;top:90px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.28em;color:#b4c8d0}.section-wrap{padding:65px clamp(20px,6vw,108px);background:linear-gradient(#07111eee,#08141b)}.section-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:30px}.section-head h2{font-size:32px;letter-spacing:.13em;margin-top:8px}.section-head p{font-size:12px;color:var(--muted);max-width:530px}.chapter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}.chapter-card{display:block;text-align:left;padding:0;min-width:0;transition:transform .3s}.chapter-card:hover{transform:translateY(-5px)}.chapter-art{position:relative;aspect-ratio:1.56;overflow:hidden;background:#142633;border:1px solid #8aa4a12b}.chapter-art img{width:100%;height:100%;object-fit:cover;transition:transform .6s;filter:saturate(.8)}.chapter-card:hover img{transform:scale(1.045);filter:saturate(1)}.chapter-art:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,#08141ca0)}.chapter-number{position:absolute;top:9px;left:12px;font:34px var(--serif);color:#f2e2bd;z-index:1;text-shadow:0 1px 10px #000}.chapter-tag{position:absolute;bottom:9px;right:10px;z-index:1;font-size:9px;letter-spacing:.07em;background:#091723b8;padding:2px 8px;color:#d9d4c3}.chapter-card h3{font-size:20px;letter-spacing:.08em;margin-top:13px}.chapter-card>p{font-size:11px;color:#a1b5bd;line-height:1.85;margin-top:6px}.chapter-progress{height:1px;background:#bfd3d126;margin-top:13px}.chapter-progress span{height:1px;display:block;background:var(--gold)}.chapter-card .eyebrow{font-size:8px;margin-top:7px;letter-spacing:.15em}.feature-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:38px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:55px}.feature-strip h3{font-size:18px;margin-bottom:8px}.feature-strip p{font-size:11px;color:var(--muted)}.legacy-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px}.app-footer{padding:25px 6vw 40px;background:#08141b;font-size:10px;color:#7f9aab;display:flex;justify-content:space-between;gap:24px}.app-footer a{color:#b4c2c4}
.play-view{overflow-x:clip;min-height:calc(100svh - 88px);position:relative;padding:25px clamp(20px,5vw,90px) 0;display:flex;flex-direction:column}.play-top{display:flex;justify-content:space-between;gap:20px;align-items:center;position:relative;z-index:1}.play-title{font:19px var(--serif);letter-spacing:.12em}.play-title small{display:block;font:9px var(--sans);letter-spacing:.2em;color:var(--gold);margin-bottom:5px}.step-nav{display:flex;gap:6px;align-items:center}.step-dot{width:22px;height:20px;padding:9px 0;position:relative}.step-dot:after{content:"";height:2px;position:absolute;left:0;right:0;top:9px;background:#b8c3c340}.step-dot.done:after{background:#aebeaa}.step-dot.current:after{background:var(--gold);height:4px}.step-num{font-size:10px;color:var(--muted);margin-left:10px;white-space:nowrap}.story-stage{position:relative;min-height:calc(100svh - 175px);display:flex;align-items:flex-end;padding:45px 0 40px}.story-stage:before{content:"";position:fixed;inset:40% 0 0;z-index:-1;background:linear-gradient(transparent,#06111cec)}.dialogue-copy{width:min(710px,63%);position:relative;z-index:2;padding-top:22px;text-shadow:0 1px 7px #0005}.speaker-row{display:flex;gap:18px;align-items:center;margin-bottom:17px}.speaker-line{width:38px;height:1px;background:var(--accent)}.speaker-row h2{font-size:29px;letter-spacing:.1em}.speaker-row small{font-size:9px;letter-spacing:.15em;color:var(--accent)}.story-text{font-size:calc(18px * var(--font-scale));line-height:2.15;letter-spacing:.025em;white-space:pre-line;min-height:120px}.dialogue-copy .actions{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);justify-content:space-between}.portrait{background-repeat:no-repeat;background-size:cover;background-position:center;aspect-ratio:2/3}.portrait.atlas{aspect-ratio:543/724;background-size:400% 100%;background-image:none}.story-portrait{position:absolute;right:1vw;bottom:0;width:min(36vw,480px);max-height:calc(100svh - 180px);mask-image:linear-gradient(#000 70%,transparent 99%);filter:drop-shadow(0 20px 20px #0005);pointer-events:none;animation:portrait-in .75s ease-out}.story-stage.narrator .dialogue-copy{width:min(750px,80%)}@keyframes portrait-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.choices{display:grid;gap:8px;margin-top:20px}.choice-button{text-align:left;border:1px solid #cfbc8550;background:#0a1b28c7;padding:13px 17px;font-size:14px;line-height:1.7}.choice-button:hover,.choice-button.selected{border-color:var(--gold);background:#2b3534db}.choice-button:before{content:"◇";margin-right:12px;color:var(--gold)}.choice-response{border-left:2px solid var(--accent);padding:12px 18px;margin-top:18px;background:#0c1c27c4;font-size:15px;line-height:2}.player-tools{display:flex;gap:19px;align-items:center;font-size:11px}.player-tools button{padding:6px 0;color:#c9cabc}.soft-label{font-size:10px;letter-spacing:.06em;color:#a7bcc1}
.explore-view{margin:24px auto 35px;width:100%;max-width:1300px}.explore-intro{display:flex;justify-content:space-between;gap:25px;align-items:end;margin-bottom:15px}.explore-intro h2{font-size:27px;letter-spacing:.12em}.explore-intro p{font-size:12px;color:#bbc8ca;max-width:600px;margin-top:8px}.explore-scene{position:relative;aspect-ratio:16/8;border:1px solid var(--line);background:#0b1c28;overflow:hidden}.explore-scene>.scene-art{width:100%;height:100%;object-fit:cover;animation:world-breathe 24s ease-in-out infinite alternate}.spot{position:absolute;transform:translate(-50%,-50%);padding:10px;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;text-shadow:0 2px 5px #000;z-index:1}.spot-orb{width:17px;height:17px;border:1px solid #ffdf9f;border-radius:50%;background:#fff2bb;box-shadow:0 0 10px #ffe5a4,0 0 30px #ffdb8477;animation:spot-glow 2.5s ease-in-out infinite alternate}.spot small{font-size:10px;white-space:nowrap;background:#071624ce;padding:1px 7px;color:#efe0bd}.spot.found .spot-orb{background:#80b6ac;box-shadow:0 0 12px #80b6ac66;border-color:#b6e7cd}.spot.found small{color:#bfd5c7}.spot.selected{outline:1px solid #e8d39d66;border-radius:4px}@keyframes spot-glow{to{transform:scale(.78);box-shadow:0 0 15px #ffdf9f66}}.explore-bottom{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:25px;margin-top:18px}.spot-list{display:flex;flex-direction:column;gap:6px}.spot-list button{text-align:left;padding:8px 12px;border:1px solid var(--line);font-size:12px;background:#0e2230c9}.spot-list button.found{color:#b7d4ba}.spot-reading{padding:5px 0 0 22px;border-left:1px solid var(--line)}.spot-reading h3{font-size:22px;margin-bottom:7px}.spot-reading p{font-size:14px;line-height:2;color:#d0d9d8}.explore-view>.actions{margin-top:25px;justify-content:space-between}.explore-empty{font-size:13px;color:var(--muted)}
.game-stage{width:min(1100px,100%);margin:25px auto 40px;background:#071520ec;border:1px solid var(--line);box-shadow:0 30px 80px #0005;padding:clamp(15px,3vw,35px);border-radius:3px}.game-context{border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:20px}.game-context h2{font-size:25px;letter-spacing:.07em;margin:6px 0}.game-context p{font-size:12px;line-height:1.9;color:#b8cbd2}.game-result{text-align:center;padding:45px 20px}.game-result h2{font-size:36px;letter-spacing:.16em}.game-result .stars{font-size:33px;color:var(--gold);letter-spacing:.3em;margin:17px 0}.game-result p{font-size:14px;color:#bfcfcf;margin-bottom:24px}.game-result .actions{justify-content:center}.chapter-complete{min-height:calc(100svh - 88px);display:flex;align-items:center;padding:60px 9vw}.complete-copy{max-width:850px}.complete-copy h1{font-size:clamp(32px,5vw,64px);letter-spacing:.12em;line-height:1.55;margin:20px 0}.complete-copy>p:not(.eyebrow){max-width:670px;line-height:2.2;color:#d1d9d7}.complete-stats{display:flex;gap:40px;margin:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.complete-stats span{font-size:11px;color:#a4babc}.complete-stats strong{display:block;font:28px var(--serif);color:var(--gold);margin-top:5px}.complete-copy .actions{margin-top:25px}
.page-view{padding:45px clamp(20px,6vw,100px) 60px;background:linear-gradient(#081721bd,#07131efb);min-height:calc(100svh - 88px)}.page-heading{margin-bottom:32px;display:flex;justify-content:space-between;align-items:end;gap:20px}.page-heading h1{font-size:38px;letter-spacing:.15em;margin-top:10px}.page-heading>p{font-size:12px;color:#b7c4c4;max-width:540px}.cast-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:25px}.cast-card{text-align:left;border-bottom:1px solid var(--line);padding:0 0 20px;overflow:hidden}.cast-card .portrait{width:100%;height:330px;background-position:50% 30%;background-size:cover;mask-image:linear-gradient(#000 70%,transparent 100%)}.cast-card .portrait.atlas{background-size:400% 100%}.cast-card h2{font-size:24px;letter-spacing:.1em;margin-top:10px}.cast-card p{font-size:11px;color:#b5c3c2;margin:5px 0}.cast-card small{color:var(--gold);font-size:10px}.cast-detail{display:grid;grid-template-columns:minmax(160px,.8fr) 1.2fr;gap:25px;align-items:center}.cast-detail .portrait{width:100%;mask-image:linear-gradient(#000 76%,transparent)}.cast-detail h2{font-size:34px;margin:10px 0 15px}.cast-detail blockquote{margin:0 0 20px;font:21px/1.8 var(--serif);color:#e2c89c}.cast-detail p{font-size:13px;line-height:2}.echo{padding:15px 0;margin-top:16px;border-top:1px solid var(--line);color:#d7c798}.reader-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:40px;max-width:1240px;margin:auto}.reader-nav{display:flex;flex-direction:column;gap:3px;align-self:start;position:sticky;top:20px}.reader-nav button{text-align:left;font-size:11px;padding:11px 12px;color:#9eb3bf;border-left:1px solid transparent}.reader-nav button.active{color:#e5cc9c;border-color:var(--gold);background:#27403e55}.reader-nav small{margin-right:9px;font-size:9px;color:#d0b77e}.reader-article{min-width:0}.reader-article>.reader-art{width:100%;aspect-ratio:16/8;object-fit:cover;margin-bottom:25px;border:1px solid var(--line)}.reader-article h1{font-size:32px;line-height:1.6;margin:8px 0 23px}.reader-article .body-copy{white-space:pre-line;font-size:15px;line-height:2.2;color:#d4dddd}.fiction-box{margin-top:25px;border:1px solid var(--line);padding:20px;background:#162a32a0;font-size:12px;line-height:2}.fiction-box strong{display:block;color:var(--gold);margin-bottom:9px}.source-links{margin-top:20px;display:flex;flex-direction:column;gap:8px;font-size:11px}.source-links a{width:fit-content;color:#c6d1ce}.reader-article>.actions{margin-top:30px;border-top:1px solid var(--line);padding-top:23px}.gallery-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:25px}.gallery-tabs button{padding:8px 17px;border:1px solid var(--line);font-size:12px}.gallery-tabs button.active{background:var(--gold);color:#11202a}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.gallery-item{text-align:left;padding:0}.gallery-item img{width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line)}.gallery-item p{margin:9px 0 3px;font-size:13px}.gallery-item small{color:#99b0bb;font-size:10px}.film-card{margin-bottom:35px;background:#0e202bb8;padding:20px;border:1px solid var(--line)}.film-card video{width:100%;max-height:60vh;background:#000}.film-card p{font-size:12px;color:#afc4c5;margin-top:10px}
.modal-backdrop{position:fixed;inset:0;background:#020b14ca;backdrop-filter:blur(12px);z-index:50;display:flex;align-items:center;justify-content:center;padding:25px}.modal{width:min(820px,100%);max-height:calc(100dvh - 50px);background:#0e202c;border:1px solid #cfba855c;display:flex;flex-direction:column;box-shadow:0 20px 120px #000b;overflow:hidden}.modal>header{flex:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 26px;border-bottom:1px solid var(--line)}.modal>header h2{font-size:25px;letter-spacing:.08em}.modal>header button{width:40px;height:40px;font-size:27px}.modal-body{padding:25px 28px 30px;overflow:auto;overscroll-behavior:contain;min-height:0}.modal-body>p{font-size:14px;line-height:2;margin-bottom:15px}.settings-row{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}.settings-row strong{font-size:15px;font-weight:500}.settings-row p{font-size:11px;color:#a9bdc4;max-width:410px;margin-top:4px}.settings-row button{border:1px solid var(--line);padding:8px 12px;min-width:106px;font-size:12px}.settings-name{display:flex;gap:15px;align-items:center;margin-bottom:15px}.settings-name input{background:#071724;border:1px solid var(--line);color:var(--paper);padding:10px;width:min(100%,280px)}.settings-name label{font-size:12px;white-space:nowrap}.settings-save{margin-top:20px}.settings-save .actions{margin-top:17px}.help-grid{display:grid;gap:18px;grid-template-columns:1fr 1fr}.help-grid h3{font-size:19px;color:var(--gold);margin-bottom:6px}.help-grid p{font-size:12px;line-height:1.9;color:#bdced0}.art-modal{width:min(1500px,100%)}.art-modal .modal-body{padding:15px;display:flex;flex-direction:column;align-items:center}.art-modal .gallery-full-art{max-height:calc(100dvh - 195px);width:100%;object-fit:contain}.art-modal p{font-size:11px;margin-top:12px;color:#abbfc3}.art-modal .actions{margin-top:12px;width:100%;justify-content:space-between}.art-modal .actions button{font-size:12px;padding:6px}.film-modal{width:min(1300px,100%)}.film-modal video{width:100%;max-height:70vh;background:#000}.film-modal .small-note{margin:10px 0 0}.modal-bookmarks{display:grid;gap:10px}.modal-bookmarks button{text-align:left;padding:12px 16px;border:1px solid var(--line);font-size:13px}.modal-bookmarks small{display:block;color:#a4bac0}.empty{padding:40px 0;color:#a8bdc5;text-align:center}.intro-copy{padding:15px 0 20px}.intro-copy h2{font-size:31px;letter-spacing:.1em;margin:10px 0 23px}.intro-copy p{font-size:15px;line-height:2.15;margin-bottom:17px}.intro-copy .actions{margin-top:26px}
#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,15px);max-width:min(90vw,650px);padding:13px 23px;background:#203b40f5;border:1px solid #beccae66;box-shadow:0 10px 50px #0006;color:#e7e7d3;font-size:12px;z-index:100;opacity:0;transition:.25s;pointer-events:none;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.error-box{padding:35px;border:1px solid #d28f77;background:#311f1fe0;line-height:2;margin:35px}.error-box pre{white-space:pre-wrap;font-size:12px}.motion-off *{animation:none!important;scroll-behavior:auto!important;transition:none!important}
@media(min-width:1700px){.chapter-grid{gap:35px}.chapter-card h3{font-size:23px}.home-hero{min-height:800px}.dialogue-copy{width:750px}.story-text{font-size:calc(20px * var(--font-scale))}.story-portrait{width:480px;right:5vw}}
@media(max-width:1100px){.chapter-grid{grid-template-columns:repeat(3,1fr)}.hero-count{right:4vw;bottom:35px}.reader-layout{grid-template-columns:190px minmax(0,1fr);gap:25px}.cast-grid{grid-template-columns:repeat(3,1fr)}.nav-links{gap:19px}.topbar{padding-inline:25px}.dialogue-copy{width:67%}.story-portrait{right:-3vw;width:41vw}.cast-card .portrait{height:300px}.gallery-grid{gap:18px}}
@media(max-width:760px){.topbar{height:75px;padding-inline:18px;gap:12px}.brand strong{font-size:17px;letter-spacing:.12em}.brand small{font-size:7px;letter-spacing:.12em}.brand-mark{width:27px;height:27px;flex:none}.brand-mark:before{width:14px;height:14px}.brand{gap:9px}.nav-links{gap:12px}.nav-links button{font-size:10px;letter-spacing:0}.nav-links button[data-ui="gallery"],.nav-links button[data-ui="cast"]{display:none}.nav-icon{min-width:32px;height:32px}.home-hero{padding:70px 7vw 70px;min-height:690px;align-items:start}.hero-copy h1{font-size:59px;letter-spacing:.1em;margin-top:25px}.hero-sub{font-size:25px;letter-spacing:.13em}.hero-copy>p:not(.eyebrow):not(.hero-sub){font-size:13px;max-width:350px;margin-top:25px}.hero-count{right:7vw;bottom:35px}.hero-count strong{font-size:41px}.hero-count span{font-size:17px}.hero-count p{font-size:8px}.hero-foot{max-width:250px;font-size:10px}.scroll-cue{display:none}.section-wrap{padding:40px 5vw}.section-head{display:block}.section-head h2{font-size:29px}.section-head>p{margin-top:15px;font-size:11px}.chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 13px}.chapter-card h3{font-size:18px;letter-spacing:.025em}.chapter-card>p{font-size:10px}.chapter-number{font-size:27px}.chapter-tag{font-size:8px;padding:1px 5px}.feature-strip{grid-template-columns:1fr;gap:23px;margin-top:38px;padding:25px 0}.feature-strip h3{font-size:19px}.app-footer{display:block;font-size:9px}.app-footer p+p{margin-top:10px}.play-view{min-height:calc(100svh - 75px);padding:18px 5vw 0}.play-top{align-items:start;gap:13px}.play-title{font-size:16px}.play-title small{font-size:8px}.step-nav{gap:4px;max-width:42%;flex-wrap:wrap;justify-content:flex-end}.step-dot{width:12px}.step-num{font-size:8px;width:100%;text-align:right;margin-left:0;line-height:1}.story-stage{min-height:calc(100svh - 160px);padding:230px 0 25px}.story-portrait{top:0;bottom:auto;right:-3vw;width:min(63vw,380px);height:370px;mask-image:linear-gradient(#000 45%,transparent 100%);max-height:none}.dialogue-copy{width:100%;padding-top:0}.story-stage.narrator .dialogue-copy{width:100%}.story-stage.narrator{padding-top:200px}.story-text{font-size:calc(16px * var(--font-scale));line-height:2;min-height:0}.speaker-row{margin-bottom:13px}.speaker-row h2{font-size:25px}.speaker-row small{font-size:8px}.speaker-line{width:23px}.dialogue-copy .actions{margin-top:20px;padding-top:16px}.player-tools{gap:13px;font-size:10px}.primary,.secondary{padding:12px 19px;gap:18px;font-size:12px}.choice-button{font-size:13px;padding:10px 13px}.choice-response{font-size:13px}.explore-view{margin-top:23px}.explore-intro{display:block}.explore-intro h2{font-size:23px}.explore-intro p{font-size:11px}.explore-scene{aspect-ratio:4/3}.spot small{font-size:8px;max-width:100px;white-space:normal;line-height:1.5}.spot{padding:5px}.spot-orb{width:13px;height:13px}.explore-bottom{grid-template-columns:1fr;gap:17px}.spot-list{flex-direction:row;flex-wrap:wrap}.spot-list button{flex:1;font-size:10px;min-width:80px;padding:8px}.spot-reading{padding-left:15px}.spot-reading h3{font-size:20px}.spot-reading p{font-size:13px}.explore-view>.actions{align-items:start}.game-stage{margin:22px auto 25px;padding:14px}.game-context h2{font-size:23px}.game-context p{font-size:11px}.game-result h2{font-size:29px}.game-result{padding:30px 3px}.game-result p{font-size:12px}.page-view{padding:35px 5vw}.page-heading{display:block}.page-heading h1{font-size:31px}.page-heading>p{margin-top:15px;font-size:11px}.cast-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.cast-card .portrait{height:280px}.cast-card h2{font-size:21px}.cast-card p{font-size:10px}.reader-layout{grid-template-columns:1fr;gap:24px}.reader-nav{position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:3px}.reader-nav button{font-size:10px;line-height:1.6;padding:8px}.reader-nav small{margin-right:4px;font-size:8px}.reader-article h1{font-size:28px}.reader-article .body-copy{font-size:14px}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:22px 12px}.gallery-item p{font-size:11px}.gallery-item small{font-size:9px}.chapter-complete{padding:45px 7vw;min-height:calc(100svh - 75px)}.complete-stats{gap:24px}.complete-stats span{font-size:9px}.complete-stats strong{font-size:23px}.complete-copy>p:not(.eyebrow){font-size:13px}.modal-backdrop{padding:12px}.modal{max-height:calc(100dvh - 24px)}.modal>header{padding:13px 16px}.modal>header h2{font-size:21px}.modal-body{padding:20px 18px}.cast-detail{gap:15px;grid-template-columns:1fr}.cast-detail>.portrait{max-height:340px;width:220px;margin:auto}.cast-detail h2{font-size:28px}.cast-detail blockquote{font-size:19px}.settings-row{gap:15px}.settings-row strong{font-size:13px}.settings-row p{font-size:10px}.settings-row button{min-width:87px;font-size:10px;padding:8px}.settings-name{display:block}.settings-name input{margin-top:8px;width:100%}.help-grid{grid-template-columns:1fr}.art-modal .gallery-full-art{max-height:calc(100dvh - 220px)}.art-modal p{font-size:10px}.intro-copy h2{font-size:27px}.intro-copy p{font-size:14px}}
@media(max-width:390px){.brand strong{font-size:15px}.brand-mark{display:none}.nav-links{gap:11px}.nav-links button{font-size:9px}.hero-copy h1{font-size:49px}.hero-sub{font-size:22px}.home-hero{min-height:640px}.home-hero .actions{gap:10px}.hero-count strong{font-size:34px}.hero-foot{max-width:190px}.hero-foot .rule{width:20px;flex:none}.chapter-card h3{font-size:16px}.chapter-art{aspect-ratio:1.3}.chapter-tag{font-size:7px}.chapter-card>p{font-size:9px}.cast-card .portrait{height:230px}.cast-card h2{font-size:18px}.story-stage{padding-top:185px}.story-portrait{height:310px}.story-text{font-size:calc(15px * var(--font-scale))}.player-tools{gap:9px}.step-dot{width:10px}.play-title{font-size:14px}.complete-stats{gap:16px}.primary,.secondary{font-size:11px;padding:11px 16px}.reader-nav button{font-size:9px}.game-context h2{font-size:21px}}
@media(max-height:600px) and (min-width:761px){.topbar{height:65px}.home-hero{min-height:650px}.story-stage{min-height:550px}.story-portrait{max-height:500px}.play-view{min-height:calc(100svh - 65px)}.modal-backdrop{padding:12px}.modal{max-height:calc(100dvh - 24px)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Reading size follows the same preference as dialogue. */
.reader-article .body-copy{font-size:calc(15px * var(--font-scale))}
@media(max-width:760px){.reader-article .body-copy{font-size:calc(14px * var(--font-scale))}}

.game-stage.is-playing{padding:0;background:transparent;border:0;box-shadow:none}
