:root{--ink:#ece8df;--ink-strong:#fffdf7;--ink-muted:#85878a;--ink-faint:#777a7e;--coal:#08090a;--coal-raised:#111315;--coal-soft:#17191c;--blood:#8f2731;--blood-bright:#d45a52;--line:#ece8df21;--line-strong:#ece8df47;--font-display:"Iowan Old Style", "Baskerville", "Palatino Linotype", Palatino, Georgia, serif;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--font-scale:1}
*{box-sizing:border-box}
html,body{width:100%;min-height:100%;color:var(--ink);background:#030405;margin:0}
body{font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow:hidden}
button,input{font:inherit}
button{color:inherit}
button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blood-bright);outline-offset:3px}
button:disabled{cursor:not-allowed}
::selection{color:var(--ink-strong);background:#8f2731bf}
.boot-screen{width:100%;height:100vh;background:#050607;place-items:center;height:100dvh;display:grid}
.boot-mark{color:var(--blood-bright);font:500 11px/1 var(--font-mono);letter-spacing:.32em;animation:1.5s ease-in-out infinite signal}
.app-frame{width:100%;height:100vh;isolation:isolate;background:radial-gradient(circle at 22% 32%,#6f27300e,#0000 25%),linear-gradient(#ffffff03 1px,#0000 1px) 0 0/64px 64px,linear-gradient(90deg,#ffffff03 1px,#0000 1px) 0 0/64px 64px,#030405;place-items:center;height:100dvh;display:grid;position:relative;overflow:hidden}
.outer-archive{pointer-events:none;color:#ece8df3d;font:500 9px/1.65 var(--font-mono);letter-spacing:.12em;position:absolute;inset:0}
.outer-archive:before,.outer-archive:after{content:"";border:1px solid #ece8df06;border-radius:50%;width:min(30vw,430px);height:min(30vw,430px);position:absolute}
.outer-archive:before{background:repeating-radial-gradient(circle,#0000 0 47px,#ece8df05 48px 49px);top:7vh;left:-8vw}
.outer-archive:after{bottom:-18vh;right:-12vw}
.archive-stamp{color:#cb4c588c;border:1px solid #8f27318f;padding:11px 14px;position:absolute;top:28%;left:clamp(28px,7vw,120px);transform:rotate(-7deg)}
.archive-coordinate{position:absolute}
.archive-coordinate-a{color:#cb4c586b;top:51%;left:2.5vw}
.archive-coordinate-b{text-align:right;bottom:6vh;right:3vw}
.novel-shell{z-index:1;width:min(100%,480px);height:100vh;isolation:isolate;height:100dvh;color:var(--ink);background:radial-gradient(at 51% 46%,#690f171a,#0000 16%),linear-gradient(#090a0b 0%,#070809 47%,#050607 100%);position:relative;overflow:hidden;box-shadow:0 30px 100px #000000ad}
.novel-shell:before{content:"";z-index:-2;opacity:.58;background:linear-gradient(90deg,#0000 49.8%,#8f273124 50%,#0000 50.2%),radial-gradient(at 50% 52%,#8f27311f,#0000 8%);transition:opacity .6s;position:absolute;inset:0}
.novel-shell[data-chapter=P]:before,.novel-shell[data-chapter="7"]:before{opacity:.92}
.novel-shell:after{content:"";z-index:20;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 110px #000000b8,inset 0 0 0 1px #ece8df1f}
.screen-noise,.screen-grid{pointer-events:none;position:absolute;inset:0}
.screen-noise{z-index:4;opacity:.07;mix-blend-mode:screen;background:repeating-radial-gradient(circle at 37% 29%,#0000 0 1px,#ffffff3d 1.5px 2px,#0000 2.5px 5px) 0 0/89px 103px,repeating-linear-gradient(93deg,#0000 0 3px,#ffffff14 4px,#0000 5px 9px) 0 0/127px 100%;animation:.72s steps(2,end) infinite grain}
.screen-grid{z-index:-1;opacity:.35;background:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(#0003,#0000 68%);mask-image:linear-gradient(#0003,#0000 68%)}
.title-screen,.game-screen,.credits-screen{z-index:5;width:100%;height:100%;min-height:0;animation:.54s cubic-bezier(.22,1,.36,1) both scene-in;position:relative}
.title-screen{overscroll-behavior:contain;scrollbar-width:none;padding:max(20px, env(safe-area-inset-top)) 24px max(18px, env(safe-area-inset-bottom));flex-direction:column;display:flex;overflow-y:auto}
.title-screen::-webkit-scrollbar{display:none}
.credits-screen::-webkit-scrollbar{display:none}
.title-topline,.credits-index{min-height:44px;color:var(--ink-muted);font:600 9px/1 var(--font-mono);letter-spacing:.22em;border-bottom:1px solid #8f273161;justify-content:space-between;align-items:center;padding-bottom:14px;display:flex}
.title-copy{flex-direction:column;flex:auto;justify-content:center;min-height:300px;padding:34px 0 16px;display:flex;position:relative}
.title-copy:before{content:"B17";color:#ece8df06;font:500 clamp(100px, 36vw, 180px)/.8 var(--font-display);letter-spacing:-.09em;position:absolute;top:24%;right:-7px}
.eyebrow{color:var(--blood-bright);font:650 10px/1.35 var(--font-ui);letter-spacing:.22em;text-transform:uppercase;margin:0 0 12px}
.title-copy h1,.credits-copy h1{color:var(--ink-strong);font:500 clamp(47px, 13.5vw, 66px)/.91 var(--font-display);letter-spacing:-.045em;text-wrap:balance;overflow-wrap:anywhere;margin:0;position:relative}
.title-rule{background:var(--line-strong);width:100%;height:1px;margin:27px 0 20px}
.title-rule span{background:var(--blood-bright);width:23%;height:1px;margin-left:41%;display:block}
.title-tagline{color:#a8a49c;font:400 16px/1.55 var(--font-display);margin:0}
.title-actions,.credits-actions{flex:none;gap:8px;display:grid}
.primary-action,.menu-action{border:1px solid var(--line);width:100%;min-height:62px;color:var(--ink);text-align:left;cursor:pointer;background:#08090abd;border-radius:0;grid-template-columns:46px 1fr;align-items:center;gap:12px;padding:8px 13px;transition:border-color .18s,background .18s,transform .18s;display:grid}
.primary-action{background:linear-gradient(90deg,#8f273130,#08090ad6 44%);border-color:#8f2731a8;min-height:70px}
.primary-action:hover,.menu-action:hover{background-color:#17191ce6;border-color:#ece8df57}
.primary-action:active,.menu-action:active{transform:scale(.99)}
.primary-action>span:first-child,.menu-action .action-index{border-right:1px solid var(--line);width:42px;height:42px;color:var(--blood-bright);font:600 9px/1 var(--font-mono);letter-spacing:.12em;place-items:center;display:grid}
.primary-action svg{width:19px;height:19px}
.primary-action strong,.menu-action strong{font:560 15px/1.2 var(--font-ui);margin-bottom:3px;display:block}
.primary-action small,.menu-action small{color:var(--ink-muted);font:450 10px/1.25 var(--font-ui);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}
.title-footer{color:var(--ink-faint);font:550 8px/1.2 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;padding-top:15px;display:flex}
.game-screen{padding:max(12px, env(safe-area-inset-top)) 22px max(16px, env(safe-area-inset-bottom));cursor:pointer;flex-direction:column;display:flex}
.art-stage,.scene-art-layer,.character-art-layer,.art-scrim{pointer-events:none;position:absolute;inset:0}
.art-stage{z-index:0;animation:.52s both scene-in;overflow:hidden}
.scene-art-layer{background-position:50%;background-repeat:no-repeat;background-size:cover}
.character-art-layer{filter:saturate(.86)contrast(1.04);background-position:bottom;background-repeat:no-repeat;background-size:contain;top:9%}
.art-scrim{background:linear-gradient(#05060714 20%,#05060747 55%,#050607f5 88%),radial-gradient(#0000 30%,#0506077a 100%)}
.game-hud{z-index:10;border-bottom:1px solid #8f27314d;grid-template-columns:46px 1fr auto;align-items:center;gap:10px;min-height:55px;display:grid;position:relative}
.icon-button{color:#c9c6be;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;padding:0;transition:color .16s,background .16s;display:grid}
.icon-button:hover,.icon-button.is-active{color:var(--ink-strong);background:#ece8df14}
.icon-button.is-active{color:var(--blood-bright)}
.icon-button svg{width:22px;height:22px}
.hud-case{min-width:0;color:var(--ink-muted);font:600 8px/1 var(--font-mono);letter-spacing:.19em;justify-content:space-between;align-items:baseline;gap:8px;display:flex}
.hud-case span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.hud-case strong{color:var(--blood-bright);font:inherit;letter-spacing:.08em}
.hud-actions{display:flex}
.progress-track{background:0 0;height:1px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}
.progress-track span{background:var(--blood-bright);height:100%;transition:width .45s;display:block}
.scene-index{top:max(86px, calc(env(safe-area-inset-top) + 74px));color:#ece8df52;font:500 7px/1.4 var(--font-mono);letter-spacing:.12em;justify-content:space-between;display:flex;position:absolute;left:22px;right:22px}
.scene-heading{color:#ece8df3d;text-align:center;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;top:22%;left:22px;right:22px}
.scene-heading:before,.scene-heading:after{content:"";border-top:1px solid #ece8df2e;border-left:1px solid #ece8df2e;width:7px;height:7px;margin:11px 0}
.scene-heading:after{transform:rotate(180deg)}
.scene-heading span{font:550 8px/1.3 var(--font-ui);letter-spacing:.23em;text-transform:uppercase;margin-bottom:9px}
.scene-heading strong{color:#ece8df17;max-width:330px;font:500 clamp(28px, 8.5vw, 42px)/1.02 var(--font-display)}
.text-stage{z-index:8;overscroll-behavior:contain;border-left:1px solid var(--blood);cursor:pointer;scrollbar-width:none;width:100%;max-height:min(58vh,500px);margin-top:auto;margin-bottom:52px;padding:19px 5px 19px 19px;animation:.34s cubic-bezier(.22,1,.36,1) both copy-in;position:relative;overflow-y:auto}
.text-stage::-webkit-scrollbar{display:none}
.history-list::-webkit-scrollbar{display:none}
.choice-list::-webkit-scrollbar{display:none}
.overlay-panel::-webkit-scrollbar{display:none}
.speaker-name,.location-kicker{color:var(--blood-bright);font:650 calc(10px * var(--font-scale))/1.4 var(--font-ui);letter-spacing:.22em;text-transform:uppercase;margin:0 0 10px}
.speaker-name:after{content:"";background:var(--blood-bright);width:38px;height:1px;margin-top:9px;display:block}
.dialogue-text,.narration-text,.quote-text,.intertitle-text,.title-block-text{color:var(--ink);text-wrap:pretty;margin:0}
.dialogue-text{font:450 calc(clamp(24px, 7.2vw, 31px) * var(--font-scale))/1.24 var(--font-display);letter-spacing:-.015em}
.narration-text{color:#d6d1c7;font:430 calc(clamp(20px, 5.8vw, 25px) * var(--font-scale))/1.42 var(--font-display)}
.quote-text{color:#ddd7cb;font:italic 450 calc(clamp(22px, 6.3vw, 28px) * var(--font-scale))/1.36 var(--font-display)}
.intertitle-text,.title-block-text{color:var(--ink-strong);font:500 calc(clamp(31px, 9vw, 43px) * var(--font-scale))/1.05 var(--font-display)}
.location-kicker{color:#b9b4aa;margin-top:18px}
.typing-caret{vertical-align:-.04em;background:var(--blood-bright);width:1px;height:.84em;margin-left:3px;animation:.7s step-end infinite blink;display:inline-block}
.text-stage:not(.is-typing) .typing-caret{display:none}
.continue-hint{z-index:9;color:var(--ink-muted);font:550 8px/1 var(--font-ui);letter-spacing:.19em;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:220px;min-height:44px;padding:4px 8px;display:flex;position:absolute;bottom:max(8px,env(safe-area-inset-bottom));left:22px}
.continue-hint:focus-visible{outline:2px solid var(--blood-bright);outline-offset:2px}
.continue-hint svg{width:17px;height:17px;color:var(--blood-bright);animation:1.7s ease-in-out infinite continue-pulse}
.choice-sheet{z-index:12;max-height:calc(100% - 75px);padding:24px 22px max(20px, env(safe-area-inset-bottom));cursor:default;background:linear-gradient(#0c0d0ef7,#050607fe);border-top:1px solid #ece8df3d;flex-direction:column;animation:.42s cubic-bezier(.22,1,.36,1) both sheet-in;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -30px 70px #000000a6}
.choice-sheet.is-critical{border-top-color:#cb4c58bd}
.choice-heading{flex:none;margin-bottom:16px}
.choice-heading span{color:var(--blood-bright);font:650 8px/1.2 var(--font-mono);letter-spacing:.22em}
.choice-heading h2{color:var(--ink-strong);font:500 clamp(26px, 7vw, 34px)/1.05 var(--font-display);margin:7px 0 0}
.choice-list{overscroll-behavior:contain;scrollbar-width:none;grid-auto-rows:max-content;align-content:start;gap:7px;min-height:0;display:grid;overflow-y:auto}
.choice-button{border:1px solid var(--line);width:100%;min-height:58px;color:var(--ink);text-align:left;cursor:pointer;background:#121416b8;grid-template-columns:42px 1fr;align-items:center;gap:11px;padding:9px 12px 9px 8px;transition:border-color .15s,background .15s,transform .15s;display:grid}
.choice-button:hover{background:#1a1c1feb;border-color:#ece8df57}
.choice-button:active{transform:scale(.992)}
.choice-number{border-right:1px solid var(--line);height:34px;color:var(--blood-bright);font:600 8px/1 var(--font-mono);letter-spacing:.1em;place-items:center;display:grid}
.choice-copy strong{font:530 13px/1.33 var(--font-ui);display:block}
.choice-copy small{color:#8a8580;font:480 9px/1.3 var(--font-ui);align-items:center;gap:5px;margin-top:5px;display:flex}
.choice-copy small svg{width:12px;height:12px}
.choice-button.is-locked{color:#7d7a74;background:#0c0d0e80;border-color:#ece8df12}
.choice-button.is-red-button{background:radial-gradient(circle at 12%,#cb4c5847,#0000 38%),#2a0a0e80;border-color:#cb4c58bd;min-height:68px}
.choice-button.is-red-button .choice-copy strong{color:#ffe6e7;letter-spacing:.08em;font-weight:650}
.game-shortcuts{z-index:6;color:#ece8df33;font:500 7px/1 var(--font-mono);letter-spacing:.05em;pointer-events:none;gap:12px;display:flex;position:absolute;bottom:14px;right:23px}
.choice-sheet+.game-shortcuts{display:none}
.story-toast{z-index:40;top:max(82px, calc(env(safe-area-inset-top) + 65px));border:1px solid var(--line-strong);color:#d9d5cc;min-width:230px;max-width:calc(100% - 46px);font:520 10px/1.35 var(--font-ui);text-align:center;background:#0a0b0cf5;align-items:center;gap:10px;padding:11px 15px;animation:.24s both toast-in;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #00000073}
.story-toast span{background:var(--blood-bright);border-radius:50%;flex:none;width:6px;height:6px;box-shadow:0 0 12px #cb4c58cc}
.overlay-backdrop{z-index:50;padding-top:max(18px, env(safe-area-inset-top));-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#020304b8;align-items:flex-end;animation:.18s both fade-in;display:flex;position:absolute;inset:0}
.overlay-panel{width:100%;min-height:46%;max-height:92%;padding:0 22px max(18px, env(safe-area-inset-bottom));border-top:1px solid var(--line-strong);background:linear-gradient(#101214fc,#060708fe);flex-direction:column;animation:.36s cubic-bezier(.22,1,.36,1) both sheet-in;display:flex;overflow:hidden;box-shadow:0 -30px 80px #000000b3}
.overlay-settings,.overlay-save,.overlay-dossier,.overlay-endings,.overlay-history{height:86%}
.overlay-header{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;min-height:78px;display:flex}
.overlay-header span{color:var(--blood-bright);font:600 8px/1 var(--font-mono);letter-spacing:.2em;margin-bottom:5px;display:block}
.overlay-header h2{color:var(--ink-strong);font:500 27px/1 var(--font-display);margin:0}
.overlay-menu{gap:5px;padding:15px 0 4px;display:grid;overflow-y:auto}
.overlay-menu>button{border:0;border-bottom:1px solid var(--line);min-height:59px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;grid-template-columns:38px 1fr;align-items:center;gap:11px;padding:7px 8px;display:grid}
.overlay-menu>button:hover{background:#ece8df09}
.overlay-menu svg{width:20px;height:20px;color:var(--blood-bright)}
.overlay-menu strong,.overlay-menu small{display:block}
.overlay-menu strong{font:550 14px/1.25 var(--font-ui)}
.overlay-menu small{color:var(--ink-muted);font:450 9px/1.25 var(--font-ui);margin-top:3px}
.history-list,.settings-list,.save-list,.dossier-view,.endings-grid{overscroll-behavior:contain;scrollbar-width:none;min-height:0;overflow-y:auto}
.history-list{-webkit-user-select:text;user-select:text;padding:12px 0 30px}
.history-list article{border-bottom:1px solid var(--line);padding:15px 2px 16px}
.history-list article>span{color:var(--ink-faint);font:520 7px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;display:block}
.history-list article strong{color:var(--blood-bright);font:650 9px/1.2 var(--font-ui);letter-spacing:.17em;margin-bottom:5px;display:block}
.history-list article p{color:#d7d2c8;font:450 18px/1.42 var(--font-display);margin:0}
.empty-state{color:var(--ink-muted);text-align:center;font:450 14px/1.5 var(--font-ui);padding:60px 16px}
.settings-list{padding:9px 0 24px}
.setting-row,.range-setting{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;min-height:74px;padding:12px 2px;display:flex;position:relative}
.setting-row strong,.setting-row small,.range-setting strong,.range-setting small{display:block}
.setting-row strong,.range-setting strong{color:var(--ink);font:550 13px/1.25 var(--font-ui)}
.setting-row small,.range-setting small{color:var(--ink-muted);font:450 9px/1.35 var(--font-ui);margin-top:4px}
.setting-row input{opacity:0;cursor:pointer;width:44px;height:44px;position:absolute;right:0}
.switch{border:1px solid var(--line-strong);background:#090a0b;border-radius:20px;flex:none;width:44px;height:24px;position:relative}
.switch span{background:#73736f;border-radius:50%;width:16px;height:16px;transition:transform .18s,background .18s;position:absolute;top:3px;left:3px}
.setting-row input:checked+.switch{border-color:#cb4c58a6}
.setting-row input:focus-visible+.switch{outline:2px solid var(--blood-bright);outline-offset:3px}
.setting-row input:checked+.switch span{background:var(--blood-bright);transform:translate(20px)}
.range-setting{grid-template-columns:minmax(0,1fr) 140px;display:grid}
.range-setting input[type=range]{width:100%;min-height:44px;accent-color:var(--blood-bright)}
.save-list{align-content:start;gap:9px;padding:14px 0 24px;display:grid}
.save-card,.autosave-card{border:1px solid var(--line);background:#ece8df06;padding:15px}
.autosave-card{border-color:#8f27316b}
.save-card span,.autosave-card span{color:var(--blood-bright);font:600 7px/1 var(--font-mono);letter-spacing:.16em;margin-bottom:7px;display:block}
.save-card strong,.save-card small,.autosave-card strong,.autosave-card small{display:block}
.save-card strong,.autosave-card strong{color:var(--ink);font:530 13px/1.3 var(--font-ui);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.save-card small,.autosave-card small{color:var(--ink-muted);font:450 9px/1.2 var(--font-ui);margin-top:4px}
.save-actions{gap:6px;margin-top:13px;display:flex}
.save-actions button,.confirm-view button{border:1px solid var(--line-strong);min-height:44px;color:var(--ink);cursor:pointer;font:520 10px/1 var(--font-ui);background:0 0;padding:0 13px}
.save-actions button:hover,.confirm-view button:hover{background:#ece8df0d;border-color:#ece8df85}
.save-actions .text-button{color:var(--ink-muted);border-color:#0000;margin-left:auto}
.dossier-view{padding:14px 0 26px}
.dossier-summary{border:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-bottom:13px;display:grid}
.dossier-summary div{text-align:center;border-right:1px solid var(--line);padding:15px 8px}
.dossier-summary div:last-child{border-right:0}
.dossier-summary span,.dossier-summary small{display:block}
.dossier-summary span{color:var(--ink-strong);font:500 28px/1 var(--font-display)}
.dossier-summary small{color:var(--ink-muted);font:500 7px/1.3 var(--font-ui);text-transform:uppercase;margin-top:5px}
.evidence-list{gap:5px;display:grid}
.evidence-list article{color:#7d807f;border:1px dashed #ece8df1a;grid-template-columns:40px 1fr;align-items:center;gap:10px;min-height:58px;padding:9px 11px;display:grid}
.evidence-list article>span{color:var(--ink-faint);font:600 8px/1 var(--font-mono)}
.evidence-list article strong,.evidence-list article small{display:block}
.evidence-list article strong{font:520 12px/1.2 var(--font-ui)}
.evidence-list article small{color:var(--ink-faint);font:500 8px/1 var(--font-mono);letter-spacing:.08em;margin-top:4px}
.evidence-list article.is-found{color:#d5d1c8;background:#8f27310f;border-style:solid;border-color:#8f273161}
.evidence-list article.is-found>span,.evidence-list article.is-found small{color:var(--blood-bright)}
.endings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;padding:14px 0 26px;display:grid}
.endings-grid article{min-height:116px;color:var(--ink-faint);background:#ece8df03;border:1px dashed #ece8df1c;flex-direction:column;justify-content:space-between;padding:12px;display:flex}
.endings-grid article>span{font:500 24px/1 var(--font-display);align-self:flex-end}
.endings-grid small,.endings-grid strong{display:block}
.endings-grid small{font:550 7px/1 var(--font-mono);letter-spacing:.1em;margin-bottom:5px}
.endings-grid strong{font:500 12px/1.28 var(--font-ui);overflow-wrap:anywhere}
.endings-grid article.is-unlocked{color:var(--ink);background:linear-gradient(135deg,#8f27311c,#0000 55%);border-style:solid;border-color:#8f27317a}
.endings-grid article.is-unlocked>span,.endings-grid article.is-unlocked small{color:var(--blood-bright)}
.overlay-confirm-new,.overlay-confirm-delete{min-height:0;padding-bottom:max(22px, env(safe-area-inset-bottom))}
.confirm-view{padding:22px 0 2px}
.confirm-view p{color:#bbb6ac;font:450 16px/1.48 var(--font-display);margin:0 0 20px}
.confirm-view>div{grid-template-columns:1fr 1fr;gap:8px;display:grid}
.confirm-view .danger-action{color:#ffe7e8;background:#8f273129;border-color:#cb4c58ad}
.credits-screen{overscroll-behavior:contain;scrollbar-width:none;padding:max(20px, env(safe-area-inset-top)) 24px max(20px, env(safe-area-inset-bottom));flex-direction:column;display:flex;overflow-y:auto}
.credits-copy{flex-direction:column;flex:auto;justify-content:center;padding:20px 0;display:flex;position:relative}
.credits-copy h1{font-size:clamp(45px,12vw,62px)}
.credits-copy>p{color:#aaa69e;max-width:340px;font:450 17px/1.5 var(--font-display);margin:25px 0 0}
.ending-mark{color:#cb4c5829;width:116px;height:116px;font:500 70px/1 var(--font-display);border:1px solid #8f273152;border-radius:50%;place-items:center;display:grid;position:absolute;top:19%;right:-2px;transform:rotate(9deg)}
.is-high-contrast{--ink:#fff;--ink-strong:#fff;--ink-muted:#c8c8c8;--ink-faint:#b5b5b5;--line:#ffffff47;--line-strong:#ffffff8f;--blood-bright:#ff6c76}
.is-reduced-motion *,.is-reduced-motion :before,.is-reduced-motion :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}
@keyframes scene-in{0%{opacity:0;transform:translateY(7px)}
to{opacity:1;transform:none}
}
@keyframes copy-in{0%{opacity:0;transform:translateY(9px)}
to{opacity:1;transform:none}
}
@keyframes sheet-in{0%{opacity:0;transform:translateY(28px)}
to{opacity:1;transform:none}
}
@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}
to{opacity:1;transform:translate(-50%)}
}
@keyframes fade-in{0%{opacity:0}
to{opacity:1}
}
@keyframes continue-pulse{0%,to{opacity:.35;transform:translateY(0)}
50%{opacity:1;transform:translateY(4px)}
}
@keyframes signal{0%,to{opacity:.32}
50%{opacity:1}
}
@keyframes blink{0%,45%{opacity:1}
46%,to{opacity:0}
}
@keyframes grain{0%{transform:translate(0)}
25%{transform:translate(1px,-1px)}
50%{transform:translate(-1px,1px)}
75%{transform:translate(1px,1px)}
}
@media (min-width:620px){.novel-shell{border:1px solid #ece8df38;border-radius:27px;width:min(480px,54dvh - 16.2px);height:min(900px,100dvh - 30px)}
.title-copy h1,.credits-copy h1{font-size:clamp(47px,8dvh,66px)}
.novel-shell:after{border-radius:27px}
.title-screen,.game-screen,.credits-screen,.overlay-backdrop{border-radius:26px}
}
@media (max-width:619px){.outer-archive{display:none}
.novel-shell:after{box-shadow:inset 0 0 90px #0000009e}
}
@media (max-height:700px){.title-copy{min-height:240px;padding-top:24px}
.title-copy h1{font-size:clamp(42px,12vw,54px)}
.title-rule{margin:19px 0 14px}
.title-actions{gap:5px}
.primary-action,.menu-action{min-height:56px}
.title-footer,.game-shortcuts{display:none}
.scene-heading{top:20%}
.choice-sheet{max-height:calc(100% - 60px);padding-top:17px}
.choice-heading{margin-bottom:10px}
.choice-heading h2{font-size:25px}
.choice-button{min-height:53px}
}
@media (orientation:portrait) and (max-height:560px){.title-screen,.credits-screen{padding:max(10px, env(safe-area-inset-top)) 18px max(10px, env(safe-area-inset-bottom))}
.title-topline,.credits-index{min-height:34px;padding-bottom:8px}
.title-copy{min-height:150px;padding:11px 0 7px}
.eyebrow{margin-bottom:7px;font-size:8px}
.title-copy h1,.credits-copy h1{font-size:clamp(38px,12vw,48px)}
.title-rule{margin:12px 0 9px}
.title-tagline,.credits-copy>p{font-size:14px}
.title-actions,.credits-actions{gap:4px}
.primary-action,.menu-action{grid-template-columns:38px 1fr;gap:8px;min-height:48px;padding:5px 9px}
.primary-action{min-height:52px}
.primary-action>span:first-child,.menu-action .action-index{width:36px;height:36px}
}
@media (orientation:landscape) and (max-height:520px){.app-frame{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
.novel-shell{border:1px solid #ece8df38;border-radius:18px;width:min(920px,100% - 16px);height:calc(100dvh - 16px)}
.novel-shell:after,.title-screen,.game-screen,.credits-screen,.overlay-backdrop{border-radius:17px}
.title-screen,.credits-screen{padding:max(10px, env(safe-area-inset-top)) 20px max(10px, env(safe-area-inset-bottom));grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) minmax(250px,.9fr);column-gap:24px;display:grid}
.title-topline,.credits-index{grid-column:1/-1;min-height:34px;padding-bottom:8px}
.title-copy,.credits-copy{grid-area:2/1;min-height:0;padding:8px 0}
.title-copy h1,.credits-copy h1{font-size:clamp(39px,7vw,58px)}
.title-copy:before{font-size:clamp(80px,20vw,145px);top:18%}
.eyebrow{margin-bottom:7px;font-size:8px}
.title-rule{margin:13px 0 9px}
.title-tagline,.credits-copy>p{margin-top:10px;font-size:14px;line-height:1.35}
.title-actions,.credits-actions{scrollbar-width:none;grid-area:2/2;align-self:center;gap:5px;max-height:100%;overflow-y:auto}
.title-actions::-webkit-scrollbar{display:none}
.credits-actions::-webkit-scrollbar{display:none}
.primary-action,.menu-action{grid-template-columns:38px 1fr;gap:8px;min-height:49px;padding:5px 9px}
.primary-action{min-height:53px}
.primary-action>span:first-child,.menu-action .action-index{width:36px;height:36px}
.title-footer{grid-area:3/1/auto/-1;padding-top:7px;display:flex}
.ending-mark{width:86px;height:86px;font-size:50px;top:8%}
.game-screen{padding:max(7px, env(safe-area-inset-top)) 18px max(8px, env(safe-area-inset-bottom))}
.game-hud{min-height:48px}
.scene-index{top:max(61px, calc(env(safe-area-inset-top) + 55px));left:18px;right:18px}
.scene-heading{top:27%;left:18px;right:64%}
.scene-heading strong{font-size:clamp(24px,4vw,36px)}
.text-stage{width:61%;max-height:calc(100% - 58px);margin-left:auto;padding:12px 4px 12px 16px}
.continue-hint{width:61%;right:18px;left:auto}
.dialogue-text{font-size:calc(clamp(21px, 3.5vw, 29px) * var(--font-scale))}
.narration-text,.quote-text{font-size:calc(clamp(18px, 3vw, 24px) * var(--font-scale))}
.choice-sheet{width:67%;max-height:calc(100% - 50px);padding:14px 18px max(12px, env(safe-area-inset-bottom));border-left:1px solid var(--line);left:auto}
.choice-heading{margin-bottom:8px}
.choice-heading h2{margin-top:4px;font-size:23px}
.choice-button,.choice-button.is-red-button{min-height:49px}
.overlay-backdrop{justify-content:center;align-items:center;padding:8px}
.overlay-panel,.overlay-settings,.overlay-save,.overlay-dossier,.overlay-endings,.overlay-history{width:min(680px,78%);height:100%;min-height:0;max-height:100%;padding:0 20px max(10px, env(safe-area-inset-bottom));border:1px solid var(--line-strong);border-radius:14px}
.overlay-header{min-height:62px}
.story-toast{top:max(58px, calc(env(safe-area-inset-top) + 48px))}
}
@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}
}
