/* Illustration integration only: retain existing game typography and layout. */
:root{--paper:#FFF4DC;--ink:#102D42;--muted:#4B626E;--terra:#A33D29;--copper:#007984;--sage:#008F9C;--line:#C8D8D6;--kraft:#F5E6BB;--sea:#DDF1EC}
.primary{background:#102D42;border-color:#102D42;color:#FFF4DC}
.primary:hover:not(:disabled){background:#16495B}
.opening{background:#FFF4DC}
.opening-veil{background:linear-gradient(to top,rgba(255,244,220,.98) 0,rgba(255,244,220,.94) 30%,rgba(255,244,220,.68) 55%,rgba(255,244,220,0) 82%)}
.opening .last-seen{background:rgba(255,244,220,.94)}
.opening-skip{background:#FFF4DC;color:#102D42}
.opening .intro-footer{color:#102D42;border-top-color:#102D4240}
.memory video,.memory img{filter:none}
.sky{opacity:0}
.hotspot:before{border-color:#102D42;background:#F3C969;box-shadow:0 0 0 5px #FFF4DCC0}
.memory-open{background:#FFF4DC;color:#102D42}
.draw-art-cap{background:#102D42;color:#FFF4DC}
@media(prefers-reduced-motion:reduce){.brand-mark img{animation:none}}
@media(max-width:720px){.mobile-nav{background:#FFF4DCF5}.mobile-nav button{min-width:0;flex:1;padding:.65rem .3rem}}
/* Legibility pass: calm reading surface and undimmed illustration. */
.opening{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;justify-content:initial;min-height:calc(100svh - 84px);background:var(--paper)}
.opening-film{left:52%;width:48%;height:100%;object-position:58% center}
.opening-veil{background:none;left:52%;width:48%;border-left:1px solid var(--line)}
.opening-copy{grid-column:1;max-width:760px;width:100%;padding:48px clamp(24px,4vw,72px);background:var(--paper)}
.opening-copy h1{font-size:clamp(2.6rem,4.2vw,4.7rem);line-height:1.06;letter-spacing:-.045em;margin:14px 0 24px}
.opening .eyebrow{font-size:.72rem;line-height:1.6;letter-spacing:.12em;color:var(--muted)}
.opening .last-seen{background:none;border:0;padding:0;font-size:1.1rem;line-height:1.6;max-width:44ch;margin:0 0 24px}
.opening-stamp{display:none}
.opening .case-picker{grid-template-columns:1fr;gap:10px;max-width:520px;margin:0 0 20px}
.opening .case-card{padding:14px 18px;border-radius:8px;background:#FFFCF3;border:1px solid var(--line);gap:5px;min-height:76px}
.opening .case-card.chosen{border:2px solid #007984;box-shadow:none;background:#E2F2EE;padding:13px 17px}
.opening .case-card strong{font-size:1.08rem;line-height:1.35}
.opening .case-card-label{font-size:.7rem;color:#A33D29;letter-spacing:.08em}
.opening .case-card-when{font-size:.86rem;color:#4B626E}
.opening .promo-line{border:0;border-top:1px solid var(--line);border-radius:0;background:none;padding:14px 0 0;max-width:46ch;font-size:.95rem;line-height:1.55;margin:0 0 4px}
.opening-copy .primary{min-height:52px;margin-top:20px;padding:14px 24px;font-size:1rem;border-radius:8px}
.opening-copy .map-note{font-size:.82rem;line-height:1.5;color:var(--muted)}
.opening .intro-footer{grid-column:1/-1;background:var(--paper);margin:0;padding:18px clamp(24px,4vw,72px);font-size:.8rem;line-height:1.5;border-top:1px solid var(--line);gap:24px}
.opening-skip{top:18px;right:18px;min-height:44px;border:1px solid var(--line)}
.notebook{background:#FFFCF3;clip-path:none;box-shadow:none;border:1px solid var(--line);border-radius:12px}
.speech{background:#FFFCF3;border-color:var(--line);box-shadow:none;transform:none;border-radius:10px}
.speech p{line-height:1.65;font-size:1.08rem}.speech .speaker{font-size:.8rem;line-height:1.5}
.notebook p,.notebook li,.note{line-height:1.6}.section-title{letter-spacing:.08em}
.memory{transform:none;border:1px solid var(--line);border-radius:8px;box-shadow:none}
button,a:focus-visible{outline-offset:4px}button:focus-visible,a:focus-visible{outline:3px solid #007984}
@media(max-width:720px){
.opening{display:flex;align-items:stretch;min-height:calc(100svh - 65px);padding-top:220px}
.opening-film{inset:0 0 auto;width:100%;height:220px;object-position:center 40%}
.opening-veil{inset:0 0 auto;width:100%;height:220px;border:0}
.opening-copy{max-width:none;padding:28px 22px 20px}
.opening-copy h1{font-size:clamp(2.35rem,9.5vw,3.2rem);margin:12px 0 18px}
.opening .eyebrow{font-size:.67rem}.opening .last-seen{font-size:1rem;margin-bottom:20px}
.opening .case-picker{grid-template-columns:1fr;gap:9px}.opening .case-card{min-height:74px}
.opening .case-card strong{font-size:1rem}.opening .case-card-label{font-size:.68rem}.opening .case-card-when{display:block;font-size:.8rem}
.opening-copy .primary{width:100%;justify-content:center}.opening .intro-footer{margin:0;padding:18px 22px;font-size:.75rem}
.opening .intro-footer span{display:none}.opening .promo-line{font-size:.93rem}
.workspace{gap:22px}.notebook{padding:22px}.speech{padding:20px}.speech p{font-size:1rem}.witness .name{font-size:.86rem}.scene-caption{font-size:.8rem;line-height:1.5}.mobile-nav button{min-height:48px;font-size:.8rem}
}
@media(max-width:430px){header .icon-btn{width:44px;min-height:44px}header .header-right{gap:2px}}
@media(max-width:360px){header{padding:0 8px;gap:4px}header .brand{font-size:4vw;gap:6px}.brand-mark{width:26px;height:26px}}
/* Use one clear body voice for clues and supporting instructions. */
.opening .last-seen,.opening .promo-line,.speech p,.note,.note-empty{font-family:'DM Sans',sans-serif}
.scene-caption{font-size:.875rem;line-height:1.5}
.witness .name{font-size:1rem;line-height:1.4}.witness .cost{font-size:.8125rem;line-height:1.5}
.witness img{filter:none!important}
.note,.note-empty{font-size:1rem;line-height:1.6}.note .source{font-size:.75rem;line-height:1.5;color:#007984}
.map-panel .map-sub{font-size:.875rem;line-height:1.5}.map-note{font-size:.8125rem;line-height:1.5}
.notebook:before{display:none}.notebook .hint{font-size:.9375rem}
@media(max-width:720px){.witness .name{font-size:.9375rem}.witness .cost{font-size:.75rem}.note,.note-empty{font-size:1rem}}
