:root,[data-theme="light"]{
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
  --color-bg:#f5f2ea;--color-surface:#fbf8f1;--color-surface-2:#f1ede4;--color-border:#d8d1c3;--color-text:#221f18;--color-text-muted:#69645b;--color-primary:#8e6a12;--color-primary-hover:#6f530e;--color-text-inverse:#faf7f0;
  --radius-md:.65rem;--radius-lg:1rem;--radius-xl:1.5rem;--shadow:0 12px 32px rgba(34,31,24,.08);
  --content:1180px;--font-body:'Satoshi', sans-serif;--font-display:'Boska', serif;
}
[data-theme="dark"]{--color-bg:#171511;--color-surface:#1e1b16;--color-surface-2:#26221c;--color-border:#3b352b;--color-text:#ece6da;--color-text-muted:#b7ae9e;--color-primary:#d5a53a;--color-primary-hover:#e2b85c;--color-text-inverse:#1a1712;--shadow:0 12px 32px rgba(0,0,0,.35)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;background:var(--color-bg);color:var(--color-text)}
img{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
button{font:inherit}
.container{width:min(calc(100% - 2rem),var(--content));margin:auto}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;background:var(--color-primary);color:var(--color-text-inverse);padding:.75rem 1rem;border-radius:.5rem;z-index:30}
header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--color-bg) 82%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb,var(--color-text) 10%, transparent)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:1rem}
.brand{display:flex;align-items:center;gap:.8rem}
.brand-mark{width:2.4rem;height:2.4rem;border:1px solid var(--color-border);border-radius:999px;display:grid;place-items:center;background:radial-gradient(circle at 40% 40%, rgba(213,165,58,.45), transparent 55%), var(--color-surface)}
.brand svg{width:1.2rem;height:1.2rem}
.brand span{font-size:var(--text-sm);letter-spacing:.18em}
.nav-links{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}
.nav-links a{font-size:var(--text-xs);letter-spacing:.04em;color:var(--color-text-muted)}
.nav-links a:hover{color:var(--color-text)}
.toggle,.cta{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:.75rem 1rem;border-radius:999px;cursor:pointer;min-height:44px}
.cta{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}
.cta:hover{background:var(--color-primary-hover)}
main section{padding:clamp(3rem,8vw,7rem) 0;border-bottom:1px solid color-mix(in srgb,var(--color-text) 10%, transparent);scroll-margin-top:5rem}
.section-intro{max-width:62ch;margin-bottom:var(--space-8);color:var(--color-text-muted)}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.5rem,3vw,3rem);align-items:end}
.eyebrow{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-4)}
h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.1}
h1{font-size:clamp(2.8rem,8vw,6.2rem);max-width:10ch}
h2{font-size:var(--text-2xl);margin-bottom:var(--space-6)}
h3{font-size:var(--text-lg)}
.lede{font-size:var(--text-lg);max-width:48ch;margin:1rem 0;color:var(--color-text)}
.muted{color:var(--color-text-muted)}
.button-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}
.hero-media{position:relative}
.hero-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow)}
.hero-card img{aspect-ratio:4/5;object-fit:cover;width:100%}
.sun-tag{position:absolute;left:1rem;bottom:1rem;background:rgba(20,18,14,.8);color:#f8f1e5;padding:.6rem .8rem;border-radius:999px;font-size:var(--text-xs);letter-spacing:.08em}
.impact-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.5rem}
.impact-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;text-align:center}
.impact-item strong{display:block;font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-primary);margin-bottom:.35rem}
.impact-item span{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}
.research-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}
.pillar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem}
.pillar h3{margin-bottom:.5rem}
.bilingual{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem}
.bilingual article{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem}
.bilingual h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:.75rem}
.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-bottom:var(--space-10)}
.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.project-card img{aspect-ratio:16/10;object-fit:cover;width:100%;border-bottom:1px solid var(--color-border)}
.project-card-body{padding:1.25rem;flex:1;display:flex;flex-direction:column;gap:.75rem}
.project-card .status{display:inline-block;width:fit-content;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;padding:.35rem .65rem;border-radius:999px;background:var(--color-surface-2);color:var(--color-text-muted)}
.project-card p{color:var(--color-text-muted);flex:1}
.project-card .meta{font-size:var(--text-sm);color:var(--color-text-muted)}
.project-card a.card-link{font-size:var(--text-sm);color:var(--color-primary);font-weight:500}
.project-card a.card-link:hover{color:var(--color-primary-hover)}
.project-card--placeholder{border-style:dashed;box-shadow:none}
.project-card--placeholder .project-card-body{justify-content:center;min-height:12rem}
.project-feature{margin-top:var(--space-6);padding:clamp(1.5rem,3vw,2.5rem);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow)}
.project-feature-header{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem);align-items:start;margin-bottom:var(--space-8)}
.project-feature-header img{border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow)}
.project-feature h3{font-size:var(--text-xl);margin-bottom:var(--space-4)}
.project-feature .lab-tag{display:inline-block;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-4)}
.principles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-top:var(--space-4)}
.principle{padding:.85rem 1rem;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm)}
.principle strong{display:block;color:var(--color-primary);font-size:var(--text-xs);letter-spacing:.06em;margin-bottom:.2rem}
.project-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:var(--space-8)}
.project-gallery img{border-radius:var(--radius-lg);border:1px solid var(--color-border);aspect-ratio:4/3;object-fit:cover;width:100%}
.project-gallery figcaption{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.4rem}
.project-team{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-4)}
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.person{padding:1.25rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.person strong{display:block;margin-bottom:.25rem}
.person .person-role{display:block;margin-bottom:.5rem}
.person a.person-link{font-size:var(--text-sm);color:var(--color-primary)}
.person a.person-link:hover{color:var(--color-primary-hover)}
.people-subsection{margin-top:var(--space-10)}
.people-subsection h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:var(--space-4)}
.partner-card{padding:1.25rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);max-width:36rem}
.partner-card a{color:var(--color-primary)}
.partner-card a:hover{color:var(--color-primary-hover)}
.lineage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.lineage-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}
.lineage-card img{aspect-ratio:4/3;object-fit:cover;width:100%;border-bottom:1px solid var(--color-border)}
.lineage-card-body{padding:1rem}
.lineage-card .dates{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:.35rem}
.lineage-card h4{font-family:var(--font-display);font-size:var(--text-base);margin-bottom:.4rem}
.lineage-card p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}
.pub-list{display:grid;gap:1.5rem}
.pub-group h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:1rem}
.pub-group--inpress .year{color:var(--color-text-muted)}
.pub-group--inpress h3::after{content:"";display:inline-block;width:.4rem;height:.4rem;margin-left:.4rem;border-radius:999px;background:var(--color-primary);vertical-align:middle;opacity:.7}
.pub-item{padding:1rem 0;border-bottom:1px solid color-mix(in srgb,var(--color-text) 10%, transparent)}
.pub-item:last-child{border-bottom:none;padding-bottom:0}
.pub-item .year{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:.35rem}
.pub-item p{margin:0}
.pub-item a{color:var(--color-primary)}
.pub-item a:hover{color:var(--color-primary-hover)}
.pub-item em{font-style:italic}
.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.media-grid img,.gallery img{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-2);box-shadow:var(--shadow);height:100%;object-fit:cover;width:100%}
.media-video{grid-column:1/-1;position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow)}
.media-video iframe,.media-video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.media-video video{object-fit:contain;background:#111}
.media-videos-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.media-subsection{margin-top:var(--space-8)}
.media-subsection h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:var(--space-4)}
.media-figure{position:relative}
.media-figure figcaption{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.4rem}
.sustainability-practices{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:var(--space-8)}
.sustainability-practice{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}
.sustainability-practice img{aspect-ratio:16/10;object-fit:cover;width:100%;border-bottom:1px solid var(--color-border)}
.sustainability-practice-body{padding:1.25rem}
.sustainability-practice h4{font-family:var(--font-display);font-size:var(--text-base);margin-bottom:.5rem}
.sustainability-practice p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}
.impact-banner{margin-top:var(--space-10);padding:clamp(1.5rem,3vw,2rem);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl)}
.impact-banner h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:var(--space-4)}
.impact-banner .impact-strip{margin-top:0}
footer{padding:clamp(2rem,5vw,3rem) 0;color:var(--color-text-muted);border-top:1px solid color-mix(in srgb,var(--color-text) 10%, transparent)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
.footer-grid strong{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text)}
.footer-links{display:grid;gap:.35rem;margin-top:.5rem}
.footer-links a{color:var(--color-primary)}
.footer-links a:hover{color:var(--color-primary-hover)}
.footer-meta{margin-top:1rem}
.story-block{margin-top:var(--space-8)}
.story-block p{margin-bottom:1rem;color:var(--color-text-muted)}
.story-block p:last-child{margin-bottom:0}
.story-image--hero{width:100%;height:auto;margin-top:var(--space-6);border-radius:var(--radius-xl);border:1px solid var(--color-border);box-shadow:var(--shadow)}
.story-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:var(--space-6) 0}
.story-figure{margin:0;border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;box-shadow:var(--shadow);background:var(--color-surface-2)}
.story-figure img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.story-figure--portrait img{aspect-ratio:4/5}
.story-nav{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:var(--space-6)}
.project-page-hero{margin-bottom:var(--space-8)}
.project-page-hero h1{font-size:var(--text-2xl);max-width:none;margin-bottom:var(--space-4)}
.logos-strip{max-width:28rem;margin-top:var(--space-6);padding:1rem;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface)}
.impact-section{padding:clamp(2rem,5vw,3rem) 0}
.gallery{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;align-items:start}
.stack{display:grid;gap:1rem}
.contact-box{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}
.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:1.25rem}
.small{font-size:var(--text-sm)}
@media (max-width: 900px){
  .hero-grid,.bilingual,.gallery,.contact-box,.projects-grid,.people-grid,.research-pillars,.project-feature-header,.project-gallery,.principles-grid,.footer-grid,.sustainability-practices,.story-gallery{grid-template-columns:1fr}
  .lineage-grid{grid-template-columns:repeat(2,1fr)}
  .impact-strip{grid-template-columns:repeat(2,1fr)}
  .media-grid{grid-template-columns:1fr}
  .media-videos-grid{grid-template-columns:1fr}
  .nav{align-items:flex-start;flex-direction:column}
  .nav-links{width:100%}
}
@media (max-width: 520px){
  .impact-strip,.lineage-grid{grid-template-columns:1fr}
}
