:root{
    --bg:#f5f8fc;
    --panel:rgba(255,255,255,.72);
    --text:#0f2340;
    --muted:#66758a;
    --line:rgba(26,64,111,.12);
    --blue:#245da6;
    --blue2:#74a9e7;
    --orange:#f0a15f;
    --shadow:0 24px 70px rgba(31,70,112,.12);
    --r:28px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}
  a{color:inherit;text-decoration:none}
  button{font:inherit}
  .page{position:relative;isolation:isolate}
  .noise{position:fixed;inset:0;pointer-events:none;opacity:.18;z-index:100;background-image:url("../assets/images/noise.webp");background-repeat:repeat;background-size:96px 96px}
  .orb{position:absolute;border-radius:999px;filter:blur(10px);opacity:.55;z-index:-2;transition:transform .15s linear}
  .orb.one{width:420px;height:420px;background:radial-gradient(circle at 40% 35%,#bcdcff 0,#dbeaff 34%,transparent 72%);top:70px;right:-120px}
  .orb.two{width:320px;height:320px;background:radial-gradient(circle at 50% 50%,#ffd9b4 0,#ffe8d6 35%,transparent 72%);top:500px;left:-150px}
  .orb.three{width:520px;height:520px;background:radial-gradient(circle at 50% 50%,#c9dff8 0,#e9f3ff 42%,transparent 72%);top:1450px;right:-210px}
  .wrap{width:min(1180px,calc(100% - 40px));margin:0 auto}
  .nav-shell{position:fixed;left:50%;top:18px;transform:translateX(-50%);width:min(1180px,calc(100% - 30px));z-index:30}
  nav{display:flex;align-items:center;justify-content:space-between;padding:13px 16px 13px 20px;border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.68);backdrop-filter:blur(20px);box-shadow:0 16px 45px rgba(39,72,110,.1);border-radius:18px}
  .brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.03em}
  .brand-mark{width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,var(--blue),#8fc0f1);position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
  .brand-mark:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;right:5px;top:5px}
  .navlinks{display:flex;gap:24px;font-size:14px;color:#4d6077}
  .navlinks a{transition:.2s}
  .navlinks a:hover{color:var(--blue)}
  .nav-cta{padding:10px 15px;border-radius:12px;background:var(--text);color:#fff;font-size:13px;font-weight:700}

  .hero{min-height:760px;padding:155px 0 90px;display:grid;align-items:center}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
  h1{font-size:clamp(54px,7vw,92px);line-height:.92;letter-spacing:-.067em;margin:24px 0 24px;max-width:800px}
  .accent{color:var(--blue);position:relative;display:inline-block}
  .accent:after{content:"";position:absolute;left:3px;right:3px;bottom:4px;height:12px;background:#c9def7;border-radius:99px;z-index:-1;transform:rotate(-1.5deg)}
  .lead{font-size:19px;line-height:1.65;color:var(--muted);max-width:610px}
  .hero-actions{display:flex;gap:12px;margin-top:34px;align-items:center;flex-wrap:wrap}
  .btn{display:inline-flex;align-items:center;gap:10px;padding:15px 20px;border-radius:14px;border:1px solid transparent;font-size:14px;font-weight:800;transition:.25s;cursor:pointer}
  .btn.primary{background:var(--blue);color:white;box-shadow:0 14px 30px rgba(36,93,166,.22)}
  .btn.primary:hover{transform:translateY(-3px);box-shadow:0 20px 36px rgba(36,93,166,.28)}
  .btn.secondary{background:rgba(255,255,255,.72);border-color:var(--line);color:var(--text)}
  .btn.secondary:hover{background:#fff;transform:translateY(-2px)}
  .micro{margin-top:22px;display:flex;gap:18px;color:#7a8999;font-size:12px;flex-wrap:wrap}
  .micro span{display:flex;gap:7px;align-items:center}
  .micro b{width:5px;height:5px;background:#9bb3cc;border-radius:50%}

  .visual{position:relative;height:560px}
  .scene{position:absolute;inset:20px 0 0 0;border-radius:38px;background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(232,240,249,.72));border:1px solid rgba(255,255,255,.82);box-shadow:var(--shadow);overflow:hidden;backdrop-filter:blur(12px)}
  .scene:before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 65% 35%,rgba(116,169,231,.34),transparent 28%),radial-gradient(circle at 35% 68%,rgba(240,161,95,.18),transparent 22%);animation:floatbg 8s ease-in-out infinite alternate}
  @keyframes floatbg{to{transform:translate3d(-25px,18px,0) scale(1.05)}}
  .core{position:absolute;width:126px;height:126px;border-radius:38px;background:linear-gradient(145deg,#1e4f89,#3e78bb);left:189px;top:210px;box-shadow:0 30px 50px rgba(32,77,129,.26);display:grid;place-items:center;transform:rotate(10deg)}
  .core svg{width:62px;transform:rotate(-10deg)}
  @keyframes chipFloat{to{transform:translateY(-10px)}}
  @keyframes bars{to{filter:brightness(1.2);transform:scaleY(.72)}}

  section{padding:105px 0}
  .section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:34px}
  .kicker{font-size:16px;text-transform:uppercase;letter-spacing:.10em;font-weight:800;color:var(--blue)}
  h2{font-size:clamp(38px,5vw,64px);letter-spacing:-.055em;line-height:1;margin:10px 0 0;max-width:760px}
  .section-copy{max-width:430px;color:var(--muted);line-height:1.65}

  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .card{position:relative;min-height:360px;padding:28px;border-radius:var(--r);border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.7);box-shadow:0 18px 46px rgba(43,77,116,.08);overflow:hidden;transition:.35s;transform-style:preserve-3d}
  .card:hover{transform:translateY(-8px);box-shadow:0 28px 62px rgba(43,77,116,.14)}
  .card .num{font-size:12px;font-weight:800;color:#88a0ba}
  .card h3{font-size:28px;letter-spacing:-.04em;margin:74px 0 12px}
  .card p{margin:0;color:var(--muted);line-height:1.6;max-width:280px}
  .card .shape{position:absolute;width:150px;height:150px;border-radius:44px;right:-35px;bottom:-38px;transform:rotate(22deg);background:linear-gradient(145deg,#dbeaff,#9cc4ee);transition:.4s}
  .card:nth-child(2) .shape{border-radius:50%;background:linear-gradient(145deg,#ffe7d0,#f1b77f)}
  .card:nth-child(3) .shape{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0;background:linear-gradient(145deg,#d8e3f1,#9cb2cd)}
  .card:hover .shape{transform:rotate(32deg) scale(1.08)}

  /* LARGE FLOATING TYPE / MARQUEE */
  .ticker-section{padding:48px 0 70px;overflow:hidden;position:relative}
  .ticker-section:before,.ticker-section:after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--line)}
  .ticker-section:before{top:18px}.ticker-section:after{bottom:38px}
  .ticker-meta{width:min(1180px,calc(100% - 40px));margin:0 auto 24px;display:flex;justify-content:space-between;gap:20px;color:#6f8196;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
  .ticker-viewport{overflow:hidden;width:100%;padding:3px 0}
  .ticker-track{display:flex;width:max-content;will-change:transform;transform:translate3d(0,0,0)}
  .ticker-group{display:flex;align-items:center;flex:none;white-space:nowrap}
  .ticker-word{font-size:clamp(92px,14vw,210px);font-weight:900;line-height:.78;letter-spacing:-.075em;text-transform:uppercase;padding-right:.23em;color:var(--text)}
  .ticker-word.outline{color:transparent;-webkit-text-stroke:1.5px rgba(15,35,64,.72);text-stroke:1.5px rgba(15,35,64,.72)}
  .ticker-dot{width:clamp(28px,4vw,62px);height:clamp(28px,4vw,62px);margin:0 clamp(28px,4vw,64px) 0 clamp(10px,2vw,30px);border-radius:50%;background:var(--orange);flex:none}
  .ticker-row + .ticker-row{margin-top:28px}
  .ticker-row.second .ticker-word{color:var(--blue)}
  .ticker-row.second .ticker-word.outline{color:transparent;-webkit-text-stroke:1.5px rgba(36,93,166,.68)}
  .ticker-note{width:min(1180px,calc(100% - 40px));margin:28px auto 0;display:flex;justify-content:flex-end}
  .ticker-note p{max-width:430px;margin:0;color:var(--muted);font-size:14px;line-height:1.6}

  .story-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:26px;align-items:start}
  .sticky{position:sticky;top:120px;padding-right:25px}
  .sticky p{color:var(--muted);line-height:1.7;font-size:17px}
  .story{border-radius:36px;background:#102d50;color:white;padding:18px;box-shadow:0 30px 70px rgba(16,45,80,.2)}
  .step{min-height:440px;border-radius:24px;padding:36px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.1);margin-bottom:14px;background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.015))}
  .step:last-child{margin-bottom:0}
  .step-label{font-size:15px;letter-spacing:.10em;text-transform:uppercase;color:#9db8d3;font-weight:800}
  .step h3{font-size:44px;line-height:1.02;letter-spacing:-.05em;max-width:540px;margin:0}
  .step p{color:#b7c8da;max-width:580px;font-size:18px;line-height:1.65}
  .lineart{position:absolute;right:-20px;top:20px;width:290px;height:290px;opacity:.48}
  .lineart circle,.lineart path{fill:none;stroke:#89b7e7;stroke-width:1.4;stroke-dasharray:5 8}
  .step.active .lineart{animation:spin 18s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}

  .cta{padding:110px 0 130px}
  .cta-box{position:relative;padding:70px;border-radius:38px;background:linear-gradient(135deg,#1a4a82,#2f6bac 65%,#7caee0);color:#fff;overflow:hidden;box-shadow:0 35px 80px rgba(27,72,123,.26)}
  .cta-box:after{content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(255,255,255,.22);border-radius:50%;right:-80px;top:-80px;box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 110px rgba(255,255,255,.025)}
  .cta-box h2{max-width:720px;margin:0 0 16px}
  .cta-box p{max-width:540px;color:#dce9f6;line-height:1.7}
  .cta-box .btn{margin-top:20px;background:#fff;color:#173b67;position:relative;z-index:2}

  footer{padding:25px 0 55px;color:#7a8a9c;font-size:13px}
  .foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:25px;gap:20px;flex-wrap:wrap}

  .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
  .reveal.show{opacity:1;transform:none}

  @media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

  /* Theme switch */
  .nav-actions{display:flex;align-items:center;gap:8px}
  .theme-toggle{width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.66);color:var(--text);display:grid;place-items:center;cursor:pointer;transition:.25s;backdrop-filter:blur(14px)}
  .theme-toggle:hover{transform:translateY(-2px);background:rgba(255,255,255,.9)}
  .theme-toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .theme-toggle .moon{display:block}.theme-toggle .sun{display:none}

  body[data-theme="dark"]{
    --bg:#07111f;
    --panel:rgba(12,26,44,.72);
    --text:#ecf4ff;
    --muted:#9eafc4;
    --line:rgba(164,195,229,.14);
    --blue:#76aff0;
    --blue2:#4d8ed4;
    --orange:#f2a766;
    --shadow:0 28px 80px rgba(0,0,0,.34);
    color-scheme:dark;
  }
  body,nav,.scene,.card,.eyebrow,.btn,.theme-toggle,.chip,.cta-box,.story{transition:background-color .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease}
  body[data-theme="dark"] nav{border-color:rgba(166,199,233,.12);background:rgba(8,20,35,.72);box-shadow:0 18px 52px rgba(0,0,0,.28)}
  body[data-theme="dark"] .navlinks{color:#a9bad0}
  body[data-theme="dark"] .nav-cta{background:#edf5ff;color:#0a1a2d}
  body[data-theme="dark"] .theme-toggle{background:rgba(19,39,63,.72);border-color:rgba(166,199,233,.13)}
  body[data-theme="dark"] .theme-toggle:hover{background:rgba(29,54,84,.9)}
  body[data-theme="dark"] .theme-toggle .moon{display:none}
  body[data-theme="dark"] .theme-toggle .sun{display:block}
  body[data-theme="dark"] .accent:after{background:rgba(74,132,194,.34)}
  body[data-theme="dark"] .btn.secondary{background:rgba(17,35,57,.72);border-color:var(--line)}
  body[data-theme="dark"] .btn.secondary:hover{background:#142b47}
  body[data-theme="dark"] .micro{color:#8799ae}
  body[data-theme="dark"] .micro b{background:#65809f}
  body[data-theme="dark"] .scene{background:linear-gradient(145deg,rgba(15,34,56,.9),rgba(8,21,37,.82));border-color:rgba(153,190,229,.1)}
  body[data-theme="dark"] .scene:before{background:radial-gradient(circle at 65% 35%,rgba(68,132,203,.24),transparent 28%),radial-gradient(circle at 35% 68%,rgba(240,161,95,.11),transparent 22%)}
  body[data-theme="dark"] .card{background:rgba(13,30,50,.74);border-color:rgba(164,195,229,.1);box-shadow:0 18px 46px rgba(0,0,0,.22)}
  body[data-theme="dark"] .card:hover{box-shadow:0 28px 64px rgba(0,0,0,.34)}
  body[data-theme="dark"] .card .num{color:#7890aa}
  body[data-theme="dark"] .card .shape{background:linear-gradient(145deg,#244b77,#376b9d)}
  body[data-theme="dark"] .card:nth-child(2) .shape{background:linear-gradient(145deg,#6f4a2e,#a76b3c)}
  body[data-theme="dark"] .card:nth-child(3) .shape{background:linear-gradient(145deg,#263c56,#49627f)}
  body[data-theme="dark"] .ticker-meta{color:#7f94ac}
  body[data-theme="dark"] .ticker-word.outline{color:transparent;-webkit-text-stroke:1.5px rgba(226,239,253,.62);text-stroke:1.5px rgba(226,239,253,.62)}
  body[data-theme="dark"] .ticker-row.second .ticker-word.outline{color:transparent;-webkit-text-stroke:1.5px rgba(118,175,240,.72)}
  body[data-theme="dark"] .story{background:#0b1a2d;box-shadow:0 30px 80px rgba(0,0,0,.34)}
  body[data-theme="dark"] .step{background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.012));border-color:rgba(255,255,255,.08)}
  body[data-theme="dark"] .cta-box{background:linear-gradient(135deg,#102f52,#1d568c 62%,#437fb8);box-shadow:0 35px 80px rgba(0,0,0,.36)}
  body[data-theme="dark"] .orb.one{background:radial-gradient(circle at 40% 35%,rgba(50,113,180,.4) 0,rgba(22,59,99,.28) 35%,transparent 72%)}
  body[data-theme="dark"] .orb.two{background:radial-gradient(circle at 50% 50%,rgba(173,100,46,.3) 0,rgba(86,48,29,.2) 35%,transparent 72%)}
  body[data-theme="dark"] .orb.three{background:radial-gradient(circle at 50% 50%,rgba(49,94,143,.34) 0,rgba(22,46,73,.22) 42%,transparent 72%)}
  

  /* ===== FULLSCREEN HERO CONCEPT =====
     Inspired only by the idea of using the first viewport as a full-screen scene.
     Visual language remains original to this demo. */
  .wrap{
    width:min(1680px,calc(100% - 72px));
  }
  .nav-shell{
    width:min(1680px,calc(100% - 56px));
  }

  .hero{
    min-height:100svh;
    padding:112px 0 34px;
    display:flex;
    align-items:stretch;
    position:relative;
    overflow:hidden;
  }
  .hero .wrap{
    width:min(1760px,calc(100% - 72px));
  }
  .hero-grid{
    flex:1;
    width:100%;
    min-height:calc(100svh - 146px);
    grid-template-columns:minmax(0,1.02fr) minmax(460px,.98fr);
    gap:clamp(34px,4vw,88px);
    align-items:center;
  }
  .hero h1{
    font-size:clamp(64px,7.25vw,138px);
    max-width:1050px;
    margin-top:28px;
  }
  .hero .lead{
    max-width:720px;
    font-size:clamp(17px,1.2vw,21px);
  }
  .hero .visual{
    height:min(72svh,760px);
    min-height:560px;
  }
  .hero .scene{
    inset:0;
    border-radius:clamp(28px,2.2vw,46px);
  }

  .hero:after{
    content:"";
    position:absolute;
    left:36px;
    right:36px;
    bottom:0;
    height:1px;
    background:linear-gradient(90deg,transparent,var(--line) 14%,var(--line) 86%,transparent);
  }

  .hero-index{
    position:absolute;
    left:36px;
    bottom:24px;
    display:flex;
    align-items:center;
    gap:12px;
    z-index:4;
    color:var(--muted);
    font-size:11px;
    letter-spacing:.16em;
    text-transform:uppercase;
    font-weight:800;
  }
  .hero-index:before{
    content:"";
    width:44px;
    height:1px;
    background:currentColor;
    opacity:.45;
  }

  .scroll-cue{
    position:absolute;
    right:36px;
    bottom:18px;
    z-index:4;
    width:46px;
    height:46px;
    border-radius:50%;
    border:1px solid var(--line);
    display:grid;
    place-items:center;
    color:var(--text);
    background:color-mix(in srgb,var(--bg) 76%,transparent);
    backdrop-filter:blur(14px);
    animation:cueFloat 2.2s ease-in-out infinite;
  }
  .scroll-cue svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  @keyframes cueFloat{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(5px)}
  }

  body[data-theme="dark"] .scroll-cue{
    background:rgba(10,24,41,.58);
  }

  /* First content block starts clearly after the full viewport scene. */
  #story{
    padding-top:clamp(96px,9vw,150px);
  }

  @media(prefers-reduced-motion:reduce){
    .scroll-cue{animation:none}
  }

  /* ===== UNIFIED HERO REWORK =====
     Goal: the hero should feel like one fullscreen scene, not
     "text left + isolated square right". */
  .hero{
    position:relative;
    min-height:100svh;
    padding:112px 0 34px;
    display:flex;
    align-items:center;
    overflow:hidden;
  }
  .hero .wrap{
    position:relative;
    width:min(1760px,calc(100% - 72px));
  }
  .hero-grid{
    position:relative;
    min-height:calc(100svh - 146px);
    display:block;
  }

  .hero-copy{
    position:relative;
    z-index:4;
    max-width:min(55vw,980px);
    padding-top:clamp(24px,4vh,70px);
  }

  .hero-kicker-bg{
    position:absolute;
    left:0;
    top:-18px;
    font-size:clamp(13px,1vw,18px);
    letter-spacing:.42em;
    text-transform:uppercase;
    color:color-mix(in srgb,var(--text) 20%, transparent);
    white-space:nowrap;
    pointer-events:none;
    font-weight:800;
    transform:translateX(2px);
  }

  .hero h1{
    position:relative;
    z-index:3;
    font-size:clamp(72px,9vw,156px);
    line-height:.90;
    letter-spacing:-.078em;
    margin:24px 0 18px;
    max-width:1050px;
  }
  .hero .accent{
    position:relative;
    z-index:1;
  }
  .hero .accent:after{
    left:8px;
    right:8px;
    bottom:10px;
    height:18px;
    background:color-mix(in srgb,var(--blue2) 42%, white 38%);
    transform:rotate(-1.2deg);
  }
  .hero .lead{
    max-width:620px;
    font-size:clamp(17px,1.2vw,21px);
  }
  .hero-wire{
    position:relative;
    margin:20px 0 0;
    width:min(54vw,760px);
    height:24px;
    pointer-events:none;
  }
  .hero-wire span{
    position:absolute;
    left:2px;
    right:0;
    top:50%;
    height:1px;
    background:linear-gradient(90deg,
      color-mix(in srgb,var(--blue) 32%, transparent),
      color-mix(in srgb,var(--blue2) 52%, transparent) 46%,
      transparent 92%);
  }
  .hero-wire:after{
    content:"";
    position:absolute;
    right:22%;
    top:calc(50% - 5px);
    width:11px;
    height:11px;
    border-radius:50%;
    background:linear-gradient(145deg,var(--blue2),var(--blue));
    box-shadow:0 0 0 9px color-mix(in srgb,var(--blue2) 12%, transparent);
  }

  .hero .visual{
    position:absolute;
    inset:0;
    z-index:1;
    height:auto;
    pointer-events:none;
  }
  .hero .scene{
    position:absolute;
    right:max(-160px,-8vw);
    top:50%;
    transform:translateY(-50%);
    width:min(58vw,1050px);
    height:min(84svh,860px);
    inset:auto;
    border:none;
    border-radius:0;
    box-shadow:none;
    background:transparent;
    overflow:visible;
    backdrop-filter:none;
  }
  .hero .scene:before{
    inset:-10%;
    background:
      radial-gradient(circle at 58% 44%,rgba(116,169,231,.23),transparent 26%),
      radial-gradient(circle at 30% 63%,rgba(240,161,95,.12),transparent 18%),
      radial-gradient(circle at 68% 70%,rgba(201,222,247,.28),transparent 20%);
    animation:floatbg 10s ease-in-out infinite alternate;
  }

  .hero .core{
    width:146px;
    height:146px;
    border-radius:40px;
    left:42%;
    top:40%;
    transform:rotate(10deg);
    box-shadow:0 34px 60px rgba(32,77,129,.22);
  }
  .hero .core svg{width:70px}

  /* Make visual art communicate with the title by allowing overlap */
  .hero-copy, .hero h1, .hero .lead, .hero-actions, .micro{
    position:relative;
  }

  .hero .micro{
    margin-top:28px;
  }

  /* dark theme tuning */
  body[data-theme="dark"] .hero-kicker-bg{
    color:rgba(214,227,243,.14);
  }
  body[data-theme="dark"] .hero-wire span{
    background:linear-gradient(90deg,rgba(143,192,241,.22),rgba(143,192,241,.42) 48%,transparent 92%);
  }

  /* ===== HEADER + HERO FIXES ===== */
  .nav-shell{
    position:fixed;
    left:0;
    top:0;
    transform:none;
    width:100%;
    z-index:60;
    padding:0;
  }
  .nav-shell:before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, color-mix(in srgb,var(--bg) 88%, transparent), color-mix(in srgb,var(--bg) 74%, transparent));
    backdrop-filter:blur(18px);
    border-bottom:1px solid var(--line);
  }
  nav{
    position:relative;
    z-index:1;
    width:100%;
    min-height:86px;
    padding:18px 34px;
    border:none;
    border-bottom:1px solid var(--line);
    border-radius:0;
    box-shadow:none;
    background:transparent;
    max-width:none;
  }
  body[data-theme="dark"] .nav-shell:before{
    background:linear-gradient(180deg, rgba(5,14,24,.88), rgba(5,14,24,.66));
    border-bottom-color:rgba(171,198,229,.12);
  }
  .hero{
    padding-top:140px;
  }
  .hero .wrap{
    width:min(1800px,calc(100% - 72px));
  }
  .hero-grid{
    min-height:calc(100svh - 174px);
  }

  /* Move the scene down and make it feel less like a rigid rectangle */
  .hero .scene{
    right:max(-110px,-7vw);
    top:56%;
    width:min(54vw,980px);
    height:min(72svh,760px);
  }
  .hero .scene:before{
    inset:-12%;
    background:
      radial-gradient(circle at 58% 44%,rgba(116,169,231,.24),transparent 24%),
      radial-gradient(circle at 34% 60%,rgba(240,161,95,.11),transparent 16%),
      radial-gradient(circle at 64% 72%,rgba(201,222,247,.22),transparent 18%);
  }
  .hero .core{left:46%;top:45%}

  .hero-index{
    left:34px;
    bottom:18px;
  }
  .scroll-cue{
    right:30px;
    bottom:12px;
  }

  /* ===== HERO REFINEMENT: compact text + stronger but controlled wow effect ===== */
  .hero .wrap{width:min(1800px,calc(100% - 72px));}
  .hero-grid{min-height:calc(100svh - 188px);}
  .hero-copy{
    max-width:min(48vw,860px);
    padding-top:clamp(8px,2vh,30px);
  }
  .hero-kicker-bg{
    top:-6px;
    opacity:.72;
  }
  .hero h1{
    font-size:clamp(58px,6.45vw,110px);
    line-height:.92;
    max-width:780px;
    margin:16px 0 12px;
  }
  .hero .lead{
    max-width:560px;
    font-size:clamp(16px,1.08vw,19px);
    line-height:1.58;
  }
  .hero-actions{margin-top:24px}
  .hero .micro{margin-top:16px}
  .hero-wire{margin-top:14px;height:22px}

  /* Remove any remaining rectangular panel feeling in dark mode and light mode */
  .hero .visual{pointer-events:auto}
  .hero .scene{
    background:none !important;
    border:none !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    filter:none !important;
    isolation:isolate;
  }
  .hero .scene:before{
    inset:-16%;
    background:
      radial-gradient(circle at 58% 44%,rgba(116,169,231,.20),transparent 22%),
      radial-gradient(circle at 35% 62%,rgba(240,161,95,.10),transparent 16%),
      radial-gradient(circle at 70% 70%,rgba(201,222,247,.18),transparent 16%);
    animation:floatbg 9s ease-in-out infinite alternate;
    opacity:1;
  }
  .hero .scene:after{
    content:"";
    position:absolute;
    inset:8% 12% 10% 20%;
    background:radial-gradient(circle at 52% 50%, rgba(36,93,166,.06), transparent 58%);
    filter:blur(18px);
    z-index:-1;
  }
  body[data-theme="dark"] .hero .scene:after{
    background:radial-gradient(circle at 52% 50%, rgba(143,192,241,.08), transparent 62%);
  }
  .hero .core{
    left:45%;
    top:43%;
    width:152px;
    height:152px;
    box-shadow:0 30px 60px rgba(32,77,129,.26), 0 0 0 14px rgba(62,120,187,.08);
  }
  .hero .core:before{
    content:"";
    position:absolute;
    inset:-20px;
    border-radius:52px;
    border:1px solid rgba(116,169,231,.16);
    animation:heroPulse 3s ease-in-out infinite;
  }
  .hero .core:after{
    content:"";
    position:absolute;
    inset:-42px;
    border-radius:68px;
    border:1px solid rgba(116,169,231,.10);
    animation:heroPulse 3s ease-in-out infinite .55s;
  }
  @keyframes heroPulse{
    0%,100%{transform:scale(.96);opacity:.26}
    50%{transform:scale(1.06);opacity:.62}
  }
  .hero .core svg path{
    stroke-dasharray:140;
    stroke-dashoffset:140;
  }
  .hero .core svg circle{
    opacity:0;
  }
  @keyframes heroFadeIn{
    to{opacity:1;transform:translateY(0) scale(1)}
  }

  .hero .visual .core{
    opacity:0;
    transform:translateY(16px) scale(.84) rotate(10deg);
  }
  .hero .visual.show .core{
    animation:heroCoreIn .85s cubic-bezier(.16,1,.3,1) .42s forwards;
  }
  @keyframes heroCoreIn{
    0%{opacity:0;transform:translateY(16px) scale(.84) rotate(10deg)}
    70%{opacity:1;transform:translateY(-4px) scale(1.05) rotate(10deg)}
    100%{opacity:1;transform:translateY(0) scale(1) rotate(10deg)}
  }
  .hero .visual.show .core svg path{
    animation:drawCoreLine .9s ease .8s forwards;
  }
  .hero .visual.show .core svg circle{
    animation:showDots .35s ease forwards;
  }
  .hero .visual.show .core svg circle:nth-of-type(1){animation-delay:1.05s}
  .hero .visual.show .core svg circle:nth-of-type(2){animation-delay:1.12s}
  .hero .visual.show .core svg circle:nth-of-type(3){animation-delay:1.19s}
  .hero .visual.show .core svg circle:nth-of-type(4){animation-delay:1.26s}
  @keyframes drawCoreLine{to{stroke-dashoffset:0}}
  @keyframes showDots{to{opacity:1}}
  @keyframes chipRise{to{opacity:1;transform:translateY(0) scale(1)}}
  @keyframes trendCardIn{
    0%{opacity:0;transform:translateY(18px) scale(.96)}
    72%{opacity:1;transform:translateY(-4px) scale(1.03)}
    100%{opacity:1;transform:translateY(0) scale(1)}
  }
  @keyframes barBuild{
    0%{transform:scaleY(.12);opacity:.35}
    70%{transform:scaleY(1.08);opacity:1}
    100%{transform:scaleY(1);opacity:1}
  }
  @keyframes barPulse{
    0%,100%{filter:brightness(1);transform:scaleY(1)}
    50%{filter:brightness(1.1);transform:scaleY(.94)}
  }
  @keyframes drawTrend{to{stroke-dashoffset:0}}
  @keyframes trendPoint{to{opacity:1}}

  @media(prefers-reduced-motion:reduce){
    .hero .visual *{animation:none !important;transition:none !important}
    .hero .visual .beam,
    .hero .visual .orbit,
    .hero .visual .halo,
    .hero .visual .core,
    .hero .visual .chip,
    .hero .visual .trend-card{opacity:1;transform:none}
    .hero .core svg path{stroke-dashoffset:0}
    .hero .core svg circle,
    .trend-line circle{opacity:1}
  }

  /* ===== FINAL HERO DIRECTION: more air on the left, abstract system on the right ===== */
  .hero .wrap{
    width:min(1820px,calc(100% - 96px));
  }
  .hero-grid{
    min-height:calc(100svh - 186px);
  }
  .hero-copy{
    padding-left:22px;
    max-width:min(47vw,820px);
  }
  .hero-kicker-bg{left:2px}
  .hero h1{
    max-width:790px;
    font-size:clamp(62px,6.1vw,104px);
    margin-top:-24px;
    position:relative;
    left:0;
    top:0;
  }
  .hero .lead{max-width:560px}
  .hero-wire{width:min(48vw,640px)}

  /* More expressive full-width nav */
  .nav-shell:before{
    background:linear-gradient(180deg, color-mix(in srgb,var(--bg) 92%, transparent), color-mix(in srgb,var(--bg) 76%, transparent));
  }
  nav{
    min-height:88px;
    padding:16px 28px;
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:20px;
    align-items:center;
  }
  .brand{
    position:relative;
    z-index:2;
  }
  .brand-mark{
    transition:transform .35s ease, box-shadow .35s ease;
  }
  .brand:hover .brand-mark{
    transform:rotate(-12deg) scale(1.06);
    box-shadow:0 12px 28px rgba(36,93,166,.25), inset 0 0 0 1px rgba(255,255,255,.35);
  }
  .navlinks{
    display:flex;
    justify-content:center;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
  }
  .navlink{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 16px;
    border-radius:999px;
    color:#4d6077;
    font-size:13px;
    font-weight:700;
    letter-spacing:.01em;
    overflow:hidden;
    transition:color .28s ease, transform .28s ease, background-color .28s ease, box-shadow .28s ease;
  }
  .navlink:before{
    content:"";
    position:absolute;
    inset:auto 12px 8px;
    height:2px;
    background:linear-gradient(90deg,var(--blue2),var(--orange));
    border-radius:999px;
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform .32s ease;
  }
  .navlink:after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    background:linear-gradient(135deg, rgba(255,255,255,.72), rgba(227,236,246,.34));
    opacity:0;
    transition:opacity .28s ease;
    z-index:-1;
  }
  .navlink:hover{
    color:var(--text);
    transform:translateY(-1px);
  }
  .navlink:hover:before,
  .navlink.active:before{transform:scaleX(1)}
  .navlink:hover:after,
  .navlink.active:after{opacity:1}
  .navlink.active{
    color:var(--text);
    box-shadow:0 10px 24px rgba(39,72,110,.08);
  }
  .nav-actions{
    display:flex;
    align-items:center;
    gap:10px;
  }
  .theme-toggle{
    position:relative;
    overflow:hidden;
    transition:transform .28s ease, box-shadow .28s ease, background-color .28s ease;
  }
  .theme-toggle:hover{transform:translateY(-1px) rotate(-4deg);box-shadow:0 10px 20px rgba(39,72,110,.10)}
  .nav-cta{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.14);
    background:linear-gradient(135deg,#133763,#245da6 52%,#4b86c6);
    color:#fff;
    box-shadow:0 14px 30px rgba(25,66,115,.20);
    transition:transform .32s ease, box-shadow .32s ease, filter .32s ease;
  }
  .nav-cta:before{
    content:"";
    position:absolute;
    top:0; bottom:0; left:-120%; width:80%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.38), transparent);
    transform:skewX(-22deg);
    transition:left .5s ease;
  }
  .nav-cta:hover{transform:translateY(-2px);box-shadow:0 20px 36px rgba(25,66,115,.26);filter:brightness(1.03)}
  .nav-cta:hover:before{left:140%}

  body[data-theme="dark"] .navlink{color:#bfd0e3}
  body[data-theme="dark"] .navlink:after{background:linear-gradient(135deg, rgba(18,39,64,.86), rgba(24,50,80,.56))}
  body[data-theme="dark"] .navlink.active,
  body[data-theme="dark"] .navlink:hover{color:#f3f8ff}

  /* New abstract system visual */
  .hero .visual{pointer-events:auto}
  @keyframes ping{
    0%{box-shadow:0 0 0 0 rgba(116,169,231,.30)}
    70%{box-shadow:0 0 0 10px rgba(116,169,231,0)}
    100%{box-shadow:0 0 0 0 rgba(116,169,231,0)}
  }
  @keyframes slowPulse{
    0%,100%{transform:scale(.98);opacity:.55}
    50%{transform:scale(1.03);opacity:.9}
  }
  @keyframes drawPath{to{stroke-dashoffset:0}}
  @keyframes heroElemIn{
    0%{opacity:0;transform:translateY(16px) scale(.97)}
    72%{opacity:1;transform:translateY(-4px) scale(1.02)}
    100%{opacity:1;transform:translateY(0) scale(1)}
  }

  

  /* ===== AGREED HEADER: large rectangular tabs + glass only after scroll ===== */
  .nav-shell{
    position:fixed;
    left:0;
    top:0;
    transform:none;
    width:100%;
    z-index:70;
    padding:0;
  }
  .nav-shell:before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(255,255,255,0);
    border-bottom:1px solid transparent;
    box-shadow:none;
    backdrop-filter:blur(0px);
    -webkit-backdrop-filter:blur(0px);
    transition:background-color .4s ease,border-color .4s ease,box-shadow .4s ease,backdrop-filter .4s ease;
  }
  .nav-shell.scrolled:before{
    background:rgba(246,249,253,.70);
    border-bottom-color:rgba(32,72,118,.10);
    box-shadow:0 14px 42px rgba(29,62,101,.08);
    backdrop-filter:blur(22px) saturate(145%);
    -webkit-backdrop-filter:blur(22px) saturate(145%);
  }
  body[data-theme="dark"] .nav-shell:before{
    background:rgba(5,14,24,0);
    border-bottom-color:transparent;
  }
  body[data-theme="dark"] .nav-shell.scrolled:before{
    background:rgba(6,18,31,.67);
    border-bottom-color:rgba(174,202,231,.10);
    box-shadow:0 16px 44px rgba(0,0,0,.24);
  }

  nav{
    position:relative;
    z-index:1;
    width:100%;
    max-width:none;
    min-height:92px;
    padding:17px 30px;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:24px;
    border:none;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .navlinks{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
  }
  .navlink{
    position:relative;
    isolation:isolate;
    min-width:116px;
    height:54px;
    padding:0 22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    border:1px solid rgba(37,81,130,.10);
    background:rgba(255,255,255,.34);
    color:#405973;
    font-size:13px;
    font-weight:800;
    letter-spacing:.015em;
    overflow:hidden;
    box-shadow:0 8px 22px rgba(40,76,118,.035);
    transition:transform .28s ease,color .28s ease,border-color .28s ease,box-shadow .28s ease,background-color .28s ease;
  }
  .navlink span{position:relative;z-index:2;transition:transform .28s ease}
  .navlink:before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(135deg,rgba(36,93,166,.10),rgba(116,169,231,.16) 62%,rgba(240,161,95,.10));
    opacity:0;
    transform:scale(.88);
    transition:opacity .3s ease,transform .3s ease;
    z-index:0;
  }
  .navlink:after{
    content:"";
    position:absolute;
    left:18px;
    right:18px;
    bottom:9px;
    height:2px;
    border-radius:99px;
    background:linear-gradient(90deg,var(--blue2),var(--orange));
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .3s ease;
    z-index:1;
  }
  .navlink:hover{
    transform:translateY(-2px);
    color:var(--text);
    border-color:rgba(64,112,164,.18);
    box-shadow:0 14px 30px rgba(40,76,118,.09);
  }
  .navlink:hover span{transform:translateY(-1px)}
  .navlink:hover:before,.navlink.active:before{opacity:1;transform:scale(1)}
  .navlink:hover:after,.navlink.active:after{transform:scaleX(1)}
  .navlink.active{
    color:var(--text);
    background:rgba(255,255,255,.54);
    border-color:rgba(64,112,164,.16);
    box-shadow:0 12px 28px rgba(40,76,118,.07);
  }
  body[data-theme="dark"] .navlink{
    color:#bdcfe1;
    background:rgba(12,31,52,.26);
    border-color:rgba(166,197,228,.08);
    box-shadow:none;
  }
  body[data-theme="dark"] .navlink:before{
    background:linear-gradient(135deg,rgba(68,126,188,.18),rgba(38,81,128,.22) 62%,rgba(240,161,95,.08));
  }
  body[data-theme="dark"] .navlink:hover,
  body[data-theme="dark"] .navlink.active{
    color:#f0f6fd;
    background:rgba(18,42,68,.46);
    border-color:rgba(173,204,234,.13);
    box-shadow:0 14px 32px rgba(0,0,0,.12);
  }
  .nav-cta{
    min-height:50px;
    padding:0 20px;
    display:inline-flex;
    align-items:center;
    border-radius:12px;
  }

  /* ===== NEW RIGHT HERO: abstract growth, no words / numbers ===== */
  .hero .visual{pointer-events:auto}
  @keyframes growthBgIn{to{opacity:1;transform:scale(1)}}
  @keyframes barRise{
    0%{opacity:0;transform:scaleY(.04) translateY(14px)}
    68%{opacity:1;transform:scaleY(1.07) translateY(-3px)}
    100%{opacity:1;transform:scaleY(1) translateY(0)}
  }
  @keyframes barIdle{0%,100%{filter:brightness(1)}50%{filter:brightness(1.06)}}
  @keyframes barShine{to{transform:translateX(120%)}}
  @keyframes curveDraw{to{stroke-dashoffset:0}}
  @keyframes dotPop{0%{opacity:0;transform:scale(.2)}75%{opacity:1;transform:scale(1.35)}100%{opacity:1;transform:scale(1)}}
  @keyframes dotIdle{0%,100%{filter:brightness(1)}50%{filter:brightness(1.25)}}
  @keyframes focusIn{0%{opacity:0;transform:scale(.65)}72%{opacity:1;transform:scale(1.12)}100%{opacity:1;transform:scale(1)}}
  @keyframes focusPulse{0%,100%{transform:scale(.92);opacity:.35}50%{transform:scale(1.10);opacity:.86}}
  @keyframes particleIn{to{opacity:.75}}
  @keyframes particleFloat{0%,100%{translate:0 0}50%{translate:0 -8px}}

  

  /* ===== GROWTH HERO V2 =====
     Desktop is explicitly two-column. Slow entrance, one focus point,
     then a calm continuously changing growth graph. */
  
  @keyframes barRiseSlow{
    0%{opacity:0;transform:scaleY(.02) translateY(16px)}
    64%{opacity:1;transform:scaleY(1.035) translateY(-2px)}
    100%{opacity:1;transform:scaleY(1) translateY(0)}
  }
  @keyframes curveDrawSlow{to{stroke-dashoffset:0}}
  @keyframes focusPointIn{
    0%{opacity:0;transform:scale(.3)}
    72%{opacity:1;transform:scale(1.22)}
    100%{opacity:1;transform:scale(1)}
  }
  @keyframes focusSvgPulse{0%,100%{opacity:.22;transform:scale(.92)}50%{opacity:.62;transform:scale(1.14)}}
  @keyframes focusSvgPulseInner{0%,100%{opacity:.34;transform:scale(.96)}50%{opacity:.72;transform:scale(1.08)}}
  @keyframes focusDotBreathe{0%,100%{filter:drop-shadow(0 0 10px rgba(240,161,95,.38));transform:scale(1)}50%{filter:drop-shadow(0 0 20px rgba(240,161,95,.62));transform:scale(1.06)}}

  

  /* ===== V3 graph fixes: stable right column, origin pulse, meaningful small graph dots ===== */
  
  @keyframes originPulseIn{
    0%{opacity:0;transform:translateY(10px) scale(.9)}
    70%{opacity:1;transform:translateY(-2px) scale(1.03)}
    100%{opacity:1;transform:translateY(0) scale(1)}
  }
  @keyframes originRingFloat{0%,100%{transform:scale(.96);opacity:.32}50%{transform:scale(1.04);opacity:.62}}
  @keyframes originCoreBreathe{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.04);filter:brightness(1.08)}}
  @keyframes curveDotIn{
    0%{opacity:0;transform:scale(.3)}
    72%{opacity:1;transform:scale(1.16)}
    100%{opacity:1;transform:scale(1)}
  }

  

  /* Keep the complete graph inside a safe right-hand area on desktop. */

  /* ===== V5 placement fix: move the growth graphic notably left on desktop ===== */

  /* V10: restore the thin hero wire, remove the thick accent underline */
  .hero .accent:after{
    display:none ;
  }

  /* ===== V11: semantic decorative hero typography ===== */
  .hero-kicker-bg{
    left:30px ;
    top:-74px ;
    font-size:clamp(27px, 2.15vw, 42px) ;
    line-height:.95 ;
    letter-spacing:.19em ;
    font-weight:850 !important;
    color:color-mix(in srgb, var(--text) 15%, transparent) !important;
    white-space:nowrap !important;
    text-transform:uppercase !important;
    transform:none ;
    pointer-events:none !important;
    user-select:none !important;
    z-index:0 !important;
  }
  .hero-copy{
    padding-top:46px ;
  }
  body[data-theme="dark"] .hero-kicker-bg{
    color:rgba(214,227,243,.14) !important;
  }

  

  /* ===== V16 PERFORMANCE PASS =====
     Preserve the approved visual direction while avoiding expensive full-screen
     filters and keeping continuous work scoped to what is actually visible. */

  /* The noise is now a tiny raster tile, so no runtime SVG turbulence is needed. */
  .noise{
    image-rendering:auto;
  }

  /* Large soft backgrounds already fade via radial gradients; real blur on these
     layers only adds compositor work and is visually redundant. */
  .orb,
  .growth-aura{
    filter:none !important;
  }
  .orb{
    transition:none ;
  }

  /* Keep the glass-like header appearance with a denser translucent fill instead
     of re-blurring the whole viewport behind a fixed element on every frame. */
  .nav-shell:before,
  .nav-shell.scrolled:before{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  .nav-shell.scrolled:before{
    background:rgba(246,249,253,.92) !important;
  }
  body[data-theme="dark"] .nav-shell.scrolled:before{
    background:rgba(6,18,31,.91) !important;
  }
  .theme-toggle{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  /* Only promote the huge marquee tracks while that section is actually active. */
  .ticker-track{will-change:auto !important;}
  @keyframes teamSvgIn{
    from{opacity:0;transform:translateY(-47%) translateX(14px)}
    to{opacity:1;transform:translateY(-49%) translateX(0)}
  }
  @keyframes teamGeomIn{
    from{opacity:0;transform:scale(.97)}
    to{opacity:1;transform:scale(1)}
  }
  @keyframes teamAccentIn{
    0%{opacity:0;transform:scale(.3)}
    75%{opacity:1;transform:scale(1.16)}
    100%{opacity:1;transform:scale(1)}
  }

  

  @keyframes teamSvgInV33{
    from{opacity:0;transform:translateY(-48%) translateX(14px)}
    to{opacity:1;transform:translateY(-50%) translateX(0)}
  }
  @keyframes teamLineIn{
    from{opacity:0;transform:translateX(-12px)}
    to{opacity:1;transform:translateX(0)}
  }
  @keyframes teamBaseIn{
    from{opacity:0;transform:translateY(10px)}
    to{opacity:1;transform:translateY(0)}
  }
  @keyframes teamAccentSoft{
    0%{opacity:0;transform:scale(.55)}
    18%{opacity:1;transform:scale(1)}
    60%{opacity:.72;transform:scale(1)}
    100%{opacity:.72;transform:scale(1)}
  }

  

  @keyframes teamV34In{
    from{opacity:0;transform:translateY(-49%) translateX(10px) scale(.992)}
    to{opacity:1;transform:translateY(-50%) translateX(0) scale(1)}
  }
  @keyframes growthBoltDraw{
    0%{opacity:0;stroke-dashoffset:900}
    12%{opacity:1}
    100%{opacity:1;stroke-dashoffset:0}
  }
  @keyframes growthArrowDraw{
    from{opacity:0;stroke-dashoffset:110}
    to{opacity:1;stroke-dashoffset:0}
  }
  @keyframes teamOrbAppear{
    0%{opacity:0;transform:scale(.35)}
    72%{opacity:1;transform:scale(1.12)}
    100%{opacity:1;transform:scale(1)}
  }
  @keyframes teamOrbPulse{
    0%,100%{opacity:.30;transform:translate(-50%,-50%) scale(.92)}
    50%{opacity:.58;transform:translate(-50%,-50%) scale(1.08)}
  }
  @keyframes teamOrbPulseInner{
    0%,100%{opacity:.40;transform:translate(-50%,-50%) scale(.95)}
    50%{opacity:.72;transform:translate(-50%,-50%) scale(1.05)}
  }
  @keyframes teamOrbCore{
    0%,100%{transform:translate(-50%,-50%) scale(1);box-shadow:0 0 14px rgba(240,161,95,.15)}
    50%{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 0 24px rgba(240,161,95,.25)}
  }

  

  @keyframes teamV35In{
    0%{opacity:0;transform:translateY(-48.8%) translateX(12px) scale(.995)}
    100%{opacity:1;transform:translateY(-50%) translateX(0) scale(1)}
  }
  @keyframes growthBoltDrawV35{
    0%{opacity:0;stroke-dashoffset:900}
    18%{opacity:.45}
    42%{opacity:.78}
    100%{opacity:1;stroke-dashoffset:0}
  }
  @keyframes growthArrowDrawV35{
    0%{opacity:0;stroke-dashoffset:110}
    30%{opacity:.55}
    100%{opacity:1;stroke-dashoffset:0}
  }
  @keyframes teamGeomV35{
    from{opacity:0;transform:scale(.985)}
    to{opacity:1;transform:scale(1)}
  }
  @keyframes teamLineV35{
    from{opacity:0;transform:translateX(-8px)}
    to{opacity:1;transform:translateX(0)}
  }
  @keyframes teamNodeV35{
    0%{opacity:0;transform:scale(.72)}
    100%{opacity:1;transform:scale(1)}
  }
  @keyframes teamOrbAppearV35{
    0%{opacity:0;transform:scale(.90)}
    100%{opacity:1;transform:scale(1)}
  }
  @keyframes teamOrbPulseV35{
    0%,100%{opacity:.16;transform:translate(-50%,-50%) scale(.975)}
    50%{opacity:.30;transform:translate(-50%,-50%) scale(1.035)}
  }
  @keyframes teamOrbPulseInnerV35{
    0%,100%{opacity:.22;transform:translate(-50%,-50%) scale(.985)}
    50%{opacity:.40;transform:translate(-50%,-50%) scale(1.025)}
  }
  @keyframes teamOrbCoreV35{
    0%,100%{
      transform:translate(-50%,-50%) scale(1);
      box-shadow:0 0 26px rgba(240,161,95,.14);
    }
    50%{
      transform:translate(-50%,-50%) scale(1.035);
      box-shadow:0 0 46px rgba(240,161,95,.24);
    }
  }

  

  

  /* ===== V38: approved team illustration integrated into hero ===== */
.hero .scene.team-art-scene{
  position:absolute;

  right:-250px;    /* ← влево / вправо */
  top:60%;        /* ← вверх / вниз */

  width:980px;    /* ← общий размер */

  transform:translateY(-50%);
  height:660px;

  overflow:visible;
  background:none !important;
  border:none !important;
}
  .team-art{
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:100%;
    height:auto;
    display:block;
    user-select:none;
    pointer-events:none;
    image-rendering:auto;
  }
  .team-art--light{opacity:1}
  .team-art--dark{opacity:0}
  body[data-theme="dark"] .team-art--light{opacity:0}
  body[data-theme="dark"] .team-art--dark{opacity:1}
  .team-art--light,.team-art--dark{transition:opacity .28s ease}

  /* ======================================================================
     V39 — MODULAR ANIMATION PACK (NO PARALLAX)
     Delete this entire block to remove all V39 visual animation styles.
     Individual modules are enabled by body classes added from FX in JS:
       fx-on-heroIntro, fx-on-heroExit, fx-on-sectionReveal,
       fx-on-magneticButtons, fx-on-headerScroll, fx-on-navActive,
       fx-on-ctaReveal (V40 modules are documented in their own block)
     ====================================================================== */

  /* ---------- MODULE: HERO INTRO ---------- */
  .fx-preload .hero-kicker-bg,
  .fx-preload .hero h1,
  .fx-preload .hero .hero-subtitle,
  .fx-preload .hero-wire,
  .fx-preload .hero .lead,
  .fx-preload .hero-actions,
  .fx-preload .hero .micro,
  .fx-preload .hero-index,
  .fx-preload .scroll-cue,
  .fx-preload .hero .visual{
    opacity:0 !important;
  }
  .fx-on-heroIntro .hero-kicker-bg,
  .fx-on-heroIntro .hero h1,
  .fx-on-heroIntro .hero .hero-subtitle,
  .fx-on-heroIntro .hero-wire,
  .fx-on-heroIntro .hero .lead,
  .fx-on-heroIntro .hero-actions,
  .fx-on-heroIntro .hero .micro,
  .fx-on-heroIntro .hero-index,
  .fx-on-heroIntro .scroll-cue,
  .fx-on-heroIntro .hero .visual{
    transition-property:opacity,transform;
    transition-duration:.62s;
    transition-timing-function:cubic-bezier(.18,.9,.22,1);
  }
  .fx-preload .hero-kicker-bg{transform:translateY(10px)}
  .fx-preload .hero h1{transform:translateY(8px)}
  .fx-preload .hero .hero-subtitle{transform:translateY(6px)}
  .fx-preload .hero-wire{transform:scaleX(.94);transform-origin:left center}
  .fx-preload .hero .lead{transform:translateY(6px)}
  .fx-preload .hero-actions{transform:translateY(16px)}
  .fx-preload .hero .micro{transform:translateY(12px)}
  .fx-preload .hero .visual{transform:translateY(6px)}
  .fx-preload .hero-index{transform:translateX(-10px)}
  .fx-preload .scroll-cue{transform:translateY(10px)}

  .fx-on-heroIntro:not(.fx-preload) .hero-kicker-bg{transition-delay:.06s}
  .fx-on-heroIntro:not(.fx-preload) .hero h1{transition-delay:.14s}
  .fx-on-heroIntro:not(.fx-preload) .hero .hero-subtitle{transition-delay:.22s}
  .fx-on-heroIntro:not(.fx-preload) .hero-wire{transition-delay:.30s}
  .fx-on-heroIntro:not(.fx-preload) .hero .lead{transition-delay:.36s}
  .fx-on-heroIntro:not(.fx-preload) .hero-actions{transition-delay:.50s}
  .fx-on-heroIntro:not(.fx-preload) .hero .micro{transition-delay:.58s}
  .fx-on-heroIntro:not(.fx-preload) .hero .visual{transition-delay:.28s}
  .fx-on-heroIntro:not(.fx-preload) .hero-index{transition-delay:.68s}
  .fx-on-heroIntro:not(.fx-preload) .scroll-cue{transition-delay:.72s}

  .fx-on-heroIntro .hero .accent:after{
    transform-origin:left center;
    transform:rotate(-1.2deg) scaleX(1);
    transition:transform .68s cubic-bezier(.2,.85,.2,1) .44s;
  }
  .fx-preload .hero .accent:after{
    transform:rotate(-1.2deg) scaleX(0);
  }

  /* Fade the intact artwork; no animated clipping or moving people layers. */
  .fx-on-heroIntro .team-art-scene{
    clip-path:none;
    transition:opacity .62s ease .22s;
  }
  .fx-preload .team-art-scene{opacity:0}

  /* ---------- MODULE: HERO EXIT (threshold based, not parallax) ---------- */
  .fx-on-heroExit .hero-copy,
  .fx-on-heroExit .hero .visual{
    transition:opacity .42s ease,transform .42s ease;
  }
  .fx-on-heroExit .hero.fx-exiting .hero-copy{
    opacity:.38;
    transform:translateY(-12px);
  }
  .fx-on-heroExit .hero.fx-exiting .hero .visual{
    opacity:.30;
    transform:translateY(-8px) scale(.992);
  }

  /* ---------- MODULE: SECTION TITLE MASK REVEAL ---------- */
  .fx-on-sectionReveal .fx-mask-title{
    clip-path:inset(0 0 100% 0);
    transform:translateY(22px);
    opacity:.01;
    transition:clip-path .82s cubic-bezier(.18,.9,.22,1),transform .82s cubic-bezier(.18,.9,.22,1),opacity .5s ease;
  }
  .fx-on-sectionReveal .show .fx-mask-title,
  .fx-on-sectionReveal .fx-mask-title.show{
    clip-path:inset(0 0 0 0);
    transform:translateY(0);
    opacity:1;
  }

  /* ---------- MODULE: MAGNETIC BUTTONS ---------- */
  .fx-on-magneticButtons .fx-magnetic{
    --fx-mx:0px;
    --fx-my:0px;
    translate:var(--fx-mx) var(--fx-my);
    transition:translate .18s ease,transform .28s ease,box-shadow .28s ease,background-color .28s ease;
  }

  /* ---------- MODULE: COMPACT HEADER AFTER SCROLL ---------- */
  .fx-on-headerScroll .nav-shell nav{
    transition:min-height .34s ease,padding .34s ease;
  }
  .fx-on-headerScroll .nav-shell .navlink,
  .fx-on-headerScroll .nav-shell .theme-toggle,
  .fx-on-headerScroll .nav-shell .nav-cta{
    transition:min-height .34s ease,height .34s ease,padding .34s ease,transform .28s ease,box-shadow .28s ease,background-color .28s ease,color .28s ease;
  }
  

  /* ---------- MODULE: NAV ACTIVE INDICATOR ---------- */
  .fx-on-navActive .navlink:before{
    transition:transform .32s cubic-bezier(.2,.85,.2,1),opacity .25s ease;
  }

  /* ---------- MODULE: CTA ONE-SHOT REVEAL ---------- */
  .fx-on-ctaReveal .cta-box.reveal:after{
    opacity:0;
    transform:scale(.76);
    transform-origin:center;
    transition:opacity .75s ease .10s,transform .9s cubic-bezier(.18,.9,.22,1) .10s;
  }
  .fx-on-ctaReveal .cta-box.reveal.show:after{opacity:1;transform:scale(1)}
  .fx-on-ctaReveal .cta-box.reveal h2,
  .fx-on-ctaReveal .cta-box.reveal p,
  .fx-on-ctaReveal .cta-box.reveal .btn{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .58s ease,transform .68s cubic-bezier(.18,.9,.22,1);
  }
  .fx-on-ctaReveal .cta-box.reveal.show h2{opacity:1;transform:none;transition-delay:.14s}
  .fx-on-ctaReveal .cta-box.reveal.show p{opacity:1;transform:none;transition-delay:.24s}
  .fx-on-ctaReveal .cta-box.reveal.show .btn{opacity:1;transform:none;transition-delay:.34s}

  /* Reduced motion always wins over the module switches. */
  @media(prefers-reduced-motion:reduce){
    .fx-preload .hero-kicker-bg,
    .fx-preload .hero h1,
    .fx-preload .hero-wire,
    .fx-preload .hero .lead,
    .fx-preload .hero-actions,
    .fx-preload .hero .micro,
    .fx-preload .hero-index,
    .fx-preload .scroll-cue,
    .fx-preload .hero .visual,
    .fx-mask-title,
    .cta-box.reveal h2,
    .cta-box.reveal p,
    .cta-box.reveal .btn{
      opacity:1 !important;
      transform:none !important;
      clip-path:none !important;
      transition:none !important;
    }
    .step,.step .lineart{opacity:1 !important;transform:none !important;transition:none !important}
    .step .lineart circle,.step .lineart path{stroke-dashoffset:0 !important;transition:none !important}
  }

  /* ======================================================================
     V40 — HERO ART MOTION + THEME SWITCH + AUTO MARQUEE
     Independent modules. Remove this block + matching SVG/JS modules to
     completely remove the V40 additions.
     ====================================================================== */

  /* ---------- MODULE: HERO ART MOTION ---------- */
  .team-motion-layer{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:visible;
    pointer-events:none;
    z-index:3;
  }
  .team-motion-layer .tm-path{
    fill:none;
    stroke-linecap:round;
    stroke-linejoin:round;
    vector-effect:non-scaling-stroke;
    stroke-dasharray:1;
    stroke-dashoffset:0;
  }
  .team-motion-layer .tm-path-main{
    stroke:url(#teamMotionBlue);
    stroke-width:1.45;
    opacity:.62;
  }
  .fx-on-heroArtMotion .team-motion-layer .tm-path-main{
    animation:tmDraw 1.8s cubic-bezier(.3,.05,.25,1) .42s both;
  }
  @keyframes tmDraw{from{stroke-dashoffset:1;opacity:0}to{stroke-dashoffset:0;opacity:.62}}

  .tm-marker{fill:var(--blue2);opacity:.66}
  .tm-marker .tm-ring{fill:none;stroke:var(--blue2);stroke-width:1;opacity:.16}
  .fx-on-heroArtMotion .tm-marker{animation:tmMarkerIn .7s ease both}
  .fx-on-heroArtMotion .tm-marker-a{animation-delay:1.02s}
  .fx-on-heroArtMotion .tm-marker-b{animation-delay:1.40s}
  .fx-on-heroArtMotion .tm-marker-c{animation-delay:1.84s}
  @keyframes tmMarkerIn{from{opacity:0}to{opacity:.66}}

  .tm-anchor-blue .tm-anchor-core{fill:#438bd7;opacity:.65}
  .tm-anchor-wave{
    fill:none;
    stroke:#6ea9e8;
    stroke-width:1;
    opacity:0;
    transform-box:fill-box;
    transform-origin:center;
    animation:tmBlueWave 9.6s cubic-bezier(.4,0,.25,1) 2.8s infinite;
  }
  .tm-wave-2{animation-duration:13.4s;animation-delay:6.2s}
  @keyframes tmBlueWave{
    0%,12%{opacity:0;transform:scale(.85)}
    32%{opacity:.22}
    68%,100%{opacity:0;transform:scale(1.65)}
  }
  .tm-flow-signal{fill:#5d9fe5;opacity:.72}
  .tm-flow-signal-secondary{opacity:.48}
  .tm-cool-glow{
    opacity:.44;
    transform-box:fill-box;
    transform-origin:center;
    animation:tmCoolGlow 14s ease-in-out infinite;
  }
  @keyframes tmCoolGlow{
    0%,100%{opacity:.36;transform:translate(0,0)}
    50%{opacity:.56;transform:translate(1px,-2px)}
  }
  /* Pausing preserves every phase; offscreen/hidden transitions never restart loops. */
  .team-art-scene .team-motion-layer *{animation-play-state:paused !important}
  .team-art-scene.team-motion-active .team-motion-layer *{animation-play-state:running !important}
  body[data-theme="dark"] .tm-marker{fill:#8fc0f1}
  body[data-theme="dark"] .tm-marker .tm-ring{stroke:#8fc0f1;opacity:.18}
  body[data-theme="dark"] .tm-anchor-blue .tm-anchor-core{fill:#8fc0f1}
  body[data-theme="dark"] .tm-flow-signal{fill:#b7d8f7;opacity:.82}
  body[data-theme="dark"] .tm-flow-signal-secondary{opacity:.54}
  body[data-theme="dark"] .tm-cool-glow{fill:url(#teamMotionGlow)}

  /* ---------- MODULE: THEME SWITCH ANIMATION ---------- */
  .fx-on-themeSwitch .theme-toggle{
    isolation:isolate;
    overflow:visible;
  }
  .fx-on-themeSwitch .theme-toggle:before{
    content:"";
    position:absolute;
    inset:5px;
    border-radius:9px;
    background:radial-gradient(circle, color-mix(in srgb,var(--blue2) 24%, transparent), transparent 68%);
    opacity:0;
    transform:scale(.55);
    pointer-events:none;
    z-index:-1;
  }
  .fx-on-themeSwitch .theme-toggle svg{
    position:absolute;
    left:50%;
    top:50%;
    margin:0;
    display:block ;
    transform-origin:center;
    will-change:transform,opacity;
    transition:opacity .34s ease,transform .46s cubic-bezier(.18,.9,.22,1);
  }
  .fx-on-themeSwitch .theme-toggle .moon{
    opacity:1;
    transform:translate(-50%,-50%) rotate(0deg) scale(1);
  }
  .fx-on-themeSwitch .theme-toggle .sun{
    opacity:0;
    transform:translate(-50%,-50%) rotate(-90deg) scale(.45);
  }
  body[data-theme="dark"].fx-on-themeSwitch .theme-toggle .moon{
    opacity:0;
    transform:translate(-50%,-50%) rotate(88deg) scale(.42);
  }
  body[data-theme="dark"].fx-on-themeSwitch .theme-toggle .sun{
    opacity:1;
    transform:translate(-50%,-50%) rotate(0deg) scale(1);
  }
  .fx-on-themeSwitch .theme-toggle.theme-switching{
    animation:themeButtonPress .58s cubic-bezier(.18,.9,.22,1);
  }
  .fx-on-themeSwitch .theme-toggle.theme-switching:before{
    animation:themeHalo .58s ease-out;
  }
  .fx-on-themeSwitch .theme-toggle.theme-switching svg{
    transition-duration:.52s;
  }
  @keyframes themeButtonPress{
    0%{transform:translateY(0) scale(1)}
    25%{transform:translateY(1px) scale(.88) rotate(-5deg)}
    64%{transform:translateY(-1px) scale(1.07) rotate(3deg)}
    100%{transform:translateY(0) scale(1) rotate(0)}
  }
  @keyframes themeHalo{
    0%{opacity:0;transform:scale(.45)}
    38%{opacity:.75}
    100%{opacity:0;transform:scale(1.7)}
  }

  /* ---------- MODULE: CONSTANT MARQUEE ---------- */
  .fx-on-marqueeAuto .ticker-track{
    will-change:auto !important;
    animation-play-state:paused !important;
  }
  .fx-on-marqueeAuto .ticker-section.marquee-visible .ticker-track{
    will-change:transform !important;
    animation-play-state:running !important;
  }
  .fx-on-marqueeAuto .ticker-track[data-direction="-1"]{
    animation:marqueeAutoLeft 28s linear infinite;
  }
  .fx-on-marqueeAuto .ticker-track[data-direction="1"]{
    animation:marqueeAutoRight 34s linear infinite;
  }
  @keyframes marqueeAutoLeft{
    from{transform:translate3d(0,0,0)}
    to{transform:translate3d(-50%,0,0)}
  }
  @keyframes marqueeAutoRight{
    from{transform:translate3d(-50%,0,0)}
    to{transform:translate3d(0,0,0)}
  }

  @media(prefers-reduced-motion:reduce){
    .team-motion-layer .tm-path{stroke-dashoffset:0 !important}
    .team-motion-layer .tm-marker{opacity:.55 !important;transform:none !important;animation:none !important}
    .team-motion-layer .tm-anchor-wave,.team-motion-layer .tm-flow-dot{display:none !important}
    .theme-toggle{animation:none !important}
    .ticker-track{animation:none !important;transform:none !important}
  }

  /* ======================================================================
     V42 — SMOOTH ORANGE PULSE + ORIGINAL CARDS + STORY HOVER
     Independent additions. Remove this block to revert these V42 changes.
     ====================================================================== */

  /* ---------- MODULE: HERO ORANGE ACCENT ---------- */
  .tm-sphere{opacity:.84;pointer-events:none}
  .fx-on-heroArtMotion .tm-sphere{animation:tmSphereIn .8s ease .92s both}
  @keyframes tmSphereIn{from{opacity:0}to{opacity:.84}}
  .tm-sphere-orbit,.tm-sphere-aura,.tm-sphere-core,.tm-sphere-glint{
    transform-box:fill-box;
    transform-origin:center;
  }
  .tm-sphere-orbit{fill:none;stroke:#f0a15f;vector-effect:non-scaling-stroke}
  .tm-sphere-orbit-outer{stroke-width:1;opacity:.13;animation:tmSphereOuter 11.8s ease-in-out 1.7s infinite}
  .tm-sphere-orbit-inner{stroke-width:1.1;opacity:.24;animation:tmSphereInner 8.6s ease-in-out 3.1s infinite}
  .tm-sphere-aura{fill:url(#teamMotionGlow);opacity:.50}
  .tm-sphere-core{fill:url(#teamSphereCore);opacity:.94;filter:none}
  .tm-sphere-glint{fill:#fff7ef;opacity:.62}
  @keyframes tmSphereOuter{
    0%,100%{transform:scale(1);opacity:.12}
    50%{transform:scale(1.025);opacity:.20}
  }
  @keyframes tmSphereInner{
    0%,100%{transform:scale(1);opacity:.20}
    50%{transform:scale(1.018);opacity:.30}
  }
  body[data-theme="dark"] .tm-sphere-orbit{stroke:#f5aa68}
  body[data-theme="dark"] .tm-sphere-aura{opacity:.72}
  body[data-theme="dark"] .tm-sphere-glint{fill:#fff2e5}

  /* ---------- MODULE: ORIGINAL SERVICE CARDS + STAGGER ---------- */
  .fx-on-cardStagger .cards .card.reveal{
    transition-property:opacity,transform,box-shadow;
    transition-duration:.78s,.78s,.35s;
    transition-timing-function:cubic-bezier(.18,.9,.22,1),cubic-bezier(.18,.9,.22,1),ease;
  }

  /* ---------- MODULE: STORY SCROLL CHOREOGRAPHY — restored from v39 ---------- */
  .fx-on-storyScroll .step{
    opacity:.50;
    transform:scale(.985);
    transition:opacity .48s ease,transform .48s ease,border-color .48s ease,background-color .48s ease;
  }
  .fx-on-storyScroll .step.active{
    opacity:1;
    transform:scale(1);
    border-color:rgba(157,184,211,.24);
  }
  .fx-on-storyScroll .step .lineart{
    animation:none !important;
    transition:opacity .5s ease,transform .72s cubic-bezier(.18,.9,.22,1);
    transform:rotate(-5deg) scale(.94);
    opacity:.24;
  }
  .fx-on-storyScroll .step.active .lineart{
    animation:none !important;
    transform:rotate(0deg) scale(1);
    opacity:.62;
  }
  .fx-on-storyScroll .step .lineart circle,
  .fx-on-storyScroll .step .lineart path{
    stroke-dasharray:420;
    stroke-dashoffset:420;
    transition:stroke-dashoffset 1.05s cubic-bezier(.2,.8,.2,1);
  }
  .fx-on-storyScroll .step.active .lineart circle,
  .fx-on-storyScroll .step.active .lineart path{
    stroke-dashoffset:0;
  }

  
  @media(prefers-reduced-motion:reduce){
    .tm-sphere,.tm-sphere *{animation:none !important;opacity:1 !important;transform:none !important}
    .story .step .lineart{animation:none !important;opacity:.7 !important;transform:none !important}
  }

/* ===== CONTACT EXPERIENCE / BRIGHTSCOUT-INSPIRED FULLSCREEN FLOW ===== */
body.contact-open{overflow:hidden}
.contact-overlay{
  position:fixed; inset:0; z-index:999;
  display:grid; grid-template-rows:auto 1fr;
  background:var(--bg); color:var(--text);
  visibility:hidden; pointer-events:none;
  transform:translateY(100%);
  transition:transform .78s cubic-bezier(.76,0,.24,1), visibility 0s linear .78s;
  overflow:auto; overscroll-behavior:contain;
}
.contact-overlay::before{
  content:""; position:fixed; inset:0; pointer-events:none;
  background:
    radial-gradient(circle at 82% 18%, color-mix(in srgb,var(--blue2) 18%,transparent), transparent 32%),
    radial-gradient(circle at 12% 82%, color-mix(in srgb,var(--orange) 13%,transparent), transparent 28%);
  opacity:.9;
}
.contact-overlay.is-open{
  visibility:visible; pointer-events:auto; transform:translateY(0);
  transition:transform .78s cubic-bezier(.76,0,.24,1), visibility 0s;
}
.contact-overlay.is-closing{
  visibility:visible; pointer-events:none; transform:translateY(100%);
}
.contact-top{
  position:sticky; top:0; z-index:3;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 28px;
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}
.contact-brand{font-weight:900;letter-spacing:-.03em}
.contact-close{
  width:48px;height:48px;border-radius:50%;
  border:1px solid var(--line);background:transparent;color:var(--text);
  cursor:pointer;position:relative;transition:transform .25s ease,background .25s ease;
}
.contact-close:hover{transform:rotate(8deg);background:color-mix(in srgb,var(--text) 6%,transparent)}
.contact-close::before,.contact-close::after{
  content:"";position:absolute;left:14px;right:14px;top:23px;height:1.5px;background:currentColor;
}
.contact-close::before{transform:rotate(45deg)}
.contact-close::after{transform:rotate(-45deg)}
.contact-shell{
  position:relative; z-index:1;
  width:min(1500px,calc(100% - 72px));
  margin:0 auto;
  padding:clamp(56px,7vw,110px) 0 90px;
}
.contact-intro{
  display:grid;grid-template-columns:minmax(0,.78fr) minmax(540px,1.22fr);
  gap:clamp(50px,7vw,130px);align-items:start;
}
.contact-kicker{
  font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);
  margin-bottom:20px;
}
.contact-title{
  margin:0;font-size:clamp(58px,7vw,128px);line-height:.88;letter-spacing:-.075em;
  max-width:760px;
}
.contact-title em{font-style:normal;color:var(--blue)}
.contact-sub{
  margin:26px 0 0;max-width:560px;font-size:18px;line-height:1.65;color:var(--muted);
}
.contact-form{display:grid;gap:36px}
.contact-step{
  opacity:0;transform:translateY(20px);
  transition:opacity .5s ease,transform .5s ease;
}
.contact-overlay.is-open .contact-step{opacity:1;transform:none}
.contact-overlay.is-open .contact-step:nth-child(1){transition-delay:.28s}
.contact-overlay.is-open .contact-step:nth-child(2){transition-delay:.36s}
.contact-overlay.is-open .contact-step:nth-child(3){transition-delay:.44s}
.contact-overlay.is-open .contact-step:nth-child(4){transition-delay:.52s}
.contact-overlay.is-open .contact-step:nth-child(5){transition-delay:.60s}
.contact-label{
  display:flex;align-items:center;gap:12px;
  margin-bottom:14px;font-size:13px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
}
.contact-label b{
  display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  border:1px solid var(--line);font-size:11px;color:var(--text);
}
.contact-options{display:flex;flex-wrap:wrap;gap:10px}
.contact-option input{position:absolute;opacity:0;pointer-events:none}
.contact-option span{
  display:inline-flex;align-items:center;min-height:48px;padding:10px 17px;border-radius:999px;
  border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 82%,transparent);
  color:var(--text);cursor:pointer;font-weight:750;font-size:14px;
  transition:transform .2s ease,border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;
}
.contact-option span:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--blue) 38%,var(--line))}
.contact-option input:checked + span{
  background:var(--text);color:var(--bg);border-color:var(--text);
  box-shadow:0 12px 28px color-mix(in srgb,var(--text) 14%,transparent);
}
.contact-field{
  width:100%;padding:15px 0;border:0;border-bottom:1px solid var(--line);
  outline:0;background:transparent;color:var(--text);font:inherit;font-size:18px;
  transition:border-color .2s ease;
}
.contact-field:focus{border-color:var(--blue)}
.contact-field::placeholder{color:color-mix(in srgb,var(--muted) 70%,transparent)}
textarea.contact-field{min-height:92px;resize:vertical}
.contact-grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.contact-submit{
  justify-self:start;border:0;border-radius:999px;padding:17px 24px;
  background:linear-gradient(135deg,#133763,#245da6 55%,#4b86c6);
  color:#fff;font-weight:900;cursor:pointer;box-shadow:0 16px 34px rgba(25,66,115,.22);
  transition:transform .25s ease,box-shadow .25s ease;
}
.contact-submit:hover{transform:translateY(-3px);box-shadow:0 22px 40px rgba(25,66,115,.28)}
.contact-note{font-size:12px;color:var(--muted);line-height:1.55;margin-top:-18px}
@keyframes contactWipe{
  0%{transform:translateY(102%)}
  48%{transform:translateY(0)}
  52%{transform:translateY(0)}
  100%{transform:translateY(-102%)}
}


@media(prefers-reduced-motion:reduce){
  .contact-overlay,.contact-step{transition:none!important}
}

/* ===== CONTACT V4 CLEAN: PAGE SLIDE + MARQUEE ===== */
html{scrollbar-gutter:stable}

/* Keep top CTA stable on click/open */
.nav-cta:hover{
  transform:scale(1.015) ;
}
body.contact-open .nav-shell{
  top:0 ;
  transform:none ;
}
body.contact-open .nav-cta{
  transform:none ;
}

/* Clean transition: the whole contact screen slides up like a new page */
.contact-overlay{
  padding:0 ;
  background:var(--bg) !important;
  color:var(--text) !important;
  visibility:hidden;
  pointer-events:none;
  opacity:1 !important;
  transform:translate3d(0,100%,0) ;
  border-radius:28px 28px 0 0;
  overflow:auto;
  overscroll-behavior:contain;
  transition:
    transform .84s cubic-bezier(.76,0,.24,1),
    border-radius .84s cubic-bezier(.76,0,.24,1),
    visibility 0s linear .84s ;
  will-change:transform;
  -webkit-clip-path:none !important;
  clip-path:none ;
}
.contact-overlay.is-open{
  visibility:visible;
  pointer-events:auto;
  transform:translate3d(0,0,0) ;
  border-radius:0;
  transition:
    transform .84s cubic-bezier(.76,0,.24,1),
    border-radius .84s cubic-bezier(.76,0,.24,1),
    visibility 0s ;
}
.contact-overlay.is-closing{
  visibility:visible;
  pointer-events:none;
  transform:translate3d(0,100%,0) ;
  border-radius:28px 28px 0 0;
}

/* Keep the subtle background glow but never let it block content */
.contact-overlay::before{
  z-index:0;
  opacity:.78;
}
.contact-overlay::after{
  display:none ;
}

.contact-top,
.contact-shell{
  position:relative;
  z-index:2;
}

.contact-top{
  min-height:88px;
  padding:0 24px;
  display:flex;
  align-items:center;
}

.contact-shell{
  width:min(1540px,calc(100% - 56px));
  margin:0 auto;
  padding:22px 0 88px;
}
@keyframes contactMarquee{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}

/* Layout under marquee */
.contact-intro{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(540px,1.22fr);
  gap:clamp(48px,6vw,104px);
  align-items:start;
}
.contact-title{
  font-size:clamp(50px,5.5vw,96px);
  line-height:.92;
  max-width:560px;
}
.contact-sub{
  max-width:520px;
}

/* Let the page slide first, then the existing form steps appear */
.contact-step{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .48s ease, transform .52s cubic-bezier(.22,.85,.2,1);
}
.contact-overlay.is-open .contact-step{
  opacity:1;
  transform:none;
}
.contact-overlay.is-open .contact-step:nth-child(1){transition-delay:.28s}
.contact-overlay.is-open .contact-step:nth-child(2){transition-delay:.36s}
.contact-overlay.is-open .contact-step:nth-child(3){transition-delay:.44s}
.contact-overlay.is-open .contact-step:nth-child(4){transition-delay:.52s}
.contact-overlay.is-open .contact-step:nth-child(5){transition-delay:.60s}

@media(prefers-reduced-motion:reduce){
  .contact-overlay,
  .contact-overlay.is-open,
  .contact-overlay.is-closing{
    transform:none !important;
    border-radius:0 !important;
    transition:none !important;
  }
  .contact-step{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* ===== CONTACT V4 CLEAN — MARQUEE WIDTH FIX ===== */

/* The marquee is intentionally wider than the viewport.
   Do not let its max-content width participate in overlay sizing. */
.contact-overlay{
  display:block ;
  width:100% ;
  max-width:100vw ;
  min-width:0 ;
  overflow-x:hidden ;
}

.contact-top{
  width:100% ;
  max-width:100% ;
  min-width:0 ;
}

.contact-shell{
  width:min(1540px,calc(100% - 56px)) ;
  max-width:calc(100% - 56px) ;
  min-width:0 ;
  margin-left:auto ;
  margin-right:auto ;
  overflow:visible ;
}

.contact-intro,
.contact-form{
  min-width:0 ;
}

/* Preserve the working slide transition from v4_clean_fixed.
   Only layout/spacing below is changed. */
.contact-top{
  min-height:72px ;
  height:72px ;
  padding:0 24px ;
}

.contact-close{
  width:44px ;
  height:44px ;
}
.contact-close::before,
.contact-close::after{
  left:13px ;
  right:13px ;
  top:21px ;
}

/* On normal desktop heights the entire contact experience fits in one viewport.
   If height is insufficient, the existing overlay scroll remains available. */
.contact-shell{
  width:min(1500px,calc(100% - 64px)) ;
  max-width:calc(100% - 64px) ;
  min-width:0 ;
  min-height:calc(100svh - 72px);
  margin:0 auto ;
  padding:clamp(18px,2.3vh,28px) 0 ;
  display:flex;
  align-items:center;
}

.contact-intro{
  width:100%;
  min-width:0;
  display:grid ;
  grid-template-columns:minmax(360px,.78fr) minmax(650px,1.22fr) ;
  gap:clamp(42px,5vw,88px) ;
  align-items:center ;
}

.contact-intro > div{
  min-width:0;
}

.contact-kicker{
  margin-bottom:14px ;
}

.contact-title{
  max-width:570px ;
  margin:0 ;
  font-size:clamp(52px,4.8vw,82px) ;
  line-height:.91 ;
}

.contact-sub{
  max-width:500px ;
  margin-top:18px ;
  font-size:clamp(15px,1vw,17px) ;
  line-height:1.55 ;
}

@keyframes contactNetPulse{
  0%,100%{transform:scale(.94);opacity:.28}
  50%{transform:scale(1.08);opacity:.72}
}
@keyframes contactNetOrbit{
  0%,100%{transform:scale(.82);opacity:.24}
  50%{transform:scale(1.18);opacity:.68}
}

/* Compact form */
.contact-form{
  min-width:0 ;
  gap:clamp(12px,1.55vh,18px) ;
}

.contact-step{
  min-width:0;
}

.contact-label{
  margin-bottom:8px ;
  gap:9px ;
  font-size:11px ;
}
.contact-label b{
  width:24px ;
  height:24px ;
  font-size:9px ;
}

.contact-options{
  gap:7px ;
}
.contact-option span{
  min-height:38px ;
  padding:7px 13px ;
  font-size:12.5px ;
}

.contact-grid2{
  gap:20px ;
}
.contact-field{
  padding:9px 0 ;
  font-size:16px ;
}
textarea.contact-field{
  min-height:58px ;
  height:58px;
  resize:vertical;
}

.contact-submit{
  padding:13px 20px ;
  font-size:13px ;
}
.contact-note{
  margin-top:-7px ;
  max-width:600px;
  font-size:10.5px ;
  line-height:1.4 ;
}

/* Slightly denser layout specifically for common laptop heights. */


/* Below this width the form becomes one-column and scrolling is intentionally allowed. */



@keyframes contactLinearPulse{
  0%,100%{transform:scale(.96);opacity:.34}
  50%{transform:scale(1.045);opacity:.78}
}

@keyframes contactLinearDrift{
  0%,100%{transform:rotate(-2deg)}
  50%{transform:rotate(4deg)}
}

/* Only the RIGHT form is enlarged. Left column typography stays exactly as in V5. */
.contact-form{
  gap:clamp(12px,1.55vh,18px) ;
}

.contact-label{
  margin-bottom:8px ;
  gap:11px ;
  font-size:14px ;
  line-height:1.2 ;
}

.contact-label b{
  width:30px ;
  height:30px ;
  min-width:30px ;
  font-size:11px ;
}

.contact-options{
  gap:7px ;
}

.contact-option span{
  min-height:42px ;
  padding:8px 15px ;
  font-size:16px ;
  line-height:1.15 ;
}

.contact-grid2{
  gap:20px ;
}

.contact-field{
  padding:10px 0 ;
  font-size:19px ;
  line-height:1.25 ;
}

textarea.contact-field{
  min-height:62px ;
  height:62px ;
}

.contact-submit{
  padding:14px 22px ;
  font-size:16px ;
}

.contact-note{
  margin-top:-7px ;
  font-size:12px ;
  line-height:1.4 ;
}

/* Keep the one-screen intent on shorter laptop displays.
   We reduce vertical padding/gaps, not the typography back to tiny sizes. */



/* Lift the full main composition while keeping the top bar untouched. */


/* Give the description real writing space and separate submit action from it. */
textarea.contact-field{
  min-height:96px ;
  height:96px ;
  line-height:1.45 ;
}

.contact-submit{
  margin-top:16px ;
}

.contact-note{
  margin-top:7px ;
}

@keyframes structureDraw{
  to{stroke-dashoffset:0}
}

@keyframes structureRingIn{
  from{opacity:0;transform:scale(.82)}
  to{opacity:.7;transform:scale(1)}
}

@keyframes structureBreathe{
  0%,100%{transform:scale(1);opacity:.58}
  50%{transform:scale(1.045);opacity:.82}
}

/* On shorter laptop screens keep the larger textarea, but reclaim space elsewhere. */



@keyframes smileDraw{
  to{stroke-dashoffset:0}
}
@keyframes smileEyeIn{
  from{transform:scale(.2);opacity:0}
  to{transform:scale(1);opacity:.88}
}
@keyframes smileAccentIn{
  from{transform:translateY(8px) scale(.2);opacity:0}
  to{transform:translateY(0) scale(1);opacity:.96}
}
@keyframes smileAccentFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-4px)}
}
@keyframes smileBlink{
  0%,92%,100%{transform:scaleY(1)}
  94%,96%{transform:scaleY(.28)}
}

/* Shorter laptop heights */


/* Tablet / mobile */



/* New minimal graphic: a few clean lines with soft moving highlights. */
.contact-shimmer-graphic{
  position:relative;
  width:min(100%,560px);
  height:clamp(170px,24vh,245px);
  margin-top:clamp(14px,2vh,24px);
  overflow:hidden;
  opacity:.92;
}

.contact-shimmer-svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}

.shimmer-base{
  fill:none;
  stroke:color-mix(in srgb,var(--blue2) 58%,var(--text) 42%);
  stroke-width:1.35;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  opacity:.42;
}

.shimmer-glow{
  fill:none;
  stroke:color-mix(in srgb,var(--blue) 72%,var(--text) 28%);
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  stroke-dasharray: 46 520;
  stroke-dashoffset: 0;
  filter: drop-shadow(0 0 4px color-mix(in srgb,var(--blue2) 28%,transparent));
  opacity:.9;
}

.glow-a{ animation: shimmerMoveA 5.2s linear infinite; }
.glow-b{ animation: shimmerMoveB 5.6s linear infinite .3s; }
.glow-c{ animation: shimmerMoveC 6.0s linear infinite .7s; }
.glow-d{ animation: shimmerMoveD 4.8s linear infinite .2s; }
.glow-e{ animation: shimmerMoveE 5.4s linear infinite .8s; }

.shimmer-node{
  opacity:.8;
}
.shimmer-node.core{
  fill:var(--text);
}
.shimmer-node.soft{
  fill:var(--blue2);
  opacity:.58;
}
.shimmer-node.accent{
  fill:var(--orange);
  opacity:.95;
}

@keyframes shimmerMoveA{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:-566}
}
@keyframes shimmerMoveB{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:-566}
}
@keyframes shimmerMoveC{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:-566}
}
@keyframes shimmerMoveD{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:-566}
}
@keyframes shimmerMoveE{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:-566}
}

@media(prefers-reduced-motion:reduce){
  .shimmer-glow{
    animation:none !important;
  }
}

/* ===== CONTACT V10: LARGER SHIMMER GRAPHIC ===== */

/* ===== CONTACT V11: SHIMMER FURTHER LEFT ===== */

/* ===== CONTACT V12: MOBILE STABILITY / LAYOUT FIX ===== */

/* Mobile/tablet only. Desktop remains untouched. */


/* Narrow phones */


/* ===== CONTACT V13: MOBILE INTERACTION + TICKER FIX ===== */

/* Accessibility fallback remains intact. */


/* ===== CONTACT V14: MOBILE TICKER TEXT RENDERING FIX ===== */

/* ===== CONTACT V15: MOBILE OUTLINE GLYPH CLEANUP ===== */

/* ===== CONTACT V16: MOBILE TICKER NO-STROKE FALLBACK ===== */

/* Hero accessibility: static fallback, including changes made while the page is open.
   SMIL is additionally paused by the hero controller. */
@media(prefers-reduced-motion:reduce){
  .hero .team-motion-layer *{animation:none !important;transform:none !important}
  .hero .tm-flow-signal,.hero .tm-anchor-wave{display:none !important}
  .hero .team-motion-layer .tm-path{stroke-dashoffset:0 !important;opacity:.62}
  .hero .team-motion-layer .tm-marker{opacity:.55 !important}
  .hero .team-motion-layer .tm-sphere{opacity:.84 !important}
  .hero .team-motion-layer .tm-sphere-orbit-outer{opacity:.13 !important}
  .hero .team-motion-layer .tm-sphere-orbit-inner{opacity:.24 !important}
  .hero .team-motion-layer .tm-sphere-aura{opacity:.50 !important}
  .hero .team-motion-layer .tm-sphere-core{opacity:.94 !important}
  .hero .team-motion-layer .tm-sphere-glint{opacity:.62 !important}
  .hero .team-motion-layer .tm-cool-glow{opacity:.44 !important}
  .fx-on-heroIntro .hero .reveal,.fx-on-heroIntro .hero .team-art-scene{
    opacity:1 !important;clip-path:none !important;transition:none !important;
  }
  .fx-on-heroIntro .hero .reveal{transform:none !important}
}

/* ===== V22 REVIEWS / COMPACT PREVIEW + REVIEW BOARD ===== */
body.reviews-open{overflow:hidden}

.reviews-section{
  padding:28px 0 92px;
}
.reviews-preview{
  position:relative;
  min-height:390px;
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);
  gap:clamp(28px,5vw,84px);
  align-items:center;
  padding:46px clamp(30px,4vw,64px);
  border:1px solid var(--line);
  border-radius:34px;
  background:
    radial-gradient(circle at 84% 18%,color-mix(in srgb,var(--blue2) 12%,transparent),transparent 30%),
    linear-gradient(145deg,color-mix(in srgb,var(--panel) 92%,transparent),color-mix(in srgb,var(--bg) 88%,transparent));
  box-shadow:0 22px 56px rgba(31,70,112,.08);
  overflow:hidden;
}
.reviews-preview::after{
  content:"";
  position:absolute;
  width:240px;height:240px;
  right:-96px;bottom:-118px;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--blue2) 22%,transparent);
  box-shadow:
    0 0 0 38px color-mix(in srgb,var(--blue2) 5%,transparent),
    0 0 0 76px color-mix(in srgb,var(--blue2) 3%,transparent);
  pointer-events:none;
}
.reviews-copy{
  position:relative;
  z-index:2;
  max-width:520px;
}
.reviews-copy h2{
  margin:10px 0 16px;
  font-size:clamp(38px,4.4vw,64px);
}
.reviews-copy p{
  max-width:470px;
  margin:0;
  color:var(--muted);
  line-height:1.65;
}
.reviews-open-btn{
  margin-top:26px;
  border:0;
}
.reviews-open-btn .reviews-count{
  opacity:.62;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.reviews-stack{
  position:relative;
  height:282px;
  z-index:2;
  perspective:1000px;
}
.review-peek{
  position:absolute;
  width:min(390px,72%);
  min-height:174px;
  padding:22px 24px;
  border-radius:24px;
  border:1px solid color-mix(in srgb,var(--line) 92%,transparent);
  background:color-mix(in srgb,var(--bg) 93%,white 7%);
  box-shadow:0 22px 48px rgba(30,65,105,.10);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease;
}
.review-peek:nth-child(1){
  left:2%;top:66px;
  transform:rotate(-5deg);
  opacity:.72;
}
.review-peek:nth-child(2){
  right:1%;top:8px;
  transform:rotate(5deg);
  opacity:.86;
}
.review-peek:nth-child(3){
  left:18%;top:48px;
  z-index:3;
  transform:rotate(-.6deg);
}
.reviews-preview:hover .review-peek:nth-child(1){transform:translate(-8px,5px) rotate(-7deg)}
.reviews-preview:hover .review-peek:nth-child(2){transform:translate(8px,-5px) rotate(7deg)}
.reviews-preview:hover .review-peek:nth-child(3){
  transform:translateY(-6px) rotate(0);
  box-shadow:0 28px 58px rgba(30,65,105,.14);
}
.review-peek-mark{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin-bottom:22px;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.review-peek-mark i{
  width:8px;height:8px;border-radius:50%;
  background:var(--orange);
  flex:none;
}
.review-peek p{
  margin:0;
  color:var(--text);
  font-size:clamp(15px,1.15vw,18px);
  line-height:1.48;
  font-weight:650;
  letter-spacing:-.015em;
}
.review-peek footer{
  padding:18px 0 0;
  border:0;
  color:var(--muted);
  font-size:11px;
}

/* Full review board */
.reviews-overlay{
  position:fixed;
  inset:0;
  z-index:4200;
  display:grid;
  place-items:center;
  padding:clamp(14px,2vw,28px);
  background:rgba(5,14,24,.24);
  backdrop-filter:blur(0);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:
    opacity .34s ease,
    backdrop-filter .42s ease,
    visibility 0s linear .42s;
}
.reviews-overlay.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  backdrop-filter:blur(13px);
  transition:
    opacity .34s ease,
    backdrop-filter .42s ease,
    visibility 0s;
}
.reviews-board{
  position:relative;
  width:min(1500px,94vw);
  height:min(900px,90vh);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--line) 130%,transparent);
  border-radius:36px;
  background:
    radial-gradient(circle at 88% 8%,color-mix(in srgb,var(--blue2) 13%,transparent),transparent 25%),
    radial-gradient(circle at 5% 92%,color-mix(in srgb,var(--orange) 8%,transparent),transparent 24%),
    var(--bg);
  color:var(--text);
  box-shadow:0 44px 120px rgba(4,18,36,.28);
  transform:translateY(22px) scale(.94);
  transform-origin:50% 55%;
  opacity:0;
  transition:
    transform .55s cubic-bezier(.18,.9,.22,1),
    opacity .34s ease;
}
.reviews-overlay.is-open .reviews-board{
  transform:none;
  opacity:1;
}
.reviews-board-head{
  position:relative;
  z-index:3;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  padding:28px 30px 22px;
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  backdrop-filter:blur(18px);
}
.reviews-board-title .kicker{margin-bottom:7px}
.reviews-board-title h2{
  margin:0;
  font-size:clamp(34px,3.6vw,58px);
  line-height:.95;
}
.reviews-board-title p{
  margin:10px 0 0;
  color:var(--muted);
  font-size:13px;
}
.reviews-close{
  width:48px;height:48px;
  flex:none;
  position:relative;
  border-radius:50%;
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--panel) 88%,transparent);
  color:var(--text);
  cursor:pointer;
  transition:transform .25s ease,background-color .25s ease;
}
.reviews-close:hover{
  transform:rotate(7deg) scale(1.04);
  background:color-mix(in srgb,var(--panel) 100%,transparent);
}
.reviews-close::before,.reviews-close::after{
  content:"";
  position:absolute;
  width:18px;height:1.5px;
  left:50%;top:50%;
  border-radius:99px;
  background:currentColor;
}
.reviews-close::before{transform:translate(-50%,-50%) rotate(45deg)}
.reviews-close::after{transform:translate(-50%,-50%) rotate(-45deg)}

.reviews-board-scroll{
  overflow:auto;
  overscroll-behavior:contain;
  padding:24px 26px 34px;
  scrollbar-gutter:stable;
}
.reviews-masonry{
  columns:3 310px;
  column-gap:15px;
}
.review-card{
  break-inside:avoid;
  display:inline-block;
  width:100%;
  margin:0 0 15px;
  padding:25px;
  border-radius:24px;
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--panel) 94%,transparent);
  box-shadow:0 14px 38px rgba(31,70,112,.06);
}
.review-card:nth-child(4n+2){padding-bottom:38px}
.review-card:nth-child(5n+3){padding-top:34px}
.review-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:22px;
}
.review-person{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.review-avatar{
  width:38px;height:38px;
  border-radius:12px;
  display:grid;
  place-items:center;
  flex:none;
  background:linear-gradient(145deg,color-mix(in srgb,var(--blue2) 32%,var(--bg)),color-mix(in srgb,var(--blue) 16%,var(--bg)));
  color:var(--blue);
  font-size:11px;
  font-weight:900;
}
.review-who strong{
  display:block;
  font-size:13px;
}
.review-who span{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
  line-height:1.35;
}
.review-index{
  color:color-mix(in srgb,var(--muted) 72%,transparent);
  font-size:10px;
  letter-spacing:.12em;
}
.review-card p{
  margin:0;
  font-size:clamp(15px,1vw,17px);
  line-height:1.62;
  letter-spacing:-.012em;
}
.review-meta{
  margin-top:22px;
  padding-top:15px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:10px;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body[data-theme="dark"] .reviews-preview{
  box-shadow:0 26px 68px rgba(0,0,0,.22);
}
body[data-theme="dark"] .review-peek,
body[data-theme="dark"] .review-card{
  background:color-mix(in srgb,var(--panel) 92%,#0a192a 8%);
}
body[data-theme="dark"] .reviews-overlay{
  background:rgba(1,7,14,.40);
}
body[data-theme="dark"] .reviews-board{
  box-shadow:0 48px 130px rgba(0,0,0,.46);
}

@media(prefers-reduced-motion:reduce){
  .reviews-overlay,.reviews-board,.review-peek,.reviews-close{transition:none!important}
}

/* ===== V23 REVIEWS PREVIEW REFINEMENT ===== */

/* ===== V24 CONTACT SECTION ===== */
#contact{
  scroll-margin-top:104px;
}
.contact-cta-box{
  padding:clamp(44px,5vw,72px) ;
}
.contact-section-layout{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);
  gap:clamp(42px,6vw,96px);
  align-items:center;
}
.contact-section-copy{
  max-width:650px;
}
.contact-section-kicker{
  margin-bottom:14px;
  color:rgba(234,244,255,.72);
  font-size:16px;
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.contact-section-copy h2{
  max-width:620px;
  margin:0 0 18px;
}
.contact-section-copy p{
  max-width:590px;
  margin:0;
  color:#dce9f6;
  font-size:16px;
  line-height:1.68;
}
.contact-form-open{
  margin-top:28px ;
  border:0;
  background:#fff !important;
  color:#173b67 !important;
  cursor:pointer;
}
.contact-direct-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.contact-direct-item{
  min-height:116px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:22px;
  padding:20px 21px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:20px;
  background:rgba(255,255,255,.075);
  backdrop-filter:blur(10px);
  transition:transform .28s ease,background-color .28s ease,border-color .28s ease;
}
.contact-direct-item:hover{
  transform:translateY(-3px);
  background:rgba(255,255,255,.11);
  border-color:rgba(255,255,255,.22);
}
.contact-direct-label{
  color:rgba(229,241,253,.64);
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.contact-direct-value{
  color:#fff;
  font-size:clamp(15px,1.12vw,18px);
  font-weight:750;
  line-height:1.3;
  overflow-wrap:anywhere;
}
body[data-theme="dark"] .contact-direct-item{
  background:rgba(255,255,255,.055);
  border-color:rgba(211,231,250,.12);
}
body[data-theme="dark"] .contact-direct-item:hover{
  background:rgba(255,255,255,.085);
  border-color:rgba(211,231,250,.18);
}

/* Extend the existing CTA reveal choreography to the contact cards. */
.fx-on-ctaReveal .contact-cta-box.reveal .contact-section-kicker,
.fx-on-ctaReveal .contact-cta-box.reveal .contact-direct-item{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .65s ease,transform .75s cubic-bezier(.2,.8,.2,1);
}
.fx-on-ctaReveal .contact-cta-box.reveal.show .contact-section-kicker{
  opacity:1;
  transform:none;
  transition-delay:.08s;
}
.fx-on-ctaReveal .contact-cta-box.reveal.show .contact-direct-item{
  opacity:1;
  transform:none;
}
.fx-on-ctaReveal .contact-cta-box.reveal.show .contact-direct-item:nth-child(1){transition-delay:.18s}
.fx-on-ctaReveal .contact-cta-box.reveal.show .contact-direct-item:nth-child(2){transition-delay:.24s}
.fx-on-ctaReveal .contact-cta-box.reveal.show .contact-direct-item:nth-child(3){transition-delay:.30s}
.fx-on-ctaReveal .contact-cta-box.reveal.show .contact-direct-item:nth-child(4){transition-delay:.36s}

@media(prefers-reduced-motion:reduce){
  .contact-direct-item,
  .contact-section-kicker{
    transition:none!important;
  }
}

/* ===== V26 BACK TO TOP + WHY US / REVIEWS UX ===== */
.scroll-cue.back-to-top{
  position:fixed ;
  right:clamp(16px,2vw,30px) ;
  bottom:clamp(16px,2vw,28px) ;
  top:auto ;
  left:auto ;
  z-index:1200 !important;
  display:grid ;
  opacity:0 !important;
  visibility:hidden;
  pointer-events:none !important;
  transform:translateY(10px) scale(.94) ;
  animation:none !important;
  transition:
    opacity .28s ease,
    transform .32s cubic-bezier(.2,.8,.2,1),
    visibility 0s linear .32s ;
}
.scroll-cue.back-to-top.is-visible{
  opacity:1 !important;
  visibility:visible;
  pointer-events:auto !important;
  transform:none ;
  transition:
    opacity .28s ease,
    transform .32s cubic-bezier(.2,.8,.2,1),
    visibility 0s ;
}
.scroll-cue.back-to-top:hover{
  transform:translateY(-3px) ;
}
body.contact-open .scroll-cue.back-to-top,
body.reviews-open .scroll-cue.back-to-top{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

@media(prefers-reduced-motion:reduce){
  .scroll-cue.back-to-top{transition:none !important}
}

/* ===== V29 TEACHERS — ORIGINAL CARD LANGUAGE =====
   Reuses the original .cards / .card / .shape geometry and animation. */
body.teacher-open{overflow:hidden}

.teachers-compact-grid .teacher-compact-card{
  cursor:pointer;
  isolation:isolate;
}
.teacher-compact-card .teacher-card-click{
  position:absolute;
  inset:0;
  z-index:6;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}
.teacher-compact-card .num{
  position:relative;
  z-index:3;
  max-width:62%;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.teacher-compact-card h3{
  position:relative;
  z-index:3;
  max-width:62%;
  margin-top:62px;
  font-size:clamp(25px,2vw,30px);
}
.teacher-compact-card p{
  position:relative;
  z-index:3;
  max-width:58%;
  font-size:14px;
}
.teacher-compact-more{
  position:absolute;
  left:28px;
  bottom:26px;
  z-index:3;
  color:var(--blue);
  font-size:11px;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.teacher-compact-portrait{
  position:absolute;
  right:5px;
  bottom:-2px;
  z-index:2;
  width:46%;
  height:76%;
  display:grid;
  place-items:end center;
  pointer-events:none;
}
.teacher-compact-portrait img{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  object-position:center bottom;
  filter:saturate(.92) contrast(1.02);
}
.teacher-compact-card--placeholder .teacher-compact-portrait{
  right:1px;
  width:44%;
  height:72%;
  opacity:.54;
}
.teacher-compact-card--placeholder .teacher-compact-portrait img{
  filter:none;
}

/* Keep the old three-shape rhythm and repeat it for cards 4–6. */
.teachers-compact-grid .teacher-compact-card:nth-child(5) .shape{
  border-radius:50%;
  clip-path:none;
  background:linear-gradient(145deg,#ffe7d0,#f1b77f);
}
.teachers-compact-grid .teacher-compact-card:nth-child(6) .shape{
  clip-path:polygon(50% 0,100% 100%,0 100%);
  border-radius:0;
  background:linear-gradient(145deg,#d8e3f1,#9cb2cd);
}
body[data-theme="dark"] .teachers-compact-grid .teacher-compact-card:nth-child(5) .shape{
  background:linear-gradient(145deg,#6f4a2e,#a76b3c);
}
body[data-theme="dark"] .teachers-compact-grid .teacher-compact-card:nth-child(6) .shape{
  background:linear-gradient(145deg,#263c56,#49627f);
}

/* Existing large profile overlay remains, but stripped to only what it needs. */
.teacher-overlay{
  position:fixed;
  inset:0;
  z-index:4250;
  display:grid;
  place-items:center;
  padding:clamp(12px,2vw,28px);
  background:rgba(5,14,24,.24);
  backdrop-filter:blur(0);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .34s ease,backdrop-filter .42s ease,visibility 0s linear .42s;
}
.teacher-overlay.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  backdrop-filter:blur(13px);
  transition:opacity .34s ease,backdrop-filter .42s ease,visibility 0s;
}
.teacher-dialog{
  position:relative;
  width:min(1420px,94vw);
  height:min(900px,90vh);
  border-radius:36px;
  border:1px solid color-mix(in srgb,var(--line) 130%,transparent);
  background:
    radial-gradient(circle at 88% 9%,color-mix(in srgb,var(--blue2) 14%,transparent),transparent 26%),
    radial-gradient(circle at 8% 90%,color-mix(in srgb,var(--orange) 8%,transparent),transparent 24%),
    var(--bg);
  box-shadow:0 44px 120px rgba(4,18,36,.28);
  overflow:hidden;
  transform:translateY(22px) scale(.96);
  opacity:0;
  transition:transform .55s cubic-bezier(.18,.9,.22,1),opacity .34s ease;
}
.teacher-overlay.is-open .teacher-dialog{transform:none;opacity:1}
.teacher-close{
  position:absolute;
  top:18px;
  right:18px;
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--panel) 88%,transparent);
  color:var(--text);
  cursor:pointer;
  z-index:4;
}
.teacher-close::before,.teacher-close::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:18px;
  height:1.5px;
  background:currentColor;
  border-radius:99px;
}
.teacher-close::before{transform:translate(-50%,-50%) rotate(45deg)}
.teacher-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.teacher-dialog-body{
  height:100%;
  overflow:auto;
  scrollbar-gutter:stable;
}
.teacher-panel{
  display:grid;
  grid-template-columns:minmax(300px,420px) minmax(0,1fr);
  min-height:100%;
}
.teacher-panel-media{
  position:relative;
  padding:30px;
  border-right:1px solid var(--line);
  background:
    radial-gradient(circle at 50% 16%,color-mix(in srgb,var(--blue2) 12%,transparent),transparent 38%),
    linear-gradient(180deg,color-mix(in srgb,var(--panel) 98%,transparent),color-mix(in srgb,var(--bg) 90%,transparent));
}
.teacher-panel-photo{
  display:grid;
  place-items:end center;
  min-height:420px;
  border-radius:28px;
  border:1px solid color-mix(in srgb,var(--line) 92%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 96%,transparent),transparent);
  overflow:hidden;
}
.teacher-panel-photo img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
}
.teacher-panel-photo--placeholder{
  place-items:center;
  padding:18px;
}
.teacher-panel-photo--placeholder img{
  width:min(82%,320px);
  height:auto;
  opacity:.72;
}
.teacher-panel-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}
.teacher-panel-stat{
  min-height:90px;
  padding:16px 14px;
  border:1px solid var(--line);
  border-radius:20px;
  background:color-mix(in srgb,var(--panel) 92%,transparent);
}
.teacher-panel-stat strong{display:block;font-size:28px;line-height:1}
.teacher-panel-stat span{display:block;margin-top:8px;color:var(--muted);font-size:12px;line-height:1.35}
.teacher-panel-copy{padding:38px 38px 44px}
.teacher-panel-kicker{
  color:var(--blue);
  font-size:12px;
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.teacher-panel-copy h2{
  margin:12px 0 8px;
  font-size:clamp(42px,4vw,64px);
  line-height:.94;
}
.teacher-panel-role{color:var(--muted);font-size:15px;font-weight:700}
.teacher-panel-lead{
  margin:20px 0 0;
  color:var(--text);
  font-size:18px;
  line-height:1.72;
  max-width:820px;
}
.teacher-panel-chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:22px 0 0;
}
.teacher-panel-chips span{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 13px;
  border-radius:999px;
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--panel) 90%,transparent);
  font-size:13px;
  font-weight:700;
}
.teacher-panel-block{margin-top:24px}
.teacher-panel-block h3{margin:0 0 12px;font-size:20px}
.teacher-panel-block p,.teacher-panel-block li{color:var(--muted);line-height:1.72}
.teacher-panel-block ul{margin:0;padding-left:1.1em}

body[data-theme="dark"] .teacher-overlay{background:rgba(1,7,14,.40)}
body[data-theme="dark"] .teacher-dialog{box-shadow:0 48px 130px rgba(0,0,0,.46)}
body.teacher-open .back-to-top{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

@media(prefers-reduced-motion:reduce){
  .teacher-overlay,.teacher-dialog{transition:none!important}
}

/* ===== V32 HERO CONTENT ===== */
.hero .hero-subtitle{
  position:relative;
  z-index:3;
  max-width:680px;
  margin:12px 0 0;
  color:var(--text);
  font-size:clamp(23px,2vw,34px);
  font-weight:720;
  line-height:1.12;
  letter-spacing:-.035em;
}
.hero .hero-subtitle + .hero-wire{
  margin-top:20px;
}

/* ===== V33 PROGRAMS ===== */
body.program-open{overflow:hidden}

.program-step{
  cursor:pointer;
  transition:border-color .25s ease,background-color .25s ease,transform .25s ease;
}
.program-step:hover{
  border-color:rgba(137,183,231,.36);
}
.program-step-content{
  position:relative;
  z-index:2;
}
.program-step-more{
  display:inline-flex;
  margin-top:16px;
  color:#9fc6ee;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.program-step-hit{
  position:absolute;
  inset:0;
  z-index:5;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}

.program-overlay{
  position:fixed;
  inset:0;
  z-index:4300;
  display:grid;
  place-items:center;
  padding:clamp(12px,2vw,28px);
  background:rgba(5,14,24,.28);
  backdrop-filter:blur(0);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .34s ease,backdrop-filter .42s ease,visibility 0s linear .42s;
}
.program-overlay.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  backdrop-filter:blur(13px);
  transition:opacity .34s ease,backdrop-filter .42s ease,visibility 0s;
}
.program-dialog{
  position:relative;
  width:min(1240px,94vw);
  height:min(850px,90vh);
  border-radius:36px;
  border:1px solid var(--line);
  background:
    radial-gradient(circle at 90% 8%,color-mix(in srgb,var(--blue2) 14%,transparent),transparent 28%),
    radial-gradient(circle at 8% 92%,color-mix(in srgb,var(--orange) 7%,transparent),transparent 24%),
    var(--bg);
  box-shadow:0 44px 120px rgba(4,18,36,.30);
  overflow:hidden;
  transform:translateY(22px) scale(.96);
  opacity:0;
  transition:transform .55s cubic-bezier(.18,.9,.22,1),opacity .34s ease;
}
.program-overlay.is-open .program-dialog{
  transform:none;
  opacity:1;
}
.program-close{
  position:absolute;
  top:18px;
  right:18px;
  z-index:4;
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--panel) 90%,transparent);
  color:var(--text);
  cursor:pointer;
}
.program-close::before,.program-close::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:18px;
  height:1.5px;
  border-radius:99px;
  background:currentColor;
}
.program-close::before{transform:translate(-50%,-50%) rotate(45deg)}
.program-close::after{transform:translate(-50%,-50%) rotate(-45deg)}

.program-dialog-body{
  height:100%;
  overflow:auto;
  scrollbar-gutter:stable;
}
.program-panel{
  min-height:100%;
  padding:clamp(30px,5vw,70px);
}
.program-panel-head{
  padding-right:72px;
  max-width:930px;
}
.program-panel-kicker{
  color:var(--blue);
  font-size:12px;
  font-weight:850;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.program-panel h2{
  margin:12px 0 16px;
  max-width:900px;
  font-size:clamp(42px,5vw,72px);
  line-height:.94;
  letter-spacing:-.055em;
}
.program-panel-lead{
  max-width:850px;
  margin:0;
  color:var(--muted);
  font-size:18px;
  line-height:1.7;
}
.program-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:24px 0 0;
}
.program-meta span{
  display:inline-flex;
  min-height:38px;
  align-items:center;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:999px;
  background:color-mix(in srgb,var(--panel) 90%,transparent);
  font-size:13px;
  font-weight:750;
}
.program-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:34px;
}
.program-detail{
  padding:24px;
  border:1px solid var(--line);
  border-radius:24px;
  background:color-mix(in srgb,var(--panel) 88%,transparent);
}
.program-detail h3{
  margin:0 0 12px;
  font-size:20px;
}
.program-detail p,
.program-detail li{
  color:var(--muted);
  line-height:1.66;
}
.program-detail p{margin:0}
.program-detail ul{
  margin:0;
  padding-left:1.15em;
}
.program-detail li + li{margin-top:7px}
.program-contact{
  display:inline-flex;
  margin-top:28px;
}

body[data-theme="dark"] .program-overlay{background:rgba(1,7,14,.42)}
body.program-open .back-to-top{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}


@media(prefers-reduced-motion:reduce){
  .program-overlay,.program-dialog{transition:none!important}
}

/* ===== V34 PROGRAM MODAL THEME FIX ===== */
/* Light theme: explicit palette so the program modal visibly follows the site theme. */
body:not([data-theme="dark"]) .program-overlay{
  background:rgba(25,47,75,.18);
}
body:not([data-theme="dark"]) .program-dialog{
  color:#14263b;
  border-color:rgba(51,87,126,.14);
  background:
    radial-gradient(circle at 90% 8%,rgba(85,148,213,.12),transparent 28%),
    radial-gradient(circle at 8% 92%,rgba(237,151,82,.08),transparent 24%),
    #f7faff;
  box-shadow:0 36px 100px rgba(32,65,103,.18);
}
body:not([data-theme="dark"]) .program-close{
  color:#18314d;
  border-color:rgba(51,87,126,.16);
  background:rgba(255,255,255,.88);
  box-shadow:0 8px 24px rgba(44,76,112,.08);
}
body:not([data-theme="dark"]) .program-panel-kicker{
  color:#3979b8;
}
body:not([data-theme="dark"]) .program-panel-lead,
body:not([data-theme="dark"]) .program-detail p,
body:not([data-theme="dark"]) .program-detail li{
  color:#5b6f86;
}
body:not([data-theme="dark"]) .program-meta span{
  color:#233b55;
  border-color:rgba(51,87,126,.14);
  background:rgba(255,255,255,.82);
}
body:not([data-theme="dark"]) .program-detail{
  color:#18314d;
  border-color:rgba(51,87,126,.13);
  background:rgba(255,255,255,.76);
  box-shadow:0 14px 34px rgba(44,76,112,.055);
}

/* Dark theme: make the counterpart equally explicit. */
body[data-theme="dark"] .program-dialog{
  color:#edf5ff;
  border-color:rgba(166,199,233,.12);
  background:
    radial-gradient(circle at 90% 8%,rgba(66,128,191,.16),transparent 28%),
    radial-gradient(circle at 8% 92%,rgba(181,104,50,.08),transparent 24%),
    #07111f;
}
body[data-theme="dark"] .program-close{
  color:#edf5ff;
  border-color:rgba(166,199,233,.14);
  background:rgba(15,34,56,.88);
}
body[data-theme="dark"] .program-panel-kicker{
  color:#8fc0f1;
}
body[data-theme="dark"] .program-panel-lead,
body[data-theme="dark"] .program-detail p,
body[data-theme="dark"] .program-detail li{
  color:#a9bad0;
}
body[data-theme="dark"] .program-meta span,
body[data-theme="dark"] .program-detail{
  color:#edf5ff;
  border-color:rgba(166,199,233,.11);
  background:rgba(13,30,50,.74);
}

/* ===== V35 PROGRAM CARDS — LIGHT THEME ===== */
body:not([data-theme="dark"]) #story .step{
  color:#17314d;
  border-color:rgba(63,104,146,.18);
  background:
    radial-gradient(circle at 88% 12%,rgba(88,151,216,.11),transparent 30%),
    linear-gradient(155deg,#edf4fb 0%,#e6eff8 56%,#dce9f5 100%);
  box-shadow:
    0 20px 52px rgba(45,83,122,.10),
    inset 0 1px 0 rgba(255,255,255,.74);
}
body:not([data-theme="dark"]) #story .step::before{
  opacity:.34;
}
body:not([data-theme="dark"]) #story .step .step-label{
  color:#4f7fae;
}
body:not([data-theme="dark"]) #story .step h3{
  color:#17314d;
}
body:not([data-theme="dark"]) #story .step p{
  color:#577089;
}
body:not([data-theme="dark"]) #story .program-step-more{
  color:#2f6fae;
}
body:not([data-theme="dark"]) #story .lineart{
  color:#6e9bc8;
  opacity:.54;
}
body:not([data-theme="dark"]) #story .step:hover{
  border-color:rgba(57,118,181,.28);
  background:
    radial-gradient(circle at 88% 12%,rgba(88,151,216,.15),transparent 31%),
    linear-gradient(155deg,#f2f7fc 0%,#e9f2fa 56%,#deebf6 100%);
  box-shadow:
    0 24px 60px rgba(45,83,122,.13),
    inset 0 1px 0 rgba(255,255,255,.82);
}

/* Preserve the current dark-theme cards exactly as the visual counterpoint. */
body[data-theme="dark"] #story .step{
  color:#eef6ff;
}

/* ===== V38 WEB3FORMS AJAX STATUS ===== */
.contact-result{
  min-height:19px;
  transition:color .2s ease,opacity .2s ease;
}
.contact-result.is-sending{color:var(--blue)}
.contact-result.is-success{color:#2f8a61}
.contact-result.is-error{color:#b34c50}
.contact-submit:disabled{
  cursor:wait;
  opacity:.72;
  transform:none ;
}

/* ===== V40 HERO SPACING PATCH ===== */
/* The desktop hero composition sat too low, leaving excessive empty space below the header. */

