  :root{
    --cream:#FAF6EE;
    --cream-2:#F4EEE0;
    --ink:#241F1A;
    --ink-soft:#6B6155;
    --line: rgba(36,31,26,0.12);
    --line-soft: rgba(36,31,26,0.07);

    --green:#2B3A1F;
    --purple:#6B5A93;
    --purple-dark:#544477;
    --purple-tint:#EDE6F5;
    --purple-tint-2:#F3EAF5;
    --tan:#C6924F;
    --tan-dark:#A97539;
    --tan-tint:#F1E6D3;
    --rose:#A85D75;
    --rose-tint:#F3E4E6;
    --sage:#5F7A52;
    --sage-tint:#E3EBDD;

    --footer:#241E17;

    --radius: 20px;
    --radius-sm: 12px;
    --shadow: 0 1px 2px rgba(36,31,26,0.05), 0 14px 30px -20px rgba(36,31,26,0.35);
    --serif: "Playfair Display", Georgia, serif;
    --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  body{
    margin:0; font-family:var(--sans); background:var(--cream); color:var(--ink);
    line-height:1.6; -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;}
  p{margin:0;}
  section{position:relative;}

  .wrap{max-width:1220px; margin:0 auto; padding:0 32px;}
  .badge{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--sans); font-weight:700; font-size:12.5px; letter-spacing:0.09em; text-transform:uppercase;
    background:var(--purple-tint); color:var(--purple-dark);
    padding:9px 18px; border-radius:999px;
  }
  h1,h2,h3{font-family:var(--serif); font-weight:600; margin:0; color:var(--ink);}
  h1{font-size:clamp(2.4rem, 4.6vw, 3.6rem); line-height:1.08;}
  h2{font-size:clamp(1.8rem, 3vw, 2.3rem); line-height:1.15;}
  h3{font-size:1.2rem;}
  em{font-style:italic; color:var(--purple);}
  .lede{font-size:1.08rem; color:var(--ink-soft); max-width:60ch;}

  :focus-visible{outline:3px solid var(--purple); outline-offset:3px;}
  .skip-link{position:absolute; left:-999px; background:var(--ink); color:var(--cream); padding:12px 18px; border-radius:8px; z-index:100; font-weight:700;}
  .skip-link:focus{left:16px; top:16px;}

  .btn{
    display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:0.97rem;
    padding:14px 26px; border-radius:999px; border:1.5px solid transparent; cursor:pointer;
    text-decoration:none; transition:transform .15s ease, background .2s ease, box-shadow .2s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-purple{background:var(--purple); color:#fff; box-shadow:0 10px 24px -12px rgba(107,90,147,0.6);}
  .btn-purple:hover{background:var(--purple-dark);}
  .btn-outline{background:transparent; color:var(--purple); border-color:var(--purple);}
  .btn-outline:hover{background:var(--purple-tint);}
  .btn-tan{background:var(--tan); color:#fff; box-shadow:0 10px 24px -12px rgba(198,146,79,0.6);}
  .btn-tan:hover{background:var(--tan-dark);}

  /* NAV */
  header.site{position:sticky; top:0; z-index:60; background:rgba(250,246,238,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line-soft);}
  .nav{display:flex; align-items:center; justify-content:space-between; padding:16px 0;}
  .logo{width:44px; height:44px; border-radius:12px; background:var(--green); display:grid; place-items:center; flex-shrink:0;}
  .logo svg{width:20px; height:20px;}
  .brand{display:flex; align-items:center; gap:12px; text-decoration:none; font-family:var(--serif); font-weight:600; font-size:1.05rem; color:var(--ink);}
  .brand span{letter-spacing:0.02em;}
  .nav-links{display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0;}
  .nav-links a{text-decoration:none; font-weight:600; font-size:0.95rem; color:var(--ink); opacity:0.82; transition:opacity .15s ease;}
  .nav-links a:hover{opacity:1;}
  .nav-links a.active{opacity:1; color:var(--purple);}
  .nav-toggle{display:none; background:none; border:none; cursor:pointer;}
  .nav-toggle span{display:block; width:22px; height:2px; background:var(--ink); margin:5px 0; border-radius:2px;}
  @media (max-width:940px){
    .nav-links{position:fixed; inset:70px 0 0 0; background:var(--cream); flex-direction:column; align-items:flex-start;
      padding:30px 32px; gap:22px; transform:translateX(100%); transition:transform .25s ease; border-top:1px solid var(--line-soft);}
    .nav-links.open{transform:translateX(0);}
    .nav-links a{font-size:1.1rem;}
    .nav-toggle{display:block;}
  }

  /* HERO */
  .hero{padding:64px 0 84px; background:linear-gradient(135deg,#F3EAF5 0%, #FBF5EC 55%, #F7F0E6 100%);}
  .hero-grid{display:grid; grid-template-columns:1fr 0.92fr; gap:56px; align-items:start;}
  .hero-copy h1{margin:20px 0 20px;}
  .hero-quote{
    margin:26px 0; padding-left:18px; border-left:3px solid var(--tan);
  }
  .hero-quote p{font-family:var(--serif); font-style:italic; font-size:1.15rem; color:var(--ink);}
  .hero-quote cite{display:block; margin-top:6px; font-style:normal; font-weight:700; font-size:0.85rem; color:var(--tan-dark);}
  .hero-actions{display:flex; gap:14px; margin-top:28px; flex-wrap:wrap;}

  .hero-visual{display:flex; flex-direction:column; gap:18px;}
  .hero-image{
    border-radius:24px; overflow:hidden; box-shadow:var(--shadow); background:var(--cream);
  }
  .hero-image .art{
    height:230px;
    background:
      radial-gradient(circle at 25% 30%, rgba(107,90,147,0.55), transparent 55%),
      radial-gradient(circle at 75% 70%, rgba(198,146,79,0.5), transparent 55%),
      linear-gradient(135deg, #6B5A93, #8b7ab3 45%, #C6924F 100%);
    position:relative;
  }
  .hero-image .art svg{position:absolute; inset:0; width:100%; height:100%; opacity:0.35;}
  .hero-image .caption{padding:20px 22px; background:#fff;}
  .hero-image .caption p{font-family:var(--serif); font-style:italic; font-size:1.02rem;}
  .hero-image .caption cite{display:block; margin-top:6px; font-style:normal; font-weight:700; font-size:0.83rem; color:var(--tan-dark);}
  .stat-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .stat-card{background:var(--purple-tint-2); border-radius:16px; padding:20px; text-align:center;}
  .stat-card.tan{background:var(--tan-tint);}
  .stat-card strong{display:block; font-family:var(--serif); font-size:1.9rem; color:var(--purple);}
  .stat-card.tan strong{color:var(--tan-dark);}
  .stat-card span{font-size:0.86rem; color:var(--ink-soft); font-weight:600;}

  @media (max-width:900px){
    .hero-grid{grid-template-columns:1fr;}
  }

  /* NAV CARDS */
  .navcards{padding:64px 0; background:var(--cream);}
  .navcards-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
  .navcard{background:var(--cream-2); border:1px solid var(--line-soft); border-radius:var(--radius); padding:26px 24px;}
  .navcard .ic{width:44px; height:44px; border-radius:12px; display:grid; place-items:center; margin-bottom:16px;}
  .navcard .ic svg{width:20px; height:20px;}
  .navcard h3{margin-bottom:6px; font-size:1.1rem;}
  .navcard p{color:var(--ink-soft); font-size:0.92rem; margin-bottom:14px;}
  .navcard a{font-weight:700; font-size:0.9rem; text-decoration:none; display:inline-flex; align-items:center; gap:6px;}
  @media (max-width:940px){ .navcards-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .navcards-grid{grid-template-columns:1fr;} }

  /* QUOTE BAND */
  .quoteband{padding:80px 0; text-align:center; background:linear-gradient(135deg,#7A6A9F,#6B5A93 60%, #8B7ABF); color:#fff;}
  .quoteband .heart{width:30px; height:30px; margin:0 auto 22px; opacity:0.85;}
  .quoteband blockquote{font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(1.3rem,2.6vw,1.9rem); max-width:780px; margin:0 auto 30px; line-height:1.45;}

  /* SECTION HEADERS (About / Sensory Box / Resources / Contact hero-style intros) */
  .page-head{padding:72px 0 56px; text-align:center; background:linear-gradient(160deg,#F3EAF5, #FAF6EE 70%);}
  .page-head .badge{margin-bottom:22px;}
  .page-head h1{margin-bottom:16px;}
  .page-head .lede{margin:0 auto;}

  /* ABOUT */
  .about-body{padding:76px 0;}
  .about-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center;}
  .about-art{
    border-radius:24px; height:340px; box-shadow:var(--shadow); position:relative; overflow:hidden;
    background:linear-gradient(150deg,#e9e2f2,#f3ece0);
  }
  .about-art svg{position:absolute; inset:0; width:100%; height:100%;}
  .about-grid h2{margin-bottom:18px;}
  .about-grid p + p{margin-top:16px;}
  .about-grid p{color:var(--ink-soft); font-size:1.02rem;}
  .about-grid strong{color:var(--ink);}
  @media (max-width:900px){ .about-grid{grid-template-columns:1fr; gap:36px;} .about-art{height:260px;} }

  .hope-band{padding:80px 0; background:linear-gradient(160deg,#F3EAF5,#F7F1EC); text-align:center;}
  .hope-band .heart{width:32px; height:32px; margin:0 auto 20px; color:var(--purple);}
  .hope-band h2{margin-bottom:26px;}
  .hope-inner{max-width:760px; margin:0 auto; text-align:left;}
  .hope-inner p{color:var(--ink-soft); font-size:1.02rem; margin-bottom:20px;}
  .hope-quote{
    background:#fff; border-left:3px solid var(--tan); border-radius:0 12px 12px 0;
    padding:18px 22px; margin:26px 0;
  }
  .hope-quote p{font-family:var(--serif); font-style:italic; font-size:1.15rem; color:var(--ink); margin:0;}
  .hope-quote cite{display:block; margin-top:8px; font-style:normal; font-weight:700; font-size:0.85rem; color:var(--tan-dark);}

  /* SENSORY BOX */
  .inside-body{padding:76px 0;}
  .inside-grid{display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; margin-bottom:70px;}
  .inside-art{border-radius:24px; height:480px; box-shadow:var(--shadow); position:relative; overflow:hidden; background:linear-gradient(150deg,#dfe6d5,#f1e6d3);}
  .inside-art svg{position:absolute; inset:0; width:100%; height:100%;}
  .inside-art img{width:100%; height:100%; object-fit:cover; object-position:center top; display:block;}
  .inside-grid h2{margin-bottom:18px;}
  .inside-grid p{color:var(--ink-soft); font-size:1.02rem; margin-bottom:16px;}
  .inside-grid .fine{font-size:0.85rem; opacity:0.7; margin-top:4px;}
  @media (max-width:900px){ .inside-grid{grid-template-columns:1fr;} .inside-art{height:420px;} }

  .items-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .item-card{background:var(--cream-2); border:1px solid var(--line-soft); border-radius:var(--radius); padding:26px 24px;}
  .item-card .emoji{font-size:1.8rem; display:block; margin-bottom:14px;}
  .item-card h3{margin-bottom:8px; font-size:1.08rem;}
  .item-card p{color:var(--ink-soft); font-size:0.92rem;}
  @media (max-width:880px){ .items-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .items-grid{grid-template-columns:1fr;} }

  /* APPLY FORM */
  .apply-shell{margin-top:76px; border-radius:26px; overflow:hidden; box-shadow:var(--shadow); background:#fff;}
  .apply-head{background:linear-gradient(120deg,var(--purple),#8B7ABF); color:#fff; padding:44px 46px;}
  .apply-head h2{color:#fff; margin-bottom:12px;}
  .apply-head p{color:rgba(255,255,255,0.88); max-width:60ch;}
  .apply-form{padding:44px 46px;}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px;}
  .field{display:flex; flex-direction:column; gap:7px;}
  .field.full{grid-column:1 / -1;}
  .field label{font-size:0.86rem; font-weight:700; color:var(--ink);}
  .field label .req{color:var(--tan-dark);}
  .field input, .field select, .field textarea{
    font-family:var(--sans); font-size:0.97rem; padding:13px 15px; border-radius:11px;
    border:1.5px solid var(--line); background:var(--cream-2); color:var(--ink);
  }
  .field textarea{resize:vertical; min-height:88px;}
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--purple); background:#fff;}
  .section-divider{margin:36px 0 22px; padding-top:22px; border-top:1px solid var(--line-soft);}
  .section-divider h3{font-size:1.3rem;}
  .form-note{
    background:var(--tan-tint); border-radius:14px; padding:18px 20px; margin:26px 0;
    font-size:0.92rem; color:#6a4c22;
  }
  .form-note strong{color:#5a3f1a;}
  .submit-row{margin-top:8px;}
  .btn-submit{width:100%; justify-content:center; padding:16px; font-size:1rem;}
  #form-status{margin-top:14px; font-size:0.9rem; font-weight:700; display:none;}
  #form-status.show{display:block;}

  @media (max-width:880px){
    .apply-head, .apply-form{padding:32px 26px;}
    .form-row{grid-template-columns:1fr;}
  }

  /* RESOURCES */
  .resources-body{padding:76px 0;}
  .filters{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:44px;}
  .filter-pill{
    font-family:var(--sans); font-weight:700; font-size:0.88rem; padding:10px 20px; border-radius:999px;
    border:1.5px solid var(--line); background:transparent; color:var(--ink-soft); cursor:pointer; transition:all .15s ease;
  }
  .filter-pill.active, .filter-pill:hover{background:var(--purple); color:#fff; border-color:var(--purple);}

  .resource-list{display:flex; flex-direction:column; gap:14px; max-width:900px; margin:0 auto;}
  .resource-item{
    background:var(--cream-2); border:1px solid var(--line-soft); border-radius:16px; padding:20px 24px;
    cursor:pointer;
  }
  .resource-item .row{display:flex; align-items:center; justify-content:space-between; gap:16px;}
  .resource-item .left{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
  .r-tag{font-size:11.5px; font-weight:700; letter-spacing:0.04em; text-transform:none; padding:6px 13px; border-radius:999px; white-space:nowrap;}
  .r-tag.financial{background:var(--rose-tint); color:var(--rose);}
  .r-tag.grants{background:var(--tan-tint); color:var(--tan-dark);}
  .r-tag.support{background:var(--sage-tint); color:var(--sage);}
  .r-tag.therapy{background:var(--tan-tint); color:var(--tan-dark);}
  .r-tag.education{background:var(--purple-tint); color:var(--purple-dark);}
  .resource-item h3{font-size:1.05rem; font-weight:700; font-family:var(--sans);}
  .chev{transition:transform .2s ease; color:var(--ink-soft); flex-shrink:0;}
  .resource-item.open .chev{transform:rotate(180deg);}
  .r-detail{max-height:0; overflow:hidden; transition:max-height .25s ease;}
  .resource-item.open .r-detail{max-height:120px; margin-top:14px;}
  .r-detail p{font-size:0.9rem; color:var(--ink-soft);}

  .resources-callout{
    margin:50px auto 0; max-width:900px; background:var(--purple-tint-2); border-radius:16px;
    padding:24px 28px; text-align:center; font-size:0.98rem; color:var(--ink-soft);
  }
  .resources-callout a{color:var(--purple); font-weight:700; text-decoration:underline; text-underline-offset:3px;}

  /* CONTACT */
  .contact-body{padding:76px 0;}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:980px; margin:0 auto;}
  .contact-card{background:var(--cream-2); border:1px solid var(--line-soft); border-radius:var(--radius); padding:26px 26px; display:flex; gap:18px; align-items:flex-start;}
  .contact-card .ic{width:46px; height:46px; border-radius:12px; display:grid; place-items:center; flex-shrink:0; font-size:1.3rem;}
  .contact-card .label{font-size:11.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:4px;}
  .contact-card h3{font-size:1.08rem; margin-bottom:4px;}
  .contact-card a.val{font-weight:700; text-decoration:none;}
  .contact-card.full{grid-column:1/-1; flex-direction:column;}
  .subscribe-row{display:flex; gap:12px; margin-top:16px; flex-wrap:wrap;}
  .subscribe-row input{flex:1; min-width:220px; padding:13px 16px; border-radius:11px; border:1.5px solid var(--line); font-family:var(--sans); font-size:0.95rem; background:#fff;}
  .subscribe-row input:focus{border-color:var(--purple);}
  #sub-status{margin-top:10px; font-size:0.85rem; font-weight:700; display:none;}
  #sub-status.show{display:block;}

  @media (max-width:760px){ .contact-grid{grid-template-columns:1fr;} }

  /* FOOTER */
  footer.site{background:var(--footer); color:var(--cream); padding:56px 0 26px;}
  .footer-top{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom:36px; border-bottom:1px solid rgba(250,246,238,0.12);}
  .footer-brand{max-width:380px;}
  .footer-brand .brand{color:var(--cream);}
  .footer-brand p{color:rgba(250,246,238,0.62); font-size:0.92rem; margin-top:14px;}
  .footer-nav{display:flex; gap:26px; flex-wrap:wrap; align-self:flex-start; margin-top:6px;}
  .footer-nav a{text-decoration:none; font-size:0.92rem; color:rgba(250,246,238,0.75); font-weight:600;}
  .footer-nav a:hover{color:var(--cream);}
  .footer-quote{text-align:right; max-width:320px;}
  .footer-quote .heart{width:20px; height:20px; margin-left:auto; margin-bottom:12px; color:rgba(250,246,238,0.55);}
  .footer-quote p{font-family:var(--serif); font-style:italic; font-size:1.02rem; color:rgba(250,246,238,0.9);}
  .footer-quote cite{display:block; margin-top:8px; font-style:normal; font-size:0.82rem; color:rgba(250,246,238,0.55);}
  .footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:24px; flex-wrap:wrap; gap:10px;}
  .footer-bottom p{font-size:0.82rem; color:rgba(250,246,238,0.5);}

  @media (max-width:760px){
    .footer-top{flex-direction:column;}
    .footer-quote{text-align:left; max-width:none;}
    .footer-quote .heart{margin-left:0;}
  }

  /* QR CODES */
  .qr-strip{display:flex; gap:14px; margin-top:16px;}
  .qr-chip{
    background:#fff; border:1px solid var(--line-soft); border-radius:12px; padding:10px;
    display:flex; flex-direction:column; align-items:center; gap:6px; width:96px;
  }
  .qr-chip img{width:100%; height:auto; display:block; border-radius:3px;}
  .qr-chip span{font-size:10.5px; font-weight:700; color:var(--ink-soft); letter-spacing:0.03em;}
  .footer-qr .qr-chip{background:rgba(250,246,238,0.06); border-color:rgba(250,246,238,0.16);}
  .footer-qr .qr-chip span{color:rgba(250,246,238,0.65);}
  .contact-qr{margin-top:14px;}
  .contact-qr img{width:120px; height:120px; border-radius:8px; border:1px solid var(--line-soft); background:#fff; padding:8px;}

  .about-photo{border-radius:24px; overflow:hidden; box-shadow:var(--shadow); background:#fff;}
  .about-photo img{width:100%; height:340px; object-fit:cover; display:block;}
  .about-photo figcaption{padding:14px 18px; font-size:0.88rem; color:var(--ink-soft); font-weight:600; text-align:center; background:var(--cream-2);}
  @media (max-width:900px){ .about-photo img{height:260px;} }
