/* Mystic Atelier v3.6 — a self-contained motion layer; extends, does not replace, base design. */
:root{--ritual-gold:#d9bd86;--ritual-rose:#9d7baf;--ritual-ink:#0b0c17;--ritual-ease:cubic-bezier(.22,1,.36,1)}
[hidden]{display:none!important}
html,body{overflow-x:clip}body{isolation:isolate}.glow-a{right:0!important;width:min(640px,100vw)!important}.glow-b{left:0!important;width:min(560px,100vw)!important}
.arrival-veil{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;background:#0b0b17;pointer-events:none;animation:mystic-arrival 1.15s var(--ritual-ease) both}
.arrival-crest{font-size:62px;font-family:Georgia,serif;color:#ddc68f;text-shadow:0 0 45px #d6b87e88;animation:crest-arrival .85s ease both}
.arrival-word{font-size:11px;font-weight:650;letter-spacing:.55em;color:#bfae98;animation:word-arrival .9s ease both}
@keyframes mystic-arrival{0%,47%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes crest-arrival{from{opacity:0;transform:scale(.65) rotate(-40deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes word-arrival{from{opacity:0;transform:translateY(12px);letter-spacing:.18em}to{opacity:1;transform:translateY(0);letter-spacing:.55em}}
body.skip-intro .arrival-veil{display:none}
body.is-leaving main,body.is-leaving .footer{opacity:0;transform:translate3d(0,-8px,0);transition:opacity .22s ease,transform .22s ease}
body:not(.skip-intro) .hero-copy .eyebrow{animation:hero-in .9s .40s both}
body:not(.skip-intro) .hero-copy h1{animation:hero-in 1.15s .48s both}
body:not(.skip-intro) .hero-copy>p{animation:hero-in .95s .63s both}
body:not(.skip-intro) .hero-actions{animation:hero-in .85s .75s both}
body:not(.skip-intro) .hero-proof{animation:hero-in .9s .86s both}
body:not(.skip-intro) .hero-visual{animation:hero-visual-in 1.4s .35s both}
@keyframes hero-in{from{opacity:0;transform:translate3d(0,30px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes hero-visual-in{from{opacity:0;transform:translate3d(24px,26px,0) scale(.89)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.hero-visual{perspective:1100px}
.hero-tarot{backface-visibility:hidden;transform-style:preserve-3d}
.hero-tarot img{display:block;width:100%;height:100%;object-fit:contain!important}
.hero-deck-collection{transform-style:preserve-3d}
.hero-halo{pointer-events:none}
.feature-card,.arcana-item{will-change:auto}
.feature-card:hover .cover-glyph{transform:translate3d(0,-6px,0) rotate(6deg) scale(1.08)}
.motion-cursor{position:fixed;left:0;top:0;width:26px;height:26px;border:1px solid rgba(229,204,155,.65);border-radius:50%;pointer-events:none;z-index:9900;transform:translate3d(-50%,-50%,0);opacity:0;transition:width .25s ease,height .25s ease,opacity .25s ease,background .25s ease;will-change:transform}
.motion-cursor.is-visible{opacity:.72}.motion-cursor.is-hover{width:48px;height:48px;background:rgba(194,155,100,.08)}
/* The ritual table */
.ritual-intro{padding-bottom:32px}.ritual-studio{padding-bottom:30px}
.ritual-studio .workspace-head{margin-bottom:20px}
.ritual-steps{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 26px}
.ritual-step{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(212,184,133,.2);background:#171724;padding:10px 15px;border-radius:100px;font-size:12px;color:#a69cae;transition:background .3s,border-color .3s,color .3s}
.ritual-step i{font-style:normal;font-family:Georgia,serif;font-size:12px;color:#a89a7b}.ritual-step.active{color:#f5ead0;border-color:#cfb27a;background:rgba(194,146,90,.13)}.ritual-step.complete{color:#cdbf9f;border-color:#c0aa7a80}
.ritual-input{margin-bottom:20px;max-width:100%}.ritual-input label{display:block;color:#e8dec9;font-size:13px;margin-bottom:10px}.ritual-input label small{font-size:11px;color:#9d98aa}
.ritual-input input{padding:16px 18px;border:1px solid rgba(219,186,133,.31);background:#171826;border-radius:10px;min-height:53px;font-size:14px}.ritual-input input:focus{border-color:#d8bd87;outline:2px solid rgba(218,186,122,.2);outline-offset:2px}
.ritual-question-guide{margin:8px 0 0;color:#9696a9;font-size:12px}.ritual-choices{margin-bottom:24px}
.ritual-table{isolation:isolate;min-height:595px;padding:40px 18px 46px!important;overflow:hidden;border-radius:22px!important;background:radial-gradient(ellipse at 50% 48%,rgba(73,58,91,.54),transparent 53%),radial-gradient(ellipse at 50% 110%,rgba(111,77,67,.25),transparent 60%),#10121f!important;box-shadow:inset 0 0 100px #0809187d,0 25px 55px #06070f55;justify-content:center;gap:12px}
.ritual-table-art{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ritual-sigil{position:absolute;width:min(510px,80vw);height:min(510px,80vw);border-radius:50%;border:1px solid #d9bd8640;left:50%;top:47%;transform:translate(-50%,-50%);box-shadow:0 0 0 31px #d9bd8610,0 0 0 61px #d9bd8608,inset 0 0 80px #b58c5c0c}
.ritual-sigil::before,.ritual-sigil::after{content:"";position:absolute;inset:13%;border-radius:50%;border:1px dashed #c7a87f4b;animation:ritual-orbit 55s linear infinite}.ritual-sigil::after{inset:30%;border-style:solid;animation-duration:79s;animation-direction:reverse}
.ritual-orbit{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);border:1px solid #d4b9821b;border-radius:50%}.ritual-orbit-a{width:min(650px,92vw);height:min(650px,92vw)}.ritual-orbit-b{width:min(350px,57vw);height:min(350px,57vw);border-style:dotted}
.ritual-mark{position:absolute;font-family:Georgia,serif;font-size:13px;color:#c5ac844b}.ritual-mark-n{top:10%;left:50%}.ritual-mark-s{bottom:10%;left:50%}.ritual-mark-e{right:8%;top:47%}.ritual-mark-w{left:8%;top:47%}
.ritual-table-top,.ritual-table-foot{position:absolute;z-index:1;left:25px;right:25px;display:flex;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:.18em;color:#b8a88b76;pointer-events:none}.ritual-table-top{top:22px}.ritual-table-foot{bottom:18px}
.ritual-deck-preview{position:relative;z-index:3;width:152px;height:236px;display:grid;place-items:center;margin:28px auto 20px;perspective:900px}
.ritual-deck-stack{position:relative;width:133px;height:207px;transform-style:preserve-3d;filter:drop-shadow(0 21px 22px #0009);animation:ritual-float 5s ease-in-out infinite}
.ritual-deck-layer{position:absolute;inset:0;border:2px solid #c9a878;border-radius:9px;background:radial-gradient(circle at 50%,#3a2d54,#141929 72%);box-shadow:inset 0 0 0 7px #1a192b,inset 0 0 0 9px #c8ae7077,0 12px 35px #0006}
.ritual-deck-layer:nth-child(1){transform:translate3d(-9px,4px,-20px) rotate(-10deg)}.ritual-deck-layer:nth-child(2){transform:translate3d(8px,-4px,-10px) rotate(8deg)}
.ritual-card-back-design{position:absolute;inset:14px;border:1px solid #bd995fa1;border-radius:6px;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:15px;background:repeating-radial-gradient(circle at center,#c4a67115 0 1px,transparent 2px 15px)}
.ritual-card-back-design::after{content:"";position:absolute;inset:20px;border:1px solid #bd9f7666;transform:rotate(45deg)}
.ritual-card-back-design span{font:64px Georgia,serif;color:#d0b781;text-shadow:0 0 30px #c8a76f75}.ritual-card-back-design small{font-size:8px;letter-spacing:.2em;color:#e1cba5}
.ritual-deck-glow{position:absolute;z-index:-1;width:250px;height:140px;top:68%;left:-50px;filter:blur(25px);background:radial-gradient(ellipse,#d5ad8057,transparent 75%);pointer-events:none;animation:glow-swell 5s ease-in-out infinite}
.ritual-deck-preview.is-shuffling .ritual-deck-stack{animation:ritual-shake 1s var(--ritual-ease) both}
.ritual-deck-preview.is-shuffling .ritual-deck-layer:nth-child(1){animation:ritual-shuffle-left .58s ease-in-out 2}
.ritual-deck-preview.is-shuffling .ritual-deck-layer:nth-child(2){animation:ritual-shuffle-right .58s ease-in-out 2}
.ritual-help{position:relative;z-index:3;max-width:640px;padding:0 10px;color:#d2c2b3!important;font-size:13px!important;line-height:1.8!important}
.ritual-main-btn{z-index:3!important;margin-bottom:20px;min-width:200px;min-height:50px}
.ritual-fan-wrap{position:relative;z-index:3;width:100%;max-width:770px;height:245px;margin:2px auto 0;perspective:1000px;overflow:visible}
.ritual-fan{--fan-spread:310px;position:relative;width:100%;height:100%;margin:auto}
.ritual-fan-card{position:absolute;left:50%;bottom:0;width:96px;height:157px;padding:0;border:0;background:transparent;cursor:pointer;transform-origin:50% 95%;transform:translateX(-50%) translateX(calc(var(--fan-off) * var(--fan-spread))) translateY(calc(var(--fan-rise) + var(--fan-lift,0px))) rotate(var(--fan-turn));z-index:calc(30 + var(--fan-z));transition:transform .35s var(--ritual-ease),opacity .25s;touch-action:pan-y;animation:fan-appear .6s var(--ritual-ease) both;animation-delay:calc(var(--fan-i) * 30ms)}
.ritual-fan-card-art{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;border:2px solid #d1af76;border-radius:7px;background:radial-gradient(ellipse at 55% 45%,#473256 0%,#201a36 45%,#141927 100%);box-shadow:inset 0 0 0 5px #191728,inset 0 0 0 7px #b5966977,0 14px 22px #0008}
.ritual-fan-card-art::before{content:"";position:absolute;inset:12px;border:1px solid rgba(211,176,114,.55);border-radius:4px;transform:rotate(0deg)}
.ritual-fan-card-art::after{content:"";position:absolute;width:43%;aspect-ratio:1;transform:rotate(45deg);border:1px solid #d0ab6d66}
.ritual-fan-ornament{font-size:43px;line-height:1;font-family:Georgia,serif;color:#d8c395;text-shadow:0 0 19px #c7a36e88}
.ritual-fan-sign{font-size:8px;letter-spacing:.19em;color:#dbbd91}
@media(hover:hover) and (pointer:fine){.ritual-fan-card:hover{--fan-lift:-32px;filter:drop-shadow(0 0 13px #d4b37a77)}}
.ritual-fan-card:focus-visible{outline:3px solid #f3deb0;outline-offset:5px;--fan-lift:-18px}
.ritual-fan-card.was-picked{opacity:0;pointer-events:none;filter:none}
.ritual-fly-card .ritual-fan-card-art{position:absolute;inset:0}
.ritual-selection{position:relative;z-index:3;width:100%;max-width:680px;margin:0 auto 22px}
.ritual-selection-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;font-size:12px;color:#e3d0b1}
.ritual-undo{font-size:12px;border:0;background:none;color:#c9ab7b;padding:9px 5px}.ritual-undo:focus-visible{outline:2px solid #e5cb97}
.ritual-slot-row{display:flex;align-items:start;justify-content:center;gap:clamp(8px,2.4vw,21px);margin-bottom:19px}
.ritual-slot{width:clamp(74px,16vw,116px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px}
.ritual-slot-face{width:min(62px,100%);aspect-ratio:.65;border:1px dashed #d1b68177;border-radius:6px;display:grid;place-items:center;color:#a88b60;background:#151728a6;font-family:Georgia,serif;font-size:22px;transition:transform .4s var(--ritual-ease),border .3s,background .3s}
.ritual-slot.filled .ritual-slot-face{border:2px solid #d5bb88;background:radial-gradient(circle,#46314e,#19192c);box-shadow:0 0 25px #bb9d6533;transform:translateY(-4px)}
.ritual-slot>span{font-size:10px;color:#c9bbae;line-height:1.5}
.ritual-reveal{min-height:49px;margin:auto;display:flex}.ritual-reveal:disabled{cursor:not-allowed;background:#36303b;color:#c3b2aa;border-color:#d1b78550;opacity:.85}
.ritual-result{width:100%;max-width:1020px;margin:6px auto 24px!important}
.ritual-reading-kicker{font-size:10px!important;letter-spacing:.3em;color:#d8bd8c!important;text-align:center;margin-bottom:22px}
.ritual-reading-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(10px,1.6vw,20px);align-items:stretch}
.ritual-reading-card{width:clamp(150px,20vw,205px);padding:18px 13px 20px!important;border:1px solid #bf9f6e4d;border-radius:13px;background:linear-gradient(160deg,rgba(34,32,55,.95),rgba(20,20,35,.94));box-shadow:0 17px 40px #0004;display:flex;align-items:center;flex-direction:column;opacity:0;transform:translateY(30px) scale(.96);transition:opacity .6s var(--ritual-ease),transform .6s var(--ritual-ease)}
.ritual-reading-card.is-entered{opacity:1;transform:translateY(0) scale(1)}
.ritual-card-position{font-size:10px!important;letter-spacing:.14em;text-transform:uppercase;color:#cdb78f!important;margin:0 0 12px!important;text-align:center}
.ritual-flip{width:min(100%,130px);aspect-ratio:420/720;perspective:1000px;margin:0 auto 15px;flex:none}
.ritual-flip-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform 1.05s cubic-bezier(.17,.85,.25,1);will-change:transform;transform:rotateY(0)}
.ritual-flip.is-flipped .ritual-flip-inner{transform:rotateY(180deg)}
.ritual-flip-front,.ritual-flip-back{position:absolute;inset:0;border:2px solid #cdb27e;border-radius:7px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 14px 20px #0006}
.ritual-flip-back{display:flex;flex-direction:column;gap:15px;align-items:center;justify-content:center;background:radial-gradient(circle,#473757,#191827 70%);box-shadow:inset 0 0 0 7px #1b1b2b,inset 0 0 0 9px #a9997277}
.ritual-flip-back span{font-size:53px;font-family:Georgia,serif;color:#d4b77e}.ritual-flip-back small{font-size:9px;letter-spacing:.2em;color:#d7ba8c}
.ritual-flip-front{transform:rotateY(180deg);display:grid;place-items:center;background:radial-gradient(circle,#403657,#111624)}
.ritual-flip-front img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain!important;display:block}.ritual-flip-front img.is-reversed{transform:rotate(180deg)}.ritual-flip-front img.image-missing{display:none}
.ritual-image-fallback{position:absolute;font-size:52px;color:#d6b884}
.ritual-reading-card h3{text-align:center;font-size:clamp(14px,1.4vw,17px);line-height:1.4;min-height:0;margin:0 0 4px}
.ritual-card-orientation{font-size:10px!important;color:#c7ad83!important;margin:2px 0 10px!important}
.ritual-card-meaning{font-size:12px!important;line-height:1.8!important;color:#c6c0cc!important;margin:0!important;text-align:left}
.ritual-closing{max-width:790px;margin:26px auto 0;border:1px solid #cdb27b40;border-radius:16px;padding:clamp(20px,4vw,34px);background:linear-gradient(135deg,#2a2339ed,#191b2ced);opacity:0;transform:translateY(25px);transition:opacity .6s,transform .6s}
.ritual-closing.is-visible{opacity:1;transform:translateY(0)}.ritual-closing h3{font-family:Georgia,serif;font-size:clamp(24px,3vw,34px);margin:8px 0 12px}.ritual-closing p:not(.kicker){font-size:13px;line-height:1.9;color:#d5cbcf}
.ritual-result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:24px 0}.ritual-closing small{display:block;color:#a6a1b1;font-size:11px}
.ritual-disclaimer{color:#9693a4;font-size:12px;line-height:1.8;text-align:center;margin:18px auto 0;max-width:770px}
@keyframes ritual-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(1deg)}}
@keyframes glow-swell{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}
@keyframes ritual-orbit{to{transform:rotate(360deg)}}
@keyframes ritual-shake{0%,100%{transform:translateX(0) rotate(0)}22%{transform:translateX(-14px) rotate(-10deg)}50%{transform:translateX(13px) rotate(12deg)}75%{transform:translateX(-9px) rotate(-8deg)}}
@keyframes ritual-shuffle-left{50%{transform:translate3d(-68px,-22px,15px) rotate(-24deg)}}
@keyframes ritual-shuffle-right{50%{transform:translate3d(68px,18px,15px) rotate(20deg)}}
@keyframes fan-appear{from{opacity:0;translate:0 45px}to{opacity:1;translate:0 0}}
@media(max-width:900px){.ritual-reading-card{width:clamp(146px,30vw,205px)}.ritual-table{min-height:560px}}
@media(max-width:600px){.ritual-intro{padding-bottom:20px}.ritual-studio{padding-bottom:12px}.ritual-table{min-height:570px;padding:55px 10px 34px!important}.ritual-steps{justify-content:center;gap:6px}.ritual-step{font-size:10px;padding:8px 10px;gap:4px}.ritual-step i{font-size:10px}.ritual-table-top,.ritual-table-foot{left:14px;right:14px;font-size:8px;letter-spacing:.1em}.ritual-fan-wrap{height:182px}.ritual-fan{--fan-spread:127px}.ritual-fan-card{width:60px;height:100px;bottom:17px}.ritual-fan-card-art{border-width:1.5px;box-shadow:inset 0 0 0 4px #191728,inset 0 0 0 6px #b5966977,0 10px 14px #0008}.ritual-fan-card-art::before{inset:8px}.ritual-fan-ornament{font-size:30px}.ritual-fan-sign{font-size:6px}.ritual-selection{padding:0 3px}.ritual-slot-row{gap:6px}.ritual-slot{width:19%}.ritual-slot-face{width:47px}.ritual-slot>span{font-size:9px}.ritual-reading-card{width:calc(50% - 9px);padding:13px 8px!important}.ritual-reading-card h3{font-size:14px}.ritual-card-meaning{font-size:11px!important}.ritual-flip{max-width:118px}.ritual-main-btn{max-width:100%}}
@media(max-width:340px){.ritual-fan{--fan-spread:112px}.ritual-fan-card{width:52px;height:90px}.ritual-reading-card{width:100%;max-width:280px}.ritual-flip{max-width:133px}}
@media(prefers-reduced-motion:reduce){.arrival-veil{display:none!important}.hero-copy>*{animation:none!important}.hero-visual{animation:none!important}.ritual-deck-stack,.ritual-deck-glow,.ritual-sigil::before,.ritual-sigil::after{animation:none!important}.ritual-fan-card{animation:none!important;transition:none!important}.ritual-flip-inner{transition:none!important}.ritual-reading-card,.ritual-closing{transition:none!important;opacity:1;transform:none}.motion-cursor{display:none!important}body.is-leaving main,body.is-leaving .footer{filter:none;transform:none;opacity:1;transition:none}}

/* Mystic v4.1: page entrances, outro and intro are visible on EVERY route.
   A shorter branded veil is used on subsequent visits, rather than disabling it. */
body.motion-intro-short .arrival-veil{animation:mystic-arrival-short .58s cubic-bezier(.22,1,.36,1) both}
body.motion-intro-short .arrival-crest{animation:crest-arrival-short .45s ease both}
body.motion-intro-short .arrival-word{animation:word-arrival-short .45s ease both}
@keyframes mystic-arrival-short{0%,42%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes crest-arrival-short{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@keyframes word-arrival-short{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
body.motion-ready main{animation:mystic-page-enter .76s cubic-bezier(.22,1,.36,1) both;animation-delay:.22s}
body.motion-ready.motion-intro-full main{animation-delay:.65s}
body.motion-ready .topbar{animation:mystic-nav-enter .6s cubic-bezier(.22,1,.36,1) both}
@keyframes mystic-page-enter{from{opacity:.65;transform:translate3d(0,22px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes mystic-nav-enter{from{opacity:0;transform:translate3d(0,-14px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
/* Short fade-to-midnight between internal links; no blur/filter or layout thrashing */
body.is-leaving .arrival-veil{display:flex!important;animation:mystic-depart .27s ease-out both;pointer-events:auto}
body.is-leaving main,body.is-leaving .footer{opacity:0;transform:translate3d(0,-8px,0);transition:opacity .24s ease,transform .24s ease}
@keyframes mystic-depart{from{opacity:0;visibility:visible}to{opacity:1;visibility:visible}}
/* Stop screen effects immediately when the OS setting requests reduced motion. */
@media(prefers-reduced-motion:reduce){body.motion-ready main,body.motion-ready .topbar,body.is-leaving .arrival-veil{animation:none!important;transition:none!important}body.is-leaving main,body.is-leaving .footer{opacity:1!important;transform:none!important}.arrival-veil{display:none!important}}
