:root{
  --bg:#0b0809; --bg2:#151012; --card:#1c1517; --card2:#241a1d; --line:#3a2a2e;
  --text:#f4ead5; --muted:#c2b39a; --gold:#e9b44c; --gold2:#ffd27a; --blood:#c0182f; --blood2:#ff4d63; --green:#7bd88f;
  --radius:14px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:radial-gradient(ellipse at 50% -10%,#3a1d16 0%,#170d0e 35%,var(--bg) 70%) fixed;color:var(--text);
  font-family:"Crimson Pro",Georgia,"Times New Roman",serif;font-size:20px;line-height:1.5;min-height:100vh;
  padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.fog{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 110%,rgba(120,20,30,.18),transparent 45%),radial-gradient(circle at 85% 100%,rgba(233,180,76,.08),transparent 40%);z-index:0}
main{position:relative;z-index:1;max-width:760px;margin:0 auto;padding:16px 16px 80px}
main.wide{max-width:1200px}
h1,h2,h3{font-family:Cinzel,Georgia,serif;letter-spacing:.03em;line-height:1.2;margin:.6em 0 .4em}
h1{font-family:"Cinzel Decorative",Cinzel,serif;font-size:2.1rem;color:var(--gold2);text-align:center;text-shadow:0 0 18px rgba(233,180,76,.45),0 0 2px #000}
h2{font-size:1.45rem;color:var(--gold)}
h3{font-size:1.15rem;color:var(--gold2)}
p{margin:.5em 0}
a{color:var(--gold2)}
.center{text-align:center}
.muted{color:var(--muted)}
.small{font-size:.85rem}
.candle{display:block;text-align:center;font-size:2.6rem;animation:flicker 3s infinite;filter:drop-shadow(0 0 14px rgba(255,190,90,.7))}
@keyframes flicker{0%,100%{opacity:1;transform:scale(1)}45%{opacity:.85;transform:scale(.97) rotate(-1deg)}50%{opacity:1}70%{opacity:.9;transform:scale(1.02) rotate(1deg)}}
.tagline{text-align:center;color:var(--muted);font-style:italic;margin-top:-.3em}
.card{background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin:14px 0;box-shadow:0 8px 30px rgba(0,0,0,.45);overflow-wrap:anywhere}
.card.blood{border-color:#6a1a26;box-shadow:0 0 0 1px rgba(192,24,47,.25),0 8px 30px rgba(0,0,0,.5)}
.card.gold{border-color:#6b5223;box-shadow:0 0 22px rgba(233,180,76,.12),0 8px 30px rgba(0,0,0,.5)}
.card.new{animation:glow 2.4s ease-out 2}
@keyframes glow{0%{box-shadow:0 0 0 0 rgba(255,210,122,.9)}100%{box-shadow:0 0 0 18px rgba(255,210,122,0)}}
.label{font-family:Cinzel,serif;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blood2);margin-bottom:.3em}
button,.btn{font:inherit;font-family:Cinzel,serif;font-weight:700;font-size:1.05rem;letter-spacing:.04em;border-radius:12px;border:1px solid #8a6a2c;
  background:linear-gradient(180deg,#e9b44c,#b9822a);color:#1a0f08;padding:14px 20px;min-height:52px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4em;text-decoration:none;touch-action:manipulation}
button:active{transform:translateY(1px)}
button:disabled{opacity:.45;cursor:not-allowed}
button.secondary,.btn.secondary{background:transparent;color:var(--gold2);border-color:var(--line)}
button.danger{background:linear-gradient(180deg,#c0182f,#8a0f20);color:#fff;border-color:#5a0a15}
button.small{font-size:.85rem;min-height:38px;padding:6px 12px}
button.block{width:100%}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.row > *{flex:1 1 auto}
.stack > * + *{margin-top:10px}
input,textarea,select{font:inherit;font-size:1rem;width:100%;background:#0f0b0c;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:12px;}
textarea{min-height:110px;resize:vertical;line-height:1.4}
input:focus,textarea:focus,select:focus{outline:2px solid var(--gold);outline-offset:1px}
label{display:block;font-family:Cinzel,serif;font-size:.85rem;color:var(--muted);margin:12px 0 4px;letter-spacing:.05em}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.tabs button{flex:1 1 30%;font-size:.9rem;min-height:44px;padding:8px}
.tabs button:not(.on){background:transparent;color:var(--muted);border-color:var(--line)}
ul.clean{list-style:none;padding:0;margin:0}
ul.secrets{padding-left:1.1em;margin:.3em 0}
ul.secrets li{margin:.35em 0}
.pick{display:block;width:100%;text-align:left;font-family:"Crimson Pro",serif;font-weight:400;background:linear-gradient(180deg,#2a1e21,#1c1517);color:var(--text);border-color:var(--line);margin:10px 0;padding:14px 16px}
.pick .g{font-family:Cinzel,serif;font-weight:700;font-size:1.3rem;color:var(--gold2);display:block}
.pick .c{display:block;color:var(--muted);font-size:1rem}
.pick.taken{opacity:.45}
.pill{display:inline-block;border-radius:999px;padding:3px 10px;font-size:.8rem;font-family:Cinzel,serif;border:1px solid var(--line);background:#120d0e}
.pill.ok{color:var(--green);border-color:#2d5a38}
.pill.bad{color:var(--blood2);border-color:#6a1a26}
.pill.wait{color:var(--gold2);border-color:#6b5223}
.statusbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;margin:-16px -16px 8px;background:rgba(11,8,9,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);font-size:.9rem}
.statusbar > span{flex:none;white-space:nowrap}
.statusbar .vote-strip{flex:1;min-width:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;line-height:1.5;font-size:.75rem}
.statusbar .vote-strip > summary{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;font-family:inherit;font-size:inherit;line-height:1.5;white-space:nowrap}
.statusbar .vote-strip > summary::before{content:none}
.vote-strip > summary:focus-visible{outline:1px solid var(--gold);outline-offset:2px}
.vote-strip-label{color:var(--gold2);font-weight:700}
.vote-strip > summary .vote-strip-label{overflow:hidden;text-overflow:ellipsis}
.vote-compact{display:none;color:var(--gold2);font-weight:700}
.vote-expand{flex:none;color:var(--gold2)}
.vote-strip[open] .vote-expand{transform:rotate(180deg)}
.vote-history{position:absolute;top:100%;left:0;right:0;max-height:min(60vh,420px);overflow-y:auto;white-space:normal;overflow-wrap:anywhere;padding:14px 16px;background:#140f11;border:1px solid var(--line);border-radius:0 0 12px 12px;box-shadow:0 12px 25px #000;font-size:.9rem}
.vote-chip{display:block;color:var(--muted);padding:5px 0;border-bottom:1px solid var(--line)}
@media(max-width:600px){.vote-strip > summary .vote-strip-label{display:none}.vote-compact{display:inline}}
.game-exit{display:flex;justify-content:flex-end;margin:8px 0}
.qr{background:#f4ead5;padding:12px;border-radius:12px;display:inline-block;line-height:0}
.qr svg{width:min(70vw,300px);height:auto}
.roomcode{font-family:Cinzel,serif;font-size:2.6rem;letter-spacing:.3em;color:var(--gold2);text-shadow:0 0 14px rgba(233,180,76,.4)}
.roster li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.roster li:last-child{border-bottom:0}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:#555;margin-right:8px;vertical-align:middle;flex:none}
.dot.on{background:var(--green);box-shadow:0 0 8px var(--green)}
.dot.half{background:var(--gold)}
.narration{font-size:1.25rem;line-height:1.6;white-space:normal}
.narration p:first-letter{}
.bar{height:30px;background:#0f0b0c;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:4px 0 10px}
.bar > span{display:block;height:100%;background:linear-gradient(90deg,#8a0f20,#c0182f);transition:width .4s}
.grid2{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:900px){.grid2{grid-template-columns:3fr 2fr}}
details{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:10px 0;background:#140f11}
details > summary{cursor:pointer;font-family:Cinzel,serif;color:var(--gold2);font-size:1rem;list-style:none}
details > summary::-webkit-details-marker{display:none}
details > summary::before{content:"▸ ";color:var(--blood2)}
details[open] > summary::before{content:"▾ "}
.err{color:#ffb3bd;background:#2a0d12;border:1px solid #6a1a26;border-radius:10px;padding:10px 14px;margin:10px 0}
.err ul{margin:.3em 0;padding-left:1.2em}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#2a1e21;border:1px solid var(--gold);color:var(--gold2);padding:12px 18px;border-radius:12px;z-index:50;font-family:Cinzel,serif;box-shadow:0 10px 30px #000;max-width:90vw;text-align:center}
.reveal-name{font-family:"Cinzel Decorative",serif;font-size:2rem;color:var(--blood2);text-align:center;text-shadow:0 0 20px rgba(192,24,47,.7);margin:.3em 0}
.vote-btn{display:block;width:100%;margin:8px 0;text-align:left;background:#1c1517;color:var(--text);border-color:var(--line);font-family:"Crimson Pro",serif;font-weight:600;font-size:1.15rem}
.vote-btn.on{background:linear-gradient(180deg,#c0182f,#8a0f20);color:#fff;border-color:#ff4d63}
hr{border:0;border-top:1px solid var(--line);margin:18px 0}
.footer{margin-top:30px;text-align:center;font-size:.85rem;color:var(--muted)}
code,pre{font-family:ui-monospace,Menlo,monospace;font-size:.85rem}
.editchar input,.editchar textarea{margin-bottom:4px}
.library-item{justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.library-item:last-child{border-bottom:0}
.library-actions{justify-content:flex-end;flex:0 0 auto}
.guest-entry > input{min-width:min(220px,100%)}
.guest-item{justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line)}
.guest-item:last-child{border-bottom:0}
.cast-assignment{justify-content:space-between}
.cast-assignment > div{flex:1 1 240px}
.player-assignment label{margin-top:0}
input[type=checkbox]{width:auto;accent-color:var(--gold);transform:scale(1.2);margin-right:8px}
label.check-row{display:flex;align-items:center;gap:8px;margin:12px 0}
html{background:var(--bg)}
h1,h2,h3,.reveal-name,.roomcode,button{font-variant-ligatures:none;font-feature-settings:"liga" 0,"dlig" 0,"clig" 0}
.toast{bottom:auto;top:calc(56px + env(safe-area-inset-top));font-size:1rem;padding:8px 16px}
.actions{position:sticky;bottom:0;z-index:4;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(11,8,9,0),rgba(11,8,9,.95) 30%)}

/* Atmosphere is decorative; game text and controls remain available throughout. */
body[data-theme=witch]{--gold:#c7a46a;--gold2:#f3d6a0;--card:#191a15;--card2:#26231b;--line:#464233;background:radial-gradient(ellipse at 50% 0,#42422b 0,#1a1c16 40%,#090c0a 85%) fixed}
body[data-theme=farm]{--gold:#9ebbd1;--gold2:#d8eaff;--card:#111e29;--card2:#1b2a36;--line:#34495c;background:radial-gradient(ellipse at 50% 0,#30495b 0,#111d28 45%,#080c12 90%) fixed}
body[data-theme=victorian]{--gold:#deb074;--gold2:#ffe0aa;--card:#211819;--card2:#302125;--line:#52383f;background:radial-gradient(ellipse at 50% 0,#533027 0,#271a20 40%,#0e090c 85%) fixed}
.atmosphere-layer{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.story-camera{position:absolute;inset:-4%;animation:story-approach 44s ease-in-out infinite alternate;transform-origin:50% 50%}
.story-photograph{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.25) brightness(.7) contrast(1.12)}
.atmosphere-layer[data-scene=witch] .story-photograph{filter:saturate(.22) brightness(.5) sepia(.2)}
.atmosphere-layer[data-scene=farm] .story-photograph{filter:saturate(.1) brightness(.62);object-position:48% center}
.atmosphere-layer[data-scene=victorian] .story-photograph{filter:saturate(.45) brightness(.8)}
.story-light{position:absolute;inset:0;background:radial-gradient(ellipse at 80% 25%,#c5d4ec24,transparent 50%);animation:story-lamplight 16s ease-in-out infinite alternate}
.atmosphere-layer[data-scene=witch] .story-light{background:radial-gradient(ellipse at 15% 80%,#d29c4138,transparent 60%);animation-duration:23s}
.atmosphere-layer[data-scene=victorian] .story-light{background:radial-gradient(ellipse at 80% 50%,#d59a482e,transparent 55%);animation-duration:19s}
.story-mist{position:absolute;inset:35% -50% -30%;background:url('../assets/fog.svg') center / 70% 100% repeat-x;opacity:.42;animation:manor-fog 38s ease-in-out infinite alternate}
.story-mist.mist-front{inset:65% -60% -40%;opacity:.55;animation-duration:29s;animation-direction:alternate-reverse}
.atmosphere-layer[data-scene=witch] .story-mist{inset:10% -50% -20%;opacity:.6}
.atmosphere-layer[data-scene=victorian] .story-mist{opacity:.25}
.story-weather{display:none;position:absolute;inset:-50%;opacity:.35}
.atmosphere-layer[data-scene=farm] .story-weather{display:block;background-image:radial-gradient(ellipse at 20% 20%,#e6f5ff99 0 1px,transparent 3px),radial-gradient(ellipse at 70% 50%,#e6f5ff66 0 2px,transparent 4px);background-size:190px 270px,330px 410px;animation:snow-drift 16s linear infinite}
.atmosphere-vignette{position:absolute;inset:0;background:linear-gradient(90deg,#04070b55,#04070b22 50%,#04070b55),radial-gradient(ellipse at center,#06081022,rgba(0,0,0,.65) 100%);transition:background-color 1.5s}
body:not([data-phase=home]) .fog{display:none}
body:not([data-phase=home]) main{background:linear-gradient(180deg,#0b0b1099,#0b0b1080);border-radius:16px;margin-top:16px;box-shadow:0 18px 60px #0005}
body[data-theme=witch]:not([data-phase=home]) main{background:linear-gradient(180deg,#11150e99,#11150e80)}
body[data-theme=farm]:not([data-phase=home]) main{background:linear-gradient(180deg,#08121d99,#08121d80)}
body[data-theme=victorian]:not([data-phase=home]) main{background:linear-gradient(180deg,#180f1399,#180f1380)}
body[data-phase=vote] .atmosphere-vignette{background-color:#18060925}
body[data-phase=reveal] .story-light{opacity:.8}
@keyframes story-approach{from{transform:scale(1) translate3d(-.5%,0,0)}to{transform:scale(1.08) translate3d(.5%,-1%,0)}}
@keyframes story-lamplight{from{opacity:.3;transform:translateX(-3%)}to{opacity:.85;transform:translateX(3%)}}
@media(max-width:780px){body:not([data-phase=home]) main{margin-top:72px}}
.scene-dim .atmosphere-vignette{background-color:rgba(0,0,0,.28)}
.atmosphere-controls{position:relative;z-index:2;max-width:728px;margin:12px auto 0;padding:8px 14px;background:rgba(15,11,12,.7)}
.atmosphere-controls summary{font-size:.78rem;letter-spacing:.08em}
.atmosphere-controls p{max-width:52ch}
.scene-banner{position:fixed;z-index:40;top:calc(60px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);pointer-events:none;padding:12px 22px;border:1px solid var(--gold);border-radius:12px;background:#170f13;color:var(--gold2);box-shadow:0 8px 32px #0009;text-align:center;font-family:Cinzel,serif;font-size:1rem}
.scene-banner[hidden]{display:none}
.hero-eyebrow{text-align:center;text-transform:uppercase;letter-spacing:.25em;font-size:.75rem;color:var(--muted)}
.hero-title{font-size:clamp(2rem,6vw,3.6rem);margin:.3em 0}
.card{position:relative}
.card.gold{background:linear-gradient(145deg,var(--card2),var(--card));border-top-color:var(--gold)}
button,.pick,.vote-btn{transition:box-shadow .2s,border-color .2s,background-color .2s,transform .2s}
button:hover:not(:disabled){box-shadow:0 0 18px rgba(233,180,76,.18);border-color:var(--gold)}
button:focus-visible,summary:focus-visible{outline:2px solid var(--gold2);outline-offset:4px}
.roomcode{padding:8px 0;overflow-wrap:anywhere}
.dot.on{box-shadow:0 0 0 3px #7bd88f20,0 0 10px var(--green)}
.character-envelope{overflow:hidden;padding-top:24px;border-top:3px solid var(--gold)}
.character-envelope::before{content:"";position:absolute;inset:0 0 auto;height:12px;background:linear-gradient(135deg,transparent 48%,var(--line) 49% 51%,transparent 52%);pointer-events:none}
.wax-seal{float:right;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;margin:0 0 8px 10px;background:radial-gradient(circle at 35% 25%,#b84950,#651522);border:3px double #c87670;color:#ffe0bc;font:700 .85rem Cinzel,serif;box-shadow:0 3px 8px #0006}
ul.clue-cards{list-style:none;padding:0;display:grid;gap:10px}
ul.clue-cards li{margin:0;padding:12px 14px;border-left:3px solid var(--gold);border-radius:0 9px 9px 0;background:rgba(255,255,255,.035)}
.vote-btn.on{border:2px solid var(--gold2);box-shadow:inset 0 0 20px #0002}
#my-vote:not(.muted){border:1px solid var(--gold);padding:10px 14px;border-radius:10px;color:var(--gold2)}
body[data-phase=reveal] .reveal-name{font-size:clamp(1.8rem,5vw,3.4rem);padding:16px 0}
.event-enter{animation:chapter-enter .75s ease-out}
.event-character{animation:envelope-open 1.1s ease-out}
.event-reveal{animation:truth-reveal 1.8s ease-out}
.event-sealed{animation:seal-stamp .5s ease-out}
@keyframes drift-motes{from{transform:translate3d(0,0,0)}to{transform:translate3d(50px,-100px,0)}}
@keyframes snow-drift{from{transform:translate3d(0,-80px,0)}to{transform:translate3d(60px,180px,0)}}
@keyframes ash-rise{from{transform:translate3d(0,80px,0)}to{transform:translate3d(-40px,-120px,0)}}
@keyframes chapter-enter{from{transform:translateY(14px);filter:brightness(.65)}to{transform:translateY(0);filter:brightness(1)}}
@keyframes envelope-open{0%{transform:perspective(800px) rotateX(-12deg);box-shadow:0 0 35px #e9b44c55}100%{transform:perspective(800px) rotateX(0);box-shadow:0 8px 30px #0007}}
@keyframes truth-reveal{0%{transform:scale(.95);text-shadow:0 0 35px var(--blood2)}65%{transform:scale(1.025);text-shadow:0 0 24px var(--blood2)}100%{transform:scale(1);text-shadow:0 0 20px #c0182f99}}
@keyframes seal-stamp{0%{transform:scale(1.04)}50%{transform:scale(.98)}100%{transform:scale(1)}}
body[data-effects=off] *,body[data-motion=reduced] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body[data-effects=off] .story-mist,body[data-effects=off] .story-weather,body[data-effects=off] .story-light{display:none}
@media(max-width:780px){.atmosphere-controls{margin:10px 16px 0}.scene-banner{font-size:.85rem;padding:10px 14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

body[data-phase=home]{background:#080d13}
body[data-phase=home] main{max-width:none;padding:0 28px 40px;isolation:isolate}
body[data-phase=home] .fog,body[data-phase=home] .atmosphere-layer{display:none}
.manor-scene{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:#080d13}
.manor-camera{position:absolute;inset:-3%;transform-origin:65% 55%;animation:manor-approach 34s ease-in-out infinite alternate;will-change:transform}
.manor-landscape{display:block;width:100%;height:100%}
.manor-photograph{filter:saturate(.28) brightness(.68) contrast(1.2)}
.manor-window{opacity:.5;animation:manor-window-glow 14s ease-in-out infinite}
.window-left{animation-delay:-8s;animation-duration:21s}
.window-lower{animation-delay:-5s;animation-duration:18s}
.manor-shadow{opacity:0;animation:manor-passing-shadow 25s ease-in-out infinite}
.manor-cloud-shadow{position:absolute;inset:-30%;background:radial-gradient(ellipse at 25% 35%,#01070c88,transparent 48%);animation:manor-clouds 40s ease-in-out infinite alternate}
.manor-mist{position:absolute;inset:25% -50% -25%;opacity:.65;background:url('../assets/fog.svg') center / 70% 100% repeat-x;animation:manor-fog 38s ease-in-out infinite alternate;will-change:transform}
.mist-front{inset:55% -60% -40%;opacity:.75;animation-duration:27s;animation-direction:alternate-reverse}
.manor-rain{position:absolute;inset:-100%;opacity:.12;background-image:repeating-linear-gradient(105deg,transparent 0 89px,#b9c9d033 90px,transparent 91px 177px);background-size:241px 163px;mask-image:repeating-linear-gradient(0deg,transparent 0 18px,#000 19px 30px,transparent 31px 97px);animation:manor-rainfall 1.3s linear infinite}
.manor-scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,#04070be8 0%,#05080bc9 28%,#05080b45 58%,#03060a15 100%),linear-gradient(0deg,#04070bc9,transparent 48%),radial-gradient(ellipse at 65% 45%,transparent 40%,#02050a66)}
.landing-content{max-width:1180px;margin:auto;padding-top:clamp(28px,7vh,90px)}
.landing-heading{max-width:590px;text-shadow:0 2px 12px #000}
.landing-heading .hero-title{font-size:clamp(2.1rem,4.4vw,3.5rem)}
.landing-heading .hero-eyebrow,.landing-heading .hero-title,.landing-heading .tagline{text-align:left}
.landing-heading .tagline{color:#ded6c9;max-width:43ch}
.manor-caption{color:#b4bec7;font-size:.95rem;font-style:italic;margin:16px 0 26px}
.landing-actions{max-width:470px}
body[data-phase=home] .card,body[data-phase=home] .card.gold{background:linear-gradient(135deg,#111820eb,#121318ed);border-color:#63616a;box-shadow:0 12px 36px #0005}
body[data-phase=home] .card.gold{border-top-color:var(--gold)}
body[data-phase=home] .atmosphere-controls{max-width:1180px;margin:12px auto 0;background:#0a1017c9}
body[data-phase=home] .atmosphere-particles{display:none}
body[data-effects=off] .manor-mist,body[data-effects=off] .manor-rain,body[data-effects=off] .manor-cloud-shadow{display:none}
body[data-motion=reduced] .manor-rain{display:none}
@keyframes manor-approach{from{transform:scale(1) translate3d(-1%,0,0)}to{transform:scale(1.12) translate3d(1%,-1%,0)}}
@keyframes manor-clouds{from{transform:translate3d(-12%,0,0)}to{transform:translate3d(12%,5%,0)}}
@keyframes manor-window-glow{0%,100%{opacity:.32}28%{opacity:.7}40%{opacity:.5}62%{opacity:.18}78%{opacity:.6}}
@keyframes manor-passing-shadow{0%,30%,65%,100%{opacity:0;transform:translateX(-30px)}38%{opacity:.8;transform:translateX(0)}53%{opacity:.85;transform:translateX(45px)}61%{opacity:0;transform:translateX(65px)}}
@keyframes manor-fog{from{transform:translate3d(-8%,3%,0)}to{transform:translate3d(8%,-3%,0)}}
@keyframes manor-rainfall{from{transform:translate3d(0,-97px,0)}to{transform:translate3d(-26px,0,0)}}
@media(max-width:780px){
  body[data-phase=home] main{padding:0 16px 32px}
  body[data-phase=home] .atmosphere-controls{margin:10px 16px 0}
  .landing-content{padding-top:28px}
  .landing-heading{max-width:590px;margin:auto}
  .landing-heading .hero-eyebrow,.landing-heading .hero-title,.landing-heading .tagline{text-align:center}
  .landing-heading .tagline{margin-left:auto;margin-right:auto}
  .manor-caption{text-align:center;margin-bottom:clamp(100px,19vh,180px)}
  .landing-actions{max-width:470px;margin:auto}
  .manor-scene-shade{background:linear-gradient(0deg,#03070bc9,transparent 65%),linear-gradient(180deg,#03070bb3,transparent 42%),radial-gradient(ellipse at center,transparent 25%,#02050a66)}
}
@media(prefers-reduced-motion:reduce){.manor-rain{display:none}}
