/* FAPM shared stylesheet. Institutional long-scroll: paper / ink bands, fixed hairline chrome.
   Deliberately single-look (paper + ink): every color is explicit. */
:root{
  --ink:#0C0D0C; --ink-2:#161816; --paper:#F2F2EE; --paper-2:#E8E8E3; --mute:#8B8E89; --mute-d:#5C5F5B;
  --line:rgba(12,13,12,.14); --line-d:rgba(242,242,238,.14);
  --leaf:#3D8A66; --leaf-hi:#9ED3B6; --amber:#B88A2E;
  --f:"Geist","Helvetica Neue",Helvetica,Arial,sans-serif;
  --m:"Geist Mono",ui-monospace,Menlo,monospace;
  --s:"Instrument Serif",Georgia,serif;
  --ease:cubic-bezier(.2,.7,.1,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.5 var(--f);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:90;background:var(--paper)}
[data-lang="en"] .fr,[data-lang="fr"] .en{display:none!important}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
::selection{background:var(--leaf);color:var(--paper)}
:focus-visible{outline:2px solid var(--leaf);outline-offset:3px}
.g{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
@media (min-width:900px){.g{padding-left:max(40px,env(safe-area-inset-left,0px));padding-right:max(40px,env(safe-area-inset-right,0px))}}
.mono{font-family:var(--m);font-size:12px;letter-spacing:.02em}
.serif{font-family:var(--s);font-style:italic;font-weight:400;letter-spacing:-.01em}
.dark{background:var(--ink);color:var(--paper)}
.mute{color:var(--mute-d)}.dark .mute{color:var(--mute)}
.num{font-variant-numeric:tabular-nums}
.tag-s{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:99px;border:1px solid currentColor;font:500 11px/1 var(--m);white-space:nowrap}
.tag-s.live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--leaf);box-shadow:0 0 0 0 rgba(61,138,102,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(61,138,102,0)}100%{box-shadow:0 0 0 0 rgba(61,138,102,0)}}
.demo{font:500 10.5px/1 var(--m);color:var(--amber);border:1px dashed currentColor;padding:4px 7px;border-radius:99px;display:inline-block;vertical-align:middle}

/* preloader */
#pre{position:fixed;inset:0;z-index:200;background:var(--ink);color:var(--paper);display:grid;place-items:center;overflow:hidden}
#pre .word{display:flex;font:500 clamp(64px,14vw,210px)/.9 var(--f);letter-spacing:-.06em}
#pre .word span{display:inline-block;transform:translateY(110%) rotate(8deg);opacity:0}
#pre .seq{position:absolute;left:24px;bottom:24px;font:400 12px/1.4 var(--m);color:var(--mute)}
#pre .pct{position:absolute;right:24px;bottom:24px;font:400 12px/1 var(--m);color:var(--mute)}
#pre.done{transform:translateY(-100%);transition:transform 1s var(--ease)}
.no-motion #pre{display:none}

/* chrome */
header.top{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:16px;mix-blend-mode:difference;color:#fff;pointer-events:none}
header.top>*{pointer-events:auto}
.logo{display:flex;align-items:center;gap:10px;font:600 18px/1 var(--f);letter-spacing:-.04em}
.logo svg{width:30px;height:18px}
nav.menu{display:flex;gap:22px;font-size:14px}
nav.menu a{position:relative;opacity:.85}
nav.menu a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
nav.menu a:hover::after{transform:scaleX(1);transform-origin:left}
.lang{display:flex;gap:2px;font:500 12px/1 var(--m)}
.lang button{padding:6px 8px;border:1px solid transparent;border-radius:99px;opacity:.6}
.lang button[aria-pressed="true"]{opacity:1;border-color:currentColor}
@media (max-width:980px){nav.menu{display:none}}
.sidetab{position:fixed;right:0;top:50%;z-index:79;transform:translateY(-50%);background:var(--ink);color:var(--paper);border-radius:14px 0 0 14px;padding:16px 10px;writing-mode:vertical-rl;font:500 13px/1 var(--f);display:flex;align-items:center;gap:10px;margin-right:env(safe-area-inset-right,0px);border:1px solid rgba(242,242,238,.18);border-right:0}
.sidetab i{width:7px;height:7px;border-radius:50%;background:var(--leaf-hi)}
.bottombar{position:fixed;left:0;right:0;bottom:0;z-index:78;display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:14px calc(14px + env(safe-area-inset-bottom,0px));font:400 12px/1 var(--m);mix-blend-mode:difference;color:#fff;pointer-events:none}
.bottombar .prog{display:flex;align-items:center;gap:12px}
.bottombar .track{width:120px;height:1px;background:rgba(255,255,255,.3);position:relative;overflow:hidden}
.bottombar .track b{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
@media (max-width:640px){.bottombar .tri{display:none}.bottombar{justify-content:flex-end}}
#cur{position:fixed;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#fff;mix-blend-mode:difference;z-index:300;pointer-events:none;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease)}
#cur.big{width:56px;height:56px;margin:-28px 0 0 -28px}
@media (hover:none){#cur{display:none}}

/* buttons */
.pill{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 22px;border-radius:99px;background:var(--ink);color:var(--paper);font-weight:500;font-size:15px;overflow:hidden;position:relative;isolation:isolate;white-space:nowrap}
.pill::before{content:"";position:absolute;inset:0;background:var(--leaf);transform:translateY(101%);border-radius:inherit;transition:transform .6s var(--ease);z-index:-1}
.pill:hover::before{transform:none}
.pill.light{background:var(--paper);color:var(--ink)}
.pill.light:hover{color:var(--paper)}
.pill.line{background:transparent;color:inherit;border:1px solid currentColor}
.pill.line:hover{color:var(--paper);border-color:var(--leaf)}
.pill svg{width:14px;height:14px;transition:transform .5s var(--ease)}
.pill:hover svg{transform:translateX(3px)}
.rv{display:block;overflow:hidden;padding-bottom:.04em}
.rv>span{display:block}

/* hero */
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:center;padding-block:110px 80px;overflow:hidden}
#letters{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero .copy{position:relative;z-index:1}
.eyebrow{font:400 12px/1 var(--m);display:flex;gap:14px;align-items:center;margin-bottom:26px;flex-wrap:wrap}
.eyebrow i{flex:0 0 48px;height:1px;background:currentColor;opacity:.4}
.hero h1{font:500 clamp(48px,7.2vw,128px)/.9 var(--f);letter-spacing:-.06em;margin:0;text-transform:lowercase}
.hero h1 .serif{letter-spacing:-.035em}
.hero p.lead{max-width:46ch;margin:34px 0 0;font-size:18px;line-height:1.45;color:var(--mute-d)}
.hero .ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.seal{position:relative;z-index:1;justify-self:center;width:min(520px,40vw);aspect-ratio:1;max-width:100%}
.seal svg{width:100%;height:100%;overflow:visible}
.seal .ring{transform-origin:200px 200px;animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.seal .draw{stroke-dasharray:var(--l);stroke-dashoffset:var(--l);animation:draw 2.2s var(--ease) forwards;animation-delay:var(--d,1.6s)}
@keyframes draw{to{stroke-dashoffset:0}}
.seal .fadein{opacity:0;animation:fi 1.2s var(--ease) forwards;animation-delay:var(--d,2.2s)}
@keyframes fi{to{opacity:1}}
.no-motion .seal .draw{stroke-dashoffset:0;animation:none}.no-motion .seal .fadein{opacity:1;animation:none}
@media (max-width:860px){.hero{grid-template-columns:minmax(0,1fr);padding-top:100px}.seal{order:-1;width:min(300px,72vw)}}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.pillar{padding:28px 24px 34px 0;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px;min-width:0}
.pillar+.pillar{padding-left:24px}
.pillar:last-child{border-right:0}
.pillar .n{font:400 12px/1 var(--m);color:var(--mute-d)}
.pillar h3{font:500 clamp(26px,2.4vw,36px)/1 var(--f);letter-spacing:-.045em;margin:18px 0 0;text-transform:lowercase}
.pillar p{margin:0;font-size:15px;color:var(--mute-d);max-width:32ch}
@media (max-width:900px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}.pillar:nth-child(2){border-right:0}.pillar:nth-child(-n+2){border-bottom:1px solid var(--line)}.pillar:nth-child(3){padding-left:0}}
@media (max-width:540px){.pillars{grid-template-columns:minmax(0,1fr)}.pillar,.pillar+.pillar{border-right:0;border-bottom:1px solid var(--line);padding-left:0}}

/* section head */
.shead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:end;padding-block:140px 56px}
.shead h2{font:500 clamp(44px,6.6vw,116px)/.9 var(--f);letter-spacing:-.06em;margin:0;text-transform:lowercase}
.shead p{margin:0;max-width:46ch;font-size:17px;justify-self:end}
@media (max-width:820px){.shead{grid-template-columns:minmax(0,1fr)}.shead p{justify-self:start}}

/* field */
.field .rows{border-top:1px solid var(--line-d)}
.frow{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.8fr);gap:28px;align-items:end;padding:34px 0;border-bottom:1px solid var(--line-d)}
.frow b{font:500 clamp(70px,10vw,170px)/.82 var(--f);letter-spacing:-.07em;font-variant-numeric:tabular-nums}
.frow p{margin:0;font-size:clamp(18px,1.6vw,22px);line-height:1.35;max-width:34ch;letter-spacing:-.01em}
.frow .src{font:400 11.5px/1.5 var(--m);color:var(--mute);justify-self:end;text-align:right;max-width:30ch}
.frow .src a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:820px){.frow{grid-template-columns:minmax(0,1fr);gap:12px}.frow .src{justify-self:start;text-align:left}}

/* manifesto */
.manifesto{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;padding-block:120px}
.manifesto .capsule{position:absolute;width:min(300px,40vw);height:min(560px,70vh);border-radius:999px;background:var(--ink-2);left:50%;top:50%;transform:translate(-50%,-50%)}
.manifesto p.big{position:relative;font:500 clamp(30px,4.6vw,74px)/1.04 var(--f);letter-spacing:-.045em;text-align:center;max-width:21ch;margin:0;text-wrap:balance;text-transform:lowercase}
.manifesto .w{color:#3A3C39;transition:color .25s}
.manifesto .w.on{color:var(--paper)}
.manifesto .dot{position:relative;width:12px;height:12px;border-radius:50%;background:var(--leaf-hi);margin:0 auto 34px;box-shadow:0 0 30px var(--leaf-hi)}

/* observatory */
.obs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.juris{border-radius:26px;padding:30px;min-width:0;display:flex;flex-direction:column;gap:6px}
.juris.us{background:var(--ink);color:var(--paper)}
.juris.eu{background:var(--paper-2)}
.juris .hd{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.juris h3{font:500 clamp(30px,3vw,46px)/.95 var(--f);letter-spacing:-.05em;margin:0;text-transform:lowercase}
.vt{position:relative;padding-left:26px;display:grid;gap:22px}
.vt::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:currentColor;opacity:.25}
.vt .it{position:relative}
.vt .it::before{content:"";position:absolute;left:-26px;top:5px;width:11px;height:11px;border-radius:50%;border:1.5px solid currentColor;background:inherit}
.juris.us .vt .it::before{background:var(--ink)}
.juris.eu .vt .it::before{background:var(--paper-2)}
.vt .it.next::before{background:var(--leaf);border-color:var(--leaf)}
.vt .k{font:500 13px/1 var(--m);margin-bottom:6px}
.vt p{margin:0;font-size:15px;opacity:.78;max-width:44ch}
.vt b{font-weight:500}
@media (max-width:860px){.obs{grid-template-columns:minmax(0,1fr)}}
.refs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-block:20px 140px}
.ref{border-radius:22px;border:1px solid var(--line);padding:24px;min-height:220px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;transition:background .5s var(--ease),color .5s var(--ease),border-color .5s}
.ref:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ref .u{font:400 11.5px/1.4 var(--m);color:var(--mute);word-break:break-all;padding-right:46px}
.ref h3{font:500 26px/1 var(--f);letter-spacing:-.04em;margin:auto 0 0;text-transform:lowercase}
.ref p{margin:0;font-size:14px;opacity:.75}
.ref .arr{position:absolute;top:20px;right:20px;width:36px;height:36px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;transition:transform .5s var(--ease)}
.ref:hover .arr{transform:rotate(-45deg)}
@media (max-width:860px){.refs{grid-template-columns:minmax(0,1fr)}}

/* programmes */
.prgms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-bottom:40px}
.prgm{border-radius:26px;padding:28px;min-height:440px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;min-width:0}
.prgm:nth-child(1){background:var(--ink);color:var(--paper)}
.prgm:nth-child(2){background:#1E3A2E;color:var(--paper)}
.prgm:nth-child(3){background:var(--paper-2)}
.prgm .bg{position:absolute;right:-20px;bottom:-60px;font:500 260px/1 var(--f);letter-spacing:-.08em;opacity:.06;pointer-events:none}
.prgm h3{font:500 clamp(30px,2.8vw,42px)/.95 var(--f);letter-spacing:-.05em;margin:28px 0 0;text-transform:lowercase}
.prgm p{margin:0;font-size:15.5px;opacity:.78;max-width:36ch}
.prgm ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;font:400 12.5px/1.4 var(--m);opacity:.85}
.prgm li::before{content:"→ "}
.prgm .foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:16px;border-top:1px solid rgba(127,127,127,.35)}
@media (max-width:960px){.prgms{grid-template-columns:minmax(0,1fr)}.prgm{min-height:auto}}
.wait{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding-bottom:140px}
.wait input{flex:1 1 280px;min-width:0;height:52px;border-radius:99px;border:1px solid var(--line);background:transparent;padding:0 22px;font:500 16px var(--f);color:var(--ink)}
.wait input:focus{outline:none;border-color:var(--leaf)}

/* congress */
.congress{position:relative;overflow:hidden}
.congress canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.grain{position:absolute;inset:-50%;z-index:1;opacity:.08;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(1%,3%)}}
.congress .in{position:relative;z-index:2;padding-bottom:140px}
.paris{font:500 clamp(110px,23vw,400px)/.78 var(--f);letter-spacing:-.075em;margin:0;text-transform:lowercase;white-space:nowrap}
.paris .serif{font-size:.24em;letter-spacing:-.02em;vertical-align:top;margin-left:.12em;color:var(--leaf-hi);display:inline-block;line-height:1;margin-top:.35em}
.cgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:40px;margin-top:60px;align-items:start}
.cgrid .lead{font-size:clamp(20px,1.8vw,26px);line-height:1.3;letter-spacing:-.015em;margin:0;max-width:30ch}
.trks{display:grid;border-top:1px solid var(--line-d)}
.trk{display:grid;grid-template-columns:60px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--line-d)}
.trk .n{font:400 12px/1.6 var(--m);color:var(--leaf-hi)}
.trk h4{margin:0 0 4px;font:500 22px/1.1 var(--f);letter-spacing:-.03em;text-transform:lowercase}
.trk p{margin:0;font-size:14.5px;color:var(--mute)}
.notify{display:flex;gap:10px;flex-wrap:wrap;margin-top:36px}
.notify input{flex:1 1 260px;min-width:0;height:52px;border-radius:99px;border:1px solid var(--line-d);background:rgba(12,13,12,.4);backdrop-filter:blur(10px);padding:0 22px;font:500 16px var(--f);color:var(--paper)}
.notify input::placeholder{color:var(--mute)}
@media (max-width:860px){.cgrid{grid-template-columns:minmax(0,1fr)}}

/* governance */
.gov{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.seat{border:1px solid var(--line);border-radius:22px;padding:22px;display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;align-items:center;min-width:0;transition:border-color .4s}
.seat:hover{border-color:var(--ink)}
.seat .av{width:64px;height:64px;border-radius:50%;background:repeating-linear-gradient(45deg,var(--paper-2) 0 6px,#DCDCD5 6px 12px);display:grid;place-items:center;font:500 12px var(--m);color:var(--mute-d)}
.seat h4{margin:0;font:500 19px/1.1 var(--f);letter-spacing:-.025em;text-transform:lowercase}
.seat p{margin:4px 0 0;font:400 12px/1.4 var(--m);color:var(--mute-d)}
@media (max-width:900px){.gov{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.gov{grid-template-columns:minmax(0,1fr)}}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding-block:56px 140px}
.facts div{border-top:1px solid var(--ink);padding-top:16px}
.facts h4{margin:0 0 8px;font:500 20px/1.15 var(--f);letter-spacing:-.025em;text-transform:lowercase}
.facts p{margin:0;font-size:14.5px;color:var(--mute-d);max-width:38ch}
@media (max-width:820px){.facts{grid-template-columns:minmax(0,1fr)}}

/* news & science */
.ns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;padding-bottom:100px}
.ns h3{font:400 12px/1 var(--m);margin:0 0 14px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.item{display:grid;grid-template-columns:90px minmax(0,1fr);gap:18px;padding:22px 0;border-bottom:1px solid var(--line-d);transition:padding .5s var(--ease)}
.item:first-of-type{border-top:1px solid var(--line-d)}
.item:hover{padding-left:10px}
.item .d{font:400 12px/1.5 var(--m);color:var(--mute)}
.item h4{margin:0 0 6px;font:500 21px/1.15 var(--f);letter-spacing:-.025em}
.item p{margin:0;font-size:14px;color:var(--mute)}
.item .ref2{font:400 12px/1.5 var(--m);color:var(--leaf-hi);margin-top:6px;display:inline-block}
@media (max-width:860px){.ns{grid-template-columns:minmax(0,1fr)}}

/* quote */
.quote{padding-block:120px 140px;text-align:center}
.quote p{font:400 clamp(42px,6.6vw,112px)/.95 var(--s);font-style:italic;letter-spacing:-.03em;margin:0 auto;max-width:17ch}
.quote>span{display:block;margin-top:28px;font:400 12px/1 var(--m);color:var(--mute)}

/* faq */
.faq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:40px;padding-block:140px}
.qa{border-top:1px solid var(--line)}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;text-align:left;font:500 clamp(20px,2vw,28px)/1.15 var(--f);letter-spacing:-.03em}
.qa .pm{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);position:relative;transition:transform .5s var(--ease),background .3s}
.qa .pm::before,.qa .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.qa .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .5s var(--ease)}
.qa.open .pm{background:var(--ink);color:var(--paper);transform:rotate(180deg)}
.qa.open .pm::after{transform:translate(-50%,-50%) rotate(0)}
.qa .ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.qa.open .ans{grid-template-rows:1fr}
.qa .ans>div{overflow:hidden}
.qa .ans p{margin:0 0 26px;max-width:60ch;color:var(--mute-d);font-size:16px}
@media (max-width:820px){.faq{grid-template-columns:minmax(0,1fr)}}

/* membership */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-bottom:60px}
.plan{border-radius:24px;padding:26px;background:var(--paper-2);display:flex;flex-direction:column;gap:12px;min-height:420px;transition:transform .6s var(--ease)}
.plan:hover{transform:translateY(-8px)}
.plan.hl{background:var(--ink);color:var(--paper)}
.plan h3{font:500 28px/1 var(--f);letter-spacing:-.04em;margin:0;text-transform:lowercase}
.plan .p{font:500 64px/.9 var(--f);letter-spacing:-.06em}
.plan .p small{font:400 13px/1 var(--m);letter-spacing:0;opacity:.6}
.plan ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:14.5px}
.plan li{display:flex;gap:8px}
.plan li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--leaf);margin-top:8px}
.plan .pill{margin-top:auto;justify-content:center}
.plan .flag{align-self:flex-start;font:500 11px/1 var(--m);background:var(--leaf-hi);color:var(--ink);padding:6px 10px;border-radius:99px}
@media (max-width:900px){.plans{grid-template-columns:minmax(0,1fr)}.plan{min-height:auto}}
form.apply{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px;padding-bottom:160px;max-width:900px}
form.apply label{display:grid;gap:6px;font:400 12px/1 var(--m);color:var(--mute-d)}
form.apply input,form.apply select{font:500 20px/1.2 var(--f);letter-spacing:-.02em;border:0;border-bottom:1px solid var(--ink);background:transparent;padding:10px 0;color:var(--ink);border-radius:0;min-width:0}
form.apply input:focus,form.apply select:focus{outline:none;border-bottom-color:var(--leaf)}
form.apply .full{grid-column:1/-1}
form.apply .consent{display:flex;gap:10px;align-items:center;font:400 13px/1.4 var(--f);color:var(--mute-d)}
form.apply .consent input{width:18px;height:18px;accent-color:var(--leaf)}
.ok{font:500 15px/1.4 var(--f);color:var(--leaf)}
@media (max-width:640px){form.apply{grid-template-columns:minmax(0,1fr)}}

/* footer */
footer{position:relative;overflow:hidden;padding-top:100px}
.fcols{display:grid;grid-template-columns:1.6fr repeat(3,minmax(0,1fr));gap:28px;font-size:14.5px}
.fcols h4{font:400 12px/1 var(--m);color:var(--mute);margin:0 0 14px;font-weight:400}
.fcols ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.fcols a:hover{color:var(--leaf-hi)}
.fcols .lead{font:500 28px/1.05 var(--f);letter-spacing:-.04em;max-width:18ch;margin:0}
@media (max-width:820px){.fcols{grid-template-columns:repeat(2,minmax(0,1fr))}}
.wordmark{font:600 clamp(120px,31vw,560px)/.74 var(--f);letter-spacing:-.085em;margin:80px 0 0;padding-bottom:.2em;white-space:nowrap;text-transform:lowercase}
.legal{position:relative;background:var(--ink);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font:400 12px/1.5 var(--m);color:var(--mute);padding-block:24px 70px;border-top:1px solid var(--line-d)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===== multi-page additions ===== */
nav.menu a[aria-current="page"]{opacity:1}
nav.menu a[aria-current="page"]::after{transform:scaleX(1)}
.menu-btn{display:none;font:500 12px/1 var(--m);padding:8px 12px;border:1px solid currentColor;border-radius:99px}
@media (max-width:980px){.menu-btn{display:inline-flex}}
.drawer{position:fixed;inset:0;z-index:120;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:100px 24px 40px;transform:translateY(-100%);transition:transform .8s var(--ease)}
.drawer.open{transform:none}
.drawer a{font:500 clamp(34px,9vw,64px)/1.02 var(--f);letter-spacing:-.05em;text-transform:lowercase}
.drawer a small{font:400 12px/1 var(--m);color:var(--mute);margin-right:12px;vertical-align:middle;letter-spacing:0}
.drawer .x{position:absolute;top:18px;right:20px;font:500 12px/1 var(--m);padding:8px 12px;border:1px solid currentColor;border-radius:99px}

/* page transition */
#curtain{position:fixed;inset:0;z-index:250;background:var(--ink);transform:translateY(100%);pointer-events:none;display:grid;place-items:center}
#curtain span{font:500 clamp(40px,7vw,96px)/1 var(--f);letter-spacing:-.06em;color:var(--paper);opacity:0;transition:opacity .3s}
#curtain.cover{transform:none;transition:transform .7s var(--ease)}
#curtain.cover span{opacity:1}
#curtain.hold{transform:none}
#curtain.leave{transform:translateY(-100%);transition:transform .9s var(--ease)}

/* generic section */
.sec{padding-bottom:140px}
.lede{font:500 clamp(24px,2.6vw,38px)/1.18 var(--f);letter-spacing:-.035em;max-width:30ch;margin:0;text-transform:lowercase}
.lede .serif{text-transform:none}
.more{display:inline-flex;align-items:center;gap:10px;font:500 15px/1 var(--f);border-bottom:1px solid currentColor;padding-bottom:6px;margin-top:28px}
.more svg{width:14px;height:14px;transition:transform .5s var(--ease)}
.more:hover svg{transform:translateX(4px)}

/* page hero */
.phero{position:relative;min-height:88svh;display:flex;flex-direction:column;justify-content:flex-end;padding-block:150px 64px;overflow:hidden}
.phero.dark{background:var(--ink);color:var(--paper)}
.crumbs{font:400 12px/1 var(--m);display:flex;gap:10px;align-items:center;margin-bottom:30px;color:var(--mute-d)}
.dark .crumbs{color:var(--mute)}
.crumbs a:hover{color:var(--leaf)}
.phero h1{font:500 clamp(54px,9.4vw,168px)/.88 var(--f);letter-spacing:-.065em;margin:0;text-transform:lowercase;position:relative;z-index:1}
.phero .row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:end;margin-top:48px;position:relative;z-index:1}
.phero .row p{margin:0;font-size:18px;line-height:1.45;max-width:46ch}
.phero .meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;font:400 12px/1.5 var(--m)}
.phero .meta b{display:block;font:500 22px/1.1 var(--f);letter-spacing:-.03em;margin-top:6px}
@media (max-width:820px){.phero .row{grid-template-columns:minmax(0,1fr)}}
.phero .orb{position:absolute;right:-12vw;top:-10vw;width:62vw;max-width:900px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(158,211,182,.55),rgba(61,138,102,.18) 45%,transparent 70%);filter:blur(10px);z-index:0;pointer-events:none}
.phero.dark .orb{background:radial-gradient(circle at 35% 35%,rgba(61,138,102,.6),rgba(30,58,46,.35) 45%,transparent 70%)}

/* courses (sticky stack) */
.stack{position:relative;padding-bottom:60px}
.course{position:sticky;top:calc(86px + var(--i,0)*22px);min-height:min(76vh,640px);border-radius:30px;padding:clamp(24px,3.2vw,48px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);margin-bottom:28px;overflow:hidden;transform-origin:50% 0;will-change:transform}
.course.c1{background:var(--ink);color:var(--paper)}
.course.c2{background:#1E3A2E;color:var(--paper)}
.course.c3{background:var(--paper-2);color:var(--ink)}
.course .num-bg{position:absolute;right:-.06em;bottom:-.22em;font:500 clamp(220px,30vw,520px)/1 var(--s);font-style:italic;opacity:.07;pointer-events:none;letter-spacing:-.04em}
.course .l{display:flex;flex-direction:column;gap:18px;position:relative;z-index:1;min-width:0}
.course .kick{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font:400 12px/1 var(--m)}
.course h3{font:500 clamp(40px,4.8vw,84px)/.9 var(--f);letter-spacing:-.06em;margin:auto 0 0;text-transform:lowercase}
.course h3 .serif{letter-spacing:-.03em}
.course .desc{margin:0;font-size:17px;line-height:1.45;opacity:.8;max-width:44ch}
.course .r{display:flex;flex-direction:column;gap:20px;position:relative;z-index:1;min-width:0}
.price{font:500 clamp(56px,6vw,96px)/.85 var(--f);letter-spacing:-.065em;font-variant-numeric:tabular-nums}
.price small{display:block;font:400 12px/1.4 var(--m);letter-spacing:0;opacity:.6;margin-top:10px}
.specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(127,127,127,.35)}
.specs div{padding:12px 0;border-bottom:1px solid rgba(127,127,127,.35);font:400 11.5px/1.4 var(--m);opacity:.9}
.specs div:nth-child(odd){padding-right:12px}
.specs b{display:block;font:500 16px/1.2 var(--f);letter-spacing:-.02em;margin-top:4px}
.syl{list-style:none;padding:0;margin:0;display:grid;gap:7px;font-size:14.5px}
.syl li{display:grid;grid-template-columns:28px minmax(0,1fr);opacity:.85}
.syl li span{font:400 11px/1.9 var(--m);opacity:.6}
.course .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto}
.c1 .pill.line,.c2 .pill.line{border-color:rgba(242,242,238,.5)}
@media (max-width:900px){.course{position:relative;top:auto;grid-template-columns:minmax(0,1fr);min-height:auto}.course h3{margin-top:30px}}
.interest{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:center}
.interest input,.interest select{height:52px;border-radius:99px;border:1px solid var(--line);background:transparent;padding:0 22px;font:500 15px var(--f);color:var(--ink);min-width:0}
.interest select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 24px) 23px,calc(100% - 19px) 23px;background-size:5px 5px;background-repeat:no-repeat}
@media (max-width:760px){.interest{grid-template-columns:minmax(0,1fr)}}

/* four-column plans */
.plans.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.plans.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.plans.four{grid-template-columns:minmax(0,1fr)}}
.plan.fel{background:#1E3A2E;color:var(--paper)}
.plan .d{margin:0;font-size:14px;opacity:.75}

/* chips */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.chips button{height:34px;padding:0 14px;border-radius:99px;border:1px solid var(--line);font:500 12px/1 var(--m);transition:background .3s,color .3s,border-color .3s}
.dark .chips button{border-color:var(--line-d)}
.chips button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.dark .chips button[aria-pressed="true"]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
[data-cat].hide{display:none!important}

/* publications */
.feat{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;border-radius:28px;background:var(--ink);color:var(--paper);padding:clamp(24px,3vw,44px);margin-bottom:28px;position:relative;overflow:hidden}
.feat .glow{position:absolute;right:-120px;top:-160px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(61,138,102,.5),transparent 65%);pointer-events:none}
.feat h3{font:500 clamp(30px,3.4vw,54px)/.98 var(--f);letter-spacing:-.05em;margin:18px 0 0;position:relative}
.feat p{margin:0;font-size:17px;color:#C9CBC6;max-width:46ch;position:relative}
.feat .side{display:flex;flex-direction:column;justify-content:space-between;gap:20px;position:relative}
.feat .cite{font:400 12px/1.6 var(--m);color:var(--mute)}
@media (max-width:860px){.feat{grid-template-columns:minmax(0,1fr)}}
.pubs{border-top:1px solid var(--line)}
.pub{display:grid;grid-template-columns:130px minmax(0,1fr) 150px 44px;gap:24px;align-items:center;padding:22px 16px 22px 0;border-bottom:1px solid var(--line);position:relative;isolation:isolate;transition:color .45s var(--ease),padding .45s var(--ease)}
.pub::before{content:"";position:absolute;inset:0 -16px;background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease);z-index:-1;border-radius:14px}
.pub:hover{color:var(--paper);padding-left:16px}
.pub:hover::before{transform:none}
.pub .when{font:400 12px/1.5 var(--m);color:var(--mute-d)}
.pub:hover .when,.pub:hover .au{color:var(--mute)}
.pub h4{margin:0 0 6px;font:500 clamp(18px,1.5vw,22px)/1.18 var(--f);letter-spacing:-.025em}
.pub .au{font:400 12px/1.5 var(--m);color:var(--mute-d)}
.pub .take{margin:6px 0 0;font-size:14.5px;opacity:.78;max-width:70ch}
.pub .cat{justify-self:start}
.pub .go{width:40px;height:40px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;transition:transform .5s var(--ease)}
.pub:hover .go{transform:rotate(-45deg)}
@media (max-width:860px){.pub{grid-template-columns:minmax(0,1fr) 44px;gap:10px 16px}.pub .when{grid-column:1/-1}.pub .cat{grid-column:1;grid-row:3}.pub .go{grid-column:2;grid-row:2}}
.art{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:56px}
.artc{border-radius:22px;background:var(--paper-2);padding:24px;display:flex;flex-direction:column;gap:12px;min-height:240px;transition:transform .6s var(--ease)}
.artc:hover{transform:translateY(-6px)}
.artc .k{display:flex;justify-content:space-between;gap:10px;font:400 11.5px/1.4 var(--m);color:var(--mute-d)}
.artc h4{margin:auto 0 0;font:500 22px/1.1 var(--f);letter-spacing:-.03em}
.artc p{margin:0;font-size:14px;color:var(--mute-d)}
@media (max-width:860px){.art{grid-template-columns:minmax(0,1fr)}}

/* opportunities */
.opps{border-top:1px solid var(--line-d)}
.opp{display:grid;grid-template-columns:120px minmax(0,1fr) 190px 150px;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line-d);transition:padding .45s var(--ease)}
.opp:hover{padding-left:12px}
.opp .typ{font:500 11px/1 var(--m);display:inline-flex;height:24px;align-items:center;padding:0 10px;border-radius:99px;justify-self:start}
.typ.call{background:var(--leaf-hi);color:var(--ink)}
.typ.phd{background:#E8D7A8;color:var(--ink)}
.typ.postdoc{background:var(--paper);color:var(--ink)}
.typ.master{border:1px solid var(--paper)}
.opp h4{margin:0 0 6px;font:500 clamp(18px,1.5vw,22px)/1.2 var(--f);letter-spacing:-.025em}
.opp .where{font:400 12px/1.5 var(--m);color:var(--mute)}
.opp .dl{font:400 12px/1.5 var(--m);color:var(--mute)}
.opp .dl b{display:block;font:500 18px/1.2 var(--f);color:var(--paper);letter-spacing:-.02em}
.opp .left{font:500 12px/1 var(--m);color:var(--leaf-hi);justify-self:end;display:flex;align-items:center;gap:10px}
.opp .left.soon{color:#E8B65A}
.opp .left i{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-d);display:grid;place-items:center;font-style:normal;color:var(--paper);transition:transform .5s var(--ease),background .3s}
.opp:hover .left i{transform:rotate(-45deg);background:var(--paper);color:var(--ink)}
@media (max-width:900px){.opp{grid-template-columns:minmax(0,1fr);gap:8px}.opp .left{justify-self:start}}
.note{font:400 12px/1.6 var(--m);color:var(--mute);margin-top:22px;max-width:90ch}

/* statute-style aims */
.aims{counter-reset:aim;border-top:1px solid currentColor}
.aim{display:grid;grid-template-columns:80px minmax(0,1fr) minmax(0,.9fr);gap:28px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}
.dark .aim{border-color:var(--line-d)}
.aim::before{counter-increment:aim;content:"(" counter(aim,lower-alpha) ")";font:400 italic 30px/1 var(--s);color:var(--leaf)}
.dark .aim::before{color:var(--leaf-hi)}
.aim h4{margin:0;font:500 clamp(20px,1.9vw,28px)/1.12 var(--f);letter-spacing:-.03em}
.aim p{margin:0;font-size:15px;color:var(--mute-d)}
.dark .aim p{color:var(--mute)}
@media (max-width:820px){.aim{grid-template-columns:44px minmax(0,1fr)}.aim p{grid-column:2}}
.charter{font:400 clamp(26px,3vw,46px)/1.15 var(--s);font-style:italic;letter-spacing:-.015em;max-width:30ch;margin:0 0 48px}

/* split + stats */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(28px,5vw,90px);align-items:start}
@media (max-width:860px){.split{grid-template-columns:minmax(0,1fr)}}
.split .sticky{position:sticky;top:110px}
@media (max-width:860px){.split .sticky{position:static}}
.prose p{margin:0 0 18px;font-size:18px;line-height:1.55;max-width:58ch}
.prose p.big{font:500 clamp(22px,2vw,30px)/1.3 var(--f);letter-spacing:-.025em}
.timeline{border-left:1px solid var(--line);margin-left:6px;display:grid;gap:30px;padding:6px 0 6px 30px}
.timeline .t{position:relative}
.timeline .t::before{content:"";position:absolute;left:-36px;top:6px;width:11px;height:11px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink)}
.timeline .t.now::before{background:var(--leaf);border-color:var(--leaf)}
.timeline .y{font:500 13px/1 var(--m)}
.timeline h4{margin:8px 0 4px;font:500 22px/1.1 var(--f);letter-spacing:-.03em;text-transform:lowercase}
.timeline p{margin:0;font-size:15px;color:var(--mute-d);max-width:48ch}
.values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.val{border-radius:22px;padding:24px;background:var(--ink-2);min-height:260px;display:flex;flex-direction:column;gap:10px}
.val{padding:0;overflow:hidden}
.val .vimg{margin:0;aspect-ratio:4/3;overflow:hidden}
.val .vimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.4s var(--ease)}
.val:hover .vimg img{transform:scale(1.06)}
.val h4,.val p{padding:0 22px}
.val p{padding-bottom:24px}
.val h4{margin-top:18px}
.val h4{margin:auto 0 0;font:500 24px/1.05 var(--f);letter-spacing:-.035em;text-transform:lowercase}
.val p{margin:0;font-size:14px;color:var(--mute)}
@media (max-width:960px){.values{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.values{grid-template-columns:minmax(0,1fr)}}

/* tables */
.tbl-wrap{overflow-x:auto;border-radius:22px;border:1px solid var(--line);-webkit-overflow-scrolling:touch}
.dark .tbl-wrap{border-color:var(--line-d)}
table.t{width:100%;border-collapse:collapse;font-size:14.5px;min-width:640px}
table.t th{font:400 11.5px/1.3 var(--m);text-align:left;color:var(--mute-d);padding:16px 18px;border-bottom:1px solid var(--line);background:var(--paper-2)}
.dark table.t th{background:var(--ink-2);color:var(--mute);border-color:var(--line-d)}
table.t td{padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:top}
.dark table.t td{border-color:var(--line-d)}
table.t tr:last-child td{border-bottom:0}
table.t tbody tr{transition:background .3s}
table.t tbody tr:hover{background:rgba(61,138,102,.07)}
table.t td.c{text-align:center}
table.t th.c{text-align:center}
.yes{color:var(--leaf);font-weight:600}
.no{color:var(--mute)}
.st{display:inline-flex;align-items:center;gap:6px;font:500 11px/1 var(--m);padding:5px 9px;border-radius:99px;white-space:nowrap}
.st.c1{background:rgba(61,138,102,.14);color:#2C6A4C}
.st.c2{background:rgba(184,60,46,.12);color:#9A3B2E}
.st.rev{background:rgba(184,138,46,.16);color:#7A5A16}
.st.ap{background:var(--ink);color:var(--paper)}
.src-l{font:400 11.5px/1.4 var(--m);color:var(--mute-d);text-decoration:underline;text-underline-offset:3px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:st}
.stp{border-top:1px solid currentColor;padding-top:18px}
.stp::before{counter-increment:st;content:"0" counter(st);font:400 12px/1 var(--m);color:var(--mute-d)}
.dark .stp::before{color:var(--mute)}
.stp h4{margin:14px 0 6px;font:500 22px/1.1 var(--f);letter-spacing:-.03em;text-transform:lowercase}
.stp p{margin:0;font-size:14.5px;color:var(--mute-d)}
.dark .stp p{color:var(--mute)}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.steps{grid-template-columns:minmax(0,1fr)}}

/* key dates */
.dates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-d)}
.date{padding:26px 22px 30px 0;border-right:1px solid var(--line-d);min-width:0}
.date+.date{padding-left:22px}
.date:last-child{border-right:0}
.date .d{font:500 clamp(40px,4.4vw,72px)/.9 var(--f);letter-spacing:-.06em}
.date .m{font:400 12px/1.4 var(--m);color:var(--mute);margin-top:10px}
.date h4{margin:16px 0 0;font:500 18px/1.15 var(--f);letter-spacing:-.02em;text-transform:lowercase}
.date.on .d{color:var(--leaf-hi)}
@media (max-width:860px){.dates{grid-template-columns:repeat(2,minmax(0,1fr))}.date:nth-child(2){border-right:0}.date:nth-child(3){padding-left:0}.date:nth-child(-n+2){border-bottom:1px solid var(--line-d)}}

/* formats grid */
.fmts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fmt{border-radius:22px;border:1px solid var(--line);padding:24px;display:flex;flex-direction:column;gap:12px;min-height:250px;transition:background .5s var(--ease),color .5s var(--ease)}
.fmt:hover{background:var(--ink);color:var(--paper)}
.fmt .k{font:400 11.5px/1.3 var(--m);color:var(--mute-d)}
.fmt:hover .k{color:var(--mute)}
.fmt h4{margin:auto 0 0;font:500 26px/1 var(--f);letter-spacing:-.04em;text-transform:lowercase}
.fmt p{margin:0;font-size:14px;opacity:.75}
@media (max-width:960px){.fmts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.fmts{grid-template-columns:minmax(0,1fr)}}

/* rules list */
.rules{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.rules li{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;font-size:15.5px}
.rules li::before{content:"§";font:400 italic 20px/1 var(--s);color:var(--leaf)}
@media (max-width:820px){.rules{grid-template-columns:minmax(0,1fr)}}

/* forms (long) */
form.apply textarea{font:400 17px/1.5 var(--f);border:1px solid var(--ink);border-radius:16px;background:transparent;padding:14px 16px;color:var(--ink);min-height:200px;resize:vertical}
form.apply textarea:focus{outline:none;border-color:var(--leaf)}
.wc{font:400 12px/1 var(--m);color:var(--mute-d);justify-self:end}
.wc.over{color:#9A3B2E}

/* forum band */
.forum{border-radius:30px;background:#1E3A2E;color:var(--paper);padding:clamp(28px,4vw,60px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;position:relative;overflow:hidden}
.forum h3{font:500 clamp(36px,4.4vw,72px)/.92 var(--f);letter-spacing:-.055em;margin:14px 0 0;text-transform:lowercase}
.forum p{margin:0;color:#C9D6CE;font-size:16.5px;max-width:46ch}
.forum .ring{position:absolute;right:-140px;bottom:-140px;width:420px;height:420px;border-radius:50%;border:1px solid rgba(158,211,182,.25);box-shadow:0 0 0 40px rgba(158,211,182,.04),0 0 0 80px rgba(158,211,182,.03)}
@media (max-width:860px){.forum{grid-template-columns:minmax(0,1fr)}}

/* media page heroes */
.phero.media{color:var(--paper);background:var(--ink)}
.phero.media .crumbs{color:rgba(242,242,238,.7)}
.ph-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.ph-media img,.ph-media video{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.08);animation:kb 18s var(--ease) forwards}
.ph-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,13,12,.25) 0%,rgba(12,13,12,.35) 40%,rgba(12,13,12,.85) 100%)}
@keyframes kb{to{transform:scale(1)}}
.phero.media>*:not(.ph-media){position:relative;z-index:1}
.legal a:hover{color:var(--leaf-hi)}

/* home hero media */
@media (min-width:861px){.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}
.hero-media{position:relative;z-index:1;height:min(78vh,780px);border-radius:28px;overflow:hidden;background:var(--paper-2)}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover;object-position:64% 50%;display:block;transform-origin:60% 40%}

.hm-chip{position:absolute;left:18px;bottom:18px;display:inline-flex;gap:8px;align-items:center;font:500 12px/1 var(--m);color:#fff;background:rgba(12,13,12,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:9px 12px;border-radius:99px}
.hm-chip i{width:7px;height:7px;border-radius:50%;background:var(--leaf-hi)}
@media (max-width:860px){.hero-media{order:-1;height:48svh}}

/* manifesto: image that opens to full bleed */
.mf{position:relative;height:100svh;background:var(--paper);overflow:hidden}
.mf-pin{position:relative;height:100%}
.mf-frame{position:absolute;inset:0;--shade:.6;overflow:hidden}
.mf-frame img{width:100%;height:100%;object-fit:cover;display:block}
.mf-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,13,12,calc(var(--shade)*.5)),rgba(12,13,12,var(--shade)))}
.mf-copy{position:absolute;left:0;right:0;bottom:0;padding-bottom:12vh;color:var(--paper);z-index:2}
.mf-text{font:500 clamp(34px,5.4vw,92px)/1 var(--f);letter-spacing:-.05em;margin:0;text-transform:lowercase;max-width:22ch}
.mf-text .ln{display:block;overflow:hidden;padding-bottom:.08em}
.mf-text .ln>span{display:block}
.mf-text em{font-family:var(--s);font-style:italic;font-weight:400;letter-spacing:-.02em;color:var(--leaf-hi)}

/* illustrated course cards (home) */
.course{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:stretch}
.course.c4{background:#DDE6DF;color:var(--ink)}
.cimg{margin:0;position:relative;border-radius:22px;overflow:hidden;min-height:320px}
.cimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:50% 60%}
.cimg figcaption{position:absolute;left:16px;bottom:14px;font:400 italic 30px/1 var(--s);color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.4)}
.cbody{display:flex;flex-direction:column;gap:16px;min-width:0;position:relative;z-index:1}
.cbody h3{font:500 clamp(36px,4vw,70px)/.92 var(--f);letter-spacing:-.06em;margin:auto 0 0;text-transform:lowercase}
.cbody .kick{display:flex;gap:8px;flex-wrap:wrap}
.cbody .desc{margin:0;font-size:17px;line-height:1.45;opacity:.8;max-width:42ch}
.cbody .specs b{font-size:15px}
.cbody .acts{margin-top:4px}
@media (max-width:900px){.cimg{min-height:0;aspect-ratio:16/10}}

/* congress media */
.cg-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.cg-media video,.cg-media img{width:100%;height:100%;object-fit:cover;display:block;opacity:.55}
.cg-media img{animation:drift 30s ease-in-out infinite alternate}
@keyframes drift{from{transform:scale(1.04) translateX(0)}to{transform:scale(1.12) translateX(-2%)}}
.cg-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,13,12,.92) 0%,rgba(12,13,12,.55) 55%,rgba(12,13,12,.75) 100%)}

.side-img{margin:32px 0 0;border-radius:24px;overflow:hidden;aspect-ratio:4/3}
.side-img img{width:100%;height:100%;object-fit:cover;display:block}
.hero h1{font-size:clamp(44px,6.1vw,104px)}
.hero .lead .tagline-h{display:block;font:400 italic clamp(22px,1.9vw,30px)/1.2 var(--s);color:var(--ink);margin-bottom:10px;letter-spacing:-.01em}
.phero .tagline-p{display:block;font:400 italic clamp(22px,2vw,30px)/1.25 var(--s);margin-bottom:10px}
.val .pn{font:400 12px/1 var(--m);color:var(--leaf-hi);padding:18px 22px 0}
.val .pn+h4{margin-top:10px}
#pillars .values{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:960px){#pillars .values{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){#pillars .values{grid-template-columns:minmax(0,1fr)}}

/* brand lockup (kept outside the blended header so the logo keeps its colours) */
.logo-spacer{width:150px}
@media (max-width:980px){.logo-spacer{width:120px}}
.brand{position:fixed;z-index:81;top:calc(10px + env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));display:flex;align-items:center;gap:10px;padding:6px 14px 6px 8px;border-radius:99px;background:rgba(242,242,238,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(12,13,12,.06),0 8px 30px rgba(12,13,12,.08);transition:transform .5s var(--ease)}
@media (min-width:900px){.brand{left:max(32px,env(safe-area-inset-left,0px))}}
.brand:hover{transform:translateY(-1px)}
.brand .emb{height:30px;width:auto;display:block}
.brand .wm{height:15px;width:auto;display:block}
/* preloader with emblem */
#pre .word{align-items:center;gap:.06em;font-family:var(--s);font-weight:400;letter-spacing:.02em}
#pre .pre-emb{height:.95em;width:auto;margin-right:.18em;opacity:0;transform:scale(.85);animation:embIn 1s var(--ease) .05s forwards}
@keyframes embIn{to{opacity:1;transform:none}}
/* footer wordmark */
.wordmark{display:flex;align-items:center;gap:.08em;font-family:var(--s);font-weight:400;letter-spacing:.01em;text-transform:none;font-size:clamp(90px,22vw,400px)}
.wordmark img{height:.82em;width:auto}

/* founding offer pricing */
.plan .p .was{font-size:.42em;letter-spacing:-.02em;opacity:.6;margin-right:.18em;text-decoration:line-through;text-decoration-color:#D2463A;text-decoration-thickness:3px;vertical-align:.45em}
.was-s{text-decoration:line-through;text-decoration-color:#D2463A;text-decoration-thickness:2px;opacity:.7}
.plan .fnote{margin:-4px 0 0;font:400 11.5px/1.45 var(--m);opacity:.7}
.offer{display:flex;gap:16px;align-items:center;flex-wrap:wrap;border-radius:18px;background:rgba(61,138,102,.10);padding:14px 18px;margin:0 0 18px}
.offer p{margin:0;font-size:15px;flex:1 1 320px}

/* hero: drifting editorial mosaic */
.hero-mosaic{position:relative;z-index:1;height:min(84vh,860px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 88%,transparent 100%)}
.mcol{overflow:hidden;min-width:0}
.mtrack{display:flex;flex-direction:column;gap:14px;animation:mUp 46s linear infinite;will-change:transform}
.m2 .mtrack{animation-name:mDown;animation-duration:54s}
.m3 .mtrack{animation-duration:40s}
.mtrack figure{margin:0;border-radius:18px;overflow:hidden;background:var(--paper-2)}
.mtrack img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;transition:transform 1.2s var(--ease)}
.m1 figure:nth-child(odd) img,.m3 figure:nth-child(even) img{aspect-ratio:4/5}
.m2 figure:nth-child(3n) img{aspect-ratio:1/1}
.hero-mosaic:hover .mtrack{animation-play-state:paused}
.mtrack figure:hover img{transform:scale(1.05)}
@keyframes mUp{from{transform:translateY(0)}to{transform:translateY(calc(-50% - 7px))}}
@keyframes mDown{from{transform:translateY(calc(-50% - 7px))}to{transform:translateY(0)}}
.hero-mosaic .hm-chip{z-index:2;bottom:22px}
@media (max-width:860px){.hero-mosaic{order:-1;height:46svh;gap:10px}.mtrack{gap:10px}.mtrack figure{border-radius:14px}}
@media (prefers-reduced-motion:reduce){.mtrack{animation:none}}

.cd{display:flex;gap:8px}
.cd span{display:flex;flex-direction:column;align-items:center;min-width:54px;padding:8px 6px;border-radius:12px;background:var(--ink);color:var(--paper);font:400 10px/1 var(--m)}
.cd b{font:500 22px/1 var(--f);letter-spacing:-.03em;margin-bottom:4px}

/* charter: compact cycling list */
.ch2{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(32px,6vw,96px);align-items:center}
.ch2 .charter{font-size:clamp(22px,2.3vw,34px);margin:22px 0 0;max-width:24ch}
.ch-big{display:flex;align-items:baseline;gap:18px;margin-top:clamp(28px,4vw,56px)}
.ch-glyph{font:400 italic clamp(90px,11vw,170px)/.8 var(--s);color:var(--leaf-hi);display:inline-block;min-width:2.2ch;transition:opacity .35s var(--ease),transform .5s var(--ease),filter .35s}
.ch-glyph.out{opacity:0;transform:translateY(18px) rotate(-4deg);filter:blur(6px)}
.ch-of{font:400 12px/1 var(--m);letter-spacing:.08em;color:var(--mute)}
.ch-of b{color:var(--paper);font-weight:400}
.ch-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-d)}
.ch-it{position:relative;border-bottom:1px solid var(--line-d)}
.ch-it button{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 18px;align-items:center;gap:14px;padding:17px 0}
.ch-it button:focus-visible{outline:2px solid var(--leaf-hi);outline-offset:4px;border-radius:4px}
.ch-l{font:400 italic 22px/1 var(--s);color:var(--mute);transition:color .3s}
.ch-t{font:500 clamp(17px,1.5vw,22px)/1.15 var(--f);letter-spacing:-.025em;color:var(--mute);transition:color .3s,transform .5s var(--ease)}
.ch-x{width:10px;height:10px;border-right:1.5px solid var(--mute);border-bottom:1.5px solid var(--mute);transform:rotate(-45deg);transition:transform .4s var(--ease),border-color .3s;justify-self:end}
.ch-it:hover .ch-t{color:var(--paper)}
.ch-it.on .ch-l{color:var(--leaf-hi)}
.ch-it.on .ch-t{color:var(--paper);transform:translateX(4px)}
.ch-it.on .ch-x{transform:rotate(45deg);border-color:var(--leaf-hi)}
.ch-d{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.ch-d>p{overflow:hidden;margin:0;padding-left:58px;padding-right:32px;font-size:15px;line-height:1.5;color:var(--mute);opacity:0;transform:translateY(-6px);transition:opacity .4s,transform .5s var(--ease)}
.ch-it.on .ch-d{grid-template-rows:1fr}
.ch-it.on .ch-d>p{opacity:1;transform:none;padding-bottom:20px;transition-delay:.12s}
.ch-bar{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--leaf-hi);transform:scaleX(0);transform-origin:left}
.ch-it.on .ch-bar{animation:chBar var(--ch-dur,4.2s) linear forwards}
.ch-list.paused .ch-it.on .ch-bar{animation-play-state:paused}
@keyframes chBar{to{transform:scaleX(1)}}
.ch-list.static .ch-d{grid-template-rows:1fr}.ch-list.static .ch-d>p{opacity:1;transform:none;padding-bottom:18px}
.ch-list.static .ch-t,.ch-list.static .ch-l{color:var(--paper)}.ch-list.static .ch-x,.ch-list.static .ch-bar{display:none}
@media (max-width:860px){.ch2{grid-template-columns:minmax(0,1fr);gap:28px}.ch-big{display:none}.ch-d>p{padding-left:58px;padding-right:28px}}
.form-err{font:400 14px/1.4 var(--f);color:#B4473B;margin:10px 0 0;flex-basis:100%}.form-err:empty{display:none}.dark .form-err{color:#E08A7F}
