.hero{position:relative;isolation:isolate}
.hero-art{perspective:1100px;isolation:isolate}
.art-orbit{z-index:0;pointer-events:none;background:radial-gradient(ellipse at 48% 58%,#e6c47b55,transparent 65%),#e9eddb;box-shadow:0 0 90px #e9cf8840}
.main-art{position:relative;z-index:1;will-change:transform;transition:transform 800ms cubic-bezier(.2,.75,.25,1),box-shadow 800ms}
.hero-art:hover .main-art{transform:rotate(-1deg) translateY(-7px);box-shadow:0 32px 70px #9b763d45}
.art-label{z-index:3}
.floating-star{z-index:2}
.magic-dust{position:absolute;inset:-25px;pointer-events:none;overflow:hidden;z-index:2;border-radius:60px}
.magic-mote{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:#fff1c3;border-radius:50%;box-shadow:0 0 7px 2px #e6b95b80;opacity:0;animation:dream-drift var(--duration) var(--delay) infinite ease-in-out}
.magic-mote:nth-child(4n){border-radius:0;clip-path:polygon(50% 0,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0 50%,38% 37%);background:#ffe4a0;width:10px;height:10px}
@keyframes dream-drift{0%,100%{opacity:0;transform:translate3d(0,12px,0) scale(.65)}30%{opacity:.8}70%{opacity:.55}90%{opacity:0;transform:translate3d(var(--drift),-28px,0) scale(1.1)}}
.floating-star{animation:dream-breathe 6s ease-in-out infinite}
@keyframes dream-breathe{0%,100%{transform:rotate(-6deg) scale(.92);opacity:.5}50%{transform:rotate(5deg) scale(1.04);opacity:.9}}
.story{perspective:1000px}
.story .image-wrap{isolation:isolate;transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform 550ms cubic-bezier(.2,.8,.2,1),box-shadow 550ms;will-change:transform}
.story .image-wrap::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--glow-x,50%) var(--glow-y,50%),#fff6d142,transparent 52%);opacity:0;transition:opacity 550ms;z-index:1}
.story:hover .image-wrap,.story:focus-visible .image-wrap{box-shadow:0 20px 40px #816b3528}
.story:hover .image-wrap::after,.story:focus-visible .image-wrap::after{opacity:1}
.story img{transition:transform 1100ms cubic-bezier(.2,.8,.2,1),filter 800ms}
.story:hover img,.story:focus-visible img{transform:scale(1.055);filter:saturate(1.07)}
.story .pill{z-index:3}
.story .magic-dust{inset:0;opacity:0;transition:opacity 650ms}
.story:hover .magic-dust,.story:focus-visible .magic-dust{opacity:1}
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;inset:-60%;pointer-events:none;background:linear-gradient(110deg,transparent 40%,#fff7da25 49%,transparent 58%);transform:translateX(-100%);}
.btn:hover::after,.btn:focus-visible::after{animation:button-glimmer 1000ms ease-out}
@keyframes button-glimmer{to{transform:translateX(100%)}}
.magic-ready{opacity:0;transform:translateY(18px);transition:opacity 850ms ease,transform 850ms cubic-bezier(.2,.7,.2,1)}
.magic-ready.magic-visible{opacity:1;transform:none}
.motion-toggle{position:fixed;bottom:18px;right:18px;z-index:8;padding:8px 13px;border:1px solid #c9c9b9;border-radius:25px;background:#fffcf4ed;color:#4b584b;font:12px Manrope,Arial,sans-serif;box-shadow:0 3px 12px #283b330d}
body:has(dialog[open]) .motion-toggle{display:none}
html.motion-off .magic-mote,html.motion-off .floating-star{animation:none}
html.motion-off .magic-mote{opacity:.35}
html.motion-off .magic-mote:nth-child(odd){opacity:0}
html.motion-off .main-art,html.motion-off .image-wrap,html.motion-off .story img{transition:none!important}
html.motion-off .main-art{transform:rotate(-3deg)!important}
html.motion-off .image-wrap,html.motion-off .story img{transform:none!important}
html.motion-off .magic-ready{opacity:1;transform:none;transition:none}
html.motion-off .btn::after{animation:none!important;display:none}
@media(hover:none){.story .magic-dust{opacity:.5}.story .image-wrap{transform:none}}
@media(prefers-reduced-motion:reduce){.magic-mote,.floating-star{animation:none!important}.magic-mote{opacity:.3}.magic-ready{opacity:1;transform:none}.story .image-wrap,.story img,.main-art{transform:none!important}.btn::after{display:none}}
