/* FSA motion identity v2 - "the neural signal"
   Everything transform/opacity only. Gated for reduced-motion + touch. */

/* ---------- scroll progress bar ---------- */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:100%;z-index:60;pointer-events:none;
  background:linear-gradient(90deg,var(--orange),var(--blue));
  transform-origin:0 50%;transform:scaleX(0);
}
[dir="rtl"] .scroll-progress{transform-origin:100% 50%}

/* ---------- word-split headline reveal ---------- */
.wsplit .w{
  display:inline-block;opacity:0;transform:translateY(0.6em) rotate(2deg);
  transition:opacity .6s cubic-bezier(.22,.9,.28,1),transform .6s cubic-bezier(.22,.9,.28,1);
  transition-delay:calc(var(--wi)*70ms);
}
.wsplit.in .w{opacity:1;transform:none}

/* ---------- gradient sweep on key text ---------- */
.grad-text{background-size:200% 100%;animation:gradsweep 7s ease-in-out infinite alternate}
@keyframes gradsweep{0%{background-position:0% 50%}100%{background-position:100% 50%}}

/* ---------- eyebrow line draw ---------- */
.eyebrow::before{width:0;transition:width .8s cubic-bezier(.22,.9,.28,1) .15s}
.eyebrow.in::before,.in .eyebrow::before{width:26px}

/* ---------- 3D tilt cards (pointer devices only, JS-driven vars) ---------- */
@media (hover:hover) and (pointer:fine){
  .tiltable{
    transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0));
    transition:transform .18s ease-out;
    will-change:transform;
  }
  .tiltable::before{
    content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;
    background:radial-gradient(320px 200px at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.35),transparent 65%);
    opacity:0;transition:opacity .25s;mix-blend-mode:soft-light;
  }
  .tiltable:hover::before{opacity:1}
}

/* ---------- ken burns on media ---------- */
.kb img{transform:scale(1.001);transition:transform 12s linear}
.kb.in img{transform:scale(1.07)}

/* ---------- magnetic buttons ---------- */
@media (hover:hover) and (pointer:fine){
  .btn-primary{transition:transform .18s ease-out,box-shadow .28s}
}

/* ---------- synapse divider ---------- */
.synapse{display:block;max-width:1180px;margin:0 auto;padding-inline:var(--pad);height:60px}
.synapse svg{width:100%;height:100%;overflow:visible}
.synapse .line{
  fill:none;stroke:url(#syngrad);stroke-width:2;stroke-linecap:round;
  stroke-dasharray:1000;stroke-dashoffset:1000;
}
.synapse.in .line{animation:syndraw 1.6s cubic-bezier(.22,.9,.28,1) forwards}
@keyframes syndraw{to{stroke-dashoffset:0}}
.synapse .node{fill:var(--orange);opacity:0;transition:opacity .4s ease .9s}
.synapse.in .node{opacity:1}
.synapse .pulse2{fill:#fff;opacity:0}
.synapse.in .pulse2{animation:synpulse 3.2s linear 1.4s infinite}
@keyframes synpulse{
  0%{opacity:0;transform:translateX(0)}
  8%{opacity:.9}
  92%{opacity:.9}
  100%{opacity:0;transform:translateX(var(--pw,1080px))}
}
[dir="rtl"] .synapse .pulse2{animation-name:synpulse-rtl}
@keyframes synpulse-rtl{
  0%{opacity:0;transform:translateX(0)}
  8%{opacity:.9}
  92%{opacity:.9}
  100%{opacity:0;transform:translateX(calc(var(--pw,1080px)*-1))}
}

/* ---------- hero collage parallax depth ---------- */
@media (hover:hover) and (pointer:fine){
  .hero-collage figure{will-change:transform}
}

/* ---------- reveal upgrade: soft blur-in ---------- */
.reveal{filter:blur(6px)}
.reveal.in{filter:blur(0);transition:opacity .7s var(--ease),transform .7s var(--ease),filter .7s var(--ease)}

/* ---------- view transitions (progressive) ---------- */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .28s ease both}
::view-transition-new(root){animation:vt-in .34s ease both}
@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}

/* ---------- staircase hero lines (Tresmares-style) - desktop only ---------- */
.stair{display:block}
@media (min-width:901px){
  .stair:nth-child(2){padding-inline-start:clamp(40px,6vw,110px)}
  .stair:nth-child(3){padding-inline-start:clamp(90px,12vw,210px)}
}

/* ---------- scroll hint ---------- */
.scroll-hint{
  position:absolute;bottom:26px;inset-inline-start:var(--pad);
  display:flex;align-items:center;gap:12px;color:var(--muted);
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
}
.scroll-hint::after{
  content:"";width:1.5px;height:44px;background:linear-gradient(var(--orange),transparent);
  animation:hintdrop 1.8s ease-in-out infinite;transform-origin:top;
}
@keyframes hintdrop{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
@media (max-width:900px){.scroll-hint{display:none}}

/* ---------- hero watermark (faint brand mark emerging behind) ---------- */
.hero-watermark{
  position:absolute;inset-inline-end:-8%;top:-4%;width:min(58vw,760px);aspect-ratio:1;
  pointer-events:none;z-index:-1;opacity:.05;
  will-change:transform;
}
.hero-watermark img{width:100%;height:100%;object-fit:contain;filter:grayscale(.2)}
[dir="rtl"] .hero-watermark{inset-inline-end:auto;inset-inline-start:-8%}

/* ---------- hero exit fade (content recedes as you scroll away) ---------- */
.hero-fade{will-change:transform,opacity}

/* ---------- neural orb: the site's signature object ---------- */
.orb-wrap{
  position:absolute;inset-inline-end:-70px;top:-60px;width:340px;height:340px;
  pointer-events:none;z-index:0;opacity:.9;
}
@media (max-width:900px){.orb-wrap{width:210px;height:210px;inset-inline-end:-8px;top:-52px;opacity:.85}}
.orb{
  position:absolute;inset:0;transform-style:preserve-3d;
  transform:rotateX(var(--ox,-12deg)) rotateY(var(--oy,0deg));
  animation:orbspin 36s linear infinite;
}
@keyframes orbspin{from{transform:rotateX(var(--ox,-12deg)) rotateY(0)}to{transform:rotateX(var(--ox,-12deg)) rotateY(360deg)}}
.orb i{
  position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#fff,var(--orange) 55%,transparent 75%);
  box-shadow:0 0 10px rgba(229,116,54,.8);
  transform:rotateY(var(--a)) rotateX(var(--b)) translateZ(var(--r,150px));
}
.orb i:nth-child(3n){background:radial-gradient(circle at 35% 35%,#fff,var(--blue) 55%,transparent 75%);box-shadow:0 0 10px rgba(62,147,201,.8)}
.orb i:nth-child(5n){width:5px;height:5px;margin:-2.5px;opacity:.75}
.orb .ring{
  position:absolute;inset:12%;border-radius:50%;border:1px dashed rgba(62,147,201,.35);
  transform:rotateX(72deg);
}
.orb .ring.r2{inset:2%;border-color:rgba(229,116,54,.28);transform:rotateX(66deg) rotateY(30deg)}
.orb-core{
  position:absolute;left:50%;top:50%;width:60px;height:60px;margin:-30px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.9),rgba(240,146,94,.55) 45%,rgba(62,147,201,.25) 75%,transparent);
  filter:blur(1px);
  animation:corepulse 4.2s ease-in-out infinite;
}
@keyframes corepulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.16);opacity:1}}

/* ---------- giant type band (SOHub-style closing statement) ---------- */
.giant-band{overflow:hidden;padding-block:clamp(30px,5vw,60px);border-top:1px solid var(--line)}
.giant-track{display:flex;gap:70px;width:max-content;animation:marquee 40s linear infinite;align-items:baseline}
[dir="rtl"] .giant-track{animation-name:marquee-rtl}
.giant-track span{
  font-family:var(--font-display);font-weight:700;white-space:nowrap;
  font-size:clamp(4rem,11vw,9.5rem);line-height:1;
  color:transparent;-webkit-text-stroke:2px rgba(16,32,58,.16);
}
.giant-track span.solid{
  -webkit-text-stroke:0;
  background:linear-gradient(92deg,var(--orange) 20%,var(--blue) 90%);
  -webkit-background-clip:text;background-clip:text;opacity:.22;
}
@media (prefers-reduced-motion:reduce){.giant-track{animation:none}}

/* ---------- reduced motion: keep the brand alive, drop only vestibular motion ---------- */
@media (prefers-reduced-motion:reduce){
  .orb{animation:orbspin 90s linear infinite}
  .orb-core{animation:corepulse 6s ease-in-out infinite}
  .wsplit .w{opacity:1;transform:none;transition:none}
  .eyebrow::before,.eyebrow.in::before,.in .eyebrow::before{width:26px;transition:none}
  .kb img,.kb.in img{transform:none;transition:none}
  .synapse .line{stroke-dashoffset:0;animation:none}
  .synapse .node{opacity:1;transition:none}
  .synapse .pulse2,.synapse.in .pulse2{animation:none;opacity:0}
  .reveal{filter:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
  .tiltable{transform:none !important}
}

/* ---------- cognitive spotlight ---------- */

.cog-spot{
  --navy:#0e1c33;--orange:#e57436;--orange-soft:#f0925e;--blue:#3e93c9;--blue-soft:#6fb5de;
  position:relative;max-width:1180px;margin-inline:auto;border-radius:26px;overflow:hidden;
  background:
    radial-gradient(700px 380px at 12% -10%,rgba(229,116,54,.28),transparent 60%),
    radial-gradient(600px 340px at 95% 115%,rgba(62,147,201,.30),transparent 60%),
    #0e1c33;
  color:#fff;padding:clamp(34px,5vw,64px);
  border:1px solid rgba(16,32,58,.2);box-shadow:0 26px 70px rgba(16,32,58,.14);
}
/* ambient synapse field */
.cog-spot .field{position:absolute;inset:0;pointer-events:none;opacity:.5}
.cog-spot .field i{position:absolute;width:5px;height:5px;border-radius:50%;background:#6fb5de;filter:blur(1px);animation:drift 14s linear infinite;opacity:.35}
.cog-spot .field i:nth-child(2n){background:#f0925e;animation-duration:18s}
.cog-spot .field i:nth-child(3n){animation-duration:22s;width:3px;height:3px}
@keyframes drift{
  0%{transform:translate(0,0);opacity:0}
  10%{opacity:.4}
  90%{opacity:.4}
  100%{transform:translate(var(--dx,60px),var(--dy,-90px));opacity:0}
}
.cs-head{position:relative;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:end;margin-bottom:30px}
.cs-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--orange-soft)}
.cs-eyebrow::before{content:"";width:26px;height:2px;background:linear-gradient(90deg,var(--orange),transparent)}
.cs-head h2{font-family:Sora,sans-serif;font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.15;margin-top:12px;max-width:560px}
.cs-head h2 em{font-style:normal;background:linear-gradient(92deg,#fff 15%,var(--orange-soft) 60%,#8ec4e8 95%);-webkit-background-clip:text;background-clip:text;color:transparent}
.cs-head p{color:#b9c6d8;max-width:400px;font-size:.95rem}

/* stage tabs */
.cs-tabs{position:relative;display:flex;gap:8px;margin-bottom:26px;flex-wrap:wrap}
.cs-tab{
  padding:11px 22px;border-radius:999px;border:1px solid rgba(255,255,255,.18);cursor:pointer;
  background:rgba(255,255,255,.06);color:#c9d4e4;font:inherit;font-weight:600;font-size:.92rem;
  transition:all .3s cubic-bezier(.22,.9,.28,1);
}
.cs-tab[aria-selected="true"]{background:linear-gradient(135deg,var(--orange),#d05f22);color:#fff;border-color:transparent;box-shadow:0 8px 24px rgba(229,116,54,.4);transform:translateY(-1px)}
.cs-tab:hover{border-color:var(--orange-soft);color:#fff}

/* stage panels */
.cs-panels{position:relative;min-height:300px}
.cs-panel{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .45s cubic-bezier(.22,.9,.28,1),transform .45s cubic-bezier(.22,.9,.28,1)}
.cs-panel.on{position:relative;opacity:1;visibility:visible;transform:none}

/* MEASURE panel: 3-step timeline */
.cs-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cs-step{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:22px;backdrop-filter:blur(8px)}
.cs-step .n{font-family:Sora;font-weight:700;font-size:2rem;background:linear-gradient(135deg,var(--orange-soft),var(--blue-soft));-webkit-background-clip:text;background-clip:text;color:transparent}
.cs-step b{display:block;margin:10px 0 6px}
.cs-step p{color:#b9c6d8;font-size:.88rem}

/* TRAIN panel: flowchart */
.cs-flow{display:grid;grid-template-columns:auto 1fr auto 1fr auto;gap:12px;align-items:center}
.cs-cap{font-family:Sora;font-weight:700;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);white-space:nowrap}
.cs-node{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:16px}
.cs-node h4{font-size:.92rem;margin-bottom:10px;color:#e8eef6}
.cs-chips{display:flex;flex-wrap:wrap;gap:7px}
.cs-chips span{font-size:.78rem;font-weight:600;padding:6px 12px;border-radius:999px;border:1.5px solid;cursor:default;transition:all .25s}
.cs-auto span{border-color:#9ccc65;color:#c5e1a5}
.cs-high span{border-color:#b39ddb;color:#d1c4e9}
.cs-chips span:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.cs-dec{text-align:center;font-size:.78rem;color:#9fb0c6}
.cs-dec b{display:block;font-family:Sora;color:var(--orange-soft);font-size:.9rem}
.cs-flow-arrow{color:var(--orange-soft);font-size:1.3rem;font-weight:700}
.cs-bank{margin-top:12px;border:1.5px solid rgba(111,181,222,.5);background:rgba(62,147,201,.12);border-radius:18px;padding:14px 18px;font-size:.88rem;color:#cfe2f2}
.cs-bank b{color:#fff}
/* traveling pulse */
.cs-flowwrap{position:relative}
.cs-pulse{position:absolute;top:50%;left:0;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 12px 4px rgba(240,146,94,.9);animation:travel 4.5s linear infinite;pointer-events:none}
@keyframes travel{0%{left:2%;opacity:0}6%{opacity:1}46%{left:46%}54%{left:50%}94%{opacity:1}100%{left:97%;opacity:0}}

/* PROVE panel */
.cs-prove{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.cs-stat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:28px;text-align:center}
.cs-stat .v{font-family:Sora;font-weight:700;font-size:clamp(2.4rem,5vw,3.6rem);background:linear-gradient(92deg,#fff 20%,var(--orange-soft) 70%);-webkit-background-clip:text;background-clip:text;color:transparent}
.cs-stat p{color:#b9c6d8;font-size:.9rem;margin-top:8px}
.cs-cite{grid-column:1/-1;text-align:center;color:#8fa2ba;font-size:.82rem}

/* skill nodes row (interactive) */
.cs-skills{position:relative;margin-top:30px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.cs-skills-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.cs-skill{
  position:relative;padding:11px 20px;border-radius:999px;cursor:pointer;font:inherit;font-weight:600;font-size:.88rem;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);color:#c9d4e4;
  transition:all .3s cubic-bezier(.22,.9,.28,1);
}
.cs-skill::after{content:"";position:absolute;inset:-3px;border-radius:999px;border:1px solid transparent;transition:all .3s}
.cs-skill:hover{color:#fff;border-color:var(--blue-soft);transform:translateY(-2px)}
.cs-skill.on{background:linear-gradient(135deg,rgba(229,116,54,.9),rgba(208,95,34,.9));color:#fff;border-color:transparent;box-shadow:0 10px 26px rgba(229,116,54,.45)}
.cs-skill.on::after{border-color:rgba(240,146,94,.5);animation:ringpulse 1.6s ease-out infinite}
@keyframes ringpulse{0%{inset:-3px;opacity:1}100%{inset:-12px;opacity:0}}
.cs-skill-cap{
  margin-top:18px;text-align:center;color:#d7e0ec;font-size:.95rem;min-height:26px;
  transition:opacity .3s;max-width:640px;margin-inline:auto;
}
.cs-cta{display:flex;justify-content:center;margin-top:26px}
.cs-cta a{
  display:inline-flex;align-items:center;gap:10px;padding:14px 30px;border-radius:999px;text-decoration:none;
  background:linear-gradient(135deg,var(--orange),#d05f22);color:#fff;font-weight:600;
  box-shadow:0 10px 30px rgba(229,116,54,.4);transition:transform .25s;
}
.cs-cta a:hover{transform:translateY(-2px)}

@media (max-width:900px){
  .cs-steps{grid-template-columns:1fr}
  .cs-flow{grid-template-columns:1fr}
  .cs-flow-arrow{transform:rotate(90deg);justify-self:center}
  .cs-cap{justify-self:center}
  .cs-prove{grid-template-columns:1fr}
  .cs-pulse{display:none}
}
@media (prefers-reduced-motion:reduce){
  .cs-pulse,.cog-spot .field i{animation:none;display:none}
  .cs-skill.on::after{animation:none}
  .cs-panel{transition:none}
}

.hero{position:relative;overflow-x:clip}

/* ---------- cognitive brain constellation ---------- */
.brain-spot{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  background:radial-gradient(800px 420px at 12% -12%,rgba(229,116,54,.26),transparent 60%),radial-gradient(700px 380px at 95% 118%,rgba(62,147,201,.3),transparent 60%),#0b1830;
  color:#fff;padding:clamp(30px,4vw,54px);box-shadow:var(--shadow-lg);border:1px solid rgba(16,32,58,.2)
}
.brain-top{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:end;position:relative;z-index:3}
.brain-top .cs-eyebrow{color:var(--orange-soft)}
.brain-top h2{color:#fff;font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.12;margin-top:12px;max-width:600px}
.brain-top h2 em{font-style:normal;background:linear-gradient(92deg,#fff 15%,var(--orange-soft) 60%,#8ec4e8 95%);-webkit-background-clip:text;background-clip:text;color:transparent}
.brain-top p{color:#b9c6d8;max-width:340px;font-size:.95rem}
.brain-stage{position:relative;height:clamp(340px,50vw,520px);margin:22px 0 6px}
#brain-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:pan-y}
.brain-cap{position:relative;z-index:3;color:#d7e0ec;font-size:1rem;max-width:640px;min-height:52px;transition:opacity .3s;line-height:1.6}
.brain-cap b{color:#fff}
.brain-skills{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}
.bs{padding:10px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);color:#c9d4e4;font-weight:600;font-size:.86rem;cursor:pointer;transition:.25s}
.bs:hover{color:#fff;border-color:var(--blue-soft);transform:translateY(-2px)}
.bs.on{background:linear-gradient(135deg,var(--orange),#d05f22);color:#fff;border-color:transparent;box-shadow:0 8px 22px rgba(229,116,54,.4)}
.brain-foot{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:26px}
.brain-mini{display:flex;gap:10px;flex-wrap:wrap;color:#b9c6d8;font-size:.85rem;font-weight:600}
.brain-mini span{display:inline-flex;align-items:center;gap:7px}
.brain-mini b{color:var(--orange-soft)}
.brain-cta a{display:inline-flex;gap:10px;align-items:center;padding:13px 28px;border-radius:999px;background:linear-gradient(135deg,var(--orange),#d05f22);color:#fff;text-decoration:none;font-weight:600;box-shadow:0 10px 30px rgba(229,116,54,.4);transition:transform .25s}
.brain-cta a:hover{transform:translateY(-2px)}
@media (max-width:760px){.brain-top{flex-direction:column;align-items:start}.brain-top p{max-width:none}}

/* ---------- branded video play button ---------- */
.video-frame{position:relative}
.vplay{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  width:84px;height:84px;border-radius:50%;border:0;cursor:pointer;color:#fff;
  background:linear-gradient(135deg,var(--orange),#d05f22);
  box-shadow:0 14px 40px rgba(229,116,54,.5),0 0 0 10px rgba(255,255,255,.15);
  display:grid;place-items:center;transition:transform .25s var(--ease),box-shadow .25s;
}
.vplay:hover{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 18px 50px rgba(229,116,54,.6),0 0 0 14px rgba(255,255,255,.18)}
.vplay svg{margin-inline-start:4px}
@media (prefers-reduced-motion:reduce){.vplay:hover{transform:translate(-50%,-50%)}}

/* ---------- full-bleed brain section ---------- */
.brain-full-wrap{padding:0 !important}
.brain-full{
  border-radius:0;border:none;box-shadow:none;
  min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding-block:clamp(48px,7vh,84px);
  padding-inline:max(calc((100vw - 1180px)/2 + var(--pad)),var(--pad));
}
@media (max-width:900px){.brain-full{min-height:auto}}

/* ---------- cluster cards with photos ---------- */
.cluster .card-img{margin:-6px -6px 4px}

/* ---------- editorial service index (About) ---------- */
.svc-index{border-top:1px solid var(--line-strong)}
.svc-row{
  position:relative;display:grid;grid-template-columns:auto 1fr 1.1fr auto;gap:clamp(16px,3vw,44px);
  align-items:center;padding:clamp(26px,4vw,44px) 4px;border-bottom:1px solid var(--line-strong);
  transition:background .3s,padding-inline .35s var(--ease);
}
.svc-row:hover{background:linear-gradient(90deg,rgba(229,116,54,.05),rgba(62,147,201,.05));padding-inline:18px}
.svc-num{
  font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,3.6rem);line-height:1;
  color:transparent;-webkit-text-stroke:1.5px rgba(16,32,58,.25);transition:.35s;
}
.svc-row:hover .svc-num{
  -webkit-text-stroke:0;
  background:linear-gradient(135deg,var(--orange),var(--blue));-webkit-background-clip:text;background-clip:text;
}
.svc-row h3{font-size:clamp(1.25rem,2.6vw,1.9rem);letter-spacing:-.01em}
.svc-row p{color:var(--muted);font-size:.95rem;max-width:52ch}
.svc-arrow{
  width:52px;height:52px;border-radius:50%;border:1.5px solid var(--line-strong);
  display:grid;place-items:center;font-size:1.25rem;color:var(--muted);
  transition:.35s var(--ease);flex:none;
}
.svc-row:hover .svc-arrow{background:linear-gradient(135deg,var(--orange),#d05f22);border-color:transparent;color:#fff;transform:rotate(-45deg)}
[dir="rtl"] .svc-row:hover .svc-arrow{transform:rotate(225deg)}
@media (max-width:820px){
  .svc-row{grid-template-columns:auto 1fr auto;grid-template-areas:"num title arrow" "num desc arrow"}
  .svc-num{grid-area:num}.svc-row h3{grid-area:title}.svc-row p{grid-area:desc;margin-top:6px}.svc-arrow{grid-area:arrow;width:44px;height:44px}
}

/* ---------- section-level read-more folds ---------- */
details.fold{margin-top:18px}
details.fold>summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:10px;
  font-weight:600;font-size:.95rem;color:var(--orange-deep);
  padding:12px 22px;border:1.5px solid rgba(229,116,54,.35);border-radius:999px;
  transition:.25s;user-select:none;
}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::after{content:"+";font-size:1.2rem;line-height:1;transition:transform .3s var(--ease)}
details.fold[open]>summary::after{transform:rotate(45deg)}
details.fold>summary:hover{background:rgba(229,116,54,.08)}
details.fold[open]>summary{margin-bottom:18px}

/* ---------- inline text read-more ---------- */
details.rm>summary{
  list-style:none;cursor:pointer;color:var(--orange-deep);font-weight:600;font-size:.92rem;
  display:inline-block;margin-top:6px;border-bottom:1.5px solid rgba(229,116,54,.4);user-select:none;
}
details.rm>summary::-webkit-details-marker{display:none}
details.rm[open]>summary{display:none}

/* ---------- condition card with integrated read-more ---------- */
.cond-card details>summary{
  list-style:none;cursor:pointer;color:var(--orange-deep);font-weight:600;font-size:.9rem;
  display:inline-flex;align-items:center;gap:6px;margin-top:12px;user-select:none;
}
.cond-card details>summary::-webkit-details-marker{display:none}
.cond-card details>summary::after{content:"+";font-size:1.1rem;transition:transform .3s var(--ease)}
.cond-card details[open]>summary::after{transform:rotate(45deg)}
.cond-card details .a{padding-top:12px;color:var(--muted);font-size:.93rem}

/* ============================================================
   LEARNING MODEL - visual neural pipeline (cognitive page)
   ============================================================ */
.lm{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  background:radial-gradient(760px 400px at 8% -12%,rgba(229,116,54,.24),transparent 60%),radial-gradient(680px 360px at 98% 120%,rgba(62,147,201,.28),transparent 60%),#0b1830;
  color:#fff;padding:clamp(24px,3.6vw,48px);box-shadow:var(--shadow-lg);border:1px solid rgba(16,32,58,.2);
}
.lm-flow{display:flex;align-items:stretch;gap:8px}
.lm-stage{
  flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:20px 14px;
}
.lm-stage.lm-wide{flex:1.55}
.lm-orb{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;color:#fff;flex:0 0 auto;box-shadow:0 10px 26px rgba(0,0,0,.35)}
.lm-orb svg{width:29px;height:29px}
.lm-in{background:linear-gradient(135deg,#4aa0d4,#2a6e9c)}
.lm-auto{background:linear-gradient(135deg,#f0925e,#d05f22)}
.lm-high{background:linear-gradient(135deg,#8ec4e8,#3e93c9)}
.lm-out{background:linear-gradient(135deg,#5ec27a,#2f9a53)}
.lm-vault{background:linear-gradient(135deg,#d3ac53,#a17c30)}
.lm-txt b{display:block;font-family:var(--font-display);font-size:.98rem;color:#fff;line-height:1.15}
.lm-txt span{color:#aebccf;font-size:.82rem}
.lm-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}
.lm-chips span{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:5px 10px;font-size:.72rem;color:#dbe4ef;font-weight:600}
.lm-arrow{display:flex;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;padding:0 2px}
.lm-arrow i{width:8px;height:8px;border-top:2px solid var(--orange-soft);border-right:2px solid var(--orange-soft);transform:rotate(45deg);opacity:.3;animation:lmchev 1.5s var(--ease) infinite}
.lm-arrow i:nth-child(2){animation-delay:.16s}
.lm-arrow i:nth-child(3){animation-delay:.32s}
@keyframes lmchev{0%,100%{opacity:.22}50%{opacity:1}}
.lm-dec{flex-direction:column;justify-content:center;gap:0}
.lm-dec i{display:none}
.lm-dec em{font-style:normal;display:grid;place-items:center;text-align:center;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#0b1830;background:linear-gradient(135deg,#f0925e,#d05f22);padding:9px 8px;border-radius:12px;line-height:1.2;max-width:76px;box-shadow:0 8px 20px rgba(229,116,54,.4)}
.lm-bank{display:flex;align-items:center;gap:16px;margin-top:14px;background:linear-gradient(100deg,rgba(211,172,83,.15),rgba(255,255,255,.04));border:1px solid rgba(211,172,83,.3);border-radius:18px;padding:15px 20px}
.lm-bank .lm-orb{width:46px;height:46px;border-radius:14px}
.lm-bank .lm-orb svg{width:24px;height:24px}
.lm-bank-txt b{display:block;font-family:var(--font-display);color:#fff;margin-bottom:2px}
.lm-bank-txt span{color:#bcc9db;font-size:.9rem}
.lm-foot{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:18px;color:#8fa2ba;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;flex-wrap:wrap;text-align:center}
.lm-foot b{color:var(--orange-soft);font-size:1.15rem}
.lm-rm{margin-top:14px}
.lm-rm>summary{color:var(--orange-soft);border-bottom-color:rgba(240,146,94,.5)}
.lm-rm .lede{color:#c4d0e0}
[dir=rtl] .lm-arrow i{transform:rotate(225deg)}
[dir=rtl] .lm-foot b{display:inline-block;transform:scaleX(-1)}

/* ============================================================
   HORIZONTAL SLIDER - measure / understand / rewire
   Default is native swipe (safe). JS adds .is-pinned to enhance.
   ============================================================ */
.hscroll{position:relative}
.hscroll-head{margin-bottom:10px}
.hscroll-bar{display:none;height:3px;background:rgba(16,32,58,.1);border-radius:2px;margin-top:22px;max-width:340px;overflow:hidden}
.hscroll.is-pinned .hscroll-bar{display:block}
.hscroll-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--orange-deep),var(--orange-soft));border-radius:2px;transform:scaleX(.34);transform-origin:left}
.hscroll-pin{overflow:hidden}
.hscroll-track{
  display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding-inline:max(calc((100vw - 1180px)/2 + var(--pad)),var(--pad));padding-block:10px 16px;
}
.hscroll-track::-webkit-scrollbar{display:none}
.hslide{
  flex:0 0 auto;width:min(86vw,560px);scroll-snap-align:center;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:clamp(20px,2.4vw,34px);
}
.hslide-media{border-radius:18px;overflow:hidden;aspect-ratio:16/10;box-shadow:var(--shadow-sm);margin-bottom:18px}
.hslide-media img{width:100%;height:100%;object-fit:cover}
.hslide-body{min-width:0}
.hslide-num{font-family:var(--font-display);font-size:2.3rem;font-weight:700;color:rgba(200,94,32,.24);line-height:1;display:block}
.hslide-body .eyebrow{margin-top:4px}
.hslide-body h3{font-family:var(--font-display);font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1.14;margin:8px 0 12px}
.hslide-body>p{color:var(--muted);font-size:.95rem;line-height:1.6}
.hslide-steps{list-style:none;margin-top:18px;display:flex;flex-direction:column;gap:12px}
.hslide-steps li{display:flex;gap:12px;align-items:flex-start}
.hslide-steps li>span{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--orange-deep),var(--orange-soft));color:#fff;font-weight:700;font-size:.82rem;display:grid;place-items:center}
.hslide-steps b{display:block;font-family:var(--font-display);font-size:.92rem}
.hslide-steps em{font-style:normal;color:var(--muted);font-size:.85rem;line-height:1.5}
.hslide-more{margin-top:16px}
.hslide-scroll{max-height:min(40vh,320px);overflow-y:auto;padding-inline-end:8px;margin-top:10px}
.svc-list{list-style:none;display:flex;flex-direction:column;gap:12px}
.svc-list li{font-size:.85rem;color:var(--muted);line-height:1.5}
.svc-list li b{display:block;color:var(--text);font-family:var(--font-display);font-size:.9rem;margin-bottom:2px}
.svc-sub{display:block;font-family:var(--font-display);margin:16px 0 8px;color:var(--text)}
.hslide-stat{margin-top:18px;background:linear-gradient(120deg,rgba(200,94,32,.08),rgba(62,147,201,.08));border:1px solid var(--line);border-radius:18px;padding:18px}
.hslide-stat-nums{display:flex;gap:26px;margin-bottom:10px}
.hslide-stat-nums b{font-family:var(--font-display);font-size:1.75rem;color:var(--orange-deep);display:block;line-height:1}
.hslide-stat-nums em{font-style:normal;color:var(--muted);font-size:.76rem}
.hslide-stat>p{color:var(--muted);font-size:.89rem;line-height:1.55}
.hslide-src{color:var(--muted);font-size:.75rem;opacity:.8;margin-top:6px;display:block}
.hscroll.is-pinned .hscroll-pin{position:sticky;top:0;height:100vh;display:flex;align-items:center}
.hscroll.is-pinned .hscroll-track{overflow:visible;scroll-snap-type:none;will-change:transform;padding-block:0}
.hscroll.is-pinned .hslide{
  width:min(78vw,1000px);display:grid;grid-template-columns:0.92fr 1.08fr;gap:clamp(22px,3vw,44px);align-items:center;
}
.hscroll.is-pinned .hslide-media{margin-bottom:0;aspect-ratio:4/3}

/* ============================================================
   SECTION FOLD - fully collapsed section (Discover Whom We Help)
   ============================================================ */
.section-fold{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.section-fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:clamp(22px,3vw,34px);user-select:none;transition:background .3s}
.section-fold>summary::-webkit-details-marker{display:none}
.section-fold>summary:hover{background:rgba(200,94,32,.03)}
.sf-head{display:flex;flex-direction:column;gap:6px;min-width:0}
.sf-head .eyebrow{margin:0}
.sf-title{font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,2rem);font-weight:700;color:var(--text);line-height:1.1}
.sf-hint{color:var(--muted);font-size:.9rem}
.sf-plus{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);position:relative;transition:.3s var(--ease)}
.sf-plus::before,.sf-plus::after{content:"";position:absolute;background:var(--orange-deep);border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%)}
.sf-plus::before{width:16px;height:2px}
.sf-plus::after{width:2px;height:16px;transition:transform .3s var(--ease)}
.section-fold[open]>summary .sf-plus{background:var(--orange-deep);border-color:var(--orange-deep)}
.section-fold[open]>summary .sf-plus::before,.section-fold[open]>summary .sf-plus::after{background:#fff}
.section-fold[open]>summary .sf-plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.sf-body{padding:0 clamp(22px,3vw,34px) clamp(26px,3vw,36px)}

/* ---------- responsive: learning model + slider stack ---------- */
@media (max-width:820px){
  .lm-flow{flex-direction:column}
  .lm-stage{width:100%}
  .lm-arrow{padding:2px 0}
  .lm-arrow i{transform:rotate(135deg)}
  [dir=rtl] .lm-arrow i{transform:rotate(135deg)}
  .lm-dec em{max-width:none;width:auto;padding:8px 16px}
}
@media (max-width:720px){
  .hscroll.is-pinned .hslide{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .lm-arrow i{animation:none;opacity:.6}
}

/* ============================================================
   LEARNING MODEL full-bleed band + merged skill cards (v21)
   ============================================================ */
.lm-band{
  background:radial-gradient(900px 520px at 8% -12%,rgba(229,116,54,.2),transparent 60%),radial-gradient(820px 480px at 98% 118%,rgba(62,147,201,.24),transparent 60%),#0b1830;
  color:#fff;margin-block:clamp(30px,5vh,64px);
  padding-block:clamp(54px,8vh,104px);
  padding-inline:max(calc((100vw - 1120px)/2),var(--pad));
}
.lm-band-inner{max-width:1120px;margin-inline:auto}
.lm-band .section-head{margin-bottom:clamp(30px,4.5vh,48px)}
.lm-band .section-head h2{color:#fff}
.lm-band .section-head .eyebrow{color:var(--orange-soft)}
.lm-band .lm{background:none;border:none;box-shadow:none;padding:0;border-radius:0}
/* polished spacing inside the diagram */
.lm-flow{gap:12px}
.lm-orb{width:64px;height:64px;border-radius:19px}
.lm-orb svg{width:32px;height:32px}
.lm-stage{gap:14px;padding:24px 16px}
.lm-chips span{font-size:.74rem;padding:5px 11px}
.lm-bank{margin-top:18px;padding:18px 22px}
.lm-foot{margin-top:22px;font-size:.8rem}
@media (max-width:820px){ .lm-orb{width:56px;height:56px} }

/* merged skill card: definition + where-it-shows-up */
.skill{display:flex;flex-direction:column}
.skill p{margin-bottom:2px}
.skill-use{display:block;margin-top:auto;padding-top:13px;margin-top:14px;border-top:1px solid var(--line);font-size:.83rem;color:var(--muted);line-height:1.5}
.skill-use em{display:block;font-style:normal;font-weight:700;color:var(--orange-deep);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
