:root{--bg:#f7f8fb;--fg:#0b0c12;--card:#ffffff;--muted:#eceef4;--muted-fg:#3a3d4d;--subtle:#5f6378;--border:#d8dbe6;--accent:#0077a8;--font-sans:'Nunito Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;--font-display:'Red Hat Display', system-ui, -apple-system, 'Segoe UI', sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--radius:12px;--max-width:928px;--prose-width:760px;--gutter:24px;--section-gap:128px;--nav-height:64px;--base-size:16px;--line-height:1.6;--hero-size:clamp(2.25rem, 6vw, 3.75rem);--hero-weight:500;--hero-tracking:-0.04em;--headline-size:clamp(1.5rem, 3vw, 1.875rem);--label-size:0.75rem;--label-tracking:0.2em;--intro-size:1.5rem;--reveal-duration:600ms;--reveal-offset:20px;--stagger:80ms}
.dark{--bg:#050505;--fg:#ffffff;--card:#0f1018;--muted:#171826;--muted-fg:#b9bccb;--subtle:#8a8ea4;--border:#23253a;--accent:#00aeea;}
/* Editorial site skill — base stylesheet. All visual decisions live in CSS custom
   properties emitted from theme.json (see :root / .dark at the top of the built CSS).
   Edit theme.json and rebuild instead of editing this file. */
*,*::before,*::after{box-sizing:border-box;border:0 solid var(--border)}
html{font-family:var(--font-sans);font-size:var(--base-size);line-height:var(--line-height);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;min-height:100vh}
img,svg,video,audio{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:var(--gutter);top:-100px;background:var(--fg);color:var(--bg);padding:.5rem .75rem;border-radius:var(--radius);z-index:100}
.skip:focus{top:.5rem}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius)}

/* layout */
.wrap{width:100%;max-width:calc(var(--max-width) + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter)}
.prose-w{max-width:var(--prose-width)}
main.wrap{padding-top:calc(var(--nav-height) + 4rem)}
section.sec{margin-bottom:var(--section-gap);scroll-margin-top:calc(var(--nav-height) + 1.5rem)}
section.sec:last-of-type{margin-bottom:0}
.rule{height:1px;background:var(--border);margin:3rem 0}

/* type */
.label{font-family:var(--font-display);font-size:var(--label-size);text-transform:uppercase;letter-spacing:var(--label-tracking);color:var(--muted-fg);display:flex;align-items:center;gap:.5rem;margin-bottom:3rem}
.label svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted-fg)}
.headline{font-family:var(--font-display);font-size:var(--headline-size);font-weight:600;letter-spacing:-0.02em;line-height:1.25;margin-bottom:1rem}
.lead{color:var(--muted-fg);margin-bottom:2.5rem}
.intro{font-size:var(--intro-size);line-height:1.4;font-weight:300;color:var(--muted-fg);letter-spacing:-0.01em}
.intro strong{color:var(--fg);font-weight:600}
.intro a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.body p,.prose p{color:var(--muted-fg);margin-bottom:1.1rem}
.prose h2{font-family:var(--font-display);font-size:1.375rem;font-weight:600;letter-spacing:-0.02em;color:var(--fg);margin:2.5rem 0 1rem}
.prose h3{font-size:1.05rem;font-weight:600;color:var(--fg);margin:2rem 0 .75rem}
.prose ul{list-style:none;margin:0 0 1.1rem}
.prose li{color:var(--muted-fg);padding-left:1.25rem;position:relative;margin-bottom:.4rem}
.prose li::before{content:"—";position:absolute;left:0;color:var(--subtle)}
.prose a,.body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.prose strong,.body strong{color:var(--fg);font-weight:600}
.mono{font-family:var(--font-mono);font-size:.75rem}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;height:var(--nav-height);z-index:50;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s}
.nav.scrolled{border-bottom-color:var(--border)}
.nav .wrap{height:100%;display:flex;align-items:center;gap:1.5rem}
.brand{font-family:var(--font-display);font-weight:600;letter-spacing:-0.03em;font-size:1.05rem;margin-right:auto}
.nav-links{display:none;gap:1rem;overflow:hidden;min-width:0}
.nav-links a,.nav-right a,.nav-right button{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-fg);transition:color .2s;white-space:nowrap}
.nav-links a:hover,.nav-links a.active,.nav-right a:hover,.nav-right button:hover{color:var(--fg)}
.nav-right{display:flex;align-items:center;gap:.9rem;margin-left:auto}
.nav-right .social{display:none;gap:.9rem}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius)}
.icon-btn svg,.kbd svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.kbd{display:none;align-items:center;gap:.35rem;border:1px solid var(--border);border-radius:var(--radius);padding:.2rem .45rem;font-family:var(--font-mono);font-size:.65rem;color:var(--muted-fg)}
.lang{position:relative}
.lang-menu{position:absolute;right:0;top:calc(100% + .5rem);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);min-width:9rem;padding:.25rem;display:none;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.lang-menu.open{display:block}
.lang-menu a{display:block;padding:.45rem .6rem;font-size:.75rem;letter-spacing:.04em;text-transform:none;border-radius:var(--radius)}
.lang-menu a:hover,.lang-menu a[aria-current]{background:var(--muted);color:var(--fg)}
.menu-btn{display:inline-flex}
@media (min-width:1024px){.nav-links{display:flex}.kbd{display:inline-flex}.menu-btn{display:none}}
@media (min-width:1536px){.nav-right .social{display:flex}}
.mobile-menu{position:fixed;inset:var(--nav-height) 0 0 0;background:var(--bg);z-index:49;padding:2rem var(--gutter);display:none;flex-direction:column;gap:1.25rem;overflow:auto}
.mobile-menu.open{display:flex}
.mobile-menu a{font-family:var(--font-display);font-size:1.5rem;font-weight:500;letter-spacing:-0.02em}
.mobile-menu .social-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}
.mobile-menu .social-row a{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-fg)}

/* hero */
.hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem}
.hero-photo{width:9rem;height:9rem;border-radius:50%;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,.12);outline:2px solid color-mix(in srgb,var(--border) 40%,transparent);flex-shrink:0;background:var(--muted)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero h1{font-family:var(--font-display);font-size:var(--hero-size);font-weight:var(--hero-weight);letter-spacing:var(--hero-tracking);line-height:1.1}
.hero .tagline{font-size:var(--label-size);text-transform:uppercase;letter-spacing:var(--label-tracking);color:var(--muted-fg);margin-top:.75rem}
.say{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:.75rem;color:var(--muted-fg)}
.say button{display:inline-flex;align-items:center;gap:.4rem;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:var(--muted-fg)}
.say button:hover{color:var(--fg)}
.say svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.hero .meta{font-size:.8rem;color:var(--subtle);margin-top:.5rem}
.badges{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:2rem}
.badge{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--border);border-radius:var(--radius);padding:.45rem .8rem;font-size:.8rem;color:var(--muted-fg);background:var(--card)}
.badge svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.hero-text{margin-top:3rem;padding-top:3rem;border-top:1px solid var(--border);text-align:left;width:100%}
.hero-text .intro{margin-bottom:1.5rem}
@media (min-width:768px){.hero{flex-direction:row;align-items:center;text-align:left;gap:2.5rem}.hero-photo{width:11rem;height:11rem}.badges{justify-content:flex-start}.hero-head{flex:1}}

/* logos */
.logo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.logo-grid div{background:var(--bg);min-height:5.5rem;display:flex;align-items:center;justify-content:center;padding:1.25rem}
.logo-grid img{max-height:2rem;width:auto;filter:grayscale(1);opacity:.85;transition:opacity .3s}
.dark .logo-grid img{filter:grayscale(1) invert(1)}
.logo-grid div:hover img{opacity:1}
.logo-grid span{font-family:var(--font-display);font-weight:600;letter-spacing:-0.02em;color:var(--fg);font-size:1rem;text-align:center}
@media (min-width:640px){.logo-grid{grid-template-columns:repeat(3,1fr)}}

/* cards */
.cards{display:grid;grid-template-columns:1fr;gap:3rem 3.5rem}
@media (min-width:768px){.cards{grid-template-columns:1fr 1fr}}
.card{border-inline-start:2px solid var(--border);padding-inline-start:1.5rem;transition:border-color .5s}
.card:hover{border-color:var(--accent)}
.card .eyebrow{margin-bottom:.5rem}
.card h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600;margin-bottom:.9rem}
.card p{font-size:.9rem;color:var(--muted-fg)}
.card a.more{display:inline-block;margin-top:.9rem;font-size:.75rem;letter-spacing:.06em;color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* numbered */
.numbered li{display:grid;grid-template-columns:2.5rem 1fr;gap:.5rem;padding:1.1rem 0;color:var(--muted-fg)}
.numbered .n{font-family:var(--font-mono);font-size:.8rem;color:var(--subtle);padding-top:.15rem}

/* timeline */
.timeline{display:grid;grid-template-columns:1fr;gap:.75rem 3rem}
@media (min-width:768px){.timeline{grid-template-columns:1fr 1fr}}
.timeline li{display:grid;grid-template-columns:4rem 1fr;gap:.5rem;font-size:.9rem;color:var(--muted-fg);padding:.4rem 0}
.timeline .year{font-family:var(--font-mono);font-size:.75rem;color:var(--subtle);padding-top:.15rem}

/* values */
.values{display:grid;grid-template-columns:1fr;gap:3rem}
@media (min-width:768px){.values{grid-template-columns:1fr 1fr}}
.value .n{font-family:var(--font-mono);font-size:.75rem;color:var(--subtle);margin-bottom:.5rem}
.value h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600;letter-spacing:-0.01em;margin-bottom:.9rem}
.value li{color:var(--muted-fg);font-size:.9rem;padding-left:1.25rem;position:relative;margin-bottom:.5rem}
.value li::before{content:"—";position:absolute;left:0;color:var(--subtle)}

/* media */
.photos{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1rem}
@media (min-width:768px){.photos{grid-template-columns:repeat(4,1fr)}}
.photo{text-align:left}
.photo button{width:100%;aspect-ratio:1;overflow:hidden;border-radius:var(--radius);background:var(--muted);display:block}
.photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.photo button:hover img{transform:scale(1.03)}
.photo figcaption{font-size:.75rem;color:var(--muted-fg);margin-top:.6rem}
.photo a{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);display:inline-flex;align-items:center;gap:.35rem;margin-top:.4rem}
.photo a svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}
.presskit{margin-top:2.5rem;border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between}
.presskit p{font-size:.9rem;color:var(--muted-fg);flex:1 1 20rem}
.presskit .dl{display:flex;flex-wrap:wrap;gap:.75rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius);padding:.55rem .9rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;transition:background .2s,color .2s}
.btn:hover{background:var(--accent);color:var(--bg)}
.btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bio{margin-top:2rem;font-size:.9rem;color:var(--muted-fg)}
.bio b{display:block;color:var(--fg);font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;margin-bottom:.5rem}

/* contact / footer */
.contact{padding-top:4rem;border-top:1px solid var(--border)}
.contact .find{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted-fg);margin-bottom:1rem}
.contact .social-row{display:flex;flex-wrap:wrap;gap:1.25rem;margin-bottom:3rem}
.contact .social-row a{font-size:.8rem;color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border)}
.contact .social-row a:hover{text-decoration-color:var(--accent)}
.orgs{display:grid;grid-template-columns:1fr;gap:2rem}
@media (min-width:768px){.orgs{grid-template-columns:repeat(3,1fr)}}
.org h3{font-size:.9rem;font-weight:600;margin-bottom:.5rem}
.org p{font-size:.8rem;color:var(--muted-fg)}
.org .links{margin-top:.6rem;display:flex;gap:.6rem;align-items:center;font-family:var(--font-mono);font-size:.72rem}
.org .links a,.org .links button{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border)}
.org .links .sep{color:var(--border)}
.contact .note{margin-top:3rem;font-size:.8rem;color:var(--subtle);max-width:var(--prose-width)}
footer{padding:4rem 0 2.5rem;font-size:.72rem;color:var(--subtle);display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between}

/* reveal */
.reveal{opacity:0;transform:translateY(var(--reveal-offset));transition:opacity var(--reveal-duration) ease,transform var(--reveal-duration) ease;transition-delay:var(--delay,0ms)}
.reveal.in,.no-motion .reveal{opacity:1;transform:none}

/* overlays */
.overlay{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:var(--gutter)}
.overlay.open{display:flex}
.lightbox figure{max-width:min(90vw,800px)}
.lightbox img{max-height:80vh;width:auto;border-radius:var(--radius)}
.lightbox figcaption{color:#fff;font-size:.8rem;margin-top:.75rem;opacity:.8}
.overlay .close{position:absolute;top:1rem;right:1rem;color:#fff}
.overlay .close svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.palette{align-items:flex-start;padding-top:12vh}
.palette-box{width:100%;max-width:34rem;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.25)}
.palette-box input{width:100%;border:0;border-bottom:1px solid var(--border);background:transparent;color:inherit;font:inherit;padding:1rem 1.1rem;outline:0}
.palette-box ul{max-height:50vh;overflow:auto;padding:.4rem}
.palette-box li a,.palette-box li button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .7rem;border-radius:var(--radius);font-size:.9rem;text-align:left}
.palette-box li.active a,.palette-box li.active button,.palette-box li a:hover,.palette-box li button:hover{background:var(--muted)}
.palette-box li small{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--subtle)}
.palette-box .empty{padding:1rem;font-size:.85rem;color:var(--subtle)}

/* print */
@media print{.nav,.mobile-menu,.overlay,.kbd,.say,.skip{display:none!important}main{padding-top:0}.reveal{opacity:1;transform:none}section{margin-bottom:3rem}}
