/* A slow reveal: no rapid flashes, no automatic next card, no audio. */
.card-ritual{--ritual-gold:#e7c48b;--ritual-rose:#e9a6be;position:fixed;inset:0;z-index:10001;isolation:isolate;overflow:auto;color:#f2e5d4;background:#110c19;font-family:inherit;animation:ritual-arrive .65s ease both;outline:none}
.card-ritual.is-leaving{pointer-events:none;animation:ritual-depart .65s ease both}
.ritual-cosmos{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 50% 48%,#57324666 0,transparent 55%),radial-gradient(ellipse at 12% 88%,#44327266,transparent 45%),linear-gradient(135deg,#180f21,#100c19 65%,#2f192a)}
.ritual-cosmos:after{content:'';position:absolute;inset:20px;border:1px solid #e4c2911c;pointer-events:none}
.ritual-nebula{position:absolute;width:66vmax;height:66vmax;left:50%;top:50%;margin:-33vmax;background:conic-gradient(from 40deg,transparent,#c584571c,transparent 30%,#9271c62c,transparent 63%,#e19b891a,transparent);filter:blur(40px);animation:ritual-orbit 70s linear infinite}
.ritual-orbit{position:absolute;left:50%;top:50%;border-radius:50%;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid #e7c48b26;width:min(82vw,700px);box-shadow:0 0 60px #b1766020,inset 0 0 70px #b1766010}
.ritual-orbit:before,.ritual-orbit:after{content:'';position:absolute;inset:12px;border:1px dashed #e7c48b26;border-radius:50%}
.ritual-orbit:after{inset:32px;border-style:solid;border-color:#e7c48b14}
.orbit-outer{animation:ritual-ring 65s linear infinite}.orbit-inner{width:min(67vw,560px);border:1px dashed #e7c48b36;animation:ritual-ring 45s linear infinite reverse}
.ritual-compass{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:Georgia,serif;font-size:min(85vw,760px);font-weight:400;color:#e7c48b09;line-height:1}
.ritual-particle{position:absolute;left:var(--px);top:var(--py);width:var(--size);height:var(--size);border-radius:50%;background:#ebd0a3;box-shadow:0 0 10px #edc69899;opacity:0;animation:ritual-mote var(--life) ease-in-out var(--delay) infinite}
.ritual-shell{max-width:1040px;margin:auto;min-height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;padding:24px 32px 22px;text-align:center}
.ritual-topline{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#cfb493;font-size:10px;letter-spacing:2.2px}.ritual-topline b{margin:0 9px;color:#c58283;font-weight:400}
.ritual-skip{font:inherit;font-size:12px;letter-spacing:0;color:#c8bac8;background:#ffffff04;border:1px solid #e6c39029;border-radius:30px;padding:10px 16px;cursor:pointer}.ritual-skip span{margin-left:10px;color:#e7c48b}.ritual-skip:hover{color:#fff;border-color:#e6c39077}
.ritual-content{width:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px 0 20px;box-sizing:border-box;animation:ritual-content-in .6s ease both}
.ritual-kicker{font-size:10px;letter-spacing:3px;color:#d1b187;margin:0 0 14px}.ritual-kicker span{color:#aa90a6;margin-left:5px}
.card-ritual h2{font-family:inherit;font-size:clamp(24px,3vw,35px);font-weight:400;line-height:1.5;letter-spacing:-.8px;color:#f6e7d2;margin:0;text-wrap:balance}
.ritual-subtitle{font-size:13px;line-height:1.8;color:#bcaabd;margin:12px 0 0;word-break:keep-all}
.ritual-guide{font-size:10px;letter-spacing:1px;color:#aa91a1;margin:8px 0 0}
.ritual-gather{height:300px;width:370px;max-width:85vw;position:relative;perspective:1000px;margin:20px 0 8px}
.ritual-gather-card{position:absolute;left:calc(50% - 73px);top:35px;width:146px;aspect-ratio:2/3;z-index:calc(3 - var(--card));transform-origin:center bottom;animation:ritual-gather 2.4s cubic-bezier(.2,.6,.3,1) both;filter:drop-shadow(0 15px 30px #0008)}
.ritual-gather-card img{width:100%;height:100%;object-fit:cover;border:1px solid #e2bd8188;border-radius:8px}
.ritual-gather-star{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:28px;color:#e3be86;text-shadow:0 0 30px #e9b373;animation:ritual-glow 2.4s ease both}
.ritual-breath{width:100px;height:1px;background:#e1bb8130;overflow:hidden;margin:14px 0}.ritual-breath span{display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent,#edc693,transparent);animation:ritual-breath 2.4s ease both}
.ritual-whisper{font-size:12px;color:#c4acb8;letter-spacing:1px;margin:8px 0}
.ritual-progress{display:flex;justify-content:center;gap:36px;list-style:none;padding:0;margin:0 0 26px;font-size:10px;color:#947f93}.ritual-progress li{display:flex;align-items:center;gap:8px}.ritual-progress li>span{display:grid;place-items:center;width:25px;height:25px;border:1px solid #d6b78c30;border-radius:50%;font-size:9px}.ritual-progress .is-current{color:#f0d3a9}.ritual-progress .is-current>span{border-color:#ecc89388;box-shadow:0 0 16px #eac68c18}.ritual-progress .is-read{color:#be9c83}
.ritual-stage{position:relative;isolation:isolate;display:grid;place-items:center;width:330px;max-width:85vw;height:330px;margin:13px 0 0;perspective:1200px}
.ritual-card{position:relative;z-index:2;width:190px;aspect-ratio:2/3;padding:0;border:0;border-radius:10px;background:transparent;cursor:pointer;perspective:1200px;box-shadow:none;transition:transform .5s ease;transform:translateY(0)}
.ritual-card:not(:disabled):hover{transform:translateY(-6px)}.ritual-card:disabled{cursor:default;opacity:1}
.ritual-card-inner{display:block;width:100%;aspect-ratio:3/5;position:relative;transform-style:preserve-3d;transition:transform 1.35s cubic-bezier(.2,.7,.2,1);transform:rotateY(0)}
.ritual-card.is-revealed .ritual-card-inner{transform:rotateY(180deg)}
.ritual-card{aspect-ratio:3/5}.ritual-card .ritual-front img{object-fit:contain}.ritual-spread figure img{aspect-ratio:3/5;object-fit:contain}
.ritual-face{position:absolute;inset:0;border-radius:9px;overflow:hidden;border:1px solid #deb778a8;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 20px 45px #0007,0 0 22px #d49b5620;background:#271c2b;display:block}
.ritual-face img{display:block;width:100%;height:100%;object-fit:cover}.ritual-front{transform:rotateY(180deg);border-color:#f0cd92;box-shadow:0 20px 50px #0009,0 0 34px #f4c27c38}
.ritual-halo{position:absolute;width:270px;aspect-ratio:1;border-radius:50%;z-index:0;border:1px solid #d0a06a40;background:radial-gradient(circle,#eabb6430,transparent 67%);box-shadow:0 0 55px #e3a95d19;transition:transform 1.7s ease,opacity 1.7s ease}
.ritual-rays{position:absolute;width:310px;aspect-ratio:1;border-radius:50%;z-index:0;background:repeating-conic-gradient(from 10deg,transparent 0deg 14deg,#ecc38524 15deg 16deg,transparent 18deg 30deg);mask-image:radial-gradient(circle,transparent 34%,#0008 53%,transparent 72%);opacity:0;transform:scale(.65);transition:opacity 1.2s ease,transform 2.5s ease}
.card-ritual[data-phase=revealing] .ritual-halo,.card-ritual[data-phase=revealed] .ritual-halo{transform:scale(1.24);opacity:.9}.card-ritual[data-phase=revealing] .ritual-rays,.card-ritual[data-phase=revealed] .ritual-rays{opacity:1;transform:scale(1.22) rotate(28deg)}
.ritual-stage-star{position:absolute;right:38px;top:13px;z-index:3;color:#ebc98e;font:32px Georgia,serif;text-shadow:0 0 20px #e6b66488;animation:ritual-float 6s ease-in-out infinite}
.ritual-card-caption{min-height:63px;display:flex;flex-direction:column;justify-content:center}.ritual-card-caption h3{font-size:27px;font-weight:400;letter-spacing:2px;margin:0;color:#f3d7ac;animation:ritual-content-in .8s ease both}.ritual-card-caption p{font-size:11px;color:#c6abb7;line-height:1.8;margin:6px 0 0}.ritual-card-caption .ritual-touch{font-size:12px;letter-spacing:1px;color:#d9bc98}.ritual-touch span{margin-left:10px;font-size:10px}
.ritual-next-slot{min-height:78px;margin-top:12px}.ritual-next{display:inline-flex;align-items:center;justify-content:center;gap:30px;font:inherit;font-size:13px;color:#211723;background:linear-gradient(105deg,#e6c895,#dba2a8);border:1px solid #f5d7a2;border-radius:5px;padding:14px 24px;cursor:pointer;box-shadow:0 6px 30px #d6a66c19;animation:ritual-content-in .5s ease both}.ritual-next:hover{box-shadow:0 5px 35px #ddb47c44}.ritual-next:disabled{opacity:.7;cursor:default}.ritual-next-slot>p{font-size:10px;color:#b89dab;margin:9px 0 0}
.card-ritual button:focus-visible{outline:2px solid #f3d4a0;outline-offset:6px}
.ritual-next-slot .ritual-tap-hint{font-size:12px;line-height:1.8;color:#e6c89e;margin:6px 0 0}.ritual-next-slot .ritual-previous{font-size:11px;padding:8px 15px;margin:10px 0 0}.ritual-card.is-revealed:not(:disabled):hover .ritual-front{box-shadow:0 20px 50px #0009,0 0 42px #f4c27c55}
.card-ritual[data-phase=changing] .ritual-stage,.card-ritual[data-phase=changing] .ritual-card-caption,.card-ritual[data-phase=changing] .ritual-next-slot{animation:ritual-card-away .42s ease both}
.ritual-spread{display:flex;align-items:center;justify-content:center;gap:26px;margin:42px 0 20px;width:100%;max-width:630px}.ritual-spread figure{margin:0;min-width:0;flex:1;max-width:170px;animation:ritual-spread-in 1.2s calc(var(--card)*.15s) ease both}.ritual-spread img{width:100%;aspect-ratio:2/3;object-fit:cover;border:1px solid #e4c28c99;border-radius:7px;box-shadow:0 18px 40px #0008,0 0 30px #dbaf6933}.ritual-spread figcaption{font-size:17px;color:#eacfad;margin-top:15px}.ritual-spread figcaption span{display:block;color:#b29bac;font-size:10px;margin-bottom:6px}
.ritual-thread{display:flex;align-items:center;width:min(56%,410px);color:#e3bf8b;font-size:13px}.ritual-thread i{height:1px;background:linear-gradient(90deg,#d2a77322,#eac48e88,#d2a77322);flex:1;transform-origin:left;animation:ritual-thread 1.8s ease both}
.draw-seals{display:flex;justify-content:center;gap:14px;margin:23px 0 8px}.draw-seals span{width:28px;height:28px;border-radius:50%;border:1px solid #d4af7955;display:grid;place-items:center;font-size:10px;color:#ae939f;transition:all .6s ease}.draw-seals .is-chosen{color:#ffe1ac;background:#deb57825;border-color:#dcbc86;box-shadow:0 0 22px #d8a66345;transform:scale(1.12)}
.draw-page .fan-card.selected{opacity:.6;filter:drop-shadow(0 0 12px #ecc08577)}.draw-page .fan-card.selected:after{content:attr(data-pick);position:absolute;inset:35% 25%;display:grid;place-items:center;color:#ffe4b7;background:#1a1024e6;border:1px solid #e4c38f77;border-radius:50%;font:18px Georgia,serif}
.draw-page.draw-complete .cards-fan-container{animation:ritual-deck-away .65s ease both}
@keyframes ritual-arrive{from{opacity:0}to{opacity:1}}@keyframes ritual-depart{from{opacity:1}to{opacity:0}}
@keyframes ritual-content-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes ritual-orbit{to{transform:rotate(360deg)}}@keyframes ritual-ring{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes ritual-mote{0%,100%{opacity:0;transform:translateY(12px)}45%{opacity:.65}85%{opacity:.15;transform:translateY(-38px)}}
@keyframes ritual-gather{0%{opacity:0;transform:translateX(calc((var(--card) - 1)*100px)) translateY(35px) rotate(calc((var(--card) - 1)*18deg)) scale(.83)}25%{opacity:1}65%{opacity:1;transform:translateX(calc((var(--card) - 1)*69px)) rotate(calc((var(--card) - 1)*12deg))}100%{opacity:0;transform:translateX(0) translateY(-5px) rotate(0) scale(1.05)}}
@keyframes ritual-glow{0%{opacity:0;filter:blur(3px)}65%{opacity:1;filter:blur(0)}100%{opacity:0}}
@keyframes ritual-breath{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes ritual-float{50%{transform:translateY(-9px) rotate(10deg)}}
@keyframes ritual-card-away{to{opacity:0;transform:translateY(-16px) scale(.97)}}
@keyframes ritual-spread-in{from{opacity:0;transform:translateY(30px) rotate(calc((var(--card) - 1)*8deg))}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes ritual-thread{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ritual-deck-away{to{opacity:.1;transform:translateY(15px) scale(.96)}}
@media(max-height:760px) and (min-width:601px){.ritual-shell{padding:18px 30px 14px}.ritual-content{padding:12px 0 8px}.ritual-progress{margin-bottom:14px}.ritual-stage{height:284px;margin:7px 0 0}.ritual-card{width:164px}.ritual-card-caption h3{font-size:24px}.card-ritual h2{font-size:28px}.ritual-next-slot{margin-top:7px;min-height:72px}.ritual-gather{height:265px}}
@media(max-width:600px){.ritual-shell{padding:18px 22px 18px}.ritual-cosmos:after{inset:10px}.ritual-topline{font-size:8px;letter-spacing:1.3px}.ritual-topline b{margin:0 4px}.ritual-skip{font-size:10px;padding:9px 12px}.ritual-skip span{margin-left:4px}.ritual-content{padding:24px 0 14px}.card-ritual h2{font-size:24px}.ritual-subtitle{font-size:11px;max-width:280px}.ritual-kicker{font-size:8px;letter-spacing:2.3px}.ritual-progress{gap:14px;font-size:9px;margin-bottom:25px}.ritual-progress li{gap:5px}.ritual-progress li>span{width:20px;height:20px;font-size:8px}.ritual-stage{height:295px;margin-top:12px;width:300px}.ritual-card{width:168px}.ritual-halo{width:235px}.ritual-rays{width:270px}.ritual-stage-star{right:35px;top:15px}.ritual-card-caption h3{font-size:25px}.ritual-next{font-size:12px;padding:13px 22px}.ritual-spread{gap:13px;margin:35px 0 22px}.ritual-spread figcaption{font-size:14px}.ritual-spread figcaption span{font-size:9px}.ritual-guide{font-size:9px}.ritual-gather{height:280px}.ritual-gather-card{width:138px;left:calc(50% - 69px)}.ritual-orbit{width:116vw}.orbit-inner{width:95vw}}
@media(prefers-reduced-motion:reduce){.card-ritual,.card-ritual *, .draw-page.draw-complete .cards-fan-container{animation:none!important;transition:none!important}.ritual-particle{opacity:.25}.ritual-gather-card{transform:translateX(calc((var(--card) - 1)*60px)) rotate(calc((var(--card) - 1)*10deg))}.ritual-gather-star{opacity:1}.card-ritual.is-leaving{opacity:0}.ritual-nebula{filter:none}.ritual-card.is-revealed .ritual-back{visibility:hidden}.ritual-next-slot{min-height:78px}}
