@font-face{font-family:"Young Serif";src:url(/assets/fonts/YoungSerif-sub.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Work Sans";src:url(/assets/fonts/WorkSans-sub.woff2) format("woff2");font-weight:400 600;font-display:swap}
/* Metric-matched fallbacks so the swap does not shift layout */
@font-face{font-family:"Work Sans Fallback";src:local("Arial"),local("Liberation Sans"),local("Helvetica");size-adjust:111%;ascent-override:84%;descent-override:22%;line-gap-override:0%}
@font-face{font-family:"Young Serif Fallback";src:local("Georgia"),local("DejaVu Serif"),local("Times New Roman");size-adjust:105%;ascent-override:99%;descent-override:35%;line-gap-override:0%}
:root{--green:#2E4A3B;--green-d:#233a2e;--gold:#D9A441;--gold-t:#E8BF6A;--whey:#F4EFE4;--sky:#8FB8DE;--char:#2B2B2B;--muted:#4f5a53}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Work Sans","Work Sans Fallback",system-ui,sans-serif;font-size:1rem;line-height:1.6;color:var(--char);background:var(--whey);min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
h1,h2{font-family:"Young Serif","Young Serif Fallback",Georgia,serif;font-weight:400;color:var(--green);line-height:1.12;margin:0}
p{margin:0}
a{color:var(--green)}
:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.wrap{width:min(1080px,100% - 2.5rem);margin-inline:auto}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:9}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.btn{display:inline-block;background:var(--green);color:var(--whey);text-decoration:none;font:inherit;font-weight:600;font-size:.95rem;padding:.7rem 1.3rem;border-radius:999px;border:0;cursor:pointer;white-space:nowrap;transition:background .15s}
.btn:hover{background:var(--green-d)}
.btn[disabled]{opacity:.7;cursor:wait}

/* Top bar */
.topbar{border-bottom:1px solid #e3dccb;background:var(--whey)}
.bar{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;font-family:"Young Serif","Young Serif Fallback",Georgia,serif;font-size:1.15rem;color:var(--green)}
.brand img{width:36px;height:36px}
.bar-link{font-weight:600;text-decoration:none;padding:.45rem 1rem;border:1.5px solid var(--green);border-radius:999px;font-size:.92rem}
.bar-link:hover{background:var(--green);color:var(--whey)}

/* Hero */
.hero{padding:clamp(1.5rem,4vw,2.75rem) 0 clamp(1.25rem,3vw,2rem)}
.hero-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.kicker{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--muted);margin-bottom:.9rem}
.kicker::before{content:"";display:inline-block;width:1.5rem;height:2px;background:var(--gold);vertical-align:middle;margin-right:.6rem}
.hero h1{font-size:clamp(2rem,3.8vw,3.1rem);text-wrap:balance}
.hero h1 span{display:block;color:#8a5f12}
.lede{margin-top:1rem;max-width:34rem;color:var(--muted);font-size:1.05rem}
.hero-art{display:grid;place-items:center}
.hero-art img{width:min(100%,290px);height:auto}

/* Sign-up */
.signup{margin-top:1.5rem;max-width:30rem}
.signup-row{display:flex;gap:.5rem;background:#fff;border:1.5px solid #ddd5c3;border-radius:999px;padding:.3rem}
.signup-row:focus-within{border-color:var(--green)}
.signup input{flex:1;min-width:0;font:inherit;font-size:.95rem;border:0;background:transparent;padding:.55rem .9rem;color:var(--char);border-radius:999px}
.signup input:focus-visible{outline-offset:0}
.signup [aria-invalid=true]{box-shadow:inset 0 0 0 2px #a3361c}
.signup .ts-slot:not(:empty){margin-top:.6rem}
.privacy{font-size:.85rem;color:var(--muted)}
.signup .form-status{margin-top:.4rem;font-size:.92rem;font-weight:600}.signup .form-status:empty{margin:0}
.privacy{margin-top:.4rem}
.form-status.ok{color:var(--green)}.form-status.err{color:#a3361c}

/* About */
.about{padding:0 0 1rem}
.about-row{display:flex;align-items:baseline;gap:1rem 1.5rem;padding:1rem 1.25rem;background:#fff;border:1px solid #e3dccb;border-radius:14px}
.about h2{font-size:1.1rem;white-space:nowrap}
.about p{font-size:.95rem;color:var(--muted)}
.about-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;flex:none;align-self:center}
/* Facts */
.facts{padding:0 0 clamp(1.75rem,4vw,2.5rem)}
.fact-list{list-style:none;margin:0;padding:.5rem 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.fact-list li{font-size:.92rem;color:var(--muted);line-height:1.5}
.fact-list strong{display:block;font-family:"Young Serif","Young Serif Fallback",Georgia,serif;font-weight:400;font-size:1.05rem;color:var(--green);margin-bottom:.15rem}

/* Footer */
footer{background:var(--green);color:#dfe6df;font-size:.88rem}
.foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 0}
footer a{color:var(--gold-t)}
footer :focus-visible{outline-color:var(--gold-t)}

/* Contact modal (native dialog; falls back to an inline panel via :target without JS) */
.modal{width:min(560px,100% - 2rem);max-height:calc(100vh - 2rem);overflow:auto;border:0;border-radius:18px;padding:1.5rem;background:var(--whey);color:var(--char);box-shadow:0 30px 60px -20px rgba(0,0,0,.45)}
.modal::backdrop{background:rgba(35,58,46,.6)}
.modal:target:not([open]){display:block;position:static;margin:2rem auto}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.modal h2{font-size:1.5rem}
.modal-close{font:inherit;font-size:1.6rem;line-height:1;width:2.25rem;height:2.25rem;border-radius:50%;border:0;background:transparent;color:var(--green);cursor:pointer}
.modal-close:hover{background:#e7e0cf}
.modal-intro{margin-top:.3rem;color:var(--muted);font-size:.95rem}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem;margin-top:1rem}
.contact-form .field{display:flex;flex-direction:column;gap:.3rem}
.contact-form .full{grid-column:1/-1}
.contact-form label{font-weight:600;font-size:.9rem;color:var(--green)}
.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{font:inherit;font-size:.95rem;color:var(--char);background:#fff;border:1.5px solid #ddd5c3;border-radius:10px;padding:.55rem .8rem;width:100%}
.contact-form textarea{resize:vertical;min-height:6rem}
.contact-form [aria-invalid=true]{border-color:#a3361c}
.contact-form .check{flex-direction:row;align-items:center;gap:.6rem}
.contact-form .check input{width:1.15rem;height:1.15rem;accent-color:var(--green);margin:0}
.contact-form .check label{font-weight:400;color:var(--char)}
.contact-form .actions{align-items:flex-start}
.contact-form .form-status{font-size:.92rem;font-weight:600}
.contact-form .ts-slot:empty{display:none}
.small{margin-top:1rem;font-size:.88rem;color:var(--muted)}

/* 404 / thanks / subscribed */
.notfound{min-height:100vh;display:grid;place-items:center;text-align:center;background:var(--whey);padding:2rem}
.notfound img{width:110px;height:auto;margin-bottom:1.25rem}
.notfound h1{font-size:clamp(1.8rem,4vw,2.6rem)}
.notfound p{margin-top:.8rem;color:var(--muted)}
.notfound .btn{margin-top:1.5rem}

@media (max-width:820px){
  .hero-grid{grid-template-columns:1fr}
  .hero-art{order:-1}
  .hero-art img{width:150px}
  .fact-list{grid-template-columns:1fr 1fr}
  .about-row{flex-direction:column;gap:.35rem}
}
@media (max-width:480px){
  .contact-form{grid-template-columns:1fr}
  .signup-row{flex-direction:column;border-radius:14px}
  .signup .btn{width:100%}
  .fact-list{gap:1rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.signup input::placeholder{color:#5f6862;opacity:1}
