:root{--bg:#f7f6f2;--card:#fff;--ink:#14211f;--muted:#4a5755;--line:#dfe2dc;--accent:#0f6e66;--ph-bg:#fff4d6;--ph-ink:#7a4b00;--ph-line:#b7791f;--focus:#f59e0b;
--display:"Fraunces",Georgia,serif;--body:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace}
[data-theme=dark]{--bg:#0d1716;--card:#142220;--ink:#eef2fa;--muted:#aab6cc;--line:#27403c;--accent:#3fd0bd;--ph-bg:#3a2e10;--ph-ink:#ffd98a;--ph-line:#d9a441}
*{box-sizing:border-box}
html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6}
a{color:var(--accent);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
.wrap{max-width:1080px;margin:0 auto;padding:0 1.5rem}
.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--bg);padding:.6rem 1rem;z-index:20}.skip-link:focus{left:1rem;top:1rem}
.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:1rem;padding-top:.7rem;padding-bottom:.7rem;flex-wrap:wrap}
.brand{font-family:var(--display);color:var(--ink);text-decoration:none;font-size:1.2rem}.brand span{color:var(--accent)}
.nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:1.1rem;margin:0 0 0 auto;padding:0}
.nav ul a{color:var(--muted);text-decoration:none;font-weight:600;font-size:.95rem}.nav ul a:hover{color:var(--ink);text-decoration:underline}
.theme-toggle{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:999px;width:2.4rem;height:2.4rem;font-size:1.1rem;cursor:pointer}
.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;align-items:center;padding-top:4.5rem;padding-bottom:3rem}
h1{font-family:var(--display);font-weight:400;font-size:clamp(3.4rem,10vw,6.2rem);line-height:.95;margin:0 0 1.5rem;letter-spacing:-.01em}
.dot{color:var(--accent)}
.lede{font-size:1.3rem;max-width:30rem;margin:0 0 1.5rem}.hl{color:var(--accent)}
.pills{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;padding:0;margin:0}
.pill{display:inline-block;padding:.4rem 1rem;border:1px solid var(--line);background:var(--card);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.92rem}
a.pill:hover{border-color:var(--accent);color:var(--accent)}
.badge{position:relative;margin:2.5rem auto 0;width:min(290px,100%);background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.6rem 1.4rem 0;box-shadow:0 20px 40px -18px rgba(13,27,51,.35);text-align:center;transform:rotate(3deg);transition:transform .3s}
.badge:hover{transform:rotate(0)}
.lanyard{position:absolute;left:50%;top:-3.2rem;width:26px;height:3.4rem;transform:translateX(-50%);background:repeating-linear-gradient(180deg,var(--accent) 0 8px,#5b84ee 8px 16px);border-radius:3px}
.photo{width:150px;height:150px;margin:0 auto 1rem;border-radius:50%;display:grid;place-content:center;background:linear-gradient(135deg,#dbe5ff,#b9cbff);color:#1c3a8f;font-family:var(--display);font-size:2.6rem;border:2px dashed var(--ph-line)}
.photo small{font-family:var(--body);font-size:.8rem;color:var(--ph-ink);background:var(--ph-bg);border-radius:4px;padding:0 .3rem;margin-top:.2rem}
.badge figcaption{display:grid;gap:.15rem;padding-bottom:1.2rem}.badge figcaption strong{font-size:1.15rem}
.muted{color:var(--muted);font-size:.9rem}
.badge-foot{margin:0 -1.4rem;background:var(--accent);color:#fff;font-weight:700;letter-spacing:.18em;font-size:.72rem;padding:.6rem;border-radius:0 0 17px 17px}
[data-theme=dark] .badge-foot{color:#0b1324}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:3rem;padding-top:2.5rem;padding-bottom:2.5rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.eyebrow{font-family:var(--body);text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:700;color:var(--muted);margin:0 0 .7rem}
.big{font-size:1.25rem;font-weight:500;margin-top:0}
.stats{display:flex;gap:2.5rem;margin:1.5rem 0 0;flex-wrap:wrap}
.stats div{display:flex;flex-direction:column-reverse}
.stats dd{margin:0;font-family:var(--display);font-size:2.6rem;line-height:1}.stats dt{color:var(--muted);font-size:.9rem;border-top:2px solid var(--accent);padding-top:.3rem;margin-top:.4rem}
.section{padding-top:4.5rem;padding-bottom:1rem}
.display{font-family:var(--display);font-weight:400;font-size:clamp(1.9rem,4vw,2.4rem);margin:0 0 .3rem;line-height:1.15}
.sub{color:var(--muted);margin:0 0 1.8rem}
.cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.3rem;transition:transform .2s,border-color .2s}
.card:hover{transform:translateY(-3px);border-color:var(--accent)}
.num{font-family:var(--display);color:var(--accent);font-size:1.1rem}
.card h3{margin:.4rem 0 .4rem;font-size:1.1rem;line-height:1.3}.card p{margin:0;color:var(--muted);font-size:.95rem}
.rows{list-style:none;margin:1.5rem 0 0;padding:0;border-top:1px solid var(--line)}
.rows li{display:grid;grid-template-columns:1fr auto;gap:.2rem 1.5rem;padding:1.2rem 0;border-bottom:1px solid var(--line)}
.rows h3{margin:0;font-size:1.15rem}.rows div p{margin:0;color:var(--muted);font-weight:600}
.when{margin:0;color:var(--muted)}.desc{grid-column:1/-1;margin:.3rem 0 0}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.cols .eyebrow{margin-top:.5rem}
.plain{list-style:none;padding:0;margin:0 0 1.8rem}
.plain li{display:flex;flex-direction:column;padding:.6rem 0;border-bottom:1px solid var(--line)}
.plain li span{color:var(--muted);font-size:.95rem}
.plain li .ph,.plain li span.ph{color:var(--ph-ink);align-self:flex-start}
cite{font-style:italic}
.end{display:grid;grid-template-columns:1fr 1fr;gap:3rem;padding-bottom:3rem}
.contact a{font-weight:600}
.ph{background:var(--ph-bg);color:var(--ph-ink);border:1px dashed var(--ph-line);border-radius:4px;padding:0 .3rem}
.footer{border-top:1px solid var(--line);color:var(--muted);font-size:.9rem;padding-top:1.5rem;padding-bottom:2rem}
@media (max-width:820px){
 .hero,.intro,.cols,.end{grid-template-columns:1fr;gap:2rem}
 .hero{padding-top:2.5rem}.badge{margin-top:3.5rem}
 .nav ul{margin-left:0;order:3;width:100%;gap:.9rem}.theme-toggle{margin-left:auto}
}
@media (min-width:1000px){.cards{grid-template-columns:repeat(5,1fr)}}
.strip{padding-top:1.6rem;padding-bottom:.5rem}
.strip ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem 2rem;font-weight:700;font-size:1.05rem;color:var(--muted)}
.strip p{margin:.8rem 0 0}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:180px 180px;gap:.8rem}
.tile{border-radius:12px;background:linear-gradient(135deg,var(--line),var(--card));border:1px dashed var(--ph-line);display:flex;align-items:flex-end;padding:.8rem}
.tile.big{grid-row:span 2}
@media (max-width:820px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 130px 130px}.tile.big{grid-column:span 2;grid-row:auto}}

/* ---- differentiation layer ---- */
h1,.display{font-weight:800;letter-spacing:-.02em}
h1{font-size:clamp(3.2rem,9vw,5.6rem);line-height:1}
h1 em{font-style:italic;color:var(--accent);font-weight:600}
.brand{font-family:var(--display);font-weight:800;font-size:1.15rem}
.display{position:relative;padding-left:1rem;border-left:5px solid var(--accent)}
.eyebrow{font-family:var(--mono);letter-spacing:.06em;text-transform:none;font-size:.82rem;color:var(--accent)}
.eyebrow::before{content:"// ";opacity:.7}
.pill{border-radius:6px}
.hero-side{position:relative;display:grid;justify-items:center}
.portrait{margin:0;text-align:center}
.frame{width:250px;height:290px;border-radius:6px;background:linear-gradient(160deg,#dcefeb,#b8dcd5);color:#0b4c46;display:grid;place-content:center;font-family:var(--display);font-size:3.4rem;font-weight:800;border:2px dashed var(--ph-line);box-shadow:14px 14px 0 var(--accent)}
.frame small{font-family:var(--body);font-size:.8rem;font-weight:500;color:var(--ph-ink);background:var(--ph-bg);border-radius:4px;padding:0 .3rem;margin-top:.3rem}
.portrait figcaption{margin-top:1.4rem;font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.report{position:absolute;right:-.5rem;bottom:2.4rem;width:230px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;box-shadow:0 14px 30px -16px rgba(0,0,0,.35);font-family:var(--mono);font-size:.78rem}
.report-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 .4rem;color:var(--muted)}
.pass-badge{background:var(--accent);color:#fff;border-radius:4px;padding:0 .4rem}
[data-theme=dark] .pass-badge{color:#0d1716}
.report ul{list-style:none;margin:0;padding:0}.report li{padding:.12rem 0}
.tick{color:var(--accent);font-weight:700;margin-right:.45rem}
/* stats: boxed tiles */
.stats{gap:.8rem}
.stats div{flex-direction:column;flex:1;min-width:110px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem}
.stats dd{font-family:var(--display);font-weight:800;color:var(--accent);font-size:2.4rem;order:-1}
.stats dt{border-top:0;padding-top:0;margin-top:.2rem;font-family:var(--mono);font-size:.78rem}
/* strip: check chips on tinted band */
.strip{margin-top:2rem;background:color-mix(in srgb,var(--accent) 9%,var(--bg));border-radius:12px;padding:1.3rem 1.5rem}
.strip ul{gap:.5rem;font-size:.92rem}
.strip li{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.25rem .7rem;color:var(--ink);font-weight:600}
.strip li::before{content:"✓ ";color:var(--accent)}
/* gallery: wide banner + 4 equal */
.gallery{grid-template-columns:repeat(4,1fr);grid-template-rows:240px 150px}
.tile.big{grid-column:1/-1;grid-row:auto}
.tile{border-radius:6px}
.card{border-radius:8px;border-top:3px solid var(--accent)}
.num{font-family:var(--mono);font-weight:500}
@media (max-width:820px){
 .gallery{grid-template-columns:1fr 1fr;grid-template-rows:180px 120px 120px}.tile.big{grid-column:span 2}
 .report{position:static;margin-top:1.5rem;width:100%;max-width:300px}
 .frame{width:210px;height:240px}
}
@media (min-width:821px){.report{right:-2.5rem;bottom:-1.2rem}.hero-side{padding-bottom:2rem}}
@media (min-width:821px){.portrait figcaption{text-align:left}.report{bottom:-4.8rem}.hero-side{padding-bottom:4rem}}
@media (min-width:821px){.report{top:1.5rem;bottom:auto;right:-3.5rem}.hero-side{padding-bottom:0}}
.tagline{font-family:var(--mono);font-size:.9rem;color:var(--muted);margin:0 0 .9rem;max-width:34rem}.tagline strong{color:var(--accent);font-weight:500}
/* production */
.frame.mono{border:0;background:linear-gradient(160deg,#0f6e66,#0a4f49);color:#f2fbf9;font-size:5rem;box-shadow:14px 14px 0 color-mix(in srgb,var(--accent) 35%,var(--bg))}
.frame.mono span{letter-spacing:-.03em}
[data-theme=dark] .frame.mono{background:linear-gradient(160deg,#155e57,#0d3d38)}
.contact-sec{padding-bottom:3rem;max-width:1080px}
.contact-sec .plain{max-width:30rem}
.rows li{grid-template-columns:1fr}
.studio{margin:1.5rem 0 0}
.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.studio img{width:100%;height:auto;display:block;border-radius:8px;border:1px solid var(--line)}
.studio figcaption{margin-top:.7rem;font-family:var(--mono);font-size:.82rem;color:var(--muted)}
@media (max-width:820px){.studio-grid{grid-template-columns:1fr}}
.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}
.episode{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:8px;padding:1.4rem 1.6rem;margin:0 0 1.5rem}
.episode-meta{font-family:var(--mono);font-size:.8rem;color:var(--muted);margin:0 0 .5rem}
.ep-badge{background:var(--accent);color:#fff;border-radius:4px;padding:.05rem .45rem;margin-right:.4rem}
[data-theme=dark] .ep-badge,[data-theme=dark] .pill-solid{color:#0d1716}
.episode h3{font-family:var(--display);font-weight:800;font-size:1.45rem;line-height:1.25;margin:0 0 .5rem}
.episode p{margin:0 0 1rem;max-width:52rem}
.episode-links{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;margin:0;padding:0}
.pill-solid{background:var(--accent);border-color:var(--accent);color:#fff}
a.pill-solid:hover{color:#fff;filter:brightness(1.1)}
[data-theme=dark] a.pill-solid:hover{color:#0d1716}
.studio{margin-top:0}
section[id]{scroll-margin-top:5rem}
.videos{list-style:none;margin:0 0 2rem;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.video{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.video img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;border-bottom:1px solid var(--line)}
.video-body{padding:1rem 1.2rem 1.2rem;display:flex;flex-direction:column;flex:1}
.video h4{font-family:var(--display);font-weight:800;font-size:1.15rem;line-height:1.3;margin:0 0 .4rem}
.video-body p:not(.episode-meta){margin:0 0 1rem;color:var(--muted);font-size:.95rem}
.video .pill{align-self:flex-start;margin-top:auto}
@media (max-width:820px){.videos{grid-template-columns:1fr}}
.photo-frame{border:0;padding:0;overflow:hidden;background:#fff}
.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.intro{grid-template-columns:2.2fr 1fr;align-items:start}
.about-text p:not(.big){margin:0 0 1rem}
.about-text .big{margin-bottom:1rem}
.stats-col{flex-direction:column;margin-top:2.2rem}
@media (min-width:1000px){.cards.focus{grid-template-columns:repeat(3,1fr)}}
@media (max-width:820px){.stats-col{flex-direction:row;margin-top:0}}
@media (min-width:1000px){.cards.focus,#lead .cards{grid-template-columns:repeat(4,1fr)}}
@media (min-width:600px) and (max-width:999px){.cards.focus,#lead .cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){.intro{grid-template-columns:1fr;gap:1.5rem}.stats-col{flex-direction:row;flex-wrap:wrap;margin-top:0}}
.hero-side .frame.photo-frame{width:290px;height:337px;margin:0 auto}
@media (max-width:820px){.hero-side{justify-items:start}.hero-side .frame.photo-frame{width:240px;height:279px;margin:0 0 .5rem}}
/* compact stat cards below About */
.intro{grid-template-columns:1fr!important;gap:1.6rem}
.about-text{max-width:52rem}
.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0;align-items:start}
.stat{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:8px;padding:.9rem 1.1rem;align-self:start}
.stat dt{display:flex;align-items:baseline;gap:.6rem;font-family:var(--mono);font-size:.8rem;color:var(--muted);margin:0 0 .45rem}
.stat-num{font-family:var(--display);font-weight:800;font-size:2rem;line-height:1;color:var(--accent)}
.stat dd{margin:0}
.stat ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem}
.stat li{font-size:.8rem;line-height:1.3;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:.15rem .45rem}
@media (max-width:820px){.stat-cards{grid-template-columns:1fr}}
@media (min-width:1000px){#lead .cards{grid-template-columns:repeat(5,1fr)}}
.team-cards .card{padding:1rem 1.1rem}
.team-cards .card h3{margin:.25rem 0 .35rem}
@media (min-width:600px) and (max-width:999px){#lead .team-cards{grid-template-columns:repeat(2,1fr)}}
.talks{list-style:none;margin:0 0 2rem;padding:0;border-top:1px solid var(--line)}
.talk{display:grid;grid-template-columns:1fr auto;gap:.15rem 1.5rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--line)}
.talk-meta{grid-column:1;margin:0;font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.talk-title{grid-column:1;margin:0;font-weight:600}
.talk a{grid-column:2;grid-row:1 / span 2;font-weight:600;white-space:nowrap}
@media (max-width:600px){.talk{grid-template-columns:1fr}.talk a{grid-column:1;grid-row:auto}}
/* About full width */
.about-text{max-width:none}
.about-text p{max-width:none}
@media (min-width:1000px){.videos{grid-template-columns:repeat(3,1fr)}}
@media (min-width:600px) and (max-width:999px){.videos{grid-template-columns:repeat(2,1fr)}}
