/* Quiet light and measured movement; original card artwork stays untouched. */
.hero{isolation:isolate}.hero::before{content:'';position:absolute;inset:-15%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 70% 42%,#c4a67614,transparent 36%),radial-gradient(ellipse at 90% 70%,#718b7520,transparent 45%);animation:ambient 18s ease-in-out infinite alternate}
.hero-art{perspective:1200px}.hero-art .hero-card{animation:levitate 8s ease-in-out infinite}.hero-art .card-right{animation-delay:-3s;animation-duration:10s}.hero-art .card-center{animation-delay:-5s;animation-duration:9s}
.hero-copy{animation:opening 1.5s cubic-bezier(.2,.65,.2,1) both}.hero-art{animation:opening 1.8s .15s both}.hero h1 em{color:#cbb187;text-shadow:0 0 40px #c4a67612}
.section-label{display:flex;align-items:center;gap:16px}.section-label::before{content:'';width:28px;height:1px;background:currentColor;opacity:.6}.ritual-heading .section-label{justify-content:center}
.collection{background:radial-gradient(ellipse at 20% 35%,#a68b5710,transparent 55%),#181e1b}.object{background:radial-gradient(ellipse at 78% 50%,#c4a6760c,transparent 50%)}
.button{position:relative;overflow:hidden;transition:box-shadow .5s,background .4s,translate .5s}.button::after{content:'';position:absolute;inset:-70% -100%;background:linear-gradient(110deg,transparent 42%,#fff3 50%,transparent 58%);translate:-40% 0;transition:translate 1s;pointer-events:none}.button:hover::after{translate:40% 0}.button:hover{translate:0 -2px;box-shadow:0 8px 30px #c4a67615}
nav a,.text-link{transition:color .4s,opacity .4s}.gallery-controls button{transition:background .35s,border-color .35s}.gallery-controls button:hover:not(:disabled){background:#c4a67612;border-color:var(--gold)}
.image-button{transition:transform .65s cubic-bezier(.2,.65,.2,1)}.image-button:hover{transform:translateY(-9px) rotate(-1deg)}.image-button+.image-button:hover{transform:translateY(-9px) rotate(1deg)}
.pair-images{perspective:1100px}.pair-images .card-frame{animation:gallery-arrival .65s ease-out both}.pair-images button+button .card-frame{animation-delay:.07s}
.result{animation:none}.result.is-new{animation:opening .8s ease both}.result.is-new .card-frame{animation:card-reveal .85s cubic-bezier(.2,.65,.2,1) both;backface-visibility:hidden}.results{perspective:1100px}.deck button{transition:transform .55s,opacity .4s}.deck.is-shuffling button{animation:shuffle-in .65s cubic-bezier(.2,.65,.2,1) both;animation-delay:calc(var(--order)*25ms)}
dialog[open]{animation:opening .45s ease both}dialog[open]::backdrop{animation:veil .4s ease both}
.reveal-ready{opacity:0;translate:0 24px;transition:opacity 1s cubic-bezier(.2,.65,.2,1),translate 1s cubic-bezier(.2,.65,.2,1);transition-delay:var(--reveal-delay,0ms)}.reveal-ready.is-visible,.reveal-ready:focus-within{opacity:1;translate:0 0}
@keyframes levitate{0%,100%{translate:0 0}50%{translate:0 -9px}}@keyframes ambient{from{transform:translate(-2%,-1%);opacity:.65}to{transform:translate(2%,2%);opacity:1}}@keyframes opening{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}@keyframes gallery-arrival{from{opacity:.2;translate:0 10px}to{opacity:1;translate:0 0}}@keyframes card-reveal{from{opacity:0;transform:rotateY(-78deg)}to{opacity:1;transform:rotateY(0)}}@keyframes shuffle-in{from{opacity:0;translate:18px 9px;rotate:4deg}to{opacity:1;translate:0 0;rotate:0deg}}@keyframes veil{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.hero-art .hero-card{animation-duration:10s}.section-label::before{width:18px}.reveal-ready{translate:0 14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready{opacity:1;translate:none}.button:hover{translate:none}}
