/* Generated art carries the scene; these layers provide depth and pacing. */
.vaelthryx-attack-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:14}
.vaelthryx-arena-atmosphere{position:absolute;inset:0;z-index:1;pointer-events:none;background:url('assets/scene/vaelthryx-mist.webp') 50% 3%/112% auto no-repeat;mix-blend-mode:screen;opacity:.19;mask-image:linear-gradient(#000 0%,#000 32%,transparent 57%);animation:vaelthryx-arena-mist 19s ease-in-out infinite alternate}
@keyframes vaelthryx-arena-mist{to{background-position:43% 5%;background-size:120% auto;opacity:.3}}
@media(prefers-reduced-motion:reduce){.vaelthryx-arena-atmosphere{animation:none}}
.vaelthryx-next-head{position:absolute;top:19%;left:50%;transform:translateX(-50%);max-width:68%;z-index:16;padding:6px 13px;border:1px solid #cfac6a70;border-radius:30px;color:#f3d493;background:#100d21e8;font:600 clamp(8px,1.1vw,12px)/1.3 system-ui;text-align:center;pointer-events:none;box-shadow:0 4px 22px #0008}
.vaelthryx-next-head[data-head=frost]{color:#abebff;border-color:#86dfff80}.vaelthryx-next-head[data-head=void]{color:#d8adff;border-color:#b686e580}.vaelthryx-next-head[data-head=rest]{color:#aaf0c5;border-color:#8dd5b180}
.vaelthryx-shrine-panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,1fr);gap:clamp(16px,3vw,36px);align-items:center;width:min(900px,92vw);max-height:88dvh;overflow:auto;padding:clamp(20px,4vw,44px);color:#f3eddf;background:radial-gradient(ellipse at 24% 55%,#291742 0,transparent 57%),linear-gradient(135deg,#10141f,#080a13);border:1px solid #b99c6466;border-radius:18px;box-shadow:0 22px 100px #000b,inset 0 0 65px #8c52c614}
.vaelthryx-shrine-art{position:relative;isolation:isolate;width:100%;aspect-ratio:1/1.1}
.vaelthryx-shrine-art>img:first-of-type{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2;filter:drop-shadow(0 12px 20px #000a)}
.vaelthryx-aperture{position:absolute;inset:31% 29% 31%;border-radius:50% 50% 12% 12%;background:#090613;opacity:.8;z-index:1}
.is-open .vaelthryx-aperture{background:#261338 url('assets/scene/vaelthryx-transit.webp') 50% 45%/310% auto;box-shadow:0 0 28px #a564ef60;animation:vaelthryx-aperture 7s ease-in-out infinite alternate}
.vaelthryx-shrine-art .vaelthryx-orb{position:absolute;width:14%;height:15%;object-fit:contain;left:43%;top:58%;z-index:3;filter:drop-shadow(0 0 9px #a273ff);animation:vaelthryx-relic-float 3s ease-in-out infinite alternate}
.vaelthryx-eyebrow{font-size:10px;letter-spacing:.26em;font-weight:700;color:#cdb989}
.vaelthryx-shrine-copy h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(25px,3.2vw,38px);line-height:1.13;letter-spacing:-.02em;margin:10px 0 20px;color:#fff4db}
.vaelthryx-shrine-copy>p:not(.vaelthryx-eyebrow){font-size:14px;line-height:1.65;color:#c5c2cd}
.vaelthryx-checkpoints{display:grid;gap:9px;margin:24px 0 16px}
.vaelthryx-shrine-panel button,.vaelthryx-transit button{min-height:42px;padding:10px 18px;border:1px solid #bba26b75;border-radius:6px;background:linear-gradient(120deg,#54403165,#27213990);color:#ffefca;font:600 13px system-ui;cursor:pointer}
.vaelthryx-shrine-panel button:disabled{opacity:.34;cursor:default}
.vaelthryx-shrine-panel button:focus-visible,.vaelthryx-transit button:focus-visible{outline:2px solid #b8ebff;outline-offset:3px}
.vaelthryx-shrine-panel button:not(:disabled):hover{border-color:#efd7a2;background:#65503988}
.vaelthryx-shrine-copy>[data-vaelthryx-close]{background:transparent;color:#b8b3c2;border-color:#a59bb136}
.vaelthryx-transit{position:fixed;inset:0;z-index:12000;overflow:hidden;background:#090612;color:#fff1d6;isolation:isolate;animation:vaelthryx-scene-in .4s ease both}
.vaelthryx-transit-plate{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 46%;transform-origin:50% 46%;animation:vaelthryx-transit-push 3.7s cubic-bezier(.36,.03,.6,.95) both}
.vaelthryx-transit-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 44%,transparent 22%,#070410cc 91%),linear-gradient(transparent 62%,#080410ee);z-index:2}
.vaelthryx-transit-shrine{display:none;position:absolute;width:min(60vh,66vw);height:min(67vh,73vw);left:50%;top:44%;transform:translate(-50%,-50%);z-index:4}
.vaelthryx-transit-shrine>img:first-child{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 32px #bf95eb88)}
.vaelthryx-transit-orb{position:absolute;width:14%;height:15%;object-fit:contain;left:43%;top:58%;filter:drop-shadow(0 0 22px #aa71ff);animation:vaelthryx-orb-seat 1.5s ease-in-out both}
.is-placing .vaelthryx-transit-shrine{display:block;animation:vaelthryx-shrine-dissolve 4.9s ease both}
.is-placing .vaelthryx-transit-plate{animation-duration:4.9s}
.vaelthryx-transit-copy{position:absolute;bottom:12%;left:8%;right:8%;z-index:5;text-align:center;text-shadow:0 2px 16px #000;animation:vaelthryx-title-in 1.2s .3s ease both}
.vaelthryx-transit-copy p{font:600 11px system-ui;letter-spacing:.32em;color:#d4c4de}
.vaelthryx-transit-copy h2{font:400 clamp(25px,4.4vw,56px)/1.15 Georgia,serif;letter-spacing:.01em;margin:12px 0}
.vaelthryx-transit button{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:6;background:#0e081a99}
.vaelthryx-transit.is-leaving{pointer-events:none;animation:vaelthryx-scene-out .6s ease both}
.vaelthryx-reward-scene{background:#10091b url('assets/maps/vaelthryx-sanctum-map.webp') center/cover}
.vaelthryx-reward-scene .crab-reward-bg{background:radial-gradient(ellipse,#7745bb33,#070412e8)}
.vaelthryx-reward-scene .crab-reward-baby{width:min(75vw,660px);height:min(64vh,660px);object-fit:contain;filter:drop-shadow(0 0 20px #907bcf77)}
.vaelthryx-reward-scene .crab-reward-copy{background:linear-gradient(transparent,#080712f0 24%);padding:24px 20px}
@keyframes vaelthryx-aperture{to{background-position:53% 42%;filter:brightness(1.22)}}
@keyframes vaelthryx-relic-float{to{transform:translateY(-4px)}}
@keyframes vaelthryx-scene-in{from{opacity:0}to{opacity:1}}
@keyframes vaelthryx-scene-out{from{opacity:1}to{opacity:0}}
@keyframes vaelthryx-transit-push{0%{transform:scale(1);filter:brightness(.35)}25%{filter:brightness(.8)}76%{filter:brightness(1.1)}100%{transform:scale(1.9);filter:brightness(.6)}}
@keyframes vaelthryx-title-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes vaelthryx-orb-seat{0%{transform:translateY(68px) scale(1.6);opacity:0}35%{opacity:1}100%{transform:translateY(0) scale(1)}}
@keyframes vaelthryx-shrine-dissolve{0%,28%{opacity:1;transform:translate(-50%,-50%) scale(1)}57%,100%{opacity:0;transform:translate(-50%,-50%) scale(2.4)}}
@media(max-width:640px){.vaelthryx-shrine-panel{grid-template-columns:1fr;gap:4px;padding:20px;width:min(92vw,470px)}.vaelthryx-shrine-art{height:210px;aspect-ratio:auto;width:210px;justify-self:center}.vaelthryx-shrine-copy h2{font-size:28px;margin-bottom:12px}.vaelthryx-checkpoints{margin-top:16px}.vaelthryx-transit-copy{bottom:18%}.vaelthryx-transit-copy p{font-size:9px;letter-spacing:.18em}}
@media(prefers-reduced-motion:reduce){.vaelthryx-shrine-art *, .vaelthryx-transit *{animation:none!important}.vaelthryx-transit-plate{transform:none;filter:brightness(.75)}.is-placing .vaelthryx-transit-shrine{display:none}.vaelthryx-transit-copy{opacity:1}.vaelthryx-transit{animation-duration:.2s}}
