@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=IM+Fell+English:ital@0;1&family=Noto+Serif+SC:wght@400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--gold:#cdb17d;--paper:#e0c79a;--muted:#ac9a7d}*{box-sizing:border-box}body{margin:0;background:#130d09;color:#e9d6b2;font-family:'IBM Plex Mono',monospace;font-size:12px}.backdrop,.vignette{position:fixed;inset:0;pointer-events:none}.backdrop{background:#21150c url('auction-hall.png') center/cover no-repeat;transition:filter .7s,transform 1s;transform:scale(1.02)}.vignette{background:linear-gradient(0deg,#090603dc,transparent 28%,#09060315 65%,#090603b3),radial-gradient(ellipse at center,transparent 20%,#08060465 100%)}header,footer{position:fixed;left:0;right:0;display:flex;justify-content:space-between;align-items:center;z-index:3;padding:23px 32px;font-size:9px;letter-spacing:2px}header{top:0;background:linear-gradient(#090603b0,transparent)}header a{color:var(--gold);font-family:Georgia;text-decoration:none;font-size:14px;letter-spacing:2px}footer{bottom:0;background:linear-gradient(transparent,#090603eb);padding-top:30px;font-size:8px;color:#b6a180}footer button{border:0;background:none;color:inherit;font:inherit;cursor:pointer}main{position:relative;z-index:2;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:90px 30px}.view{width:min(920px,100%);text-align:center;animation:arrive .65s ease}.welcome{max-width:550px;text-shadow:0 3px 18px #000}.eyebrow{font-size:9px;letter-spacing:3px;color:var(--gold);margin:20px 0}h1,h2,h3{font-family:'Cormorant Garamond',Georgia;font-weight:500}h1{font-size:clamp(65px,8vw,110px);line-height:.9;letter-spacing:4px;margin:22px 0}h2{font-size:38px;letter-spacing:2px;margin:15px 0 22px}h3{font-size:22px;font-weight:600;margin:10px 0}.welcome p{line-height:1.9;font-size:11px;letter-spacing:1px}.tag{margin:24px 0;color:#bcab8e;font-size:9px;letter-spacing:2px}.ornament{color:var(--gold);font-size:23px;letter-spacing:12px}.action{background:linear-gradient(#1a1711,#090a08);border:1px solid #b39662;color:#e7d0a3;padding:17px 30px;min-width:230px;font-family:Georgia;font-size:14px;letter-spacing:1.5px;cursor:pointer;box-shadow:0 0 0 4px #120e0980,0 0 0 5px #997a474f,inset 0 0 15px #9f794d12;position:relative;margin:18px 0}.action:before,.action:after{content:'✦';position:absolute;top:50%;transform:translateY(-50%);color:#9a7d4e}.action:before{left:9px}.action:after{right:9px}button:hover{filter:brightness(1.25)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #f1d092;outline-offset:5px}.panel{background:linear-gradient(120deg,#17130feb,#080907f2);border:1px solid #786242;padding:35px;box-shadow:0 0 0 6px #17120dc9,0 0 0 7px #6b543985,0 20px 70px #000,inset 0 0 40px #66503120}.narrow{max-width:450px;margin:auto}.paper{color:#302116;background:linear-gradient(115deg,#b39568,#e4cc9d 40%,#c3a573);border:1px solid #705134;box-shadow:0 15px 60px #000,inset 0 0 60px #7a4a2366;padding:35px;max-width:420px;margin:auto;transform:rotate(-1deg)}.paper p{line-height:1.8;font-size:11px}.wax{width:70px;height:70px;background:radial-gradient(circle at 35% 30%,#aa4631,#591e16);border-radius:45%;box-shadow:0 4px 6px #361a0f70,inset 0 0 0 5px #782b1e,inset 0 0 0 7px #b05c3940;margin:0 auto 25px;color:#dca275;font:35px Georgia;padding-top:14px}.paper .eyebrow{color:#644525}.data{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #694d354d;font-size:11px}.wallet-option{display:block;width:100%;padding:15px 18px;background:#0b0b09b3;color:#d4c19f;border:1px solid #695737;text-align:left;margin:10px 0;font:12px 'IBM Plex Mono';cursor:pointer}.wallet-option span{float:right;color:var(--gold)}.note{font-size:9px;color:var(--muted);line-height:1.9}.mission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mission{border:1px solid #705637;background:#0d0b09c4;padding:22px}.mission p{min-height:55px;font-size:10px;line-height:1.8;color:var(--muted)}.smallbtn{background:#17130e;color:var(--gold);border:1px solid #8d714c;padding:12px;cursor:pointer;font-family:inherit;font-size:10px}.inventory{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.item{background:linear-gradient(#221b13e8,#0b0c0bf7);border:1px solid #8d7048;box-shadow:inset 0 0 0 5px #32251b55,0 8px 20px #0007;padding:20px 12px;min-height:240px;color:#cdb585;cursor:pointer}.item.selected{border-color:#e7c681;box-shadow:0 0 20px #c798353b,inset 0 0 0 4px #b6995140}.item.locked{opacity:.5}.object{height:72px;font:55px Georgia;text-shadow:0 0 15px #e6b13a50;color:#d0ad62}.item:nth-child(4) .object{color:#b34735}.item h3{font-size:19px}.item p{font:9px 'IBM Plex Mono';line-height:1.7;min-height:55px;color:#af9d7e}.item small{display:block;font-size:9px;margin-top:14px}.loadoutbar{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:20px;font-size:10px}select{background:#15110b;border:1px solid #806540;color:#dec595;padding:10px}.blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:25px 0}.block{padding:22px 10px;border:1px solid #806b46;background:#080b09bf}.block strong{display:block;font:42px Georgia;margin:17px;color:#d0b680}.block small{font-size:9px;letter-spacing:1px}.check{color:#7cae84;font-size:24px}.score{font:70px 'Cormorant Garamond';margin:10px;color:var(--gold)}.hash{font-size:9px;overflow-wrap:anywhere;line-height:1.9;color:#9c907c}details{text-align:left;margin-top:20px;font-size:10px}dialog{background:#16120e;color:#d8c5a3;border:1px solid #a0875e;padding:35px;max-width:650px;line-height:1.9}dialog::backdrop{background:#000b}#close{float:right;background:none;color:var(--gold);border:0;cursor:pointer}#odds{display:flex;justify-content:space-between;gap:10px;font-size:10px}#odds strong{display:block}#toast{display:none;position:fixed;bottom:65px;left:50%;transform:translateX(-50%);z-index:10;background:#dfc393;color:#291d10;padding:15px;max-width:90%;font-size:11px}.previous{display:block;border:0;background:none;color:#b6a184;font-family:inherit;font-size:9px;cursor:pointer;margin:15px auto;letter-spacing:1px}.subtitle{font-size:10px;color:#d5c5a6;line-height:1.9;letter-spacing:1px}.case-number{border-top:1px solid #977b4c50;padding-top:14px;margin-top:25px;color:#9a8260;font-size:8px;letter-spacing:2px}@keyframes arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){header,footer{padding:18px;font-size:7px;letter-spacing:1px}header span{display:none}header a{font-size:11px}footer span:first-child{display:none}main{padding:85px 18px}.panel{padding:24px 18px}.inventory{grid-template-columns:repeat(2,1fr);gap:12px}.item{min-height:200px;padding:16px 10px}.item:last-child{grid-column:1/3}.object{height:55px;font-size:42px}.mission-grid{grid-template-columns:1fr}.mission p{min-height:0}.loadoutbar{flex-direction:column;gap:12px}h2{font-size:30px}.paper{padding:26px}.blocks{gap:8px}.block{padding:20px 6px}.block strong{font-size:30px}.backdrop{background-position:45% center}.view.wide{padding-bottom:25px}#odds{gap:5px;font-size:8px}}
body[data-stage="1"] .backdrop,body[data-stage="2"] .backdrop,body[data-stage="3"] .backdrop,body[data-stage="6"] .backdrop{background-image:url('auction-host.png')}
body[data-stage="1"] .view,body[data-stage="2"] .view,body[data-stage="3"] .view,body[data-stage="6"] .view{width:420px;margin-left:32%}
.welcome{background:radial-gradient(ellipse,#08060385,transparent 70%);padding:30px 10px}h1{color:#f3deb3;text-shadow:0 3px 12px #000,0 0 35px #000}.welcome .eyebrow,.welcome p,.welcome .tag{color:#ead3aa;text-shadow:0 2px 5px #000,0 0 10px #000}.view{animation-duration:.25s}
@media(max-width:700px){body[data-stage="1"] .view,body[data-stage="2"] .view,body[data-stage="3"] .view,body[data-stage="6"] .view{margin-left:0}body[data-stage="1"] .backdrop,body[data-stage="2"] .backdrop,body[data-stage="3"] .backdrop,body[data-stage="6"] .backdrop{background-position:28% center}.welcome{padding:30px 0}}
@media(prefers-reduced-motion:reduce){.view{animation:none}.backdrop{transition:none}}
body[data-stage="1"] .backdrop,body[data-stage="2"] .backdrop,body[data-stage="3"] .backdrop,body[data-stage="6"] .backdrop{background-position:left center}
@media(max-width:700px){body[data-stage="1"] .backdrop,body[data-stage="2"] .backdrop,body[data-stage="3"] .backdrop,body[data-stage="6"] .backdrop{background-position:20% center}}
/* Phase one: a living candlelit scene, sealed rewards, no auction actions. */
.backdrop{animation:hall-breathe 22s ease-in-out infinite alternate}.vignette:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 8% 76%,#ffb34d30,transparent 24%),radial-gradient(ellipse at 90% 62%,#ffc57524,transparent 24%);mix-blend-mode:screen;animation:candlelight 3.7s infinite alternate}.vignette:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 15% 90%,#b3976330,transparent 40%);opacity:.15;animation:hall-breathe 14s ease-in-out infinite alternate}#sound{color:#d4bd93;background:#0b080866;border:1px solid #8c70414d;padding:8px 12px;font-family:inherit;font-size:9px;cursor:pointer;letter-spacing:1px}.reward{display:inline-block;color:#d2b77c;margin-top:14px;font-size:9px}.vault{max-width:650px}.chest{position:relative;width:245px;height:145px;margin:35px auto 25px;filter:drop-shadow(0 12px 18px #0008)}.chest-lid{height:65px;border:3px solid #9e7a40;border-radius:60px 60px 5px 5px;background:repeating-linear-gradient(90deg,transparent 0 36px,#b28b474a 37px 44px,transparent 45px 75px),linear-gradient(#4e3522,#24170d);box-shadow:inset 0 5px 10px #c9a16324}.chest-body{position:relative;height:80px;border:3px solid #a07c43;background:repeating-linear-gradient(90deg,transparent 0 36px,#b28b4760 37px 44px,transparent 45px 75px),linear-gradient(#372315,#1c130c);box-shadow:inset 0 0 0 6px #0003}.chest-lock{position:absolute;top:-18px;left:calc(50% - 20px);width:40px;height:50px;border:2px solid #c5a367;background:linear-gradient(#997743,#46331c);color:#1c140b;font:25px Georgia;padding-top:9px}.sealed-slots{display:flex;justify-content:center;gap:15px}.sealed-slots div{border:1px solid #7b633d;width:130px;padding:15px 5px;background:#0c0a079c}.sealed-slots span{display:block;font:30px Georgia;color:#ad9365}.sealed-slots small{font-size:8px;line-height:1.8;color:#aa9878}.referral{padding:20px;border-top:1px solid #7b633d66;border-bottom:1px solid #7b633d66;margin:25px 0}.referral small,.tweet-draft small{display:block;color:#a28e6c;font-size:8px;letter-spacing:2px}.referral strong{display:block;margin:15px;font-size:20px;letter-spacing:2px;color:#e1c58f}.tweet-draft{text-align:left;background:#08090680;border:1px solid #6c5738;padding:20px}.tweet-draft p{font-size:10px;line-height:1.9;color:#c7b390}@keyframes candlelight{0%{opacity:.5}16%{opacity:.8}20%{opacity:.6}49%{opacity:.9}55%{opacity:.65}83%{opacity:1}100%{opacity:.75}}@keyframes hall-breathe{from{transform:scale(1.015)}to{transform:scale(1.06) translateY(-4px)}}body[data-stage="3"] .view{width:min(920px,100%);margin-left:0}body[data-stage="3"] .backdrop{background-image:url('auction-hall.png');background-position:center}body[data-stage="4"] .backdrop{background-image:url('auction-host.png');background-position:left center}@media(max-width:700px){.referral strong{font-size:17px}.sealed-slots{gap:8px}.sealed-slots div{width:100px}.chest{transform:scale(.9)}#sound{font-size:8px}header span{display:none}}@media(prefers-reduced-motion:reduce){.backdrop,.vignette:before,.vignette:after{animation:none}}
/* Artwork-anchored flames and local breathing replace global image zoom. */
.backdrop{animation:none!important;transform:none;background-image:none!important}.living-scene{display:block;width:100%;height:100%}.vignette:before,.vignette:after{animation:none;opacity:.12}
/* A gentle camera approach only on the entrance; artwork and flames move together. */
body[data-stage="0"] .backdrop{animation:entrance-approach 26s cubic-bezier(.2,.5,.3,1) forwards!important;transform-origin:50% 45%}
@keyframes entrance-approach{from{transform:scale(1)}to{transform:scale(1.055)}}
@media(prefers-reduced-motion:reduce){body[data-stage="0"] .backdrop{animation:none!important}}

/* Gothic auction typography and deliberate scene changes. */

body{font-family:'IM Fell English','Noto Serif SC',Georgia,serif;font-size:15px}h1,h2,h3,.action,header a{font-family:'Cinzel','Noto Serif SC',Georgia,serif}h1{font-size:clamp(60px,7vw,100px)}.subtitle,.welcome p{font-family:'IM Fell English','Noto Serif SC',Georgia,serif;font-size:14px}.note,.mission p,.tweet-draft p{font-family:'IM Fell English','Noto Serif SC',Georgia,serif;font-size:12px}.smallbtn{font-family:'Cinzel','Noto Serif SC',Georgia,serif}.social-link{display:flex;align-items:center;gap:8px;color:#d8bd88;text-decoration:none;font-size:11px;letter-spacing:1px}.social-link svg{width:15px;height:15px;fill:currentColor}.language-switch{display:flex;gap:3px;border:1px solid #9b7c465c;padding:3px;background:#0e0a07a0}.language-switch button{font:10px 'Cinzel','Noto Serif SC',serif;border:0;background:transparent;color:#a38b67;padding:7px 10px;cursor:pointer}.language-switch button.active{color:#f1d6a5;background:#9d7a312e}header{gap:15px}header>span{margin-left:auto}.scene-veil{position:fixed;inset:0;z-index:50;pointer-events:none;display:grid;place-items:center;background:radial-gradient(ellipse,#24140b,#080604 70%);opacity:0;transition:opacity .32s ease}.scene-veil.visible{opacity:1}.transition-seal{font:70px Georgia;color:#b08b51;width:120px;height:120px;border:1px solid #8d673d;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 8px #9b743817,0 0 70px #a26b2722;transform:scale(.9) rotate(-12deg);transition:transform .6s ease}.visible .transition-seal{transform:scale(1) rotate(0)}.view{animation:reveal-dossier .8s ease both}@keyframes reveal-dossier{from{opacity:0;filter:blur(5px);transform:translateY(12px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}html[lang="zh-CN"] body{font-family:'Noto Serif SC',serif}html[lang="zh-CN"] h1{font-size:clamp(50px,6vw,80px)}@media(max-width:700px){header{flex-wrap:wrap;padding:15px;gap:8px}header a{font-size:10px}header>span{display:none}.language-switch{margin-left:auto}.language-switch button{padding:6px;font-size:9px}#sound{font-size:8px}.social-link{font-size:9px}footer{gap:10px;flex-wrap:wrap}.note{font-size:11px}}@media(prefers-reduced-motion:reduce){.view{animation:none}.scene-veil{transition:none}.transition-seal{transition:none}}

/* Soft shadow behind copy, blending into the candlelit scene. */
.welcome{position:relative;isolation:isolate;background:none}.welcome:before{content:'';position:absolute;inset:-22px -50px;z-index:-1;pointer-events:none;border-radius:45%;background:radial-gradient(ellipse at center,rgba(5,4,3,.82) 0%,rgba(7,5,3,.65) 38%,rgba(7,5,3,.25) 65%,transparent 80%);filter:blur(20px)}
.welcome h1,.welcome p,.welcome .eyebrow,.welcome .tag,.wide:not(.panel)>h2,.wide:not(.panel)>.eyebrow,.wide:not(.panel)>.subtitle{text-shadow:0 2px 5px #000,0 0 14px #000c,0 0 30px #0009}
.panel{background:linear-gradient(120deg,rgba(20,16,12,.93),rgba(7,8,6,.94))}.panel h2,.panel h3,.panel .subtitle{text-shadow:0 2px 6px #0008}
@media(max-width:700px){.welcome:before{inset:-15px -15px;filter:blur(14px)}}
/* The house's new inscription and veil. */
header #home{font-family:'Cinzel',serif;font-size:15px;padding:12px 16px;border:1px solid #ba965255;background:linear-gradient(120deg,#2e201bb0,#09060490);box-shadow:inset 0 0 0 3px #b28c3210;letter-spacing:2px}header>span{font-size:10px;white-space:nowrap}.masked-title{display:flex;flex-direction:column;gap:8px;font-family:'Cinzel',serif!important;font-size:clamp(48px,7vw,90px)!important;line-height:1.1!important;letter-spacing:6px!important;position:relative}.masked-title>span{background:linear-gradient(110deg,#9f8050,#f3e3c1 45%,#af9060 72%,#ead5aa);background-clip:text;color:transparent;text-shadow:0 2px 25px #0006;animation:title-glimmer 9s ease-in-out infinite}.masked-title .title-the{font-size:22px;letter-spacing:12px}.masked-title .title-auction{font-size:.57em;letter-spacing:11px}#sound{position:fixed;right:22px;bottom:66px;z-index:5;font-size:9px;padding:9px 12px;border-radius:20px;background:#0b0808d9}#connect-wallet{font-size:9px;white-space:nowrap}.data strong{color:#f7eddf;font-size:14px;letter-spacing:1px;text-shadow:0 1px 2px #715330}.scene-veil{background:radial-gradient(ellipse at 50% 60%,#22160cd9,#050403fa 75%);transition:opacity .55s;overflow:hidden}.transition-seal{display:none}.transition-mask{font:90px 'Cinzel';color:#ab8c51;opacity:.25;filter:blur(2px);text-shadow:0 0 40px #9e7933}.mist{position:absolute;inset:-60%;background:radial-gradient(ellipse,#a9967a18,transparent 55%);filter:blur(35px);transform:translateX(-20%) rotate(25deg)}.visible .mist-one{animation:mist-drift 1.3s ease both}.visible .mist-two{animation:mist-drift 1.3s ease reverse both}.view{animation:reveal-dossier 1.2s ease both}dialog{max-height:85svh;overflow:auto;width:min(700px,92vw)}dialog section{padding:12px 0;border-top:1px solid #8e704237}dialog section h3{font:16px 'Cinzel';color:#d6b77c}dialog p{font:16px/1.65 'IM Fell English',serif}.chest-lid{transform-origin:50% 100%;transition:transform 1.3s,filter 1.3s}.chest.opened .chest-lid{transform:perspective(350px) rotateX(-65deg) translateY(-15px);filter:brightness(1.4)}.revealed-item strong{display:block;font:15px 'Cinzel';margin:10px 0;color:#efd6a8}.revealed-item{animation:reveal-dossier 1.6s ease both;box-shadow:inset 0 0 25px #a9783022}.vault #open-chest{margin:15px}footer{padding-right:25px}.language-switch{margin-left:auto}@keyframes title-glimmer{50%{filter:brightness(1.12)}}@keyframes mist-drift{from{transform:translateX(-25%) rotate(25deg);opacity:0}50%{opacity:1}to{transform:translateX(25%) rotate(-15deg);opacity:0}}@media(max-width:700px){header #home{font-size:10px;padding:9px}header>span{display:block;font-size:8px;order:4;width:100%;text-align:center;margin:0}header{gap:6px}#connect-wallet{font-size:8px;padding:8px}.masked-title{letter-spacing:3px!important}.masked-title .title-auction{letter-spacing:5px}#sound{bottom:65px;right:12px}.welcome{padding-top:25px}}@media(prefers-reduced-motion:reduce){.masked-title>span,.visible .mist,.revealed-item{animation:none}.chest-lid{transition:none}}
[hidden]{display:none!important}
.shield-tab{position:fixed;left:22px;bottom:94px;z-index:4;border:1px solid #a180494f;background:linear-gradient(115deg,#21170de8,#090705e8);color:#d9bc86;padding:16px 22px;font:11px 'Cinzel',serif;letter-spacing:2px;cursor:pointer;text-align:left;box-shadow:0 8px 28px #0006}.shield-tab span{font-size:19px;margin-right:9px}.shield-tab small{display:block;font-size:7px;letter-spacing:1.5px;margin-top:8px;color:#a78d63}.protocol-status{font:10px 'Cinzel',serif!important;letter-spacing:2px;color:#bfa16b}#shield-dossier{background:radial-gradient(ellipse at top left,#2c2117,#100c08 70%);padding:36px}#shield-dossier h2{font-size:36px}#shield-dossier section{margin-top:20px}@media(max-width:700px){.shield-tab{left:12px;bottom:70px;padding:10px 12px;font-size:9px}.shield-tab small{font-size:6px}.shield-tab span{font-size:13px}body:has(.vault) .shield-tab,body:has(.mission-grid) .shield-tab{position:absolute;top:130px;bottom:auto}.view:has(.mission-grid),.vault{margin-top:70px}}
dialog{position:fixed;padding-top:50px!important}dialog #close,dialog #shield-close,dialog #wallet-close{position:sticky;top:-38px;float:right;display:grid;place-items:center;width:30px;height:30px;margin:-35px -16px 0 0;padding:0;border:1px solid #ad8b4940;border-radius:50%;background:#16100bef;color:#e4c68e;font:24px/1 Georgia;z-index:5;cursor:pointer;letter-spacing:0}dialog #close:hover,dialog #shield-close:hover,dialog #wallet-close:hover{background:#312216;border-color:#c39b60}

footer .shield-tab{position:static;inset:auto;background:none;border:0;box-shadow:none;padding:0;font:10px 'Cinzel',serif;letter-spacing:1.4px;color:#d9bc86}body:has(.vault) footer .shield-tab,body:has(.mission-grid) footer .shield-tab{position:static;inset:auto}.view:has(.mission-grid),.vault{margin-top:0}@media(max-width:700px){footer .shield-tab{font-size:8px;letter-spacing:.6px}}

/* A candlelit seal marks the passage between chambers. */
.scene-veil{background:transparent;opacity:0;transition:opacity .25s;isolation:isolate}.scene-veil.visible{opacity:1}.ritual-iris{position:absolute;inset:0;background:radial-gradient(ellipse at center,#100a06 0%,#030201 70%);clip-path:circle(0% at 50% 50%)}.visible .ritual-iris{animation:ritual-close .65s cubic-bezier(.3,.05,.3,1) forwards}.visible.opening .ritual-iris{animation:ritual-open .85s cubic-bezier(.2,.6,.4,1) forwards}.ritual-sigil{width:160px;height:160px;opacity:0;position:relative;filter:drop-shadow(0 0 14px #ad6b2829)}.ritual-sigil svg{width:100%;height:100%;fill:none;stroke:#bf9355;stroke-width:1;stroke-linecap:round}.ritual-sigil svg path:last-child{fill:#29190e;stroke:#dac098;stroke-width:1.5}.visible .ritual-sigil{animation:ritual-mark .7s ease forwards}.visible.opening .ritual-sigil{animation:ritual-release .45s ease forwards}.ritual-light{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 70%,#c778281c,transparent 60%);opacity:0}.visible .ritual-light{animation:ritual-mark .7s ease forwards}.visible.opening .ritual-light{animation:ritual-release .7s ease forwards}.view{animation:ritual-arrival .9s ease both}@keyframes ritual-close{to{clip-path:circle(85% at 50% 50%)}}@keyframes ritual-open{from{clip-path:circle(85% at 50% 50%)}to{clip-path:circle(0% at 50% 50%)}}@keyframes ritual-mark{0%,45%{opacity:0;transform:scale(.97)}100%{opacity:1;transform:scale(1)}}@keyframes ritual-release{from{opacity:1}to{opacity:0;filter:blur(5px)}}@keyframes ritual-arrival{from{opacity:0;filter:brightness(.35)}to{opacity:1;filter:brightness(1)}}@media(prefers-reduced-motion:reduce){.scene-veil,.view,.ritual-iris,.ritual-sigil,.ritual-light{animation:none!important;transition:none!important}}

/* Quiet transitions keep the candlelit room present. */
.scene-veil{display:none!important}.scene-crossfade{position:fixed;inset:0;pointer-events:none;background-color:#130d09;background-size:cover;background-repeat:no-repeat;opacity:1;transition:opacity .6s ease;will-change:opacity}.scene-crossfade.dissolve{opacity:0}#screen{transition:opacity .2s ease}#screen.leaving{opacity:0}.view{animation:quiet-arrival .5s ease both}@keyframes quiet-arrival{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){#screen,.scene-crossfade{transition:none}.view{animation:none}}
