@charset "UTF-8";
:root{color-scheme:dark;--ink:#140f1b;--paper:#f2eadd;--gold:#dec28e;--muted:#c5b8cd;--plum:#30213e;--line:#776344;--font:19px;--stage:64svh}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font:var(--font)/1.7 system-ui,-apple-system,'Segoe UI',sans-serif}button,input,textarea{font:inherit}button{color:inherit;background:#291d36;border:1px solid #685574;border-radius:8px;min-height:44px;padding:10px 18px;cursor:pointer;transition:background .16s,border-color .16s,box-shadow .16s}button:hover{background:#392548;border-color:#c4a775}button:active{background:#473055}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #f1d69e;outline-offset:3px}button.primary{background:var(--gold);color:#25182f;border-color:var(--gold);font-weight:600}button.primary:hover{background:#f0d7aa}button.secondary{background:transparent}button small{display:block;color:var(--muted);font:14px/1.6 system-ui;margin-top:5px}a{color:var(--gold)}[hidden]{display:none!important}
.menu{min-height:100svh;position:relative;display:flex;align-items:center;isolation:isolate;overflow:hidden}.menu-art{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;z-index:-3}.menu-shade{position:absolute;inset:0;background:linear-gradient(90deg,#140f1bf5,#191121dc 42%,#140f1b20 85%),linear-gradient(0deg,#140f1b8c,transparent);z-index:-2}.menu-copy{padding:7vh 7vw;max-width:780px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:var(--gold)}.menu h1{font-family:Georgia,serif;font-weight:400;letter-spacing:.13em;font-size:clamp(58px,8vw,108px);line-height:1.15;margin:22px 0 12px}.gold-rule{width:64px;height:2px;background:var(--gold);margin:25px 0}.chapter{font-size:14px;color:var(--gold);letter-spacing:2px;text-transform:uppercase;margin:0}.menu h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(28px,3vw,42px);margin:8px 0 20px}.premise{font-size:18px;line-height:1.75;max-width:490px;color:#dfd3e4}.menu-actions{display:flex;flex-direction:column;gap:10px;max-width:340px;margin:30px 0}.menu-actions button{text-align:left;font-size:16px;min-height:50px}.menu-note{font-size:13px;color:#c1b1cb;line-height:1.8}.old-link{display:inline-block;font-size:13px;margin-top:10px;color:#bfb1c3}
#game{min-height:100svh;background:linear-gradient(#191121,var(--ink));display:flex;flex-direction:column}#game[data-mode=choice]{--stage:52svh}#game[data-mode=confirm]{--stage:38svh}#game[data-mode=finish]{--stage:47svh}.visual{height:var(--stage);min-height:320px;position:relative;background:#1d1524;overflow:hidden;flex:none}.visual>#scene{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.layered>#scene{object-fit:cover}.visual-shade{position:absolute;inset:0;background:linear-gradient(0deg,#191121 0%,#19112165 7%,transparent 23%,transparent 70%,#140f1b90);pointer-events:none;z-index:1}.topbar{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px clamp(18px,3vw,48px);background:linear-gradient(#140f1be8,transparent);z-index:6}.wordmark{font-family:Georgia,serif;font-size:17px;letter-spacing:3px;color:var(--gold);display:block}.location{font-size:14px;display:block;color:#e0d3df}.topbar nav{display:flex;gap:8px}.topbar button{font-size:14px;min-height:44px;background:#1d1425b0;border-color:#aa91764d;padding:8px 14px;backdrop-filter:blur(8px)}
.cast{position:absolute;inset:78px 0 0;overflow:hidden;pointer-events:none;z-index:2}.portrait{position:absolute;bottom:0;height:calc(100% * var(--scale));aspect-ratio:var(--frame-ratio);background-repeat:no-repeat;background-size:500% 100%;filter:brightness(.86);transition:filter .18s}.portrait.center{left:50%;transform:translateX(-50%)}.portrait.left{left:18%;transform:translateX(-50%)}.portrait.right{right:18%;transform:translateX(50%)}.portrait.speaking{filter:brightness(1.04) drop-shadow(0 0 9px #e0c58c26)}.portrait[data-character=Elena]{bottom:12%;min-height:115px;max-height:210px;filter:brightness(1.12) drop-shadow(0 0 1.5px #fff5ce) drop-shadow(0 0 8px #ffda7da0) drop-shadow(0 3px 5px #130b27);translate:0 -8px}
.dialogue{position:relative;margin:0;width:100%;padding:20px clamp(20px,7vw,120px) 14px;background:linear-gradient(180deg,#191121,#140f1b);border-top:1px solid #dec28e38;z-index:3;flex:1}.dialogue>*{max-width:1100px;margin-left:auto;margin-right:auto}.speaker-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}#speaker{font:500 21px/1.4 Georgia,serif;color:var(--gold);margin:0;letter-spacing:.25px}#speaker:focus{outline:none}#phase{font-size:12px;color:#c9b5d8;line-height:1.5;border-left:1px solid #9a7d514d;padding-left:14px}#content{max-width:1100px}#content>p{margin:0;max-width:960px;text-wrap:pretty}#content .notice{font:14px/1.6 system-ui;color:#bbadc2;margin-top:16px}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}.actions button{font-size:15px;line-height:1.5}#game[data-mode=line] .actions .primary{background:transparent;border-color:transparent;color:var(--gold);font-weight:500;padding:8px 0 8px 24px;border-radius:0}#game[data-mode=line] .actions .primary:hover{text-decoration:underline;text-underline-offset:7px}
.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.choices:empty{margin-top:0}.choices button{font-size:16px;line-height:1.55;text-align:left;padding:15px 18px;background:#24192fc9;border:1px solid #715477;border-left:3px solid #b59a72;min-height:66px;box-shadow:inset 0 1px #ffffff06}.choices button:hover{background:#352342;border-color:#dec28e;box-shadow:0 0 0 1px #dec28e36}.choice-no{font:13px system-ui;color:var(--gold);display:inline-block;width:24px}.foot{margin:0;padding:10px clamp(20px,7vw,120px) 16px;font-size:12px;color:#bba9c6;display:flex;align-items:center;gap:15px;justify-content:space-between;background:#140f1b}.foot button{min-width:44px;min-height:44px;padding:5px 10px;background:transparent;font-size:16px;border-color:#7e6a4e66}.plan-summary,.outcome{font:16px/1.65 system-ui;background:#281b35;border-left:2px solid var(--gold);padding:14px 18px;margin:18px 0;border-radius:0 8px 8px 0}.plan-summary p,.outcome p{margin:5px 0!important}label{display:block;font:16px system-ui;margin:18px 0 9px}textarea{display:block;width:100%;min-height:88px;resize:vertical;background:#110d17;color:var(--paper);border:1px solid #82708d;border-radius:8px;padding:14px;font:17px/1.6 system-ui}#content>button{font-size:14px;margin-top:10px}#motive-error{color:#ffcfb6;font-size:15px;margin-top:10px}
#evidence{position:absolute;top:85px;left:50%;transform:translateX(-50%);width:min(64vw,calc((var(--stage) - 140px)*1.778));max-width:1000px;min-width:240px;display:flex;flex-direction:column;background:#10101c;border:1px solid #b39a79;border-radius:10px;box-shadow:0 8px 32px #08050ca0;overflow:hidden;z-index:4}.evidence-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 12px;font-size:12px;line-height:1.5;background:#21172d}.evidence-head span:first-child{color:var(--gold)}#evidence-status{font-size:12px;text-align:right;color:#d5c8dd}.evidence-art{position:relative;aspect-ratio:1672/940;overflow:hidden;background:#0d121b}.evidence-art img{width:100%;height:100%;object-fit:contain;display:block}#signal{position:absolute;left:29%;top:48%;width:33%;height:9%;border:3px dashed #ffeb9f;border-radius:20%;box-shadow:0 0 18px #ffeb9f;pointer-events:none}#destination{position:absolute;left:82%;top:39%;width:10%;height:14%;border:3px dashed #ffc985;border-radius:20%;pointer-events:none}.with-evidence .cast{inset:85px 0 0}.with-evidence .portrait{height:calc(76% * var(--scale))}.with-evidence .portrait.left{left:8%}.with-evidence .portrait.right{right:8%}.with-evidence .portrait.center{left:9%}
#exploration-banner{position:absolute;bottom:0;left:0;right:0;background:#25182ff5;border-top:1px solid #b89a6d77;padding:8px clamp(18px,3vw,48px);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;line-height:1.5;z-index:7}#exploration-banner button{font-size:14px;min-height:44px;padding:7px 12px}
dialog{background:linear-gradient(135deg,#30213c,#171120);color:var(--paper);border:1px solid #ae93677d;border-radius:14px;width:min(860px,94vw);max-height:88svh;padding:26px;box-shadow:0 20px 100px #000a;overflow:auto}dialog::backdrop{background:#09060dc9;backdrop-filter:blur(9px)}dialog h2{color:var(--gold);font:400 27px/1.35 Georgia,serif;margin:0}.panel-top{display:flex;justify-content:space-between;gap:16px;align-items:center}.panel-top button{min-width:44px;padding:6px 12px}#panel-content{margin:24px 0;font-size:17px;line-height:1.7}.panel-bottom{display:flex;justify-content:flex-end}.panel-bottom button{font-size:15px}.entry,.profile-item,.person{padding:17px 0;border-bottom:1px solid #9579a03d}.entry strong,.profile-item h3,.person h3{color:var(--gold);font-size:17px;font-weight:600;display:block;margin:0 0 7px}.entry p,.profile-item p,.person p{margin:5px 0}.profile-item small{display:block;font:14px/1.6 system-ui;color:#c4b4cc;margin:9px 0}.panel-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.panel-buttons button{font-size:15px}.comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.comparison article{background:#140f1b80;border:1px solid #70547b66;border-radius:10px;padding:18px}.comparison h3{font:400 22px/1.4 Georgia,serif;color:var(--gold);margin:0 0 12px}.comparison p{font:15px/1.7 system-ui}.badge{display:inline-block;border:1px solid #8c785e;padding:4px 9px;font:12px system-ui;color:var(--gold)}
@media(min-width:1600px){.dialogue{padding-top:26px}.visual{max-height:850px}}
@media(max-width:1000px){:root{--stage:56svh}#game[data-mode=choice]{--stage:46svh}#game[data-mode=confirm]{--stage:36svh}.dialogue{padding-left:5vw;padding-right:5vw}.foot{padding-left:5vw;padding-right:5vw}.portrait.left{left:23%}.portrait.right{right:23%}.with-evidence .cast{visibility:hidden}#evidence{width:min(82vw,calc((var(--stage) - 140px)*1.778))}}
@media(max-width:700px){:root{--stage:40svh}#game[data-mode=choice]{--stage:36svh}#game[data-mode=confirm]{--stage:30svh}#game[data-mode=finish]{--stage:34svh}.menu-copy{padding:36px 24px}.menu-shade{background:linear-gradient(90deg,#140f1bf0,#170f1cb0),linear-gradient(0deg,#140f1bc9,transparent)}.menu h1{font-size:58px}.menu h2{font-size:30px}.premise{font-size:17px}.visual{min-height:260px;max-height:400px}.topbar{padding:10px 12px;gap:8px;align-items:flex-start}.wordmark{font-size:14px;letter-spacing:2px}.location{font-size:12px;max-width:125px}.topbar nav{gap:4px}.topbar button{font-size:13px;padding:6px 9px;min-height:44px}.cast{inset:70px 0 0}.portrait.left{left:25%}.portrait.right{right:25%}.portrait[data-character=Elena]{min-height:96px;bottom:16%;max-height:140px}.dialogue{padding:18px 20px 12px}.speaker-row{align-items:flex-start;gap:12px;margin-bottom:13px}#speaker{font-size:20px}#phase{font-size:12px;max-width:130px;padding-left:10px}.choices{grid-template-columns:1fr;gap:10px;margin-top:20px}.choices button{font-size:16px;padding:13px 14px}.choice-no{width:22px}.choices small{font-size:14px}.actions{margin-top:18px}.actions button{font-size:15px}.foot{padding:8px 20px 16px;gap:12px;font-size:12px}.foot span:last-child{display:none}#evidence{top:68px;width:min(94vw,calc((max(var(--stage),260px) - 115px)*1.778));min-width:240px}.evidence-head{padding:7px 9px;font-size:12px;gap:9px}#evidence-status{font-size:11px;max-width:55%}#exploration-banner{position:relative;bottom:auto;left:auto;right:auto;padding:8px 12px;font-size:12px}#game:has(#exploration-banner:not([hidden])) .visual{overflow:visible;margin-bottom:61px}.comparison{grid-template-columns:1fr}dialog{padding:20px;border-radius:12px;max-height:90svh}dialog h2{font-size:25px}#panel-content{font-size:16px}.panel-buttons{flex-direction:column}.panel-buttons button{text-align:left}.plan-summary,.outcome{font-size:15px;padding:12px 14px}}
@media(orientation:landscape) and (max-height:520px){:root{--stage:43svh}#game[data-mode=choice],#game[data-mode=confirm],#game[data-mode=finish]{--stage:43svh}.visual{min-height:180px;max-height:none}.topbar{padding:8px 20px}.wordmark{font-size:14px}.location{font-size:12px}.cast{inset:54px 0 0}.portrait[data-character=Elena]{min-height:85px;max-height:110px;bottom:9%}.dialogue{padding:14px 5vw 10px}.speaker-row{margin-bottom:9px}#speaker{font-size:18px}.choices{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:15px}.choices button{font-size:15px;padding:11px 13px}.choices small{font-size:13px}.actions{margin-top:12px}.foot{padding:6px 5vw 10px}.foot span:last-child{display:none}#evidence{top:58px;width:min(45vw,calc((max(var(--stage),180px) - 100px)*1.778));min-width:180px}.evidence-head{font-size:11px;padding:5px 8px}#evidence-status{font-size:10px}.with-evidence .cast{visibility:hidden}}
@media(prefers-reduced-motion:no-preference){.portrait[data-character=Elena]{animation:fairy-flight 4.5s ease-in-out infinite}@keyframes fairy-flight{0%,100%{translate:0 -8px}50%{translate:3px -19px}}}
@media(prefers-reduced-motion:reduce){button,.portrait{transition:none}.portrait[data-character=Elena]{animation:none;translate:0 -8px}}

/* Narrative voice is encoded in words, color and type, never color alone. */
#content>p{max-width:78ch}
.speaker-identity{display:flex;flex-direction:column;gap:4px}
#voice-label{font-size:12px;letter-spacing:.08em;color:#c5b8cd;line-height:1.4}
#game[data-voice=player] #content>p,#game[data-voice=player] #voice-label{color:#e8cc96}
#game[data-voice=thought] #content>p,#game[data-voice=thought] #voice-label{color:#d7bcf3}
#game[data-voice=thought] #content>p{font-style:italic}
#game[data-voice=narration] #content>p,#game[data-voice=narration] #voice-label{color:#c2cedc}
#exploration-banner{position:relative;bottom:auto;left:auto;right:auto;flex:none}
#game:has(#exploration-banner:not([hidden])) .visual{margin-bottom:0;overflow:hidden}
#evidence{max-height:calc(100% - 100px)}
.evidence-head{flex:none}.evidence-art{flex:1;min-height:0}
@media(max-width:700px){#evidence{max-height:calc(100% - 80px)}}
@media(orientation:landscape) and (max-height:520px){#evidence{max-height:calc(100% - 68px)}}
/* Companion panels share the game's reading surface and touch targets. */
.text-link{display:inline!important;min-height:0!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;color:inherit!important;font:inherit!important;text-decoration:underline;text-decoration-color:#dec18a99;text-underline-offset:4px;cursor:help}.text-link:hover{text-decoration-color:currentColor}.text-link:focus-visible{outline:2px solid #dec18a;outline-offset:4px}.clickable-speaker{cursor:help;text-decoration:underline;text-decoration-color:#dec18a66;text-underline-offset:6px}
#discovery-toast{position:fixed;top:88px;right:20px;z-index:8;display:flex;align-items:center;gap:12px;max-width:min(520px,calc(100vw - 32px));padding:10px 14px;background:#261c32;border:1px solid #b39a68;border-radius:12px;box-shadow:0 12px 36px #0006;font-size:15px}#discovery-toast[hidden]{display:none}#toast-message{flex:1}#discovery-toast button{min-height:44px;padding:8px 12px;white-space:nowrap}#toast-close{padding:8px!important}
.codex-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.codex-tabs [aria-pressed=true]{background:#dec18a;color:#211628;border-color:#dec18a}.codex-list{display:grid;gap:14px}.codex-card{padding:20px;border:1px solid #ffffff1c;border-radius:12px;background:#211829}.codex-card h3{margin:0}.codex-role{color:#e8cc96;font-size:15px}.codex-note{border-left:2px solid #dec18a;padding-left:14px}.settings-note{font-size:15px;color:#c2b9c8;margin-top:24px}fieldset{border:1px solid #ffffff26;border-radius:12px;margin:20px 0;padding:12px 18px}legend{padding:0 8px;color:#e8cc96;font-weight:600}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:12px 0;border-bottom:1px solid #ffffff14;font-size:17px}.setting-row small{display:block;color:#c2b9c8;font-size:14px;line-height:1.5;margin-top:5px}.setting-row input[type=checkbox]{width:24px;height:24px;flex-shrink:0;accent-color:#dec18a;cursor:pointer}.setting-row select{min-height:44px;max-width:55%;background:#302438;color:#f2eadd;border:1px solid #aa94ba;border-radius:8px;padding:8px;font-size:15px}.setting-volume{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:15px;margin:16px 0}.setting-volume input{grid-column:1/-1;width:100%;min-height:44px;accent-color:#dec18a}html[data-motion=reduce] *,html[data-motion=reduce] *::before,html[data-motion=reduce] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html[data-contrast=high] .dialogue,html[data-contrast=high] #panel{background:#100c15}html[data-contrast=high] button{border-color:#cfbbdc}html[data-contrast=high] .text-link{text-decoration-color:currentColor}
@media(max-width:700px){#discovery-toast{top:82px;right:12px;left:12px;max-width:none;font-size:14px;gap:6px;padding:8px 10px}.codex-card{padding:16px}fieldset{padding:10px 12px}.setting-row{gap:12px}.codex-tabs{gap:6px}}

.speaker-link{font:inherit;color:inherit;background:none;border:0;padding:0 4px;text-align:left;text-decoration:underline;text-decoration-color:#dec18a66;text-underline-offset:6px}.speaker-link:hover{background:#dec18a10}

#panel[open]{display:flex;flex-direction:column;overflow:hidden}#panel-content{min-height:0;max-height:calc(88svh - 172px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:6px;font-size:var(--font)}.panel-top,.panel-bottom{flex-shrink:0}.panel-bottom{padding-top:12px;border-top:1px solid #ffffff1c}.codex-tabs button{font-size:15px}
@media(max-width:700px){.setting-row:has(select){flex-direction:column;align-items:stretch;gap:8px}.setting-row select{max-width:none;width:100%}.panel-top h2{font-size:23px}#panel-content{max-height:calc(90svh - 160px)}}
