/* Small interaction accents, with no layout movement. */
.reading-progress{position:fixed;inset:0 0 auto;height:2px;z-index:100;background:linear-gradient(90deg,#bd8e84,#f4d0be);transform:scaleX(0);transform-origin:left;pointer-events:none}
.hero-pointer-light{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;background:radial-gradient(380px circle at var(--pointer-x,70%) var(--pointer-y,40%),rgba(244,208,190,.10),transparent 75%);transition:opacity .5s}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .hero:hover .hero-pointer-light{opacity:1}
 .button{transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease}
 .button:hover{transform:translateY(-3px);box-shadow:0 9px 30px #e7b7ab25}
 .button:active{transform:translateY(0)}
 .module,.offer-card{transition:box-shadow .4s ease,border-color .4s ease}
 .module:hover,.offer-card:hover{box-shadow:inset 0 0 0 1px #e7b7ab80,0 12px 32px #00000016;border-color:#e7b7ab80}
 .social-row a,.footer-links a{transition:color .2s ease,transform .2s ease}
 .social-row a:hover,.footer-links a:hover{color:#e7b7ab;transform:translateX(3px)}
}
@media(prefers-reduced-motion:reduce){.hero-pointer-light,.reading-progress{display:none}}

/* The artwork moves independently so headings and links remain steady. */
.hero-dust{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;mask-image:linear-gradient(90deg,transparent 15%,#000 55%)}
.hero-dust i{position:absolute;left:var(--spark-x);top:var(--spark-y);width:2px;height:2px;border-radius:50%;background:#ffe4d5;box-shadow:0 0 9px 2px #e7b7ab55;opacity:.25}
.hero-dust i:nth-child(3n){width:3px;height:3px}
.hero-dust.is-paused i{animation-play-state:paused}
.module{position:relative;isolation:isolate}
.module::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;background:radial-gradient(240px circle at var(--surface-x,50%) var(--surface-y,50%),#fff5e530,transparent 75%);transition:opacity .5s}
.process-list article{position:relative}
.process-list article::after{content:'';position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:linear-gradient(90deg,#171819,#79594e);transform:scaleX(var(--step-progress,0));transform-origin:left;pointer-events:none}
.process-no{transition:color .4s,text-shadow .4s}
.process-list .step-active .process-no{color:#171819;text-shadow:0 0 18px #fff5e5}
.process-list .step-complete .process-glyph{color:#171819}
@media(prefers-reduced-motion:no-preference){
 .hero-dust i{animation:dust-drift var(--spark-duration) ease-in-out var(--spark-delay) infinite}
 .hero-orbit{transition:translate .9s cubic-bezier(.16,1,.3,1)}
 .hero-orbit .core-shine{animation:core-reflection 14s ease-in-out infinite}
 .process-glyph{transition:color .6s,translate .6s}
 .process-list .step-active .process-glyph{translate:-10px 0;color:#171819}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .module-art{transform:perspective(900px) rotateX(var(--art-rx,0deg)) rotateY(var(--art-ry,0deg));transition:transform .7s cubic-bezier(.16,1,.3,1);transform-origin:50% 55%}
 .module:hover::after{opacity:1}
 .module:hover .module-top>span:last-child{transform:translate(3px,-3px)}
 .module-top>span:last-child{transition:transform .35s}
}
@keyframes dust-drift{0%,100%{transform:translate3d(0,8px,0);opacity:.15}50%{transform:translate3d(10px,-20px,0);opacity:.8}}
@keyframes core-reflection{0%,100%{translate:-5% 0;opacity:.5}50%{translate:9% 0;opacity:.95}}
@media(max-width:720px){.hero-dust i:nth-child(even){display:none}}
@media(prefers-reduced-motion:reduce){
 .hero-dust,.module::after,.process-list article::after{display:none}
 .hero-orbit{translate:none!important}
 .module-art{transform:none!important}
 .process-no,.process-glyph{transition:none}
}
