/* Luxury layer — builds on pro.css + viz.css. GPU-only motion; all off under reduced motion. */
:root{--mid-a:#0B1A2E;--mid-b:#0F2A4A;--ice:#BFD6F2;--silver:#D8E2EE;--hair:rgba(15,42,74,.12);--ease-lux:cubic-bezier(.22,1,.36,1)}
/* Typography */
h1{font-size:clamp(2.6rem,5.6vw,4.6rem)!important;letter-spacing:-.022em!important;line-height:1.04!important;font-weight:500!important}
h2{font-size:clamp(1.9rem,3.4vw,2.8rem)!important;letter-spacing:-.015em!important;line-height:1.12!important;font-weight:500!important}
.eyebrow{font-variant:all-small-caps;font-size:1rem!important;letter-spacing:.16em!important;font-weight:600;display:flex;align-items:center;gap:12px;text-transform:none!important}
.eyebrow:before{content:"";flex:0 0 28px;height:1px;background:linear-gradient(90deg,var(--ice),currentColor)}
.blk{padding-top:clamp(64px,9vw,120px)!important;padding-bottom:clamp(64px,9vw,120px)!important}
.vz-ico{stroke-width:1.25!important}
main img:not([src$=".svg"]){filter:grayscale(1) sepia(.35) hue-rotate(178deg) saturate(2.4) brightness(.95) contrast(1.05)}
/* Silver/ice accent line */
.sec-head:after{background:linear-gradient(90deg,var(--silver),var(--ice),transparent)!important}
/* Hero aurora */
.hero-pro{position:relative;overflow:hidden;isolation:isolate}
.hero-pro:before,.hero-pro:after{content:"";position:absolute;z-index:-1;width:70vw;height:70vw;max-width:900px;max-height:900px;border-radius:50%;filter:blur(70px);opacity:.42;pointer-events:none;will-change:transform}
.hero-pro:before{background:radial-gradient(circle,#A9CBF5,transparent 65%);top:-30%;right:-15%;animation:aur1 22s ease-in-out infinite alternate}
.hero-pro:after{background:radial-gradient(circle,#D7E6F8,transparent 65%);bottom:-40%;left:-20%;animation:aur2 26s ease-in-out infinite alternate}
@keyframes aur1{to{transform:translate3d(-12vw,10vh,0) scale(1.15)}}
@keyframes aur2{to{transform:translate3d(14vw,-8vh,0) scale(1.1)}}
.hero-viz .rmap{transition:transform .6s var(--ease-lux);will-change:transform}
/* Headline word reveal */
.lux-w{display:inline-block;overflow:hidden;vertical-align:top;line-height:inherit;padding-bottom:.08em;margin-bottom:-.08em}
.lux-w>span{display:inline-block;transform:translateY(105%);animation:wup 1s var(--ease-lux) forwards;animation-delay:calc(var(--i)*110ms + 120ms)}
@keyframes wup{to{transform:none}}
/* Arc particles */
.rmap .spark{fill:#fff;filter:drop-shadow(0 0 3px #7FB2F0)}
/* Midnight sections */
.vz-stats,#index-snapshot,.cta,.lux-ticker{background:linear-gradient(135deg,var(--mid-a),var(--mid-b))!important;color:#fff;position:relative;isolation:isolate}
.vz-stats:before,#index-snapshot:before,.cta:before,.lux-ticker:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
#index-snapshot:after,.cta:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(600px 300px at 85% 0%,rgba(127,178,240,.18),transparent 70%),radial-gradient(500px 260px at 0% 100%,rgba(191,214,242,.10),transparent 70%)}
#index-snapshot .sec-head h2,.cta h2{color:#fff!important}
#index-snapshot .sec-head p,#index-snapshot .sec-head a{color:#D6E2F2!important}
#index-snapshot .eyebrow,.vz-stats .eyebrow,.cta .eyebrow{color:var(--ice)!important}
#index-snapshot .sec-head:after{background:linear-gradient(90deg,var(--ice),transparent)!important}
#index-snapshot #swa-index-explorer,#index-snapshot .callout,#index-snapshot .fotd,#index-snapshot .vz-chart,#index-snapshot [data-chart]>*{background:rgba(255,255,255,.97)!important;color:var(--ink,#1B2A3D);border:1px solid rgba(191,214,242,.5)!important;border-radius:6px;box-shadow:inset 0 1px 0 #fff,0 24px 60px -30px rgba(0,0,0,.6)}
#index-snapshot #swa-index-explorer{padding:clamp(18px,2.4vw,32px)}
#index-snapshot .ix-grid>div:first-child>p,#index-snapshot>.wrap>p:not(.draft){color:#D6E2F2}
.cta{padding:clamp(72px,10vw,128px) 0!important}
/* Ticker */
.lux-ticker{overflow:hidden;height:64px;display:flex;align-items:center;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.lux-track{display:flex;gap:56px;white-space:nowrap;width:max-content;animation:tick 90s linear infinite;will-change:transform}
.lux-ticker:hover .lux-track,.lux-ticker:focus-within .lux-track{animation-play-state:paused}
.lux-track span{font-family:var(--serif,Georgia,serif);font-size:1rem;color:#E6EEF8}
.lux-track span:before{content:"◆";color:var(--ice);font-size:.6em;margin-right:14px;vertical-align:middle}
.lux-track a{color:var(--ice);font-family:var(--sans,system-ui);font-size:.78rem;letter-spacing:.06em;margin-left:8px}
@keyframes tick{to{transform:translateX(-50%)}}
/* Cards: hairline, inner glow, tilt, sheen */
.card,.feature,.vz-chart,.chips>*{border:1px solid var(--hair);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 2px rgba(11,26,46,.04);position:relative;overflow:hidden;transition:transform .5s var(--ease-lux),box-shadow .5s var(--ease-lux)}
.lux-tilt{transform:perspective(900px) rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg)) translateY(var(--ty,0))}
.lux-tilt:hover{--ty:-3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 18px 40px -18px rgba(11,26,46,.28)}
.lux-tilt:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(127,178,240,.18),transparent 60%)}
.lux-tilt:hover:before{opacity:1}
.btn,.card.sector-link,.feature{position:relative;overflow:hidden}
.btn:after,.card.sector-link:after,.feature:after{content:"";position:absolute;top:0;left:0;width:60%;height:100%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(173,206,245,.35),transparent);transform:translateX(-160%) skewX(-18deg)}
.btn:hover:after,.card.sector-link:hover:after,.feature:hover:after{transform:translateX(260%) skewX(-18deg);transition:transform .9s var(--ease-lux)}

.btn{transition:transform .3s var(--ease-lux),box-shadow .3s}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px -12px rgba(11,26,46,.45)}
/* Animated underline links */
main p a,main li a,footer a{text-decoration:none!important;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .45s var(--ease-lux)}
main p a:hover,main li a:hover,footer a:hover{background-size:0 1px;background-position:100% 100%}
/* Staggered entrances */
.lux-up{opacity:0;transform:translate3d(0,22px,0);transition:opacity .8s var(--ease-lux),transform .8s var(--ease-lux);transition-delay:var(--d,0ms)}
.lux-up.lux-in{opacity:1;transform:none}
.lux-up.lux-in.lux-tilt{transform:perspective(900px) rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg)) translateY(var(--ty,0));transition-delay:0ms}
/* Icon stroke draw */
.vz-ico.lux-draw *{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s var(--ease-lux)}
.vz-ico.lux-draw.lux-in *{stroke-dashoffset:0}
/* Timeline nodes */
.tl li{position:relative}
.tl li:after{content:"";position:absolute;left:-7px;top:.55em;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #1E6FD9;transform:scale(0);transition:transform .6s var(--ease-lux) .15s;box-shadow:0 0 0 0 rgba(30,111,217,.4)}
.tl li.vz-in:after{transform:scale(1);animation:node 2.8s ease-out 1s infinite}
@keyframes node{0%{box-shadow:0 0 0 0 rgba(30,111,217,.35)}70%,100%{box-shadow:0 0 0 10px rgba(30,111,217,0)}}
/* Progress + back to top */
.lux-prog{position:fixed;top:0;left:0;right:0;height:2px;z-index:1000;background:linear-gradient(90deg,var(--ice),#1E6FD9);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
.lux-top{position:fixed;right:20px;bottom:100px;z-index:900;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:linear-gradient(135deg,var(--mid-a),var(--mid-b));color:#fff;display:grid;place-items:center;cursor:pointer;opacity:0;transform:translateY(16px) scale(.9);transition:opacity .4s,transform .4s var(--ease-lux);pointer-events:none;box-shadow:0 10px 24px -10px rgba(11,26,46,.6)}
.lux-top.on{opacity:1;transform:none;pointer-events:auto}.lux-top:hover svg{transform:translateY(-3px)}.lux-top svg{transition:transform .3s var(--ease-lux)}
@media(min-width:900px){.lux-top{bottom:100px}}
/* Dark */
html[data-theme=dark] .card,html[data-theme=dark] .feature,html[data-theme=dark] .vz-chart{border-color:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
html[data-theme=dark] .hero-pro:before,html[data-theme=dark] .hero-pro:after{opacity:.16}
html[data-theme=dark] .vz-stats,html[data-theme=dark] #index-snapshot,html[data-theme=dark] .cta,html[data-theme=dark] .lux-ticker{background:linear-gradient(135deg,#050D18,#0B1A2E)!important}
@media(prefers-reduced-motion:reduce){
.hero-pro:before,.hero-pro:after,.lux-track,.btn.gold,.tl li.vz-in:after{animation:none!important}
.lux-w>span{animation:none;transform:none}.lux-up{opacity:1;transform:none;transition:none}
.vz-ico.lux-draw *{stroke-dashoffset:0;transition:none}.lux-tilt{transform:none!important}
.btn:after,.card.sector-link:after,.feature:after{display:none}.lux-ticker{overflow-x:auto}.lux-prog{display:none}}
.btn.gold:after{animation:shim 6s var(--ease-lux) 2.5s infinite}
@keyframes shim{0%{transform:translateX(-160%) skewX(-18deg)}28%,100%{transform:translateX(260%) skewX(-18deg)}}
.swa-ix-panel{overflow-x:auto;max-width:100%}@media(max-width:600px){#index-snapshot #swa-index-explorer{padding:14px}}
.sec-head{position:relative!important}
