/* meum tec website — site.css
   One stylesheet for all pages. Rules are grouped in the order they were built; a later rule
   overrides an earlier one for the same element. Search for a class name to find every rule that styles it.
   Tokens (colours, fonts, radius) are in :root below. Page accents come from --acc (.cai = cyan, .gc = green).
   Sections in this file:
   - site tokens
   - site
   - why we exist (v0.1 flow)
   - division cards
   - team
   - roadmap (interactive)
   - partners
   - CTA band
   - explorer
   - iso
   - other pages
   - hero system map
   - readability: larger type, looser lines
   - shared: page hero, nav state
   - About: structure tree
   - About: purpose/mission/vision
   - values
   - founder
   - team
   - route onward
   - nav dropdowns
   - background watermarks (our own elements, light)
   - card watermarks
   - European at heart (light map)
   - Team page
   - roadmap v2: line with alternating milestones
   - team card photo watermark + division label
   - expertise map
   - Team cards v3: tall portrait, flip on hover
   - closing cards: grey until hover
   - ClosedAI page
   - no black box band
   - proof of concept
   - software
   - briefing form
   - ClosedAI Software page
   - software teaser on ClosedAI page
   - digital twin section
   - product cards with drawings
   - nav subitem, footer subitem, CTA note
   - home logo bar
   - Projects & Partners
   - sticky nav that tightens into a centred bar on scroll
   - ClosedAI engineering
   - GreenCore page
   - partnership
   - phases
   - ClosedAI link band
   - EU policy
   - GreenCore v2
   - fullwidth video
   - European vision band
   - policy accordion
   - About: convictions
   - About: founder
   - Contact
   - legal pages
   - nav: links centred between logo and actions
   - About: value section v3
   - glyphs: light by default, darkmode on hover
   - founder: smaller portrait
   - project cards
   - v1.5 additions
   - founder headshot: compact
*/

@font-face{font-family:'AptosW';src:url(../fonts/Aptos.woff) format('woff');font-weight:400;font-display:swap}
@font-face{font-family:'AptosW';src:url(../fonts/Aptos-SemiBold.woff) format('woff');font-weight:600;font-display:swap}
@font-face{font-family:'AptosW';src:url(../fonts/Aptos-Black.woff) format('woff');font-weight:900;font-display:swap}
@font-face{font-family:'AptosDisplayW';src:url(../fonts/Aptos-Display.woff) format('woff');font-weight:400;font-display:swap}
/* ================= THEME — change the look of the whole site here =================
   Every colour and font used across the site comes from these tokens (the scripts read them too).
   Change a value here and rebuild; do not hard-code colours in components. */
:root{
  /* surfaces */
  --paper:#F5F6F6;      /* meum tec CD v3.0: Paper */
  --paper2:#F2F4F4;     /* meum tec CD v3.0: pale alternative */
  --card:#DFE2E3;       /* meum tec Mist / GreenCore Fog */
  --line:#C9D0D3;       /* meum tec CD v3.0: line grey */
  --line2:#DFE2E3;      /* fine dividers */
  /* text and dark surfaces */
  --ink:#0A1B29;        /* headings, dark bands, footer */
  --navy:#08243B;       /* secondary dark */
  --ink2:#435260;       /* body text */
  --muted:#68727D;      /* CD secondary text, legible on Paper */
  /* accents: group, ClosedAI, GreenCore */
  --neon:#DBFF00;
  --cyan:#28E5FE;
  --green:#2CFE28;
  --teal:#1C6F81;
  /* accent rule (see "v1.7: accent rule"): details are --rest until hovered or selected */
  --rest:#B7BCB6;       /* grey used for accents at rest */
  --hl-mix:#7F888E;     /* grey mixed with the accent for hover outlines */
  --acc:var(--neon);
  /* type: replace the @font-face files above and these names to change fonts */
  --f:'AptosW',system-ui,sans-serif;          /* body and UI */
  --fd:'AptosDisplayW','AptosW',system-ui,sans-serif;  /* display */
  --mono:'AptosW',system-ui,sans-serif;
  /* shape */
  --r:12px;
}
.cai{--acc:var(--cyan)}
.gc{--acc:var(--green)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--f);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none;cursor:pointer}
img{display:block}


/* ---------- site tokens ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--f);font-weight:600;font-size:13px;letter-spacing:0;color:var(--ink2)}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 35%,transparent)}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:600;border:1px solid transparent;transition:.2s;white-space:nowrap}
.btn-acc{background:var(--acc);color:var(--ink)}
.btn-acc:hover{box-shadow:0 0 0 4px color-mix(in srgb,var(--acc) 35%,transparent)}
.btn-line{border-color:color-mix(in srgb,var(--ink) 35%,transparent);color:var(--ink)}
.btn-line:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.arw{width:18px;height:18px;border-radius:50%;background:var(--ink);color:var(--acc);display:inline-grid;place-items:center;font-size:10px}
.status{display:inline-flex;align-items:center;gap:7px;font-family:var(--f);font-size:12.5px;letter-spacing:0;color:var(--ink2)}
.status i{width:8px;height:8px;border-radius:50%;border:1.4px solid var(--ink)}
.status.done i{background:var(--ink)}
.status.prog i{background:var(--acc)}
.status.plan i{background:transparent}
.dark .status{color:#C9D2D9}
.dark .status i{border-color:#fff}
.dark .status.done i{background:#fff}
.tagd{display:inline-flex;align-items:center;gap:6px;font-family:var(--f);font-size:12px;font-weight:600;letter-spacing:0;color:var(--ink2)}
.tagd::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 30%,transparent)}
.chip{font-size:11.5px;border:1px solid var(--line);background:var(--paper2);padding:3px 9px;border-radius:999px;color:var(--ink2)}


/* ---------- site ---------- */
.site{background:var(--paper)}
.wrap{max-width:1180px;margin:0 auto;padding:0 40px}
.nav{display:flex;align-items:center;gap:28px;height:64px}
.nav .lg{height:20px;margin-right:auto}
.nav a.l{font-size:13.5px;font-weight:600;color:var(--ink2)}
.nav a.l:hover{color:var(--ink)}
.nav a.dd::after{content:"";display:inline-block;width:5px;height:5px;border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;transform:rotate(45deg) translateY(-3px);margin-left:7px}
.nav .lang{font-family:var(--f);font-size:13px;color:var(--muted)}
.nav .lang b{color:var(--ink);font-weight:500}
.hero{display:grid;grid-template-columns:.95fr 1.05fr;gap:20px;align-items:center;padding:40px 0 34px;border-top:1px solid var(--line2)}
.hero h1{font-weight:900;font-size:62px;line-height:.98;letter-spacing:-.04em;margin:16px 0 18px}
.hero h1 .tr{position:relative;display:inline-block}
.hero h1 .tr::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:linear-gradient(90deg,transparent,var(--neon),transparent);background-size:200% 100%;animation:sweep 3.5s linear infinite}
@keyframes sweep{from{background-position:200% 0}to{background-position:-200% 0}}
.hero p.lead{font-size:16.5px;color:var(--ink2);max-width:430px;margin-bottom:24px}
.ctas{display:flex;gap:10px}
.hero .meta{display:flex;gap:0;margin-top:34px;border:1px solid var(--line);border-radius:10px;width:max-content;overflow:hidden}
.hero .meta div{padding:9px 16px;border-right:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:0;color:var(--muted)}
.hero .meta div:last-child{border-right:0}
.hero .meta b{display:block;color:var(--ink);font-weight:500;font-size:11.5px;margin-top:2px}
.hero-art{position:relative}
.hero-art svg{width:112%;margin-left:-6%}
section.s{padding:68px 0;border-top:1px solid var(--line2)}
.s-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:32px}
.s-head h2{font-weight:900;font-size:42px;line-height:1.06;letter-spacing:-.04em;margin-top:12px}
.s-head p{color:var(--ink2);font-size:15px;max-width:440px}


/* why we exist (v0.1 flow) */
.flow{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper2)}
.flow > div{padding:26px 28px 28px;border-right:1px solid var(--line)}
.flow > div:last-child{border-right:0}
.flow svg{width:100%;height:64px;display:block;margin-bottom:6px}
.flow .num{font-size:12.5px;color:var(--muted);font-weight:600}
.flow h3{font-size:22px;font-weight:900;letter-spacing:-.025em;margin:8px 0 6px}
.flow p{color:var(--ink2);font-size:14.5px}


/* division cards */
.divs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dcard{background:var(--paper2);border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:border-color .25s, box-shadow .25s}
.dcard:hover{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 30%,transparent)}
.dcard .top{display:flex;justify-content:space-between;align-items:center}
.dcard .top img{height:30px}
.dcard p{color:var(--ink2);font-size:14px;margin-top:12px;max-width:440px}
.dcard .mini{height:170px;margin:8px 0 12px;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--ink) 8%,transparent) 1px,transparent 0) 0 0/18px 18px;border-radius:10px;border:1px solid var(--line2)}
.dcard .mini svg{width:100%;height:100%}
.dcard .foot{display:flex;justify-content:space-between;align-items:center}
.dcard .chips{display:flex;gap:6px}
.dcard .go{font-size:13px;font-weight:600;display:flex;gap:8px;align-items:center}


/* team */
.team{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.team h2{font-weight:900;font-size:42px;line-height:1.06;letter-spacing:-.04em;margin:12px 0 12px}
.team p{color:var(--ink2);max-width:440px;margin-bottom:18px}
.faces{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.face{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--card)}
.face img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .3s, transform .4s}
.face:hover img{filter:none;transform:scale(1.04)}
.face span{position:absolute;left:0;right:0;bottom:0;padding:14px 6px 4px;font-size:9.5px;color:#fff;background:linear-gradient(transparent,color-mix(in srgb,var(--ink) 75%,transparent));opacity:0;transition:.25s;font-weight:600;line-height:1.2}
.face:hover span{opacity:1}
.face i{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 50%,transparent)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);margin-top:14px;background:var(--paper2)}
.stats div{padding:14px 16px;border-right:1px solid var(--line)}
.stats div:last-child{border-right:0}
.stats b{display:block;font-weight:900;font-size:30px;letter-spacing:-.035em;line-height:1}
.stats span{font-size:11.5px;color:var(--ink2)}


/* roadmap (interactive) */
.rm{border:1px solid var(--line);border-radius:14px;background:var(--paper2);overflow:hidden}
.rm-filter{display:flex;gap:6px}
.rm-filter button{font:600 13px var(--f);color:var(--ink2);background:transparent;border:1px solid var(--line);border-radius:999px;padding:6px 13px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:.2s}
.rm-filter button i{width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 30%,transparent)}
.rm-filter button:hover{border-color:var(--ink);color:var(--ink)}
.rm-filter button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.rm-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,var(--ink) 0 88%,var(--neon));border-radius:2px;transition:width 1.6s cubic-bezier(.2,.7,.2,1)}
.rm-today{position:absolute;top:22px;bottom:22px;width:0;border-left:1px dashed var(--ink);opacity:.5}
.rm-today span{position:absolute;top:-4px;left:6px;font-size:11.5px;font-weight:600;white-space:nowrap}
.rm-node{position:absolute;top:58px;transform:translate(-50%,-50%);background:none;border:0;cursor:pointer;padding:12px}
.rm-node .d{display:block;width:14px;height:14px;border-radius:50%;border:2px solid var(--ink);background:var(--paper2);transition:transform .25s, box-shadow .25s;box-shadow:0 0 0 3px var(--paper2), 0 0 0 4.5px var(--acc)}
.rm-node.done .d{background:var(--ink)}
.rm-node.prog .d{background:var(--acc);animation:pulse 2.4s ease-in-out infinite}
.rm-node.plan .d{background:var(--paper2);border-width:1.6px}
.rm-node:hover .d{transform:scale(1.25)}
.rm-node.sel .d{transform:scale(1.45)}
.rm-node .lb{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;font-weight:600;color:var(--ink2);transition:.2s}
.rm-node .lb.up{bottom:42px}
.rm-node .lb.dn{top:42px}
.rm-node.sel .lb{color:var(--ink)}
.rm-node.dim{opacity:.22;pointer-events:none}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px var(--paper2),0 0 0 4.5px var(--acc)}50%{box-shadow:0 0 0 3px var(--paper2),0 0 0 11px color-mix(in srgb,var(--acc) 0%,transparent)}}
.rm-date{font-weight:900;font-size:40px;letter-spacing:-.04em;line-height:1}
.rm-meta{display:flex;gap:14px;align-items:center;margin-bottom:6px}
.rm-title{font-size:20px;font-weight:900;letter-spacing:-.02em;margin-bottom:4px}
.rm-text{color:var(--ink2);font-size:14.5px;max-width:620px}
.rm-body{transition:opacity .25s, transform .25s}
.rm-body.swap{opacity:0;transform:translateY(6px)}
.rm-count{font-size:12.5px;color:var(--muted);min-width:44px;text-align:center}


/* partners */
.partners{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper2)}


/* CTA band */
.dark{background:var(--ink);color:#fff}
.cta{position:relative;overflow:hidden;padding:76px 0}
.cta .grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(ellipse at 30% 50%,#000 20%,transparent 70%)}
.cta .beam{position:absolute;height:1px;left:0;right:0;background:linear-gradient(90deg,transparent,var(--neon),transparent);background-size:35% 100%;background-repeat:no-repeat;animation:beam 6s linear infinite;opacity:.85}
.cta .b1{top:28%}
.cta .b2{top:74%;animation-duration:8s;animation-delay:-3s;background-image:linear-gradient(90deg,transparent,var(--cyan),transparent)}
.cta .b3{top:52%;animation-duration:10s;animation-delay:-5s;background-image:linear-gradient(90deg,transparent,var(--green),transparent);opacity:.6}
@keyframes beam{from{background-position:-35% 0}to{background-position:135% 0}}
.cta .inner{position:relative;display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:end}
.cta h2{font-weight:900;font-size:50px;letter-spacing:-.04em;line-height:1;margin-top:14px}
.cta .eyebrow{color:#AFC0C9}
.cta .r{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.cta .r p{color:#AFC0C9;font-size:14px;margin-bottom:6px}
.btn-ghost{border-color:#36515F;color:#fff}
.btn-ghost:hover{border-color:#fff}
footer.f{background:var(--ink);color:#AFC0C9;border-top:1px solid #1A2F40;padding:40px 0 22px;font-size:13px}
.fgrid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:24px}
.fgrid .fhead{font-family:var(--f);font-size:13.5px;color:#fff;font-weight:600;letter-spacing:0;margin-bottom:10px}
.fgrid a{display:block;margin-bottom:6px}
.fgrid a:hover{color:#fff}
.fdiv{display:flex;gap:10px;margin-top:14px}
.fdiv img{height:28px;border-radius:6px}
.fbot{display:flex;justify-content:space-between;margin-top:32px;padding-top:16px;border-top:1px solid #1A2F40;font-size:11.5px;color:#7F909D}


/* ---------- explorer ---------- */
.explorer{display:grid;grid-template-columns:1.55fr 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--paper2)}
.ex-stage{position:relative;border-right:1px solid var(--line);padding:18px;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--ink) 8%,transparent) 1px,transparent 0) 0 0/18px 18px,var(--paper2)}
.ex-stage::before,.ex-stage::after{content:"";position:absolute;width:14px;height:14px;border-color:var(--ink);border-style:solid;opacity:.5}
.ex-stage::before{top:12px;left:12px;border-width:1px 0 0 1px}
.ex-stage::after{bottom:12px;right:12px;border-width:0 1px 1px 0}
.ex-head{padding:18px 22px 10px;border-bottom:1px solid var(--line)}
.ex-head img{height:22px;margin-bottom:10px}
.ex-head h3{font-size:20px;font-weight:900;letter-spacing:-.025em;letter-spacing:-.015em}
.ex-list{display:flex;flex-direction:column}
.ex-rows{padding:2px 22px 10px}
.ex-row{border-bottom:1px solid var(--line2);padding:12px 0;cursor:pointer;outline:none}
.ex-row:last-child{border-bottom:0}
.ex-row .hd{display:grid;grid-template-columns:34px 1fr;align-items:center}
.ex-row .n{font-family:var(--f);font-weight:600;font-size:12px;color:var(--muted);width:max-content;padding:1px 4px;border-radius:3px;margin-left:-4px;transition:.2s}
.ex-row .t{font-size:15px;font-weight:600;color:var(--ink2);transition:.2s}
.ex-row .c{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:0}
.ex-row .bd{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
.ex-row .bd > div{overflow:hidden;padding-left:34px}
.ex-row.on .bd{grid-template-rows:1fr}
.ex-row.on .t{color:var(--ink)}
.ex-row.on .n{color:var(--ink);background:var(--acc)}
.ex-row p{color:var(--ink2);font-size:13px;margin:7px 0 9px;line-height:1.5}
.ex-row .chips{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.ex-row .chip{font-size:10.5px;padding:2px 8px}
.ex-row:hover .t{color:var(--ink)}
.ex-row:focus-visible .t{text-decoration:underline}
.ex-foot{margin-top:auto;padding:12px 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}


/* iso */
svg.iso{width:100%;height:auto;display:block}
.ex-stage svg.iso{max-height:420px}
.iso .f-t{fill:#FCFCFA;stroke:#8E969D;stroke-width:.7}
.iso .f-l{fill:#EFF0EB;stroke:#8E969D;stroke-width:.7}
.iso .f-r{fill:#E5E7E1;stroke:#8E969D;stroke-width:.7}
.iso .det{fill:none;stroke:#AEB4B8;stroke-width:.55}
.iso .panel{fill:#F3F5F3}
.iso .plate{fill:color-mix(in srgb,var(--acc) 4%,transparent);stroke:#8E969D;stroke-width:.8;stroke-dasharray:4 3}
.iso .arm{fill:none;stroke:#7F878E;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}
.iso .joint{fill:#FCFCFA;stroke:#7F878E;stroke-width:1.1}
.iso .pipe{fill:none;stroke:#A2A9AE;stroke-width:1.1}
.iso .pulse{fill:var(--ink)}
.iso .pulse-glow{fill:var(--acc);opacity:.6}
.iso .pulse-glow.t-c{fill:var(--cyan)}
.iso .pulse-glow.t-g{fill:var(--green)}
.iso .it{transition:opacity .3s}
.has-active .iso .grp{opacity:.38}
.has-active .iso .grp.on{opacity:1}
.iso .grp.on .f-t,.iso .grp.on .f-l,.iso .grp.on .f-r{stroke:var(--ink);stroke-width:.9}
.iso .grp.on .f-t{fill:color-mix(in srgb,var(--acc) 16%,#fff)}
.iso .grp.on .det{stroke:#56626C}
.iso .grp.on .plate{stroke:var(--ink);fill:color-mix(in srgb,var(--acc) 14%,transparent);animation:dash 1.2s linear infinite}
@keyframes dash{to{stroke-dashoffset:-14}}
.iso .grp.on .arm{stroke:var(--ink)}
.iso .grp.on .joint{stroke:var(--ink);fill:var(--acc)}
.iso .pipe.on{stroke:var(--ink);stroke-width:1.5}
.iso .mk{cursor:pointer}
.iso .mk .stem{stroke:var(--ink);stroke-width:1}
.iso .mk .sq{fill:#fff;stroke:var(--ink);stroke-width:1.2;transition:fill .2s}
.iso .mk:hover .sq,.iso .mk.on .sq{fill:var(--acc)}
.iso .mk .chip{opacity:0;transition:opacity .2s}
.iso .mk.on .chip,.iso .mk:hover .chip{opacity:1}
.iso .mk .chip-bg{fill:var(--ink)}
.iso .mk .chip-t{fill:var(--acc);font-family:var(--f);font-weight:600;font-size:12px;letter-spacing:0}
.iso .mk.on .sq{transform-box:fill-box;transform-origin:center;animation:sqp 1.6s ease-in-out infinite}
@keyframes sqp{50%{transform:scale(1.2)}}


/* other pages */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .iso .pulse,.iso .pulse-glow{display:none}
}


/* hero system map */
.hero-art{position:relative;display:flex;flex-direction:column;align-items:center}
.sysmap{width:100%;max-width:520px}
.sm{width:100%;height:auto;display:block;overflow:visible}
.sm-dial{transform-origin:300px 300px;animation:spin 140s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.sm .tk{stroke:#B9BEB6;stroke-width:1}
.sm .tk.m{stroke:#6F7880;stroke-width:1.3}
.sm-out{fill:none;stroke:var(--line)}
.sm-arc{fill:none;stroke-width:3;stroke-linecap:round;opacity:.95}
.sm-ring{fill:none;stroke:#9EA5AB;stroke-width:1}
.sm-ring2{fill:none;stroke:#CBCDC5;stroke-width:1;stroke-dasharray:3 5}
.sm-spoke{stroke:#C3C7C0;stroke-width:1;transition:stroke .3s}
.sm-spoke.on{stroke:var(--ink);stroke-width:1.4}
.sm-node{cursor:pointer;outline:none}
.sm-node .halo{opacity:0;transition:opacity .3s}
.sm-node.on .halo{opacity:.22}
.sm-node .disc{fill:#FCFCFA;stroke:#7F878E;stroke-width:1.1;transition:.3s}
.sm-node.on .disc{stroke:var(--ink);stroke-width:1.6}
.sm-node .ic{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.sm-node .dot{stroke:var(--ink);stroke-width:1}
.sm-node .lbl{font:600 15px var(--f);fill:var(--ink2);transition:fill .3s}
.sm-node.on .lbl{fill:var(--ink);font-weight:900}
.sm .pl{opacity:.95}
.sm .ringp{fill:var(--ink)}
.sm .core{fill:#FCFCFA;stroke:var(--ink);stroke-width:1.2}
.sm .core-r{fill:none;stroke:var(--ink);stroke-width:1;stroke-dasharray:2 4}
.sys-cap{margin-top:6px;width:100%;max-width:440px;text-align:center;min-height:92px;transition:opacity .2s,transform .2s}
.sys-cap.swap{opacity:0;transform:translateY(4px)}
.sys-t{font-weight:900;font-size:24px;letter-spacing:-.025em;margin:4px 0 2px}
.sys-x{color:var(--ink2);font-size:16px;line-height:1.55}
@media (prefers-reduced-motion:reduce){
  .sm .pl,.sm .ringp{display:none}
}


/* readability: larger type, looser lines */
body{font-size:16.5px;line-height:1.65}
.hero h1{font-size:74px;line-height:1.02;letter-spacing:-.035em}
.hero p.lead{font-size:19px;line-height:1.6;max-width:470px;margin-bottom:30px}
.s-head h2,.team h2{font-size:48px;line-height:1.1;letter-spacing:-.03em}
.s-head p,.team p{font-size:17.5px;line-height:1.65;max-width:470px}
.s-head{margin-bottom:40px}
section.s{padding:84px 0}
.eyebrow{font-size:14.5px}
.btn{font-size:15px;padding:11px 19px}
.flow h3{font-size:25px}
.flow p{font-size:16.5px;line-height:1.6}
.flow .num{font-size:14px}
.dcard p{font-size:16.5px;line-height:1.6}
.chip{font-size:13px;padding:4px 11px}
.status{font-size:14px}
.tagd{font-size:13.5px}
.stats b{font-size:38px}
.stats span{font-size:14px}
.rm-filter button{font-size:14.5px;padding:7px 15px}
.rm-node .lb{font-size:13.5px}
.rm-date{font-size:46px}
.rm-title{font-size:23px}
.rm-text{font-size:16.5px;line-height:1.6}
.ex-head h3{font-size:23px}
.ex-row .t{font-size:18px}
.ex-row .n{font-size:13.5px}
.ex-row p{font-size:15.5px;line-height:1.65}
.ex-row{padding:15px 0}
.ex-row .chip{font-size:12.5px}
.cta h2{font-size:58px;line-height:1.05}
.cta .r p{font-size:16.5px;line-height:1.6}
footer.f{font-size:15px;line-height:1.7}
.fgrid .fhead{font-size:15px}
.nav a.l{font-size:15px}
.face span{font-size:11px}
.iso .mk .chip-t{font-size:13px}


/* ================= shared: page hero, nav state ================= */
.nav a.l.cur{color:var(--ink)}
.nav a.l.cur::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--acc);margin-right:7px;vertical-align:middle;box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 30%,transparent)}
.phero{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:center;padding:56px 0 48px;border-top:1px solid var(--line2)}
.phero h1{font-weight:900;font-size:68px;line-height:1.02;letter-spacing:-.035em;margin:16px 0 20px}
.phero .lead{font-size:19px;line-height:1.6;color:var(--ink2);max-width:480px;margin-bottom:12px}
.phero .ctas{margin-top:26px}
@media (max-width:900px){
  .phero{grid-template-columns:1fr}
  .phero h1{font-size:46px}
}


/* ================= About: structure tree ================= */
.treewrap{display:flex;flex-direction:column;align-items:center}
#structree{width:100%;display:flex;justify-content:center}
.tree{width:100%;max-width:600px;height:auto;display:block}
.tree .tl{fill:none;stroke:#C3C7C0;stroke-width:1.2;transition:stroke .3s,opacity .3s}
.tree.has-sel .tl{opacity:.35}
.tree .tl.on{opacity:1;stroke:var(--ink)}
.tree .tbox{fill:#FCFCFA;stroke:#9EA5AB;stroke-width:1;transition:.3s}
.tree .tn{cursor:pointer;outline:none;transition:opacity .3s}
.tree.has-sel .tn{opacity:.45}
.tree .tn.on{opacity:1}
.tree .tn.on > .tbox{stroke:var(--ink);stroke-width:1.5}
.tree .tsub{font:600 11.5px var(--f);fill:var(--muted)}
.tree .lbox{fill:#E9EAE4;stroke:none;transition:.3s}
.tree .tn.on .lbox{fill:#fff;stroke:var(--ink);stroke-width:1}
.tree .tn-cai.on .lbox{fill:color-mix(in srgb,var(--cyan) 18%,#fff)}
.tree .tn-gc.on .lbox{fill:color-mix(in srgb,var(--green) 16%,#fff)}
.tree .ltxt{font:600 12px var(--f);fill:var(--ink)}
.tree-cap{max-width:520px;text-align:center;min-height:118px;margin-top:4px;transition:opacity .2s,transform .2s}
.tree-cap.swap{opacity:0;transform:translateY(4px)}
.tc-k{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:22px;letter-spacing:-.02em}
.tc-k::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 30%,transparent)}
.tc-x{color:var(--ink2);font-size:16px;line-height:1.6;margin-top:6px}


/* ================= About: purpose/mission/vision ================= */
.pmv .flow > div{padding:30px}
.pmv p{font-size:16px;line-height:1.7}
.pmv .chips{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}


/* ================= values ================= */
.val{position:relative;background:var(--paper2);border:1px solid var(--line);border-radius:14px;padding:28px 28px 30px;overflow:hidden;transition:border-color .3s,transform .3s}
.val::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--neon);transition:width .5s ease}
.val:hover{border-color:var(--ink);transform:translateY(-3px)}
.val:hover::before{width:100%}
.val h3{font-weight:900;font-size:24px;line-height:1.2;letter-spacing:-.025em;margin-bottom:14px}
.val p{color:var(--ink2);font-size:15.5px;line-height:1.7}


/* ================= founder ================= */
.founder{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:center;background:var(--paper2);border:1px solid var(--line);border-radius:18px;padding:44px 48px;position:relative;overflow:hidden}
.founder::after{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;border:1px dashed var(--line)}
.founder blockquote{font-weight:900;font-size:31px;line-height:1.32;letter-spacing:-.025em}
.founder blockquote .q{color:var(--muted)}
.founder .who{margin-top:22px;display:flex;align-items:center;gap:12px}
.founder .who b{font-weight:600;font-size:16px;display:block}
.founder .who span{color:var(--ink2);font-size:14.5px}
.founder .who i{width:28px;height:2px;background:var(--neon);display:block}
.founder .ph{border-radius:16px;overflow:hidden;aspect-ratio:1;position:relative;z-index:1}
.founder .ph img{width:100%;height:100%;object-fit:cover}


/* ================= team ================= */
.tgroup{margin-top:38px}
.tgroup-h{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:16px}
.tgroup-h b{font-weight:900;font-size:20px;letter-spacing:-.02em}
.tgroup-h span{color:var(--muted);font-size:14px}
.tgroup-h i{width:9px;height:9px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 30%,transparent)}
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tcard{background:var(--paper2);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .3s,transform .3s;display:flex;flex-direction:column}
.tcard:hover{border-color:var(--ink);transform:translateY(-3px)}
.tcard .ph{aspect-ratio:1.1;overflow:hidden;background:#111;position:relative}
.tcard .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .4s,transform .5s}
.tcard:hover .ph img{filter:none;transform:scale(1.03)}
.tcard .ph .yrs{position:absolute;left:12px;bottom:12px;background:color-mix(in srgb,var(--ink) 78%,transparent);color:#fff;font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;backdrop-filter:blur(4px)}
.tcard .ph .yrs::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--acc);margin-right:6px;vertical-align:middle}
.tcard .bd{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.tcard h4{font-weight:900;font-size:18px;letter-spacing:-.02em}
.tcard .role{font-size:14px;color:var(--ink2);line-height:1.45}
.tcard p{font-size:14px;line-height:1.6;color:var(--ink2);margin-top:4px;flex:1}
.tcard .tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.tcard .tags span{font-size:12px;background:var(--card);padding:3px 9px;border-radius:999px;color:var(--ink2)}
.tcard .li{font-size:13px;font-weight:600;margin-top:10px;display:inline-flex;gap:6px;align-items:center;color:var(--ink2)}
.tcard .li:hover{color:var(--ink)}
.tcard .bd .tagd{margin-bottom:2px}


/* ================= route onward ================= */
.next3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.ncard{border:1px solid var(--line);border-radius:14px;background:var(--paper2);padding:24px;display:flex;flex-direction:column;gap:12px;min-height:190px;transition:.3s}
.ncard:hover{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 30%,transparent)}
.ncard img{height:30px;align-self:flex-start}
.ncard h3{font-weight:900;font-size:22px;letter-spacing:-.02em}
.ncard p{color:var(--ink2);font-size:15px;line-height:1.6;flex:1}
.ncard .go{font-weight:600;font-size:14.5px;display:flex;gap:8px;align-items:center}
@media (max-width:900px){
  .tgrid,.next3{grid-template-columns:1fr}
  .founder{grid-template-columns:1fr;padding:28px}
}


/* ================= nav dropdowns ================= */
.nav .lg{margin-right:0}
.ddw{position:relative}
.ddm{position:absolute;top:calc(100% + 14px);left:-18px;min-width:340px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:0 20px 40px -20px color-mix(in srgb,var(--ink) 35%,transparent);opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s;z-index:20}
.ddw::after{content:"";position:absolute;left:0;right:0;top:100%;height:16px}
.ddw:hover .ddm,.ddw:focus-within .ddm{opacity:1;visibility:visible;transform:none}
.ddm a{display:block;padding:10px 12px;border-radius:10px}
.ddm a:hover{background:var(--paper)}
.ddm b{display:block;font-weight:600;font-size:15px}
.ddm span{display:block;font-size:13.5px;color:var(--ink2)}
.nav .lang a{color:var(--muted)}
.site{overflow-x:clip}


/* ================= background watermarks (our own elements, light) ================= */
.has-deco{position:relative}
.has-deco > *:not(.deco){position:relative;z-index:1}
.deco{position:absolute;z-index:0;pointer-events:none;width:620px;opacity:.55}
.deco svg{width:100%;height:auto;display:block;overflow:visible}
.deco .iso .f-t,.deco .iso .f-l,.deco .iso .f-r,.deco .iso .panel,.deco .iso .plate{fill:none;stroke:#C9CCC4;stroke-width:.8}
.deco .iso .det{stroke:#D6D8D0;stroke-width:.6}
.deco .iso .arm{stroke:#C9CCC4;stroke-width:3}
.deco .iso .joint{fill:none;stroke:#C9CCC4}
.deco-dial svg line,.deco-dial svg circle{fill:none;stroke:#CDD0C8;stroke-width:1}
.deco-dial svg line.m{stroke:#B9BDB5;stroke-width:1.4}
.deco-dial svg circle.d{stroke-dasharray:3 6}
.deco-dial svg circle.n{fill:var(--paper)}
.deco.deco-right{right:-200px;top:-30px}
.deco.deco-left{left:-260px;top:10px}
.deco-dial.deco-right{right:-200px;top:40px;width:540px;opacity:.4}
.deco-dial.deco-left{left:-280px;top:-60px;width:560px}


/* card watermarks */
[data-wm]{position:relative;overflow:hidden}
.wm{position:absolute;right:-30px;bottom:-40px;width:190px;height:190px;background:var(--wmc,#C9CCC4);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;opacity:.28;pointer-events:none;transition:transform .5s ease,opacity .3s}
.wm svg{width:100%;height:auto;display:block}
.cai .wm{background:color-mix(in srgb,var(--cyan) 55%,#C9CCC4)}
.gc .wm{background:color-mix(in srgb,var(--green) 45%,#C9CCC4)}
[data-wm]:hover .wm{transform:translate(-6px,-6px) scale(1.04);opacity:.45}
.ncard > *:not(.wm){position:relative;z-index:1}
.ncard h3 .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--acc);margin-right:9px;vertical-align:middle;box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 30%,transparent)}
.ncard{min-height:220px}


/* ================= European at heart (light map) ================= */
.eu2{position:relative;display:grid;grid-template-columns:330px 1px 1fr;gap:40px;align-items:start}
.eu2 .vline{background:linear-gradient(var(--line),var(--line));width:1px;align-self:stretch;position:relative}
.eu2 .vline::after{content:"";position:absolute;left:-4px;top:48%;width:9px;height:9px;border-radius:50%;background:var(--neon);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 35%,transparent)}
.eu2 h2{font-weight:900;font-size:46px;line-height:1.06;letter-spacing:-.035em;margin:18px 0 22px}
.eu2 h2 .hl{background:linear-gradient(transparent 62%,color-mix(in srgb,var(--neon) 75%,transparent) 62% 92%,transparent 92%)}
.eu2 h2 .dot{color:var(--neon);-webkit-text-stroke:1px color-mix(in srgb,var(--ink) 25%,transparent)}
.eu2 .intro-p{font-size:18px;line-height:1.6;color:var(--ink2);max-width:380px}
.eu-right{position:relative;display:grid;grid-template-columns:280px 1fr;gap:24px;margin-right:-130px}
.eu-items{display:flex;flex-direction:column;gap:46px;padding-top:6px;position:relative;z-index:2}
.eu-item .n{font-weight:900;font-size:16px;display:inline-block;padding:0 6px;border-radius:4px;background:var(--neon);line-height:1.4}
.eu-item h3{font-weight:900;font-size:21px;letter-spacing:-.02em;margin:8px 0 6px}
.eu-item p{font-size:15px;line-height:1.65;color:var(--ink2)}
.eu-item{cursor:default}
#eumap{align-self:center}
.eumap{width:100%;height:auto;display:block}
.eumap .dotbg{opacity:.6}
.eumap .cty{fill:var(--paper2);stroke:#B7BCB4;stroke-width:.7}
.eumap .cty.hl{fill:#EDEFE6;stroke:#6F7880;stroke-width:1}
.eumap .cty.hl-CH,.eumap .cty.hl-LI{fill:color-mix(in srgb,var(--cyan) 10%,#F3F4EE)}
.eumap .cty.hl-BG{fill:color-mix(in srgb,var(--green) 10%,#F3F4EE)}
.eumap .arc{fill:none;stroke:var(--ink);stroke-width:1;opacity:.55}
.eumap .apg{fill:var(--neon);opacity:.6}
.eumap .ap{fill:var(--ink)}
.eumap .pt .halo{fill:var(--neon);opacity:.35;transition:.3s}
.eumap .pt .core{fill:var(--neon);stroke:var(--ink);stroke-width:1.2}
.eumap .pt.on .halo{opacity:.7;transform-box:fill-box;transform-origin:center;transform:scale(1.4)}
.eumap .plbl{font:600 17px var(--f);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:4px}
svg.eu-ov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:visible}
svg.eu-ov .conn{fill:none;stroke:#9EA5AB;stroke-width:1}
@media (max-width:900px){
  .eu2,.eu-right{grid-template-columns:1fr}
  .eu2 .vline,svg.eu-ov{display:none}
  .eu2 h2{font-size:42px}
}


/* ================= Team page ================= */
.tfilter{display:flex;gap:6px;flex-wrap:wrap}
.tfilter button{font:600 14.5px var(--f);color:var(--ink2);background:transparent;border:1px solid var(--line);border-radius:999px;padding:8px 15px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:.2s}
.tfilter button img{height:16px;border-radius:4px}
.tfilter button:hover{border-color:var(--ink);color:var(--ink)}
.tfilter button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.tcount{color:var(--muted);font-size:14.5px}
.tm{background:var(--paper2);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .3s,transform .3s,opacity .3s}
.tm.hide{display:none}
.tm:hover{border-color:var(--ink);transform:translateY(-3px)}
.tm .ph{position:relative;aspect-ratio:1/1.05;overflow:hidden;background:#111}
.tm .ph img.p{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .4s,transform .5s}
.tm:hover .ph img.p{filter:none;transform:scale(1.03)}
.tm .ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--acc)}
.tm .div{display:none;position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:7px;background:rgba(252,252,250,.92);backdrop-filter:blur(6px);border-radius:999px;padding:4px 11px 4px 4px;font-size:12.5px;font-weight:600;color:var(--ink)}
.tm .div img{height:22px;width:22px;border-radius:6px;object-fit:contain;background:#fff}
.tm .yrs{position:absolute;left:12px;bottom:14px;background:color-mix(in srgb,var(--ink) 75%,transparent);color:#fff;font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;backdrop-filter:blur(4px)}
.tm .bd{padding:16px 18px 18px;display:flex;flex-direction:column;gap:5px;flex:1}
.tm h4{font-weight:900;font-size:18px;letter-spacing:-.02em}
.tm .role{font-size:14px;color:var(--ink2);line-height:1.45}
.tm p{font-size:14px;line-height:1.6;color:var(--ink2);margin-top:6px;flex:1}
.tm .tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
.tm .tags span{font-size:12px;background:var(--card);padding:3px 9px;border-radius:999px;color:var(--ink2)}
.tm .li{font-size:13px;font-weight:600;margin-top:10px;color:var(--ink2)}


/* ================= roadmap v2: line with alternating milestones ================= */
.rmap{--ax:330px;position:relative;height:620px;margin:0}
.rmi .tb{min-height:112px}
.rmap .ax{position:absolute;left:0;right:0;top:var(--ax);height:2px;background:repeating-linear-gradient(90deg,#BFC3BB 0 6px,transparent 6px 11px)}
.rmap .ax-done{position:absolute;left:0;top:-1px;height:4px;width:0;border-radius:2px;background:linear-gradient(90deg,#E9FF6E,var(--neon));transition:width 1.6s cubic-bezier(.2,.7,.2,1)}
.rmap .ax-today{position:absolute;top:calc(var(--ax) - 30px);height:60px;border-left:1px dashed var(--ink);opacity:.55}
.rmap .ax-today span{position:absolute;top:-20px;left:-18px;font-size:12.5px;font-weight:600;white-space:nowrap}
.rmi{position:absolute;top:0;bottom:0;width:0}
.rmi .nd{position:absolute;top:var(--ax);left:0;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:12.5px;background:var(--neon);color:var(--ink);box-shadow:0 0 0 4px var(--paper);cursor:pointer;z-index:3;transition:transform .25s}
.rmi.prog .nd{background:#fff;box-shadow:0 0 0 4px var(--paper),0 0 0 6px var(--neon);animation:rmp 2.2s ease-in-out infinite}
@keyframes rmp{50%{box-shadow:0 0 0 4px var(--paper),0 0 0 11px color-mix(in srgb,var(--neon) 30%,transparent)}}
.rmi.plan .nd{background:var(--paper);border:1.5px dashed #9EA5AB;color:var(--ink2)}
.rmi .st{position:absolute;left:0;width:1px;background:#BFC3BB}
.rmi.up .st{top:calc(var(--ax) - 84px);height:70px}
.rmi.dn .st{top:calc(var(--ax) + 15px);height:62px}
.rmi .tb{position:absolute;width:192px;left:-96px;background:var(--paper2);border:1px solid var(--line);border-radius:12px;padding:12px 14px 12px;cursor:pointer;transition:border-color .25s,box-shadow .25s,background .25s,opacity .25s;z-index:2;outline:none}
.rmi.up .tb{bottom:calc(100% - var(--ax) + 84px)}
.rmi.dn .tb{top:calc(var(--ax) + 77px)}
.rmi .tb::before{content:"";position:absolute;left:14px;right:14px;top:-1px;height:3px;border-radius:0 0 3px 3px;background:var(--acc)}
.rmi .hd{display:flex;align-items:center;gap:10px}
.rmi .ic{width:32px;height:32px;flex:none;border-radius:50%;background:var(--card);display:grid;place-items:center}
.rmi .dt{font-size:12.5px;font-weight:600;color:var(--ink2)}
.rmi h5{font-weight:900;font-size:15px;line-height:1.3;letter-spacing:-.01em;margin-top:8px}
.rmi .ds{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.rmi .ds > div{overflow:hidden}
.rmi .ds p{font-size:13.5px;line-height:1.55;color:var(--ink2);padding-top:8px;margin-top:8px;border-top:1px solid var(--line2)}
.rmi .ds .status{margin-top:8px;font-size:12.5px}
.rmi.open .tb{background:#fff;border-color:var(--ink);box-shadow:0 18px 36px -18px color-mix(in srgb,var(--ink) 35%,transparent);z-index:5}
.rmi.open .ds{grid-template-rows:1fr}
.rmi.open .nd{transform:translate(-50%,-50%) scale(1.15)}
.rmap.has-open .rmi:not(.open) .tb{opacity:.7}
.rmi.dim{opacity:.25;pointer-events:none}
.rmap-legend{display:flex;gap:20px;align-items:center;border-top:1px solid var(--line2);padding-top:16px;margin-top:6px}
.rmap-legend .status.done i{background:var(--neon);border-color:var(--neon)}
.rmap-legend .status.prog i{background:#fff;border-color:var(--neon);box-shadow:0 0 0 2px color-mix(in srgb,var(--neon) 40%,transparent)}
.rmap-legend .status.plan i{border-style:dashed;border-color:#9EA5AB}
.rmap-hint{margin-left:auto;color:var(--muted);font-size:13.5px}
@media (max-width:900px){
  .rmap{height:auto}
  .rmap .ax,.rmap .ax-today{display:none}
  .rmi{position:static;width:auto;margin-bottom:10px}
  .rmi .nd,.rmi .st{display:none}
  .rmi .tb{position:static;width:auto}
}


/* team card photo watermark + division label */
.tm.des{--hue:#AFC0C9}
.tm .ph .wm{right:-16px;bottom:auto;top:-12px;width:140px;opacity:.42;mix-blend-mode:screen}
.tm .ph .wm{color:var(--acc)}
.tm:hover .ph .wm{opacity:.9;transform:translate(-4px,4px)}
.tm .dv{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink2)}
.tm .dv::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 30%,transparent)}


/* expertise map */
.xwrap{display:flex;flex-direction:column;align-items:center}
.xm{width:100%;max-width:500px;height:auto;display:block;overflow:visible}
.xm-dial{transform-origin:300px 300px;animation:spin 160s linear infinite}
.xm .tk{stroke:#BFC3BB}
.xm .tk.m{stroke:#7F878E;stroke-width:1.3}
.xm .xr{fill:none;stroke:#D6D8D0;stroke-dasharray:2 4}
.xm .xr.base{stroke:#9EA5AB;stroke-dasharray:none}
.xm .xr.last{stroke:#C3C7C0;stroke-dasharray:none}
.xm .xs{stroke:#C3C7C0;stroke-width:1;transition:.3s}
.xm .xs.on{stroke:var(--ink)}
.xm .xa{cursor:pointer;outline:none}
.xm .xw{opacity:.42;stroke:var(--ink);stroke-width:.8;stroke-opacity:.35;transition:opacity .3s}
.xm .xa.on .xw{opacity:.95;stroke-opacity:1}
.xm .xp{fill:#FCFCFA;stroke:var(--ink);stroke-width:1}
.xm .xl{font:600 16.5px var(--f);fill:var(--ink2);transition:.3s}
.xm .xa.on .xl{fill:var(--ink);font-weight:900}
.xm .xcore{fill:#FCFCFA;stroke:var(--ink);stroke-width:1.2}
.xm .xglow{fill:var(--neon);opacity:.2}
.xm .xc1{font:900 36px var(--f);fill:var(--ink);letter-spacing:-.04em}
.xm .xc2{font:600 14px var(--f);fill:var(--ink2)}
.xcap{width:100%;max-width:520px;margin-top:4px;text-align:center;min-height:120px;transition:opacity .2s,transform .2s}
.xcap.swap{opacity:0;transform:translateY(4px)}
.xk{font-weight:900;font-size:21px;letter-spacing:-.02em}
.xcount{color:var(--muted);font-size:14px}
.xfaces{display:flex;justify-content:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.xfaces span{display:flex;flex-direction:column;align-items:center;gap:4px}
.xfaces img{width:42px;height:42px;border-radius:50%;object-fit:cover;filter:grayscale(1);border:2px solid var(--paper);box-shadow:0 0 0 1.5px var(--acc)}
.xfaces em{font-style:normal;font-size:12px;color:var(--ink2)}
.xnote{font-size:14px;color:var(--muted);margin-top:14px;max-width:440px}
.team-hero-grid .phero{grid-template-columns:.8fr 1.2fr}
.ncard{min-height:250px;padding-bottom:110px}
.team-hero-grid .phero h1{font-size:60px}


/* ================= Team cards v3: tall portrait, flip on hover ================= */
.tpgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 22px}
.tp{outline:none}
.tp.hide{display:none}
.tp .flip{position:relative;aspect-ratio:560/780;perspective:1400px}
.tp .fr,.tp .bk{position:absolute;inset:0;border-radius:18px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.tp .fr{background:#0b0b0b}
.tp .fr .p{width:100%;height:100%;object-fit:cover;display:block}
.tp .fr .mk{position:absolute;right:16px;bottom:16px;width:15%;opacity:.38;transition:opacity .3s}
.tp .bk{transform:rotateY(180deg);background:var(--ink);color:#fff;padding:22px;display:flex;flex-direction:column;gap:12px}
.tp .bk .mkb{position:absolute;right:-30px;bottom:-24px;width:70%;aspect-ratio:1;opacity:.07;background:#fff;-webkit-mask:var(--mk) center/contain no-repeat;mask:var(--mk) center/contain no-repeat}
.tp .bk .dv{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#C9D2D9}
.tp .bk .dv::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc)}
.tp .bk p{font-size:15px;line-height:1.6;color:#E3E8EB;position:relative}
.tp .bk .tags{display:flex;gap:6px;flex-wrap:wrap;position:relative}
.tp .bk .tags span{font-size:12px;border:1px solid #36515F;color:#C9D2D9;padding:3px 9px;border-radius:999px}
.tp .bk .bf{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid #1D3142;padding-top:12px;font-size:13px;color:#AFC0C9;position:relative}
.tp .bk .bf b{display:block;font-weight:900;font-size:28px;color:var(--acc);letter-spacing:-.03em;line-height:1}
.tp .bk .bf a{font-weight:600;color:#fff}
.tp:hover .fr,.tp:focus-within .fr,.tp.flipped .fr{transform:rotateY(-180deg)}
.tp:hover .bk,.tp:focus-within .bk,.tp.flipped .bk{transform:rotateY(0)}
.tp h2{font-weight:600;font-size:20px;letter-spacing:-.015em;margin-top:16px}
.tp .role{font-size:15px;color:var(--muted);margin-top:4px;line-height:1.45}
.tp.des{--hue:#AFC0C9}
@media (max-width:900px){
  .tpgrid{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  .tp .fr,.tp .bk{transition:none}
}


/* closing cards: grey until hover */
.ncard .wm{background:#C9CCC4;transition:transform .5s ease,opacity .3s,background .3s}
.ncard h3 .dot{background:#C9CCC4;box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 18%,transparent);transition:background .3s}
.ncard:hover .dot{background:var(--acc)}
.ncard.cai:hover .wm{background:color-mix(in srgb,var(--cyan) 55%,#C9CCC4)}
.ncard.gc:hover .wm{background:color-mix(in srgb,var(--green) 45%,#C9CCC4)}
.ncard:not(.cai):not(.gc):hover .wm{background:color-mix(in srgb,var(--neon) 55%,#C9CCC4)}
.ncard .wm{width:180px;height:180px;right:-6px;bottom:-34px;opacity:.42}
[data-wm].ncard:hover .wm{transform:translate(-6px,-6px);opacity:.7}


/* ---------- ClosedAI page ---------- */
.pg-cai .nav .btn-acc,.pg-cai .cta .btn-acc{background:var(--cyan)}
.cai-hero{grid-template-columns:.9fr 1.1fr}
.stackwrap{display:grid;grid-template-columns:1.35fr .65fr;align-items:center;gap:18px}
#stack svg.iso{max-height:560px}
#stack .iso .pipe{stroke:#B9BEC1;stroke-dasharray:2 3}
.stack-l{list-style:none;display:flex;flex-direction:column;gap:6px}
.stack-l li{border-left:2px solid var(--line);padding:9px 0 9px 14px;cursor:default;transition:border-color .3s}
.stack-l li b{display:block;font-weight:600;font-size:16px;color:var(--ink2);transition:color .3s}
.stack-l li span{display:block;font-size:13.5px;color:var(--muted);line-height:1.45;max-height:0;overflow:hidden;opacity:0;transition:max-height .4s,opacity .3s}
.stack-l li.on{border-color:var(--cyan)}
.stack-l li.on b{color:var(--ink)}
.stack-l li.on span{max-height:60px;opacity:1;margin-top:3px}
.stackwrap.has-active .iso .grp{opacity:.45}
.stackwrap.has-active .iso .grp.on{opacity:1}


/* no black box band */
.nobox{position:relative;overflow:hidden;padding:96px 0}
.nobox .wrap{position:relative}
.nb-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:44px}
.nb-head .eyebrow{color:#AFC0C9}
.nb-head h2{font-weight:900;font-size:56px;letter-spacing:-.035em;line-height:1.02;margin-top:12px}
.nb-head p{color:#C9D2D9;font-size:17.5px;line-height:1.65;max-width:480px}
.prgrid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #1D3142}
.pr{display:flex;flex-direction:column;gap:14px;padding:24px 22px 28px 0;border-bottom:1px solid #1D3142;position:relative}
.pr:not(:nth-child(4n+1)){padding-left:22px;border-left:1px solid #1D3142}
.pr::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--cyan);transition:width .45s ease}
.pr:not(:nth-child(4n+1))::before{left:-1px}
.pr:hover::before{width:100%}
.pr .pn{font-weight:600;font-size:13.5px;color:#6F8593;transition:color .3s}
.pr:hover .pn{color:var(--cyan)}
.pr h3{font-weight:600;font-size:19px;letter-spacing:-.01em;color:#fff}
.pr p{font-size:15px;line-height:1.6;color:#AFC0C9;margin-top:6px}


/* proof of concept */
.poc{display:grid;grid-template-columns:.82fr 1.18fr;gap:56px;align-items:start}
.poc-l h2{font-weight:900;font-size:48px;line-height:1.08;letter-spacing:-.03em;margin:12px 0 18px}
.poc-l p{font-size:17px;line-height:1.65;color:var(--ink2);margin-bottom:12px;max-width:470px}
.poc-p{display:flex;gap:28px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.poc-p div{display:flex;flex-direction:column;gap:10px}
.poc-p img{height:26px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.85}
.stages{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding-top:6px}
.stages::before{content:"";position:absolute;left:7px;right:7px;top:13px;border-top:1.5px dashed #B9BDB5}
.stages::after{content:"";position:absolute;left:7px;top:12px;width:12.5%;border-top:3px solid var(--cyan)}
.stg{position:relative;padding-top:30px}
.stg i{position:absolute;top:0;left:0;width:15px;height:15px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink)}
.stg.now i{background:var(--cyan);box-shadow:0 0 0 0 color-mix(in srgb,var(--cyan) 60%,transparent);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
.stg .sw{font-weight:600;font-size:13px;color:var(--muted)}
.stg.now .sw{color:var(--ink)}
.stg h3{font-weight:600;font-size:17px;margin:6px 0 6px;letter-spacing:-.01em}
.stg p{font-size:14px;line-height:1.55;color:var(--ink2)}
.val{margin-top:34px;border:1px solid var(--line);border-radius:14px;background:var(--paper2);padding:22px 24px}
.val h3{font-weight:600;font-size:16px;margin-bottom:14px}
.vchips{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.vchips span{font-size:14.5px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper);transition:.25s}
.vchips span:hover{border-color:var(--ink);background:color-mix(in srgb,var(--cyan) 14%,var(--paper))}


/* software */
.prod{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--paper2);padding:28px;min-height:230px;display:flex;flex-direction:column;gap:12px;transition:.3s}
.prod:hover{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 30%,transparent)}
.prod > *:not(.wm){position:relative;z-index:1}
.prod .ph{display:flex;justify-content:space-between;align-items:center}
.prod h3{font-weight:900;font-size:30px;letter-spacing:-.03em}
.prod p{font-size:17px;line-height:1.6;color:var(--ink2);max-width:380px}
.prod dl{margin-top:auto;font-size:14.5px}
.prod dt{color:var(--muted);font-size:13px}
.prod dd{color:var(--ink);font-weight:600;margin-top:2px}
.prod .wm{width:150px;height:150px;right:8px;bottom:-18px;opacity:.45}
.prod dl{max-width:calc(100% - 120px)}
.pg-cai .cta .b1{background-image:linear-gradient(90deg,transparent,var(--cyan),transparent)}
.areas{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.ar{padding:22px 22px 26px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px;position:relative}
.ar:not(:nth-child(3n+1)){padding-left:22px;border-left:1px solid var(--line)}
.ar .an{font-weight:600;font-size:13.5px;color:var(--muted)}
.ar h3{font-weight:600;font-size:19px;letter-spacing:-.01em}
.ar p{font-size:15px;line-height:1.6;color:var(--ink2)}
.ar::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--cyan);transition:width .45s}
.ar:not(:nth-child(3n+1))::before{left:-1px}
.ar:hover::before{width:100%}
.ar:hover .an{color:var(--ink)}


/* briefing form */
.bform{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;border:1px solid var(--line);border-radius:18px;background:var(--paper2);padding:44px;scroll-margin-top:24px}
.bf-l h2{font-weight:900;font-size:42px;line-height:1.08;letter-spacing:-.03em;margin:12px 0 16px}
.bf-l p{font-size:17px;line-height:1.65;color:var(--ink2)}
.bf-pts{list-style:none;margin-top:22px;display:flex;flex-direction:column;gap:8px}
.bf-pts li{font-size:15px;color:var(--ink2);display:flex;gap:10px;align-items:center}
.bf-pts li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 35%,transparent)}
.bf-f{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;align-content:start}
.bf-f .w{grid-column:1/-1}
.bf-f label{display:flex;flex-direction:column;gap:6px}
.bf-f label > span{font-size:13.5px;font-weight:600;color:var(--ink2)}
.bf-f input,.bf-f select,.bf-f textarea{font:16px var(--f);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px 14px;outline:none;transition:border-color .2s,box-shadow .2s;width:100%}
.bf-f textarea{resize:vertical}
.bf-f input:focus,.bf-f select:focus,.bf-f textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 30%,transparent)}
.bf-f .ck{flex-direction:row;align-items:flex-start;gap:10px}
.bf-f .ck input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:var(--ink)}
.bf-f .ck span{font-weight:400;font-size:14px;line-height:1.5}
.bf-f .ck a{text-decoration:underline}
.bf-go .btn{font-size:15px;padding:12px 20px}
.bf-ok{border-left:3px solid var(--acc);padding:12px 16px;background:var(--paper);border-radius:0 10px 10px 0;font-size:15px}
.bf-f label.sent{opacity:.55;pointer-events:none}
@media (max-width:900px){
  .stackwrap,.poc,.bform,.nb-head{grid-template-columns:1fr}
  .prgrid{grid-template-columns:1fr 1fr}
  .areas{grid-template-columns:1fr}
  .stages{grid-template-columns:1fr 1fr}
  .bform{padding:26px}
}


/* ---------- ClosedAI Software page ---------- */
.sw-hero{grid-template-columns:.9fr 1.1fr}
.afwrap{display:flex;flex-direction:column;align-items:center}
#agentflow{width:100%}
svg.af{width:100%;height:auto;display:block;overflow:visible}
.af-bnd{fill:color-mix(in srgb,var(--cyan) 3%,var(--paper2));stroke:#9AA3A8;stroke-width:1;stroke-dasharray:5 5;animation:dash 2.4s linear infinite}
.af-bl{font:600 12.5px var(--f);fill:var(--muted)}
.af-l{fill:none;stroke:#C3C8C2;stroke-width:1.3;transition:stroke .3s,stroke-width .3s}
.af-l.on{stroke:var(--ink);stroke-width:1.6}
.af-p{fill:var(--paper);stroke:#AEB4B8;stroke-width:1;transition:.3s}
.af-n.on .af-p{fill:color-mix(in srgb,var(--cyan) 22%,#fff);stroke:var(--ink)}
.af-t{font:600 13.5px var(--f);fill:var(--ink2)}
.af-n.on .af-t{fill:var(--ink)}
.af-core{fill:#FCFCFA;stroke:var(--ink);stroke-width:1.2}
.af-ring2{fill:none;stroke:color-mix(in srgb,var(--cyan) 55%,#fff);stroke-width:1;stroke-dasharray:2 4}
.af-ct{font:600 13px var(--f);fill:var(--ink)}
.af-orb{fill:var(--cyan);stroke:var(--ink);stroke-width:1}
.af-pq{fill:#9AA3A8;opacity:.6}
.af-pa{fill:var(--cyan);stroke:var(--ink);stroke-width:1}
.af-cap{margin-top:8px;max-width:460px;text-align:center;min-height:84px;transition:opacity .2s,transform .2s}
.af-cap.swap{opacity:0;transform:translateY(4px)}
.af-k{font-weight:900;font-size:22px;letter-spacing:-.02em}
.af-x{color:var(--ink2);font-size:16px;line-height:1.55;margin-top:2px}
.steps{list-style:none;position:relative;display:flex;flex-direction:column}
.steps::before{content:"";position:absolute;left:19px;top:20px;bottom:20px;border-left:1.5px dashed #B9BDB5}
.steps li{display:grid;grid-template-columns:40px 1fr;gap:20px;padding:16px 0;position:relative}
.steps .sn{width:40px;height:40px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink);display:grid;place-items:center;font-weight:600;font-size:13.5px;position:relative;z-index:1;transition:.3s}
.steps li:hover .sn{background:var(--cyan)}
.steps h3{font-weight:600;font-size:20px;letter-spacing:-.01em;margin-top:8px}
.steps p{font-size:15.5px;line-height:1.6;color:var(--ink2);margin-top:6px;max-width:520px}
.found{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center;border:1px solid var(--line);border-radius:18px;background:var(--paper2);padding:36px 44px}
.fd-art #stackmini svg{max-height:300px;margin:0 auto}
#stackmini.has-active .iso .grp{opacity:.35}
#stackmini.has-active .iso .grp.on{opacity:1}
#stackmini .iso .pipe{stroke:#B9BEC1;stroke-dasharray:2 3}
.fd-t h2{font-weight:900;font-size:38px;line-height:1.1;letter-spacing:-.03em;margin:12px 0 14px}
.fd-t p{font-size:17px;line-height:1.65;color:var(--ink2);margin-bottom:22px;max-width:540px}


/* software teaser on ClosedAI page */
.swt{position:relative;overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;border:1px solid var(--line);border-radius:18px;background:var(--paper2);padding:44px}
.swt > *:not(.wm){position:relative;z-index:1}
.swt h2{font-weight:900;font-size:44px;line-height:1.08;letter-spacing:-.03em;margin:12px 0 16px}
.swt p{font-size:17px;line-height:1.65;color:var(--ink2);margin-bottom:24px;max-width:500px}
.swt-l{list-style:none;border-top:1px solid var(--line)}
.swt-l li{display:flex;flex-direction:column;gap:3px;padding:16px 0;border-bottom:1px solid var(--line)}
.swt-l b{font-weight:600;font-size:19px}
.swt-l span{font-size:15px;color:var(--ink2)}
.swt .wm{width:220px;height:220px;right:-20px;bottom:-60px;opacity:.3}
@media (max-width:900px){
  .found,.swt{grid-template-columns:1fr}
}


/* digital twin section */
.twin{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:center}
.tw-l h2{font-weight:900;font-size:46px;line-height:1.08;letter-spacing:-.03em;margin:12px 0 18px}
.tw-l p{font-size:17px;line-height:1.65;color:var(--ink2);margin-bottom:12px;max-width:500px}
.tw-st{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:18px 0 4px}
.tw-trl{font-size:14px;color:var(--muted)}
.tw-l .ctas{display:flex;align-items:center;gap:16px;margin-top:20px}
.tw-art{border:1px solid var(--line);border-radius:16px;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--ink) 8%,transparent) 1px,transparent 0) 0 0/18px 18px,var(--paper2);padding:26px 20px 18px}
#twinart svg.iso{max-height:440px}
#twinart .grp-tw .f-t,#twinart .grp-tw .f-l,#twinart .grp-tw .f-r,#twinart .grp-tw .panel{fill:color-mix(in srgb,var(--cyan) 7%,transparent);stroke:#1C8FA3;stroke-dasharray:3 2.5;animation:dash 2s linear infinite}
#twinart .grp-tw .det{stroke:color-mix(in srgb,#1C8FA3 70%,#fff);stroke-dasharray:2 2}
#twinart .pipe{stroke:#9AA3A8;stroke-dasharray:3 3}
.tw-lb{display:grid;grid-template-columns:1fr auto 1fr;margin-top:10px;font-size:13.5px;font-weight:600;color:var(--ink2)}
.tw-lb span:nth-child(2){color:var(--muted);font-weight:400}
.tw-lb span:last-child{text-align:right;color:#147E90}
@media (max-width:900px){
  .twin{grid-template-columns:1fr}
}
.tlink{font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
[data-wm=nb] .wm,[data-wm=cv] .wm{background:color-mix(in srgb,var(--cyan) 55%,#C9CCC4)}
.prod .go{font-weight:600;font-size:14.5px;display:inline-flex;gap:8px;align-items:center;margin-top:6px;align-self:flex-start}
.prod .go:hover{text-decoration:underline;text-underline-offset:3px}
.steps.mini{margin-top:26px}
.steps.mini::before{left:15px;top:16px;bottom:16px}
.steps.mini li{grid-template-columns:32px 1fr;gap:14px;padding:8px 0}
.steps.mini .sn{width:32px;height:32px;font-size:12px}
.steps.mini h4{font-size:16px;margin-top:5px}
.steps.mini p{font-size:14.5px;margin-top:2px}


/* product cards with drawings */
.pcards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pcard{background:var(--paper2);border:1px solid var(--line);border-radius:16px;padding:28px;display:flex;flex-direction:column;transition:border-color .25s,box-shadow .25s}
.pcard:hover{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 30%,transparent)}
.pcard .top,.agentcard .top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pcard h3,.agentcard h3{font-weight:900;font-size:30px;letter-spacing:-.03em}
.pcard > p{font-size:17px;line-height:1.6;color:var(--ink2);margin-top:10px}
.pcard .mini{height:300px;margin:20px 0 20px;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--ink) 8%,transparent) 1px,transparent 0) 0 0/18px 18px;border-radius:12px;border:1px solid var(--line2);padding:4px}
.pcard .mini svg{width:100%;height:100%}
.pcard .iso .grp .f-t{transition:fill .35s}
.pcard:hover .iso .grp-a .f-t,.pcard:hover .iso .grp-b .f-t{fill:color-mix(in srgb,var(--cyan) 18%,#fff)}
.pcard:hover .iso .grp-c .f-t{fill:color-mix(in srgb,var(--cyan) 30%,#fff)}
.pcard .foot{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:auto}
.pcard .bf-k{display:block;font-size:13px;color:var(--muted);margin-bottom:3px}
.pcard .foot b{font-weight:600;font-size:15px;line-height:1.45;display:block;max-width:300px}
.pcard .go,.agentcard .go{font-weight:600;font-size:14.5px;display:inline-flex;gap:8px;align-items:center;white-space:nowrap}
.pcard .go:hover,.agentcard .go:hover{text-decoration:underline;text-underline-offset:3px}
.agentcard{position:relative;overflow:hidden;margin-top:20px;background:var(--ink);color:#fff;border-radius:16px;padding:30px 32px;display:grid;grid-template-columns:1.2fr 1fr auto;gap:40px;align-items:center}
.agentcard > *:not(.wm){position:relative;z-index:1}
.agentcard .tagd{color:#AFC0C9}
.agentcard p{color:#C9D2D9;font-size:16.5px;line-height:1.6;margin:10px 0 16px;max-width:520px}
.agentcard .go{color:#fff}
.agentcard .go .arw{background:var(--cyan);color:var(--ink)}
.agentcard .cs{list-style:none;display:flex;flex-direction:column;gap:9px}
.agentcard .cs li{font-size:15px;color:#E3E8EB;display:flex;gap:10px;align-items:center}
.agentcard .cs li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cyan)}
.agentcard .status{color:#C9D2D9;align-self:start}
.agentcard .status i{border-color:#fff}
.agentcard .wm{opacity:.1;width:200px;height:200px;right:-10px;bottom:-50px}
@media (max-width:900px){
  .pcards,.agentcard{grid-template-columns:1fr}
}


/* nav sub-item, footer sub-item, CTA note */
.ddm a.sub{margin-left:16px;padding-left:14px;border-left:1.5px solid var(--line);border-radius:0 10px 10px 0}
.ddm a.sub b{font-size:14.5px}
.f a.fsub{padding-left:12px;position:relative}
.f a.fsub::before{content:"";position:absolute;left:0;top:50%;width:6px;border-top:1px solid #4A6070}
.cta .r .cta-note{font-size:14px;color:#8FA2AE;line-height:1.5;margin-bottom:4px}


/* home logo bar */
.logos-s{padding-top:40px;padding-bottom:40px}
.logobar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0}
.lb-k{font-size:14px;font-weight:600;color:var(--muted)}
.lb-l{display:flex;align-items:center;justify-content:space-around;gap:40px;flex-wrap:wrap}
.lb-l img{height:28px;width:auto;max-width:150px;object-fit:contain;filter:grayscale(1);opacity:.6;transition:.3s}
.lb-l img:hover{filter:none;opacity:1}
.lb-t{font-weight:900;font-size:20px;letter-spacing:-.02em;color:#8A9196;transition:.3s}
.lb-t:hover{color:var(--ink)}
.lb-go{font-weight:600;font-size:14.5px;display:inline-flex;gap:8px;align-items:center;white-space:nowrap}
@media (max-width:900px){
  .logobar{grid-template-columns:1fr;gap:18px}
}


/* ---------- Projects & Partners ---------- */
.pj-hero{grid-template-columns:.95fr 1.05fr}
svg.cst{width:100%;height:auto;display:block;max-height:540px;overflow:visible}
.cs-r1{fill:none;stroke:#C9CCC4;stroke-dasharray:3 5}
.cs-r2{fill:none;stroke:#D6D8D1}
.cs-l{stroke:#9AA3A8;stroke-width:1.2}
.cs-l2{stroke:#C3C8C2;stroke-width:1;stroke-dasharray:4 4}
.cs-p{stroke:var(--ink);stroke-width:1}
.cs-h{opacity:.28}
.cs-d{stroke:var(--ink);stroke-width:1.3}
.cs-t{font:600 15px var(--f);fill:var(--ink)}
.cs-s{font:400 13px var(--f);fill:var(--muted)}
.cs-pb{fill:#fff;stroke:#AEB4B8}
.cs-pn{font:600 13.5px var(--f);fill:var(--ink2)}
.cs-c{fill:#FCFCFA;stroke:var(--ink);stroke-width:1.2}
.pj-w{font-size:14px;color:var(--muted)}
.ptns{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ptn{display:grid;grid-template-columns:200px 1fr;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--paper2);transition:border-color .25s,box-shadow .25s}
.ptn:hover{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 30%,transparent)}
.ptn.grp{--hue:var(--neon)}
.pt-lo{display:grid;place-items:center;background:#fff;border-right:1px solid var(--line);padding:24px}
.pt-lo img{max-width:140px;max-height:44px;object-fit:contain;filter:grayscale(1);opacity:.75;transition:.3s}
.ptn:hover .pt-lo img{filter:none;opacity:1}
.pt-lo .txt{font-weight:900;font-size:22px;letter-spacing:-.02em;color:#8A9196;transition:.3s}
.ptn:hover .pt-lo .txt{color:var(--ink)}
.pt-b{padding:24px 26px;display:flex;flex-direction:column;gap:14px}
.pt-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.pt-h h3{font-weight:900;font-size:22px;letter-spacing:-.02em}
.pt-r{font-size:14px;color:var(--ink2)}
.ptn dl{display:flex;flex-direction:column;gap:4px}
.ptn dt{font-size:12.5px;color:var(--muted);margin-top:6px}
.ptn dd{font-size:15px;line-height:1.55;color:var(--ink)}
@media (max-width:900px){
  .ptns,.ptn{grid-template-columns:1fr}
  .pt-lo{border-right:0;border-bottom:1px solid var(--line)}
}


/* ---------- sticky nav that tightens into a centred bar on scroll ---------- */
.topbar{position:sticky;top:0;z-index:60;transition:padding .4s ease}
.topbar .nav{max-width:1100px;margin:0 auto;border:1px solid transparent;transition:max-width .5s cubic-bezier(.2,.7,.2,1),height .4s,padding .4s,background .3s,box-shadow .3s,border-color .3s,border-radius .4s,gap .4s}
.topbar.mini{padding-top:10px}
.topbar.mini .nav{max-width:930px;height:54px;gap:20px;padding:0 7px 0 22px;background:rgba(247,247,243,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-color:var(--line);border-radius:999px;box-shadow:0 14px 34px -20px color-mix(in srgb,var(--ink) 45%,transparent)}
.topbar.mini .nav .btn-acc{padding:8px 14px}
.topbar.mini .nav .lg{height:18px}
.topbar:not(.mini){background:var(--paper)}
@media (max-width:900px){
  .topbar.mini .nav{max-width:100%}
}


/* ClosedAI engineering */
.engs{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.eg-l h2{font-weight:900;font-size:46px;line-height:1.08;letter-spacing:-.03em;margin:12px 0 18px}
.eg-l p{font-size:17px;line-height:1.65;color:var(--ink2);margin-bottom:12px;max-width:480px}
.eg-l .btn{margin-top:14px}
.eg-art{border:1px solid var(--line);border-radius:16px;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--ink) 8%,transparent) 1px,transparent 0) 0 0/18px 18px,var(--paper2);padding:18px}
#engcell svg.iso{max-height:300px}
.eg-art:hover .iso .grp .f-t{fill:color-mix(in srgb,var(--cyan) 16%,#fff)}
.eg-art:hover .iso .arm{stroke:var(--ink)}
.eg-art:hover .iso .joint{fill:var(--cyan);stroke:var(--ink)}
.eg-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:22px}
.eg-list div{padding:16px 18px 16px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.eg-list div:nth-child(2n){padding-left:18px;border-left:1px solid var(--line)}
.eg-list b{font-weight:600;font-size:16.5px}
.eg-list span{font-size:14.5px;line-height:1.5;color:var(--ink2)}
@media (max-width:900px){
  .engs,.eg-list{grid-template-columns:1fr}
  .eg-list div:nth-child(2n){padding-left:0;border-left:0}
}


/* ---------- GreenCore page ---------- */
.pg-gc .nav .btn-acc,.pg-gc .cta .btn-acc{background:var(--green)}
.pg-gc .cta .b1{background-image:linear-gradient(90deg,transparent,var(--green),transparent)}
.gc-hero{grid-template-columns:.9fr 1.1fr}
svg.day{width:100%;height:auto;display:block}
.d-g{stroke:#E1E2DC}
.d-z{stroke:#9AA3A8;stroke-dasharray:4 4}
.d-t{font:400 12px var(--f);fill:var(--muted)}
.d-win{fill:color-mix(in srgb,var(--green) 9%,transparent)}
.d-bar{fill:var(--green);stroke:var(--ink);stroke-width:1}
.d-sunf{fill:color-mix(in srgb,var(--green) 16%,transparent)}
.d-sun{fill:none;stroke:#1E8A1B;stroke-width:2}
.d-price{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-dasharray:6 4}
.d-cur{stroke:var(--ink);stroke-width:1;opacity:.35}
.d-c1{fill:var(--green);stroke:var(--ink);stroke-width:1.2}
.d-c2{fill:#fff;stroke:var(--ink);stroke-width:1.4}
.d-h2 rect{fill:#fff;stroke:#AEB4B8;transition:.25s}
.d-h2 text{font:600 13px var(--f);fill:var(--muted)}
.d-h2.on rect{fill:var(--green);stroke:var(--ink)}
.d-h2.on text{fill:var(--ink)}


/* partnership */
.bring{display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px;border-top:1px solid var(--line)}
.bring > div{padding:22px 22px 6px 0}
.bring > div + div{padding-left:22px;border-left:1px solid var(--line)}
.bring h4{font-weight:600;font-size:18px;margin-bottom:8px}
.bring p{font-size:15px;line-height:1.6;color:var(--ink2)}


/* phases */
.ph{background:none;border:0;text-align:left;cursor:pointer;font:inherit;color:inherit;padding:0 14px 18px 0;position:relative;display:flex;flex-direction:column;gap:10px}
.ph .pn{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--ink);background:var(--paper);display:grid;place-items:center;font-weight:600;font-size:13.5px;position:relative;z-index:1;transition:.3s}
.ph b{font-weight:600;font-size:17px;color:var(--ink2);transition:.3s}
.ph.past .pn{background:color-mix(in srgb,var(--green) 40%,var(--paper))}
.ph.on .pn{background:var(--green);box-shadow:0 0 0 6px color-mix(in srgb,var(--green) 30%,transparent)}
.ph.on b{color:var(--ink)}
.pd{position:absolute;inset:0;padding:26px 28px;display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:center;opacity:0;transform:translateY(6px);transition:.35s;pointer-events:none}
.pd.on{opacity:1;transform:none;pointer-events:auto}
.pd p{font-size:17px;line-height:1.65;color:var(--ink2)}


/* ClosedAI link band */
.dtl{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:40px;border:1px solid var(--line);border-radius:18px;background:var(--paper2);padding:34px 40px}
.dtl > *:not(.wm){position:relative;z-index:1}
.dtl h3{font-weight:900;font-size:28px;letter-spacing:-.025em;margin:10px 0 10px}
.dtl p{font-size:16px;line-height:1.6;color:var(--ink2);max-width:620px}
.cai-e::before{background:var(--cyan)}
.dtl .wm{width:180px;height:180px;right:200px;bottom:-60px;opacity:.3}


/* EU policy */
.pol{padding:22px 18px 22px 0;display:flex;flex-direction:column;gap:6px;position:relative}
.pol + .pol{padding-left:18px;border-left:1px solid var(--line)}
.pol::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--green);transition:width .45s}
.pol + .pol::before{left:-1px}
.pol:hover::before{width:100%}
.ps{font-size:13.5px;color:var(--muted)}
.pol p{font-size:14.5px;line-height:1.6;color:var(--ink2);margin-top:8px}
@media (max-width:900px){
  .bring,.pd{grid-template-columns:1fr}
}
.dtl .wm{background:color-mix(in srgb,var(--cyan) 55%,#C9CCC4)!important;right:-30px;bottom:-70px;width:190px;height:190px}
.dtl .btn{position:relative;z-index:2;background:var(--paper2)}


/* GreenCore v2 */
.cyc{display:flex;flex-direction:column;align-items:center}
#gccycle{width:100%;max-width:540px}
svg.gcy{width:100%;height:auto;display:block;overflow:visible}
.gcy-o{fill:none;stroke:#D6D8D1}
.gcy-tk{stroke:#C9CCC4;stroke-width:1}
.gcy-a{fill:none;stroke:#B9BDB5;stroke-width:1.4;stroke-dasharray:4 5;transition:stroke .3s}
.gcy-a.on{stroke:var(--ink);stroke-dasharray:none;stroke-width:1.6}
.gcy-p{fill:var(--green);stroke:var(--ink);stroke-width:1}
.gcy-s{stroke:#C9CCC4;stroke-dasharray:2 4}
.gcy-c{fill:#FCFCFA;stroke:var(--ink);stroke-width:1.2}
.gcy-h{fill:var(--green);opacity:0;transition:opacity .3s}
.gcy-n.on .gcy-h{opacity:.25}
.gcy-d{fill:#FCFCFA;stroke:var(--ink);stroke-width:1.3;transition:fill .3s}
.gcy-n.on .gcy-d{fill:var(--green)}
.gcy-i{fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round}
.gcy-if{fill:var(--ink)}
.gcy-l{font:600 16px var(--f);fill:var(--ink2)}
.gcy-n.on .gcy-l{fill:var(--ink)}
.gcy-n{cursor:pointer;outline:none}
.cy-cap{text-align:center;max-width:420px;min-height:80px;margin-top:4px;transition:opacity .2s,transform .2s}
.cy-cap.swap{opacity:0;transform:translateY(4px)}
.cy-k{font-weight:900;font-size:22px;letter-spacing:-.02em}
.cy-x{font-size:16px;line-height:1.55;color:var(--ink2);margin-top:2px}


/* full-width video */
.vf-f{position:relative;width:100%;aspect-ratio:21/9;max-height:78vh;background:var(--ink);overflow:hidden}
.vf-f video{width:100%;height:100%;object-fit:cover;display:block}
.vf-tag{position:absolute;left:max(40px,calc((100vw - 1100px)/2));bottom:24px;display:inline-flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--ink) 72%,transparent);color:#fff;font-size:13px;font-weight:600;padding:7px 13px;border-radius:999px;backdrop-filter:blur(6px)}
.vf-tag i{width:7px;height:7px;border-radius:50%;border:1.4px solid #fff}
.vf-cap{font-size:14px;color:var(--muted);margin-top:14px}


/* European vision band */
.euv{position:relative;overflow:hidden;padding:110px 0}
.euv .wrap{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.euv-h .eyebrow{color:#AFC0C9}
.euv-h h2{font-weight:900;font-size:64px;line-height:1.02;letter-spacing:-.04em;margin-top:16px}
.euv-lead{font-size:22px;line-height:1.5;color:#fff;margin-bottom:18px}
.euv-b p{font-size:17px;line-height:1.7;color:#AFC0C9}
.euv-o{display:grid;grid-template-columns:1fr 1fr;margin-top:34px;border-top:1px solid #1D3142}
.euv-o div{padding:20px 20px 0 0;display:flex;flex-direction:column;gap:8px}
.euv-o div + div{padding-left:20px;border-left:1px solid #1D3142}
.euv-o span{font-size:13px;font-weight:600;color:var(--green)}
.euv-o b{font-weight:600;font-size:18px;line-height:1.4;color:#fff}


/* policy accordion */
.paccord{display:flex;gap:12px;height:380px}
.pa{flex:1;min-width:0;position:relative;overflow:hidden;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);border-radius:18px;background:var(--paper2);padding:26px;display:flex;flex-direction:column;justify-content:space-between;transition:flex .55s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s,color .35s}
.pa.on{flex:3.2;background:var(--ink);border-color:var(--ink);color:#fff}
.pa-n{font-weight:600;font-size:13.5px;color:var(--muted)}
.pa.on .pa-n{color:var(--green)}
.pa-k{font-weight:900;font-size:34px;letter-spacing:-.035em;line-height:1;writing-mode:vertical-rl;transform:rotate(180deg);align-self:flex-start;transition:.3s}
.pa.on .pa-k{writing-mode:horizontal-tb;transform:none;font-size:56px}
.pa-b{display:flex;flex-direction:column;gap:10px;opacity:0;max-height:0;transition:opacity .3s}
.pa.on .pa-b{opacity:1;max-height:none;transition-delay:.25s}
.pa-s{font-size:14px;font-weight:600;color:var(--green)}
.pa-p{font-size:17px;line-height:1.6;color:#C9D2D9;max-width:520px}
.pa:not(.on):hover{border-color:var(--ink);background:color-mix(in srgb,var(--green) 10%,var(--paper2))}
@media (max-width:900px){
  .euv .wrap{grid-template-columns:1fr}
  .euv-h h2{font-size:44px}
  .paccord{flex-direction:column;height:auto}
  .pa-k{writing-mode:horizontal-tb;transform:none}
  .pa .pa-b{max-height:none;opacity:1}
}
.ddh{font-size:12px;font-weight:600;color:var(--muted);padding:10px 12px 4px}
.ddh:not(:first-child){border-top:1px solid var(--line2);margin-top:6px;padding-top:12px}


/* ---------- About: convictions ---------- */
.conv{display:grid;grid-template-columns:.75fr 1.6fr;gap:20px;min-height:420px}
.cv-t{position:relative;overflow:hidden;flex:1;display:flex;flex-direction:column;justify-content:space-between;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);border-radius:16px;background:var(--paper2);padding:20px 22px;transition:background .35s,border-color .35s}
.cv-t:hover{border-color:var(--ink)}
.cv-t.on{background:#fff;border-color:var(--ink)}
@keyframes cvfill{to{width:100%}}
.cv-p{position:absolute;inset:0;padding:44px;display:grid;grid-template-columns:220px 1fr;gap:44px;align-items:center;opacity:0;transform:translateY(10px);transition:opacity .45s,transform .45s;pointer-events:none}
.cv-p.on{opacity:1;transform:none;pointer-events:auto}
.cv-p h3{font-weight:900;font-size:36px;line-height:1.12;letter-spacing:-.03em;margin-bottom:18px}
.cv-p p{font-size:17px;line-height:1.7;color:#C9D2D9;max-width:560px}
.cvsvg{width:100%;height:auto;overflow:visible}
.cvsvg .ln line,.cvsvg .ln circle{stroke:#3B5263;stroke-width:1.2}
.cvsvg .nd{fill:var(--ink);stroke:#AFC0C9;stroke-width:1.4}
.cvsvg .hub{fill:var(--neon);stroke:#fff;stroke-width:1.4}
.cvsvg .pl{fill:var(--neon)}
.cvsvg .drw{fill:none;stroke:#fff;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600}
.cvsvg .chk{stroke:var(--neon);stroke-width:4}
.cv-p.on .drw{animation:drw 1.6s ease forwards}
.cv-p.on .chk{animation-delay:.9s}
@keyframes drw{to{stroke-dashoffset:0}}
.cvsvg .ey{fill:var(--neon);opacity:0}
.cv-p.on .ey{animation:fadein .4s 1.6s forwards}
@keyframes fadein{to{opacity:1}}
.cvsvg .ln2{fill:none;stroke:#3B5263;stroke-width:1.4;stroke-dasharray:3 5}
.cvsvg .ps circle,.cvsvg .ps path{fill:none;stroke:#AFC0C9;stroke-width:2.2;stroke-linecap:round}
.cvsvg .ps.hi circle,.cvsvg .ps.hi path{stroke:var(--neon)}
.cvsvg .ps circle{fill:var(--ink)}


/* ---------- About: founder ---------- */
.fnd{position:relative;overflow:hidden;padding:100px 0}
.fnd-in{position:relative;display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}
.fnd-ph{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/5;background:#000}
.fnd-ph img{width:100%;height:100%;object-fit:cover;display:block}
.fnd-mk{position:absolute;right:20px;bottom:20px;width:54px;height:54px;background:#fff;opacity:.45;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.fnd-t .eyebrow{color:#AFC0C9}
.fnd-q{width:54px;fill:var(--neon);margin:26px 0 18px;display:block}
.fnd-t blockquote{font-weight:900;font-size:40px;line-height:1.18;letter-spacing:-.03em;color:#fff}
.fnd-t p{font-size:18px;line-height:1.65;color:#AFC0C9;margin-top:22px;max-width:560px}
.fnd-who{margin-top:34px;padding-top:20px;border-top:1px solid #1D3142;display:flex;flex-direction:column;gap:2px}
.fnd-who b{font-weight:600;font-size:18px}
.fnd-who span{font-size:15px;color:#AFC0C9}
@media (max-width:900px){
  .conv,.fnd-in,.cv-p{grid-template-columns:1fr}
}
.eg-steps{list-style:none;display:flex;gap:0;margin:22px 0 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.eg-steps li{flex:1;padding:12px 10px 12px 0;font-weight:600;font-size:14.5px;display:flex;flex-direction:column;gap:4px}
.eg-steps li + li{padding-left:12px;border-left:1px solid var(--line)}
.eg-steps span{font-size:12.5px;color:var(--muted)}


/* ---------- Contact ---------- */
.ct-hero{grid-template-columns:1fr 1fr}
.ct-d{display:grid;grid-template-columns:1fr 1fr;margin-top:30px;border-top:1px solid var(--line)}
.ct-d > *{padding:16px 16px 16px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.ct-d > *:nth-child(2n){padding-left:16px;border-left:1px solid var(--line)}
.ct-d span{font-size:13px;color:var(--muted)}
.ct-d b{font-weight:600;font-size:17px;line-height:1.4}
.ct-d a:hover b{text-decoration:underline;text-underline-offset:3px}
.ctmapw{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--paper2)}
svg.ctmap{width:100%;height:auto;display:block;aspect-ratio:300/260}
.ctmap .cty{fill:var(--paper2);stroke:#B7BCB4;stroke-width:.6}
.ctmap .cty.li{fill:color-mix(in srgb,var(--neon) 55%,var(--paper2));stroke:var(--ink);stroke-width:.8}
.ct-c{font:600 7.5px var(--f);fill:#8A9196;letter-spacing:.02em}
.ct-ring{fill:none;stroke:var(--ink);stroke-width:.8}
.ct-pt{fill:var(--neon);stroke:var(--ink);stroke-width:1.2}
.ct-lb{font:900 10px var(--f);fill:var(--ink);paint-order:stroke;stroke:var(--paper2);stroke-width:3px}
.ct-lb2{font:600 7px var(--f);fill:var(--ink2);paint-order:stroke;stroke:var(--paper2);stroke-width:3px}
.anchor{display:block;position:relative;top:-90px;visibility:hidden}
.ctf{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;border:1px solid var(--line);border-radius:18px;background:var(--paper2);padding:44px}
.ct-tabs{display:inline-flex;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--paper);margin-bottom:28px}
.ct-tabs button{font:600 14.5px var(--f);border:0;background:none;color:var(--ink2);padding:9px 16px;border-radius:999px;cursor:pointer;transition:.25s}
.ct-tabs button.on{background:var(--ink);color:#fff}
.ct-copy{display:none}
.ct-copy.on{display:block;animation:fadein .35s}
.ct-copy h2{font-weight:900;font-size:40px;line-height:1.08;letter-spacing:-.03em;margin-bottom:14px}
.ct-copy p{font-size:17px;line-height:1.65;color:var(--ink2)}
@media (max-width:900px){
  .ct-hero,.ctf,.ct-d{grid-template-columns:1fr}
  .ct-d > *:nth-child(2n){padding-left:0;border-left:0}
  .ctf{padding:26px}
}


/* ---------- legal pages ---------- */
.lg-hero{padding:60px 0 20px;border-top:1px solid var(--line2)}
.lg-hero h1{font-weight:900;font-size:60px;letter-spacing:-.035em;line-height:1.04;margin:14px 0 16px}
.lg-hero .lead{font-size:18px;line-height:1.6;color:var(--ink2);max-width:640px}
.lg-meta{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:20px;font-size:14px;color:var(--muted)}
.lg-draft{background:color-mix(in srgb,var(--neon) 45%,transparent);color:var(--ink);padding:2px 10px;border-radius:6px}
.lgl{padding-top:30px}
.lg-grid{display:grid;grid-template-columns:260px 1fr;gap:60px;align-items:start}
.lg-toc{position:sticky;top:90px;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.lg-toc a{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink2);transition:color .2s}
.lg-toc a span{font-weight:600;font-size:12.5px;color:var(--muted);min-width:20px;padding-top:2px}
.lg-toc a:hover,.lg-toc a.on{color:var(--ink)}
.lg-toc a.on span{color:var(--ink)}
.lg-body{max-width:720px}
.lg-s{padding:0 0 34px;margin-bottom:34px;border-bottom:1px solid var(--line);scroll-margin-top:90px}
.lg-s h2{display:flex;gap:14px;align-items:baseline;font-weight:900;font-size:26px;letter-spacing:-.025em;margin-bottom:14px}
.lg-s h2 span{font-weight:600;font-size:14px;color:var(--muted)}
.lg-s p{font-size:16.5px;line-height:1.75;color:var(--ink2);margin-bottom:12px}
.lg-s p b{color:var(--ink);font-weight:600}
.lg-s a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
mark.tbd{background:color-mix(in srgb,var(--neon) 55%,transparent);color:var(--ink);padding:0 4px;border-radius:4px}
@media (max-width:900px){
  .lg-grid{grid-template-columns:1fr}
  .lg-toc{position:static}
  .lg-hero h1{font-size:44px}
}


/* nav: links centred between logo and actions */
.nav{display:grid!important;grid-template-columns:1fr auto 1fr}
.nav .nl{display:flex;align-items:center;gap:28px;justify-self:center}
.nav .nr{display:flex;align-items:center;gap:20px;justify-self:end}
.nav > a:first-child{justify-self:start}
.topbar.mini .nav .nl{gap:22px}
.sys-cap{min-height:100px}
.sys-x{max-width:380px;margin:0 auto}


/* About: value section v3 */
.vals2{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.v2{position:relative;padding:34px 30px 36px 0;display:flex;flex-direction:column}
.v2 + .v2{padding-left:30px;border-left:1px solid var(--line)}
.v2::before{content:"";position:absolute;left:0;top:-1px;height:3px;width:0;background:var(--neon);transition:width .5s ease}
.v2 + .v2::before{left:-1px}
.v2:hover::before{width:100%}
.v2-g{width:130px;height:130px;border-radius:50%;background:var(--paper2);border:1px solid var(--line);display:grid;place-items:center;margin-bottom:28px;transition:background .4s,border-color .4s}
.v2-g svg{width:96px}
.v2:hover .v2-g{background:var(--ink);border-color:var(--ink)}
.v2-n{font-weight:600;font-size:13.5px;color:var(--muted)}
.v2-w{font-weight:900;font-size:44px;letter-spacing:-.04em;line-height:1;margin:8px 0 16px}
.v2 h3{font-weight:600;font-size:20px;line-height:1.35;letter-spacing:-.01em;margin-bottom:12px;color:var(--ink)}
.v2 p{font-size:15.5px;line-height:1.7;color:var(--ink2)}


/* glyphs: light by default, dark-mode on hover */
.v2 .cvsvg .ln line,.v2 .cvsvg .ln circle,.v2 .cvsvg .ln2{stroke:#B9BDB5}
.v2 .cvsvg .nd{fill:var(--paper2);stroke:var(--ink)}
.v2 .cvsvg .hub{fill:var(--neon);stroke:var(--ink)}
.v2 .cvsvg .pl{fill:var(--ink)}
.v2 .cvsvg .drw{stroke:var(--ink);stroke-dashoffset:0}
.v2 .cvsvg .chk{stroke:var(--ink)}
.v2 .cvsvg .ey{opacity:1;fill:var(--neon);stroke:var(--ink)}
.v2 .cvsvg .ps circle,.v2 .cvsvg .ps path{stroke:var(--ink)}
.v2 .cvsvg .ps circle{fill:var(--paper2)}
.v2 .cvsvg .ps.hi circle,.v2 .cvsvg .ps.hi path{stroke:var(--ink)}
.v2 .cvsvg .ps.hi circle{fill:var(--neon)}
.v2:hover .cvsvg .ln line,.v2:hover .cvsvg .ln circle,.v2:hover .cvsvg .ln2{stroke:#3B5263}
.v2:hover .cvsvg .nd,.v2:hover .cvsvg .ps circle{fill:var(--ink);stroke:#AFC0C9}
.v2:hover .cvsvg .ps path{stroke:#AFC0C9}
.v2:hover .cvsvg .pl{fill:var(--neon)}
.v2:hover .cvsvg .drw{stroke:#fff;stroke-dashoffset:600;animation:drw 1.4s ease forwards}
.v2:hover .cvsvg .chk{stroke:var(--neon);animation-delay:.7s}
.v2:hover .cvsvg .ps.hi circle{fill:var(--ink);stroke:var(--neon)}
.v2:hover .cvsvg .ps.hi path{stroke:var(--neon)}


/* founder: smaller portrait */
.fnd-in{grid-template-columns:340px 1fr!important;gap:72px!important}
.fnd-ph{aspect-ratio:4/5;max-width:340px}
@media (max-width:900px){
  .vals2{grid-template-columns:1fr}
  .v2 + .v2{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .fnd-in{grid-template-columns:1fr!important}
}


/* project cards */
.pjcs{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pjc{background:var(--paper2);border:1px solid var(--line);border-radius:16px;padding:28px;display:flex;flex-direction:column;transition:border-color .25s,box-shadow .25s}
.pjc:hover{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 30%,transparent)}
.pjc-top{display:flex;justify-content:space-between;align-items:center}
.pjc h3{font-weight:900;font-size:28px;letter-spacing:-.03em;margin:14px 0 2px}
.pjc > p{font-size:16px;line-height:1.6;color:var(--ink2);margin-top:12px}
.pjc .mini{height:210px;margin:18px 0;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--ink) 8%,transparent) 1px,transparent 0) 0 0/18px 18px;border-radius:12px;border:1px solid var(--line2);padding:6px}
.pjc .mini svg{width:100%;height:100%}
.pjc:hover .iso .grp .f-t{fill:color-mix(in srgb,var(--acc) 16%,#fff)}
.pjc dl{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-bottom:20px}
.pjc dl div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.pjc dt{font-size:13px;color:var(--muted);padding-top:1px}
.pjc dd{font-size:14.5px;line-height:1.5;color:var(--ink)}
.pjc .go{margin-top:auto;font-weight:600;font-size:14.5px;display:inline-flex;gap:8px;align-items:center}
@media (max-width:900px){
  .pjcs{grid-template-columns:1fr}
}
.nf{padding:120px 0 140px;border-top:1px solid var(--line2);max-width:720px}
.nf h1{font-weight:900;font-size:64px;letter-spacing:-.04em;line-height:1.02;margin:16px 0 18px}
.nf .lead{font-size:19px;color:var(--ink2);margin-bottom:28px}
.nf .ctas{display:flex;gap:10px;flex-wrap:wrap}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}


/* v1.5 additions */
.ex-hint{display:block;font-size:13.5px;color:var(--muted);margin-top:6px}
.bgp .s-head{margin-bottom:34px}
.bgp .vf-f{position:relative;width:100%;aspect-ratio:21/9;max-height:74vh;background:var(--ink);overflow:hidden}
.bgp-bar{display:grid;grid-template-columns:1fr 1fr 1.4fr auto;gap:0;align-items:center;border-bottom:1px solid var(--line);padding:18px 0}
.bgp-bar > div{display:flex;flex-direction:column;gap:4px;padding-right:20px}
.bgp-bar > div + div{padding-left:20px;border-left:1px solid var(--line)}
.bgp-bar span{font-size:13px;color:var(--muted)}
.bgp-bar b{font-weight:600;font-size:17px}
.ph-st{display:inline-flex;align-items:center;gap:8px}
.ph-st i{width:9px;height:9px;border-radius:50%;background:var(--green);border:1.4px solid var(--ink)}
.xnote{text-align:center;font-size:14px;color:var(--muted);margin-top:8px}
.ct-d .w2{grid-column:1/-1;padding-left:0!important;border-left:0!important}
.ct-note{font-size:14.5px;color:var(--muted);margin-top:16px}
.ctf .ct-note{margin-top:20px}
.fsoc{display:flex;align-items:center;gap:12px;margin-top:34px;padding-top:24px;border-top:1px solid #1D3142}
.fsoc .li{width:38px;height:38px;border-radius:10px;border:1px solid #2A4152;display:grid;place-items:center;transition:.25s}
.fsoc .li svg{width:17px;height:17px;fill:#C9D2D9}
.fsoc .li:hover{background:#0A66C2;border-color:#0A66C2}
.fsoc .li:hover svg{fill:#fff}
.fsoc span{font-size:14px;color:#8FA2AE}
.ptn.wide{grid-column:1/-1;grid-template-columns:200px 1fr}
.tba{display:flex;flex-direction:column;align-items:center;gap:10px}
.tba-m{width:54px;height:54px;background:color-mix(in srgb,var(--green) 55%,#C9CCC4);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.tba em{font-style:normal;font-size:13px;font-weight:600;color:var(--muted)}


/* founder headshot: compact */
.fnd-in{grid-template-columns:260px 1fr!important;gap:64px!important;align-items:center}
.fnd-ph{max-width:260px;aspect-ratio:4/5}
@media (max-width:900px){
  .bgp-bar{grid-template-columns:1fr}
  .bgp-bar > div + div{padding-left:0;border-left:0;padding-top:12px}
}
.fsoc + .fbot{margin-top:20px}

/* ================= v1.7: accent rule — grey at rest, colour on hover =================
   --hue  = the real colour of the element's division (neon for the group, cyan for ClosedAI, green for GreenCore).
   --acc  = what components actually paint with. It is grey (--rest) by default and becomes --hue
            only when a card is hovered or focused, or when an item is selected/active.
   Buttons and arrows always use --hue. Change the grey in :root (--rest). */
@property --acc{syntax:'<color>';inherits:true;initial-value:#B7BCB6}
body,.grp:not(g){--hue:var(--neon)}
.cai{--hue:var(--cyan)}
.gc{--hue:var(--green)}
body,.cai:not(g),.gc:not(g),.grp:not(g),.des,.tm,.tp{--acc:var(--rest)}
/* hovered or focused cards switch to their colour */
:is(.dcard,.ncard,.tm,.tcard,.tp,.val,.prod,.pcard,.pjc,.ptn,.dk-t,.swt,.agentcard,.chr-r,.flow > div,.face,.eu-item,.ar,.pr,.ct-d > a,.ws,.dtl,.ddx .it):is(:hover,:focus-visible){--acc:var(--hue)}
/* selected, active and live elements keep their colour */
:is(.rmc.sel,.ex-row.on,.pa.on,.stack-l li.on,.nav a.l.cur,.ct-tabs .on,.bf-ok,.explorer,.stackwrap,.afwrap,.cyc,.eg-art,.fd-art,.tw-art,.hero-art,.treewrap,.xwrap,.ctmapw,.sysmap){--acc:var(--hue)}
.bf-f :focus{--acc:var(--hue)}
.btn-acc{background:var(--hue)}
.btn-acc:hover{box-shadow:0 0 0 4px color-mix(in srgb,var(--hue) 35%,transparent)}
.arw{color:var(--hue)}
:is(.dcard,.ncard,.tm,.tcard,.tp,.val,.prod,.pcard,.pjc,.ptn,.dk-t,.swt,.agentcard,.chr-r,.flow > div,.face){transition:--acc .35s,border-color .3s,box-shadow .3s,transform .3s,background .3s}

/* section eyebrows: the small dot is grey and lights up in the division colour while its section is in focus */
.eyebrow::before{background:var(--rest);transition:background .45s ease,box-shadow .45s ease}
.infocus .eyebrow::before,.eyebrow.infocus::before{background:var(--hue)}
.dark .eyebrow::before{box-shadow:0 0 0 1px color-mix(in srgb,#fff 25%,transparent)}

/* Hover outlines use the exact division colour. */
:is(.dcard,.ncard,.prod,.pcard,.ptn,.pjc,.val,.tcard,.tm,.cv-t,.vchips span,.pa:not(.on),.rm-filter button,.tfilter button):hover{border-color:var(--hue)}
.v2:hover .v2-g{border-color:var(--hue)}

/* ================= v1.7: navigation — floating pill ================= */
.topbar{padding-top:14px;background:transparent!important}
.topbar .nav,.topbar.mini .nav{max-width:1100px;height:58px;gap:22px;padding:0 8px 0 24px;background:color-mix(in srgb,#fff 78%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:999px;box-shadow:0 14px 34px -26px color-mix(in srgb,var(--ink) 40%,transparent)}
.topbar.mini{padding-top:10px}
.topbar.mini .nav{max-width:1020px;height:54px;box-shadow:0 16px 36px -22px color-mix(in srgb,var(--ink) 45%,transparent)}
.topbar .nav .lg,.topbar.mini .nav .lg{height:19px}
.topbar .nav .btn-acc{padding:9px 16px}
.nav a.l{position:relative;padding:8px 0}
.nav a.l.dd:hover,.ddw:hover > a.l{color:var(--ink)}
.ddw:hover > a.l::before{content:"";position:absolute;left:0;right:16px;bottom:0;height:2px;border-radius:2px;background:var(--neon)}
.nav a.l.cur::before{background:var(--hue)}
.ddm{top:calc(100% + 18px);border-radius:16px;box-shadow:0 24px 50px -28px color-mix(in srgb,var(--ink) 35%,transparent)}
.ddw::after{height:22px}
.ddm.ddx{left:50%;transform:translate(-50%,6px);width:640px;display:grid;grid-template-columns:1.35fr 1fr;gap:10px;padding:10px}
.ddw:hover .ddm.ddx,.ddw:focus-within .ddm.ddx{transform:translate(-50%,0)}
.ddx .ddh{border-top:0!important;margin-top:0!important;padding:10px 12px 6px}
.ddx .it{display:flex;gap:14px;align-items:flex-start;padding:12px;border-radius:12px;border:1px solid transparent;transition:background .25s,border-color .25s}
.ddx .it:hover,.ddx .it:focus-visible{background:var(--paper2);border-color:var(--hue)}
.ddx .it > span:last-child{display:block}
.ddx .it b{display:block;font-weight:600;font-size:15px;color:var(--ink)}
.ddx .it span span{display:block;font-size:13px;color:var(--ink2);margin-top:2px;line-height:1.45}
.ddx .it.sub{margin-left:36px;padding-left:12px}
.ddx .ic{flex:none;width:22px;height:22px;background:var(--acc);-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;transition:background .3s}
.ddx .ic.none{display:none}
.ddx .ddp{background:var(--paper2);border-radius:12px;padding:0 6px 6px;display:flex;flex-direction:column}
.ddx .ddp .it{flex:1;flex-direction:column;justify-content:flex-end;gap:10px;background:repeating-linear-gradient(90deg,transparent 0 17px,color-mix(in srgb,var(--ink) 4%,transparent) 17px 18px)}
.ddx .ddp .it:hover{background:#fff}

/* ================= v1.7: Home — roadmap (grey line, selected milestone in colour) ================= */
#rmap.rmap{position:relative;height:450px;margin-top:6px}
.rm3-ax{position:absolute;left:0;right:0;top:224px;height:2px;background:repeating-linear-gradient(90deg,#C3C6BF 0 5px,transparent 5px 10px)}
.rm3-done{position:absolute;left:0;top:224px;height:2px;background:#9AA1A6}
.rm3-today{position:absolute;top:224px;height:0;transform:translateX(-50%);z-index:1}
.rm3-today span{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);font-size:11.5px;font-weight:600;color:var(--ink);white-space:nowrap}
.rm3-today::after{content:"";position:absolute;left:0;top:-10px;height:20px;border-left:1.5px dashed var(--ink)}
.rmc{position:absolute;top:0;bottom:0;width:0;outline:none}
.rmc .dot{position:absolute;left:0;top:225px;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);border:1.6px solid #9AA1A6;background:var(--paper);z-index:2;transition:all .3s}
.rmc.done .dot{background:#6F777D;border-color:#6F777D}
.rmc.prog .dot{background:#fff;border:3px solid #6F777D;width:13px;height:13px}
.rmc.sel .dot{background:var(--hue);border:1.6px solid var(--ink);width:15px;height:15px;box-shadow:0 0 0 6px color-mix(in srgb,var(--hue) 35%,transparent)}
.rmc .stem{position:absolute;left:0;width:1px;background:var(--line);transition:background .3s}
.rmc.up .stem{top:198px;height:20px}.rmc.dn .stem{top:232px;height:20px}
.rmc.sel .stem{background:var(--ink)}
.rmc .card{position:absolute;left:0;width:176px;transform:translateX(-50%);background:var(--paper2);border-radius:12px;padding:13px 15px 15px;border-top:3px solid var(--line);cursor:pointer;transition:background .3s,border-color .3s,box-shadow .3s}
.rmc.up .card{bottom:252px}.rmc.dn .card{top:252px}
.rmc .card .d{font-size:12px;font-weight:600;color:#7E868C;transition:color .3s}
.rmc .card .t{font-size:14px;font-weight:600;line-height:1.35;margin-top:6px;color:#7E868C;transition:color .3s}
.rmc .card .x{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
.rmc .card .x > div{overflow:hidden}
.rmc .card .x p{font-size:12.5px;line-height:1.5;color:var(--ink2);margin-top:8px}
.rmc .card .x .status{margin-top:8px;font-size:12px}
.rmc:hover .card{background:#fff}
.rmc.sel{z-index:3}
.rmc.sel .card{background:#fff;border-top-color:var(--hue);box-shadow:0 16px 32px -20px color-mix(in srgb,var(--ink) 35%,transparent)}
.rmc.sel .card .t{color:var(--ink)}.rmc.sel .card .d{color:var(--ink2)}
.rmc.sel .card .x{grid-template-rows:1fr}
.rmc:first-child .card{transform:translateX(-40%)}
.rmap-legend{display:flex;flex-wrap:wrap;gap:20px;align-items:center;border-top:1px solid var(--line2);padding-top:16px;margin-top:6px;font-size:13px;color:var(--ink2)}
.rmap-legend .lg-i{display:inline-flex;align-items:center;gap:7px}
.rmap-legend .lg-i i{display:inline-block;width:10px;height:10px;border-radius:50%;border:1.6px solid #9AA1A6;background:var(--paper)}
.rmap-legend .lg-i.done i{background:#6F777D;border-color:#6F777D}
.rmap-legend .lg-i.prog i{background:#fff;border:3px solid #6F777D}
.rmap-legend .lg-i.sel i{background:var(--neon);border-color:var(--ink)}
.rmap-legend .rmap-hint{margin-left:auto;color:var(--muted)}

/* ================= v1.7: Home — partner row (minimal) ================= */
.dk{display:flex;justify-content:center;gap:14px;align-items:center;min-height:110px;flex-wrap:wrap}
.dk-t{width:160px;height:78px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--paper2);position:relative;transition:transform .25s ease,--acc .35s,border-color .25s,background .25s}
.dk-t::before{content:"";position:absolute;left:18px;right:18px;top:-1px;height:2px;border-radius:0 0 2px 2px;background:var(--acc);opacity:0;transition:opacity .25s}
.dk-t img{max-width:100px;max-height:22px;object-fit:contain;filter:grayscale(1);opacity:.55;transition:.3s}
.dk-t .t{font-weight:900;font-size:15px;letter-spacing:-.02em;color:#9AA0A4;transition:.3s}
.dk-t .m{width:26px;height:26px;background:var(--acc);-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;transition:background .3s}
.dk-t:hover,.dk-t:focus-visible,.dk-t.on{--acc:var(--hue);transform:scale(1.06);border-color:var(--hue);background:#fff}
.dk-t:hover::before,.dk-t.on::before{opacity:1}
.dk-t:hover img,.dk-t.on img{filter:none;opacity:1}.dk-t:hover .t,.dk-t.on .t{color:var(--ink)}
.dk-c{text-align:center;font-size:14px;color:var(--muted);min-height:22px;margin-top:12px}
.dk-c b{color:var(--ink);font-weight:600}
.dk-go{text-align:center;margin-top:18px}
.dk-go .go{font-weight:600;font-size:14.5px;display:inline-flex;gap:8px;align-items:center}

/* ================= v1.7: About — values as a charter ================= */
.chr{border-top:1px solid var(--ink)}
.chr-r{display:grid;grid-template-columns:60px 340px 1fr;gap:36px;padding:40px 0 42px;border-bottom:1px solid var(--line);position:relative;outline:none}
.chr-r::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--hue);transition:width .5s ease}
.chr-r:hover::before,.chr-r:focus-visible::before{width:100%}
.chr-n{font-weight:600;font-size:14px;color:var(--muted);padding-top:12px}
.chr-w{font-weight:900;font-size:48px;letter-spacing:-.045em;line-height:1;color:#A9AFAD;transition:color .35s}
.chr-r:hover .chr-w,.chr-r:focus-visible .chr-w{color:var(--ink)}
.chr-t h3{font-weight:600;font-size:24px;line-height:1.3;letter-spacing:-.015em;margin-bottom:12px}
.chr-t p{font-size:16px;line-height:1.7;color:var(--ink2);max-width:600px}
.chr-f{display:flex;justify-content:space-between;gap:20px;margin-top:16px;font-size:13px;color:var(--muted)}

/* ================= v1.7: Projects & Partners — segmented wheel ================= */
.whlw{display:flex;flex-direction:column;align-items:center;width:100%}
.whlw #wheel{width:100%;max-width:560px}
.whl{width:100%;height:auto;display:block;overflow:visible}
.whl text{font-family:var(--f);font-size:12.5px;font-weight:600;fill:#7D858A;pointer-events:none;transition:fill .3s}
.ws{cursor:pointer;outline:none;transition:opacity .3s}
.ws path{fill:#ECEDE7;stroke:var(--paper);stroke-width:3;transition:fill .3s}
.ws.d path{fill:#E4E6DF}.ws.t path{fill:#EEEFE9}
.ws.open{cursor:default}.ws.open path{fill:transparent;stroke:#C9CCC4;stroke-dasharray:3 4;stroke-width:1}
.whl.has-on .ws:not(.on):not(.open){opacity:.45}
.ws.on path{fill:color-mix(in srgb,var(--hue) 35%,#fff)}
.ws.on text{fill:var(--ink)}
.wc{cursor:pointer;outline:none}
.wc circle{fill:var(--paper2);stroke:var(--line);stroke-width:1}
.wc:hover circle,.wc.on circle{stroke:var(--neon);stroke-width:1.6}
.whl-cap{font-size:14px;color:var(--muted);text-align:center;min-height:44px;margin-top:8px;line-height:1.5;max-width:440px}
.whl-cap b{color:var(--ink);font-weight:600}

/* GreenCore partner placeholder mark */
.tba-m{background:var(--acc)!important;transition:background .3s}

/* ================= v1.7: closing cards — watermark turns bright on hover ================= */
.ncard .wm{background:#C9CCC4}
.ncard h3 .dot{background:var(--acc)}
.ncard:hover .wm,.ncard:focus-visible .wm{background:var(--hue)!important;opacity:1!important}
/* other watermarked cards: grey at rest, tinted colour on hover */
:is(.prod,.swt,.dtl,.agentcard,[data-wm=nb],[data-wm=cv]) .wm{background:#C9CCC4!important;transition:background .35s,opacity .35s,transform .5s}
:is(.prod,.swt,.dtl,.agentcard,[data-wm=nb],[data-wm=cv]):hover .wm{background:var(--hue)!important}

/* ================= v1.7: Home — "why we exist" drawings follow the rule ================= */
.flow .fl-glow{fill:var(--acc);transition:fill .35s}
.flow .fl-dot{fill:var(--acc);transition:fill .35s}
.eu-item .n{background:var(--acc)!important;transition:background .35s}
.flow > div:nth-child(1){--hue:var(--neon)}.flow > div:nth-child(2){--hue:var(--cyan)}.flow > div:nth-child(3){--hue:var(--green)}

/* ================= Responsive: tablet and phone (single source for small screens) ================= */
.mbtn,.mnav{display:none}
@media (max-width:900px){
  .wrap{padding:0 20px}
  .s{padding-top:64px;padding-bottom:64px}
  /* navigation */
  .nav{grid-template-columns:1fr auto!important;height:60px}
  .nav .nl,.nav .nr .lang,.nav .nr .btn-acc{display:none}
  .mbtn{display:grid;place-items:center;gap:5px;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--paper2);cursor:pointer;padding:12px}
  .mbtn i{display:block;width:18px;height:2px;background:var(--ink);transition:.25s}
  .menu-open .mbtn i:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-open .mbtn i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .mnav{display:block;position:fixed;left:12px;right:12px;top:72px;z-index:70;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px 20px;box-shadow:0 24px 50px -24px color-mix(in srgb,var(--ink) 45%,transparent);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.25s}
  .menu-open .mnav{opacity:1;visibility:visible;transform:none}
  .mn-g{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid var(--line2)}
  .mn-g span{font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:4px}
  .mn-g a{font-weight:600;font-size:18px;padding:7px 0}
  .mn-g a.sub{font-size:16px;padding-left:14px;color:var(--ink2)}
  .mn-f{display:flex;justify-content:space-between;align-items:center;padding-top:16px}
  .topbar.mini .nav{max-width:100%;padding:0 6px 0 16px}
  /* type */
  .hero h1,.phero h1,.team-hero-grid .phero h1{font-size:44px!important;line-height:1.05}
  .s-head h2,.team h2,.nb-head h2,.euv-h h2,.poc-l h2,.cl-l h2,.tw-l h2,.eg-l h2,.bf-l h2,.ct-copy h2,.swt h2,.fnd-t blockquote,.lg-hero h1,.nf h1{font-size:32px!important;line-height:1.12}
  .fnd-t blockquote{font-size:26px!important}
  .hero p.lead,.phero .lead,.s-head p,.team p{font-size:16.5px}
  /* every multi-column layout becomes one column */
  .hero,.s-head,.flow,.divs,.team,.cta .inner,.explorer,.phero,.team-hero-grid .phero,.next3,.eu2,.eu-right,.cai-hero,.stackwrap,.nb-head,.poc,.bform,.sw-hero,.found,.swt,.twin,.pcards,.agentcard,.pj-hero,.ptns,.ptn,.ptn.wide,.engs,.gc-hero,.euv .wrap,.fnd-in,.ct-hero,.ctf,.lg-grid,.vals2,.pjcs,.bgp-bar,.areas,.prgrid,.eg-list,.euv-o{grid-template-columns:1fr!important}
  .s-head{gap:14px;margin-bottom:28px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .faces{grid-template-columns:repeat(4,1fr)}
  .tpgrid{grid-template-columns:1fr 1fr;gap:20px 12px}
  .fgrid{grid-template-columns:1fr 1fr;gap:26px}
  .fgrid > div:first-child{grid-column:1/-1}
  .fbot{flex-direction:column;gap:8px}
  .bf-f{grid-template-columns:1fr}
  .stages{grid-template-columns:1fr 1fr;row-gap:22px}
  .stages::before,.stages::after{display:none}
  .vchips{grid-template-columns:1fr 1fr}
  /* remove column dividers that only make sense side by side */
  .v2 + .v2,.pr:not(:nth-child(4n+1)),.ar:not(:nth-child(3n+1)),.eg-list div:nth-child(2n),.bgp-bar > div + div,.euv-o div + div,.ct-d > *:nth-child(2n){padding-left:0!important;border-left:0!important}
  .v2,.pr,.ar{padding-right:0}
  /* drawings and interactive blocks */
  .explorer .ex-stage{border-right:0;border-bottom:1px solid var(--line)}
  .hero-art,.sysmap{max-width:100%}
  .cv-p{position:static}
  .pt-lo{border-right:0!important;border-bottom:1px solid var(--line);min-height:110px}
  .eu-right{margin-right:0!important}
  .eu-ov{display:none}
  .paccord{flex-direction:column;height:auto}
  .pa,.pa.on{flex:none}
  .pa-k,.pa.on .pa-k{writing-mode:horizontal-tb;transform:none;font-size:30px}
  .pa .pa-b{opacity:1;max-height:none;margin-top:12px}
  .pa:not(.on) .pa-p{display:none}
  .vf-f,.bgp .vf-f{aspect-ratio:16/10}
  .cta h2{font-size:38px!important}
  .ddm{display:none}
  .ctas{flex-wrap:wrap}
  .phero > *,.hero > *{min-width:0}
  .dtl{flex-direction:column;align-items:flex-start;padding:26px}
  .fnd-ph{max-width:220px}
  .stack-l{flex-direction:row;flex-wrap:wrap;gap:8px}

  /* v1.7 mobile: new components */
  .topbar{padding-top:10px}
  .topbar .nav,.topbar.mini .nav{height:56px;padding:0 6px 0 18px;max-width:calc(100% - 24px)}
  #rmap.rmap{height:auto;padding-left:26px;margin-top:0}
  .rm3-ax{left:7px;right:auto;top:8px;bottom:8px;width:2px;height:auto;background:repeating-linear-gradient(180deg,#C3C6BF 0 5px,transparent 5px 10px)}
  .rm3-done,.rm3-today{display:none}
  .rmc{position:relative;left:auto!important;top:auto;bottom:auto;width:auto;padding:0 0 12px}
  .rmc .dot{left:-19px;top:24px}
  .rmc .stem{display:none}
  .rmc .card,.rmc:first-child .card{position:relative;left:auto;top:auto!important;bottom:auto!important;transform:none;width:auto}
  .rmap-legend{gap:10px 16px}.rmap-legend .rmap-hint{margin-left:0;width:100%}
  .chr-r{grid-template-columns:1fr;gap:10px;padding:28px 0 30px}
  .chr-n{padding-top:0}
  .chr-w{font-size:40px}
  .chr-f{flex-direction:column;gap:4px}
  .sysmap{padding:0 30px}
  .dcard .foot{flex-wrap:wrap;gap:12px}
  .pcard .foot,.prod .foot{flex-direction:column;align-items:flex-start;gap:12px}
  .ac-l .top{flex-wrap:wrap;gap:8px}
  .dk{gap:10px}.dk-t{width:calc(50% - 5px);height:72px}
  .ddm.ddx{display:none}
  .xwrap{padding:0 14px}
}
@media (max-width:560px){
  .hero h1,.phero h1,.team-hero-grid .phero h1{font-size:38px!important}
  .tpgrid{grid-template-columns:1fr 1fr}
  .tp h2{font-size:16px}.tp .role{font-size:13px}
  .faces{grid-template-columns:repeat(4,1fr)}
  .pjc dl div{grid-template-columns:1fr;gap:2px}
  .stages,.vchips{grid-template-columns:1fr}
  .whl text{font-size:15px}
  .chr-w{font-size:34px}
  .chr-t h3{font-size:20px}
}
