/* ===== FX · luxury motion layer (all pages) ===== */
:root{--fx-ease:cubic-bezier(.2,.7,.2,1);}
/* grain on dark surfaces */
.hero,.px-hero,.px-dark,footer,.cta-band{position:relative;}
.hero::after,.px-hero::after,.px-dark::after,footer::after,.cta-band::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");}
.hero>*,.px-hero>*,.px-dark>*,footer>*,.cta-band>*{position:relative;z-index:1;}
.fx-dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0!important;}
/* header on scroll */
header{transition:background .35s,box-shadow .35s,backdrop-filter .35s;}
header.fx-scrolled{background:rgba(13,12,10,.82)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 30px rgba(0,0,0,.35);}
/* scroll reveal (animation, so hover transforms still work) */
html.fx-ready [data-reveal]{opacity:0;}
html.fx-ready [data-reveal].in{opacity:1;animation:fxUp 1s var(--fx-ease) backwards;animation-delay:var(--d,0s);}
html.fx-ready [data-reveal="fade"].in{animation-name:fxFade;}
@keyframes fxUp{from{opacity:0;transform:translateY(34px) scale(.985);filter:blur(4px);}to{opacity:1;transform:none;filter:none;}}
@keyframes fxFade{from{opacity:0;}to{opacity:1;}}
/* page load */
@keyframes fxDrop{from{opacity:0;transform:translateY(-14px);}to{opacity:1;transform:none;}}
html.fx-ready header .wrap{animation:fxDrop .9s var(--fx-ease) both;}
html.fx-ready .px-hero h1,html.fx-ready .hero h1{animation:fxUp 1.2s var(--fx-ease) .15s backwards;}
html.fx-ready .px-lede,html.fx-ready .hero .lede{animation:fxUp 1.2s var(--fx-ease) .35s backwards;}
html.fx-ready .px-cta,html.fx-ready .hero .cta-row,html.fx-ready .hero .btn-row{animation:fxUp 1.2s var(--fx-ease) .5s backwards;}
html.fx-ready .px-snap,html.fx-ready .hero .spec-card{animation:fxUp 1.3s var(--fx-ease) .6s backwards;}
/* gold shimmer on key words */
.px-hero h1 em,.hero h1 em{background:linear-gradient(100deg,#B98A2E 0%,#EBC766 30%,#FFF1BF 48%,#EBC766 62%,#B98A2E 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:fxShine 6s linear infinite;}
@keyframes fxShine{from{background-position:120% 0;}to{background-position:-120% 0;}}
/* hero glow drift */
.px-hero{background-size:140% 140%;}
.px-hero::before{content:"";position:absolute;width:620px;height:620px;right:-120px;top:-180px;background:radial-gradient(circle,rgba(212,165,55,.20),transparent 65%);filter:blur(10px);animation:fxDrift 14s ease-in-out infinite alternate;pointer-events:none;}
@keyframes fxDrift{from{transform:translate(0,0);}to{transform:translate(-90px,70px);}}
/* eyebrow hairline draws in */
html.fx-ready [data-reveal].in .px-eyebrow::before,html.fx-ready .px-eyebrow[data-reveal].in::before,html.fx-ready .eyebrow[data-reveal].in::before{animation:fxLine 1.2s var(--fx-ease) .2s backwards;transform-origin:left;}
@keyframes fxLine{from{transform:scaleX(0);}to{transform:scaleX(1);}}
/* button sheen */
.px-btn,.btn{position:relative;overflow:hidden;isolation:isolate;}
.px-btn::after,.btn::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .7s var(--fx-ease);z-index:-1;pointer-events:none;}
.px-btn:hover::after,.btn:hover::after{left:130%;}
.px-btn:not(.line):hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(212,165,55,.35);}
.px-btn{transition:transform .25s var(--fx-ease),box-shadow .25s,background .15s,color .15s;}
/* spotlight cards */
[data-spot]{position:relative;overflow:hidden;transition:transform .45s var(--fx-ease),border-color .3s,box-shadow .45s;}
[data-spot]::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(235,199,102,.18),transparent 60%);z-index:0;}
[data-spot]:hover::before{opacity:1;}
[data-spot]:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(0,0,0,.28);}
.px-tier:hover,.px-card:hover{border-color:rgba(235,199,102,.6);}
[data-spot]>*{position:relative;z-index:1;}
/* photo zoom + gold frame */
.photo-row figure,.px-photos figure{overflow:hidden;position:relative;}
.photo-row img,.px-photos img{transition:transform 1.4s var(--fx-ease),filter .6s;}
.photo-row figure:hover img,.px-photos figure:hover img{transform:scale(1.06);}
.photo-row figure::after,.px-photos figure::after{content:"";position:absolute;inset:10px;border:1px solid rgba(235,199,102,0);transition:border-color .5s,inset .5s;pointer-events:none;}
.photo-row figure:hover::after,.px-photos figure:hover::after{border-color:rgba(235,199,102,.75);inset:14px;}
/* steps line draw */
html.fx-ready .px-steps[data-reveal].in{animation:none;}
.px-steps{background:linear-gradient(var(--ink),var(--ink)) top left/0 2px no-repeat;border-top-color:transparent;}
.px-steps.in{animation:fxBar 1.6s var(--fx-ease) .1s forwards!important;border-top-color:transparent;}
@keyframes fxBar{to{background-size:100% 2px;}}
@media (max-width:960px){.px-steps,.px-steps.in{background:none;animation:none!important;}}
/* WhatsApp pulse */
.px-float{animation:fxPulse 2.8s ease-out infinite;}
@keyframes fxPulse{0%{box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 0 rgba(212,165,55,.55);}70%{box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 18px rgba(212,165,55,0);}100%{box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 0 rgba(212,165,55,0);}}
/* ticker + trust hairlines glow */
.px-trust li b{background:linear-gradient(180deg,#FFF1BF,#D4A537);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
/* gold scroll progress */
.fx-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#B98A2E,#FFF1BF,#D4A537);z-index:200;pointer-events:none;}
/* gold selection + focus polish */
::selection{background:#D4A537;color:#0D0C0A;}
@media (prefers-reduced-motion:reduce){
  html.fx-ready [data-reveal]{opacity:1!important;animation:none!important;}
  *,*::before,*::after{animation:none!important;transition:none!important;}
  .fx-dust,.fx-progress{display:none;}
  .px-hero h1 em,.hero h1 em{animation:fxShine 9s linear infinite!important;}
}
.px-hero,.hero,.px-dark,.cta-band{overflow:hidden;}
html,body{overflow-x:clip;}
/* ===== Futuristic hero frame: gold corner brackets + light scan ===== */
.hero-media{isolation:isolate;}
.hero-media::before,.hero-media::after{content:"";position:absolute;width:34px;height:34px;pointer-events:none;z-index:3;border:2px solid #EBC766;filter:drop-shadow(0 0 6px rgba(235,199,102,.8));}
.hero-media::before{top:-9px;left:-9px;border-right:0;border-bottom:0;}
.hero-media::after{right:-9px;bottom:-9px;border-left:0;border-top:0;}
.hero-media > img{box-shadow:0 0 0 1px rgba(235,199,102,.35),0 30px 80px rgba(0,0,0,.55),0 0 90px rgba(212,165,55,.22);}
.hero-media .scan{position:absolute;left:0;right:0;top:0;height:90px;z-index:2;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(180deg,rgba(255,236,170,0),rgba(255,236,170,.22) 55%,rgba(255,236,170,0));animation:fxScan 5.5s cubic-bezier(.4,0,.2,1) infinite;}
@keyframes fxScan{0%{transform:translateY(-100%);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateY(560%);opacity:0}}
@media (prefers-reduced-motion:reduce){.hero-media .scan{display:none;}}
