:root{
  --burgundy:#4a1028;--burgundy2:#2b0a18;--wine:#6d1838;--cream:#f7f0df;--paper:#fffaf0;
  --gold:#c7a565;--gold2:#ead39c;--ink:#21191a;--muted:#715f60;--black:#120d0f;--green:#42554b;
  --shadow:0 18px 55px rgba(0,0,0,.28);--radius:22px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--burgundy2);color:var(--cream);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{min-height:100vh;min-height:100dvh;background:
 radial-gradient(circle at 15% 10%,rgba(199,165,101,.12),transparent 28%),
 radial-gradient(circle at 90% 15%,rgba(112,28,59,.55),transparent 35%),
 linear-gradient(145deg,#1d0711,#451027 52%,#260812);overflow-x:hidden}
button{font:inherit}.hidden{display:none!important}.serif{font-family:Georgia,"Times New Roman",serif}
#app{min-height:100vh;min-height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px max(14px,env(safe-area-inset-left)) 10px max(14px,env(safe-area-inset-right));background:rgba(28,6,16,.88);backdrop-filter:blur(12px);border-bottom:1px solid rgba(234,211,156,.22)}
.brand-mini{font-family:Georgia,serif;font-weight:700;letter-spacing:.02em;color:var(--gold2);white-space:nowrap}.top-actions{display:flex;gap:8px;align-items:center}.icon-btn{border:1px solid rgba(234,211,156,.35);background:rgba(255,255,255,.06);color:var(--cream);border-radius:999px;padding:8px 11px;cursor:pointer}.icon-btn:hover,.icon-btn:focus{background:rgba(255,255,255,.12);outline:none}
.progress{display:flex;gap:5px;align-items:center;justify-content:center;flex:1}.dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.1)}.dot.done{background:var(--gold)}.dot.current{width:22px;border-radius:8px;background:var(--gold2)}
.screen{width:min(1120px,calc(100% - 28px));margin:0 auto;padding:26px 0 42px;animation:fadeUp .32s ease}@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.title-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:30px 18px;position:relative;overflow:hidden}.title-screen:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(8deg,transparent 0 24px,rgba(255,255,255,.018) 25px 26px),radial-gradient(circle at 50% 40%,rgba(199,165,101,.16),transparent 34%)}
.title-card{position:relative;width:min(760px,100%);text-align:center;padding:46px 28px;border:1px solid rgba(234,211,156,.35);border-radius:32px;background:linear-gradient(180deg,rgba(27,7,16,.8),rgba(62,14,34,.78));box-shadow:var(--shadow)}
.kicker{text-transform:uppercase;letter-spacing:.24em;color:var(--gold2);font-size:.76rem;font-weight:800}.title{font:700 clamp(3rem,11vw,6.8rem)/.88 Georgia,serif;margin:18px 0 10px;color:var(--cream);text-shadow:0 3px 18px rgba(0,0,0,.4)}.subtitle{font:italic 1.2rem Georgia,serif;color:var(--gold2);margin-bottom:28px}.wine-rule{display:flex;align-items:center;gap:10px;margin:24px auto;width:min(440px,90%)}.wine-rule:before,.wine-rule:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.wine-rule span{font-size:1.4rem;color:var(--gold)}
.primary,.choice,.secondary{border:0;border-radius:14px;padding:14px 18px;cursor:pointer;transition:.18s transform,.18s background,.18s box-shadow}.primary{background:linear-gradient(180deg,var(--gold2),var(--gold));color:#25170d;font-weight:900;box-shadow:0 7px 22px rgba(199,165,101,.24)}.primary:hover,.primary:focus{transform:translateY(-1px);box-shadow:0 10px 25px rgba(199,165,101,.36);outline:none}.secondary{background:rgba(255,255,255,.08);color:var(--cream);border:1px solid rgba(255,255,255,.18)}
.title-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.fineprint{margin:22px 0 0;color:rgba(247,240,223,.6);font-size:.8rem}
.location{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid rgba(234,211,156,.3);border-radius:999px;color:var(--gold2);background:rgba(0,0,0,.12);font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.scene-title{font:700 clamp(2rem,6vw,3.8rem)/1 Georgia,serif;margin:14px 0 8px}.scene-sub{color:rgba(247,240,223,.72);margin:0 0 24px}
.stage{display:grid;grid-template-columns:minmax(260px,38%) 1fr;gap:22px;align-items:stretch}.portrait-card{position:relative;min-height:520px;border-radius:var(--radius);overflow:hidden;border:1px solid rgba(234,211,156,.28);box-shadow:var(--shadow);background:#140b0e}.portrait-card img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:50% 30%}.portrait-card.landscape img{object-position:50% 50%}.face-mask-host{position:relative;overflow:hidden;--mask-left:50%;--mask-top:42%;--mask-w:32%;--mask-h:29%;--mask-rotate:0deg;--mask-outline:rgba(119,94,82,.24)}.face-mask-host::before{content:"";position:absolute;left:var(--mask-left);top:var(--mask-top);width:calc(var(--mask-w) + 4%);height:calc(var(--mask-h) + 4%);transform:translate(-50%,-50%) rotate(var(--mask-rotate));border-radius:49% 49% 42% 42% / 36% 36% 62% 62%;background:radial-gradient(70% 52% at 50% 26%,rgba(255,255,255,.3),rgba(255,255,255,0) 100%),radial-gradient(76% 48% at 50% 78%,rgba(103,77,63,.15),rgba(103,77,63,0) 100%);filter:blur(12px);opacity:.55;pointer-events:none;z-index:2}.face-mask-host::after{content:"";position:absolute;left:var(--mask-left);top:var(--mask-top);width:var(--mask-w);height:var(--mask-h);transform:translate(-50%,-50%) rotate(var(--mask-rotate));border-radius:49% 49% 42% 42% / 36% 36% 62% 62%;background:radial-gradient(58% 34% at 50% 18%,rgba(255,255,255,.62) 0%,rgba(255,255,255,0) 100%),radial-gradient(85% 64% at 50% 42%,rgba(245,240,234,.98) 0%,rgba(232,224,214,.98) 72%,rgba(221,208,194,.99) 100%);border:1px solid var(--mask-outline);box-shadow:0 14px 30px rgba(45,18,28,.18),inset 0 10px 14px rgba(255,255,255,.32),inset 0 -16px 18px rgba(130,101,83,.12);pointer-events:none;z-index:3}.portrait-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(15,6,9,.18) 60%,rgba(15,6,9,.9) 100%);z-index:4}.cover-label{position:absolute;left:18px;right:18px;bottom:18px;padding:14px 15px;border-radius:14px;background:rgba(27,7,16,.78);backdrop-filter:blur(8px);border:1px solid rgba(234,211,156,.22);z-index:5}.cover-label small{display:block;color:var(--gold2);text-transform:uppercase;letter-spacing:.13em;font-weight:900}.cover-label strong{display:block;font:700 1.45rem Georgia,serif;margin-top:3px}.cover-label em{display:block;margin-top:4px;color:rgba(247,240,223,.7);font-size:.87rem}
.panel{background:linear-gradient(180deg,rgba(255,250,240,.97),rgba(246,237,218,.97));color:var(--ink);border-radius:var(--radius);padding:clamp(20px,4vw,34px);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.5);position:relative}.panel:before{content:"";position:absolute;inset:10px;border:1px solid rgba(74,16,40,.08);border-radius:15px;pointer-events:none}.panel>*{position:relative}.speaker{display:inline-block;text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:900;color:var(--wine);margin-bottom:10px}.dialogue{font:400 clamp(1.08rem,2.6vw,1.35rem)/1.55 Georgia,serif;margin:0 0 18px}.dialogue strong{color:var(--burgundy)}.narration{font-size:1rem;line-height:1.62;color:#45393a}.choices{display:grid;gap:10px;margin-top:20px}.choice{width:100%;text-align:left;background:white;color:var(--ink);border:1px solid rgba(74,16,40,.16);box-shadow:0 3px 10px rgba(44,20,26,.06);font-weight:750}.choice:hover,.choice:focus{background:#fff7e8;border-color:var(--gold);outline:none;transform:translateY(-1px)}.choice small{display:block;margin-top:4px;color:#7b696a;font-weight:500}.primary-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.primary-row .primary,.primary-row .secondary{min-width:150px}
.chat-preview{margin-top:16px;border-radius:16px;background:#efe7da;padding:12px 14px;border:1px solid rgba(74,16,40,.08)}.chat-msg{display:flex;gap:9px;align-items:flex-start;margin:7px 0}.chat-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--burgundy);color:white;font-size:.68rem;font-weight:900;flex:0 0 26px}.chat-bubble{background:white;border-radius:4px 13px 13px 13px;padding:8px 10px;font-size:.88rem;line-height:1.35;box-shadow:0 2px 5px rgba(0,0,0,.05)}.chat-name{font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--wine);display:block;margin-bottom:2px}
.evidence-flash{margin:18px 0;padding:15px;border-radius:14px;background:#f1e2bd;border:1px solid #d9bd7b}.evidence-flash .eyebrow{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900;color:#6b4c19}.evidence-flash h3{font:700 1.25rem Georgia,serif;margin:4px 0}.evidence-flash p{margin:0;color:#5b4b42}
.object-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.object-btn{border:1px dashed rgba(74,16,40,.28);background:#fffdf7;color:var(--ink);border-radius:14px;padding:16px 12px;cursor:pointer;font-weight:800;min-height:72px}.object-btn:hover,.object-btn:focus{background:#fff4dc;outline:none;border-color:var(--gold)}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.passage{background:white;border:1px solid rgba(74,16,40,.15);border-radius:14px;padding:15px}.passage h4{margin:0 0 8px;color:var(--wine);font-size:.75rem;text-transform:uppercase;letter-spacing:.09em}.passage p{font:1rem/1.55 Georgia,serif;margin:0}
.calendar{display:grid;gap:8px;margin:16px 0}.calendar-row{display:grid;grid-template-columns:92px 1fr;gap:10px;align-items:center;padding:10px 12px;background:#fff;border:1px solid rgba(74,16,40,.11);border-radius:12px}.calendar-row strong{color:var(--wine)}.calendar-row.nb{background:#fff8e4;border-color:#d4b66f}
.document{background:#fffef8;border:1px solid #d9ceb8;border-radius:8px;padding:20px;margin:15px 0;box-shadow:0 6px 18px rgba(0,0,0,.08);font-family:"Courier New",monospace;font-size:.88rem;line-height:1.55;position:relative}.document:before{content:"";position:absolute;left:28px;top:0;bottom:0;width:1px;background:#e7b8b8}.document .big{font-size:1.05rem;font-weight:900;color:#3f1a22}
.wig-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.wig-option{border:1px solid rgba(74,16,40,.15);background:white;border-radius:16px;padding:0;overflow:hidden;cursor:pointer;text-align:left;box-shadow:0 5px 16px rgba(0,0,0,.08);transition:.18s}.wig-option:hover,.wig-option:focus{transform:translateY(-3px);outline:none;border-color:var(--gold);box-shadow:0 10px 22px rgba(0,0,0,.13)}.wig-thumb{aspect-ratio:4/5;background:#ddd;overflow:hidden;position:relative}.wig-thumb img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}.wig-option.landscape .wig-thumb img{object-position:50% 50%}.wig-option.landscape .wig-thumb.face-mask-host::after{top:43%;width:30%;height:28%}.wig-option.landscape .wig-thumb.face-mask-host::before{top:58%;width:13%}.wig-meta{padding:12px}.wig-meta strong{font:700 1rem Georgia,serif;color:var(--burgundy);display:block}.wig-meta span{font-size:.78rem;color:#766768;line-height:1.3;display:block;margin-top:4px}
.cover-burned{text-align:center;padding:10px}.burn-title{font:800 clamp(2.1rem,7vw,4.5rem)/.95 Georgia,serif;color:var(--burgundy);margin:4px}.burn-sub{font-size:1.03rem;color:#5e4a4d}.unlocked{text-align:center}.hero-frame{width:min(400px,90%);margin:0 auto;border-radius:22px;overflow:hidden;position:relative;box-shadow:0 18px 45px rgba(0,0,0,.25);border:5px solid white;animation:reveal .6s cubic-bezier(.2,.8,.2,1)}.hero-frame.landscape{width:min(460px,92%)}.unlocked .hero-img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 28%}.unlocked .hero-img.landscape{aspect-ratio:4/3;object-position:50% 50%}.hero-frame.landscape.face-mask-host::after{top:43%;width:30%;height:28%}.hero-frame.landscape.face-mask-host::before{top:58%;width:13%}@keyframes reveal{from{opacity:0;transform:scale(.93) rotate(-1deg)}to{opacity:1;transform:none}}.unlocked h2{font:800 clamp(2rem,6vw,3.4rem)/1 Georgia,serif;color:var(--burgundy);margin:18px 0 4px}.unlocked .tag{color:#6b585a;font-style:italic}
.overlay{position:fixed;inset:0;z-index:60;background:rgba(14,5,9,.73);backdrop-filter:blur(8px);display:grid;place-items:center;padding:18px}.modal{width:min(720px,100%);max-height:88vh;overflow:auto;background:var(--paper);color:var(--ink);border-radius:22px;padding:24px;box-shadow:0 28px 80px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.6)}.modal h2{font:700 2rem Georgia,serif;color:var(--burgundy);margin:0 0 8px}.modal p{line-height:1.55}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal .secondary{background:#eee4d7;color:#3e3031;border:1px solid #d6c6b2}.softfail{border-left:6px solid var(--gold);padding-left:18px}.softfail .quip{font:1.18rem/1.55 Georgia,serif}
.drawer{position:fixed;z-index:55;top:0;right:0;width:min(430px,94vw);height:100vh;height:100dvh;background:#f4ecdf;color:var(--ink);box-shadow:-18px 0 60px rgba(0,0,0,.35);padding:calc(18px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));overflow:auto}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:10px;position:sticky;top:-18px;background:#f4ecdf;padding:14px 0;z-index:2}.drawer h2{font:700 1.7rem Georgia,serif;color:var(--burgundy);margin:0}.drawer .icon-btn{color:var(--burgundy);border-color:rgba(74,16,40,.2);background:white}.case-grid{display:grid;gap:10px}.case-card{background:white;border:1px solid #ddcfbb;border-radius:14px;padding:14px}.case-card.locked{opacity:.48;filter:grayscale(.7)}.case-card .mini{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#9a7d53;font-weight:900}.case-card h3{font:700 1.1rem Georgia,serif;color:var(--burgundy);margin:4px 0}.case-card p{margin:0;color:#635355;font-size:.88rem;line-height:1.4}
.toast{position:fixed;z-index:45;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(520px,calc(100% - 28px));padding:12px 14px;border-radius:14px;background:#1e0c13;color:var(--cream);border:1px solid rgba(234,211,156,.35);box-shadow:0 15px 40px rgba(0,0,0,.3);animation:toastIn .25s ease}@keyframes toastIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
.manuscript{position:relative;background:#fffdf4;border-radius:8px;padding:34px 24px;min-height:360px;box-shadow:0 10px 30px rgba(0,0,0,.16);text-align:center;border:1px solid #d8ccb4;overflow:hidden}.manuscript .booktitle{font:700 clamp(2rem,7vw,4rem)/1 Georgia,serif;margin:60px 0 22px}.manuscript .by{font:italic 1.2rem Georgia,serif}.manuscript .real-name{font:700 clamp(2.2rem,8vw,4.4rem)/1 Georgia,serif;color:var(--burgundy);margin-top:10px}.name-label{position:absolute;left:50%;top:205px;transform:translateX(-50%);background:#eee7d6;color:#3b3031;border:1px solid #cfc5b2;padding:13px 30px;box-shadow:0 3px 8px rgba(0,0,0,.18);font:700 1.35rem Georgia,serif;touch-action:none;cursor:grab;user-select:none}.name-label.peeled{animation:peel .6s ease forwards}@keyframes peel{to{transform:translate(190px,-100px) rotate(18deg);opacity:0}}
.evidence-select{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.e-card{border:2px solid transparent;background:white;border-radius:14px;padding:13px;cursor:pointer;text-align:left;box-shadow:0 3px 10px rgba(0,0,0,.06)}.e-card.selected{border-color:var(--gold);background:#fff7df}.e-card strong{display:block;color:var(--burgundy);font-family:Georgia,serif}.e-card span{font-size:.8rem;color:#6c5c5d;line-height:1.35}.finale{text-align:center;padding:28px 10px}.finale .screen-name{font:700 clamp(3rem,10vw,7rem)/.9 Georgia,serif;color:var(--burgundy);margin:18px 0}.review{background:#fff7df;border:1px solid #d8be78;border-radius:16px;padding:18px;margin:20px auto;width:min(560px,100%);font-family:Georgia,serif}.review .stars{letter-spacing:.15em;font-size:1.4rem;color:#8c681a}.case-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(560px,100%);margin:18px auto}.stat{background:white;border:1px solid #e0d4c1;border-radius:12px;padding:12px}.stat strong{display:block;color:var(--burgundy)}
@media(max-width:820px){.topbar{gap:6px}.brand-mini{font-size:.85rem}.stage{grid-template-columns:1fr}.portrait-card{min-height:440px}.panel{padding:22px}.wig-grid{grid-template-columns:1fr 1fr}.wig-grid .wig-option:last-child{grid-column:1/-1}.compare{grid-template-columns:1fr}.evidence-select{grid-template-columns:1fr}.progress{display:none}}
@media(max-width:520px){.screen{width:min(100% - 18px,1120px);padding-top:16px}.title-card{padding:38px 18px}.portrait-card{min-height:390px}.object-grid{grid-template-columns:1fr}.wig-grid{grid-template-columns:1fr}.wig-grid .wig-option:last-child{grid-column:auto}.wig-option{display:grid;grid-template-columns:104px 1fr;min-height:104px}.wig-thumb{aspect-ratio:1/1}.case-stats{grid-template-columns:1fr}.top-actions .label{display:none}.calendar-row{grid-template-columns:78px 1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
