/* v13 FX layer — black/white + gold accents only */
.fx-shader{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9;pointer-events:none}
.fx-paths{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.55}
.fx-paths path{fill:none;stroke:url(#fxGold);stroke-width:.6;stroke-dasharray:.25 1;stroke-linecap:round;animation:fxDash var(--d,14s) linear infinite}
@keyframes fxDash{to{stroke-dashoffset:-1.25}}
.hero .hero__inner,.hero .hero__scroll{z-index:2}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 30%,rgba(10,10,10,.85) 100%)}
.section--dark{position:relative;overflow:hidden}
.section--dark>.container{position:relative;z-index:1}
/* scroll progress */
.fx-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--gold-grad);z-index:9999;pointer-events:none}
/* spotlight / glowing border cards */
.fx-spot{position:relative;isolation:isolate}
.fx-spot::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:2;opacity:0;transition:opacity .4s;
 background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(232,206,140,.95),rgba(201,164,92,.25) 40%,transparent 70%);
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.fx-spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity .4s;
 background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(201,164,92,.10),transparent 60%)}
.fx-spot:hover::before,.fx-spot:hover::after{opacity:1}
.fx-spot{transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.fx-spot:hover{transform:translateY(-4px)}
/* word reveal for headings */
.fx-words .w{display:inline-block;opacity:0;transform:translateY(.5em);filter:blur(6px);transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s var(--ease)}
.fx-words.is-in .w{opacity:1;transform:none;filter:none}
/* blur-in reveal upgrade */
.reveal{filter:blur(8px);transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease)}
.reveal.is-visible{filter:none}
/* gold shimmer on primary button */
.btn--gold{position:relative;overflow:hidden}
.btn--gold::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);animation:fxShine 4.5s ease-in-out infinite}
@keyframes fxShine{0%,60%{left:-60%}100%{left:130%}}
/* gold beam divider */
.fx-beam{height:1px;background:linear-gradient(90deg,transparent,rgba(201,164,92,.7),transparent);background-size:50% 100%;background-repeat:no-repeat;animation:fxBeam 6s linear infinite;opacity:.8}
@keyframes fxBeam{from{background-position:-50% 0}to{background-position:150% 0}}
@media (prefers-reduced-motion:reduce){
 .fx-shader,.fx-paths{display:none}.fx-words .w,.reveal{opacity:1;transform:none;filter:none;transition:none}
 .btn--gold::after,.fx-beam{animation:none}.fx-spot:hover{transform:none}
}
@media (max-width:760px){.fx-paths{opacity:.35}.reveal{filter:none}}
