:root{--ink:#e9e3dc;--muted:#9d9490;--red:#b21f37;--paper:#d9d0bc;--bg:#070609;--serif:"DM Serif Text",Georgia,serif;--sans:"Syne",sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink)}body{font-family:var(--sans);overflow-x:hidden;background:radial-gradient(circle at 50% 35%,#1b1115 0,transparent 35%),linear-gradient(#09080b,#050406)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.55),transparent 15% 85%,rgba(0,0,0,.55)),repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.018) 4px)}
.grain{position:fixed;inset:-50%;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");animation:noise .22s steps(2) infinite}
@keyframes noise{0%{transform:translate(0)}25%{transform:translate(2%,-3%)}50%{transform:translate(-3%,2%)}75%{transform:translate(3%,3%)}}
.game-header,.game-footer{position:fixed;left:0;right:0;z-index:5;display:flex;align-items:center;padding:1.2rem 2rem;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase}.game-header{top:0;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(7,6,9,.7);backdrop-filter:blur(12px)}.game-footer{bottom:0;gap:1rem;color:#756d6b;border-top:1px solid rgba(255,255,255,.06)}
.exit-link,.sound-toggle{color:#92898a;text-decoration:none}.exit-link:hover{color:#fff}.sound-toggle{padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.case-id{color:#d1485f}.progress{height:1px;flex:1;background:#272125}.progress i{display:block;width:0;height:100%;background:var(--red);transition:width .7s ease}
.game-shell{position:relative;display:grid;min-height:100vh;padding:7rem 1.5rem 6rem;place-items:center}.scene{width:min(760px,100%);animation:arrive .75s both}@keyframes arrive{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
.scene-label{color:#c63d54;font-size:.65rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.scene h1{margin:.8rem 0 1.7rem;font:400 clamp(2.7rem,7vw,5.4rem)/.95 var(--serif)}.scene h1 em{color:#c63d54}.passage{max-width:650px;margin:0 0 2.2rem;color:#c9c1bd;font:400 clamp(1.1rem,2vw,1.32rem)/1.8 var(--serif)}.passage p{margin:0 0 1.15rem}.passage .whisper{color:#e55a70;font-style:italic}.instruction{margin:0 0 1.1rem;color:#777071;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}
.choices{display:grid;gap:.75rem}.choice{position:relative;width:100%;padding:1.05rem 1.2rem;color:#d8d0cd;text-align:left;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.11);font:600 .84rem/1.45 var(--sans);cursor:pointer;transition:.25s}.choice::after{content:"→";position:absolute;right:1.1rem;color:#a52238;opacity:0;transition:.2s}.choice:hover,.choice:focus-visible{padding-left:1.5rem;color:#fff;border-color:rgba(178,31,55,.7);background:rgba(178,31,55,.08);outline:none}.choice:hover::after,.choice:focus-visible::after{opacity:1}.begin{max-width:260px;text-align:center;text-transform:uppercase;letter-spacing:.12em}
.result-card{padding:clamp(1.5rem,5vw,3.5rem);border:1px solid rgba(178,31,55,.35);background:rgba(13,9,12,.82);box-shadow:0 25px 100px #000}.result-title{color:#d24a60}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:2rem 0;background:#30252a}.result-stat{padding:1rem;background:#0d0a0c}.result-stat strong{display:block;color:#d34b61;font:400 1.8rem var(--serif)}.result-stat span{color:#777071;font-size:.57rem;letter-spacing:.12em;text-transform:uppercase}.result-actions{display:flex;flex-wrap:wrap;gap:.7rem}.result-actions a,.restart{padding:.85rem 1.1rem;color:#fff;text-decoration:none;border:1px solid #6f1c2b;background:#8f192d;font:700 .65rem var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.restart{color:#aaa;background:transparent;border-color:#3c3335}
body.disturbed .game-shell{animation:pulse 5s ease-in-out infinite}@keyframes pulse{50%{filter:contrast(1.08) brightness(.86)}}
@media(max-width:600px){.game-header{padding:1rem}.game-footer{padding:.8rem 1rem}.game-footer>span:last-child{display:none}.game-shell{padding-inline:1rem}.result-stats{grid-template-columns:1fr}.scene h1{font-size:2.8rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.grain{display:none}}

/* Exploration game */
.game-shell{display:grid;grid-template-columns:300px minmax(0,760px);gap:clamp(2rem,6vw,6rem);align-items:center;justify-content:center;place-items:initial;padding-inline:clamp(1rem,5vw,5rem)}
.game-hud{align-self:center;position:relative;z-index:2;padding:1.25rem;border:1px solid rgba(255,255,255,.09);background:rgba(8,7,9,.78);backdrop-filter:blur(14px)}
.hud-block+.hud-block{margin-top:1.4rem}.hud-label{margin:0 0 .7rem;color:#82797a;font-size:.58rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.bells{display:grid;grid-template-columns:repeat(6,1fr);gap:.35rem}.bells i{display:grid;aspect-ratio:1;place-items:center;color:#d3c9c5;border:1px solid #4b3b40;font:400 .76rem var(--serif);font-style:normal}.bells i.spent{color:#611928;border-color:#611928;background:rgba(178,31,55,.13)}
.abbey-map{position:relative;height:205px;border:1px solid #2d2729;background:linear-gradient(90deg,transparent 49.7%,#1d181a 50%,transparent 50.3%),linear-gradient(0deg,transparent 49.7%,#1d181a 50%,transparent 50.3%)}.map-room{position:absolute;left:var(--x);top:var(--y);z-index:2;width:11px;height:11px;padding:0;border:1px solid #8a7478;border-radius:50%;background:#151114;transform:translate(-50%,-50%);cursor:pointer}.map-room span{position:absolute;left:50%;top:16px;width:80px;color:#766e6e;font:600 .48rem var(--sans);letter-spacing:.05em;transform:translateX(-50%)}.map-room:hover,.map-room.current{background:#cb334d;border-color:#ed7387;box-shadow:0 0 14px rgba(203,51,77,.7)}.map-room.current span{color:#fff}.map-room.visited:not(.current){background:#70515a}.map-room.locked{opacity:.3;cursor:not-allowed}.map-line{position:absolute;background:#242023}.map-line.h1{left:18%;top:24%;width:64%;height:1px}.map-line.h2{left:18%;top:73%;width:64%;height:1px}.map-line.v1{left:50%;top:24%;width:1px;height:58%}.map-line.v2{left:82%;top:24%;width:1px;height:49%}
.inventory{display:flex;flex-wrap:wrap;gap:.4rem}.inventory span{padding:.35rem .48rem;color:#c9bfc0;border:1px solid #49383d;font-size:.52rem;letter-spacing:.06em}.inventory small{color:#585154;font-size:.65rem}.vision-toggle{width:100%;margin-top:1.3rem;padding:.8rem;color:#b9afb0;border:1px solid #5d1e2a;background:rgba(120,20,38,.08);font:700 .58rem var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.vision-toggle.on{color:#ff738b;background:rgba(178,31,55,.2);box-shadow:inset 0 0 25px rgba(178,31,55,.12)}
.room-visual{position:relative;height:clamp(150px,24vh,235px);margin:0 0 1.6rem;overflow:hidden;border:1px solid rgba(255,255,255,.08);background-color:#110e10;background-position:center;background-size:cover;box-shadow:inset 0 0 70px #000}.room-visual::before,.room-visual::after{content:"";position:absolute}.room-visual::after{inset:0;background:linear-gradient(transparent,rgba(5,4,6,.8))}.room-mark{position:absolute;left:1rem;bottom:1rem;z-index:1;color:#766b6d;font-size:.52rem;letter-spacing:.16em}.room-cell{background:linear-gradient(110deg,transparent 45%,rgba(128,26,43,.15)),repeating-linear-gradient(90deg,#100d0f 0 16%,#191315 16.5% 17%)}.room-cloister{background:radial-gradient(circle at 50% 38%,#3a3232 0 3%,transparent 4%),linear-gradient(115deg,transparent 48%,#392e31 49% 50%,transparent 51%),linear-gradient(#171417,#0a080a)}.room-kitchen{background:radial-gradient(ellipse at 25% 70%,#4b2f26 0 5%,transparent 6%),linear-gradient(90deg,#0b090a 48%,#2a1d1d 49% 51%,#0b090a 52%)}.room-church{background:radial-gradient(ellipse at 50% 20%,rgba(129,32,49,.35),transparent 18%),linear-gradient(70deg,transparent 48%,#433235 49% 50%,transparent 51%),linear-gradient(-70deg,transparent 48%,#433235 49% 50%,transparent 51%)}.room-library{background:repeating-linear-gradient(90deg,#0c0a0b 0 5%,#291d20 5.5% 6%,#0c0a0b 6.5% 12%)}.room-crypt{background:radial-gradient(ellipse at 50% 75%,#44151f,transparent 18%),repeating-linear-gradient(90deg,#090709 0 19%,#2b2224 19.5% 20%)}.altered .room-visual{filter:contrast(1.4) saturate(1.5);animation:roomFlicker 2.6s steps(2) infinite}.altered .room-mark{color:#ee526c}@keyframes roomFlicker{50%{filter:contrast(1.8) saturate(.5) invert(.06)}}.choice small{color:#7a696d;font-size:.52rem}.intro-scene{align-self:center}
@media(max-width:900px){.game-shell{grid-template-columns:1fr;align-content:start;padding-top:6.5rem}.game-hud{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-self:auto}.hud-block+.hud-block{margin-top:0}.map-block{grid-row:span 2}.vision-toggle{margin:0}.scene{padding-bottom:4rem}}
@media(max-width:600px){.game-shell{padding-top:5.5rem}.game-hud{grid-template-columns:1fr}.map-block{grid-row:auto}.abbey-map{height:170px}.scene h1{margin-bottom:1.1rem}.room-visual{height:145px}.passage{font-size:1rem;line-height:1.65}}
