/* =========================================================
   TOKENS — existing palette, unchanged
   ========================================================= */
:root{
  --bg:#030208;
  --purple:#8b5cf6;
  --pink:#c084fc;
  --pink-2:#ec4899;
  --blue:#2aaefa;
  --cyan:#6dd5fa;
  --text:#f0ecff;
  --muted:#6b6a8d;            /* decorative / large text only (4.0:1 on bg) */
  --text-2:rgba(240,236,255,.7); /* small secondary copy, passes 4.5:1 */
  --line:rgba(240,236,255,.08);
  --line-2:rgba(240,236,255,.14);
  --panel:rgba(14,11,30,.6);
  --grad:linear-gradient(100deg,#a78bfa 0%,#8b5cf6 28%,#2aaefa 72%,#6dd5fa 100%);
  --accent:#6dd5fa;
  --grad-btn:linear-gradient(135deg,#6d28d9 0%,#4f46e5 50%,#0b74b8 100%);
  --f-display:'Cormorant Garamond','Cormorant',Georgia,'Times New Roman',serif;
  --f-head:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-body:'Outfit',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,'Cascadia Code',Consolas,monospace;
  --gutter:clamp(16px,5vw,96px);
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:dark;
}
@property --beam{syntax:'<angle>';inherits:false;initial-value:0deg}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video{max-width:100%;display:block}
h1,h2,h3,p{margin:0}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--text)}
::selection{background:rgba(139,92,246,.45);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}

.wrap{width:100%;max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
@media (min-width:1920px){.wrap{max-width:1760px}}
.mono{font-family:var(--f-mono)}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* scroll progress — driven by script.js so page-height changes (the rings resizing) ease instead of jumping */
.progress{position:fixed;inset:0 0 auto;height:2px;z-index:60;background:var(--grad);transform-origin:0 50%;transform:scaleX(0);will-change:transform}

/* =========================================================
   AMBIENT — fixed aurora behind every section, drifts with time + scroll
   ========================================================= */
.ambient{position:fixed;inset:-10vh 0;z-index:-1;pointer-events:none;overflow:hidden}
.ambient i{position:absolute;display:block;border-radius:50%}
.am-1{width:70vmax;height:70vmax;left:-25vmax;top:-20vmax;background:radial-gradient(circle,rgba(139,92,246,.28),rgba(139,92,246,.08) 45%,transparent 68%)}
.am-2{width:60vmax;height:60vmax;right:-22vmax;top:20vh;background:radial-gradient(circle,rgba(42,174,250,.2),rgba(42,174,250,.06) 45%,transparent 68%)}
.am-3{width:65vmax;height:65vmax;left:10vw;bottom:-35vmax;background:radial-gradient(circle,rgba(109,40,217,.26),rgba(109,40,217,.07) 45%,transparent 68%)}
.am-4{width:34vmax;height:34vmax;right:12vw;bottom:-6vmax;background:radial-gradient(circle,rgba(109,213,250,.1),transparent 65%)}
.ambient-grid{position:absolute;inset:0;background-image:radial-gradient(rgba(240,236,255,.07) 1px,transparent 1.2px);background-size:28px 28px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,#000 20%,transparent 80%);mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,#000 20%,transparent 80%);opacity:.6}
.grain{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.05;
  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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@media (prefers-reduced-motion:no-preference){
  .am-1{animation:am-a 28s ease-in-out infinite alternate}
  .am-2{animation:am-b 34s ease-in-out infinite alternate}
  .am-3{animation:am-a 40s ease-in-out infinite alternate-reverse}
  .am-4{animation:am-b 24s ease-in-out infinite alternate-reverse}
  @keyframes am-a{0%{transform:translate(0,0) scale(1)}50%{transform:translate(12vw,10vh) scale(1.15)}100%{transform:translate(-6vw,22vh) scale(.92)}}
  @keyframes am-b{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-16vw,-14vh) scale(1.2)}}
  @supports (animation-timeline:scroll()){
    /* the whole field slowly rotates hue position as the page scrolls */
    .ambient{animation:am-scroll linear both;animation-timeline:scroll(root)}
    @keyframes am-scroll{from{transform:translateY(0)}to{transform:translateY(-6vh)}}
    .am-2{animation:am-b 34s ease-in-out infinite alternate,am-swing linear both;animation-timeline:auto,scroll(root)}
    @keyframes am-swing{from{translate:0 0}to{translate:-40vw 45vh}}
    .am-1{animation:am-a 28s ease-in-out infinite alternate,am-swing2 linear both;animation-timeline:auto,scroll(root)}
    @keyframes am-swing2{from{translate:0 0}to{translate:35vw 55vh}}
  }
}

/* =========================================================
   NAV — floating glass pill + sliding active indicator
   ========================================================= */
.nav{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:50;
  display:flex;align-items:center;gap:6px;padding:6px 6px 6px 18px;border-radius:999px;
  background:rgba(14,11,30,.58);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);
  border:1px solid var(--line-2);box-shadow:0 12px 40px -12px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.06);
  max-width:calc(100% - 2*var(--gutter))}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--f-head);font-weight:700;font-size:15px;color:var(--text);letter-spacing:-.01em;margin-right:10px;white-space:nowrap}
.brand:hover{color:#fff}
.brand-dot{width:9px;height:9px;border-radius:50%;background:var(--grad);box-shadow:0 0 14px var(--accent)}
.nav-links{position:relative;display:flex;gap:2px;list-style:none;margin:0;padding:0}
.nav-ind{position:absolute;top:0;left:0;height:100%;width:0;border-radius:999px;pointer-events:none;
  background:linear-gradient(135deg,rgba(139,92,246,.4),rgba(42,174,250,.26));box-shadow:inset 0 0 0 1px rgba(139,92,246,.4),0 0 22px -4px rgba(139,92,246,.7);
  opacity:0;transition:transform .5s var(--ease),width .5s var(--ease),opacity .3s}
.nav-links a{position:relative;z-index:1;display:block;padding:10px 16px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--text-2);transition:color .3s}
.nav-links a:hover,.nav-links a.on{color:#fff}
.nav-cta{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 18px;border-radius:999px;font-size:13.5px;font-weight:600;color:#fff;background:var(--grad-btn);margin-left:6px;white-space:nowrap;transition:box-shadow .3s,transform .3s var(--ease)}
.nav-cta:hover{color:#fff;box-shadow:0 0 28px -4px rgba(139,92,246,.8);transform:translateY(-1px)}
.nav-here{display:none;font-family:var(--f-mono);font-size:12px;color:var(--accent);white-space:nowrap}
.menu-btn{display:none;position:relative;width:44px;height:44px;border:0;border-radius:999px;background:transparent;color:var(--text);cursor:pointer;padding:0;transition:background .3s}
.menu-btn:hover{background:rgba(255,255,255,.06)}
.menu-btn span{position:absolute;right:12px;height:1.5px;border-radius:2px;background:currentColor;transition:transform .45s var(--ease),width .45s var(--ease),top .45s var(--ease)}
.menu-btn span:nth-child(1){top:18px;width:20px}
.menu-btn span:nth-child(2){top:25px;width:12px}
.menu-btn span:nth-child(3){display:none}
.menu-btn[aria-expanded="true"] span:nth-child(1){top:21.5px;width:20px;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){top:21.5px;width:20px;transform:rotate(-45deg)}
.menu{position:fixed;top:calc(78px + env(safe-area-inset-top,0px));left:var(--gutter);right:var(--gutter);z-index:49;display:grid;gap:2px;padding:8px;border-radius:24px;
  background:rgba(14,11,30,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--line-2);box-shadow:0 30px 60px -20px rgba(0,0,0,.8);
  transform-origin:top center;transition:opacity .3s,transform .4s var(--ease)}
.menu[hidden]{display:grid!important;opacity:0;transform:translateY(-8px) scale(.98);pointer-events:none;visibility:hidden}
.menu a{display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:0 18px;border-radius:16px;font-family:var(--f-head);font-weight:600;font-size:19px;color:var(--text)}
.menu a span{font-family:var(--f-mono);font-size:12px;color:var(--muted);font-weight:400}
.menu a.on{background:rgba(139,92,246,.18)}
@media (max-width:880px){
  .nav{left:var(--gutter);right:var(--gutter);transform:none;max-width:none;justify-content:space-between;padding-left:16px}
  .nav-links,.nav-cta{display:none}
  .menu-btn{display:block}
  .nav-here{display:block;margin-left:auto;margin-right:10px}
}
@media (min-width:881px){.menu{display:none!important}}
@media (max-width:359px){.nav-here{display:none}}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;min-height:max(680px,100svh);display:flex;align-items:center;padding-block:140px 110px;overflow:hidden;isolation:isolate}
.hero-grid-bg,.hero-grid-hot{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(240,236,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(240,236,255,.055) 1px,transparent 1px);
  background-size:64px 64px;background-position:center top}
.hero-grid-bg{-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 10%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 10%,transparent 75%)}
.hero-grid-hot{background-image:linear-gradient(rgba(139,92,246,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(139,92,246,.6) 1px,transparent 1px);
  -webkit-mask-image:radial-gradient(260px circle at var(--mx,72%) var(--my,38%),#000,transparent 72%);mask-image:radial-gradient(260px circle at var(--mx,72%) var(--my,38%),#000,transparent 72%)}
.hero-spot{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(700px circle at var(--mx,72%) var(--my,38%),rgba(139,92,246,.16),transparent 60%)}
.orb{position:absolute;z-index:-2;border-radius:50%;filter:blur(90px);pointer-events:none}
.orb-1{width:min(620px,130vw);aspect-ratio:1;background:#8b5cf6;opacity:.42;top:-22%;left:-12%}
.orb-2{width:min(480px,110vw);aspect-ratio:1;background:#2aaefa;opacity:.24;top:18%;right:-14%}
.orb-3{width:min(520px,120vw);aspect-ratio:1;background:#6d28d9;opacity:.3;bottom:-30%;left:28%}
.hero-fade{display:none}
.hero{-webkit-mask-image:linear-gradient(#000 calc(100% - 200px),transparent);mask-image:linear-gradient(#000 calc(100% - 200px),transparent)}

.hero-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(36px,5vw,88px);align-items:center}
@media (max-width:1080px){.hero-inner{grid-template-columns:minmax(0,1fr)}.hero{min-height:0;padding-block:128px 88px}}
/* stacked hero: centre the name + intro, then the status card */
@media (max-width:1080px){
  .hero-intro{display:flex;flex-direction:column;align-items:center;text-align:center}
  .hero-intro .name{font-size:clamp(2.4rem,11.5vw,8rem);white-space:nowrap}
  .hero-intro .name .ln{display:inline-block;vertical-align:bottom}
  .hero-intro .name .ln+.ln{margin-left:.08em}
  .hero-intro .ctas,.hero-intro .socials{justify-content:center}
  .hero-intro .ticker{margin-inline:auto}
  .console{width:100%;max-width:780px;margin-inline:auto;font-size:clamp(12.5px,2.1vw,16px)}
}

.eyebrow{display:block;font-family:var(--f-mono);font-size:13px;letter-spacing:.04em;color:var(--accent);margin-bottom:22px}
.live-dot{position:relative;display:inline-block;vertical-align:middle;width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}
.live-dot::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--cyan);opacity:0}

.name{font-family:var(--f-display);font-weight:500;font-size:clamp(3.2rem,9vw,10.5rem);line-height:.92;letter-spacing:-.02em}
.name .ln{display:block;overflow:clip;overflow-clip-margin:.2em;padding-bottom:.16em;margin-bottom:-.1em}
.name .ali{font-style:italic}
.ct-head .grad-text{font-style:italic;padding-right:.08em}
.name .ln.glow{overflow:visible}
.name .ch{display:inline-block;will-change:transform}
.name .ali{display:inline-block;background:var(--grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 34px rgba(139,92,246,.45)) drop-shadow(0 0 80px rgba(139,92,246,.35));padding-right:.06em}

.ticker{margin-top:30px;font-size:clamp(1.15rem,2vw,1.6rem);line-height:1.45;font-weight:300;color:var(--text-2);max-width:34ch;text-wrap:balance}
.tw{position:relative;font-weight:500;color:var(--text-2);transition:color .5s,text-shadow .5s;white-space:nowrap}
.tw::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:2px;border-radius:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.tw.on{color:#fff;text-shadow:0 0 22px rgba(139,92,246,.75)}
.tw.on::after{transform:scaleX(1)}

.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font-family:var(--f-body);font-weight:600;font-size:15.5px;cursor:pointer;border:0;
  transition:transform .35s var(--ease),box-shadow .35s,background .35s,border-color .35s,color .3s}
.btn-p{color:#fff;background:var(--grad-btn);box-shadow:0 14px 40px -12px rgba(139,92,246,.9),inset 0 1px 0 rgba(255,255,255,.22)}
.btn-p:hover{color:#fff;transform:translateY(-2px);box-shadow:0 18px 50px -10px rgba(139,92,246,.9),inset 0 1px 0 rgba(255,255,255,.3)}
.btn-g{color:var(--text);background:rgba(255,255,255,.03);border:1px solid var(--line-2)}
.btn-g:hover{color:#fff;border-color:rgba(139,92,246,.55);background:rgba(139,92,246,.1)}
.socials{display:flex;gap:10px;margin-top:22px}
.icon-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);color:var(--text-2);background:rgba(255,255,255,.02);transition:all .3s}
.icon-btn:hover{color:#fff;border-color:rgba(139,92,246,.55);box-shadow:0 0 20px -4px rgba(139,92,246,.8)}

/* status console */
.console{position:relative;border-radius:22px;background:rgba(10,8,24,.78);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line-2);box-shadow:0 50px 100px -40px rgba(0,0,0,.9),0 0 90px -30px rgba(139,92,246,.55);font-family:var(--f-mono);font-size:clamp(13.5px,1.15vw,18px);line-height:1.55;overflow:hidden}
.console::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:conic-gradient(from var(--beam),transparent 0 62%,#8b5cf6 76%,#2aaefa 88%,transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}
.c-bar{display:flex;align-items:center;gap:.6em;padding:1.05em 1.4em;border-bottom:1px solid var(--line)}
.c-bar i{width:.8em;height:.8em;border-radius:50%;display:block}
.c-bar i:nth-child(1){background:#8b5cf6}.c-bar i:nth-child(2){background:#2aaefa}.c-bar i:nth-child(3){background:#6dd5fa}
.c-bar span{margin-left:auto;color:var(--muted);font-size:.88em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c-body{padding:1.7em 1.75em 1.85em;display:grid;gap:1.1em}
.c-line{display:grid;grid-template-columns:5.6em minmax(0,1fr);gap:10px}
.c-k{color:var(--accent)}
.c-v{color:var(--text);overflow-wrap:anywhere}
.c-v small{display:block;color:var(--text-2);font-size:.88em}
.c-cmd{color:var(--text-2)}.c-cmd b{color:var(--cyan);font-weight:500}
.c-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.c-chips span{padding:.3em .75em;border-radius:999px;border:1px solid rgba(139,92,246,.32);background:rgba(139,92,246,.1);color:var(--text);font-size:.88em}
.caret{display:inline-block;width:.6em;height:1.1em;vertical-align:-2px;background:var(--accent);margin-left:4px}
@media (max-width:420px){.c-line{grid-template-columns:minmax(0,1fr);gap:2px}.console{font-size:12.5px}.c-body{padding:1.4em}}

.scroll-cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;color:var(--muted)}
.scroll-cue i{width:1px;height:44px;background:linear-gradient(var(--accent),transparent);display:block}
@media (max-width:1080px){.scroll-cue{display:none}}

/* =========================================================
   STATS BAND
   ========================================================= */
.stats{border-block:1px solid var(--line);background:linear-gradient(180deg,rgba(139,92,246,.05),transparent 70%)}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{position:relative;padding:clamp(28px,4vw,52px) clamp(16px,2.4vw,36px);border-left:1px solid var(--line)}
.stat:first-child{border-left:0}
.stat-k{font-family:var(--f-mono);font-size:12px;color:var(--muted);letter-spacing:.06em}
.stat-n{margin-top:10px;font-family:var(--f-head);font-weight:800;font-size:clamp(2.4rem,4.6vw,4.6rem);line-height:1;letter-spacing:-.045em;font-variant-numeric:tabular-nums;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}
.stat-l{margin-top:14px;color:var(--text-2);font-size:15.5px;line-height:1.45;max-width:24ch}
.stat-l b{color:var(--text);font-weight:500}
@media (max-width:1023px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:440px){.stats-grid{grid-template-columns:minmax(0,1fr)}.stat{border-left:0!important}.stat+.stat{border-top:1px solid var(--line)}}

/* =========================================================
   SECTIONS — shared
   ========================================================= */
section.block{position:relative;padding-block:clamp(56px,7vw,110px)}
.sh{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px;margin-bottom:clamp(28px,4vw,56px)}
.sh-idx{font-family:var(--f-mono);font-size:13px;color:var(--accent);letter-spacing:.06em;margin-bottom:14px}
.sh h2{font-family:var(--f-display);font-style:italic;padding-right:.08em;font-weight:500;font-size:clamp(2.7rem,7.5vw,7rem);line-height:.92;letter-spacing:-.02em}
.sh-note{color:var(--text-2);max-width:36ch;font-size:16px}

/* scroll reveals — progressive enhancement, content is visible without support */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .rv{animation:rv linear both;animation-timeline:view();animation-range:entry 0% entry 100%}
    @keyframes rv{0%{opacity:0;transform:translateY(56px);filter:blur(8px)}45%,100%{opacity:1;transform:none;filter:none}}
  }
}

/* =========================================================
   ABOUT
   ========================================================= */
.statement{font-family:var(--f-head);font-weight:600;font-size:clamp(1.75rem,4.1vw,4rem);line-height:1.1;letter-spacing:-.035em;max-width:24ch;text-wrap:balance}
.statement .dim{color:var(--muted)}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,6vw,96px);margin-top:clamp(32px,4vw,56px);align-items:start}
@media (max-width:980px){.about-grid{grid-template-columns:minmax(0,1fr)}}
.about-copy{color:var(--text-2);font-size:clamp(16.5px,1.25vw,18.5px);line-height:1.75}
.about-copy strong{color:var(--text);font-weight:500}

.spec{border:1px solid var(--line-2);border-radius:24px;overflow:hidden;background:rgba(255,255,255,.015)}
.spec-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 24px;font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;color:var(--text-2);background:rgba(255,255,255,.02)}
.spec-head b{color:var(--accent);font-weight:500}
.sh-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(16px,2.5vw,36px)}
.about-logo{display:block;height:clamp(52px,6.2vw,104px);width:auto;padding-left:clamp(16px,2.5vw,36px);border-left:1px solid var(--line-2);margin-left:clamp(8px,2vw,32px);transform:translateY(clamp(6px,1vw,16px))}
.about-lead{display:flex;align-items:center;justify-content:space-between;gap:clamp(20px,4vw,64px)}
.about-lead .statement{flex:1 1 auto;min-width:0}
.about-logo-lg{display:none;height:clamp(72px,9.5vw,168px);width:auto;flex:none;margin-right:clamp(0px,4vw,72px)}
@media (min-width:600px){.about-logo{display:none}.about-logo-lg{display:block}}
.spec-row{position:relative;display:grid;grid-template-columns:9.5em minmax(0,1fr) auto;gap:16px;align-items:center;padding:22px 24px;border-top:1px solid var(--line);transition:background .35s}
.spec-row::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(139,92,246,.14),transparent 70%);opacity:0;transition:opacity .35s}
.spec-row:hover::after{opacity:1}
.spec-type{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;color:var(--text-2);text-transform:uppercase}
.spec-title{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.15;letter-spacing:-.005em;color:var(--text);transition:transform .45s var(--ease),color .3s}
.spec-row:hover .spec-title{transform:translateX(6px);background:linear-gradient(100deg,#f0ecff 0%,#c4b5fd 55%,#7dd3fc 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.spec-school{font-family:var(--f-mono);font-size:12px;color:var(--accent);white-space:nowrap}
@media (max-width:600px){.spec-row{grid-template-columns:minmax(0,1fr);gap:4px;padding:18px 20px}.spec-head{padding:14px 20px}}

/* =========================================================
   EXPERIENCE — list drives a detail panel
   ========================================================= */
.xp-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;margin-bottom:clamp(20px,3vw,36px)}
.xp-list{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;min-width:0;max-width:calc(100% + 32px);padding:16px;margin:-16px}
.xp-list::-webkit-scrollbar{display:none}
.xp-tab{all:unset;box-sizing:border-box;cursor:pointer;flex:0 0 auto;display:flex;align-items:center;gap:10px;min-height:46px;padding:0 18px;border-radius:999px;border:1px solid var(--line-2);background:rgba(255,255,255,.02);transition:background .35s,border-color .35s,box-shadow .35s}
.xp-tab:hover{background:rgba(255,255,255,.05)}
.xp-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.xp-tab[aria-selected="true"]{background:linear-gradient(135deg,rgba(139,92,246,.3),rgba(42,174,250,.14));border-color:rgba(139,92,246,.5);box-shadow:0 0 18px -6px rgba(139,92,246,.75)}
.xp-tab:focus:not(:focus-visible){outline:none}
.xp-num{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.xp-tab[aria-selected="true"] .xp-num{color:var(--accent)}
.xp-co{font-family:var(--f-head);font-weight:700;font-size:15px;letter-spacing:-.01em;white-space:nowrap}
.xp-co .short{display:none}
.orbit-wrap{position:relative}
.xp-arrows{position:absolute;inset:0 0 auto;height:calc(100% - 40px);z-index:200;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.xp-arrows .arrow-btn{pointer-events:auto;background:rgba(14,11,30,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.arrow-btn{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-2);background:rgba(255,255,255,.03);color:var(--text);cursor:pointer;transition:border-color .3s,background .3s,box-shadow .3s}
.arrow-btn:hover{border-color:rgba(42,174,250,.6);background:rgba(42,174,250,.1);box-shadow:0 0 24px -6px rgba(42,174,250,.8)}
@media (max-width:640px){.xp-co .full{display:none}.xp-co .short{display:inline}}
/* when the front card spans the width, arrows move to the bottom corners, level with the dots */
@media (max-width:1040px){.xp-arrows{inset:auto 0 -34px;height:auto;align-items:flex-end}.xp-dots{margin-top:calc(-1*clamp(56px,6vw,84px) + 22px)}}

/* the revolving stage: cards orbit a vertical axis; JS sets each card's transform */
.orbit{position:relative;margin:calc(-1*clamp(48px,6vw,90px)) calc(-1*var(--gutter)) 0;padding:clamp(48px,6vw,90px) var(--gutter) clamp(72px,8vw,110px);overflow:hidden;perspective:2200px;perspective-origin:50% 35%;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent),linear-gradient(transparent,#000 clamp(40px,5vw,80px),#000 calc(100% - clamp(48px,6vw,90px)),transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent),linear-gradient(transparent,#000 clamp(40px,5vw,80px),#000 calc(100% - clamp(48px,6vw,90px)),transparent);mask-composite:intersect}
.orbit.dragging{cursor:grabbing}
.orbit-ring{display:grid;align-items:start}
.orbit-ring>*{align-self:start}
.orbit-floor{position:absolute;left:50%;bottom:0;width:min(1100px,120%);height:140px;transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(ellipse at 50% 0%,rgba(139,92,246,.35),rgba(42,174,250,.12) 40%,transparent 70%);filter:blur(10px)}
.xp-dots{display:flex;justify-content:center;gap:8px;margin-top:calc(-1*clamp(56px,6vw,84px));position:relative}
.xp-dots i{display:block;width:28px;height:3px;border-radius:3px;background:var(--line-2);overflow:hidden;position:relative}
.xp-dots i.on::after{content:'';position:absolute;inset:0;background:var(--grad);transform-origin:left;animation:dot-fill var(--dur,5.5s) linear both}
.orbit.paused~.xp-dots i.on::after{animation-play-state:paused}
@keyframes dot-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

.xp-panel{grid-area:1/1;justify-self:center;width:min(820px,100%);position:relative;border-radius:28px;border:1px solid var(--line-2);background:rgba(13,10,30,.94);padding:clamp(22px,3.4vw,44px);overflow:hidden;isolation:isolate;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform,opacity;box-shadow:0 50px 100px -40px rgba(0,0,0,.95),0 0 0 1px rgba(139,92,246,.06)}
.xp-panel::before{content:'';position:absolute;z-index:-1;width:520px;height:520px;top:-260px;right:-180px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.3),transparent 65%)}
.xp-panel::after{content:'';position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(139,92,246,.9),rgba(42,174,250,.9),transparent)}
.xp-panel.front{border-color:rgba(139,92,246,.4);box-shadow:0 50px 100px -40px rgba(0,0,0,.95),0 0 80px -30px rgba(139,92,246,.7)}
.xp-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 40px;align-items:start}
.xp-brand{display:flex;align-items:center;gap:clamp(14px,2vw,22px);margin-bottom:22px;min-width:0}
.xp-logo{display:inline-grid;place-items:center;flex:none;min-width:72px;height:72px;padding:0 18px;border-radius:18px;border:1px solid var(--line-2);background:rgba(255,255,255,.04)}
.xp-company{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:clamp(1.6rem,2.6vw,2.5rem);line-height:1.05;letter-spacing:-.01em;min-width:0;text-wrap:balance}
.xp-logo img{max-width:170px;max-height:40px;filter:brightness(0) invert(1);opacity:.95}
.xp-logo img.wordmark{height:26px;max-height:none;width:auto}
.xp-logo img.telus{height:60px;max-height:none;width:auto}
.xp-logo img.tall{max-height:36px}
.xp-logo svg{width:38px;height:38px}
.xp-role{font-family:var(--f-head);font-weight:700;font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.1;letter-spacing:-.03em;text-wrap:balance}
.xp-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-family:var(--f-mono);font-size:12.5px;color:var(--text-2)}
.xp-meta b{color:var(--accent);font-weight:500}
.xp-metric{min-width:200px;max-width:260px;padding:18px 20px;border-radius:18px;border:1px solid rgba(139,92,246,.25);background:rgba(139,92,246,.08)}
.xp-metric-n{font-family:var(--f-head);font-weight:800;font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.05;letter-spacing:-.04em;text-wrap:balance;padding-bottom:.14em;margin-bottom:-.1em}
.xp-metric-l{margin-top:8px;font-size:14px;line-height:1.4;color:var(--text-2)}
.xp-bullets{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:14px}
.xp-bullets li{position:relative;padding-left:26px;color:var(--text-2);font-size:16.5px;line-height:1.6}
.xp-bullets li::before{content:'';position:absolute;left:2px;top:.62em;width:8px;height:8px;transform:rotate(45deg);border-radius:2px;background:var(--grad)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.tag{display:inline-flex;align-items:center;padding:6px 13px;border-radius:999px;font-family:var(--f-mono);font-size:12px;color:var(--text);border:1px solid var(--line-2);background:rgba(255,255,255,.03)}
@media (max-width:640px){.xp-top{grid-template-columns:minmax(0,1fr)}.xp-metric{max-width:none}.xp-bullets li{font-size:15.5px}}

/* =========================================================
   FLIP CARDS — equal-size ring cards: summary on the front, full detail on the back
   ========================================================= */
.xp-panel.flipcard,.bx.flipcard,.bx.fixed{height:var(--card-h);padding:0;border:0;background:none;box-shadow:none;overflow:visible;isolation:auto;perspective:1800px}
.xp-panel.flipcard::before,.xp-panel.flipcard::after,.bx.flipcard::before,.bx.flipcard::after,.bx.fixed::before,.bx.fixed::after{display:none}
.xp:not(.sk){--card-h:500px}
.sk{--card-h:460px}
@media (max-width:640px){.xp:not(.sk){--card-h:640px}.sk{--card-h:560px}}
@media (max-width:360px){.xp:not(.sk){--card-h:700px}}
.flip{position:relative;width:100%;flex:1 1 auto;height:100%;transform-style:preserve-3d;transition:transform .8s var(--ease)}
.flipcard.flipped .flip{transform:rotateY(180deg)}
.face{position:absolute;inset:0;display:flex;flex-direction:column;border-radius:28px;border:1px solid var(--line-2);background:rgba(13,10,30,.96);padding:clamp(22px,3.4vw,44px);overflow:hidden;isolation:isolate;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 50px 100px -40px rgba(0,0,0,.95),0 0 0 1px rgba(139,92,246,.06);transition:border-color .4s,box-shadow .4s}
.face::before{content:'';position:absolute;z-index:-1;width:520px;height:520px;top:-260px;right:-180px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.3),transparent 65%)}
.face::after{content:'';position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(139,92,246,.9),rgba(42,174,250,.9),transparent)}
.face-back{transform:rotateY(180deg)}
.flipcard.front .face,.fixed.front .face{border-color:rgba(139,92,246,.4);box-shadow:0 50px 100px -40px rgba(0,0,0,.95),0 0 80px -30px rgba(139,92,246,.7)}
.flipcard.front .face-front{cursor:pointer}
.face-foot{margin-top:auto;padding-top:20px;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}
.face-foot .tags{margin-top:0}
.flip-btn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:999px;font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text);
  border:1px solid var(--line-2);background:rgba(255,255,255,.02);transition:background .3s,border-color .3s,box-shadow .3s;white-space:nowrap}
.flip-btn:hover{color:#fff;background:rgba(139,92,246,.14);border-color:rgba(139,92,246,.55);box-shadow:0 0 24px -6px rgba(139,92,246,.75)}
.flip-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.back-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.back-title{font-family:var(--f-display);font-style:italic;font-weight:500;font-size:clamp(1.5rem,2.4vw,2.2rem);line-height:1.1}
.back-sub{font-family:var(--f-head);font-weight:700;font-size:clamp(.95rem,1.3vw,1.15rem);color:var(--text-2);letter-spacing:-.01em}
.face-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin-top:18px;padding:2px 10px 24px 0;scrollbar-width:thin;scrollbar-color:rgba(139,92,246,.55) transparent;
  -webkit-mask-image:linear-gradient(#000 calc(100% - 32px),transparent);mask-image:linear-gradient(#000 calc(100% - 32px),transparent)}
.face-scroll::-webkit-scrollbar{width:6px}
.face-scroll::-webkit-scrollbar-thumb{background:rgba(139,92,246,.55);border-radius:6px}
.face-scroll .xp-bullets,.face-scroll .chips{margin-top:0}
@media (prefers-reduced-motion:reduce){.flip{transition:none}}

/* fronts: the title block sits in the optical centre; brand on top, proof + action at the bottom */
.face-index{position:absolute;right:clamp(16px,2.6vw,36px);top:clamp(6px,1vw,14px);z-index:-1;pointer-events:none;font-family:var(--f-display);font-style:italic;font-weight:500;
  font-size:clamp(5rem,9vw,8rem);line-height:1;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(139,92,246,.22);background:linear-gradient(160deg,rgba(139,92,246,.14),rgba(42,174,250,.04));-webkit-background-clip:text;background-clip:text}
.bx .face-single h3{margin-top:clamp(14px,2vw,22px);font-size:clamp(2rem,3.6vw,3rem);letter-spacing:-.04em}
.bx .face-single .face-scroll{margin-top:clamp(14px,2vw,20px)}
.pc .face-front h3{margin-top:auto}
.pc .face-front .pc-desc{margin-bottom:auto;max-width:52ch}
.face-front .flip-btn{position:relative}
@media (prefers-reduced-motion:no-preference){
  .flipcard.front .face-front .flip-btn,.pc .face-front .flip-btn{animation:invite 3.2s var(--ease) infinite}
  @keyframes invite{0%,70%,100%{box-shadow:0 0 0 0 rgba(139,92,246,0)}35%{box-shadow:0 0 0 5px rgba(139,92,246,.1),0 0 24px -6px rgba(139,92,246,.6)}}
}


/* =========================================================
   PROJECTS — tilt + spotlight
   ========================================================= */
.projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(480px,100%),1fr));gap:clamp(20px,3vw,32px);align-items:stretch}
.projects>.rv{display:flex}
.pc{position:relative;display:flex;flex:1;min-width:0;border-radius:32px;border:1px solid var(--line-2);background:var(--panel);overflow:hidden;isolation:isolate;
  transform:perspective(1400px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s var(--ease),border-color .4s,box-shadow .4s}
.pc.tracking{transition:transform .12s linear,border-color .4s,box-shadow .4s}
.pc:hover{border-color:rgba(139,92,246,.35);box-shadow:0 40px 100px -40px rgba(139,92,246,.6)}
.pc::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;background:radial-gradient(520px circle at var(--px,50%) var(--py,50%),rgba(139,92,246,.13),transparent 45%);opacity:0;transition:opacity .4s}
.pc:hover::after{opacity:1}
.pc::before{content:'';position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(139,92,246,.9),rgba(42,174,250,.9),transparent);opacity:.7}
.pc-body{position:relative;z-index:3;flex:1;min-width:0;padding:clamp(24px,3.6vw,48px);display:flex;flex-direction:column;gap:20px}
.pc-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-family:var(--f-mono);font-size:12px;border:1px solid var(--line-2);color:var(--text)}
.badge.live{border-color:rgba(109,213,250,.45);background:rgba(109,213,250,.08)}
.badge.live .live-dot{width:7px;height:7px}
.badge.acad{border-color:rgba(139,92,246,.4);background:rgba(139,92,246,.1)}
.pc-num{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.pc h3{font-family:var(--f-head);font-weight:800;font-size:clamp(2rem,3.6vw,3.4rem);line-height:1;letter-spacing:-.045em}
.pc-desc{color:var(--text-2);font-size:16.5px;line-height:1.65}
.hl-label{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;color:var(--accent)}
.hl{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.hl li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;font-size:15.5px;line-height:1.5;color:var(--text)}
.hl svg{margin-top:3px;color:var(--cyan)}
.pc .tags{margin-top:0}
.pc-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:8px}

/* experience fronts — brand / when + role + inline proof / quiet tags + action */
.xf-head{display:flex;align-items:center;min-width:0}
.xf-head .xp-brand{margin-bottom:0;gap:16px}
.xp-panel .xp-logo{min-width:56px;height:56px;padding:0 14px;border-radius:16px}
.xp-panel .xp-logo img.wordmark{height:19px}
.xp-panel .xp-logo img.telus{height:46px}
.xp-panel .xp-logo img.tall{max-height:28px}
.xp-panel .xp-logo svg{width:30px;height:30px}
.xf-head .xp-company{font-size:clamp(1.35rem,2.2vw,1.9rem)}
.xf-main{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:12px;padding-block:clamp(18px,3vw,28px)}
.xf-when{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.05em;color:var(--accent)}
.xf-role{font-family:var(--f-head);font-weight:700;font-size:clamp(1.85rem,3.4vw,3rem);line-height:1.04;letter-spacing:-.04em;max-width:17ch;text-wrap:balance}
.xf-metric{display:flex;align-items:center;gap:20px;margin-top:10px;padding-top:18px;border-top:1px solid var(--line)}
.xf-n{flex:none;font-family:var(--f-head);font-weight:800;font-size:clamp(1.5rem,2.5vw,2.15rem);line-height:1.1;letter-spacing:-.035em;padding-bottom:.08em}
.xf-l{color:var(--text-2);font-size:15px;line-height:1.45;max-width:38ch;padding-left:20px;border-left:1px solid var(--line-2)}
.xf-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;padding-top:18px;border-top:1px solid var(--line)}
.xf-tags{display:flex;flex-wrap:wrap;align-items:center;row-gap:6px;min-width:0;margin-left:-1.9em;clip-path:inset(-4px -4px -4px 1.9em);font-family:var(--f-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}
.xf-tags span{position:relative;margin-left:1.9em;white-space:nowrap}
.xf-tags span::before{content:'';position:absolute;left:-1.05em;top:50%;width:3px;height:3px;margin-top:-1.5px;border-radius:50%;background:var(--muted)}
@media (max-width:640px){
  .xp-panel .face-index{display:none}
  .xf-metric{flex-direction:column;align-items:flex-start;gap:6px}
  .xf-l{padding-left:0;border-left:0}
}

/* project flip cards: same faces as the rings, plus the hover tilt on the container */
.pc.flipcard{--card-h:540px;height:var(--card-h);border:0;background:none;overflow:visible;isolation:auto;perspective:1800px}
.pc.flipcard::before{display:none}
.pc.flipcard:hover{box-shadow:none}
.pc.flipcard:hover .face{border-color:rgba(139,92,246,.4);box-shadow:0 40px 100px -40px rgba(139,92,246,.6)}
.pc .face{gap:18px}
.pc .face-front{cursor:pointer}
.pc .face-scroll{margin-top:0}
.pc .face-scroll .tags{margin-top:22px}
.pc .face-foot .btn{min-height:44px;padding:0 20px;font-size:14px}
@media (max-width:640px){.pc.flipcard{--card-h:580px}}

/* =========================================================
   SKILLS — same revolving ring as experience
   ========================================================= */
.bx{grid-area:1/1;justify-self:center;width:min(820px,100%);position:relative;border-radius:28px;border:1px solid var(--line-2);background:rgba(13,10,30,.94);padding:clamp(22px,3.4vw,44px);overflow:hidden;isolation:isolate;transition:border-color .4s;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform,opacity;box-shadow:0 50px 100px -40px rgba(0,0,0,.95),0 0 0 1px rgba(139,92,246,.06)}
.bx::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(420px circle at var(--px,50%) var(--py,0%),rgba(139,92,246,.2),transparent 50%);opacity:0;transition:opacity .4s}
.bx::after{content:'';position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(139,92,246,.9),rgba(42,174,250,.9),transparent)}
.bx:hover::before{opacity:1}
.bx.front{border-color:rgba(139,92,246,.4);box-shadow:0 50px 100px -40px rgba(0,0,0,.95),0 0 80px -30px rgba(139,92,246,.7)}
.bx-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bx-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;border:1px solid var(--line-2);background:rgba(255,255,255,.03);color:var(--accent)}
.bx-count{font-family:var(--f-mono);font-size:12px;color:var(--text-2)}
.bx h3{margin-top:22px;font-family:var(--f-head);font-weight:700;font-size:clamp(1.4rem,2.2vw,2rem);letter-spacing:-.03em}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.chip{padding:9px 15px;border-radius:999px;font-size:14.5px;color:var(--text-2);border:1px solid var(--line-2);background:rgba(255,255,255,.02);
  transition:color .3s,border-color .3s,background .3s,box-shadow .3s,transform .3s var(--ease);cursor:default}
.chip:hover,.chip.lit{color:#fff;border-color:rgba(139,92,246,.6);background:rgba(139,92,246,.2);box-shadow:0 0 26px -6px rgba(139,92,246,.85)}
.chip:hover{transform:translateY(-2px)}

/* =========================================================
   CONTACT
   ========================================================= */
.contact{position:relative;overflow:hidden;isolation:isolate;-webkit-mask-image:linear-gradient(transparent,#000 48px);mask-image:linear-gradient(transparent,#000 48px)}
.contact .orb-1{top:auto;bottom:-40%;left:-20%;opacity:.3}
.contact .orb-2{top:10%;right:-20%;opacity:.2}
.ct-head{font-family:var(--f-display);font-weight:500;white-space:nowrap;font-size:clamp(2.6rem,14vw,12rem);line-height:.86;letter-spacing:-.025em}
.ct-head .grad-text,.sh h2 .grad-text{filter:drop-shadow(0 0 40px rgba(139,92,246,.35))}
.sh h2 .grad-text{padding-right:.08em}
.ct-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);margin-top:clamp(28px,4vw,52px);align-items:start}
@media (max-width:980px){.ct-grid{grid-template-columns:minmax(0,1fr)}.contact .sh-idx,.ct-head{text-align:center}}
.form{display:grid;gap:18px;padding:clamp(22px,3.2vw,40px);border-radius:28px;border:1px solid var(--line-2);background:var(--panel)}
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:560px){.form-row{grid-template-columns:minmax(0,1fr)}}
.field{display:grid;gap:8px}
.field label{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;color:var(--text-2)}
.field input,.field textarea{width:100%;min-height:52px;padding:14px 16px;border-radius:14px;border:1px solid var(--line-2);background:rgba(255,255,255,.03);color:var(--text);font:inherit;font-size:16px;transition:border-color .3s,box-shadow .3s,background .3s}
.field textarea{min-height:160px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--muted)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:rgba(139,92,246,.06);box-shadow:0 0 0 4px rgba(139,92,246,.18)}
.form .btn{justify-self:start}
.links{display:grid;gap:12px}
.link-row{display:flex;align-items:center;gap:18px;padding:22px 24px;border-radius:24px;border:1px solid var(--line-2);background:rgba(255,255,255,.02);color:var(--text);transition:border-color .35s,background .35s,transform .35s var(--ease)}
.link-row:hover{color:#fff;border-color:rgba(139,92,246,.45);background:rgba(139,92,246,.1);transform:translateX(4px)}
.link-row .bx-icon{flex:none}
.link-row strong{display:block;font-family:var(--f-head);font-size:19px;letter-spacing:-.02em}
.link-row small{display:block;font-family:var(--f-mono);font-size:12px;color:var(--text-2);overflow-wrap:anywhere}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);opacity:0;z-index:70;padding:12px 20px;border-radius:999px;font-family:var(--f-mono);font-size:13px;background:rgba(14,11,30,.95);border:1px solid rgba(139,92,246,.4);transition:all .4s var(--ease);max-width:calc(100% - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* =========================================================
   FOOTER
   ========================================================= */
footer{border-top:1px solid var(--line);padding-block:32px calc(32px + env(safe-area-inset-bottom,0px))}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;font-size:14px;color:var(--text-2)}
.foot strong{color:var(--text);font-weight:500}
.foot a{font-family:var(--f-mono);font-size:12px;color:var(--text-2);min-height:44px;display:inline-flex;align-items:center}
.foot a:hover{color:#fff}


/* =========================================================
   MOTION — only when the visitor allows it
   ========================================================= */
@media (prefers-reduced-motion:no-preference){
  .name .ch{animation:rise 1.1s var(--ease) both;animation-delay:calc(var(--i) * 55ms + 150ms)}
  .name .ali{animation:rise 1.2s var(--ease) both .75s,sheen 7s ease-in-out infinite 2s}
  @keyframes rise{from{transform:translateY(105%) rotate(6deg);opacity:0}to{transform:none;opacity:1}}
  @keyframes sheen{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
  .hero .eyebrow,.ticker,.ctas,.socials{animation:fade-up 1s var(--ease) both}
  .hero .eyebrow{animation-delay:.05s}.ticker{animation-delay:1.05s}.ctas{animation-delay:1.2s}.socials{animation-delay:1.3s}
  .console{animation:console-in 1.2s var(--ease) both .9s}
  .console::before{animation:beam 6s linear infinite}
  .c-line{animation:fade-up .6s var(--ease) both;animation-delay:calc(var(--i) * 160ms + 1.5s)}
  .caret{animation:blink 1s steps(1) infinite}
  .live-dot::after{animation:ping 2s var(--ease) infinite}
  .orb-1{animation:drift-a 22s ease-in-out infinite alternate}
  .orb-2{animation:drift-b 26s ease-in-out infinite alternate}
  .orb-3{animation:drift-a 30s ease-in-out infinite alternate-reverse}
  .scroll-cue i{animation:cue 2.2s var(--ease) infinite}
  @keyframes fade-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  @keyframes console-in{from{opacity:0;transform:translateY(30px) rotateX(10deg) scale(.96)}to{opacity:1;transform:none}}
  @keyframes beam{to{--beam:360deg}}
  @keyframes blink{50%{opacity:0}}
  @keyframes ping{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.2);opacity:0}}
  @keyframes drift-a{0%{transform:translate(0,0) scale(1)}50%{transform:translate(8vw,6vh) scale(1.12)}100%{transform:translate(-4vw,12vh) scale(.94)}}
  @keyframes drift-b{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-10vw,8vh) scale(1.15)}}
  @keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.xp-dots i.on{background:var(--accent)}.xp-dots i.on::after{animation:none}*{transition-duration:.01ms!important}}
