/* =========================================================
   Majd Othman — v4 (elegant editorial)
   ========================================================= */
@font-face{font-family:"Montserrat";src:url("../fonts/Montserrat-Variable.woff2") format("woff2");font-weight:100 900;font-display:swap}

@property --p1{syntax:"<color>";inherits:true;initial-value:#C9C1B5}
@property --p2{syntax:"<color>";inherits:true;initial-value:#8A9097}
@property --p3{syntax:"<color>";inherits:true;initial-value:#4D565E}
@property --p4{syntax:"<color>";inherits:true;initial-value:#E4DED4}
@property --p5{syntax:"<color>";inherits:true;initial-value:#F6F3EE}

:root{
  --paper:#F4F1EC; --paper2:#EAE5DC; --card:#FBFAF7;
  --ink:#15191D; --ink2:#3C444B; --mute:#7C838A; --line:rgba(21,25,29,.12);
  --tr:#1892BF; --tr-d:#107093; --tr-l:#E2F2F8;
  --ar:#EEAD20; --ar-d:#CA9116;
  --gd:#BC4545; --gd-d:#973535;
  --g:clamp(24px,9vw,170px);
  --max:1060px;
  --grad-tr:linear-gradient(135deg,#27A9C6 0%,#17708A 48%,#1B2A30 100%);
  --grad-ar:linear-gradient(135deg,#FDB72F 0%,#B07A16 50%,#3C2F18 100%);
  --grad-gd:linear-gradient(135deg,#CB4A4C 0%,#8F3537 50%,#3A2224 100%);
  --ease:cubic-bezier(.2,.7,.15,1);
  --ease-io:cubic-bezier(.65,0,.25,1);
  --r:28px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 "Montserrat",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
h1,h2,h3,p,dl,dd,ul,ol,figure,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
h1,h2,h3,.label,.eyebrow,.hero__lede,.about__lede,.book__lede,.idx__t,.tc h3,.door h3,blockquote{text-wrap:balance}
p,dd,.idx__d,.tc__for,.door p,.post__x{text-wrap:pretty}
::selection{background:var(--tr);color:#fff}
.wrap{width:100%;max-width:calc(var(--max) + var(--g)*2);margin:0 auto;padding:0 var(--g)}

/* ---------- type ---------- */
.label{display:inline-flex;align-items:center;gap:.7em;font-size:.74rem;font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2)}
.label::before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor;opacity:.5}
.label--tr{color:var(--tr)}
.label--tr::before{opacity:1}
.label--light{color:rgba(244,241,236,.7)}
.h2{font-size:clamp(2.1rem,4.4vw,4rem);line-height:1.02;font-weight:700;letter-spacing:-.035em;margin-top:.55em}
.sec{max-width:880px;margin-bottom:clamp(36px,5vw,64px)}

/* ---------- cursor ---------- */
.cur{position:fixed;left:0;top:0;z-index:100;pointer-events:none;display:none}
.has-cur .cur{display:block}
.cur__dot{position:absolute;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--ink);transition:width .45s var(--ease),height .45s var(--ease),margin .45s var(--ease),background .3s,opacity .3s}
.cur__label{position:absolute;left:0;top:0;transform:translate(-50%,-50%) scale(.6);font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .3s,transform .45s var(--ease);white-space:nowrap}
.cur.is-link .cur__dot,.cur.is-btn .cur__dot{width:44px;height:44px;margin:-22px 0 0 -22px;background:rgba(24,146,191,.16)}
.cur.is-big .cur__dot{width:92px;height:92px;margin:-46px 0 0 -46px;background:var(--ink)}
.cur.is-big .cur__label{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cur.is-dark .cur__dot{background:var(--paper)}
.cur.is-dark.is-big .cur__label{color:var(--ink)}
.cur.is-dark.is-link .cur__dot{background:rgba(244,241,236,.18)}
.has-cur,.has-cur a,.has-cur button{cursor:none}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:.7em;height:54px;padding:0 26px;border-radius:999px;font-size:.92rem;font-weight:650;letter-spacing:.01em;overflow:hidden;isolation:isolate;transition:color .4s var(--ease),border-color .4s,transform .4s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .55s var(--ease)}
.btn:hover::before{transform:none}
.btn i{font-style:normal;transition:transform .4s var(--ease)}
.btn:hover i{transform:translateX(4px)}
.btn--ink{background:var(--ink);color:var(--paper);height:46px;padding:0 22px;font-size:.86rem}
.btn--ink::before{background:var(--tr)}
.btn--tr{background:var(--tr);color:#fff}
.btn--tr::before{background:var(--ink)}
.btn--line{border:1.5px solid rgba(21,25,29,.25);color:var(--ink)}
.btn--line::before{background:var(--ink)}
.btn--line:hover{color:var(--paper);border-color:var(--ink)}

/* ---------- header ---------- */


/* ---------- intro animation ---------- */
.js .in{opacity:0;transform:translateY(22px)}
.ready .in{opacity:1;transform:none;transition:opacity 1s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}
.ln{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.wd{display:inline-block}
.js .wd{transform:translateY(105%)}
.ready .wd{transform:none;transition:transform 1.2s var(--ease) var(--d,0s)}
.js .rv{opacity:0;transform:translateY(34px)}
.rv.on{opacity:1;transform:none;transition:opacity 1s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;padding:calc(84px + clamp(28px,5vh,64px)) 0 clamp(48px,7vh,90px);min-height:100svh;display:flex;align-items:center}
.hero::before{content:"";position:absolute;inset:0 0 auto auto;width:58%;height:100%;background:radial-gradient(60% 55% at 70% 45%,rgba(24,146,191,.10),transparent 70%);pointer-events:none}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(32px,5vw,88px);align-items:center}
.eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:.74rem;font-weight:650;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2)}
.eyebrow i{width:5px;height:5px;border-radius:50%;background:var(--tr)}
.hero__title{margin:22px 0 0;font-size:clamp(3.2rem,6.6vw,6.6rem);line-height:.94;letter-spacing:-.045em;font-weight:760}
.hero__title .lt{font-weight:250;letter-spacing:-.035em}
.hero__title .acc{color:var(--tr);position:relative}
.hero__title .acc::after{content:"";position:absolute;left:.04em;right:.12em;bottom:-.04em;height:.06em;border-radius:1em;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease) 1.25s}
.ready .hero__title .acc::after{transform:scaleX(1)}
.hero__lede{margin-top:28px;max-width:34em;font-size:clamp(1rem,1.25vw,1.14rem);line-height:1.65;color:var(--ink2)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(36px,6vh,60px);border-top:1px solid var(--line)}
.hero__facts>div{padding:18px 18px 0 0}
.hero__facts>div+div{padding-left:18px;border-left:1px solid var(--line)}
.hero__facts dt{font-size:clamp(1.5rem,2.2vw,2rem);font-weight:700;letter-spacing:-.03em;line-height:1}
.hero__facts dd{margin-top:6px;font-size:.8rem;line-height:1.4;color:var(--mute)}

/* stage */
.hero__visual{position:relative;display:flex;justify-content:center;perspective:1400px}
.stage{position:relative;width:min(100%,370px);aspect-ratio:4/5;margin-top:clamp(30px,6vh,60px)}
.js .stage{opacity:0;transform:translateY(40px)}
.ready .stage{opacity:1;transform:none;transition:opacity 1.2s var(--ease) .35s,transform 1.4s var(--ease) .35s}
.stage__card{position:absolute;inset:0;border-radius:var(--r);overflow:hidden;background:var(--paper2);box-shadow:0 50px 90px -40px rgba(21,25,29,.45),0 18px 30px -18px rgba(21,25,29,.25);transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1.02);will-change:transform}
.stage__tiles{position:absolute;inset:0;width:100%;height:100%}
.stage__me{position:absolute;left:50%;bottom:0;height:106%;width:auto;max-width:none;transform:translateX(-50%);pointer-events:none;border-radius:0 0 var(--r) var(--r)}
.js .stage__me{opacity:0}
.ready .stage__me{opacity:1;transition:opacity 1.2s var(--ease) .7s}
.stage__tag{position:absolute;left:-30px;bottom:32px;display:flex;flex-direction:column;gap:2px;padding:14px 20px 14px 18px;border-radius:16px;background:rgba(251,250,247,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 20px 40px -18px rgba(21,25,29,.35);transform:translate3d(var(--sx,0),var(--sy,0),0);border-left:3px solid var(--tr)}
.stage__tag b{font-size:.95rem;font-weight:700;letter-spacing:-.01em}
.stage__tag span{white-space:nowrap;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}

/* tiles: palettes */
[data-pal]{--q1:var(--p3);--q2:var(--p4);--q3:var(--p5);--q4:var(--p1);--q5:var(--p2)}
[data-pal="tr"]{--p1:#5ABEE2;--p2:#1892BF;--p3:#107093;--p4:#0C4D64;--p5:#E2F2F8}
[data-pal="ar"]{--p1:#F6CF79;--p2:#EEAD20;--p3:#CA9116;--p4:#986F16;--p5:#FDF3DD}
[data-pal="gd"]{--p1:#CF6E6E;--p2:#BC4545;--p3:#973535;--p4:#712828;--p5:#F2E4E4}
[data-pal="mo"]{--p1:#C9C1B5;--p2:#8A9097;--p3:#5B646C;--p4:#E4DED4;--p5:#F6F3EE}
[data-pal="ar2"]{--p1:#EEAD20;--p2:#FDF3DD;--p3:#F6CF79;--p4:#CA9116;--p5:#986F16}
[data-pal="gd2"]{--p1:#BC4545;--p2:#F2E4E4;--p3:#CF6E6E;--p4:#973535;--p5:#712828}
[data-pal="tr2"]{--p1:#1892BF;--p2:#E2F2F8;--p3:#5ABEE2;--p4:#107093;--p5:#0C4D64}
.tiles [data-c]{transition:fill 1.1s var(--ease) var(--td,0s)}
.tiles [data-c="1"]{fill:var(--p1)}
.tiles [data-c="2"]{fill:var(--p2)}
.tiles [data-c="3"]{fill:var(--p3)}
.tiles [data-c="4"]{fill:var(--p4)}
.tiles [data-c="5"]{fill:var(--p5)}
.tiles .hot [data-c]{transition-delay:0s;transition-duration:.35s}
.tiles .hot [data-c="1"]{fill:var(--q1)}
.tiles .hot [data-c="2"]{fill:var(--q2)}
.tiles .hot [data-c="3"]{fill:var(--q3)}
.tiles .hot [data-c="4"]{fill:var(--q4)}
.tiles .hot [data-c="5"]{fill:var(--q5)}
.tiles g{transform-box:fill-box;transform-origin:center;transition:transform .6s var(--ease)}
.tiles g.pop{transform:scale(0) rotate(90deg);transition:transform .35s var(--ease-io)}
.tiles g.hot{transform:scale(.9)}

/* =========================================================
   TRAINED FOR — logo rails with centre lens
   ========================================================= */
.trusted{padding:clamp(56px,8vw,110px) 0 clamp(40px,6vw,80px);border-top:1px solid var(--line);overflow:hidden}
.trusted__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:clamp(28px,4vw,48px)}
.trusted__head .label{color:var(--ink)}
.trusted__note{font-size:.86rem;color:var(--mute)}
.rails{position:relative;display:grid;gap:14px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.rail{display:flex;gap:14px;width:max-content;will-change:transform}
.rail li{--k:0;flex:none;width:164px;height:92px;display:grid;place-items:center;border-radius:20px;background:var(--card);border:1px solid rgba(21,25,29,.06);transform:translateY(calc(var(--k) * -4px)) skewX(var(--sk,0deg));box-shadow:0 calc(var(--k) * 22px) calc(var(--k) * 40px) -20px rgba(21,25,29,.3);transition:border-color .4s}
.rail li img{max-width:108px;max-height:46px;width:auto;height:auto;object-fit:contain;filter:grayscale(calc(.85 - var(--k) * .85));opacity:calc(.72 + var(--k) * .28);transform:scale(calc(.94 + var(--k) * .14))}
.rail li:hover{border-color:rgba(24,146,191,.4)}
.rail li:hover img{filter:none;opacity:1}

/* =========================================================
   RECENT TRAININGS — pinned horizontal
   ========================================================= */
.tr{position:relative}
.tr__pin{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding-top:60px}
.tr__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(24px,4vh,44px)}
.tr__head .h2{margin-top:.4em}
.tr__meta{display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex:none}
.tr__count{font-size:.86rem;font-weight:600;color:var(--mute);font-variant-numeric:tabular-nums}
.tr__count b{color:var(--ink);font-weight:700}
.tr__bar{position:relative;width:160px;height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.tr__bar i{position:absolute;inset:0;background:var(--tr);transform:scaleX(var(--p,0));transform-origin:left}
.tr__track{display:flex;gap:clamp(16px,2vw,28px);padding:0 var(--g) 10px max(var(--g),calc((100vw - var(--max))/2));width:max-content;will-change:transform}
.tc{position:relative;flex:none;width:clamp(290px,min(31vw,70vh),500px);display:flex;flex-direction:column}
.tc__media{position:relative;aspect-ratio:773/547;border-radius:22px;overflow:hidden;background:var(--paper2);transform:translateZ(0)}
.tc__media img{width:100%;height:100%;object-fit:cover;transform:translateX(var(--px,0)) scale(1.14);transition:filter .6s}
.tc:hover .tc__media img{filter:saturate(1.15)}
.tc__media::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(21,25,29,.06)}
.tc--feature{width:clamp(320px,min(44vw,86vh),720px)}
.tc--feature .tc__media{aspect-ratio:16/10.4;background:var(--tr)}
.tc__tiles{position:absolute;inset:0;width:100%;height:100%}
.tc__badge{position:absolute;left:18px;top:18px;padding:8px 14px;border-radius:999px;background:var(--paper);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.tc__badge::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gd);margin-right:8px;vertical-align:1px;animation:blink 1.6s infinite}
@keyframes blink{50%{opacity:.25}}
.tc__for{margin-top:18px;font-size:.76rem;font-weight:600;letter-spacing:.04em;color:var(--mute);line-height:1.45}
.tc h3{margin-top:8px;font-size:clamp(1.2rem,1.6vw,1.5rem);line-height:1.18;letter-spacing:-.02em;font-weight:700}
.tc--feature h3{font-size:clamp(1.45rem,2.3vw,2.2rem);letter-spacing:-.03em}
.tc__note{margin-top:10px;font-size:.92rem;color:var(--ink2);max-width:36em}
.tc__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.tc__chips span{padding:5px 12px;border-radius:999px;border:1px solid var(--line);font-size:.72rem;font-weight:600;color:var(--ink2)}
.tc__chips span:first-child{background:var(--tr-l);border-color:transparent;color:var(--tr-d)}

/* =========================================================
   PROGRAMMES — dark panel that opens up
   ========================================================= */
.dark{position:relative;padding:clamp(20px,3vw,40px) 0}
.dark__panel{--i:clamp(12px,3.4vw,48px);--rr:36px;background:var(--ink);color:var(--paper);padding:clamp(80px,10vw,150px) 0;clip-path:inset(0 var(--i) round var(--rr));position:relative;overflow:hidden}
.dark__panel::before{content:"";position:absolute;width:900px;height:900px;right:-300px;top:-380px;border-radius:50%;background:radial-gradient(closest-side,rgba(24,146,191,.22),transparent);pointer-events:none}
.dark .h2{color:var(--paper)}
.formats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(40px,5vw,64px)}
.formats li{padding:10px 18px;border-radius:999px;border:1px solid rgba(244,241,236,.16);font-size:.84rem;color:rgba(244,241,236,.72)}
.formats b{color:var(--paper);font-weight:650}
.idx{border-top:1px solid rgba(244,241,236,.14)}
.idx li{border-bottom:1px solid rgba(244,241,236,.14)}
.idx a{position:relative;display:grid;grid-template-columns:64px minmax(0,1.1fr) minmax(0,1fr) 40px;align-items:center;gap:24px;padding:28px 8px;isolation:isolate;transition:color .45s var(--ease),padding .5s var(--ease)}
.idx a::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--tr);transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease)}
.idx a:hover::before{transform:scaleY(1)}
.idx a:hover{padding-left:24px;padding-right:24px}
.idx__n{font-size:.8rem;font-weight:600;color:rgba(244,241,236,.45);font-variant-numeric:tabular-nums;transition:color .4s}
.idx__t{font-size:clamp(1.25rem,2.3vw,2.05rem);font-weight:650;letter-spacing:-.025em;line-height:1.12}
.idx__d{font-size:.92rem;color:rgba(244,241,236,.6);transition:color .4s}
.idx a i{font-style:normal;font-size:1.3rem;justify-self:end;transform:translateX(-8px);opacity:.4;transition:transform .5s var(--ease),opacity .4s}
.idx a:hover .idx__n,.idx a:hover .idx__d{color:rgba(255,255,255,.88)}
.idx a:hover i{transform:none;opacity:1}

.reel{position:relative;margin-top:clamp(60px,8vw,110px);border-radius:28px;overflow:hidden;aspect-ratio:1100/556}
.reel img{width:100%;height:100%;object-fit:cover;transform:scale(calc(1.18 - var(--rp,0) * .18));filter:brightness(.78)}
.reel figcaption{position:absolute;left:clamp(18px,3vw,36px);bottom:clamp(18px,3vw,36px);display:flex;align-items:center;gap:16px}
.reel figcaption b{display:block;font-size:1.1rem;font-weight:700}
.reel figcaption>span:last-child{font-size:.84rem;color:rgba(244,241,236,.75)}
.reel__play{width:62px;height:62px;border-radius:50%;background:var(--paper);display:grid;place-items:center;flex:none;transition:transform .5s var(--ease)}
.reel__play svg{width:22px;height:22px;fill:var(--ink);margin-left:3px}
.reel:hover .reel__play{transform:scale(1.1)}

/* programme cards: tiles + glow + tilt */
.pcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;perspective:1200px}
.pc{position:relative;display:flex;flex-direction:column;min-height:340px;border-radius:22px;overflow:hidden;color:var(--paper);background:linear-gradient(160deg,#1F262D,#161B20);border:1px solid #2A3239;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s var(--ease),border-color .4s,box-shadow .5s;isolation:isolate}
.pc.live{transition:transform .12s linear,border-color .4s,box-shadow .5s}
.pc--wide{grid-column:1/-1;min-height:300px}
.pc:hover{border-color:rgba(24,146,191,.6);box-shadow:0 40px 70px -40px rgba(24,146,191,.55)}
.pc__tiles{position:relative;width:100%;height:118px;flex:none;opacity:.55;transition:opacity .6s}
.pc--wide .pc__tiles{height:150px}
.pc:hover .pc__tiles{opacity:1}
.pc__tiles::after{content:""}
.pc::before{content:"";position:absolute;left:0;right:0;top:0;height:118px;background:linear-gradient(180deg,transparent 40%,#1B2127);z-index:1;pointer-events:none}
.pc--wide::before{height:150px}
.pc__light{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(24,146,191,.32),transparent 62%)}
.pc:hover .pc__light{opacity:1}
.pc__n{position:absolute;left:24px;top:20px;z-index:2;padding:6px 11px;border-radius:999px;background:rgba(21,25,29,.75);backdrop-filter:blur(6px);font-size:.72rem;font-weight:700;letter-spacing:.1em;color:#5ABEE2}
.pc__mark{position:absolute;right:22px;top:calc(118px - 22px);z-index:2;width:44px;height:44px;fill:var(--tr);transition:transform .7s var(--ease)}
.pc--wide .pc__mark{top:calc(150px - 22px)}
.pc:hover .pc__mark{transform:rotate(-10deg) scale(1.08)}
.pc__body{position:relative;z-index:2;display:flex;flex-direction:column;flex:1;padding:30px 26px 26px}
.pc h3{margin-top:auto;font-size:1.22rem;line-height:1.2;letter-spacing:-.02em;font-weight:650}
.pc--wide h3{font-size:clamp(1.4rem,2vw,1.8rem)}
.pc p{margin-top:10px;font-size:.88rem;line-height:1.55;color:rgba(244,241,236,.62)}
.pc__go{position:absolute;right:24px;bottom:24px;z-index:2;font-style:normal;opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .5s var(--ease)}
.pc:hover .pc__go{opacity:1;transform:none}
.pc:hover .pc__body{padding-right:52px}
@media (max-width:1100px){.pcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.pcards{grid-template-columns:minmax(0,1fr)}.pc--wide{grid-column:auto}.pc{min-height:280px}}

/* =========================================================
   ABOUT
   ========================================================= */
.about{padding:clamp(100px,13vw,180px) 0 clamp(60px,8vw,110px)}
.about__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,7vw,120px);align-items:center}
.about__photo{position:relative;aspect-ratio:4/5;min-width:0;border-radius:999px 999px 28px 28px;overflow:hidden;background:var(--grad-tr);display:flex;align-items:flex-end;isolation:isolate}
.about__shape{position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 45% at 30% 20%,rgba(255,255,255,.22),transparent 70%)}
.about__photo img{position:relative;width:100%;height:auto;display:block}
.about__lede{margin-top:24px;font-size:1.08rem;color:var(--ink2);max-width:34em}
.pillars{margin-top:36px;display:grid;gap:0;border-top:1px solid var(--line)}
.pillars li{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto;column-gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}
.pillars svg{grid-row:1/3;width:40px;height:40px}
.pillars li:nth-child(1) svg{fill:var(--ar)}
.pillars li:nth-child(2) svg{fill:var(--gd)}
.pillars li:nth-child(3) svg{fill:var(--tr)}
.pillars b{font-size:1.02rem;font-weight:650}
.pillars span{font-size:.9rem;color:var(--mute);margin-top:2px}
.about__sig{width:180px;height:auto;margin-top:32px;opacity:.85}

/* =========================================================
   QUOTE
   ========================================================= */
.quote{padding:clamp(60px,8vw,110px) 0;border-top:1px solid var(--line)}
.quote__slides{display:grid;max-width:1100px}
.q{grid-area:1/1;opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .9s var(--ease);pointer-events:none}
.q.is-on{opacity:1;transform:none;pointer-events:auto}
.q blockquote{font-size:clamp(1.6rem,3.3vw,3rem);line-height:1.18;letter-spacing:-.03em;font-weight:300}
.q figcaption{margin-top:28px;font-size:.9rem;color:var(--mute)}
.q figcaption b{color:var(--ink);font-weight:650}
.quote__nav{display:flex;align-items:center;gap:10px;margin-top:36px}
.ph-tag{margin-right:auto;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gd);padding:6px 12px;border:1px dashed rgba(188,69,69,.45);border-radius:999px}
.qbtn{width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(21,25,29,.2);font-size:1.1rem;transition:background .4s,color .4s,border-color .4s}
.qbtn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* =========================================================
   BEYOND — two doors
   ========================================================= */
.beyond{padding:clamp(60px,8vw,110px) 0}
.doors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);perspective:1400px}
.door{display:block}
.door__in{position:relative;min-height:clamp(420px,40vw,560px);border-radius:var(--r);overflow:hidden;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s var(--ease),box-shadow .6s;box-shadow:0 30px 60px -40px rgba(21,25,29,.5);display:flex;align-items:flex-end;padding:clamp(14px,1.6vw,22px)}
.door.live .door__in{transition:transform .12s linear,box-shadow .6s}
.door:hover .door__in{box-shadow:0 50px 90px -40px rgba(21,25,29,.6)}
.door__tiles{position:absolute;inset:0;width:100%;height:100%}
.door__body{position:relative;width:100%;padding:clamp(22px,2.6vw,34px);border-radius:20px;background:rgba(251,250,247,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .6s var(--ease)}
.door:hover .door__body{transform:translateY(-6px)}
.door__mark{width:46px;height:46px}
.door--ar .door__mark{fill:var(--ar-d)}
.door--gd .door__mark{fill:var(--gd)}
.door__k{margin-top:16px;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.door h3{margin-top:8px;font-size:clamp(1.35rem,2.1vw,1.9rem);line-height:1.15;letter-spacing:-.025em;font-weight:700}
.door p:not(.door__k){margin-top:10px;font-size:.94rem;color:var(--ink2)}
.door__go{display:inline-flex;gap:.5em;margin-top:20px;font-size:.88rem;font-weight:700}
.door--ar .door__go{color:var(--ar-d)}
.door--gd .door__go{color:var(--gd)}
.door__go i{font-style:normal;transition:transform .4s var(--ease)}
.door:hover .door__go i{transform:translateX(5px)}

/* =========================================================
   JOURNAL
   ========================================================= */
.journal{padding:0 0 clamp(80px,10vw,140px)}
.post{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:var(--r);overflow:hidden;background:var(--card);border:1px solid rgba(21,25,29,.06)}
.post__img{display:block;overflow:hidden;min-height:260px}
.post__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.post:hover .post__img img{transform:scale(1.05)}
.post__body{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,4vw,56px)}
.post__t{display:block;margin-top:14px;font-size:clamp(1.6rem,2.8vw,2.4rem);font-weight:700;letter-spacing:-.03em;line-height:1.1}
.post__x{display:block;margin-top:12px;color:var(--ink2);font-size:.96rem}

/* =========================================================
   BOOK + FOOTER
   ========================================================= */
.book{background:var(--ink);color:var(--paper);padding:clamp(90px,11vw,160px) 0 clamp(70px,9vw,120px);position:relative;overflow:hidden}
.book::before{content:"";position:absolute;left:-200px;bottom:-400px;width:800px;height:800px;border-radius:50%;background:radial-gradient(closest-side,rgba(24,146,191,.25),transparent)}
.book__grid{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,100px);align-items:start}
.book .h2{color:var(--paper);font-size:clamp(2.3rem,4.2vw,4rem)}
.book__lede{margin-top:20px;color:rgba(244,241,236,.68)}
.book__direct{margin-top:40px;display:grid;gap:10px;font-size:.95rem}
.book__direct a{display:inline-block;border-bottom:1px solid rgba(244,241,236,.25);padding-bottom:2px;transition:border-color .3s,color .3s}
.book__direct a:hover{color:#5ABEE2;border-color:#5ABEE2}

.foot{background:#0F1215;color:rgba(244,241,236,.7);padding:clamp(60px,7vw,90px) 0 28px;font-size:.9rem}
.foot__grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:40px}
.foot__logo{display:block;height:44px;width:190px;aspect-ratio:1116.6/747;fill:var(--paper)}
.foot__brand p{margin-top:18px;max-width:28em}
.foot h3{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(244,241,236,.45);margin-bottom:14px}
.foot nav a,.foot__grid>div>a{display:block;padding:4px 0;color:var(--paper);transition:color .3s}
.foot a:hover{color:#5ABEE2}
.foot__s{margin-top:6px;font-size:.84rem}
.foot__base{display:flex;justify-content:space-between;gap:20px;margin-top:60px;padding-top:24px;border-top:1px solid rgba(244,241,236,.1);font-size:.8rem}
.mbook{display:none}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1100px){
  .idx a{grid-template-columns:48px minmax(0,1fr) 30px}
  .idx__d{grid-column:2;grid-row:2;margin-top:-14px}
  .idx a i{grid-column:3;grid-row:1/3}
}
@media (max-width:980px){

}
@media (max-width:900px){
  body{font-size:16px}

  .hero{padding-top:96px;min-height:0}
  .hero__grid{grid-template-columns:minmax(0,1fr);gap:0}
  .hero__copy{display:contents}
  .eyebrow{order:1;font-size:.62rem;letter-spacing:.12em;gap:6px}
  .eyebrow i{display:none}
  .eyebrow span{padding:6px 11px;border:1px solid var(--line);border-radius:999px;background:rgba(251,250,247,.6)}
  .eyebrow span:first-child{border-color:rgba(24,146,191,.35);color:var(--tr-d)}
  .hero__title{order:2;font-size:clamp(3rem,14vw,4.6rem)}
  .hero__visual{order:3;margin-top:22px}
  .hero__lede{order:4}
  .hero__ctas{order:5}
  .hero__facts{order:6}
  .stage{width:min(80%,320px);margin-top:36px}

  .stage__tag{left:-14px;bottom:18px;padding:11px 14px}
  .stage__tag span{font-size:.58rem;letter-spacing:.08em}
  .hero__ctas .btn{flex:1 1 220px;justify-content:center}
  .hero__facts>div{padding-right:10px}
  .hero__facts>div+div{padding-left:12px}
  .rail li{width:128px;height:74px;border-radius:14px}
  .rail li img{max-width:84px;max-height:36px}
  .tr__pin{position:relative;height:auto;padding:clamp(70px,12vw,100px) 0 20px}
  .tr__meta{display:none}
  .tr__track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--g) 18px;scrollbar-width:none;transform:none!important}
  .tr__track::-webkit-scrollbar{display:none}
  .tc{width:82vw;scroll-snap-align:start;scroll-margin-left:var(--g)}
  .tc--feature{width:86vw}
  .tc__media img{transform:none}
  .dark__panel{--rr:24px}
  .idx a{grid-template-columns:36px minmax(0,1fr) 22px;gap:14px;padding:22px 4px}
  .idx__d{margin-top:-6px}
  .about__grid{grid-template-columns:minmax(0,1fr)}
  .about__photo{max-width:420px;margin:0 auto;width:100%}
  .doors{grid-template-columns:minmax(0,1fr)}
  .post{grid-template-columns:minmax(0,1fr)}
  .post__img{min-height:0;aspect-ratio:2/1}
  .book__grid{grid-template-columns:minmax(0,1fr)}
  .foot__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot__brand{grid-column:1/-1}
  .mbook{position:fixed;left:16px;right:16px;bottom:max(14px,env(safe-area-inset-bottom));z-index:40;display:flex;justify-content:space-between;align-items:center;height:54px;padding:0 22px;border-radius:999px;background:var(--tr);color:#fff;font-weight:650;box-shadow:0 18px 40px -16px rgba(16,112,147,.7);transform:translateY(140%);transition:transform .6s var(--ease)}
  .mbook i{font-style:normal}
  .mbook.on{transform:none}
}
@media (max-width:560px){
  .steps{grid-template-columns:minmax(0,1fr)}
  .hero__facts dd{font-size:.74rem}
  .quote__nav .ph-tag{font-size:.64rem}
  .foot__base{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .js .in,.js .wd,.js .rv,.js .stage,.js .stage__me{opacity:1;transform:none}
  .stage__me{transform:translateX(-50%)}
}


/* =========================================================
   v4.7 — MODS-style shell: sidebar + content column
   ========================================================= */
:root{--side:150px;--col:980px;--colgap:clamp(48px,6vw,96px);--pad:clamp(24px,4vw,56px)}
.shell{display:grid;grid-template-columns:var(--side) minmax(0,var(--col));justify-content:center;column-gap:var(--colgap);padding:0 var(--pad)}
@media (min-width:1500px){.shell{padding-right:calc(var(--pad) + 200px)}}
.shell>main{grid-column:2;min-width:0}
.shell .wrap{max-width:none;padding:0;margin:0}

/* sidebar */
.side{grid-column:1;position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding:44px 0 26px;z-index:20}
.js .side{opacity:0;transform:translateY(16px)}
.ready .side{opacity:1;transform:none;transition:opacity 1s var(--ease) .1s,transform 1s var(--ease) .1s}
.side__logo svg{display:block;width:146px;height:34px;fill:var(--ink)}
.side__nav{display:flex;flex-direction:column;gap:7px;margin-top:40px}
.side__nav a{display:inline-flex;align-items:center;width:max-content;font-size:.84rem;line-height:1.25;color:#8A8F94;transition:color .25s}
.side__nav a::before{content:"";width:0;height:1.5px;border-radius:2px;background:var(--tr);margin-right:0;transition:width .35s var(--ease),margin .35s var(--ease)}
.side__nav a:hover{color:var(--ink)}
.side__nav a:hover::before{width:12px;margin-right:8px}
.side__nav a.on{color:var(--ink);font-weight:650}
.side__nav a.on::before{width:8px;margin-right:8px}
.side__cta{display:inline-flex;align-items:center;gap:8px;margin-top:30px;height:40px;padding:0 5px 0 16px;width:max-content;border-radius:999px;background:var(--ink);color:var(--paper);font-size:.78rem;font-weight:650;transition:background .4s,transform .4s var(--ease)}
.side__cta i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.14);transition:transform .45s var(--ease)}
.side__cta svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.side__cta:hover{background:var(--tr)}
.side__cta:hover i{transform:rotate(-45deg)}
.side__mods{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:.74rem;font-weight:650;color:var(--ink2);line-height:1.2}
.side__mods svg{width:26px;height:26px;fill:var(--gd);flex:none;transition:transform .5s var(--ease)}
.side__mods small{font-size:.66rem;font-weight:500;color:var(--mute)}
.side__mods:hover svg{transform:rotate(-10deg) scale(1.08)}
.side__foot{display:grid;gap:4px;font-size:.74rem;color:var(--mute)}

/* mobile top bar + drawer (hidden on desktop) */
.top{display:none}
.drawer{display:none}

/* sections inside the column */
.hero{padding:clamp(40px,7vh,80px) 0;min-height:100svh}
.hero__grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(28px,4vw,64px)}
.hero__title{font-size:clamp(3rem,5.6vw,5.6rem)}
.trusted{border-top:0}
.tr__track{padding:0 0 10px}
.tr__pin{overflow:visible;clip-path:inset(-20px -100vw -20px 0)}
.dark{padding:0}
.dark__panel{padding:clamp(64px,8vw,110px) clamp(24px,4.5vw,64px);clip-path:inset(0 var(--i) round var(--rr))}
.book{border-radius:28px;padding:clamp(56px,7vw,96px) clamp(24px,4.5vw,64px)}
.foot{border-radius:28px 28px 0 0;margin-top:clamp(40px,6vw,80px);padding:clamp(48px,6vw,72px) clamp(24px,4.5vw,64px) 26px}
.foot__grid{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:32px}
.about{padding:clamp(90px,11vw,150px) 0 clamp(50px,7vw,90px)}

/* hero portrait: framed upper body, photo stays still */
.stage{width:min(100%,360px);aspect-ratio:1/1.16;margin-top:0}
.stage__photo{position:absolute;inset:0;border-radius:var(--r);overflow:hidden;pointer-events:none}
.stage__me{position:absolute;left:50%;bottom:0;width:104%;height:auto;max-width:none;transform:translateX(-50%);border-radius:0}
.stage__card{transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1.04)}
.stage__tag{left:-26px;bottom:26px}

/* contact list (original look, grouped content) */
.opts{display:grid;gap:14px}
.optgroup{border-radius:20px;background:rgba(244,241,236,.04);box-shadow:inset 0 0 0 1px rgba(244,241,236,.12);padding:8px 8px 4px;overflow:hidden}
.optgroup__h{display:flex;align-items:center;gap:12px;padding:16px 14px 14px;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#5ABEE2}
.optgroup__h svg{width:26px;height:26px;fill:#5ABEE2}
.opt{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 30px;grid-template-rows:auto auto;column-gap:14px;padding:22px 16px;border-top:1px solid rgba(244,241,236,.12);border-radius:14px;isolation:isolate;overflow:hidden;transition:padding .5s var(--ease),color .4s}
.optgroup .opt{border-radius:12px}
.opt::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--tr);clip-path:inset(0 100% 0 0);transition:clip-path .6s var(--ease)}
.opt:hover::before{clip-path:inset(0 0 0 0)}
.opt:hover{padding-left:24px}
.opt--ar,.opt--gd{border-top:0;box-shadow:inset 0 0 0 1px rgba(244,241,236,.12);border-radius:20px}
.opt--ar::before{background:var(--ar)}
.opt--gd::before{background:var(--gd)}
.opt--ar:hover{color:var(--ink)}
.opt__n{grid-row:1/3;font-size:.78rem;font-weight:600;color:rgba(244,241,236,.45);padding-top:5px;transition:color .4s}
.opt b{font-size:clamp(1.1rem,1.7vw,1.4rem);font-weight:650;letter-spacing:-.02em}
.opt span:not(.opt__n){font-size:.86rem;color:rgba(244,241,236,.6);transition:color .4s}
.opt:hover span{color:rgba(255,255,255,.85)}
.opt--ar:hover .opt__n,.opt--ar:hover span:not(.opt__n){color:rgba(21,25,29,.7)}
.opt i{grid-column:3;grid-row:1/3;align-self:center;font-style:normal;font-size:1.15rem;transition:transform .45s var(--ease)}
.opt:hover i{transform:translateX(4px)}
.book__grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}

/* =========================================================
   MEASURED — before, during, after
   ========================================================= */
.measure{margin-top:clamp(90px,11vw,150px);padding-top:clamp(60px,7vw,90px);border-top:1px solid rgba(244,241,236,.12)}
.measure__head{max-width:720px}
.measure__h{margin-top:18px;font-size:clamp(2.2rem,4.6vw,4rem);line-height:1;letter-spacing:-.04em;font-weight:300}
.measure__h em{font-style:normal;font-weight:750;color:#5ABEE2;position:relative}
.measure__lede{margin-top:22px;max-width:36em;font-size:1rem;color:rgba(244,241,236,.68)}
.measure__grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(32px,5vw,72px);margin-top:clamp(44px,5vw,64px);align-items:start}
.flow{position:relative;display:grid;gap:30px;padding-left:66px}
.flow__line{position:absolute;left:21px;top:22px;bottom:22px;width:2px;background:rgba(244,241,236,.12);border-radius:2px}
.flow__line i{position:absolute;inset:0;background:linear-gradient(#5ABEE2,var(--tr));transform:scaleY(var(--fp,0));transform-origin:top;border-radius:2px}
.flow__s{position:relative;opacity:.38;transition:opacity .6s var(--ease)}
.flow__s.on{opacity:1}
.flow__dot{position:absolute;left:-66px;top:-4px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--ink);box-shadow:inset 0 0 0 1.5px rgba(244,241,236,.22);font-size:.72rem;font-weight:700;color:rgba(244,241,236,.7);transition:background .5s,box-shadow .5s,color .5s,transform .6s var(--ease)}
.flow__s.on .flow__dot{background:var(--tr);box-shadow:0 0 0 6px rgba(24,146,191,.18);color:#fff;transform:scale(1.05)}
.flow__when{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#5ABEE2}
.flow__s b{display:block;margin-top:6px;font-size:1.25rem;font-weight:650;letter-spacing:-.015em}
.flow__s p:not(.flow__when){margin-top:6px;font-size:.9rem;color:rgba(244,241,236,.62);max-width:30em}
.report{position:sticky;top:120px;border-radius:24px;padding:26px 26px 22px;background:linear-gradient(160deg,#20272E,#171C21);box-shadow:inset 0 0 0 1px rgba(244,241,236,.1),0 40px 80px -40px rgba(0,0,0,.8)}
.report__h{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid rgba(244,241,236,.1)}
.report__h svg{width:34px;height:34px;fill:var(--tr)}
.report__h b{display:block;font-size:1rem;font-weight:650}
.report__h span{display:block;font-size:.72rem;color:rgba(244,241,236,.5);margin-top:2px}
.report__legend{display:flex;gap:16px;margin:18px 0 6px;font-size:.7rem;font-weight:600;color:rgba(244,241,236,.6)}
.report__legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.report__legend .lg-pre::before{background:rgba(244,241,236,.28)}
.report__legend .lg-post::before{background:var(--tr)}
.report__rows{display:grid;gap:14px;margin-top:10px}
.report__rows li{display:grid;grid-template-columns:110px minmax(0,1fr) 40px;align-items:center;gap:12px;font-size:.8rem;color:rgba(244,241,236,.78)}
.report__rows em{font-style:normal;font-weight:700;text-align:right;color:#5ABEE2;font-variant-numeric:tabular-nums}
.bar{position:relative;height:10px;border-radius:999px;background:rgba(244,241,236,.07);overflow:hidden}
.bar i{position:absolute;left:0;top:0;bottom:0;border-radius:inherit;width:0;transition:width 1.4s var(--ease)}
.b-pre{background:rgba(244,241,236,.28);z-index:1}
.b-post{background:linear-gradient(90deg,#17708A,#5ABEE2)}
.report.s1 .b-pre{width:calc(var(--pre) * 1%)}
.report.s3 .b-post{width:calc(var(--post) * 1%)}
.report.s3 .b-pre{z-index:2;background:rgba(21,25,29,.45)}
.report__f{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(244,241,236,.1);opacity:.35;transition:opacity .6s}
.report.s4 .report__f{opacity:1}
.report__f b{display:block;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.report__f span{display:block;font-size:.68rem;line-height:1.3;color:rgba(244,241,236,.55);margin-top:2px}

/* tablet / mobile: hide sidebar, show top bar */
@media (max-width:1100px){
  .shell{display:block;padding:0 var(--pad)}
  .side{display:none}
  .top{display:flex;position:fixed;z-index:50;left:0;right:0;top:0;height:72px;align-items:center;justify-content:space-between;padding:0 var(--pad);transition:background .4s,box-shadow .4s,color .4s,transform .6s var(--ease)}
  .top.is-scrolled{background:rgba(244,241,236,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
  .top.is-dark{color:var(--paper)}
  .top.is-dark.is-scrolled{background:rgba(21,25,29,.82)}
  .top.is-hidden{transform:translateY(-100%)}
  .brand__logo{display:block;width:129px;height:30px;fill:currentColor}
  .burger{display:block;width:46px;height:46px;border-radius:50%;position:relative}
  .burger span{position:absolute;left:14px;right:14px;height:2px;background:currentColor;border-radius:2px;transition:transform .4s var(--ease),top .4s var(--ease)}
  .burger span:first-child{top:18px}
  .burger span:last-child{top:26px}
  .menu-open .top{color:var(--paper);background:transparent!important;box-shadow:none!important}
  .menu-open .burger span:first-child{top:22px;transform:rotate(45deg)}
  .menu-open .burger span:last-child{top:22px;transform:rotate(-45deg)}
  .drawer{display:flex;position:fixed;inset:0;z-index:45;flex-direction:column;justify-content:center;gap:6px;padding:0 var(--pad);background:var(--ink);color:var(--paper);font-size:clamp(1.7rem,6vw,2.4rem);font-weight:650;letter-spacing:-.02em;clip-path:circle(0 at calc(100% - 46px) 36px);transition:clip-path .8s var(--ease-io);pointer-events:none}
  .drawer a{padding:4px 0}
  .drawer__cta{color:#5ABEE2;margin-top:14px}
  .menu-open .drawer{clip-path:circle(150% at calc(100% - 46px) 36px);pointer-events:auto}
  .hero{padding-top:96px}
  .measure__grid{grid-template-columns:minmax(0,1fr)}
  .report{position:relative;top:0}
}
@media (max-width:900px){
  .hero__grid,.book__grid{grid-template-columns:minmax(0,1fr)}
  .hero__title{font-size:clamp(3rem,14vw,4.6rem)}
  .stage{width:min(78%,320px);margin-top:30px}
  .tr__pin{clip-path:none}
  .tr__track{padding:0 0 18px;margin:0 calc(var(--pad) * -1);padding-left:var(--pad);padding-right:var(--pad)}
  .tc{scroll-margin-left:var(--pad)}
  .dark__panel,.book{border-radius:22px}
  .foot__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .report__rows li{grid-template-columns:92px minmax(0,1fr) 34px;font-size:.74rem}
  .report{padding:20px 16px}
  .flow{padding-left:58px}
  .flow__dot{left:-58px;width:40px;height:40px}
  .flow__line{left:19px}
  .opt{grid-template-columns:28px minmax(0,1fr) 20px;padding:18px 10px;column-gap:10px}
  .opt:hover{padding-left:14px}
}

/* =========================================================
   v4.8 — MODS layout, MODS type scale, full-bleed dark bands
   ========================================================= */
:root{--side:120px;--col:960px;--colgap:80px;--pad:40px}
body{font-size:15px}
.shell{grid-template-columns:var(--side) minmax(0,var(--col));column-gap:var(--colgap);padding:0 var(--pad)}
@media (min-width:1500px){.shell{padding-right:calc(var(--pad) + 240px)}}
.side{padding:40px 0 18px}
.side__logo svg{width:120px;height:28px}
.side__nav{margin-top:30px;gap:5px}
.side__nav a{font-size:14px;line-height:17px;color:#8A8F94}
.side__cta{margin-top:26px;height:36px;font-size:.74rem;padding:0 4px 0 14px}
.side__cta i{width:28px;height:28px}
.side__mods{margin-top:20px}
.side__foot{font-size:13px;line-height:1.2;color:#8A8F94;gap:5px}
.side,.side__logo svg,.side__nav a,.side__cta,.side__foot,.side__mods{transition:color .4s,fill .4s,background .4s}
.side.on-dark .side__logo svg{fill:var(--paper)}
.side.on-dark .side__nav a{color:rgba(244,241,236,.5)}
.side.on-dark .side__nav a:hover,.side.on-dark .side__nav a.on{color:var(--paper)}
.side.on-dark .side__cta{background:var(--paper);color:var(--ink)}
.side.on-dark .side__mods{color:rgba(244,241,236,.8)}
.side.on-dark .side__mods small,.side.on-dark .side__foot{color:rgba(244,241,236,.45)}

/* type scale (MODS) */
.label{font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--tr)}
.label::before{display:none}
.label--light{color:#5ABEE2}
.h2{font-size:clamp(1.9rem,2.7vw,2.5rem);line-height:1.08;font-weight:300;letter-spacing:-.03em;margin-top:.45em}
.h2 b{font-weight:700}
.sec{margin-bottom:clamp(28px,4vw,48px)}
.eyebrow{font-size:11px;letter-spacing:.14em}
.hero__title{margin-top:18px;font-size:clamp(2.5rem,3.6vw,3.3rem);line-height:1.04;letter-spacing:-.03em;font-weight:700}
.hero__title .lt{font-weight:300;letter-spacing:-.03em}
.hero__lede{margin-top:20px;font-size:15px;line-height:1.6;max-width:30em}
.hero__ctas{margin-top:26px}
.btn{height:46px;padding:0 22px;font-size:.84rem}
.hero__facts{margin-top:40px}
.hero__facts dt{font-size:1.5rem}
.hero__facts dd{font-size:12px}
.stage{width:min(100%,330px)}
.stage__tag{padding:11px 16px 11px 14px}
.stage__tag b{font-size:.85rem}
.stage__tag span{font-size:.62rem}
.trusted{padding:40px 0 60px}
.trusted__note{font-size:13px}
.tr__head .h2{margin-top:.35em}
.tc h3{font-size:1.08rem}
.tc--feature h3{font-size:1.45rem}
.tc__note{font-size:.86rem}
.tc{width:clamp(270px,min(27vw,58vh),400px)}
.tc--feature{width:clamp(300px,min(38vw,76vh),580px)}
.pc h3{font-size:1.02rem}
.pc--wide h3{font-size:1.4rem}
.pc p{font-size:.84rem}
.measure__h{font-size:clamp(2rem,3vw,2.6rem)}
.measure__lede{font-size:15px}
.flow__s b{font-size:1.05rem}
.flow__s p:not(.flow__when){font-size:.86rem}
.about__lede{font-size:15px}
.pillars b{font-size:.95rem}
.pillars span{font-size:.84rem}
.q blockquote{font-size:clamp(1.35rem,2.2vw,1.9rem)}
.door h3{font-size:1.3rem}
.door p:not(.door__k){font-size:.88rem}
.post__t{font-size:1.6rem}
.post__x{font-size:.9rem}
.book .h2{font-size:clamp(1.9rem,2.7vw,2.5rem)}
.book__lede{font-size:15px}
.opt b{font-size:1.1rem}
.opt span:not(.opt__n){font-size:.82rem}
.optgroup__h{font-size:11px}

/* dark bands fill the page width */
.dark__panel,.book,.foot{position:relative;isolation:isolate;background:transparent;border-radius:0;clip-path:none;overflow:visible;padding-left:0;padding-right:0}
.dark__panel::after,.book::after,.foot::after{content:"";position:absolute;top:0;bottom:0;left:-100vw;right:-100vw;z-index:-2;background:var(--ink)}
.foot::after{background:#0F1215}
.dark__panel::before{z-index:-1}
.dark__panel::after{clip-path:inset(0 var(--ir,100vw) 0 var(--il,100vw) round var(--rr,0px))}
.dark{margin-top:clamp(40px,6vw,80px)}
.book{margin-top:clamp(60px,8vw,110px);padding:clamp(80px,9vw,120px) 0}
.book::before{left:-300px}
.foot{margin-top:0;padding:clamp(56px,6vw,80px) 0 28px}
.book+.foot::before{content:"";position:absolute;left:-100vw;right:-100vw;top:0;height:1px;background:rgba(244,241,236,.08)}
.journal{padding-bottom:0}

@media (max-width:1100px){
  .shell{padding:0 24px}
  .side{display:none}
}
@media (max-width:900px){
  .hero__title{font-size:clamp(2.4rem,11vw,3.2rem)}
  .tc{width:82vw}
  .tc--feature{width:86vw}
}
@media (max-width:640px){.shell{padding:0 16px}}
.shell{overflow-x:clip}

/* per-element sidebar inversion */
.side__logo.on-dark svg{fill:var(--paper)}
.side__nav a.on-dark{color:rgba(244,241,236,.5)}
.side__nav a.on-dark:hover,.side__nav a.on-dark.on{color:var(--paper)}
.side__cta.on-dark{background:var(--paper);color:var(--ink)}
.side__mods.on-dark{color:rgba(244,241,236,.8)}
.side__mods.on-dark small,.side__foot.on-dark{color:rgba(244,241,236,.45)}
.dark__panel::before{top:0;right:-260px;width:760px;height:760px}
.foot::after{bottom:-400px}

/* v4.9 hero: free pattern field (no card), no floating tag, 4 figures */
.stage{width:min(100%,410px);aspect-ratio:6/7}
.stage__card{background:none;box-shadow:none;border-radius:0;overflow:visible;transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
.stage__photo{border-radius:0;overflow:visible}
.stage__me{width:100%;left:50%}
.stage__tiles g{transform-origin:center}
.hero__facts{grid-template-columns:repeat(4,minmax(0,1fr))}
.hero__facts>div{padding:16px 12px 0 0}
.hero__facts>div+div{padding-left:14px}
.hero__facts dt{font-size:1.45rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.hero__facts dd{font-size:12px}
@media (max-width:900px){
  .stage{width:min(88%,360px)}
  .hero__facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}
  .hero__facts>div:nth-child(3){padding-left:0;border-left:0}
}

/* =========================================================
   v5.0 — white, mark-only logo, tall hero pattern, catalogue,
   real session clips, logo-geometry about, statement, journal
   ========================================================= */
:root{--paper:#FFFFFF;--paper2:#F3F4F5;--card:#F6F7F8;--line:rgba(21,25,29,.1)}
body{background:#fff}
@media (max-width:1100px){.top.is-scrolled{background:rgba(255,255,255,.88)}}
.side__logo svg{width:58px;height:31px}
.brand__logo{width:56px!important;height:30px!important}
.rail li{background:var(--card);border-color:rgba(21,25,29,.05)}

/* hero: pattern column runs from the top of the page down to the photo */
.hero{padding:0;min-height:100svh;display:block}
.hero::before{display:none}
.hero__grid{min-height:100svh;align-items:stretch}
.hero__copy{align-self:center;padding:70px 0}
.hero__visual{position:relative;min-height:100svh;display:block;perspective:none}
.stage{position:absolute;top:0;bottom:0;left:50%;width:min(100%,460px);aspect-ratio:auto;margin:0;transform:translateX(-50%)}
.js .stage{opacity:0;transform:translate(-50%,24px)}
.ready .stage{opacity:1;transform:translateX(-50%)}
.stage__card{transform:none}
.stage__me{width:100%}

/* catalogue */
.cat{margin-top:clamp(80px,10vw,130px)}
.cat__h{margin-top:14px;max-width:760px;font-size:clamp(1.7rem,2.6vw,2.3rem);line-height:1.1;font-weight:300;letter-spacing:-.03em}
.cat__h b{font-weight:700}
.cat__lede{margin-top:16px;max-width:38em;font-size:15px;color:rgba(255,255,255,.62)}
.cat__lede b{color:#fff;font-weight:650}
.cat__tabs{position:relative;display:flex;gap:4px;margin-top:34px;padding:6px;border-radius:999px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.cat__tab{position:relative;z-index:1;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 12px;border-radius:999px;font-size:.84rem;font-weight:600;color:rgba(255,255,255,.62);white-space:nowrap;transition:color .35s}
.cat__tab svg{width:22px;height:22px;fill:currentColor}
.cat__tab em{font-style:normal;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.14)}
.cat__tab.is-on{color:#fff}
.cat__ind{position:absolute;z-index:0;top:6px;bottom:6px;left:0;width:0;border-radius:999px;background:var(--grad-tr);transition:transform .55s var(--ease),width .55s var(--ease),background .4s}
.cat__panels{display:grid;margin-top:36px}
.cat__panel{grid-area:1/1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px;opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
.cat__panel.is-on{opacity:1;visibility:visible;transition:opacity .4s}
.cat__panel[data-k="ar"]{grid-template-columns:repeat(4,minmax(0,1fr))}
.cat__panel[data-k="tr"]{--acc:#5ABEE2}
.cat__panel[data-k="gd"]{--acc:#E58585}
.cat__panel[data-k="ar"]{--acc:#F6C24A}
.cat__col h4{margin:0;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.16);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
.cat__col ul{margin-top:4px}
.cat__col li{padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.86rem;line-height:1.35;color:rgba(255,255,255,.8);transition:color .3s,padding .4s var(--ease)}
.cat__col li:hover{color:#fff;padding-left:6px}
.cat__panel.is-on .cat__col{animation:catIn .7s var(--ease) both;animation-delay:calc(var(--i) * .06s)}
@keyframes catIn{from{opacity:0;transform:translateY(16px)}}

/* real session clips */
.reel{display:none}
.reels{margin-top:clamp(80px,10vw,130px)}
.reels__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:32px}
.clip{position:relative;margin:0;border-radius:20px;overflow:hidden;aspect-ratio:9/14;background:#0C1014}
.clip video{width:100%;height:100%;object-fit:cover;transform:scale(var(--zs,1.1))}
.clip::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,13,16,.85))}
.clip figcaption{position:absolute;z-index:1;left:18px;right:18px;bottom:16px;color:#fff}
.clip figcaption b{display:block;font-size:.95rem;font-weight:650}
.clip figcaption span{display:block;margin-top:2px;font-size:.74rem;color:rgba(255,255,255,.7)}

/* about: logo geometry behind the portrait */
.about__photo{background:none;border-radius:0;overflow:visible;aspect-ratio:1/1.08;isolation:isolate}
.about__shape{display:none}
.about__geo{position:absolute;inset:0;z-index:-1;overflow:hidden}
.about__geo i{position:absolute;bottom:0;display:block}
.about__geo .g1,.about__geo .g2,.about__geo .g3{width:17%;background:var(--grad-tr);transform:translateY(var(--gy,0%))}
.about__geo .g1{left:0;height:62%;--gy:var(--g0,0%)}
.about__geo .g2{left:20.5%;height:62%;--gy:var(--g1,0%)}
.about__geo .g3{left:41%;height:62%;--gy:var(--g2,0%)}
.about__geo .gr{right:0;bottom:auto;top:12%;width:62%;aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 12px #5ABEE2;opacity:var(--go,1);transform:scale(var(--gs,1)) rotate(var(--gr,0deg))}
.about__photo img{position:relative;width:96%;margin:0 auto}

/* statement (scroll-lit words) */
.say{position:relative;height:230vh}
.say__pin{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center}
.say__t{margin-top:22px;max-width:900px;font-size:clamp(1.6rem,2.9vw,2.6rem);line-height:1.28;font-weight:300;letter-spacing:-.02em}
.say__t .w{opacity:.13;transition:opacity .3s}
.say__t .w.on{opacity:1}
.say__t .w--b{font-weight:700;color:var(--tr)}
.say__by img{width:150px;height:auto;margin-top:28px;opacity:.9}
.quote{display:none}

/* journal: magazine */
.journal{position:relative;padding:clamp(60px,8vw,110px) 0 0}
.sec--row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.more{display:inline-flex;gap:8px;padding-bottom:4px;border-bottom:1.5px solid var(--ink);font-size:.84rem;font-weight:650}
.more i{font-style:normal;transition:transform .4s var(--ease)}
.more:hover i{transform:translateX(4px)}
.mag{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(24px,3.4vw,48px);align-items:start}
.mag__feat{position:relative;display:block}
.mag__img{display:block;border-radius:22px;overflow:hidden;aspect-ratio:4/3.1;background:var(--paper2)}
.mag__img img{width:100%;height:100%;object-fit:cover;transform:scale(var(--zs,1.08));transition:filter .5s}
.mag__feat:hover .mag__img img{filter:saturate(1.15)}
.mag__badge{position:absolute;left:16px;top:16px;padding:6px 12px;border-radius:999px;background:#fff;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.mag__body{display:block;padding-top:20px}
.mag__meta{display:block;font-size:.76rem;color:var(--mute)}
.mag__meta b{color:var(--tr);font-weight:650}
.mag__ft{display:block;margin-top:10px;font-size:1.55rem;line-height:1.15;font-weight:700;letter-spacing:-.025em;transition:color .3s}
.mag__feat:hover .mag__ft{color:var(--tr)}
.mag__x{display:block;margin-top:10px;font-size:.9rem;color:var(--ink2)}
.mag__go{display:inline-flex;gap:8px;margin-top:16px;font-size:.84rem;font-weight:650;color:var(--tr)}
.mag__go i{font-style:normal;transition:transform .4s var(--ease)}
.mag__feat:hover .mag__go i{transform:translateX(4px)}
.mag__list{border-top:1px solid var(--line)}
.mag__row{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr) auto 22px;grid-template-areas:"n t d i" "n c d i";column-gap:16px;row-gap:4px;align-items:start;padding:22px 6px;border-bottom:1px solid var(--line);transition:padding .5s var(--ease)}
.mag__row::before{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--tr);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.mag__row:hover{padding-left:14px}
.mag__row:hover::before{transform:scaleX(1)}
.mag__n{grid-area:n;padding-top:3px;font-size:.72rem;font-weight:700;color:var(--mute)}
.mag__thumb{display:none}
.mag__t{grid-area:t;font-size:1.02rem;font-weight:650;line-height:1.3;letter-spacing:-.01em;transition:color .3s}
.mag__row:hover .mag__t{color:var(--tr)}
.mag__c{grid-area:c;font-size:.74rem;font-weight:600;color:var(--tr)}
.mag__d{grid-area:d;text-align:right;font-size:.72rem;line-height:1.45;color:var(--mute);white-space:nowrap}
.mag__row i{grid-area:i;align-self:center;font-style:normal;opacity:.35;transition:transform .4s var(--ease),opacity .3s}
.mag__row:hover i{opacity:1;transform:translateX(4px)}
.mag__float{position:fixed;left:0;top:0;z-index:60;width:240px;height:170px;object-fit:cover;border-radius:16px;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.75) rotate(-5deg);transition:opacity .35s,transform .5s var(--ease);box-shadow:0 30px 60px -24px rgba(0,0,0,.45)}
.mag__float.on{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-2deg)}
.post{display:none}

@media (max-width:1100px){
  .cat__panel{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mag{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:900px){
  .hero{padding-top:84px}
  .hero__visual{min-height:0;height:min(112vw,470px);margin:26px 0 0}
  .stage{width:min(100%,400px)}
  .reels__row{grid-template-columns:repeat(3,minmax(64vw,1fr));overflow-x:auto;scroll-snap-type:x mandatory;margin:32px calc(var(--pad) * -1) 0;padding:0 var(--pad);scrollbar-width:none}
  .clip{scroll-snap-align:start}
  .say{height:180vh}
}
@media (max-width:640px){
  .cat__panel,.cat__panel[data-k="ar"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .mag__row{grid-template-columns:64px minmax(0,1fr);grid-template-areas:"th t" "th c" "th d";column-gap:14px}
  .mag__n,.mag__row i{display:none}
  .mag__thumb{grid-area:th;display:block;width:64px;height:64px;border-radius:12px;overflow:hidden}
  .mag__thumb img{width:100%;height:100%;object-fit:cover}
  .mag__d{text-align:left}
  .mag__d br{display:none}
}
.foot::after{bottom:0}
.hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.stage{width:min(112%,540px)}
.book,.dark__panel{overflow-x:visible;overflow-y:clip}
.stage__me{width:80%}
@media (max-width:900px){
  .hero__grid{grid-template-columns:minmax(0,1fr);min-height:0}
  .hero__visual{min-height:0;height:min(118vw,500px)}
  .stage{width:min(100%,420px)}
  .stage__me{width:86%}
}

/* =========================================================
   v5.1
   ========================================================= */
/* pills fill left → right */
.btn::before{transform:translateX(-101%);transition:transform .6s var(--ease)}
.btn:hover::before{transform:none}

/* pattern tiles change on the spot */
.tiles g.swap [data-c]{transition:none;opacity:.35}
.tiles g [data-c]{transition:fill 1.1s var(--ease) var(--td,0s),opacity .6s}

/* hero: photo aligned with the text block, pattern fades out from behind him */
.hero{display:flex;align-items:center;min-height:100svh;padding:64px 0}
.hero__grid{min-height:0;width:100%;align-items:stretch}
.hero__copy{padding:0}
.hero__visual{min-height:0;position:relative}
.stage{position:absolute;inset:0;width:auto;left:0;transform:none;aspect-ratio:auto}
.js .stage{opacity:0;transform:translateY(24px)}
.ready .stage{opacity:1;transform:none}
.stage__card{inset:-18% -22% 0 -22%;position:absolute;-webkit-mask-image:radial-gradient(ellipse 52% 70% at 50% 82%,#000 30%,rgba(0,0,0,.55) 52%,transparent 74%);mask-image:radial-gradient(ellipse 52% 70% at 50% 82%,#000 30%,rgba(0,0,0,.55) 52%,transparent 74%)}
.stage__photo{position:absolute;inset:0;overflow:visible}
.stage__me{position:absolute;left:50%;bottom:0;height:100%;width:auto;max-width:none;transform:translateX(-50%)}

/* figures */
.hero__facts{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:38px;border-top:1px solid var(--line)}
.hero__facts>div,.hero__facts>div+div{padding:18px 14px 0 0;border-left:0}
.fact{position:relative;cursor:default}
.fact dt{position:relative;display:inline-block;font-size:clamp(1.8rem,2.6vw,2.4rem);font-weight:300;letter-spacing:-.04em;line-height:1;color:var(--ink);transform-origin:left bottom;transition:font-weight .5s,color .5s,transform .6s var(--ease);font-variant-numeric:tabular-nums}
.fact dt::after{content:"";position:absolute;left:0;bottom:-10px;height:2px;width:16px;border-radius:2px;background:var(--line);transition:width .6s var(--ease),background .4s}
.fact dd{margin-top:22px;font-size:12px;line-height:1.45;color:var(--mute);max-width:15em;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .6s var(--ease)}
.fact.on dt{font-weight:700;color:var(--tr);transform:scale(1.08)}
.fact.on dt::after{width:100%;background:var(--tr)}
.fact.on dd{opacity:1;transform:none}
@media (hover:none){.fact dd{opacity:1;transform:none}}

/* programme cards: title only, grows on hover and reveals the line */
.pc h3{transition:font-size .5s var(--ease),transform .5s var(--ease)}
.pc p{max-height:0;margin-top:0;opacity:0;overflow:hidden;transition:max-height .6s var(--ease),opacity .5s,margin .5s}
.pc:hover p,.pc:focus-visible p{max-height:7em;margin-top:10px;opacity:1}
.pc:hover h3{font-size:1.32rem}
.pc--wide:hover h3{font-size:1.8rem}
.pc{min-height:260px}

/* all programmes: three sliding rows */
.cat__head{align-items:flex-end}
.cat__rows{display:grid;gap:26px;margin-top:38px}
.crow__k{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.crow__k svg{width:20px;height:20px;fill:currentColor}
.crow__k em{font-style:normal;font-size:10px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;letter-spacing:.06em}
.crow--tr .crow__k{color:#5ABEE2}
.crow--gd .crow__k{color:#E58585}
.crow--ar .crow__k{color:#F6C24A}
.crow__view{overflow:hidden;margin-right:calc(var(--pad) * -1 - 240px);padding:10px 0;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
.crow__track{display:flex;gap:14px;width:max-content;will-change:transform}
.crow__track>li{flex:none}
.pc--mini{width:230px;min-height:200px;border-radius:18px}
.pc--mini .pc__tiles,.pc--mini::before{height:84px}
.pc--mini .pc__mark{top:calc(84px - 18px);width:34px;height:34px}
.pc--mini .pc__body{padding:22px 20px 20px}
.pc--mini h3{font-size:.98rem}
.pc--mini:hover h3{font-size:1.12rem}
.pc--mini p{font-size:.8rem}
.pc--mini[data-pal="gd"]:hover{border-color:rgba(188,69,69,.6);box-shadow:0 40px 70px -40px rgba(188,69,69,.55)}
.pc--mini[data-pal="ar"]:hover{border-color:rgba(238,173,32,.6);box-shadow:0 40px 70px -40px rgba(238,173,32,.45)}
.pc--mini[data-pal="gd"] .pc__mark{fill:var(--gd)}
.pc--mini[data-pal="ar"] .pc__mark{fill:var(--ar)}
.pc--mini[data-pal="gd"] .pc__light{background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(188,69,69,.3),transparent 62%)}
.pc--mini[data-pal="ar"] .pc__light{background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(238,173,32,.26),transparent 62%)}
.more--light{color:#fff;border-color:rgba(255,255,255,.6)}

@media (max-width:1100px){.crow__view{margin-right:calc(var(--pad) * -1)}}
@media (max-width:900px){
  .hero{display:block;padding-top:84px}
  .hero__visual{height:min(100vw,440px)}
  .stage__me{height:100%}
  .hero__facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}
  .fact dd{opacity:1;transform:none}
}
.stage__card{inset:-14% -24% 0 -24%;-webkit-mask-image:radial-gradient(ellipse 58% 64% at 50% 56%,#000 38%,rgba(0,0,0,.6) 58%,transparent 80%);mask-image:radial-gradient(ellipse 58% 64% at 50% 56%,#000 38%,rgba(0,0,0,.6) 58%,transparent 80%)}
.fact dt{font-size:clamp(1.45rem,1.9vw,1.85rem)}
.fact.on dt{transform:none}
.hero__facts{column-gap:10px}
.hero__facts>div,.hero__facts>div+div{padding-right:0}
@media (min-width:901px){
  .hero__facts{position:relative;padding-bottom:44px}
  .fact{position:static}
  .fact dd{position:absolute;left:0;right:0;bottom:6px;margin:0;max-width:none;font-size:13px}
}

/* =========================================================
   v5.2 — hero back to the tall pattern column; figures as cards
   ========================================================= */
.hero{display:block;padding:0;min-height:100svh}
.hero__grid{min-height:100svh;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr auto;align-items:stretch}
.hero__copy{align-self:center;padding:60px 0 40px}
.hero__visual{position:relative;min-height:0}
.stage{position:absolute;top:0;bottom:0;left:50%;width:min(112%,540px);transform:translateX(-50%);inset:0 auto 0 50%}
.js .stage{opacity:0;transform:translate(-50%,24px)}
.ready .stage{opacity:1;transform:translateX(-50%)}
.stage__card{position:absolute;inset:0;-webkit-mask-image:none;mask-image:none}
.stage__photo{position:absolute;inset:0}
.stage__me{left:50%;bottom:0;width:80%;height:auto;transform:translateX(-50%)}

/* figures: four cards on a light panel, under the whole hero */
.hero__facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 40px;padding:10px;border:0;border-radius:22px;background:var(--paper2);position:relative;z-index:2}
.hero__facts>.fact,.hero__facts>.fact+.fact{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:132px;padding:20px 22px 18px;border-radius:16px;background:#fff;border:0;box-shadow:0 1px 0 rgba(21,25,29,.04);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s}
.fact:hover{transform:translateY(-4px);box-shadow:0 24px 40px -24px rgba(21,25,29,.3)}
.fact dt{position:static;display:block;font-size:clamp(1.9rem,2.6vw,2.4rem);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--ink);transform:none;transition:color .4s}
.fact dt::after{display:none}
.fact dd,.hero__facts .fact dd{position:static;margin:14px 0 0;max-width:15em;font-size:12.5px;line-height:1.4;color:var(--mute);opacity:1;transform:none}
.fact.on dt,.fact:hover dt{color:var(--tr);font-weight:700;transform:none}
.fact__tiles{position:absolute;right:0;top:0;width:44px;height:44px;border-bottom-left-radius:14px;overflow:hidden;opacity:.9}
@media (min-width:901px){.hero__facts{padding-bottom:10px}}
@media (max-width:900px){
  .hero__grid{grid-template-rows:auto;min-height:0}
  .hero__copy{padding:0}
  .hero__visual{height:min(118vw,500px);order:3}
  .stage{width:min(100%,420px)}
  .stage__me{width:86%}
  .hero__facts{order:7;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}
}
@media (max-width:900px){
  .hero{padding-top:84px}
  .hero__grid{grid-template-columns:minmax(0,1fr)}
  .hero__visual{margin-top:24px}
}
@media (max-width:640px){.fact dt{font-size:1.55rem}.fact__tiles{width:34px;height:34px}.hero__facts>.fact{padding:16px 14px}}

/* =========================================================
   v5.3
   ========================================================= */
/* tiles never change size: colour and pattern only */
.tiles g,.tiles g.hot,.tiles g.pop{transform:none!important}
.tiles g.swap [data-c]{opacity:1}

/* cursor label: small pill beside the pointer, never covering content */
.cur.is-big .cur__dot{width:10px;height:10px;margin:-5px 0 0 -5px;background:var(--tr)}
.cur__label{transform:translate(16px,14px) scale(.8);padding:6px 11px;border-radius:999px;background:var(--ink);color:#fff;font-size:.6rem;letter-spacing:.14em}
.cur.is-big .cur__label{transform:translate(16px,14px) scale(1)}
.cur.is-dark .cur__label{background:#fff;color:var(--ink)}

/* programme cards: fixed size, mark never tilts, only text moves */
.pc:hover .pc__mark{transform:none}
.pc{height:270px;min-height:0}
.pc--wide{height:290px}
.pc--mini{height:236px;min-height:0}
.pc__body{position:absolute;left:0;right:0;bottom:0;flex:none;padding:0 26px 24px}
.pc--mini .pc__body{padding:0 20px 18px}
.pc:hover .pc__body{padding-right:52px}
.pc--mini:hover .pc__body{padding-right:44px}

/* hero: figures back under the text */
.hero__facts{grid-column:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:40px 0 0;padding:0;background:none;border-radius:0;border-top:1px solid var(--line)}
.hero__facts>.fact,.hero__facts>.fact+.fact{display:block;min-height:0;padding:18px 12px 0 0;border-radius:0;background:none;box-shadow:none;overflow:visible;transform:none}
.fact:hover{transform:none;box-shadow:none}
.fact dt{font-size:clamp(1.5rem,2vw,1.85rem);font-weight:700;letter-spacing:-.035em;color:var(--ink);transition:color .4s,text-shadow .5s}
.fact dd,.hero__facts .fact dd{margin:8px 0 0;font-size:12px;line-height:1.4;color:var(--mute);opacity:1;transform:none;transition:color .4s}
.fact.on dt{color:var(--ink)}
.fact:hover dt{color:var(--tr);text-shadow:0 0 22px rgba(24,146,191,.55),0 0 2px rgba(24,146,191,.35)}
.fact:hover dd{color:var(--ink2)}
.fact{cursor:default}

/* hero pattern: one rectangle from bottom to top, edges fade into white */
.stage__card{inset:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent),linear-gradient(180deg,transparent,#000 30%);mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent),linear-gradient(180deg,transparent,#000 30%);-webkit-mask-composite:source-in;mask-composite:intersect}
@media (max-width:900px){
  .hero__facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}
  .pc{height:250px}
}
@media (min-width:901px){.hero__facts{grid-template-columns:repeat(4,auto);justify-content:space-between;column-gap:24px}.hero__facts>.fact,.hero__facts>.fact+.fact{padding-right:0}}

/* v5.4 — full-height pattern, more of the portrait, figure cards */
.hero__grid{grid-template-rows:1fr}
.stage__card{-webkit-mask-image:none!important;mask-image:none!important}
.stage__me{width:90%}

.hero__facts{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:10px;margin-top:36px;border-top:0}
@media (min-width:901px){.hero__facts{grid-template-columns:repeat(4,minmax(0,1fr));justify-content:stretch;column-gap:10px}}
.hero__facts>.fact,.hero__facts>.fact+.fact{position:relative;display:flex;flex-direction:column;justify-content:center;height:104px;padding:0 16px;border-radius:16px;background:var(--paper2);overflow:hidden;cursor:default;transition:background .45s var(--ease),box-shadow .45s}
.fact dt{font-size:clamp(1.35rem,1.75vw,1.7rem);font-weight:700;letter-spacing:-.035em;line-height:1;color:var(--ink);text-shadow:none;transform:translateY(0);transition:color .4s,transform .5s var(--ease)}
.fact dd,.hero__facts .fact dd{position:absolute;left:16px;right:12px;bottom:14px;margin:0;font-size:11.5px;line-height:1.3;color:rgba(255,255,255,.9);opacity:0;transform:translateY(10px);transition:opacity .4s,transform .5s var(--ease)}
.fact:hover{background:var(--tr);box-shadow:0 18px 34px -16px rgba(24,146,191,.7)}
.fact:hover dt{color:#fff;text-shadow:none;transform:translateY(-16px)}
.fact:hover dd{opacity:1;transform:none;color:rgba(255,255,255,.9)}
@media (hover:none){.fact dd,.hero__facts .fact dd{position:static;opacity:1;transform:none;color:var(--mute);margin-top:8px}}
@media (max-width:900px){.hero__facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}}
.hero__facts>.fact:hover,.hero__facts>.fact+.fact:hover{background:var(--tr);box-shadow:0 18px 34px -16px rgba(24,146,191,.7)}

/* v5.5 — six mixed most-requested cards; single sliding row with track selector */
.pcards{grid-template-columns:repeat(3,minmax(0,1fr))}
.pc--mr{height:280px}
.pc[data-pal="gd"]:hover{border-color:rgba(188,69,69,.6);box-shadow:0 40px 70px -40px rgba(188,69,69,.55)}
.pc[data-pal="ar"]:hover{border-color:rgba(238,173,32,.6);box-shadow:0 40px 70px -40px rgba(238,173,32,.45)}
.pc[data-pal="gd"] .pc__mark{fill:var(--gd)}
.pc[data-pal="ar"] .pc__mark{fill:var(--ar)}
.pc[data-pal="gd"] .pc__n{color:#E58585}
.pc[data-pal="ar"] .pc__n{color:#F6C24A}
.pc[data-pal="gd"] .pc__light{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(188,69,69,.3),transparent 62%)}
.pc[data-pal="ar"] .pc__light{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(238,173,32,.26),transparent 62%)}
.cat__tabs{margin-top:30px}
.cat__rows{margin-top:24px;display:block}
.crow{display:none}
.crow.is-on{display:block}
.crow__k{display:none}
.crow.is-on .crow__track>li{animation:cardIn .7s var(--ease) both;animation-delay:calc(var(--n,0) * .05s)}
@keyframes cardIn{from{opacity:0;transform:translateY(22px)}}
@media (max-width:900px){.pcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.pcards{grid-template-columns:minmax(0,1fr)}}
/* v5.6 — one live row; others are data only */
.crow{display:none!important}
.crow--tr{display:block!important}
.pc__body{transition:opacity .26s ease}
.pc__mark{transition:fill .8s ease}
.crow.is-on .crow__track>li{animation:none}

/* v5.7 — card marks morph between tracks (same 4 elements move + recolour) */
.pc__mark rect,.pc__mark circle{transition:x .9s var(--ease),y .9s var(--ease),width .9s var(--ease),height .9s var(--ease),cx .9s var(--ease),cy .9s var(--ease),r .9s var(--ease)}
.pc__mark{transition:fill .9s ease}
.pc[data-pal="tr"] .pc__mark .m1{x:15.4px;y:42.28px;width:9.28px;height:33.8px}
.pc[data-pal="tr"] .pc__mark .m2{x:27.44px;y:36.64px;width:9.24px;height:33.8px}
.pc[data-pal="tr"] .pc__mark .m3{x:39.44px;y:30.28px;width:9.24px;height:33.8px}
.pc[data-pal="tr"] .pc__mark .mc{cx:68.02px;cy:40.45px;r:16.59px}
.pc[data-pal="gd"] .pc__mark .m1{x:21.24px;y:44.52px;width:9.28px;height:33.76px}
.pc[data-pal="gd"] .pc__mark .m2{x:33.28px;y:69.04px;width:33.8px;height:9.24px}
.pc[data-pal="gd"] .pc__mark .m3{x:69.48px;y:44.52px;width:9.28px;height:33.8px}
.pc[data-pal="gd"] .pc__mark .mc{cx:50.16px;cy:27.85px;r:16.59px}
.pc[data-pal="ar"] .pc__mark .m1{x:27.08px;y:51.28px;width:33.84px;height:9.24px}
.pc[data-pal="ar"] .pc__mark .m2{x:39.08px;y:63.28px;width:33.84px;height:9.24px}
.pc[data-pal="ar"] .pc__mark .m3{x:33.08px;y:75.28px;width:33.84px;height:9.28px}
.pc[data-pal="ar"] .pc__mark .mc{cx:50px;cy:31.94px;r:16.59px}

/* v5.9 — statement back to the original; signature is written live, stroke by stroke */
.say__by{margin-top:26px}
.sig{display:block;width:190px;height:auto;overflow:visible}
.sig__ink{fill:var(--tr)}
.sig__ink--solid{opacity:0}
.sig__s{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 2;stroke-dashoffset:1.05;transition:none}
.say.done .sig__s{stroke-dashoffset:0}
.say.done .sig__s--a{transition:stroke-dashoffset 2.6s cubic-bezier(.42,.08,.52,.98) .25s}
.say.done .sig__s--b{transition:stroke-dashoffset .16s cubic-bezier(.3,0,.6,1) 2.95s}
.say.done .sig__s--c{transition:stroke-dashoffset .3s cubic-bezier(.3,0,.5,1) 3.2s}
.say.done .sig__ink--solid{opacity:1;transition:opacity .4s 3.5s}
@media (max-width:900px){.sig{width:160px}}
@media (prefers-reduced-motion:reduce){.sig__s{stroke-dashoffset:0}.sig__ink--solid{opacity:1}}

/* v6.0 — Apple text reveal, matched to MODS: words go from faint + soft + low to sharp, one by one */
.sw{font-style:normal;display:inline-block;opacity:.12;filter:blur(3px);transform:translateY(8px);transition:opacity .5s ease,filter .5s ease,transform .5s cubic-bezier(.2,.8,.2,1)}
.sw.on{opacity:1;filter:none;transform:none}
.say__t .w{display:inline-block;opacity:.12;filter:blur(3px);transform:translateY(8px);transition:opacity .5s ease,filter .5s ease,transform .5s cubic-bezier(.2,.8,.2,1)}
.say__t .w.on{opacity:1;filter:none;transform:none}
@media (prefers-reduced-motion:reduce){.sw,.say__t .w{opacity:1;filter:none;transform:none}}

/* v6.1 — shorter quote, smaller type, floating geometric quote marks that follow the cursor, signature on the right */
.say{height:200vh}
.say__box{position:relative;max-width:820px;padding:128px 0 0}
.say__t{position:relative;z-index:1;margin:0;max-width:760px;font-size:clamp(1.35rem,2.25vw,2.05rem);line-height:1.32}
.say__by{display:flex;justify-content:flex-end;margin-top:34px}
.sig{width:200px}
.qm{position:absolute;display:block;pointer-events:none;width:118px;aspect-ratio:94/62;opacity:0;scale:.6;transition:opacity .8s ease,scale 1s cubic-bezier(.2,.9,.25,1.25)}
.qm svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;will-change:transform}
.qm__b{fill:var(--tr-l)}
.qm__f{fill:var(--tr)}
.qm--o{left:-4px;top:22px;transform-origin:30% 70%}
.qm--c{right:0;bottom:162px;width:84px;rotate:180deg;transform-origin:50% 50%}
.say.in .qm--o{opacity:1;scale:1}
.say.done .qm--c{opacity:1;scale:1;transition-delay:.1s}
@media (max-width:900px){.say{height:170vh}.say__box{padding-top:108px}.qm--o{width:80px;top:14px}.qm--c{width:42px;bottom:112px}.sig{width:160px}.say__t{font-size:clamp(1.25rem,5.4vw,1.6rem)}}
@media (prefers-reduced-motion:reduce){.qm{opacity:1;scale:1}}

/* v6.2 — reader-facing line is the highlight; classic serif quote marks (Playfair outlines), one layer, follow the cursor */
.say__t .w--m{font-weight:600}
.say__t .w--b{font-weight:700;color:var(--tr)}
.qm{width:96px;aspect-ratio:428/296;fill:var(--tr);rotate:0deg}
.qm svg{position:static;display:block;width:100%;height:auto;overflow:visible}
.qm--o{left:-2px;top:26px;transform-origin:20% 80%}
.qm--c{width:64px;right:0;bottom:168px;rotate:0deg}
@media (max-width:900px){.qm--o{width:70px;top:22px}.qm--c{width:44px;bottom:120px}}

/* closing mark rides at the end of the last word */
.say__t .qm--c{position:relative;display:inline-block;vertical-align:top;right:auto;bottom:auto;width:1.4em;margin:-.12em 0 0 .2em}
@media (max-width:900px){.say__t .qm--c{width:1.3em;bottom:auto}}

@media (max-width:900px){.say__br{display:none}}

/* v6.3 — "see every training" card at the end of the recent-trainings slider */
.tc--all{color:inherit}
.tc--all .tc__media{background:var(--ink)}
.tc--all .tc__tiles{opacity:.9;transition:opacity .5s}
.tc--all:hover .tc__tiles{opacity:1}
.tc__allc{position:absolute;left:18px;bottom:18px;display:flex;align-items:baseline;gap:8px;padding:12px 18px;border-radius:16px;background:#fff;box-shadow:0 20px 40px -20px rgba(0,0,0,.4)}
.tc__allc b{font-size:1.6rem;font-weight:700;letter-spacing:-.02em}
.tc__allc span{font-size:.78rem;color:var(--mute)}
.tc__go{display:inline-flex;gap:8px;margin-top:14px;font-size:.84rem;font-weight:650;color:var(--tr)}
.tc__go i{font-style:normal;transition:transform .4s var(--ease)}
.tc--all:hover .tc__go i{transform:translateX(5px)}
.tc--all:hover h3{color:var(--tr)}
.tc--all h3{transition:color .3s}

/* v6.4 — quieter footer: smaller logo and type, MODS scale */
.foot{font-size:13px;line-height:1.5}
.foot__logo{height:30px;width:auto;aspect-ratio:2553.2/595.2}
.foot__brand p{margin-top:16px;max-width:24em;font-size:13px;line-height:1.6;color:rgba(244,241,236,.55)}
.foot h3{font-size:11px;letter-spacing:.14em;margin-bottom:12px}
.foot nav a,.foot__grid>div>a{padding:3px 0;font-size:13px;color:rgba(244,241,236,.85)}
.foot__s{margin-top:8px;font-size:12px;color:rgba(244,241,236,.5)}
.foot__base{margin-top:44px;padding-top:20px;font-size:12px;color:rgba(244,241,236,.5)}
.foot__grid{gap:28px}
.foot h3{margin-top:0;line-height:1.2}
.foot__grid>*{align-self:start}
.foot .foot__base{margin-top:56px}

/* v6.5 — hero figures: live Bauhaus counters (no boxes, always labelled) */
.hero__facts.hf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:44px;padding:0;border:0;background:none}
.hf>.fact,.hf>.fact+.fact{--a:var(--tr);position:relative;display:block;height:auto;min-height:0;padding:2px 18px 0;border-radius:0;background:none;box-shadow:none;overflow:visible;cursor:default;border-left:1px solid var(--line)}
.hf>.fact:first-child{padding-left:0;border-left:0}
.hf>.fact:hover,.hf>.fact+.fact:hover{background:none;box-shadow:none}
.hf .fact--gd{--a:var(--gd)} .hf .fact--ar{--a:var(--ar)} .hf .fact--ink{--a:var(--ink)}
.fact__g{display:block;width:26px;height:26px;margin-bottom:14px;overflow:visible;fill:var(--a)}
.hf .fact dt{display:flex;align-items:baseline;font-size:clamp(1.55rem,2.05vw,2rem);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--ink);transform:none;text-shadow:none;font-variant-numeric:tabular-nums;white-space:nowrap;transition:color .4s}
.hf .fact dt em{font-style:normal;margin-left:1px;color:var(--a);transition:transform .5s var(--ease);display:inline-block}
.hf .fact dd,.hero__facts.hf .fact dd{position:static;margin:8px 0 0;max-width:13em;font-size:12px;line-height:1.4;color:var(--mute);opacity:1;transform:none}
.hf .fact:hover dt{color:var(--ink);transform:none}
.hf .fact:hover dt em{transform:rotate(90deg) scale(1.15)}
.fact__bar{display:block;height:2px;margin-top:14px;border-radius:2px;background:var(--line);overflow:hidden}
.fact__bar i{display:block;height:100%;width:100%;background:var(--a);transform:scaleX(0);transform-origin:left}
.ready .fact__bar i{animation:fbar 1.6s cubic-bezier(.2,.7,.15,1) both}
.ready .hf .fact:nth-child(1) .fact__bar i{animation-delay:.9s}
.ready .hf .fact:nth-child(2) .fact__bar i{animation-delay:1.02s}
.ready .hf .fact:nth-child(3) .fact__bar i{animation-delay:1.14s}
.ready .hf .fact:nth-child(4) .fact__bar i{animation-delay:1.26s}
@keyframes fbar{to{transform:scaleX(1)}}
/* glyph loops: gentle by default, faster on hover */
.fact__g *{transform-box:fill-box;transform-origin:center}
.fact__g .q{animation:fq 4s var(--ease-io) infinite}
.fact__g .q2{animation-delay:.25s}.fact__g .q3{animation-delay:.5s}.fact__g .q4{animation-delay:.75s}
@keyframes fq{0%,60%,100%{opacity:1;transform:none}20%{opacity:.25;transform:scale(.7)}}
.fact__g .d{animation:fd 2.4s var(--ease-io) infinite}
.fact__g .d2{animation-delay:.18s}.fact__g .d3{animation-delay:.36s}
@keyframes fd{0%,55%,100%{transform:none}25%{transform:translateY(-9px)}}
.fact__g .ring{fill:none;stroke:var(--a);stroke-width:2;opacity:.35}
.fact__g .sweep{transform-origin:16px 16px;transform-box:view-box;animation:fs 6s linear infinite}
@keyframes fs{to{transform:rotate(360deg)}}
.fact__g .b{transform-origin:bottom;animation:fb 3.2s var(--ease-io) infinite}
.fact__g .b2{animation-delay:.15s}.fact__g .b3{animation-delay:.3s}.fact__g .b4{animation-delay:.45s}
@keyframes fb{0%,60%,100%{transform:none}25%{transform:scaleY(.3)}}
.hf .fact:hover .fact__g *{animation-duration:1.2s}
.hf .fact:hover .fact__g .sweep{animation-duration:1.5s}
@media (max-width:900px){
  .hero__facts.hf{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:26px;margin-top:32px}
  .hf>.fact:nth-child(3){padding-left:0;border-left:0}
}
@media (prefers-reduced-motion:reduce){.fact__g *{animation:none!important}.fact__bar i{transform:none;animation:none!important}}
.hf>.fact.fact--gd{--a:var(--gd)} .hf>.fact.fact--ar{--a:var(--ar)} .hf>.fact.fact--ink{--a:var(--ink)}
.hf>.fact,.hf>.fact+.fact{padding:2px 12px 0 14px}
.hf .fact dt{font-size:clamp(1.3rem,1.62vw,1.6rem);letter-spacing:-.045em}
.hf .fact dd,.hero__facts.hf .fact dd{max-width:none;font-size:11.5px}
@media (max-width:900px){.hf .fact dt{font-size:1.75rem}.hf .fact dd,.hero__facts.hf .fact dd{font-size:12.5px}}
@media (max-width:900px){.hf>.fact.fact:nth-child(3){padding-left:0;border-left:0}}

/* v6.6 — hero figures as tilt + glow cards: blue only, number alone, details on hover */
.hero__facts.hf{gap:10px;perspective:900px}
.hf>.fact,.hf>.fact+.fact,.hf>.fact:first-child,.hf>.fact.fact:nth-child(3){--a:var(--tr);container-type:inline-size;position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:150px;padding:16px 16px 14px;border:1px solid transparent;border-radius:18px;background:var(--paper2);overflow:hidden;isolation:isolate;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s var(--ease),border-color .4s,box-shadow .5s,background .4s}
.hf>.fact.live{transition:transform .12s linear,border-color .4s,box-shadow .5s,background .4s}
.hf>.fact:hover,.hf>.fact+.fact:hover{background:#fff;border-color:rgba(24,146,191,.45);box-shadow:0 28px 44px -26px rgba(24,146,191,.6)}
.fact__light{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgba(24,146,191,.22),transparent 65%)}
.hf .fact:hover .fact__light{opacity:1}
.hf .fact__g{position:absolute;left:16px;top:16px;margin:0;width:24px;height:24px;fill:var(--tr)}
.hf .fact__g .ring{stroke:var(--tr)}
.hf .fact dt{font-size:clamp(1.6rem,33cqi,2.7rem);font-weight:700;letter-spacing:-.05em;transition:transform .55s var(--ease),color .4s}
.hf .fact dt small{font-size:.78em;font-weight:600;margin-left:1px}
.hf .fact dt em{color:var(--tr)}
.hf .fact dd,.hero__facts.hf .fact dd{position:absolute;left:16px;right:12px;bottom:26px;margin:0;font-size:11.5px;line-height:1.3;color:var(--ink2);opacity:0;transform:translateY(8px);transition:opacity .4s,transform .55s var(--ease)}
.hf .fact__bar{margin-top:12px}
.hf .fact__bar i{background:var(--tr)}
.hf .fact:hover dt{transform:translateY(-34px)}
.hf .fact:hover dd{opacity:1;transform:none}
@media (hover:none){
  .hf>.fact,.hf>.fact+.fact,.hf>.fact:first-child,.hf>.fact.fact:nth-child(3){height:auto;min-height:140px;padding-top:56px}
  .hf .fact dd,.hero__facts.hf .fact dd{position:static;opacity:1;transform:none;margin-top:6px;color:var(--mute)}
}
@media (max-width:900px){.hero__facts.hf{row-gap:10px}}
.hero__facts.hf{gap:8px}
.hf>.fact,.hf>.fact+.fact,.hf>.fact:first-child,.hf>.fact.fact:nth-child(3){padding:14px 12px 12px}
.hf .fact__g{left:14px;top:14px}
.hf .fact dt{font-size:clamp(1.8rem,46cqi,3.1rem);letter-spacing:-.055em;align-items:flex-start;line-height:.9}
.hf .fact dt small{font-size:.5em;font-weight:700;margin:.12em 0 0 2px;letter-spacing:0}
.hf .fact dt em{font-size:.55em;margin:.02em 0 0 1px}
.hf .fact dd,.hero__facts.hf .fact dd{left:14px;bottom:24px}
.hf .fact:hover dt{transform:translateY(-30px)}
/* v6.7 — hover: label pushes the number up (no overlap) */
.hf .fact dt{font-size:clamp(1.7rem,42cqi,3rem);transform-origin:left bottom}
.hf .fact dd,.hero__facts.hf .fact dd{position:static;max-height:0;margin:0;overflow:hidden;opacity:0;transform:translateY(6px);transition:max-height .5s var(--ease),margin .5s var(--ease),opacity .35s,transform .5s var(--ease)}
.hf .fact:hover dt{transform:scale(.8)}
.hf .fact:hover dd{max-height:4.2em;margin-top:4px;opacity:1;transform:none}
@media (hover:none){.hf .fact dd,.hero__facts.hf .fact dd{max-height:none;margin-top:6px}}

/* v6.8 — rails: type tiles for entities without a logo file */
.rail li.rail__t{padding:0 14px}
.rail__t b{font-size:.86rem;font-weight:750;letter-spacing:-.01em;line-height:1.15;text-align:center;color:#8A8F94;opacity:calc(.8 + var(--k) * .2);transition:color .4s}
.rail li.rail__t:hover b{color:var(--tr)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.trusted__note a{color:var(--tr);font-weight:600;white-space:nowrap}
@media (max-width:640px){.rail__t b{font-size:.74rem}}
.trusted__note a{margin-left:10px}@media (max-width:640px){.trusted__note a{display:block;margin:4px 0 0}}
/* v6.9 — wide lockups (e.g. GDRFA) get more width in rail tiles */
.rail li img.wide{max-width:140px;max-height:34px}
@media (max-width:640px){.rail li img.wide{max-width:108px;max-height:28px}}

/* v7.0 — journal with a single featured article (live site) */
.mag--solo{grid-template-columns:minmax(0,1fr)}
.mag--solo .mag__feat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,3.4vw,48px);align-items:center}
.mag--solo .mag__body{margin-top:0}
@media (max-width:900px){.mag--solo .mag__feat{grid-template-columns:minmax(0,1fr)}.mag--solo .mag__body{margin-top:18px}}
