
  :root{
    --ink:#1E3328;
    --ink-soft:#4B5C4C;
    --paper:#F2EEDF;
    --paper-deep:#EAE4CF;
    --card:#FBF9F2;
    --brass:#B8892B;
    --brass-deep:#8F6A1E;
    --forest:#2F6B4B;
    --line:#D5CBAE;
    --ink-text:#26241D;
    --white:#FFFDF7;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink-text);
    font-family:'Inter',sans-serif;
    font-size:17px;
    line-height:1.6;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    color:var(--ink);
    margin:0 0 0.4em 0;
    font-weight:600;
    line-height:1.08;
  }
  p{margin:0 0 1em 0; max-width:62ch;}
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 32px;}

  /* ---------- Header / Nav ---------- */
  header.site{
    position:sticky; top:0; z-index:50;
    background:rgba(242,238,223,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .navbar{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 32px; max-width:1120px; margin:0 auto;
  }
  .brandmark{display:flex; align-items:center; gap:12px; text-decoration:none;}
  .brand-badge{
    width:40px; height:40px; border-radius:50%;
    border:1.5px solid var(--ink);
    display:flex; align-items:center; justify-content:center;
    font-family:'Fraunces',serif; font-weight:600; font-size:15px; color:var(--ink);
    flex-shrink:0;
  }
  .brand-name{font-family:'Fraunces',serif; font-weight:600; font-size:18px; color:var(--ink);}
  .brand-name small{display:block; font-family:'Inter',sans-serif; font-weight:500; font-size:11.5px; color:var(--ink-soft); letter-spacing:0.02em;}
  nav.links{display:flex; gap:30px; font-size:14.5px; font-weight:500;}
  nav.links a{text-decoration:none; color:var(--ink-soft); border-bottom:1px solid transparent; padding-bottom:3px; transition:border-color .15s ease, color .15s ease;}
  nav.links a:hover{color:var(--ink); border-color:var(--brass);}
  .nav-cta{
    background:var(--ink); color:var(--white); text-decoration:none;
    padding:10px 20px; border-radius:3px; font-size:14px; font-weight:600;
    white-space:nowrap;
  }
  .nav-toggle{display:none;}

  /* ---------- Hero ---------- */
  .hero{
    padding:76px 0 64px;
    border-bottom:1px solid var(--line);
  }
  .hero-grid{
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;
  }
  .eyebrow-ballot{
    display:inline-flex; align-items:center; gap:10px;
    font-size:13px; font-weight:600; color:var(--forest);
    margin-bottom:20px;
    border:1px solid var(--forest); border-radius:20px;
    padding:6px 14px 6px 10px;
  }
  .eyebrow-ballot .dot{width:7px; height:7px; border-radius:50%; background:var(--forest); display:inline-block;}
  .hero h1{
    font-size:clamp(38px,5vw,58px);
    max-width:12ch;
    letter-spacing:-0.01em;
  }
  .hero .lede{
    font-size:19px; color:var(--ink-soft); max-width:46ch; margin-top:18px;
  }
  .hero-actions{display:flex; gap:16px; margin-top:32px; flex-wrap:wrap;}
  .btn-primary{
    background:var(--ink); color:var(--white); text-decoration:none;
    padding:14px 26px; border-radius:3px; font-weight:600; font-size:15px;
    display:inline-block;
  }
  .btn-ghost{
    border:1px solid var(--ink); color:var(--ink); text-decoration:none;
    padding:13px 26px; border-radius:3px; font-weight:600; font-size:15px;
    display:inline-block;
  }
  .hero-facts{
    display:flex; gap:28px; margin-top:40px; flex-wrap:wrap;
  }
  .hero-fact .num{font-family:'Fraunces',serif; font-size:26px; color:var(--brass-deep); font-weight:600;}
  .hero-fact .lbl{font-size:13px; color:var(--ink-soft); max-width:14ch;}

  .photo-slot{
    border:1.5px dashed #A99B77;
    background:repeating-linear-gradient(135deg, rgba(184,137,43,0.06) 0px, rgba(184,137,43,0.06) 10px, transparent 10px, transparent 20px);
    border-radius:6px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; gap:10px;
    color:#8A7C57;
    padding:24px;
  }
  .photo-slot .icon{
    width:38px; height:38px; opacity:0.75;
  }
  .photo-slot .lbl{font-size:13px; font-weight:600; color:var(--ink-soft);}
  .photo-slot .sub{font-size:12px; color:#9C9070; max-width:22ch;}

  .hero-photo{ aspect-ratio:4/5; }

  /* ---------- Section shell ---------- */
  section{padding:84px 0;}
  section.alt{background:var(--paper-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head .kicker{font-size:13px; font-weight:600; color:var(--brass-deep); margin-bottom:10px;}
  .section-head h2{font-size:clamp(28px,3.4vw,38px);}
  .section-head p{color:var(--ink-soft); font-size:16.5px; margin-top:12px;}

  /* ---------- Mission ---------- */
  .mission-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:start;}
  .mission-quote{
    font-family:'Fraunces',serif; font-style:italic; font-weight:500;
    font-size:26px; line-height:1.4; color:var(--ink);
    border-left:3px solid var(--brass); padding-left:24px;
  }
  .mission-copy p{color:var(--ink-text);}
  .mission-copy strong{color:var(--ink);}

  /* ---------- Skills / ballot list ---------- */
  .ballot{
    background:var(--card); border:1px solid var(--line); border-radius:8px;
    padding:8px 0;
  }
  .ballot-row{
    display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:flex-start;
    padding:22px 32px; border-bottom:1px solid var(--line);
  }
  .ballot-row:last-child{border-bottom:none;}
  .ballot-check{
    width:22px; height:22px; border:1.5px solid var(--forest); border-radius:4px;
    margin-top:3px; position:relative; flex-shrink:0;
  }
  .ballot-check::after{
    content:"✓"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    color:var(--forest); font-size:14px; font-weight:700;
  }
  .ballot-row h4{font-size:17px; margin-bottom:4px; color:var(--ink);}
  .ballot-row p{font-size:15px; color:var(--ink-soft); margin:0;}

  /* ---------- Founders / history ---------- */
  .history-layout{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
  .history-copy p{color:var(--ink-text);}
  .stamp{
    display:inline-flex; flex-direction:column; align-items:center; justify-content:center;
    width:104px; height:104px; border-radius:50%; border:1.5px solid var(--brass);
    color:var(--brass-deep); font-family:'Fraunces',serif; text-align:center;
    margin-bottom:22px;
  }
  .stamp .yr{font-size:22px; font-weight:700; line-height:1;}
  .stamp .sm{font-size:10px; letter-spacing:0.04em; margin-top:4px; font-family:'Inter',sans-serif; font-weight:600;}
  .timeline{border-left:2px solid var(--line); padding-left:28px; margin-top:8px;}
  .timeline-item{position:relative; padding-bottom:30px;}
  .timeline-item:last-child{padding-bottom:0;}
  .timeline-item::before{
    content:""; position:absolute; left:-33.5px; top:4px;
    width:9px; height:9px; border-radius:50%; background:var(--brass);
  }
  .timeline-item .t-year{font-weight:700; color:var(--ink); font-size:15px; margin-bottom:4px;}
  .timeline-item p{font-size:15px; color:var(--ink-soft); margin:0;}

  /* ---------- Team ---------- */
  .team-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:28px;
  }
  .team-card{
    background:var(--card); border:1px solid var(--line); border-radius:8px; overflow:hidden;
  }
  .team-photo{ aspect-ratio:1/1; }
  .team-body{padding:20px;}
  .team-body h4{font-size:16.5px; margin-bottom:2px;}
  .team-role{font-size:13px; color:var(--brass-deep); font-weight:600; margin-bottom:10px;}
  .team-body p{font-size:14.5px; color:var(--ink-soft); margin:0;}

  /* ---------- Values ---------- */
  .values-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);}
  .value-cell{border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:28px 22px;}
  .value-cell h4{font-size:16px; margin-bottom:8px;}
  .value-cell p{font-size:14px; color:var(--ink-soft); margin:0;}

  /* ---------- Gallery ---------- */
  .gallery-grid{
    display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:200px; gap:16px;
  }
  .gallery-grid .photo-slot:nth-child(1){grid-column:span 2; grid-row:span 2;}

  /* ---------- Schedule / logistics ---------- */
  .logistics-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
  .logi-card{padding:26px 22px; background:var(--card); border:1px solid var(--line); border-radius:8px;}
  .logi-card .lbl{font-size:12.5px; font-weight:600; color:var(--brass-deep); margin-bottom:8px;}
  .logi-card .val{font-family:'Fraunces',serif; font-size:19px; color:var(--ink); font-weight:600; line-height:1.3;}

  /* ---------- CTA / Register ---------- */
  .cta-band{
    background:var(--ink); color:var(--white); border-radius:12px;
    padding:56px 48px; display:grid; grid-template-columns:1.3fr 0.7fr; gap:40px; align-items:center;
  }
  .cta-band h2{color:var(--white); font-size:clamp(26px,3vw,34px);}
  .cta-band p{color:#C7CEE0; margin-top:10px;}
  .cta-band .btn-primary{background:var(--brass); color:var(--ink);}
  .cta-form-label{font-size:13px; color:#A9B2CC; margin-bottom:6px;}
  .cta-detail{border-bottom:1px solid rgba(255,255,255,0.15); padding:14px 0;}
  .cta-detail:first-child{border-top:1px solid rgba(255,255,255,0.15);}
  .cta-detail .k{font-size:12.5px; color:#A9B2CC;}
  .cta-detail .v{font-family:'Fraunces',serif; font-size:16px; margin-top:2px;}

  /* ---------- Footer ---------- */
  footer{padding:56px 0 40px; border-top:1px solid var(--line);}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px;}
  footer h5{font-size:13px; color:var(--ink); margin:0 0 14px 0; font-weight:700;}
  footer ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px;}
  footer a{text-decoration:none; color:var(--ink-soft); font-size:14.5px;}
  footer a:hover{color:var(--ink);}
  .footer-bottom{
    margin-top:48px; padding-top:24px; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
    font-size:13px; color:var(--ink-soft);
  }

  /* ---------- Responsive ---------- */
  @media(max-width:920px){
    nav.links{display:none;}
    .hero-grid, .mission-grid, .history-layout{grid-template-columns:1fr;}
    .team-grid{grid-template-columns:repeat(2,1fr);}
    .values-grid{grid-template-columns:repeat(2,1fr);}
    .logistics-grid{grid-template-columns:repeat(2,1fr);}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .gallery-grid .photo-slot:nth-child(1){grid-column:span 2; grid-row:span 1;}
    .cta-band{grid-template-columns:1fr; padding:40px 26px;}
    .footer-grid{grid-template-columns:1fr 1fr;}
  }
  @media(max-width:560px){
    .wrap{padding:0 20px;}
    .navbar{padding:16px 20px;}
    section{padding:56px 0;}
    .team-grid{grid-template-columns:1fr;}
    .values-grid{grid-template-columns:1fr;}
    .logistics-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;}
  }

/* Production additions */
section[id] { scroll-margin-top: 100px; }
.navbar { flex-wrap: wrap; gap: 16px; }
nav.links { gap: 16px; flex-wrap: wrap; }
.hero-panel { background: var(--ink); color: var(--paper); padding: 44px 32px; border-radius: 8px; }
.hero-panel p { font-family: 'Fraunces', serif; font-size: clamp(32px,4vw,48px); line-height: 1.3; margin: 32px 0; }
.hero-panel .kicker { font-size: 12px; letter-spacing: .04em; }
.skip-link { position: absolute; left: 16px; top: -80px; z-index: 100; background: var(--white); padding: 12px; }
.skip-link:focus { top: 10px; }
:focus-visible { outline: 3px solid var(--brass); outline-offset: 4px; }
#contact-form { margin-top: 24px; }
#contact-form label { display: block; margin-top: 16px; font-size: 14px; }
#contact-form input:not([type=checkbox]), #contact-form textarea { display:block; width:100%; padding:12px; border:1px solid var(--line); border-radius:3px; background:var(--white); color:var(--ink); font:inherit; }
#contact-form textarea { resize: vertical; }
#contact-form .checkbox-label { display: flex; gap: 10px; align-items: baseline; }
#contact-form .privacy-note, #form-status { font-size: 13px; margin-top: 16px; }
#contact-form button { border: 0; cursor: pointer; margin-top: 16px; font-family: inherit; }
#contact-form button:disabled { opacity: .6; cursor: not-allowed; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media(max-width:560px) { .brand-name small { max-width: 220px; } .nav-cta { font-size: 13px; } .hero { padding-top: 40px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
