:root{
    --cream:#FFF6E3;
    --cream-deep:#FFF1CF;
    --olive:#43481F;
    --olive-soft:#565C2B;
    --sage:#E7E9D8;
    --carrot:#F0912E;
    --carrot-deep:#D97A1B;
    --brown:#5C3A1D;
    --leaf:#8B9A57;
    --ink:#3A2A18;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    font-family:'Poppins',sans-serif;
    background:var(--cream);
    color:var(--ink);
    line-height:1.65;
    font-size:17px;
  }
  img{display:block;max-width:100%;height:auto}
  a{color:inherit}
  .mono{
    font-family:'IBM Plex Mono',monospace;
    letter-spacing:.14em;
    text-transform:uppercase;
    font-size:.78rem;
    font-weight:500;
  }
  .wrap{max-width:1120px;margin:0 auto;padding:0 24px}

  /* ---------- header ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(255,246,227,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(92,58,29,.12);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1120px;margin:0 auto}
  .nav img{height:40px;width:auto}
  .nav-right{display:flex;align-items:center;gap:22px}
  .nav-link{font-size:.92rem;font-weight:500;text-decoration:none;color:var(--brown);opacity:.85}
  .nav-link:hover{opacity:1}
  .btn{
    display:inline-block;
    background:var(--carrot);
    color:#fff;
    font-weight:600;
    font-size:.95rem;
    padding:12px 26px;
    border-radius:999px;
    text-decoration:none;
    transition:background .15s ease, transform .15s ease;
  }
  .btn:hover{background:var(--carrot-deep);transform:translateY(-1px)}
  .btn:focus-visible{outline:3px solid var(--brown);outline-offset:2px}
  .btn.ghost{
    background:transparent;
    color:var(--brown);
    border:2px solid rgba(92,58,29,.35);
  }
  .btn.ghost:hover{background:rgba(92,58,29,.06)}
  .nav .btn{padding:9px 20px;white-space:nowrap}

  /* ---------- hero ---------- */
  .hero{padding:72px 0 88px;position:relative;overflow:hidden}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
  .hero .mono{color:var(--leaf);margin-bottom:18px;display:block}
  h1{
    font-size:clamp(1.9rem,4.4vw,3.3rem);
    line-height:1.12;
    font-weight:700;
    color:var(--olive);
    letter-spacing:-.015em;
    margin-bottom:22px;
  }
  h1 .accent{color:var(--carrot)}
  .hero p{max-width:52ch;color:var(--brown);margin-bottom:34px;font-size:1.06rem}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
  .hero-photo{position:relative}
  .hero-photo img.main{
    border-radius:22px;
    aspect-ratio:4/5;
    object-fit:cover;
    width:100%;
    box-shadow:0 24px 60px -24px rgba(67,72,31,.45);
  }
  .hero-carrot{
    position:absolute;
    width:110px;height:auto;
    bottom:-26px;left:-30px;
    transform:rotate(-14deg);
    filter:drop-shadow(0 10px 18px rgba(92,58,29,.25));
  }
  .hero-tag{
    position:absolute;top:20px;right:20px;
    background:var(--cream);
    border-radius:999px;
    padding:8px 16px;
    font-family:'IBM Plex Mono',monospace;
    font-size:.72rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--olive);
    box-shadow:0 6px 18px rgba(0,0,0,.12);
  }

  /* ---------- what we do ---------- */
  .band-olive{background:var(--olive);color:var(--cream)}
  .band-olive .mono{color:var(--leaf)}
  section{padding:88px 0}
  .section-head{max-width:640px;margin-bottom:52px}
  .section-head .mono{display:block;margin-bottom:14px}
  h2{
    font-size:clamp(1.6rem,3vw,2.25rem);
    line-height:1.2;
    font-weight:700;
    letter-spacing:-.01em;
  }
  .band-olive h2{color:var(--cream)}
  .cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
  .col h3{font-size:1.12rem;font-weight:600;margin-bottom:10px;color:var(--cream)}
  .col p{font-size:.97rem;color:rgba(255,246,227,.78)}
  .col .num{
    font-family:'IBM Plex Mono',monospace;
    color:var(--carrot);
    font-size:.8rem;
    letter-spacing:.14em;
    display:block;
    margin-bottom:14px;
  }

  /* ---------- curation ---------- */
  .band-sage{background:var(--sage)}
  .curation-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
  .curation-photo{
    border-radius:22px;
    width:100%;
    height:100%;
    min-height:520px;
    object-fit:cover;
    box-shadow:0 22px 50px -26px rgba(67,72,31,.5);
  }
  .rules{margin-top:30px}
  .curation-grid h2{color:var(--olive);margin-bottom:18px}
  .curation-grid>div>p{color:var(--brown);max-width:46ch}
  .rules{list-style:none;font-family:'IBM Plex Mono',monospace;font-size:.94rem}
  .rules li{
    display:flex;gap:14px;align-items:baseline;
    padding:13px 0;
    border-bottom:1px dashed rgba(67,72,31,.25);
    color:var(--olive);
  }
  .rules li:last-child{border-bottom:none}
  .rules .yes{color:var(--leaf);font-weight:700}
  .rules .no{color:#B4552D;font-weight:700}
  .rules li.out{opacity:.75;text-decoration:line-through;text-decoration-color:rgba(180,85,45,.5);text-decoration-thickness:1px}
  .badge-row{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
  .badge{
    background:var(--olive);
    color:var(--cream);
    font-family:'IBM Plex Mono',monospace;
    font-size:.72rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    padding:8px 16px;
    border-radius:999px;
  }

  /* ---------- proof ---------- */
  .proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:stretch}
  .proof-grid img{border-radius:22px;object-fit:cover;width:100%;height:100%;min-height:420px}
  .quote-card{
    background:var(--olive);
    color:var(--cream);
    border-radius:22px;
    padding:48px 44px;
    display:flex;flex-direction:column;justify-content:center;gap:36px;
  }
  .quote-card .stat{
    font-size:clamp(3.6rem,6.5vw,5.2rem);
    font-weight:700;
    color:var(--carrot);
    line-height:1;
  }
  .quote-card .stat small{
    display:block;
    font-family:'IBM Plex Mono',monospace;
    font-size:.82rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:rgba(255,246,227,.75);
    margin-top:14px;
    font-weight:400;
    line-height:1.6;
  }
  .quote-card hr{
    border:none;
    border-top:1px dashed rgba(255,246,227,.25);
  }
  blockquote{font-size:1.06rem;line-height:1.6;color:rgba(255,246,227,.92)}
  .quote-attrib{
    font-family:'IBM Plex Mono',monospace;
    font-size:.78rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--leaf);
    margin-top:14px;
  }

  /* ---------- how it works ---------- */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .step{
    background:var(--cream-deep);
    border-radius:20px;
    padding:34px 30px;
    border:1px solid rgba(92,58,29,.1);
  }
  .step .num{
    font-family:'IBM Plex Mono',monospace;
    color:var(--carrot);
    font-size:.8rem;
    letter-spacing:.14em;
    display:block;
    margin-bottom:16px;
  }
  .step h3{font-size:1.1rem;font-weight:600;color:var(--olive);margin-bottom:8px}
  .step p{font-size:.95rem;color:var(--brown)}
  .how-note{
    margin-top:36px;
    font-family:'IBM Plex Mono',monospace;
    font-size:.85rem;
    color:var(--olive);
    display:flex;gap:26px;flex-wrap:wrap;
  }
  .how-note span::before{content:"✓ ";color:var(--leaf);font-weight:700}

  /* ---------- contact ---------- */
  .contact{padding-bottom:64px}
  .contact-inner{
    background:var(--olive);
    border-radius:28px;
    padding:72px 56px;
    color:var(--cream);
    position:relative;
    overflow:hidden;
  }
  .contact-inner .mono{color:var(--leaf);display:block;margin-bottom:14px}
  .contact-inner h2{color:var(--cream);max-width:18ch;margin-bottom:16px}
  .contact-inner>p{color:rgba(255,246,227,.8);max-width:48ch;margin-bottom:44px}
  .people{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:720px}
  .person{
    background:rgba(255,246,227,.07);
    border:1px solid rgba(255,246,227,.16);
    border-radius:18px;
    padding:28px;
  }
  .person h3{font-size:1.05rem;font-weight:600;margin-bottom:2px}
  .person .role{
    font-family:'IBM Plex Mono',monospace;
    font-size:.72rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--leaf);
    margin-bottom:16px;
  }
  .person a{
    display:block;
    text-decoration:none;
    font-size:.95rem;
    color:rgba(255,246,227,.9);
    margin-top:4px;
  }
  .person a:hover{color:var(--carrot)}
  .contact-carrot{
    position:absolute;
    width:190px;
    right:48px;bottom:36px;
    transform:rotate(-14deg);
    opacity:.28;
    pointer-events:none;
  }

  footer{padding:28px 0 40px}
  .foot{
    display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
    font-size:.85rem;color:var(--brown);opacity:.75;
  }
  .foot img{height:26px}

  /* ---------- reveal ---------- */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
  .reveal.in{opacity:1;transform:none}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none}
    html{scroll-behavior:auto}
  }

  /* ---------- responsive ---------- */
  /* ---- tablet ---- */
  @media (max-width: 1000px){
    .wrap{padding:0 20px}
    section{padding:72px 0}
    .cols-3{gap:30px}
    .curation-grid,.proof-grid{gap:36px}
    .curation-photo{min-height:420px}
  }

  /* ---- stacked layout ---- */
  @media (max-width: 900px){
    section{padding:60px 0}
    .hero{padding:40px 0 60px}
    .hero-grid,.curation-grid,.proof-grid{grid-template-columns:1fr;gap:36px}
    .cols-3,.steps{grid-template-columns:1fr;gap:26px}
    .people{grid-template-columns:1fr}
    .section-head{margin-bottom:36px}
    .contact-inner{padding:52px 30px;border-radius:22px}
    .quote-card{padding:38px 30px;gap:28px}
    .proof-grid img{min-height:300px}
    .curation-photo{min-height:340px}
    .hero-photo img.main{aspect-ratio:4/5}
    .hero-carrot{width:80px;left:-14px;bottom:-18px}
    .contact-carrot{width:110px;right:18px;bottom:14px;opacity:.2}
    .how-note{gap:10px 22px}
    .nav-link{display:none}
  }

  /* ---- phones: compact header, tighter type ---- */
  @media (max-width: 560px){
    .wrap{padding:0 18px}
    section{padding:52px 0}
    .nav{padding:11px 18px}
    .nav img{height:32px}
    .nav-right{gap:12px}
    .nav .btn{padding:8px 15px;font-size:.85rem}
    .lang-switch{font-size:.68rem}
    .lang-switch a{padding:6px 10px}
    .hero p{font-size:1rem}
    .hero-ctas{gap:10px}
    .hero-ctas .btn{flex:1 1 100%;text-align:center}
    .quote-card{padding:32px 24px}
    .contact-inner{padding:44px 22px}
    .person{padding:22px}
    .rules li{padding:11px 0}
    .badge-row{gap:8px}
  }

  /* ---- very narrow: drop nav CTA, hero CTA sits right below ---- */
  @media (max-width: 359px){
    .nav .btn{display:none}
    .nav img{height:34px}
    h1{line-height:1.15}
    .quote-card .stat{font-size:3.2rem}
    .proof-grid img{min-height:240px}
    .curation-photo{min-height:280px}
  }

/* ---------- language switch ---------- */
.lang-switch{
  display:inline-flex;
  border:1.5px solid rgba(92,58,29,.3);
  border-radius:999px;
  overflow:hidden;
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;
  letter-spacing:.08em;
}
.lang-switch a{
  padding:7px 13px;
  white-space:nowrap;
  text-decoration:none;
  color:var(--brown);
  opacity:.7;
  transition:opacity .15s ease;
}
.lang-switch a:hover{opacity:1}
.lang-switch a.active{
  background:var(--olive);
  color:var(--cream);
  opacity:1;
}

/* ---------- contact person emphasis ---------- */
.person .tag{
  display:inline-block;
  font-family:'IBM Plex Mono',monospace;
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--olive);
  background:var(--carrot);
  padding:4px 12px;
  border-radius:999px;
  margin-bottom:14px;
  color:#fff;
}
.person p{
  font-size:.92rem;
  color:rgba(255,246,227,.75);
  margin-top:4px;
}
