/* Boud home — design system v3
   One grid, one section header, one accent. Light page is light everywhere, dark page is dark everywhere.
   Order: tokens → base → chrome → hero → sections (services, products, process, work, about, contact) → footer → motion → responsive */

/* ============ tokens ============
   Roles: purple = structure (nav, links, lines, marks) · lime = action (primary buttons) · orange = small highlights · plum = depth (icon chips, accents) · neutrals = surfaces and text */
:root{
  --bg:var(--g5);--bg-2:var(--g6);--surface:#FFFFFF;
  --ink:var(--n5);--muted:var(--n3);--line:rgba(35,31,32,.10);--line-2:rgba(35,31,32,.20);
  --lime:var(--p5);--on-lime:#FFFFFF;                 /* purple fills (active nav, steps, hover states) */
  --cta:var(--l5);--cta-text:var(--o6);--on-cta:var(--n5);--cta-h:#EBFAA1;--cta-glow:rgba(187,212,63,.6); /* primary buttons: brand lime, bright */
  --accent:var(--p6);--focus:var(--p5);
  --chip-bg:var(--m5);--chip-fg:var(--m05);
  --glass:rgba(244,244,244,.82);
  --shadow:0 1px 2px rgba(35,31,32,.05),0 24px 48px -28px rgba(35,31,32,.26);
  --mkA:linear-gradient(150deg,rgba(94,86,222,.88) 0%,rgba(94,86,222,.32) 56%,rgba(94,86,222,0) 94%);
  --mkB:rgba(35,31,32,.055);--halo:rgba(94,86,222,.16);--bgmk:var(--p5);--bgmk-o:.09;--bgmk2:var(--m5);
  --ai-bg:linear-gradient(140deg,var(--p05) 0%,#F7F6FD 50%,#FFFFFF 100%);--ai-line:rgba(94,86,222,.22);
  --cc-bg:radial-gradient(70% 70% at 82% 64%,rgba(228,106,23,.42),transparent 62%),radial-gradient(65% 75% at 10% 8%,rgba(94,86,222,.36),transparent 62%),radial-gradient(60% 60% at 40% 100%,rgba(136,63,104,.28),transparent 60%),#F7F5FB;--cc-ink:var(--n5);--cc-soc:rgba(35,31,32,.08);--cc-line:rgba(35,31,32,.16);
  --word:linear-gradient(to bottom,rgba(94,86,222,.28),rgba(94,86,222,0) 78%);
  --wrap:1160px;--gut:clamp(20px,min(3.6vw,51.84px),36px);
  --ease:cubic-bezier(.22,1,.36,1);--ease-io:cubic-bezier(.65,0,.35,1);
  --mark:url("../images/hero-mark.svg");--wordmark:url("../images/boud-logo.svg");--latin:url("../images/Group-2106257519-1.svg");
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:var(--n7);--bg-2:var(--n6);--surface:var(--n5);
  --ink:var(--g5);--muted:var(--n0);--line:rgba(255,255,255,.09);--line-2:rgba(255,255,255,.18);
  --accent:var(--p3);--focus:var(--p3);--cta-text:var(--o4);
  --chip-bg:var(--m6);--chip-fg:var(--m05);
  --glass:rgba(21,19,19,.82);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 24px 48px -28px rgba(0,0,0,.75);
  --mkA:linear-gradient(150deg,rgba(94,86,222,.95) 0%,rgba(94,86,222,.34) 54%,rgba(94,86,222,0) 94%);
  --mkB:rgba(255,255,255,.05);--halo:rgba(94,86,222,.24);--bgmk:var(--p5);--bgmk-o:.30;--bgmk2:var(--m5);
  --ai-bg:radial-gradient(120% 90% at 100% 0%,rgba(94,86,222,.18),transparent 60%),var(--n6);--ai-line:rgba(158,152,235,.22);
  --cc-bg:radial-gradient(70% 70% at 82% 62%,rgba(228,106,23,.46),transparent 60%),radial-gradient(60% 60% at 12% 8%,rgba(94,86,222,.36),transparent 60%),var(--n5);--cc-ink:var(--g5);--cc-soc:rgba(255,255,255,.09);--cc-line:rgba(255,255,255,.16);
  --word:linear-gradient(to bottom,rgba(94,86,222,.30),rgba(94,86,222,0) 78%);
  color-scheme:dark;
}

/* ============ base ============ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"IBM Plex Sans","IBM Plex Sans Arabic",system-ui,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .4s,color .4s}
html[lang="ar"] body{font-family:"IBM Plex Sans Arabic","IBM Plex Sans",system-ui,sans-serif}
h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0;padding:0}
ul,ol{list-style:none}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
bdi{unicode-bidi:isolate}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}
.wrap{width:100%;max-width:calc(var(--wrap) + var(--gut)*2);margin:0 auto;padding:0 var(--gut)}
.skip{position:fixed;inset-inline-start:16px;top:-80px;z-index:400;padding:12px 18px;border-radius:12px;background:var(--lime);color:var(--on-lime);font-weight:600;transition:top .2s}
.skip:focus{top:16px}
.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}
.l-dark{display:none!important}
:root[data-theme="dark"] .l-dark{display:block!important}
:root[data-theme="dark"] .l-light{display:none!important}
.mk{position:absolute;display:block;pointer-events:none;aspect-ratio:1439/1109;background:currentColor;-webkit-mask:var(--mark) center/contain no-repeat;mask:var(--mark) center/contain no-repeat}
.logo{display:block;height:26px;aspect-ratio:2312/983;background:currentColor;-webkit-mask:var(--wordmark) center/contain no-repeat;mask:var(--wordmark) center/contain no-repeat}

/* ============ intro + progress ============ */
.intro{position:fixed;inset:0;z-index:300;display:grid;place-items:center;align-content:center;gap:26px;background:var(--bg);transition:transform .9s var(--ease-io);animation:introOut .6s ease 5s forwards}
.intro.is-done{transform:translateY(-100%)}
.intro.is-gone{display:none}
.intro__mark{display:block;width:104px;aspect-ratio:1439/1109;background:var(--ink);-webkit-mask:var(--mark) center/contain no-repeat;mask:var(--mark) center/contain no-repeat;clip-path:inset(0 100% 0 0);animation:introMark 1s var(--ease-io) .1s forwards}
.intro__line{display:block;width:0;height:3px;border-radius:3px;background:var(--lime);box-shadow:0 0 0 1px var(--line-2);animation:introLine .7s var(--ease-io) .85s forwards}
@keyframes introMark{to{clip-path:inset(0 0 0 0)}}
@keyframes introLine{to{width:132px}}
@keyframes introOut{to{opacity:0;visibility:hidden}}
.progress{position:fixed;inset:0 0 auto 0;z-index:250;height:3px;background:linear-gradient(90deg,var(--accent),var(--lime));transform-origin:0 50%;transform:scaleX(var(--p,0));pointer-events:none}
html[dir="rtl"] .progress{transform-origin:100% 50%}

/* ============ header ============ */
.hdr{position:fixed;inset:0 0 auto 0;z-index:200;color:var(--ink)}
.hdr::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--line);opacity:0;transition:opacity .3s}
.hdr.is-scrolled::before{opacity:1}
.hdr__in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;height:66px;padding:0 clamp(16px,min(3.6vw,51.84px),48px)}
.hdr__brand{display:flex;justify-self:start}
.hdr__nav ul{display:flex;gap:2px;padding:5px;border-radius:999px;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.hdr__nav a{display:block;padding:8px 16px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--muted);white-space:nowrap;transition:color .25s,background .3s var(--ease)}
html[lang="ar"] .hdr__nav a{font-size:15px}
.hdr__nav a:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}
.hdr__nav a.is-active{color:var(--on-lime);background:var(--lime)}
.hdr__end{justify-self:end;display:flex;align-items:center;gap:10px}
.chip{display:inline-flex;align-items:center;justify-content:center;height:36px;min-width:36px;padding:0 13px;border-radius:999px;border:1px solid var(--line-2);background:var(--glass);font-size:13px;font-weight:600;letter-spacing:.04em;transition:background .2s,border-color .2s}
.chip:hover{background:color-mix(in srgb,var(--ink) 9%,var(--bg))}
.chip--ic{padding:0;width:36px}
.chip svg{width:18px;height:18px}
.i-sun{display:none}
:root[data-theme="dark"] .i-sun{display:block}
:root[data-theme="dark"] .i-moon{display:none}
.hdr__burger{display:none;position:relative}
.hdr__burger span{position:absolute;inset-inline-start:11px;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .35s var(--ease),top .35s var(--ease)}
.hdr__burger span:first-child{top:15px}.hdr__burger span:last-child{top:22px}
.menu-open .hdr__burger span:first-child{top:19px;transform:rotate(45deg)}
.menu-open .hdr__burger span:last-child{top:19px;transform:rotate(-45deg)}

/* ============ buttons / shared ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:44px;padding:0 22px;border-radius:999px;font-size:14.5px;font-weight:600;white-space:nowrap;border:1px solid transparent;transition:background .25s,color .25s,border-color .25s,box-shadow .3s}
.btn svg{width:16px;height:16px;flex:none;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
html[dir="rtl"] .btn svg{transform:scaleX(-1)}
html[dir="rtl"] .btn:hover svg{transform:scaleX(-1) translateX(3px)}
.btn--sm{height:36px;padding:0 16px;font-size:13.5px}
.btn--lg{height:50px;padding:0 26px;font-size:15.5px}
.btn--lime{background:var(--cta);color:var(--on-cta)}
.btn--lime:hover{background:var(--cta-h);box-shadow:0 10px 28px -12px var(--cta-glow)}
.btn--line{border-color:var(--line-2);color:var(--ink)}
.btn--line:hover{background:color-mix(in srgb,var(--ink) 8%,transparent);border-color:var(--ink)}
.btn--ink{background:var(--chip-bg);color:var(--chip-fg)}
.btn--ink:hover{box-shadow:0 10px 28px -14px rgba(0,0,0,.6)}
.ctl{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);color:var(--ink);transition:background .2s}
.ctl:hover{background:color-mix(in srgb,var(--ink) 10%,transparent)}
.ctl svg{width:14px;height:14px}
[aria-pressed="true"] .p1{transform:translateX(1.5px) scaleX(1.5)}
[aria-pressed="true"] .p2{opacity:0}
.tag{display:inline-block;padding:7px 14px;border-radius:999px;background:var(--lime);color:var(--on-lime);font-size:13px;font-weight:600}
.h2{font-size:clamp(30px,min(3.8vw,54.72px),52px);line-height:1.04;font-weight:600;letter-spacing:-.03em;text-wrap:balance}
html[lang="ar"] .h2{letter-spacing:0;line-height:1.3}
.lead{font-size:clamp(16px,min(1.3vw,18.72px),18px);color:var(--muted);max-width:560px}
.sec{position:relative;padding:clamp(72px,min(8vw,115.2px),120px) 0;overflow:hidden;isolation:isolate}
.mk--bg{z-index:-1;color:var(--bgmk);opacity:var(--bgmk-o)}
/* one section header everywhere: hairline, then the title (and a lead beside it when there is one) */
.shead{display:grid;grid-template-columns:1fr;gap:20px clamp(24px,min(4vw,57.6px),64px);padding-top:26px;margin-bottom:clamp(36px,min(4.4vw,63.36px),64px);border-top:1px solid var(--line-2)}
.shead:has(.lead){grid-template-columns:minmax(220px,5fr) 7fr;align-items:end}
.shead .h2{max-width:18ch}
html[lang="ar"] .shead .h2{max-width:22ch}
.sub{margin:clamp(40px,min(5vw,72.0px),64px) 0 20px;display:flex;align-items:center;gap:16px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
html[lang="ar"] .sub{letter-spacing:0;font-size:15px;text-transform:none}
.sub::after{content:"";flex:1;height:1px;background:var(--line-2)}

/* ============ hero ============ */
.hero{position:relative;min-height:calc(100vh / var(--z,1));min-height:calc(100svh / var(--z,1));display:flex;flex-direction:column;justify-content:space-between;padding:100px 0 0;background:var(--bg);overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:0;z-index:-1;overflow:hidden}
.hero__grid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:radial-gradient(70% 70% at 70% 40%,#000,transparent);mask-image:radial-gradient(70% 70% at 70% 40%,#000,transparent)}
.hero__glow{position:absolute;width:min(70vw,1008.0px);aspect-ratio:1;inset-inline-end:max(-20vw,-288.0px);top:max(-20vw,-288.0px);border-radius:50%;background:radial-gradient(closest-side,var(--halo),transparent 70%)}
.hero .mk{translate:calc(var(--mx,0) * var(--px,0px)) calc(var(--my,0) * var(--py,0px));transition:translate .8s var(--ease)}
.mk--a{--px:-26px;--py:-18px;width:min(min(78vw,1123.2px),1180px);inset-inline-end:max(-24vw,-345.6px);top:50%;margin-top:calc(min(min(78vw,1123.2px),1180px) * -.42);color:transparent;background:var(--mkA);scale:calc(1 + var(--hs,0) * .14);animation:drift 28s ease-in-out infinite alternate}
.mk--b{--px:16px;--py:12px;width:min(min(78vw,1123.2px),1180px);inset-inline-end:max(-21vw,-302.4px);top:50%;margin-top:calc(min(min(78vw,1123.2px),1180px) * -.38);background:var(--mkB);animation:drift 34s ease-in-out -8s infinite alternate-reverse}
@keyframes drift{0%{transform:rotate(-5deg) scale(1)}50%{transform:rotate(-2deg) scale(1.035)}100%{transform:rotate(-7deg) scale(1.01)}}
.hero__in{position:relative;margin-block:auto;padding-block:32px;opacity:calc(1 - var(--hs,0) * 1.15);translate:0 calc(var(--hs,0) * -48px)}
html[lang="ar"] @keyframes ping{70%,100%{box-shadow:0 0 0 12px transparent}}
.slogan{font-size:14px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
html[lang="ar"] .slogan{letter-spacing:0;text-transform:none;font-size:18px}
.slogan .hl{font-weight:600;color:var(--accent)}
.hero__title{margin-top:24px;max-width:13ch;font-size:clamp(38px,min(min(6.2vw,89.28px),calc(8.4vh / var(--z,1))),94px);line-height:.98;font-weight:600;letter-spacing:-.045em}
html[lang="ar"] .hero__title{max-width:none;letter-spacing:0;line-height:1.25}
.hero__lead{margin-top:20px;max-width:540px;font-size:clamp(16px,min(1.3vw,18.72px),18px);color:var(--muted)}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.cue{position:absolute;inset-inline:0;bottom:28px;display:flex;align-items:center;gap:14px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
html[lang="ar"] .cue{letter-spacing:0;font-size:14px;text-transform:none}
.cue i{width:56px;height:1px;background:var(--line-2);position:relative;overflow:hidden}
.cue i::after{content:"";position:absolute;inset:0;background:var(--accent);transform:translateX(-100%);animation:cue 2.4s var(--ease-io) infinite}
html[dir="rtl"] .cue i::after{animation-name:cueR}
@keyframes cue{50%{transform:none}100%{transform:translateX(100%)}}
@keyframes cueR{50%{transform:none}100%{transform:translateX(-100%)}}

/* ============ clients (bottom of the hero) — always moving, never pausable ============ */
.clients{position:relative;padding:0 0 clamp(20px,calc(3vh / var(--z,1)),36px)}
.clients__label{margin-bottom:18px;font-size:14px;color:var(--muted)}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee__track{display:flex;align-items:center;gap:80px;width:max-content;animation:mq 60s linear infinite}
html[dir="rtl"] .marquee__track{animation-name:mqR}
.marquee img{height:46px;width:auto;max-width:190px;object-fit:contain;filter:brightness(0);opacity:.55}
:root[data-theme="dark"] .marquee img{filter:brightness(0) invert(1);opacity:.6}
@keyframes mq{to{transform:translateX(-50%)}}
@keyframes mqR{to{transform:translateX(50%)}}

/* ============ 01 core offering (also reused on discipline pages) ============ */
.services__mk{width:min(min(52vw,748.8px),720px);inset-inline-end:max(-14vw,-201.6px);top:4%;transform:rotate(12deg)}
.services .wrap{display:grid;grid-template-columns:minmax(220px,5fr) 7fr;column-gap:clamp(24px,min(4vw,57.6px),64px);align-items:start}
.services{border-top:1px solid var(--line)}
.services .shead{border-top:0;padding-top:0;margin-bottom:0;position:sticky;top:120px}
.core>li{border-top:1px solid var(--line-2)}
.core>li:last-child{border-bottom:1px solid var(--line-2)}
.core__row{display:grid;grid-template-columns:clamp(44px,min(4.4vw,63.36px),56px) 1fr auto;align-items:center;gap:clamp(18px,min(3vw,43.2px),40px);padding:clamp(22px,min(2.6vw,37.44px),36px) 0;transition:padding .45s var(--ease)}
.core__ic{display:block;width:clamp(44px,min(4.4vw,63.36px),52px);aspect-ratio:1;color:var(--ink);transition:color .3s,transform .5s var(--ease)}
.core__ic svg{width:100%;height:100%}
.core__t{font-size:clamp(24px,min(2.9vw,41.76px),40px);font-weight:500;letter-spacing:-.025em;line-height:1.1;text-wrap:balance}
html[lang="ar"] .core__t{letter-spacing:0;line-height:1.35}
.core__tx p{margin-top:10px;max-width:58ch;font-size:clamp(14.5px,min(1.15vw,16.56px),16.5px);color:var(--muted)}
.core__go{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid var(--line-2);transition:background .3s,color .3s,border-color .3s,transform .4s var(--ease)}
.core__go svg{width:18px;height:18px}
html[dir="rtl"] .core__go svg{transform:scaleX(-1)}
.core__row:hover{padding-inline-start:14px}
.core__row:hover .core__ic{color:var(--accent);transform:scale(1.06)}
.core__row:hover .core__go{background:var(--lime);color:var(--on-lime);border-color:var(--lime);transform:translateX(4px)}
html[dir="rtl"] .core__row:hover .core__go{transform:translateX(-4px)}

/* ============ 02 products showcase ============ */
.products{background:var(--bg-2)}
.products__mk{width:min(min(50vw,720.0px),700px);inset-inline-start:max(-14vw,-201.6px);bottom:-14%;transform:rotate(-10deg)}
.showcase{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:20px;align-items:stretch}
.ptabs{display:flex;flex-direction:column;gap:6px}
.ptab{position:relative;display:grid;grid-template-columns:28px 92px 1fr;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;text-align:start;overflow:hidden;border:1px solid transparent;transition:background .3s,border-color .3s}
.ptab:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.ptab[aria-selected="true"]{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}
.ptab__n{font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;direction:ltr}
.ptab__logo{display:flex;align-items:center;height:28px}
.ptab__logo img{max-height:26px;max-width:92px;width:auto;object-fit:contain;opacity:.6;transition:opacity .3s}
.ptab[aria-selected="true"] .ptab__logo img,.ptab:hover .ptab__logo img{opacity:1}
:root[data-theme="dark"] .ptab--w .l-dark,:root[data-theme="dark"] .ppanel__logo--w .l-dark{filter:brightness(0) invert(1)}
.ptab__cat{font-size:13.5px;line-height:1.3;color:var(--muted);font-weight:500}
.ptab[aria-selected="true"] .ptab__cat{color:var(--ink)}
.ptab__bar{position:absolute;inset:auto 16px 0 16px;height:2px;border-radius:2px;background:var(--c);transform:scaleX(0);transform-origin:0 50%}
html[dir="rtl"] .ptab__bar{transform-origin:100% 50%}
.ptab[aria-selected="true"] .ptab__bar{animation:fill var(--dur,6s) linear forwards}
.showcase.is-paused .ptab__bar{animation-play-state:paused}
@keyframes fill{to{transform:scaleX(1)}}
.stage{position:relative;display:grid;min-height:500px;border-radius:28px;background:var(--surface);overflow:hidden;isolation:isolate;border:1px solid var(--line);box-shadow:var(--shadow)}
.stage__glow{position:absolute;z-index:-1;inset:-30% -10% auto auto;width:90%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--sc,#F26722) 40%,transparent),transparent 72%);transition:background .7s}
:root[data-theme="dark"] .stage__glow{background:radial-gradient(closest-side,color-mix(in srgb,var(--sc,#F26722) 52%,transparent),transparent 72%)}
.mk--stage{z-index:-1;width:84%;inset-inline-end:-22%;bottom:-30%;color:var(--sc,#F26722);opacity:.15;rotate:var(--rot,-10deg);transition:color .7s,rotate 1.3s var(--ease)}
.stage__panels{display:grid;padding:clamp(28px,min(4vw,57.6px),56px)}
.ppanel{grid-area:1/1;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;max-width:540px;opacity:0;visibility:hidden;transform:translateY(18px);transition:opacity .6s var(--ease),transform .7s var(--ease),visibility .6s}
.ppanel.is-on{opacity:1;visibility:visible;transform:none}
.ppanel__logo{display:flex;align-items:center;height:64px;margin-bottom:auto}
.ppanel__logo img{max-height:56px;max-width:240px;width:auto;object-fit:contain}
.ppanel__logo--tall{height:84px}.ppanel__logo--tall img{max-height:78px}
.ppanel__cat{display:inline-flex;align-items:center;gap:10px;margin-top:48px;font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
html[lang="ar"] .ppanel__cat{letter-spacing:0;font-size:14px;text-transform:none}
.ppanel__cat::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c)}
.ppanel__t{margin-top:14px;font-size:clamp(24px,min(2.7vw,38.88px),36px);line-height:1.1;font-weight:600;letter-spacing:-.025em;text-wrap:balance}
html[lang="ar"] .ppanel__t{letter-spacing:0;line-height:1.35}
.ppanel__d{margin:16px 0 28px;font-size:16.5px;color:var(--muted)}
.stage__ctl{position:absolute;inset-block-start:20px;inset-inline-end:20px}

/* ============ process steps (discipline pages) ============ */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.step{position:relative;padding-top:68px;font-size:16px;font-weight:500;line-height:1.5;padding-inline-end:8px}
.step b{position:absolute;inset-block-start:0;inset-inline-start:0;z-index:1;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-2);background:var(--bg);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;transition:background .5s,color .5s,border-color .5s,transform .6s var(--ease);transition-delay:calc(var(--i) * .26s)}
.step::before,.step::after{content:"";position:absolute;inset-block-start:23px;inset-inline-start:56px;inset-inline-end:-8px;height:2px;border-radius:2px}
.step::before{background:var(--line-2)}
.step::after{background:var(--accent);transform:scaleX(0);transform-origin:0 50%;transition:transform .5s var(--ease-io);transition-delay:calc(var(--i) * .26s + .2s)}
html[dir="rtl"] .step::after{transform-origin:100% 50%}
.step:last-child::before,.step:last-child::after{display:none}
.steps.is-in .step::after{transform:scaleX(1)}
.steps.is-in .step b{background:var(--lime);color:var(--on-lime);border-color:var(--lime);transform:scale(1.05)}

/* ============ proof cards ============ */
.proof{display:grid;gap:14px}
.proof--2{grid-template-columns:repeat(2,1fr)}.proof--3{grid-template-columns:repeat(3,1fr)}
.pcard{display:flex;flex-direction:column;gap:10px;padding:28px;border-radius:24px;background:var(--surface);border:1px solid var(--line);transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--line-2)}
.pcard b{margin-top:12px;font-size:19px;font-weight:600;line-height:1.3}
.pcard>span:not(.pl){font-size:15px;line-height:1.6;color:var(--muted)}
.pl{display:flex;align-items:center;height:48px}
.pl img{max-height:40px;max-width:180px;width:auto;object-fit:contain}
.pl--dark{align-self:flex-start;height:56px;padding:0 18px;border-radius:14px;background:#171415}
.pl--dark img{max-height:30px}

/* ============ 05 about ============ */
.about .mk{z-index:-1;color:var(--bgmk);opacity:.22}
.about .mk--c2,.ctaband .mk--c2{color:var(--bgmk2)}
.about{padding:clamp(60px,min(6.5vw,93.6px),96px) 0;text-align:center}
.about .mk{width:min(min(24vw,345.6px),330px)}
.about .mk--c1{top:6%;bottom:auto;inset-inline-start:max(-4vw,-57.6px)}
.about .mk--c2{top:auto;bottom:-6%;inset-inline-end:max(-3vw,-43.2px);inset-inline-start:auto;transform:rotate(168deg)}
:root[data-theme="dark"] .about .mk{opacity:.40}
.about__p{max-width:24em;margin-inline:auto;font-size:clamp(19px,min(2vw,28.8px),28px);font-weight:600;letter-spacing:-.015em;text-wrap:balance}
.about__p{line-height:1.3}
html[lang="ar"] .about__p{line-height:1.8;letter-spacing:0}
.about__p .w{opacity:var(--o,1);transition:opacity .25s linear;white-space:nowrap}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-2)}
.stats>div{padding:26px 24px 0 0}
html[dir="rtl"] .stats>div{padding:26px 0 0 24px}
.stats>div+div{padding-inline-start:24px;border-inline-start:1px solid var(--line)}
.stats dt{display:flex;direction:ltr;unicode-bidi:isolate;font-size:clamp(34px,min(4vw,57.6px),56px);font-weight:600;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
html[dir="rtl"] .stats dt{justify-content:flex-end}
.stats dt i{font-style:normal;color:var(--accent)}
.stats dd{margin-top:12px;font-size:14.5px;color:var(--muted);max-width:22ch}
.stats--about{grid-template-columns:1fr 1fr;column-gap:32px;border-top:0;max-width:440px;margin:clamp(28px,min(3.4vw,48.96px),44px) auto 0;text-align:center}
.stats--about>div,html[dir="rtl"] .stats--about>div{padding:18px 0 14px;border-top:1px solid var(--line-2)}
.stats--about>div+div{padding-inline-start:0;border-inline-start:0}
.stats--about dt,html[dir="rtl"] .stats--about dt{font-size:clamp(30px,min(3vw,43.2px),42px);justify-content:center}
.stats--about dd{margin-inline:auto}


/* ============ 06 contact ============ */
.contact{position:relative;padding:clamp(72px,min(8vw,115.2px),120px) 0;background:var(--bg-2);overflow:hidden;isolation:isolate;border-top:1px solid var(--line)}
.mk--ct1{z-index:-1;width:min(min(66vw,950.4px),900px);inset-inline-start:max(-18vw,-259.2px);bottom:-36%;color:var(--bgmk);opacity:var(--bgmk-o);transform:rotate(-6deg)}
.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,min(6vw,86.4px),96px);align-items:stretch}
.cf{display:block;margin-bottom:28px}
.cf span{display:block;margin-bottom:6px;font-size:15px;font-weight:500;color:var(--muted)}
.cf input,.cf textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-2);padding:8px 0 14px;font:inherit;font-size:18px;color:var(--ink);outline:0;resize:none;border-radius:0;transition:border-color .25s,box-shadow .25s}
.cf input::placeholder,.cf textarea::placeholder{color:var(--muted);opacity:.7}
.cf input:focus,.cf textarea:focus{border-bottom-color:var(--accent);box-shadow:0 1px 0 var(--accent)}
.cf:focus-within span{color:var(--accent)}
.cf__note{margin-top:14px;font-size:14.5px;color:var(--muted);min-height:1.5em}
.ccard{display:flex;flex-direction:column;justify-content:center;padding:clamp(32px,min(4vw,57.6px),56px);border-radius:32px;background:var(--cc-bg);color:var(--cc-ink);border:1px solid var(--line)}
.ccard h3{font-size:clamp(24px,min(2.4vw,34.56px),32px);font-weight:600}
.ccard ul{display:grid;gap:18px;margin-top:28px}
.ccard li{display:flex;align-items:center;gap:14px;font-size:20px}
.ccard li svg{width:26px;height:26px;flex:none}
.ccard a:hover{text-decoration:underline}
.ccard hr{border:0;border-top:1px solid var(--cc-line);margin:36px 0}
.ccard__soc{display:flex;gap:12px;margin-top:22px}
.ccard__soc a{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--cc-soc);transition:background .25s,transform .35s var(--ease)}
.ccard__soc a:hover{background:var(--lime);color:var(--on-lime);transform:translateY(-4px);text-decoration:none}
.ccard__soc svg{width:28px;height:28px}


/* ============ discipline pages (same structure as boud.ai/ai, /innovation, /digital) ============ */
:root{--blob-o:.30}
:root[data-theme="dark"]{--blob-o:.52}
.dhero{position:relative;min-height:calc(100vh / var(--z,1));min-height:calc(100svh / var(--z,1));display:flex;align-items:center;padding:120px 0 80px;background:var(--bg);overflow:hidden;isolation:isolate}
.dhero__bg{position:absolute;inset:0;z-index:-1;overflow:hidden}
html[dir="rtl"] .dhero__bg{transform:scaleX(-1)}
.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:var(--blob-o);animation:blobDrift 24s ease-in-out infinite alternate}
.blob--v{width:min(46vw,662.4px);aspect-ratio:1;left:12%;top:-18%;background:var(--p5)}
.blob--o{width:min(40vw,576.0px);aspect-ratio:1;left:46%;top:0;background:var(--o5);animation-delay:-8s}
.blob--l{width:min(42vw,604.8px);aspect-ratio:1;left:50%;top:32%;background:var(--m5);animation-delay:-15s}
@keyframes blobDrift{to{transform:translate(min(4vw,57.6px),calc(-3vh / var(--z,1))) scale(1.12)}}
.dhero__veil{position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 82%,transparent) 34%,transparent 72%)}
.dhero .mk--a{width:min(min(46vw,662.4px),640px);inset-inline-end:max(-10vw,-144.0px);bottom:-18%;top:auto;margin:0;opacity:.0}
.dhero__wrap{position:relative;display:flex;align-items:center;justify-content:space-between;gap:48px}
.dhero__in{max-width:780px}
.dhero__t{font-size:clamp(34px,min(4.8vw,69.12px),70px);line-height:1.02;font-weight:600;letter-spacing:-.04em;text-wrap:balance}
html[lang="ar"] .dhero__t{letter-spacing:0;line-height:1.25}
.dhero__sub{margin-top:22px;font-size:clamp(17px,min(1.5vw,21.6px),22px);font-weight:600;line-height:1.35}
.dhero__p{margin:14px 0 30px;max-width:62ch;font-size:clamp(15px,min(1.15vw,16.56px),17px);color:var(--muted)}
.dhero__p b{color:var(--ink);font-weight:600}
.ring{position:relative;flex:none;width:clamp(120px,min(13vw,187.2px),188px);aspect-ratio:1;margin-inline-end:clamp(0px,min(4vw,57.6px),72px)}
.ring__txt{position:absolute;inset:0;background:var(--accent);-webkit-mask:url("../images/Accelerated-Market-Access-.-Accelerated-Market-Access-.svg") center/contain no-repeat;mask:url("../images/Accelerated-Market-Access-.-Accelerated-Market-Access-.svg") center/contain no-repeat;animation:spin 26s linear infinite}
.ring__mk{width:36%;inset-inline-start:32%;top:36%;color:var(--accent)}
@keyframes spin{to{transform:rotate(360deg)}}
.js .dhero .rv{opacity:1;transform:none;animation:heroIn 1s var(--ease) both;animation-delay:calc(var(--d,0s) + var(--hd,0s))}
.lead--lg{font-size:clamp(18px,min(1.6vw,23.04px),24px);line-height:1.45;color:var(--ink);font-weight:500;max-width:36em}
html[lang="ar"] .lead--lg{line-height:1.8}
.sec--alt{background:var(--bg-2)}
/* cards */
.dcards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.dcards--7{grid-template-columns:repeat(6,1fr)}
.dcards--7>li{grid-column:span 2}
.dcards--7>li:nth-child(1),.dcards--7>li:nth-child(2),.dcards--7>li:nth-child(6),.dcards--7>li:nth-child(7){grid-column:span 3}
.dcard2{display:grid;gap:16px;align-content:start;padding:clamp(20px,min(2.2vw,31.68px),30px);border-radius:22px;background:var(--surface);border:1px solid var(--line);transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.dcard2:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--line-2)}
.dcard2 .cap__ic{width:52px;height:52px;border-radius:16px;transition:transform .5s var(--ease)}
.dcard2:hover .cap__ic{transform:rotate(-8deg) scale(1.06)}
.dcard2 h3{font-size:clamp(17px,min(1.4vw,20.16px),20px);font-weight:600;line-height:1.3}
.dcard2 p{color:var(--muted);font-size:14.5px;line-height:1.65}
/* proof */
.pcard--wide{display:grid;grid-template-columns:minmax(200px,3fr) 9fr;gap:clamp(24px,min(4vw,57.6px),64px);align-items:center;padding:clamp(28px,min(4vw,57.6px),56px)}
.pl--logo{height:auto}.pl--logo img{max-height:64px;max-width:240px}
.pcard__tx{display:grid;gap:14px;justify-items:start}
.pcard__tx b{margin:0;font-size:clamp(22px,min(2.2vw,31.68px),30px)}
.pcard--wide .btn{margin-top:6px}
/* wavy process path */
.wave{position:relative;height:340px}
.wave__svg{position:absolute;inset:60px 0 60px;width:100%;height:220px}
.wave__svg path{fill:none;stroke-width:2;stroke-linecap:round}
.wave__base{stroke:var(--line-2)}
.wave__prog{stroke:var(--accent);stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.8s var(--ease-io) .2s}
html[dir="rtl"] .wave__prog{transform:scaleX(-1);transform-origin:50% 50%}
.wave.is-in .wave__prog{stroke-dashoffset:0}
.wave__list{position:absolute;inset:0}
.wave .step{position:absolute;inset-inline-start:var(--x);width:0;height:0;padding:0;font-size:15.5px;font-weight:500}
html[dir="rtl"] .wave .step{inset-inline-start:auto;right:var(--x)}
.wave .step::after{display:none}
.wave .step.is-top{top:calc(60px + 50 * 220px / 220)}
.wave .step.is-bot{top:calc(60px + 170px)}
.wave .step b{inset:auto;inset-inline-start:auto;position:absolute;left:0;top:0;translate:-50% -50%;width:20px;height:20px;font-size:0;background:var(--surface);border-width:5px}
.wave .step::before{display:block;content:attr(data-n);position:absolute;left:-64px;inset-inline-end:auto;inset-block-start:auto;height:auto;background:none;border-radius:0;font-size:76px;line-height:1;font-weight:600;color:var(--line-2);opacity:0;pointer-events:none;transition:opacity .8s;transition-delay:calc(var(--i) * .5s + .3s);direction:ltr}
html[dir="rtl"] .wave .step::before{left:auto;right:-64px}
.wave .step.is-top::before{top:14px}
.wave .step.is-bot::before{top:-92px}
.wave.is-in .step::before{opacity:1}
html[dir="rtl"] .wave .step b{left:auto;right:0;translate:50% -50%}
.wave .step span{position:absolute;left:0;width:200px;translate:-50% 0;text-align:center;line-height:1.4}
html[dir="rtl"] .wave .step span{left:auto;right:0;translate:50% 0}
.wave .step.is-top span{bottom:36px}
.wave .step.is-bot span{top:36px}
.wave.is-in .step b{background:var(--lime);color:var(--on-lime);border-color:color-mix(in srgb,var(--lime) 35%,transparent);transform:none;scale:1.1;transition-delay:calc(var(--i) * .5s + .4s)}
.wave .step b{transition:background .5s,color .5s,border-color .5s,scale .6s var(--ease)}
.wave .step span{opacity:.0;transition:opacity .6s;transition-delay:calc(var(--i) * .5s + .5s)}
.wave.is-in .step span{opacity:1}
/* icon track: the boud.ai process diagram, redrawn (thick track, icon nodes, branching labels) */
.track{position:relative;height:360px}
.track__line{position:absolute;inset-inline:0;top:50%;height:8px;margin-top:-4px;border-radius:8px;background:var(--line-2);overflow:hidden}
.track__line i{position:absolute;inset:0;background:linear-gradient(90deg,var(--accent),var(--lime));transform:scaleX(0);transform-origin:0 50%;transition:transform 3s var(--ease-io) .2s}
html[dir="rtl"] .track__line i{transform-origin:100% 50%}
.track.is-in .track__line i{transform:scaleX(1)}
.track__list{position:absolute;inset:0}
.tstep{position:absolute;top:50%;inset-inline-start:var(--x);width:0;height:0}
.tnode{position:absolute;inset-inline-start:0;top:0;translate:-50% -50%;display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:var(--surface);border:1px solid var(--line-2);color:var(--accent);transition:border-color .5s,box-shadow .6s,scale .6s var(--ease);transition-delay:calc(var(--i) * .55s + .35s)}
html[dir="rtl"] .tnode{translate:50% -50%}
.tnode svg{width:62px;height:62px}
.track.is-in .tnode{border-color:var(--accent);box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 14%,transparent);scale:1.04}
.tbranch{position:absolute;inset-inline-start:42px;top:0;width:180px;max-width:none;height:110px;overflow:visible}
.tstep.is-up .tbranch{top:-110px;scale:1 -1}
html[dir="rtl"] .tbranch{scale:-1 1}
html[dir="rtl"] .tstep.is-up .tbranch{scale:-1 -1}
.tbranch path{fill:none;stroke:var(--line-2);stroke-width:8;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s var(--ease-io);transition-delay:calc(var(--i) * .55s + .6s)}
.tbranch circle{fill:var(--bg);stroke:var(--line-2);stroke-width:7;transform-box:fill-box;transform-origin:center;transform:scale(0);transition:transform .5s var(--ease),stroke .5s;transition-delay:calc(var(--i) * .55s + 1.4s)}
.track.is-in .tbranch path{stroke-dashoffset:0;stroke:color-mix(in srgb,var(--accent) 55%,var(--line-2))}
.track.is-in .tbranch circle{transform:scale(1);stroke:var(--accent)}
.sec--alt .tbranch circle{fill:var(--bg-2)}
.tlabel{position:absolute;inset-inline-start:calc(42px + 166px);translate:-50% 0;width:230px;text-align:center;font-size:clamp(15px,min(1.25vw,18.0px),18px);font-weight:600;line-height:1.35;opacity:0;transition:opacity .6s,transform .7s var(--ease);transition-delay:calc(var(--i) * .55s + 1.6s)}
html[dir="rtl"] .tlabel{translate:50% 0}
.tstep.is-down .tlabel{top:126px;transform:translateY(10px)}
.tstep.is-up .tlabel{bottom:126px;transform:translateY(-10px)}
.track.is-in .tlabel{opacity:1;transform:none}

/* closing call to action */
.ctaband{position:relative;padding:clamp(80px,min(9vw,129.6px),128px) 0;background:var(--bg);overflow:hidden;isolation:isolate;border-top:1px solid var(--line)}
.ctaband .wrap{display:flex;flex-direction:column;align-items:center;gap:32px;text-align:center}
.ctaband .h2{max-width:20ch}
.ctaband .mk{z-index:-1;color:var(--bgmk);opacity:.22}
.mk--c1{width:min(min(34vw,489.6px),460px);inset-inline-start:max(-4vw,-57.6px);top:12%;transform:rotate(-14deg)}
.mk--c2{width:min(min(30vw,432.0px),420px);inset-inline-end:max(-3vw,-43.2px);bottom:-6%;transform:rotate(168deg)}
:root[data-theme="dark"] .ctaband .mk{opacity:.40}

/* ============ footer ============ */
.ftr{position:relative;background:var(--bg);overflow:hidden;isolation:isolate;border-top:1px solid var(--line);padding-top:clamp(52px,min(6vw,86.4px),84px);--fv:94,86,222}
.ftr__glow{position:absolute;z-index:-1;inset-block:0;inset-inline-start:0;width:46%;background:radial-gradient(70% 90% at var(--gx,0%) 70%,rgba(var(--fv),.20),transparent 72%);pointer-events:none}
html[dir="rtl"] .ftr__glow{--gx:100%}
:root[data-theme="dark"] .ftr__glow{background:radial-gradient(70% 90% at var(--gx,0%) 70%,rgba(var(--fv),.38),transparent 72%)}
.ftr__top{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.5fr);gap:clamp(32px,min(6vw,86.4px),96px);align-items:start}
.blogo{display:block;width:clamp(150px,min(15vw,216.0px),205px);aspect-ratio:149/20;background:var(--ink);-webkit-mask:var(--latin) center/contain no-repeat;mask:var(--latin) center/contain no-repeat}
.ftr__ln{display:inline-block;margin-top:12px;font-size:17px;font-weight:500;transition:color .2s}
.ftr__ln:hover{color:var(--accent)}
.ftr__cr{margin-top:40px;font-size:16px;line-height:1.7;color:var(--muted)}
.social{display:flex;gap:14px;margin-top:40px}
.social a{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:color-mix(in srgb,var(--ink) 9%,transparent);transition:background .25s,color .25s,transform .35s var(--ease)}
.social a:hover{background:var(--lime);color:var(--on-lime);transform:translateY(-3px)}
.social svg{width:24px;height:24px}
.ftr__cols{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:clamp(24px,min(3vw,43.2px),48px)}
.ftr h4{margin-bottom:28px;font-size:clamp(17px,min(1.5vw,21.6px),20px);font-weight:600;letter-spacing:.01em;text-transform:uppercase;color:var(--ink)}
html[lang="ar"] .ftr h4{text-transform:none;letter-spacing:0}
.ftr__cols ul{display:grid;gap:20px}
.ftr__cols a{font-size:clamp(16px,min(1.4vw,20.16px),19px);color:var(--muted);transition:color .2s}
.ftr__cols a:hover{color:var(--accent)}
.ftr__rule{height:1px;margin-top:clamp(48px,min(6vw,86.4px),80px);background:linear-gradient(90deg,transparent,rgba(var(--fv),.7) 50%,transparent)}
.ftr__end{padding:26px 0 0;text-align:end;font-size:16px;color:var(--muted)}
.ftr__word{display:block;width:min(1250px,min(92vw,1324.8px));aspect-ratio:149/20;margin:clamp(24px,min(4vw,57.6px),56px) auto 0;transform:translateY(54%);background:linear-gradient(to bottom,rgba(var(--fv),.34),rgba(var(--fv),.10));-webkit-mask:var(--latin) center/contain no-repeat;mask:var(--latin) center/contain no-repeat}
:root[data-theme="dark"] .ftr__word{background:linear-gradient(to bottom,rgba(var(--fv),.46),rgba(var(--fv),.14))}

/* ============ motion ============ */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--d,0s) + var(--i,0) * .08s)}
.js .rv.is-in{opacity:1;transform:none}
.js .rv{animation:rvFail .01s linear 6s forwards}
@keyframes rvFail{to{opacity:1;transform:none}}
.js .pcard.rv.is-in{transition:opacity .9s var(--ease),transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
/* headline word reveals: masked slide in Latin, soft rise in Arabic (no clipping of joined letters) */
.split .w,.sp .w{display:inline-block;overflow:hidden;vertical-align:top;padding-block:.06em .16em;margin-block:-.06em -.16em}
.sp .w>span{display:inline-block;transform:translateY(115%);transition:transform 1.1s var(--ease),opacity .8s var(--ease);transition-delay:calc(var(--wi) * 70ms + .15s);animation:wFail .01s linear 6s forwards}
.sp.is-in .w>span{transform:none}
.split .w>span{display:inline-block;animation:wordIn 1.1s var(--ease) both;animation-delay:calc(var(--wi) * 70ms + .15s + var(--hd,0s))}
@keyframes wordIn{from{transform:translateY(115%)}to{transform:none}}
@keyframes wordInAr{from{transform:translateY(.45em);opacity:0}to{transform:none;opacity:1}}
@keyframes wFail{to{transform:none;opacity:1}}
html[lang="ar"] .split .w,html[lang="ar"] .sp .w{overflow:visible;padding:0;margin:0}
html[lang="ar"] .sp .w>span{transform:translateY(.45em);opacity:0}
html[lang="ar"] .sp.is-in .w>span{transform:none;opacity:1}
html[lang="ar"] .split .w>span{animation-name:wordInAr}
/* hero / page-hero blocks: CSS-driven entrance, waits for the intro only when the intro will play */
html.has-intro{--hd:2.6s}
.js .hero .rv{opacity:1;transform:none;animation:heroIn 1s var(--ease) both;animation-delay:calc(var(--d,0s) + var(--hd,0s))}
@keyframes heroIn{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
/* background marks draw in once, then drift with scroll (JS sets translate) */
.js .sec .mk--bg,.js .contact .mk{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--ease-io);animation:mkFail .01s linear 3.5s forwards}
html[dir="rtl"].js .sec .mk--bg,html[dir="rtl"].js .contact .mk{clip-path:inset(0 0 0 100%)}
.js .sec.seen .mk--bg,.js .contact.seen .mk{clip-path:inset(0 0 0 0)}
@keyframes mkFail{to{clip-path:inset(0 0 0 0)}}

/* ============ responsive ============ */
@media (max-width:1100px){
  .showcase{grid-template-columns:1fr}
  .ptabs{flex-direction:row;overflow-x:auto;scrollbar-width:none;padding-bottom:6px;scroll-snap-type:x proximity}
  .ptab{flex:none;grid-template-columns:auto auto;padding:12px 16px;scroll-snap-align:start}
  .ptab__n,.ptab__cat{display:none}
  .ptab__logo{min-width:84px}
  .stage{min-height:520px}
  .hdr__cta{display:none}
}
@media (max-width:900px){
  .hdr__in{grid-template-columns:1fr auto}
  .hdr__burger{display:inline-flex}
  .hdr__nav{position:fixed;inset:0;z-index:-1;display:flex;align-items:center;justify-content:center;padding:96px 32px 40px;background:var(--bg);opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
  .menu-open .hdr__nav{opacity:1;visibility:visible}
  .hdr__nav ul{flex-direction:column;gap:6px;width:100%;max-width:420px;padding:0;border:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}
  .hdr__nav a{padding:14px 4px;font-size:clamp(28px,min(8vw,115.2px),40px);font-weight:600;border-radius:12px;color:var(--ink);border-bottom:1px solid var(--line)}
  .hdr__nav a.is-active{background:none;color:var(--accent)}
  .menu-open{overflow:hidden}
  .shead,.shead:has(.lead){grid-template-columns:1fr;align-items:start}
  .services .wrap{display:block}
  .services .shead{position:static;border-top:1px solid var(--line-2);padding-top:26px;margin-bottom:clamp(44px,min(5.5vw,79.2px),80px)}
  .capgrid{grid-template-columns:1fr}
  .phero{padding-top:124px}
  .contact__grid{grid-template-columns:1fr}
  .dcards,.dcards--7{grid-template-columns:1fr}
  .dcards--7>li,.dcards--7>li:nth-child(n){grid-column:auto}
  .pcard--wide{grid-template-columns:1fr}
  .dhero{padding:112px 0 64px}
  .ring{display:none}
  .dhero__veil{background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--bg) 78%,transparent) 60%,transparent)}
  .track{height:auto}
  .track__line,.tbranch{display:none}
  .track__list{position:static;display:grid}
  .tstep,.tstep.is-up,.tstep.is-down{position:relative;top:auto;inset-inline-start:auto;width:auto;height:auto;padding:0 0 32px;padding-inline-start:96px;min-height:76px}
  .tstep::before{content:"";position:absolute;inset-inline-start:37px;top:76px;bottom:0;width:2px;background:var(--line-2)}
  .tstep:last-child::before{display:none}
  .tnode,html[dir="rtl"] .tnode{inset-inline-start:0;top:0;translate:none;width:76px;height:76px}
  .tlabel,.tstep.is-up .tlabel,.tstep.is-down .tlabel,html[dir="rtl"] .tlabel{position:static;translate:none;transform:none;width:auto;text-align:start;opacity:1;padding-top:24px;font-size:17px}
  .wave{height:auto}
  .wave__svg{display:none}
  .wave__list{position:static;display:grid}
  .wave .step,.wave .step.is-top,.wave .step.is-bot{position:relative;inset:auto;top:auto;right:auto;width:auto;height:auto;padding:0 0 28px;padding-inline-start:70px;min-height:48px}
  html[dir="rtl"] .wave .step{right:auto}
  .wave .step::before{display:none}
  .wave .step::after{display:block}
  .wave .step b,html[dir="rtl"] .wave .step b{position:absolute;left:auto;right:auto;inset-block-start:0;inset-inline-start:0;translate:none;width:48px;height:48px;font-size:16px;border-width:1px}
  .wave .step span,.wave .step.is-top span,.wave .step.is-bot span,html[dir="rtl"] .wave .step span{position:static;translate:none;width:auto;text-align:start;opacity:1}
  .wave.is-in .step::after{transform:scaleY(1)}
  .hero{padding:124px 0 0}
  .stats{grid-template-columns:1fr 1fr}
  .stats>div:nth-child(3){padding-inline-start:0;border-inline-start:0}
  .stats>div:nth-child(n+3){margin-top:24px}
  .cue{display:none}
  .proof--2,.proof--3{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr;gap:0}
  .step{padding:0 0 28px;padding-inline-start:70px;min-height:48px}
  .step::before,.step::after{inset-block-start:48px;inset-block-end:0;inset-inline-start:23px;inset-inline-end:auto;width:2px;height:auto}
  .step::after{transform:scaleY(0);transform-origin:50% 0}
  .steps.is-in .step::after{transform:scaleY(1)}
  .ftr__top{grid-template-columns:1fr}
  .ftr__cols{grid-template-columns:repeat(2,1fr)}
  .mk--a,.mk--b{inset-inline-end:max(-40vw,-576.0px);width:min(130vw,1872.0px);margin-top:max(-30vw,-432.0px)}
}
@media (max-width:600px){
  body{font-size:16px}
  .ftr__cols{grid-template-columns:1fr 1fr}
  .hero__cta .btn{width:100%}
  .stage{min-height:480px}
  .hdr__end{gap:8px}
  .core__go{width:44px;height:44px}
  .core__row{grid-template-columns:44px 1fr}
  .core__go{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-delay:0s!important}
  .js .rv{opacity:1;transform:none}
  .split .w>span,.sp .w>span{transform:none;opacity:1}
  .js .sec .mk--bg,.js .contact .mk{clip-path:none}
  .hero__in{opacity:1;translate:none}
  .marquee__track{animation:none;flex-wrap:wrap;width:auto;justify-content:center;row-gap:32px}
  .marquee__track img[aria-hidden]{display:none}
}
