:root{
  --bg:#f5f5f1;
  --surface:#ffffff;
  --surface-alt:#eef1ec;
  --text:#162028;
  --muted:#657078;
  --line:#d8ded7;
  --green:#255e43;
  --green-soft:#e5eee8;
  --blue:#2d6e9c;
  --shadow:0 18px 44px rgba(22,32,40,.08);
  --radius:24px;
  --max:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
figure{margin:0}
.container{width:min(calc(100% - 2rem),var(--max));margin:0 auto}
.narrow{width:min(calc(100% - 2rem),860px);margin:0 auto}

.site-header{
  position:sticky;top:0;z-index:30;
  background:rgba(245,245,241,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(216,222,215,.88);
}
.nav-wrap,.footer-wrap{
  min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
}
.brand{display:flex;align-items:center;gap:.9rem;font-weight:700;flex-shrink:0}
.brand img{width:46px;height:46px;object-fit:contain}
.brand span{display:block;line-height:1.1}
.brand small{display:block;margin-top:.24rem;color:var(--muted);font-size:.82rem;font-weight:500}
.nav,.lang,.actions,.footer-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.nav a,.footer-links a{color:var(--muted);font-size:.93rem;font-weight:560}
.nav a:hover,.footer-links a:hover{color:var(--text)}
.lang{gap:.24rem;padding:.18rem;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.lang a{padding:.3rem .56rem;border-radius:999px;color:var(--muted);font-size:.8rem;font-weight:650}
.lang .active{background:var(--text);color:#fff}

.hero{padding:5rem 0 3rem}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}
.eyebrow{margin:0 0 .82rem;color:var(--green);font-size:.94rem;font-weight:700}
.hero-copy h1,.section h2,.rule-hero h1,.notice-box h2,.contact-grid h2{
  margin:0;letter-spacing:-.04em;line-height:.99;
}
.hero-copy h1{max-width:10ch;font-size:clamp(3.2rem,7.2vw,6rem);font-weight:760}
.lead{margin:1.35rem 0 0;max-width:57ch;color:var(--muted);font-size:1.12rem}
.statement{margin:1.55rem 0 0;max-width:34ch;color:var(--green);font-size:clamp(1.42rem,2.5vw,2rem);font-weight:700;line-height:1.18}
.intro-note{margin:1.3rem 0 0;max-width:55ch;font-size:1rem}
.actions{margin-top:1.8rem}
.button{
  display:inline-flex;align-items:center;justify-content:center;min-height:47px;padding:0 1.05rem;
  border-radius:999px;border:1px solid var(--line);font-size:.94rem;font-weight:650
}
.button-primary{background:var(--text);border-color:var(--text);color:#fff}
.button-secondary{background:var(--surface)}

.photo-shell{overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}
.hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:58% 48%;filter:saturate(.92) contrast(1.02)}
.portrait-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 45%;filter:saturate(.94) contrast(1.01)}
.basecamp-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 42%;filter:saturate(.9) contrast(1.02)}
.break-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 40%;filter:saturate(.92) contrast(1.01)}

.section{padding:4.8rem 0}
.section-tight{padding:2.3rem 0}
.section-surface{background:var(--surface-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-head{display:grid;grid-template-columns:1fr .9fr;gap:2.5rem;align-items:end;margin-bottom:2.4rem}
.section h2,.rule-hero h1,.contact-grid h2,.notice-box h2{font-size:clamp(2rem,4.5vw,3.55rem);font-weight:730}
.section-lead,.founder-copy p,.basecamp-copy p,.community-card p,.founder-edition-copy p,.rule-hero p,.notice-box p,.contact-grid p{
  color:var(--muted);font-size:1.01rem
}

.fact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.fact-card,.community-card{
  padding:1.2rem 1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)
}
.fact-card span{display:block;margin-bottom:.35rem;color:var(--muted);font-size:.84rem}
.fact-card strong{font-size:1rem;line-height:1.35}

.founder-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:4.5rem;align-items:center}
.founder-copy h2{margin-bottom:1.35rem}
.founder-copy p{max-width:65ch}
.founder-copy blockquote{
  margin:1.7rem 0 0;padding:1.1rem 1.2rem;border-left:3px solid var(--green);
  background:var(--green-soft);color:var(--green);font-size:1.08rem;font-weight:700
}

.photo-story{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:1rem}
.story-photo{overflow:hidden;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.story-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.94) contrast(1.02)}
.story-photo.wide img{aspect-ratio:16/10}
.story-photo figcaption{padding:.95rem 1rem 1rem;color:var(--muted);font-size:.9rem}

.basecamp-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3.2rem;align-items:center}
.basecamp-copy{display:grid;gap:1.5rem}
.plain-section{padding-bottom:1.35rem;border-bottom:1px solid var(--line)}
.plain-section:last-of-type{padding-bottom:0;border-bottom:0}
.plain-section h3,.community-card h3,.community-moment h3,.rule h3{
  margin:0 0 .5rem;font-size:1.18rem;line-height:1.25;font-weight:680
}
.plain-section p{margin:0}
.dry-note{padding:1rem 1.1rem;border-radius:18px;background:var(--green-soft);color:var(--green);font-weight:650}

.community-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.community-card p{margin:0}
.community-moment{
  display:grid;grid-template-columns:.75fr 1.25fr;gap:2.5rem;align-items:center;
  margin-top:2.8rem;padding-top:2.8rem;border-top:1px solid var(--line)
}
.community-moment p:last-child{color:var(--muted)}

.founder-edition-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:4.5rem;align-items:start}
.founder-edition-copy strong{color:var(--text)}

.notice-strip{
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  padding:1.2rem 1.35rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)
}
.notice-strip strong{display:block;margin-bottom:.25rem}
.notice-strip p{margin:0;color:var(--muted)}
.notice-strip a{flex-shrink:0;color:var(--blue);font-weight:700}

.contact-section{padding-bottom:5.2rem}
.contact-grid{display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:end}
.mail-link{font-size:clamp(1.18rem,2.8vw,1.62rem);color:var(--blue);font-weight:680;word-break:break-word}

.rule-hero{padding:4.8rem 0 2rem}
.rule-list{display:grid;gap:0}
.rule{display:grid;grid-template-columns:3rem 1fr;gap:1.25rem;padding:1.55rem 0;border-bottom:1px solid var(--line)}
.rule:first-child{border-top:1px solid var(--line)}
.rule-no{color:var(--muted);font-variant-numeric:tabular-nums}
.rule p{margin:.2rem 0}
.rule ul{margin:.6rem 0 0;padding-left:1.15rem}
.notice-box{padding:1.5rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.notice-box h2{margin-bottom:1rem;font-size:clamp(1.9rem,4vw,2.7rem)}
.notice-box p:last-child{margin-bottom:0}

.site-footer{padding:1rem 0 2rem}
.footer-wrap{padding-top:1.2rem;border-top:1px solid var(--line);color:var(--muted)}

@media(max-width:1080px){
  .hero-grid,.section-head,.founder-grid,.basecamp-grid,.founder-edition-grid,.contact-grid,.fact-grid,.community-grid,.community-moment{grid-template-columns:1fr}
  .hero-grid,.section-head,.founder-grid,.basecamp-grid,.founder-edition-grid,.contact-grid{gap:2rem}
  .hero-copy h1{max-width:none}
  .hero-photo{max-width:720px}
  .photo-story{grid-template-columns:1fr 1fr}
  .photo-story .wide{grid-column:1/-1}
}
@media(max-width:760px){
  .nav-wrap,.footer-wrap{flex-direction:column;align-items:flex-start;padding:.85rem 0}
  .hero{padding-top:3.4rem}
  .photo-story{grid-template-columns:1fr}
  .photo-story .wide{grid-column:auto}
  .notice-strip{align-items:flex-start;flex-direction:column}
  .rule{grid-template-columns:2rem 1fr;gap:1rem}
  .community-card,.fact-card,.notice-strip,.notice-box{padding:1.1rem}
}
