/* Prodigium Academy | Experience v10.3.0 — motion-first, original content + typography kept. */
:root{--x-electric:#00ccff;--x-ease:cubic-bezier(.18,.77,.18,1)}
html{scroll-padding-top:var(--header-h)}
/* Short cinematic gate. Not shown without JS, never traps interaction. */
.x-intro{display:none}
body.x-motion .x-intro{display:block;position:fixed;z-index:10000;inset:0;pointer-events:none;color:#fff;animation:xIntroClear .05s 1.56s forwards}
.x-intro__top,.x-intro__bottom{position:absolute;left:0;right:0;height:50%;background:#02090c}
.x-intro__top{top:0;transform-origin:top;animation:xCurtainUp .8s 1s var(--x-ease) forwards}
.x-intro__bottom{bottom:0;transform-origin:bottom;animation:xCurtainDown .8s 1s var(--x-ease) forwards}
.x-intro__mark{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:min(88vw,610px);text-align:center;animation:xIntroMark .7s .79s ease forwards;overflow:hidden}
.x-intro__mark strong{display:block;font:700 clamp(2rem,6.4vw,5rem)/1.12 'Orbitron',sans-serif;letter-spacing:.07em;white-space:nowrap}
.x-intro__mark strong span{color:var(--cyan);animation:xCursor .5s steps(1) infinite}
.x-intro__kicker,.x-intro__mark small{display:block;font:700 .65rem 'Jura',sans-serif;letter-spacing:.35em;color:var(--cyan)}
.x-intro__kicker{margin-bottom:12px}.x-intro__mark small{margin-top:12px;color:#a5cbd4}
.x-intro__mark i{display:block;height:2px;width:0;margin:22px auto 0;background:var(--cyan);box-shadow:0 0 22px var(--cyan);animation:xLoadTrack .7s .2s ease-out forwards}
@keyframes xLoadTrack{to{width:85%}}@keyframes xIntroMark{to{opacity:0;filter:blur(12px);transform:translate(-50%,-55%) scale(1.04)}}
@keyframes xCurtainUp{to{transform:translateY(-103%)}}@keyframes xCurtainDown{to{transform:translateY(103%)}}@keyframes xIntroClear{to{visibility:hidden}}@keyframes xCursor{50%{opacity:0}}
/* Hero: active scan/radar on photographic area. Text still the original layout. */
.hero{isolation:isolate}.hero__image{isolation:isolate}
.hero__image img{transition:filter .65s ease;will-change:transform}
.x-scan-canvas{position:absolute;z-index:3;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.x-scan-beam{position:absolute;z-index:3;left:-15%;top:-45%;height:175%;width:30%;pointer-events:none;transform:rotate(18deg) translateX(-180%);background:linear-gradient(90deg,transparent,rgba(1,220,255,.015) 15%,rgba(0,204,255,.16) 49%,rgba(255,255,255,.11) 51%,transparent 90%);mix-blend-mode:screen;animation:xSweep 6.2s cubic-bezier(.36,.05,.62,.95) infinite;filter:blur(8px)}
.x-image-glow{position:absolute;z-index:2;inset:0;pointer-events:none;background:radial-gradient(circle 230px at var(--x-pointer-x,50%) var(--x-pointer-y,55%),rgba(0,204,255,.19),transparent 75%);mix-blend-mode:screen;opacity:.55;transition:opacity .3s}
.x-scan-reticle{position:absolute;z-index:4;top:var(--x-pointer-y,53%);left:var(--x-pointer-x,55%);width:90px;height:90px;transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:opacity .2s ease;filter:drop-shadow(0 0 10px rgba(0,204,255,.2))}
.x-scan-reticle::before,.x-scan-reticle::after{content:"";position:absolute;inset:0;border:1px solid rgba(0,204,255,.72);border-radius:50%}
.x-scan-reticle::after{inset:18px;border-style:dashed;border-color:rgba(173,245,255,.6);animation:xSpin 8s linear infinite}
.x-scan-reticle i{position:absolute;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}
.x-scan-reticle i:nth-child(1){width:17px;height:1px;left:-14px;top:50%}.x-scan-reticle i:nth-child(2){width:17px;height:1px;right:-14px;top:50%}
.x-scan-reticle i:nth-child(3){width:1px;height:17px;left:50%;top:-14px}.x-scan-reticle i:nth-child(4){width:1px;height:17px;left:50%;bottom:-14px}
.hero__image.x-is-hovered .x-scan-reticle{opacity:1}.hero__image.x-is-hovered .x-image-glow{opacity:1}
.hero__image-mask{pointer-events:none}
@keyframes xSweep{0%{transform:rotate(18deg) translateX(-220%)}72%,100%{transform:rotate(18deg) translateX(610%)}}
@keyframes xSpin{to{transform:rotate(360deg)}}
/* Original typography, with word decode visible on first load; no changed copy. */
.hero h1 span{position:relative}.hero h1 span.x-is-decoding{color:var(--cyan);filter:drop-shadow(0 0 14px rgba(0,204,255,.23))}
.hero__copy{position:relative;z-index:3}.hero__signal{position:relative;z-index:2}
.x-scroll-hint{position:absolute;bottom:80px;left:24px;z-index:5;display:flex;align-items:center;gap:12px;color:rgba(222,246,250,.75);font:700 .64rem 'Jura',sans-serif;letter-spacing:.22em;writing-mode:vertical-rl;transition:color .2s}
.x-scroll-hint i{position:relative;display:block;width:1px;height:68px;background:rgba(255,255,255,.2);overflow:hidden}
.x-scroll-hint i::after{content:"";display:block;width:100%;height:25px;background:var(--cyan);animation:xLineDown 1.9s ease-in-out infinite}
.x-scroll-hint:hover{color:white}@keyframes xLineDown{from{transform:translateY(-30px)}to{transform:translateY(75px)}}
/* Reposition marquee as an unmistakable animated editorial strip; reacts to scroll velocity. */
.hero__method{position:relative;z-index:5;height:82px;border-color:#17474b;background:#031114}
.hero__method-track{height:100%;animation:xTicker 31s linear infinite;--x-ticker-speed:31s;animation-duration:var(--x-ticker-speed)}
.hero__method-group{font-family:'Jura',sans-serif;font-size:clamp(.88rem,1.22vw,1.15rem);font-weight:700;letter-spacing:.07em;gap:24px;padding-right:24px;color:#e2f3f7}
.hero__method-group span{transition:color .3s,text-shadow .3s}
.hero__method-group i{font-size:1.2rem;color:var(--cyan)!important}
.hero__method-group span:nth-of-type(even){-webkit-text-stroke:1px #75ddec;color:transparent}
.hero__method:hover .hero__method-track{animation-play-state:paused}
@keyframes xTicker{to{transform:translate3d(-50%,0,0)}}
/* Scroll-driven step narrative, no new blocks of prose. */
.manifesto{padding:110px 0;min-height:710px;background:radial-gradient(circle at 75% 45%,rgba(0,204,255,.04),transparent 35%),#05070a;overflow:visible}
.manifesto__layout{align-items:start}
.manifesto__statement{position:sticky;top:calc(var(--header-h) + 80px)}
.manifesto__route{position:relative;max-width:480px;padding-top:26px;padding-bottom:26px}
.manifesto__rail{position:absolute;top:36px;bottom:55px;left:7px;width:2px;background:#16404a}
.manifesto__rail i{display:block;width:100%;height:var(--x-rail-fill,0%);max-height:100%;background:var(--cyan);box-shadow:0 0 22px 3px rgba(0,204,255,.5);transition:height .12s linear}
.method-point{position:relative;min-height:166px;padding:14px 0 35px 42px;opacity:.44;transform:translateX(8px);transition:opacity .45s var(--x-ease),transform .45s var(--x-ease)}
.method-point:last-child{min-height:130px}
.method-point::before{content:"";position:absolute;top:24px;left:0;width:16px;height:16px;border:2px solid #3d6470;background:#071318;border-radius:100%;z-index:2;transition:background .35s,border-color .35s,box-shadow .35s,transform .35s}
.method-point::after{content:attr(data-step);position:absolute;top:12px;right:0;font:700 3.3rem 'Orbitron',sans-serif;color:rgba(0,204,255,.075);pointer-events:none;transition:color .35s,transform .4s var(--x-ease)}
.method-point.x-active{opacity:1;transform:translateX(0)}
.method-point.x-active::before{transform:scale(1.13);border-color:var(--cyan);background:var(--cyan);box-shadow:0 0 0 8px rgba(0,204,255,.11),0 0 25px rgba(0,204,255,.55)}
.method-point.x-active::after{color:rgba(0,204,255,.19);transform:translateX(-5px)}
.method-point b{display:block;position:relative;z-index:1;font-size:1.23rem;font-weight:700;color:#f8fbfc}
.method-point span{display:block;position:relative;z-index:1;color:#a4b9bf;font-size:.98rem;line-height:1.6}
/* Trails: image wipes and cursor-driven depth. Existing buttons remain keyboard usable. */
.trails{padding-top:110px;padding-bottom:110px}
.trails__stage{position:relative;border:1px solid #bcd1d5;box-shadow:0 14px 40px rgba(0,37,46,.1);overflow:visible}
.trails__visual{overflow:hidden;perspective:850px}.trails__image-stack{overflow:hidden}
.trails__image-stack img{transition:opacity .28s ease,transform 1s var(--x-ease),filter .5s ease;transform:scale(1.12) translate3d(0,0,0)}
.trails__image-stack img.is-active{animation:xTrailWipe .68s var(--x-ease) both;transform:scale(1.045) translate3d(var(--x-photo-x,0px),var(--x-photo-y,0px),0)}
.trails__image-stack::after{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 36%,rgba(129,243,255,.27) 49%,transparent 62%);transform:translateX(-130%);opacity:0}
.trails__visual.x-changing .trails__image-stack::after{animation:xImageFlash .7s ease-out}
@keyframes xTrailWipe{from{clip-path:inset(0 0 0 100%);opacity:.7;filter:blur(3px) saturate(.35)}to{clip-path:inset(0 0 0 0);opacity:1;filter:blur(0) saturate(.7)}}
@keyframes xImageFlash{from{opacity:1;transform:translateX(-130%)}to{opacity:0;transform:translateX(130%)}}
.trail{overflow:hidden;isolation:isolate;transition:background .25s,padding-left .4s var(--x-ease)}
.trail::before{width:3px;transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--x-ease)}
.trail.is-active::before,.trail:hover::before{transform:scaleY(1)}
.trail::after{content:'↗';position:absolute;right:26px;opacity:0;transform:translate(-14px,10px);transition:opacity .34s,transform .34s;color:var(--blue);font-size:1.5rem;font-family:system-ui}
.trail:is(:hover,:focus-visible,.is-active)::after{opacity:1;transform:translate(0,0)}
.trail strong{position:relative;z-index:1;transition:transform .3s ease}
.trail:focus-visible{outline:3px solid var(--cyan);outline-offset:-3px}
/* Labs: real draggable reveal of blueprint overlay vs original lab screenshot. */
.labs{padding:105px 0;background:#05090b}
.labs__showcase{transform:perspective(1100px) rotateY(var(--x-labs-rx,0deg)) rotateX(var(--x-labs-ry,0deg));transition:transform .3s ease,box-shadow .3s;will-change:transform;box-shadow:0 20px 75px rgba(0,204,255,.1)}
.labs__showcase:hover{box-shadow:0 25px 85px rgba(0,204,255,.17)}
.labs__visual{position:relative;isolation:isolate;cursor:ew-resize;touch-action:pan-y}
.x-labs-blueprint{position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(0,12,19,.97),rgba(0,35,45,.90));clip-path:inset(0 calc(100% - var(--x-labs-split,36%)) 0 0);transition:clip-path .15s ease-out;overflow:hidden}
.x-labs-blueprint svg{width:100%;height:100%;display:block}
.x-labs-compare{position:absolute;z-index:5;inset:0 auto 0 var(--x-labs-split,36%);width:0;border-right:2px solid #b5f7ff;box-shadow:2px 0 18px rgba(0,204,255,.5);pointer-events:none;transition:left .15s ease-out}
.x-labs-compare__handle{position:absolute;left:0;top:50%;width:47px;height:47px;display:grid;place-items:center;border:2px solid var(--cyan);border-radius:50%;background:#04131c;color:#fff;transform:translate(-50%,-50%);font:700 1.25rem 'Jura',sans-serif;box-shadow:0 0 0 6px rgba(0,204,255,.13),0 0 24px rgba(0,204,255,.5)}
.x-labs-hint{position:absolute;z-index:6;bottom:15px;right:18px;pointer-events:none;background:rgba(2,14,20,.76);border:1px solid rgba(0,204,255,.25);backdrop-filter:blur(8px);padding:5px 9px;color:#dff9ff;font:700 .57rem 'Jura',sans-serif;letter-spacing:.13em}
.x-labs-hint b{margin-left:8px;color:var(--cyan);font-size:1rem}
.labs__visual.x-dragging .x-labs-blueprint{transition:none}.labs__visual.x-dragging .x-labs-compare{transition:none}
/* Magnetic CTAs and responsive glow. One continuous effect, no extra ornaments. */
@media(hover:hover) and (pointer:fine){
  .btn--lg,.btn--academy{position:relative;overflow:hidden;isolation:isolate;transform:translate3d(var(--x-mag-x,0px),var(--x-mag-y,0px),0);transition:transform .26s var(--x-ease),background .25s,border-color .25s}
  .btn--lg::before,.btn--academy::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle 120px at var(--x-mouse-x,50%) var(--x-mouse-y,50%),rgba(255,255,255,.23),transparent 78%);opacity:0;transition:opacity .15s}
  .btn--lg:hover::before,.btn--academy:hover::before{opacity:1}
}
/* Big-screen visual depth and small editorial touches. */
.companies__image img{transition:filter .3s ease}.people__image{overflow:hidden}.people__image img{transition:transform 1.1s var(--x-ease)}
.people__image:hover img{transform:scale(1.06)}
.cta{background-image:radial-gradient(circle at var(--x-cta-x,65%) 50%,rgba(0,204,255,.13),transparent 40%),linear-gradient(110deg,#06272a,#005d60 58%,#07373b)}
@media(max-width:1100px){.x-scroll-hint{display:none}.manifesto__statement{top:100px}.manifesto{min-height:auto}.trails{padding-block:85px}}
@media(max-width:860px){
  .hero__method{height:61px}.hero__method-group{font-size:.85rem;gap:17px;padding-right:17px}
  .manifesto{padding:70px 0}.manifesto__statement{position:static}
  .manifesto__route{max-width:100%;padding-top:8px}.method-point{min-height:130px}.method-point:last-child{min-height:100px}.method-point::after{font-size:2.2rem}
  .trails{padding:73px 0}.trails__stage{overflow:hidden}.labs{padding:72px 0}
  .labs__showcase{transform:none!important}.x-labs-compare__handle{width:40px;height:40px}
  .x-scan-reticle{display:none}.hero__image.x-is-hovered .x-image-glow{opacity:.55}
}
@media(max-width:620px){
  .x-intro__mark strong{font-size:clamp(1.6rem,8vw,3.3rem)}.x-intro__kicker{letter-spacing:.19em}
  .hero__method{height:54px}.hero__method-group{font-size:.75rem}
  .method-point{min-height:134px;padding-right:2px}.method-point::after{opacity:.7}
  .trails__image-stack img.is-active{transform:scale(1.03)}
  .x-labs-hint{font-size:.51rem;right:8px;bottom:8px}
  .labs__visual{touch-action:pan-y}
}
@media(prefers-reduced-motion:reduce){
  body.x-motion .x-intro{display:none!important}
  .x-scan-canvas,.x-scan-beam,.x-scan-reticle,.x-scroll-hint{display:none!important}
  .hero__method-track{animation:none!important}
  .method-point{opacity:1!important;transform:none!important}
  .trails__image-stack img.is-active{animation:none!important;transform:none!important;clip-path:none!important}
  .x-labs-blueprint,.x-labs-compare,.labs__showcase{transition:none!important}
}
.x-intro[hidden]{display:none!important}
.labs__visual:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
/* The comparison canvas owns the drag gesture. Prevent touch scroll gesture cancelling pointer capture. */
.labs__visual{touch-action:pan-y}
@media(max-width:620px){.labs__visual{touch-action:pan-y}}

.x-scroll-hint{display:none!important}
/* Prevent the browser's native image dragging from cancelling the lab comparison gesture. */
.labs__visual img{-webkit-user-drag:none;user-select:none}


/* ==========================================================
   PRODIGIUM ACADEMY | v10.1.0 - focused refinements
   Preserve approved v10 effects/layout; correct ticker,
   business section whitespace and compact-screen rhythm.
   ========================================================== */

/* The headline is no longer scrambled: reveal it in one continuous
   upward mask, matching the entrance curtain's restrained motion. */
.hero h1 .x-title-3d__line--accent.x-text-reveal{
  animation:xHeadlineReveal 1.05s 1.42s both var(--x-ease);
}
@keyframes xHeadlineReveal{
  from{opacity:0;clip-path:inset(100% 0 0);transform:translateY(18px);filter:blur(5px)}
  to{opacity:1;clip-path:inset(0 0 0);transform:translateY(0);filter:blur(0)}
}

/* The specialties marquee is a slim typographic detail, not a banner. */
.hero__method{height:52px}
.hero__method-group{
  font-size:clamp(.72rem,.95vw,.84rem);
  gap:16px;
  padding-right:16px;
  letter-spacing:.065em;
}
.hero__method-group i{font-size:.95rem}
.hero__image,.hero__image-mask{bottom:52px}
.hero__inner{min-height:calc(100svh - var(--header-h) - 52px)}

/* Remove inherited 720px minimum and use measured padding instead. */
.companies{min-height:0;padding:74px 0}

/* Tablet - preserve the content-first hero but stop pushing the photo
   down into a separate empty region. */
@media (min-width:621px) and (max-width:860px){
  .hero__image,.hero__image-mask{top:0;bottom:46px;width:100%}
  .hero__image img{height:100%;object-position:60% center}
  .hero__image-mask{background:linear-gradient(90deg,rgba(3,8,13,.94) 0%,rgba(3,8,13,.77) 53%,rgba(3,8,13,.40) 100%),linear-gradient(0deg,rgba(3,8,13,.76),transparent 60%)}
  .hero__inner{min-height:clamp(575px,76svh,710px);padding-block:74px 92px}
  .hero__copy{max-width:660px}
  .header__actions{margin-left:auto}
  .nav-toggle{margin-left:12px}
}

@media(max-width:860px){
  .hero__method{height:46px}
  .hero__method-group{font-size:.74rem;gap:15px;padding-right:15px}
  .hero__image,.hero__image-mask{bottom:46px}
  .manifesto{padding:62px 0}
  .trails{padding:66px 0}
  .labs{padding:66px 0}
  .companies{min-height:0;padding:60px 0}
  .companies__layout{gap:32px}
}

@media(max-width:620px){
  /* Natural mobile height: no center-aligned empty bands above the content. */
  .hero{min-height:0}
  .hero__inner{min-height:0;display:block;padding-top:54px;padding-bottom:66px}
  .hero__image,.hero__image-mask{top:0;bottom:40px;width:100%}
  .hero__image img{height:100%;object-position:58% center}
  .hero__image-mask{
    background:linear-gradient(180deg,rgba(3,8,13,.65) 0%,rgba(3,8,13,.77) 38%,rgba(3,8,13,.90) 70%,#05070a 100%)!important;
  }
  .hero h1{font-size:clamp(2.07rem,9.4vw,3.03rem);line-height:1.10;max-width:12.5ch;letter-spacing:-.026em;margin-bottom:19px}
  .hero__lead{font-size:.95rem;line-height:1.64;max-width:33rem}
  .hero__actions{margin-top:24px;gap:14px}
  .hero__method{height:40px}
  .hero__method-group{font-size:.68rem;gap:12px;padding-right:12px;letter-spacing:.055em}
  .hero__method-group i{font-size:.76rem}
  .hero__method-group span:nth-of-type(even){-webkit-text-stroke:0;color:#91bfc7}
  .manifesto{padding:54px 0}
  .manifesto__layout{gap:22px}
  .manifesto__statement h2{margin-bottom:16px}
  .manifesto__outcome{margin-top:22px;padding-top:16px;gap:12px}
  .manifesto__route{padding:14px 0 6px;margin:0;max-width:100%}
  .manifesto__rail{left:7px;top:30px;bottom:39px}
  .method-point,.method-point:last-child{
    min-height:0;
    padding:13px 4px 24px 38px;
    transform:none;
    opacity:.8;
  }
  .method-point:last-child{padding-bottom:9px}
  .method-point::before{top:21px;left:0}
  .method-point::after{top:13px;right:2px;font-size:1.65rem}
  .method-point b{font-size:.98rem;line-height:1.45}
  .method-point span{font-size:.85rem;line-height:1.5;max-width:100%}
  .method-point.x-active{opacity:1}
  .trails{padding:56px 0}
  .trails__visual{height:auto;aspect-ratio:1.16/1;min-height:230px}
  .trails__selector .trail{min-height:61px}
  .labs{padding:56px 0}
  .labs__layout{gap:29px}
  .people{padding:56px 0}
  .people__copy h2{margin-top:-70px}
  .companies{min-height:0;padding:50px 0}
  .companies__layout{gap:24px}
  .capability{padding-top:20px}
  .faq{padding:60px 0}
}
@media(max-width:380px){
  .hero__inner{padding-top:44px;padding-bottom:58px}
  .hero h1{font-size:clamp(2.02rem,9.5vw,2.23rem);max-width:11ch}
  .hero__lead{font-size:.92rem}
  .trails__visual{min-height:220px}
  .people__copy h2{margin-top:-61px}
}
@media(prefers-reduced-motion:reduce){
  .hero h1 .x-title-3d__line--accent.x-text-reveal{animation:none!important;opacity:1!important;clip-path:none!important;transform:none!important;filter:none!important}
}


/* ==========================================================
   PRODIGIUM ACADEMY v10.2 | Hero title — interactive layered 3D
   Keep editorial typography and the approved photographic hero.
   The visible wording appears once to assistive tech; depth copies
   are aria-hidden, and the effect is off for touch/reduced motion.
   ========================================================== */
.hero h1.x-title-3d{
  position:relative;
  transform-origin:31% 50%;
  transform-style:preserve-3d;
  transform:perspective(1100px) rotateX(var(--x-title-rotate-x,0deg)) rotateY(var(--x-title-rotate-y,0deg));
  transition:transform .44s cubic-bezier(.18,.77,.18,1);
  backface-visibility:hidden;
}
.hero h1.x-title-3d .x-title-3d__line{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  transform-style:preserve-3d;
  width:100%;
  isolation:isolate;
}
.hero h1.x-title-3d .x-title-3d__line--primary{color:#fff}
.hero h1.x-title-3d .x-title-3d__line--accent{color:var(--cyan)}
.hero h1.x-title-3d .x-title-3d__face,
.hero h1.x-title-3d .x-title-3d__line::before,
.hero h1.x-title-3d .x-title-3d__line::after{
  display:block;
  grid-area:1/1;
  min-width:0;
  font:inherit;
  letter-spacing:inherit;
  line-height:inherit;
}
.hero h1.x-title-3d .x-title-3d__face{
  position:relative;
  z-index:3;
  color:inherit;
  transform:translateZ(18px);
  text-shadow:0 3px 12px rgba(0,0,0,.16);
  transition:text-shadow .45s ease;
}
/* Decorative copies are generated in CSS: indexable heading text is NOT duplicated. */
.hero h1.x-title-3d .x-title-3d__line::before,
.hero h1.x-title-3d .x-title-3d__line::after{
  content:attr(data-title-echo);
  position:relative;
  pointer-events:none;
  user-select:none;
  color:rgba(0,65,78,.9);
  -webkit-text-stroke:1px rgba(0,204,255,.7);
  text-shadow:0 0 17px rgba(0,204,255,.23);
  transition:opacity .38s ease;
}
.hero h1.x-title-3d .x-title-3d__line::after{
  z-index:1;
  opacity:.10;
  transform:translate3d(3px,4px,0) translateZ(-13px);
}
.hero h1.x-title-3d .x-title-3d__line::before{
  z-index:0;
  opacity:.045;
  transform:translate3d(7px,9px,0) translateZ(-28px);
}
@media(min-width:861px) and (hover:hover) and (pointer:fine){
  .hero h1.x-title-3d.x-title-3d--active .x-title-3d__line::after{opacity:.66}
  .hero h1.x-title-3d.x-title-3d--active .x-title-3d__line::before{opacity:.36}
  .hero h1.x-title-3d.x-title-3d--active .x-title-3d__face{text-shadow:0 6px 24px rgba(0,204,255,.20)}
  /* Localized radial light travels on the actual text lines, horizontally AND vertically.
     Primary remains white; cyan highlight stays readable in the resting state. */
  .hero h1.x-title-3d.x-title-3d--active .x-title-3d__line--primary .x-title-3d__face{
    background:radial-gradient(ellipse 24% 110% at var(--x-title-light-x,50%) var(--x-title-light-y,50%),#bbf6ff 0%,#f6feff 41%,#fff 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
  }
  .hero h1.x-title-3d.x-title-3d--active .x-title-3d__line--accent .x-title-3d__face{
    color:var(--cyan);
    background:radial-gradient(ellipse 26% 115% at var(--x-title-light-x,50%) var(--x-title-light-y,50%),#e5ffff 0%,#78e8ff 29%,#00ccff 67%,#00b9e9 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
  }
}
@media(max-width:860px), (hover:none), (pointer:coarse){
  .hero h1.x-title-3d{transform:none!important}
  .hero h1.x-title-3d .x-title-3d__face{transform:none;text-shadow:none}
  .hero h1.x-title-3d .x-title-3d__line::before,
  .hero h1.x-title-3d .x-title-3d__line::after{content:none;display:none}
}
@media(prefers-reduced-motion:reduce){
  .hero h1.x-title-3d{transform:none!important;transition:none!important}
  .hero h1.x-title-3d .x-title-3d__face{transform:none!important;text-shadow:none!important}
  .hero h1.x-title-3d .x-title-3d__line::before,
  .hero h1.x-title-3d .x-title-3d__line::after{content:none!important;display:none!important}
  .hero h1 .x-title-3d__line--accent.x-text-reveal{animation:none!important;opacity:1!important;clip-path:none!important;transform:none!important;filter:none!important}
}


/* ==========================================================
   v10.2.1 | Prodigium luminous cursor
   Decorative only; no interaction capture, no external library.
   Native cursor is preserved for text entry, sliders, touch and
   users requesting reduced motion or forced colors.
   ========================================================== */
.x-cyber-cursor{
  position:fixed;inset:0;z-index:9999;pointer-events:none;
  opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s;
  contain:layout style;isolation:isolate;
}
.x-cyber-cursor.is-visible{opacity:1;visibility:visible}
.x-cyber-cursor.is-native{opacity:0}
.x-cyber-cursor__point,.x-cyber-cursor__follower{
  position:absolute;top:0;left:0;pointer-events:none;will-change:transform;
}
.x-cyber-cursor__core{
  position:absolute;left:0;top:0;width:5px;height:5px;
  transform:translate(-50%,-50%);border-radius:50%;
  background:#d5fcff;box-shadow:0 0 0 1px rgba(0,204,255,.54),0 0 13px 3px rgba(0,204,255,.52);
  transition:transform .17s ease,box-shadow .2s ease;
}
.x-cyber-cursor__ring{
  position:absolute;top:0;left:0;width:30px;height:30px;
  border:1px solid rgba(58,222,255,.78);border-radius:50%;
  transform:translate(-50%,-50%);
  box-shadow:inset 0 0 10px rgba(0,204,255,.08),0 0 14px rgba(0,204,255,.18);
  background:radial-gradient(circle,rgba(0,204,255,.03) 0%,transparent 68%);
  transition:width .23s ease,height .23s ease,border-color .23s ease,box-shadow .23s ease;
}
.x-cyber-cursor__ring::before{
  content:'';position:absolute;inset:-4px;border-radius:50%;
  border-top:2px solid rgba(165,249,255,.9);
  border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;
  animation:xCyberCursorOrbit 4.5s linear infinite;
}
.x-cyber-cursor__ring::after{
  content:'';position:absolute;top:50%;left:50%;width:9px;height:9px;
  border-top:1px solid rgba(155,243,255,.7);border-right:1px solid rgba(155,243,255,.7);
  transform:translate(11px,-15px) rotate(20deg);
  opacity:.55;transition:opacity .2s ease,transform .25s ease;
}
.x-cyber-cursor__aura{
  position:absolute;top:0;left:0;width:77px;height:77px;
  transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle,rgba(0,203,255,.14),rgba(0,203,255,.055) 38%,transparent 69%);
  filter:blur(5px);opacity:.8;transition:opacity .22s ease,transform .22s ease;
}
.x-cyber-cursor.is-interactive .x-cyber-cursor__ring{
  width:46px;height:46px;border-color:rgba(183,250,255,.98);
  box-shadow:0 0 18px rgba(0,204,255,.38),inset 0 0 15px rgba(0,204,255,.10);
}
.x-cyber-cursor.is-interactive .x-cyber-cursor__aura{opacity:1}
.x-cyber-cursor.is-interactive .x-cyber-cursor__ring::after{opacity:1;transform:translate(17px,-21px) rotate(20deg)}
.x-cyber-cursor.is-pressed .x-cyber-cursor__ring{width:21px;height:21px}
.x-cyber-cursor.is-pressed .x-cyber-cursor__core{transform:translate(-50%,-50%) scale(1.8)}
@keyframes xCyberCursorOrbit{to{transform:rotate(360deg)}}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) and (forced-colors:none){
  html.x-cursor-enabled,html.x-cursor-enabled body,html.x-cursor-enabled body *{cursor:none!important}
  html.x-cursor-enabled body :is(input,textarea,[contenteditable]),
  html.x-cursor-enabled body [contenteditable] *{cursor:text!important}
  html.x-cursor-enabled body select{cursor:default!important}
  html.x-cursor-enabled body [role="slider"],html.x-cursor-enabled body [role="slider"] *{cursor:ew-resize!important}
}
@media (hover:none), (pointer:coarse), (prefers-reduced-motion:reduce), (forced-colors:active){
  .x-cyber-cursor{display:none!important}
}


/* ==========================================================
   v10.3.0 | Mobile-only performance refinements.
   All desktop styles (>860px) and 3D/cursor effects remain intact.
   ========================================================== */
@media (max-width:860px){
  /* Image does not animate on touch; avoid allocating an extra GPU layer. */
  .hero__image img{will-change:auto}
  /* Keep the sweeping light, but avoid a full-screen animated blur layer. */
  .x-scan-beam{
    filter:none;
    background:linear-gradient(90deg,
      transparent 0%,rgba(0,204,255,.015) 17%,rgba(0,204,255,.035) 34%,
      rgba(0,204,255,.095) 47%,rgba(245,253,255,.09) 51%,
      rgba(0,204,255,.045) 64%,transparent 90%);
  }
  /* Paused offscreen by IntersectionObserver, resumed before re-entry. */
  .hero__method-track.x-mobile-offscreen,
  .x-scan-beam.x-mobile-offscreen{animation-play-state:paused!important}
}
@media (max-width:620px){
  /* The native 3:1 aspect ratio is derived from height, never forced width. */
  .footer__brand img{
    width:auto;
    height:73px;
    max-width:100%;
    object-fit:contain;
    object-position:left center;
  }
}
