  :root{
    --wine:#561744;
    --wine-dark:#3b0f30;
    --sage:#527763;
    --sage-dark:#3f5e4c;
    --cream:#DBDBD3;
    --cream-light:#EFEFEA;
    --charcoal:#2E2E2C;
    --white:#FFFFFF;
    --radius:14px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--charcoal);
    font-family:'Lato', sans-serif;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.brand{
    font-family:'Quicksand', sans-serif;
    color:var(--wine);
    margin:0;
  }
  a{color:inherit;}
  img,svg{display:block;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- NAV ---------- */
  header.site-nav{
    position:sticky; top:0; z-index:50;
    background:rgba(219,219,211,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(46,46,44,0.08);
  }
  .nav-inner{
    max-width:1180px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 24px;
  }
  .brand{
    font-weight:700; font-size:1.15rem; letter-spacing:0.02em;
    text-decoration:none; display:flex; align-items:center; gap:10px;
  }
  .brand-mark{
    width:30px; height:30px; border-radius:50%;
    background:var(--wine);
    display:flex; align-items:center; justify-content:center;
  }
  .brand-mark svg{width:16px;height:16px;}
  nav.links{display:flex; gap:28px; list-style:none; margin:0; padding:0;}
  nav.links a{
    font-size:0.92rem; font-weight:600; text-decoration:none;
    color:var(--charcoal); opacity:0.75; letter-spacing:0.01em;
    position:relative; padding-bottom:4px;
  }
  nav.links a:hover{opacity:1;}
  nav.links a.active{opacity:1; color:var(--wine);}
  nav.links a.active::after{
    content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--sage);
  }
  .menu-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
  .menu-toggle span{display:block; width:22px; height:2px; background:var(--wine); margin:5px 0; border-radius:2px;}

  @media (max-width:820px){
    nav.links{
      position:absolute; top:100%; left:0; right:0;
      flex-direction:column; background:var(--cream-light);
      padding:12px 24px 20px; gap:4px;
      border-bottom:1px solid rgba(46,46,44,0.08);
      display:none;
    }
    nav.links a{padding:10px 0; opacity:0.85;}
    nav.links.open{display:flex;}
    .menu-toggle{display:block;}
  }

  /* ---------- VINE SIGNATURE ---------- */
  .vine-wrap{position:relative;}
  .vine-line{
    position:absolute; left:38px; top:0; bottom:0; width:6px;
    pointer-events:none;
  }
  .vine-line svg{width:100%; height:100%;}
  @media (max-width:820px){ .vine-line{display:none;} }

  main{max-width:1180px; margin:0 auto; padding:0 24px;}
  section{position:relative; padding:88px 0 88px 84px;}
  @media (max-width:820px){ section{padding:56px 0;} }

  .eyebrow{
    color:var(--sage-dark); font-weight:700; letter-spacing:0.14em;
    text-transform:uppercase; font-size:0.78rem; margin-bottom:14px; display:block;
  }

  /* ---------- HERO ---------- */
  .hero{padding-top:64px;}
  .hero h1{font-size:clamp(2.4rem,5vw,3.6rem); font-weight:700; line-height:1.08;}
  .hero p.lede{
    max-width:620px; font-size:1.15rem; color:var(--charcoal); opacity:0.85;
    margin-top:20px;
  }
  .hero .verse-tag{
    margin-top:28px; font-family:'Lato', sans-serif; font-style:italic;
    color:var(--wine); font-size:0.98rem; opacity:0.9;
  }

  /* ---------- STATUS / NOTIFY ---------- */
  .status-card{
    background:var(--white); border-radius:var(--radius);
    padding:40px clamp(24px,5vw,52px);
    border:1px solid rgba(86,23,68,0.08);
    box-shadow:0 18px 40px -28px rgba(46,46,44,0.35);
  }
  .status-card h2{font-size:1.6rem; font-weight:600;}
  .status-card p{max-width:640px; margin-top:14px; opacity:0.85;}
  .status-pill{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--cream-light); color:var(--sage-dark);
    font-weight:700; font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase;
    padding:6px 14px; border-radius:999px; margin-bottom:18px;
  }
  .status-pill::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--sage); display:inline-block;}

  form.notify{
    display:flex; gap:10px; margin-top:26px; max-width:460px; flex-wrap:wrap;
  }
  form.notify input[type="email"]{
    flex:1 1 220px; padding:13px 16px; border-radius:10px;
    border:1px solid rgba(46,46,44,0.18); font-family:'Lato',sans-serif;
    font-size:0.95rem; background:var(--cream-light); color:var(--charcoal);
  }
  form.notify input[type="email"]:focus{
    outline:3px solid var(--sage); outline-offset:1px; border-color:var(--sage);
  }
  form.notify button{
    background:var(--wine); color:var(--white); border:none;
    padding:13px 22px; border-radius:10px; font-family:'Lato',sans-serif;
    font-weight:700; font-size:0.95rem; cursor:pointer;
    transition:background 0.15s ease;
  }
  form.notify button:hover{background:var(--wine-dark);}
  form.notify button:focus-visible, .menu-toggle:focus-visible, nav.links a:focus-visible{
    outline:3px solid var(--sage); outline-offset:2px;
  }
  .notify-note{font-size:0.82rem; opacity:0.65; margin-top:10px;}
  .thanks-msg{
    display:none; margin-top:18px; color:var(--sage-dark); font-weight:700;
  }
  .thanks-msg.show{display:block;}

  /* ---------- SUPPORTS GRID ---------- */
  h2.section-title{font-size:clamp(1.7rem,3vw,2.2rem); font-weight:600; max-width:640px;}
  p.section-sub{max-width:600px; opacity:0.8; margin-top:12px;}

  .supports-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:40px;
  }
  @media (max-width:700px){ .supports-grid{grid-template-columns:1fr;} }
  .supports-card{
    background:var(--white); border-radius:var(--radius);
    padding:28px 26px; border:1px solid rgba(86,23,68,0.07);
  }
  .supports-card .icon{
    width:42px; height:42px; border-radius:10px; background:var(--cream-light);
    display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  }
  .supports-card .icon svg{width:22px; height:22px; stroke:var(--sage-dark);}
  .supports-card h3{font-size:1.08rem; font-weight:600; color:var(--wine);}
  .supports-card p{margin-top:8px; font-size:0.95rem; opacity:0.82;}

  /* ---------- WAYS TO GIVE ---------- */
  .ways-list{display:flex; flex-direction:column; gap:16px; margin-top:36px; max-width:720px;}
  .way-row{
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    background:var(--white); border-radius:12px; padding:20px 24px;
    border:1px solid rgba(86,23,68,0.07);
  }
  .way-row .way-left{display:flex; align-items:center; gap:16px;}
  .way-row .icon{
    width:38px; height:38px; border-radius:50%; background:var(--cream-light);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .way-row .icon svg{width:18px; height:18px; stroke:var(--wine);}
  .way-row h4{margin:0; font-family:'Quicksand',sans-serif; font-size:1rem; color:var(--wine); font-weight:600;}
  .way-row p{margin:2px 0 0; font-size:0.88rem; opacity:0.7;}
  .badge{
    font-size:0.72rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase;
    padding:5px 11px; border-radius:999px; white-space:nowrap;
  }
  .badge.soon{background:var(--cream-light); color:var(--sage-dark);}

  /* ---------- VERSE ---------- */
  .verse-block{
    padding:70px 0 70px 84px; text-align:left; max-width:760px;
  }
  .verse-block blockquote{
    margin:0; font-size:clamp(1.3rem,2.6vw,1.7rem); font-style:italic;
    color:var(--wine); line-height:1.5; font-weight:500;
  }
  .verse-block cite{display:block; margin-top:16px; font-style:normal; font-weight:700; color:var(--sage-dark); font-size:0.9rem;}

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--wine); color:var(--cream-light); margin-top:20px;
  }
  .footer-inner{
    max-width:1180px; margin:0 auto; padding:56px 24px 34px;
    display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:36px;
  }
  @media (max-width:700px){ .footer-inner{grid-template-columns:1fr; gap:28px;} }
  footer h5{
    font-family:'Quicksand',sans-serif; color:var(--white); font-size:0.95rem;
    letter-spacing:0.03em; margin-bottom:14px;
  }
  footer p, footer a{font-size:0.9rem; opacity:0.82; text-decoration:none; line-height:1.9;}
  footer a:hover{opacity:1; text-decoration:underline;}
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,0.15);
    text-align:center; padding:20px 24px; font-size:0.8rem; opacity:0.6;
  }

  /* reveal-on-scroll */
  .reveal{opacity:0; transform:translateY(14px); transition:opacity 0.6s ease, transform 0.6s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}