:root{
  --navy: #14213D;
  --navy-deep: #0D1730;
  --paper: #EEF0E6;
  --paper-dim: #E3E6D9;
  --amber: #FFB627;
  --amber-deep: #E89A0C;
  --teal: #2EC4B6;
  --coral: #F25C54;
  --ink: #1B1B1B;
  --ink-soft: #4A4F55;
  --line: rgba(20,33,61,0.14);
  --line-light: rgba(238,240,230,0.18);
  --disp: 'Space Grotesk', sans-serif;
  --body: 'Inter', sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--body); color:var(--ink); background:var(--paper); line-height:1.5; -webkit-font-smoothing:antialiased;}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
section{position:relative;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media (max-width:720px){ .wrap{padding:0 20px;} }

/* ---------- nav ---------- */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(20,33,61,0.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-light);
}
.nav{ display:flex; align-items:center; justify-content:space-between; height:72px; }
.logo{ display:flex; align-items:center; gap:10px; font-family:var(--disp); font-weight:700; font-size:20px; color:var(--paper); letter-spacing:.01em;}
.logo-mark{ width:26px; height:26px; }
.navlinks{ display:flex; gap:2px; align-items:center; }
.navlinks a{
  font-family:var(--body); font-size:14.5px; font-weight:500; color:rgba(238,240,230,0.78);
  padding:9px 13px; border-radius:3px; transition:color .15s ease, background .15s ease;
  position:relative;
}
.navlinks a:hover{ color:var(--paper); background:rgba(238,240,230,0.08); }
.navlinks a.active{ color:var(--amber); }
.navlinks a.active::after{
  content:''; position:absolute; left:13px; right:13px; bottom:2px; height:2px; background:var(--amber);
}
.nav-cta{
  font-family:var(--body); font-weight:600; font-size:14px;
  background:var(--amber); color:var(--navy-deep) !important; padding:10px 18px; border-radius:3px;
  margin-left:8px; border:1px solid var(--amber);
}
.nav-cta:hover{ background:var(--amber-deep); border-color:var(--amber-deep); }
.nav-cta.active{ color:var(--navy-deep) !important; }
.nav-cta.active::after{ display:none; }
.burger{ display:none; background:none; border:none; color:var(--paper); font-size:22px; cursor:pointer; }
@media (max-width:960px){
  .navlinks{
    display:none; position:absolute; top:72px; left:0; right:0; flex-direction:column;
    background:var(--navy-deep); padding:14px; gap:2px; border-bottom:1px solid var(--line-light);
    align-items:stretch;
  }
  .navlinks.open{ display:flex; }
  .navlinks a{ padding:12px 14px; }
  .nav-cta{ margin-left:0; text-align:center; margin-top:6px; }
  .burger{ display:block; }
}

/* ---------- grid motif (signature element) ---------- */
.cell{ fill:rgba(238,240,230,0.07); stroke:rgba(238,240,230,0.14); stroke-width:1; }
.lit{ fill:#14213D; opacity:0; animation:litIn 1s ease forwards; }
.icon{ opacity:0; animation:litIn 1s ease forwards; }
@keyframes litIn{ to{ opacity:1; } }
@media (prefers-reduced-motion: reduce){ .lit, .icon{ animation:none; opacity:1; } }

/* ---------- home hero ---------- */
.hero{ background:var(--navy); color:var(--paper); padding:96px 0 72px; overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
.grid-motif-mobile{ display:none; }
@media (max-width:900px){
  .hero-grid{ grid-template-columns:1fr; gap:24px; }
}
@media (max-width:720px){
  .hero{ padding:28px 0 32px; }
  .hero .eyebrow{ margin-bottom:8px; font-size:11px; }
  .hero h1{ font-size:26px; line-height:1.15; margin-bottom:14px; }
  .hero p.lead{ font-size:14px !important; margin-bottom:16px !important; }
  .grid-motif-desktop{ display:none; }
  .grid-motif-mobile{ display:block; width:130px; margin-top:0; margin-bottom:16px; }
  .hero .btn-row{ gap:8px; }
  .hero .btn{ padding:9px 16px; font-size:13px; }
  .statbar{ grid-template-columns:repeat(2,1fr) !important; row-gap:16px !important; margin-top:18px !important; padding-top:16px !important; }
  .stat{ position:relative; padding:0 8px; }
  .stat:nth-child(odd)::after{ content:''; position:absolute; top:2px; right:-16px; bottom:2px; width:1px; background:rgba(238,240,230,0.18); }
  .stat:nth-child(odd)::before{ content:''; position:absolute; top:2px; left:0; bottom:2px; width:1px; background:rgba(238,240,230,0.18); }
  .stat b{ font-size:24px; margin-bottom:3px; }
  .stat span{ font-size:9px; letter-spacing:.03em; line-height:1.3; word-break:keep-all; }
}
.eyebrow{
  font-family:var(--mono); font-size:12.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--amber); display:flex; align-items:center; gap:8px; margin-bottom:20px;
}
.eyebrow::before{ content:''; width:7px; height:7px; background:var(--amber); display:inline-block; }
h1{ font-family:var(--disp); font-weight:700; font-size:clamp(34px, 5vw, 54px); line-height:1.08; letter-spacing:-0.01em; margin-bottom:22px; }
h1 .hl{ color:var(--amber); }
.hero p.lead{ font-size:17.5px; color:rgba(238,240,230,0.82); max-width:480px; margin-bottom:32px; }
.btn-row{ display:flex; gap:12px; flex-wrap:wrap; }
.btn{
  font-family:var(--body); font-weight:600; font-size:14.5px; padding:13px 24px; border-radius:3px;
  display:inline-flex; align-items:center; gap:8px; border:1px solid transparent; cursor:pointer;
}
.btn-primary{ background:var(--amber); color:var(--navy-deep); }
.btn-primary:hover{ background:var(--amber-deep); }
.btn-ghost{ border-color:rgba(238,240,230,0.3); color:var(--paper); }
.btn-ghost:hover{ border-color:var(--paper); }

.statbar{
  margin-top:64px; padding-top:36px; border-top:1px solid var(--line-light);
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
.stat b{ font-family:var(--disp); font-size:30px; color:var(--paper); display:block; }
.stat span{ font-family:var(--mono); font-size:12px; color:rgba(238,240,230,0.6); text-transform:uppercase; letter-spacing:.06em; }

/* ---------- interior page hero (smaller, for sub-pages) ---------- */
.page-hero{ background:var(--navy); color:var(--paper); padding:28px 0 48px; }
.page-hero h1{ font-size:clamp(30px,4vw,42px); margin-bottom:12px; }
.page-hero p.lead{ font-size:16px; max-width:560px; margin-bottom:0; }
.breadcrumb{ font-family:var(--mono); font-size:12px; color:rgba(238,240,230,0.5); margin-bottom:16px; letter-spacing:.04em; }
.breadcrumb a{ color:var(--teal); }

/* ---------- section headers ---------- */
.sec{ padding:88px 0; }
.sec-alt{ background:var(--paper-dim); }
.sec-dark{ background:var(--navy); color:var(--paper); }
.sec-head{ max-width:640px; margin-bottom:52px; }
.sec-eyebrow{
  font-family:var(--mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--coral); margin-bottom:12px; display:block;
}
.sec-dark .sec-eyebrow{ color:var(--amber); }
h2{ font-family:var(--disp); font-weight:700; font-size:clamp(26px,3.4vw,38px); letter-spacing:-0.01em; margin-bottom:14px; }
.sec-head p{ color:var(--ink-soft); font-size:16px; }
.sec-dark .sec-head p{ color:rgba(238,240,230,0.75); }

/* ---------- mission / story ---------- */
.story{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
@media (max-width:860px){ .story{ grid-template-columns:1fr; } }
.story-copy p{ margin-bottom:16px; color:var(--ink-soft); font-size:15.5px; }
.story-copy p b{ color:var(--ink); }
.story-copy h3{ font-family:var(--disp); font-size:20px; margin:28px 0 12px; }
.kit-card{ background:var(--navy); border-radius:6px; padding:28px; color:var(--paper); position:sticky; top:96px; }
.kit-card .kit-label{ font-family:var(--mono); font-size:12px; color:var(--teal); letter-spacing:.08em; text-transform:uppercase; margin-bottom:14px; display:block; }
.kit-card h3{ font-family:var(--disp); font-size:20px; margin-bottom:10px; }
.kit-card p{ font-size:14px; color:rgba(238,240,230,0.72); margin-bottom:18px; }
.step-list{ list-style:none; margin-top:18px; }
.step-list li{ font-family:var(--mono); font-size:12.5px; color:rgba(238,240,230,0.85); padding:8px 0; border-top:1px solid var(--line-light); }
.step-list li:first-child{ border-top:none; }
.step-list li b{ color:var(--amber); margin-right:8px; }

/* ---------- programs ---------- */
.prog-grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:24px; }
@media (max-width:860px){ .prog-grid{ grid-template-columns:1fr; } }
.prog-card{ background:#fff; border:1px solid var(--line); border-radius:6px; padding:32px; }
.prog-card.core{ background:var(--navy); color:var(--paper); border:none; }
.tag{
  display:inline-block; font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  padding:4px 10px; border-radius:2px; margin-bottom:16px;
}
.tag-core{ background:var(--amber); color:var(--navy-deep); }
.tag-comm{ background:rgba(20,33,61,0.08); color:var(--navy); }
.tag-new{ background:var(--teal); color:var(--navy-deep); }
.prog-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px; }
@media (max-width:860px){ .prog-grid-2{ grid-template-columns:1fr; } }
.prog-card h3{ font-family:var(--disp); font-size:22px; margin-bottom:12px; }
.prog-card p{ font-size:15px; color:var(--ink-soft); margin-bottom:16px; }
.prog-card.core p{ color:rgba(238,240,230,0.78); }
.chip-list{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.chip{ font-family:var(--mono); font-size:12px; border:1px solid var(--line); padding:5px 10px; border-radius:2px; color:var(--ink-soft); }
.prog-card.core .chip{ border-color:var(--line-light); color:rgba(238,240,230,0.8); }

.timeline{ margin-top:56px; border-top:1px solid var(--line); padding-top:40px; }
.timeline-row{ display:grid; grid-template-columns:100px 1fr; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.timeline-row .wk{ font-family:var(--mono); font-size:13px; color:var(--coral); }
.timeline-row h4{ font-family:var(--disp); font-size:16px; margin-bottom:4px; }
.timeline-row p{ font-size:14px; color:var(--ink-soft); }

/* ---------- impact ---------- */
.impact-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:56px; }
@media (max-width:860px){ .impact-grid{ grid-template-columns:repeat(2,1fr); } }
.impact-card{ background:#fff; border:1px solid var(--line); border-radius:6px; padding:24px; }
.impact-card b{ font-family:var(--disp); font-size:32px; display:block; color:var(--navy); }
.impact-card span{ font-family:var(--mono); font-size:12px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em; }
.quote{
  background:var(--navy); color:var(--paper); border-radius:6px; padding:40px; display:grid;
  grid-template-columns:auto 1fr; gap:24px; align-items:center; margin-bottom:24px;
}
@media (max-width:640px){ .quote{ grid-template-columns:1fr; } }
.quote-mark{ font-family:var(--disp); font-size:64px; color:var(--amber); line-height:1; }
.quote p{ font-size:18px; font-style:italic; margin-bottom:10px; }
.quote cite{ font-family:var(--mono); font-size:12px; color:var(--teal); font-style:normal; text-transform:uppercase; letter-spacing:.05em; }

/* ---------- team ---------- */
.team-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
@media (max-width:720px){ .team-grid{ grid-template-columns:1fr; } }
.team-card{ background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.team-photo{ height:220px; background:linear-gradient(135deg, var(--navy), var(--navy-deep)); display:flex; align-items:center; justify-content:center; }
.team-photo .initials{ font-family:var(--disp); font-size:40px; color:var(--amber); }
.team-body{ padding:22px 24px; }
.team-body .role{ font-family:var(--mono); font-size:11.5px; color:var(--coral); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px; display:block; }
.team-body h3{ font-family:var(--disp); font-size:19px; margin-bottom:8px; }
.team-body p{ font-size:14px; color:var(--ink-soft); }
.volunteer-note{ margin-top:48px; padding:28px; border:1px dashed var(--line); border-radius:6px; text-align:center; }
.volunteer-note p{ color:var(--ink-soft); margin-bottom:14px; }

/* ---------- get involved ---------- */
.involve-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:860px){ .involve-grid{ grid-template-columns:1fr; } }
.involve-card{ border:1px solid var(--line-light); border-radius:6px; padding:28px; background:rgba(238,240,230,0.03); }
.involve-card .num{ font-family:var(--mono); font-size:12px; color:var(--amber); margin-bottom:14px; display:block; }
.involve-card h3{ font-family:var(--disp); font-size:19px; margin-bottom:10px; color:var(--paper); }
.involve-card p{ font-size:14px; color:rgba(238,240,230,0.7); margin-bottom:18px; }
.link-arrow{ font-family:var(--mono); font-size:13px; color:var(--teal); display:inline-flex; gap:6px; align-items:center; cursor:pointer; background:none; border:none; }

/* ---------- news ---------- */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:860px){ .news-grid{ grid-template-columns:1fr; } }
.news-card{ background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden; display:block; color:inherit; }
.news-thumb{ height:180px; background:repeating-linear-gradient(45deg, var(--paper-dim), var(--paper-dim) 10px, #fff 10px, #fff 20px); border-bottom:1px solid var(--line); }
.news-body{ padding:12px 14px 14px; }
.news-date{ font-family:var(--mono); font-weight:600; font-size:11px; letter-spacing:.04em; color:var(--coral); margin-bottom:6px; display:block; }
.news-body h3{ font-family:var(--disp); font-weight:700; font-size:14px; color:var(--ink); line-height:1.3; margin-bottom:6px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.news-body p{ font-size:12px; color:var(--ink-soft); line-height:1.4; margin-bottom:8px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.news-body a.readmore{ font-family:var(--mono); font-size:11px; color:var(--teal); margin-top:0; display:inline-block; }


/* ---------- contact page ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
.form-field{ margin-bottom:18px; }
.form-field label{ display:block; font-family:var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); margin-bottom:6px; }
.form-field input, .form-field textarea, .form-field select{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:4px; font-family:var(--body);
  font-size:14.5px; background:#fff; color:var(--ink);
}
.form-field textarea{ resize:vertical; min-height:120px; }
.contact-info-card{ background:var(--navy); color:var(--paper); border-radius:6px; padding:32px; }
.contact-info-card h3{ font-family:var(--disp); font-size:19px; margin-bottom:18px; }
.contact-info-row{ display:flex; gap:12px; margin-bottom:16px; font-size:14.5px; }
.contact-info-row span.k{ font-family:var(--mono); font-size:11.5px; color:var(--teal); text-transform:uppercase; letter-spacing:.05em; min-width:64px; }

/* ---------- footer ---------- */
footer{ background:var(--navy-deep); color:rgba(238,240,230,0.7); padding:64px 0 28px; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; margin-bottom:48px; }
@media (max-width:720px){ .foot-grid{ grid-template-columns:1fr; } }
.foot-brand{ font-family:var(--disp); font-weight:700; font-size:20px; color:var(--paper); margin-bottom:12px; }
.foot-col h4{ font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); margin-bottom:16px; }
.foot-col a{ display:block; font-size:14px; color:rgba(238,240,230,0.7); margin-bottom:10px; }
.foot-col a:hover{ color:var(--paper); }
.foot-bottom{ border-top:1px solid var(--line-light); padding-top:24px; font-size:12.5px; font-family:var(--mono); color:rgba(238,240,230,0.4); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

/* ---------- article body + content blocks ----------
   Shared by article.html and the CMS preview pane (/admin), so the preview
   an editor sees is styled by exactly this CSS. */
.prose{
  max-width:1180px;
  margin:0 auto;
  padding:0 32px;
}
@media (max-width:720px){ .prose{ padding:0 20px; } }
.prose p{ margin-bottom:18px; font-size:16px; color:var(--ink-soft); line-height:1.7; }
.prose h2{ font-size:24px; margin:32px 0 14px; font-family:var(--disp); }
.prose h3{ font-size:19px; margin:26px 0 12px; font-family:var(--disp); }
.prose ul, .prose ol{ margin:0 0 18px 22px; color:var(--ink-soft); font-size:16px; line-height:1.7; }
.prose li{ margin-bottom:6px; }
.prose a{ color:var(--coral); text-decoration:underline; }
.prose strong{ color:var(--ink); }
.article-hero-img{
  display:block;
  max-width:1180px;
  margin:32px auto 0;
  padding:0 32px;
  box-sizing:border-box;
  max-height:480px; object-fit:cover; border-radius:6px;
}
@media (max-width:720px){ .article-hero-img{ padding:0 20px; } }
.back-link{ font-family:var(--mono); font-size:13px; color:var(--teal); display:inline-block; margin-bottom:24px; }

.blk{ margin:0 0 28px; }
.blk:last-child{ margin-bottom:0; }

/* single photo (photos block with exactly 1 image) */
.blk-photo-single{ margin:28px 0; max-width:600px; }
.blk-photo-single img{ width:100%; border-radius:6px; display:block; }

.blk-cap{
  font-family:var(--mono); font-size:12px; color:var(--ink-soft);
  margin-top:8px; line-height:1.5;
}

/* .prose is the sizing container for its own content, so galleries respond
   to how much space they actually have (their container's width) — not the
   raw browser window. This is what makes the CMS preview trustworthy: the
   preview frame is a real 1400px-wide container even while it's shown
   scaled down, so it always reports its true (desktop) width here. */
.prose{ container-type: inline-size; }

/* multi-photo — column count is set inline per post ("한 줄에 몇 장?"),
   this just provides the responsive collapse + tile styling. */
.blk-gallery{ display:grid; gap:12px; margin:28px 0; }
.blk-gallery .gal-item{ margin:0; }
.blk-gallery img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-radius:5px; display:block; background:var(--paper-dim);
}
@container (max-width:720px){
  .blk-gallery[data-per-row]{ grid-template-columns:repeat(2,1fr) !important; }
  .blk-gallery{ gap:8px; }
}

.blk-quote{
  border-left:3px solid var(--amber); padding:4px 0 4px 20px; margin:32px 0;
}
.blk-quote p{ font-size:19px; font-style:italic; color:var(--ink); margin-bottom:8px; line-height:1.6; }
.blk-quote-by{
  font-family:var(--mono); font-size:12px; color:var(--ink-soft);
  font-style:normal; text-transform:uppercase; letter-spacing:.05em;
}

/* ---------- mentors / volunteers (Team page) ---------- */
.mentor-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:24px; }
@media (max-width:720px){ .mentor-grid{ grid-template-columns:1fr; } }
.mentor-card{ display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--line); border-radius:6px; padding:16px; }
.mentor-photo{ width:52px; height:52px; border-radius:50%; overflow:hidden; flex:none; background:var(--navy); display:flex; align-items:center; justify-content:center; }
.mentor-photo img{ width:100%; height:100%; object-fit:cover; }
.mentor-photo span{ color:var(--amber); font-family:var(--disp); font-size:15px; }
.mentor-info h4{ font-family:var(--disp); font-size:15px; margin-bottom:2px; }
.mentor-info p{ font-family:var(--mono); font-size:11px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em; margin:0; }


/* ---------- growth timeline (Home page) ---------- */
.growth-sec{ background:var(--navy); padding:56px 0; }
.growth-eyebrow{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); margin-bottom:8px; display:block; }
.growth-sec h2{ font-family:var(--disp); font-weight:700; font-size:26px; color:var(--paper); margin-bottom:26px; }
.growth-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px 18px; }
@media (max-width:860px){ .growth-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .growth-grid{ grid-template-columns:1fr; } }
.growth-item{ padding-left:14px; border-left:2px solid #FFE7A8; }
.growth-item:nth-child(6n+2){ border-color:#FFD873; }
.growth-item:nth-child(6n+3){ border-color:#FFC94D; }
.growth-item:nth-child(6n+4){ border-color:var(--amber); }
.growth-item:nth-child(6n+5){ border-color:var(--amber-deep); }
.growth-item:nth-child(6n+6){ border-color:#B8760A; }
.growth-tag{ font-family:var(--mono); font-size:10px; margin-bottom:4px; display:block; }
.growth-item:nth-child(6n+1) .growth-tag{ color:#FFE7A8; }
.growth-item:nth-child(6n+2) .growth-tag{ color:#FFD873; }
.growth-item:nth-child(6n+3) .growth-tag{ color:#FFC94D; }
.growth-item:nth-child(6n+4) .growth-tag{ color:var(--amber); }
.growth-item:nth-child(6n+5) .growth-tag{ color:var(--amber-deep); }
.growth-item:nth-child(6n+6) .growth-tag{ color:#B8760A; }
.growth-item h4{ font-family:var(--disp); font-size:14px; color:var(--paper); margin-bottom:4px; }
.growth-item p{ font-size:12.5px; color:rgba(238,240,230,0.65); line-height:1.5; }

/* ---------- team section (Home page) ---------- */
.team-sec{ padding:56px 0; }
.founder-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:28px; }
@media (max-width:640px){ .founder-grid{ grid-template-columns:1fr; } }
.founder-card{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:6px; padding:32px 28px; text-align:center; }
.founder-photo{ width:150px; height:150px; border-radius:50%; margin:0 auto 18px; overflow:hidden; background:linear-gradient(135deg,var(--navy),var(--navy-deep)); display:flex; align-items:center; justify-content:center; }
.founder-photo img{ width:100%; height:100%; object-fit:cover; }
.founder-photo span{ font-family:var(--disp); color:var(--amber); font-size:32px; }
.founder-info .role{ font-family:var(--mono); font-weight:600; font-size:12px; color:var(--coral); text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; display:block; }
.founder-info h4{ font-family:var(--disp); font-weight:700; font-size:20px; color:var(--ink); margin-bottom:12px; }
.founder-info p{ font-size:13px; color:var(--ink-soft); line-height:1.55; max-width:320px; margin:0 auto; }
.founder-flag-overlay{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:150px; background:var(--navy); opacity:0; transition:opacity .2s ease; pointer-events:none;
}
.founder-card:hover .founder-flag-overlay{ opacity:1; }



.members-label{ font-family:var(--mono); font-size:9px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px; display:block; }
.members-label-row{ display:flex; align-items:baseline; gap:10px; margin-bottom:16px; }
.members-count{ font-family:var(--mono); font-size:11px; color:var(--coral); }
.member-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-bottom:20px; }
@media (max-width:820px){ .member-grid{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:560px){ .member-grid{ grid-template-columns:repeat(3,1fr); } }
.member-item{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:8px; padding:12px 8px; text-align:center; }
.member-avatar{ width:88px; height:88px; border-radius:50%; overflow:hidden; margin:0 auto 8px; background:var(--navy); display:flex; align-items:center; justify-content:center; }
.member-avatar img{ width:100%; height:100%; object-fit:cover; }
.member-avatar span{ font-family:var(--disp); color:var(--paper); font-size:20px; }
.member-item .m-name{ font-size:13px; font-weight:600; color:var(--ink); line-height:1.3; margin-bottom:2px; }
.member-item .m-country{ font-size:11.5px; color:var(--ink-soft); }
.flag-overlay{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:92px;
  background:var(--navy);
  opacity:0;
  transition:opacity .2s ease;
  pointer-events:none;
}
.member-item:hover .flag-overlay{ opacity:1; }
.founder-country{ font-size:13px; color:var(--ink-soft); margin:2px 0 8px; }
/* Projects page: photo cards */
.prog-card.has-photo{ padding:0; overflow:hidden; }
.prog-body{ padding:32px; }
.prog-photo{ position:relative; height:380px; background:var(--navy-deep); }
.prog-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.prog-card.split{ display:grid; grid-template-columns:1fr 1fr; }
.prog-card.split .prog-photo{ height:auto; min-height:380px; }
@media (max-width:860px){
  .prog-card.split{ grid-template-columns:1fr; }
  .prog-card.split .prog-photo{ order:-1; height:220px; min-height:0; }
  .prog-photo{ height:220px; }
}
.navlinks a[href*="impact"]{ display:none !important; }
.foot-col a[href*="impact"]{ display:none !important; }
