:root{
    --paper:#FBF7EE; --paper-2:#F3ECDD; --card:#FFFFFF; --ink:#1A1623; --muted:#544E60; --hair:#D9CFBE;
    --fixed-ink:#1A1623; /* a dark surface that never flips — for tiles/badges that hold light content in both themes */
    --ease:cubic-bezier(.2,.85,.25,1); /* shared spring easing (matches PrismaOS) */
    --cobalt:#2240E6; --tomato:#E23A1E; --lime:#C6F24E; --violet:#6D28D9; --pink:#E0237E; --sun:#FFC53D; --teal:#0E978C;
    /* AA-safe variants for white text on color (≥4.5:1 on #fff) — brand hues, slightly deepened */
    --pink-aa:#C21368; --teal-aa:#0B7A71; --tomato-aa:#CE3018;
    /* Primary UI accent — defaults to the brand cobalt; a user accent choice
       overrides --accent inline (set by ThemeScript). All options clear AA on white. */
    --accent:#2240E6;
    --disp:'Bricolage Grotesque',system-ui,sans-serif; --sans:'Hanken Grotesk',system-ui,sans-serif;
    --mono:'Space Mono',monospace; --hand:'Caveat',cursive;
    /* Foreground label hierarchy (Apple): primary → secondary → tertiary. --label-2
       tracks --muted so it flips with theme/contrast; --label-3 is overridden per theme. */
    --label:var(--ink); --label-2:var(--muted); --label-3:#6E6878;
    /* Type scale is rem-based so text honours the browser's font-size setting
       (Apple Dynamic Type): body ≈17px (1.0625rem); display headings use fluid clamps. */
  }
  *{box-sizing:border-box;margin:0;}
  button{color:inherit;}
  html{scroll-behavior:smooth;scroll-padding-top:84px;background:#1A1623;}
  body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;}
  main{flex:1 0 auto;}
  /* Headings must not inherit the 1.6 body line-height — that's what made cards
     and prose headings look stretched/oddly spaced. */
  h1,h2,h3,h4{line-height:1.15;}
  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}
  ::selection{background:var(--lime);}
  .wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
  .mono{font-family:var(--mono);font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;}
  :focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px;}
  .skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-weight:700;}
  .skip:focus{left:12px;}

  .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);font-weight:700;font-size:1rem;cursor:pointer;border:2px solid var(--ink);border-radius:10px;padding:12px 22px;transition:transform .16s var(--ease),box-shadow .16s var(--ease);}
  .btn-primary{background:var(--accent);color:#fff;box-shadow:3px 3px 0 var(--ink);}
  .btn-primary:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink);}
  .btn-secondary{background:var(--sun);color:var(--ink);box-shadow:3px 3px 0 var(--ink);}
  .btn-secondary:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink);}
  .btn-ghost{background:transparent;color:var(--ink);}
  .btn-ghost:hover{background:var(--ink);color:var(--paper);}
  /* pressed state: settle the sticker shadow for tactile feedback */
  .btn-primary:active,.btn-secondary:active{transform:translate(0,0);box-shadow:2px 2px 0 var(--ink);}
  .btn-ghost:active{transform:translate(0,1px);}

  /* Scroll-reveal: sections fade/rise as they enter view. Only active when motion
     is allowed; the class is added by JS, so no-JS / reduced-motion users always
     see content. Defined inside no-preference so the hidden state never sticks. */
  @media (prefers-reduced-motion:no-preference){
    .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);will-change:opacity,transform;}
    .reveal.in{opacity:1;transform:none;}
  }

  .topstripe{display:flex;height:5px;}
  .topstripe span{flex:1;}

  /* HEADER */
  header{position:sticky;top:0;z-index:60;background:rgba(251,247,238,0.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:2px solid var(--ink);will-change:transform;}
  /* Material adapts to accessibility settings (Apple): drop blur/translucency for high-contrast + reduced-transparency. */
  [data-contrast="high"] header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--paper)!important;}
  @media (prefers-reduced-transparency:reduce){ header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--paper)!important;} }
  .announce{display:block;background:var(--ink);color:var(--paper);text-align:center;font-size:0.84375rem;font-weight:600;line-height:1.4;padding:9px 16px;text-decoration:none;}
  a.announce:hover{text-decoration:underline;text-underline-offset:2px;}
  .nav{display:flex;align-items:center;gap:24px;height:68px;}
  .logo{display:flex;align-items:center;gap:10px;}
  .logo img{height:30px;}
  .navlinks{display:flex;gap:4px;margin-left:6px;}
  .navlinks a{font-weight:600;font-size:0.9375rem;padding:8px 13px;border-radius:8px;transition:background .15s var(--ease),box-shadow .15s var(--ease);}
  .navlinks a:hover{background:var(--paper-2);}
  .navlinks a[aria-current="page"]{background:var(--paper-2);box-shadow:inset 0 -2px 0 var(--accent);}
  .navcta{margin-left:auto;display:flex;align-items:center;gap:10px;}
  .os-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:0.75rem;border:1.5px solid var(--hair);background:var(--paper-2);padding:8px 12px;border-radius:8px;font-weight:700;transition:border-color .15s var(--ease);}
  .os-link:hover{border-color:var(--ink);}
  .navtoggle{display:none;background:var(--card);border:2px solid var(--ink);border-radius:9px;width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;}
  .navtoggle span,.navtoggle span::before,.navtoggle span::after{display:block;width:20px;height:2.5px;background:var(--ink);position:relative;}
  .navtoggle span::before{content:"";position:absolute;top:-6px;}
  .navtoggle span::after{content:"";position:absolute;top:6px;}

  /* HERO */
  .hero{padding:64px 0 26px;}
  .kicker{display:inline-block;font-family:var(--mono);font-size:0.75rem;letter-spacing:0.06em;color:var(--muted);background:var(--paper-2);border:1.5px solid var(--hair);padding:6px 12px;border-radius:8px;}
  .hero h1{font-family:var(--disp);font-weight:800;font-size:clamp(2.75rem,7vw,5.375rem);line-height:0.92;letter-spacing:-0.035em;margin-top:20px;}
  .ulw{position:relative;display:inline-block;color:var(--tomato);}
  .ulw svg{position:absolute;left:-2%;bottom:-0.18em;width:104%;height:0.34em;overflow:visible;}
  .hero .lede{font-size:1.1875rem;color:var(--muted);max-width:560px;margin-top:20px;}
  .hero .acts{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap;}
  .heroimgs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:40px;}
  .heroimgs .ph{aspect-ratio:1/1.04;border:2px solid var(--ink);border-radius:16px;overflow:hidden;box-shadow:3px 3px 0 var(--ink);}
  .heroimgs .ph img{width:100%;height:100%;object-fit:cover;}

  /* marquee */
  .marquee{background:var(--ink);color:var(--paper);overflow:hidden;padding:13px 0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);margin-top:46px;}
  .mtrack{display:flex;width:max-content;animation:bmar 55s linear infinite;}
  .marquee:hover .mtrack{animation-play-state:paused;}
  .mtrack span{font-family:var(--disp);font-weight:700;font-size:1.375rem;white-space:nowrap;padding:0 22px;display:inline-flex;align-items:center;gap:22px;}
  .dotc{width:10px;height:10px;border-radius:50%;}
  @keyframes bmar{to{transform:translateX(-50%);}}

  section{padding:80px 0;}
  .sec-h{margin-bottom:34px;}
  .sec-h .mono{color:var(--muted);display:block;margin-bottom:10px;}
  .sec-h h2{font-family:var(--disp);font-weight:800;font-size:clamp(1.875rem,4vw,2.875rem);line-height:1;letter-spacing:-0.025em;}

  .pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch;}
  .pcard{display:flex;flex-direction:column;background:var(--card);border:2px solid var(--ink);border-radius:18px;padding:24px;box-shadow:4px 4px 0 var(--ink);transition:transform .18s var(--ease),box-shadow .18s var(--ease);}
  .pcard:hover,.pcard:focus-visible{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink);}
  .pcard .pn{width:46px;height:46px;border:2px solid var(--ink);border-radius:12px;background:var(--acc);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;margin-bottom:16px;}
  .pcard h3{font-family:var(--disp);font-weight:700;font-size:1.375rem;letter-spacing:-0.01em;}
  .pcard .pgo{opacity:0;color:var(--acc);margin-left:3px;display:inline-block;transition:opacity .15s,transform .15s;}
  .pcard:hover .pgo,.pcard:focus-visible .pgo{opacity:1;transform:translateX(3px);}
  .pcard p{font-size:0.90625rem;color:var(--muted);margin-top:8px;line-height:1.5;}

  .events-sec{background:var(--paper-2);}
  .egrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .ecard{background:var(--card);border:2px solid var(--ink);border-radius:18px;overflow:hidden;box-shadow:4px 4px 0 var(--ink);display:flex;flex-direction:column;transition:transform .18s var(--ease),box-shadow .18s var(--ease);}
  .ecard:hover,.ecard:focus-visible{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink);}
  .ecard .pic{height:172px;border-bottom:2px solid var(--ink);overflow:hidden;position:relative;}
  .ecard .pic img{width:100%;height:100%;object-fit:cover;}
  .ecard .bd{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:0.625rem;letter-spacing:0.06em;text-transform:uppercase;color:#fff;padding:5px 10px;border-radius:999px;border:2px solid var(--ink);}
  .ecard .eb{padding:22px;}
  .ecard h3{font-family:var(--disp);font-weight:800;font-size:1.625rem;letter-spacing:-0.02em;}
  .ecard p{font-size:0.875rem;color:var(--muted);margin-top:8px;}

  .fs{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:center;background:var(--lime);border:2px solid var(--ink);border-radius:22px;padding:42px;box-shadow:4px 4px 0 var(--ink);}
  .fs .chip{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:700;background:var(--ink);color:var(--lime);padding:6px 11px;border-radius:999px;display:inline-block;}
  .fs h2{font-family:var(--disp);font-weight:800;font-size:clamp(1.875rem,4vw,2.625rem);letter-spacing:-0.02em;margin:14px 0 8px;}
  .fs .ph{border:2px solid var(--ink);border-radius:14px;overflow:hidden;height:180px;box-shadow:3px 3px 0 var(--ink);}
  .fs .ph img{width:100%;height:100%;object-fit:cover;}

  .manifesto{text-align:center;}
  .manifesto p.big{font-family:var(--disp);font-weight:700;font-size:clamp(1.625rem,3.6vw,2.625rem);line-height:1.18;letter-spacing:-0.02em;max-width:920px;margin:14px auto 0;}
  .manifesto .mk{background:var(--lime);padding:0 .08em;border-radius:5px;box-decoration-break:clone;-webkit-box-decoration-break:clone;}

  /* volunteer form */
  .vol{background:var(--ink);color:var(--paper);}
  .volgrid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;}
  .vol h2{font-family:var(--disp);font-weight:800;font-size:clamp(1.875rem,4vw,2.875rem);letter-spacing:-0.025em;color:#fff;}
  .vol p.sub{color:#C9C3D6;margin-top:14px;max-width:420px;}
  .vol .hand{font-family:var(--hand);font-weight:700;font-size:1.5rem;color:var(--sun);margin-top:18px;display:block;}
  form .field{margin-bottom:16px;}
  form label{display:block;font-weight:600;font-size:0.875rem;margin-bottom:6px;color:#EDE9F4;}
  form input,form select,form textarea{width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:10px;padding:12px 14px;}
  form input:focus-visible,form select:focus-visible,form textarea:focus-visible{outline:3px solid var(--sun);outline-offset:1px;}
  form .hint{font-size:0.78125rem;color:#A49DB4;margin-top:5px;}
  .formok{background:var(--lime);color:var(--ink);border:2px solid #000;border-radius:12px;padding:18px 20px;font-weight:600;display:none;line-height:1.45;}
  .formok.show{display:block;}
  form textarea{resize:vertical;min-height:64px;line-height:1.5;}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden;}
  /* Visually-hidden but available to screen readers (labels, context). */
  .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  .req{color:var(--sun);}
  .opt{color:#A49DB4;font-weight:400;font-size:0.75rem;}
  fieldset.checks{border:none;padding:0;margin-bottom:16px;min-width:0;}
  fieldset.checks legend{font-weight:600;font-size:0.875rem;margin-bottom:8px;color:#EDE9F4;padding:0;}
  .checks label{display:flex;align-items:center;gap:9px;font-weight:500;font-size:0.875rem;color:#EDE9F4;margin-bottom:8px;}
  .checks input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--lime);}
  .consent{display:flex;align-items:flex-start;gap:10px;font-size:0.84375rem;color:#EDE9F4;margin:2px 0 14px;font-weight:500;}
  .consent input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--lime);}
  form input[type=file]{padding:9px 11px;background:var(--paper-2);color:var(--ink);font-size:0.8125rem;}
  .formerr{color:#FFC2B5;font-weight:600;font-size:0.84375rem;min-height:18px;margin-bottom:8px;}
  .formerr a{color:#fff;text-decoration:underline;}

  /* safety quick-exit (queer/DV best practice) */
  .quick-exit{position:fixed;right:16px;bottom:16px;z-index:300;display:inline-flex;align-items:center;gap:7px;background:var(--tomato-aa);color:#fff;border:2px solid var(--ink);border-radius:999px;padding:9px 15px;font-family:var(--sans);font-weight:700;font-size:0.875rem;cursor:pointer;box-shadow:3px 3px 0 var(--ink);transition:transform .12s,box-shadow .12s;}
  .quick-exit:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink);}
  .quick-exit:active{transform:translate(0,0);box-shadow:2px 2px 0 var(--ink);}
  .quick-exit .qx{font-size:0.9375rem;line-height:1;}
  @media (max-width:560px){ .quick-exit{padding:8px 13px;font-size:0.8125rem;} }

  footer{background:var(--ink);color:#CFCAD9;padding:0 0 36px;}
  .footprism{height:5px;display:flex;}.footprism span{flex:1;}
  .foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr 1fr;gap:28px;padding-top:42px;}
  footer .fmark{height:38px;margin-bottom:14px;}
  footer .ftag{font-size:0.875rem;color:#B7B2C2;max-width:240px;}
  footer .fhand{font-family:var(--hand);font-weight:700;font-size:1.25rem;color:var(--sun);margin-top:16px;display:block;}
  .fcol h3{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.12em;text-transform:uppercase;color:#8C86A0;margin-bottom:13px;}
  .fcol a{display:block;font-size:0.875rem;color:#CFCAD9;margin-bottom:9px;}
  .fcol a:hover{color:#fff;text-decoration:underline;}
  .foot-bot{display:flex;justify-content:space-between;gap:14px;margin-top:30px;padding-top:20px;border-top:1px solid #312B3D;font-size:0.78125rem;color:#8C86A0;flex-wrap:wrap;}
  .fsocial{display:flex;gap:10px;flex-wrap:wrap;}
  .fsocial a{width:38px;height:38px;border:1.5px solid #3A3550;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#CFCAD9;transition:border-color .15s,color .15s,transform .12s;}
  .fsocial a:hover{border-color:#fff;color:#fff;transform:translateY(-2px);}
  .fsocial svg{width:18px;height:18px;}

  @media (max-width:1100px){
    .nav{gap:16px;}
    section{padding:64px 0;}
    .hero{padding:52px 0 22px;}
  }
  @media (max-width:900px){
    .navlinks{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);border-bottom:2px solid var(--ink);padding:8px;}
    .navlinks.open{display:flex;}
    .navlinks a{padding:13px;border-radius:9px;}
    .navlinks a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--cobalt);}
    .navtoggle{display:flex;}
    .os-link{display:none;}
    section{padding:56px 0;}
    .pgrid{grid-template-columns:1fr 1fr;}
    .egrid{grid-template-columns:1fr;}
    .fs{grid-template-columns:1fr;padding:32px;}
    .volgrid{grid-template-columns:1fr;gap:26px;}
    .heroimgs{grid-template-columns:1fr 1fr;}
    .foot-top{grid-template-columns:1fr 1fr;gap:26px;}
  }
  @media (max-width:560px){
    section{padding:44px 0;}
    .hero{padding:40px 0 18px;}
    .pgrid{grid-template-columns:1fr;}
    .heroimgs .ph:nth-child(3){display:none;}
    .fs{padding:26px;}
    .amts{grid-template-columns:1fr 1fr 1fr;}
    .foot-top{grid-template-columns:1fr 1fr;gap:22px 18px;}
    .foot-top>div:first-child{grid-column:1/-1;}
    .foot-bot{flex-direction:column;gap:8px;}
    .field-row{grid-template-columns:1fr;gap:0;}
  }
  @media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}html{scroll-behavior:auto;}}

  /* ---------- interior pages (about / accessibility / events / donate) ---------- */
  .pagehead{padding:56px 0 0;}
  .breadcrumb{font-family:var(--mono);font-size:0.75rem;letter-spacing:.06em;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
  .breadcrumb a:hover{color:var(--ink);text-decoration:underline;}
  .pagehead h1{font-family:var(--disp);font-weight:800;font-size:clamp(2.375rem,6vw,4.25rem);line-height:.95;letter-spacing:-0.03em;margin-top:16px;}
  .pagehead .lede{font-size:1.1875rem;color:var(--muted);max-width:620px;margin-top:18px;}
  .prose{max-width:760px;}
  .prose h2{font-family:var(--disp);font-weight:800;font-size:clamp(1.625rem,3.2vw,2.25rem);letter-spacing:-0.02em;margin:40px 0 12px;}
  .prose h3{font-family:var(--disp);font-weight:700;font-size:1.375rem;letter-spacing:-0.01em;margin:26px 0 8px;}
  .prose p{margin-top:12px;color:var(--ink);}
  .prose ul{margin:12px 0 0;padding-left:22px;}
  .prose li{margin:7px 0;}
  .prose a.inline{color:var(--cobalt);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
  /* legal pages (terms / privacy) — sticky section nav + tidy meta */
  .legal-grid{display:grid;grid-template-columns:1fr;gap:30px;align-items:start;}
  .legal-grid .prose{max-width:none;}
  .legal-grid .prose > h2:first-of-type{margin-top:26px;}
  .legal-meta{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:0.75rem;letter-spacing:.05em;color:var(--muted);background:var(--paper-2);border:1.5px solid var(--hair);padding:6px 13px;border-radius:999px;}
  .legal-meta i{width:7px;height:7px;border-radius:50%;background:var(--lime);border:1px solid var(--ink);flex:none;}
  .legal-toc-h{font-family:var(--mono);font-size:0.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
  .legal-toc nav{display:flex;flex-direction:column;border-left:2px solid var(--hair);}
  .legal-toc a{font-size:0.84375rem;color:var(--muted);padding:6px 0 6px 14px;margin-left:-2px;border-left:2px solid transparent;line-height:1.3;}
  .legal-toc a:hover{color:var(--ink);border-left-color:var(--cobalt);}
  .prose h2[id]{scroll-margin-top:92px;}
  @media(min-width:1000px){
    .legal-grid{grid-template-columns:232px minmax(0,1fr);gap:52px;}
    .legal-grid .prose{max-width:720px;}
    .legal-toc{position:sticky;top:92px;}
  }
  .pullquote{font-family:var(--disp);font-weight:700;font-size:clamp(1.5rem,3.4vw,2.25rem);line-height:1.18;letter-spacing:-0.02em;border-left:5px solid var(--ink);padding:6px 0 6px 22px;margin:22px 0;}
  .pullquote .mk{background:var(--lime);padding:0 .08em;border-radius:5px;box-decoration-break:clone;-webkit-box-decoration-break:clone;}

  /* blog + knowledge base */
  .empty-note{text-align:center;padding:48px 20px;font-family:var(--hand);font-weight:700;font-size:1.625rem;color:var(--violet);}
  /* blog index */
  .postgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
  .postcard{display:flex;flex-direction:column;background:var(--card);border:2px solid var(--ink);border-radius:18px;overflow:hidden;box-shadow:4px 4px 0 var(--ink);transition:transform .18s var(--ease),box-shadow .18s var(--ease);}
  .postcard:hover,.postcard:focus-visible{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink);}
  .postcard .pic{aspect-ratio:16/9;border-bottom:2px solid var(--ink);overflow:hidden;}
  .postcard .pic img{width:100%;height:100%;object-fit:cover;}
  .postcard .pb{padding:22px;display:flex;flex-direction:column;flex:1;}
  .postcard .pdate{font-family:var(--mono);font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--label-3);}
  .postcard h3{font-family:var(--disp);font-weight:800;font-size:1.4375rem;letter-spacing:-0.01em;margin-top:6px;}
  .postcard p{font-size:0.90625rem;color:var(--muted);margin-top:8px;line-height:1.5;}
  .postcard .more{margin-top:auto;padding-top:14px;font-weight:700;font-size:0.875rem;color:var(--cobalt);}
  .blog-empty{text-align:center;max-width:520px;margin:24px auto;background:var(--card);border:2px solid var(--ink);border-radius:22px;box-shadow:4px 4px 0 var(--ink);padding:48px 32px;}
  .blog-empty .be-ico{font-size:2.875rem;line-height:1;color:var(--violet);}
  .blog-empty h2{font-family:var(--disp);font-weight:800;font-size:1.75rem;letter-spacing:-0.02em;margin-top:14px;}
  .blog-empty p{color:var(--muted);margin:10px 0 22px;}
  @media (max-width:720px){ .postgrid{grid-template-columns:1fr;} }
  .faq{border:2px solid var(--ink);border-radius:12px;background:var(--card);box-shadow:3px 3px 0 var(--ink);margin:10px 0;overflow:hidden;}
  .faq summary{cursor:pointer;font-family:var(--disp);font-weight:700;font-size:1.0625rem;padding:14px 18px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;}
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+";font-family:var(--mono);font-size:1.375rem;line-height:1;color:var(--muted);}
  .faq[open] summary::after{content:"\2013";}
  .faq summary:focus-visible{outline:3px solid var(--cobalt);outline-offset:-3px;}
  .faq .faq-a{padding:0 18px 16px;color:var(--ink);}
  .faq .faq-a p:first-child{margin-top:4px;}

  .leader{display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:center;background:var(--card);border:2px solid var(--ink);border-radius:18px;padding:24px;box-shadow:4px 4px 0 var(--ink);}
  .leader .av{width:120px;height:120px;border:2px solid var(--ink);border-radius:16px;background:var(--fixed-ink);display:flex;align-items:center;justify-content:center;box-shadow:3px 3px 0 var(--ink);}
  .leader .av img{height:64px;}
  .leader .role{font-family:var(--mono);font-size:0.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
  .leader h3{font-family:var(--disp);font-weight:800;font-size:1.625rem;letter-spacing:-0.02em;margin-top:4px;}
  .leader p{font-size:0.9375rem;color:var(--muted);margin-top:8px;max-width:480px;}

  .factgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:22px;}
  .fact{background:var(--paper-2);border:1.5px solid var(--hair);border-radius:12px;padding:16px 18px;}
  .fact .k{font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
  .fact .v{font-weight:600;margin-top:5px;}
  .fact .v a:hover{text-decoration:underline;}
  /* press / media-kit assets */
  .presslogos{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px;}
  .presslogo{display:flex;flex-direction:column;align-items:center;gap:12px;border:2px solid var(--ink);border-radius:16px;padding:26px 32px;box-shadow:3px 3px 0 var(--ink);text-decoration:none;color:var(--ink);transition:transform .16s var(--ease),box-shadow .16s var(--ease);}
  .presslogo:hover,.presslogo:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink);}
  .presslogo img{height:52px;}
  .presslogo.light{background:var(--paper);}
  .presslogo.dark{background:var(--ink);color:var(--paper);}
  .presslogo span{font-family:var(--mono);font-size:0.75rem;letter-spacing:.04em;}
  .pressswatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:16px;}
  .pressswatch{display:flex;align-items:center;gap:9px;font-size:0.8125rem;font-weight:600;}
  .pressswatch .sw{width:26px;height:26px;border-radius:7px;border:2px solid var(--ink);flex:none;}
  .pressswatch code{font-family:var(--mono);font-size:0.75rem;color:var(--muted);font-weight:400;}

  /* event detail */
  .evhero{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;}
  .evhero .pic{border:2px solid var(--ink);border-radius:20px;overflow:hidden;box-shadow:4px 4px 0 var(--ink);aspect-ratio:4/3;}
  .evhero .pic img{width:100%;height:100%;object-fit:cover;}
  .evbadge{display:inline-block;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;padding:6px 12px;border-radius:999px;border:2px solid var(--ink);}
  .quick{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
  .quick .q{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:0.75rem;background:var(--paper-2);border:1.5px solid var(--hair);border-radius:9px;padding:8px 12px;}
  .nextprev{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:2px solid var(--ink);margin-top:40px;padding-top:22px;}
  .nextprev a{font-weight:600;}
  .nextprev a:hover{color:var(--cobalt);text-decoration:underline;text-underline-offset:3px;}

  /* donate */
  .donate-grid{display:grid;grid-template-columns:1fr .9fr;gap:40px;align-items:start;}
  .donate-card{background:var(--card);border:2px solid var(--ink);border-radius:22px;padding:30px;box-shadow:4px 4px 0 var(--ink);}
  .seg{display:inline-flex;border:2px solid var(--ink);border-radius:999px;overflow:hidden;background:var(--paper-2);}
  .seg button{font-family:var(--sans);font-weight:700;font-size:0.875rem;padding:9px 18px;border:none;background:transparent;cursor:pointer;color:var(--ink);}
  .seg button:hover:not([aria-pressed="true"]){background:var(--paper);}
  .seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper);}
  .amts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px;}
  .amt{font-family:var(--disp);font-weight:800;font-size:1.375rem;letter-spacing:-0.01em;border:2px solid var(--ink);border-radius:12px;padding:16px 0;background:var(--card);cursor:pointer;box-shadow:3px 3px 0 var(--ink);transition:transform .15s,box-shadow .15s;}
  .amt:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink);}
  .amt:active{transform:translate(0,0);box-shadow:2px 2px 0 var(--ink);}
  .amt[aria-pressed="true"]{background:var(--lime);}
  .amt-custom{margin-top:14px;position:relative;}
  .amt-custom span{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-family:var(--disp);font-weight:800;font-size:1.25rem;color:var(--muted);}
  .amt-custom input{width:100%;font-family:var(--disp);font-weight:800;font-size:1.25rem;padding:14px 14px 14px 34px;border:2px solid var(--ink);border-radius:12px;}
  .donside{background:var(--ink);color:var(--paper);border:2px solid var(--ink);border-radius:22px;padding:28px;box-shadow:4px 4px 0 var(--ink);}
  .donside h3{font-family:var(--disp);font-weight:800;font-size:1.5rem;color:#fff;letter-spacing:-0.01em;}
  .donside p{color:#C9C3D6;margin-top:10px;font-size:0.9375rem;}
  .donside .hand{font-family:var(--hand);font-weight:700;font-size:1.375rem;color:var(--sun);margin-top:16px;display:block;}

  @media (max-width:900px){
    .leader{grid-template-columns:1fr;text-align:center;}
    .leader .av{margin:0 auto;}
    .leader p{margin-left:auto;margin-right:auto;}
    .factgrid{grid-template-columns:1fr;}
    .evhero{grid-template-columns:1fr;}
    .donate-grid{grid-template-columns:1fr;}
    .valgrid{grid-template-columns:1fr;}
  }

  /* ---------- completion polish: manifesto card, partners CTA, category pillars,
     values, donate landing, KB search ---------- */
  .manifesto-card{position:relative;max-width:960px;margin:0 auto;background:var(--card);border:2px solid var(--ink);border-radius:24px;padding:52px 46px;box-shadow:6px 6px 0 var(--ink);}
  .manifesto-quote{position:absolute;top:2px;left:22px;font-family:var(--disp);font-weight:800;font-size:7.5rem;line-height:1;color:var(--lime);pointer-events:none;}
  .manifesto .big{margin-top:0;position:relative;}
  @media (max-width:560px){ .manifesto-card{padding:40px 24px;} .manifesto-quote{font-size:5.25rem;left:12px;} }

  /* partners / sponsors single-line CTA below the newsletter */
  .partners{padding:40px 0 64px;}
  .partners-line{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;text-align:center;font-size:1.0625rem;color:var(--muted);}
  .partners-line span{font-weight:600;color:var(--ink);}

  /* parallel-category cards (about / donate): color accent instead of a sequence number */
  .pdot{width:20px;height:20px;border-radius:50%;background:var(--acc);border:2px solid var(--ink);margin-bottom:16px;box-shadow:2px 2px 0 var(--ink);}

  /* "What we believe" values */
  .valgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
  .valcard{background:var(--card);border:2px solid var(--ink);border-left:8px solid var(--acc);border-radius:16px;padding:24px 26px;box-shadow:4px 4px 0 var(--ink);}
  .valcard p{font-family:var(--disp);font-weight:700;font-size:1.25rem;line-height:1.25;letter-spacing:-0.01em;color:var(--ink);}

  /* donate landing */
  .donate-redirect{margin-top:18px;font-size:0.875rem;color:var(--muted);}
  .inline-btn{background:none;border:none;padding:0;font:inherit;color:var(--cobalt);font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
  .donate-trust{font-size:0.875rem;color:var(--muted);background:var(--paper-2);border:1.5px solid var(--hair);border-radius:12px;padding:16px 18px;margin-top:0;}

  /* KB search + category jump-nav */
  .kb-search{margin:8px 0 16px;}
  .kb-search-label{display:block;font-family:var(--mono);font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
  .kb-search input{width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:13px 16px;box-shadow:3px 3px 0 var(--ink);}
  .kb-search input:focus-visible{outline:3px solid var(--cobalt);outline-offset:1px;}
  .kb-jump{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
  .kb-jump a{font-family:var(--mono);font-size:0.75rem;color:var(--muted);background:var(--paper-2);border:1.5px solid var(--hair);border-radius:999px;padding:7px 13px;}
  .kb-jump a:hover{color:var(--ink);border-color:var(--ink);}
  .kb-noresults{color:var(--muted);}
  .kb-cat{margin-bottom:10px;}
  .kb-cat h2{scroll-margin-top:92px;}

  /* ============================================================
     THEMING — data-theme (light|dark) + data-contrast (normal|high) on <html>,
     set before paint by ThemeScript. Defaults follow the OS.
     ============================================================ */
  [data-theme="dark"]{
    --paper:#14121C; --paper-2:#211D2E; --card:#1C1925; --ink:#F1ECE0; --muted:#ADA6B8; --hair:#3A3449; --label-3:#8C86A0;
    background:#0E0C14; /* matches the dark footer so any area below it isn't a light gap */
  }
  /* --ink doubles as text AND as dark "inverted" surfaces; when it flips light, re-anchor those. */
  [data-theme="dark"] header{ background:rgba(20,18,28,0.92); }
  [data-theme="dark"] footer,
  [data-theme="dark"] .vol,
  [data-theme="dark"] .donside,
  [data-theme="dark"] .marquee{ background:#0E0C14; }
  [data-theme="dark"] .vol,
  [data-theme="dark"] .donside,
  [data-theme="dark"] .marquee{ color:#EDE9F4; }
  [data-theme="dark"] form input,
  [data-theme="dark"] form select,
  [data-theme="dark"] form textarea{ background:#1C1925; }
  [data-theme="dark"] .skip{ background:#0E0C14; }
  /* bright accent fills must keep dark text even though --ink is now light */
  [data-theme="dark"] .btn-secondary,
  [data-theme="dark"] .amt[aria-pressed="true"],
  [data-theme="dark"] .formok,
  [data-theme="dark"] .fs,
  [data-theme="dark"] .fs h2,
  [data-theme="dark"] .fs p,
  [data-theme="dark"] .fs .btn-ghost,
  [data-theme="dark"] .manifesto .mk,
  [data-theme="dark"] .pullquote .mk{ color:#1A1623; }
  [data-theme="dark"] .fs .chip{ background:#1A1623; }
  [data-theme="dark"] .btn-ghost:hover{ color:#14121C; }
  [data-theme="dark"] ::selection{ color:#1A1623; }

  /* High contrast — a genuine max-contrast theme (pure black/white), layered over light or dark. */
  [data-theme="light"][data-contrast="high"]{ --paper:#FFFFFF; --paper-2:#FFFFFF; --card:#FFFFFF; --ink:#000000; --muted:#000000; --hair:#000000; --fixed-ink:#000000; --label-3:#000000; }
  [data-theme="dark"][data-contrast="high"]{ --paper:#000000; --paper-2:#0A0A0A; --card:#0A0A0A; --ink:#FFFFFF; --muted:#FFFFFF; --hair:#FFFFFF; --fixed-ink:#000000; --label-3:#FFFFFF; }

  /* ---- user accessibility preferences (set by ThemeScript on <html>) ---- */
  /* Reduce transparency: drop the header material to an opaque surface. */
  [data-transparency="reduce"] header{ backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--paper)!important; }
  /* Always underline body/content links (not nav chrome or buttons). */
  [data-links="underline"] .prose a,[data-links="underline"] a.inline,[data-links="underline"] main p a{ text-decoration:underline;text-underline-offset:2px; }
  /* Reading mode: familiar system font + roomier spacing (headings keep --disp). */
  [data-font="reading"]{ --sans:ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; }
  [data-font="reading"] body{ line-height:1.75;letter-spacing:.012em; }
  [data-font="reading"] p,[data-font="reading"] li{ word-spacing:.04em; }
  [data-contrast="high"] a.inline,
  [data-contrast="high"] .prose a{ text-decoration:underline; text-underline-offset:2px; }
  [data-contrast="high"] :focus-visible{ outline-width:4px; outline-offset:3px; }
  [data-contrast="high"] .ecard .bd{ background:var(--ink)!important; color:var(--paper)!important; }
  [data-contrast="high"] footer .ftag,
  [data-contrast="high"] .foot-bot,
  [data-contrast="high"] .fcol a,
  [data-contrast="high"] footer .fhand{ color:#fff; }
  [data-contrast="high"] .navlinks a[aria-current="page"]{ outline:2px solid var(--ink); outline-offset:-2px; }

  /* theme-aware logo / asset swap (e.g. black wordmark in light, white in dark) */
  .only-dark{ display:none; }
  [data-theme="dark"] .only-light{ display:none; }
  [data-theme="dark"] .only-dark{ display:inline-block; }

  /* Header display-settings control (theme + contrast) */
  .themectl{ position:relative; }
  .iconbtn{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border:1.5px solid var(--hair); background:var(--paper-2); border-radius:9px; color:var(--ink); cursor:pointer; }
  .iconbtn:hover{ border-color:var(--ink); }
  .thememenu{ position:absolute; right:0; top:48px; z-index:80; width:216px; background:var(--card); border:2px solid var(--ink); border-radius:12px; box-shadow:4px 4px 0 var(--ink); padding:14px; }
  .thememenu[hidden]{ display:none; }
  .thememenu .tm-h{ font-family:var(--mono); font-size:0.6875rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:9px; }
  .tm-seg{ display:flex; border:2px solid var(--ink); border-radius:9px; overflow:hidden; }
  .tm-seg button{ flex:1; font-family:var(--sans); font-weight:700; font-size:0.78125rem; padding:8px 0; border:none; background:var(--card); color:var(--ink); cursor:pointer; }
  .tm-seg button + button{ border-left:2px solid var(--ink); }
  .tm-seg button[aria-checked="true"]{ background:var(--accent); color:#fff; }
  .tm-row{ display:flex; align-items:center; gap:9px; font-weight:600; font-size:0.875rem; margin-top:12px; cursor:pointer; }
  .tm-row input[type=checkbox]{ width:18px; height:18px; accent-color:var(--cobalt); }
  .tm-size{ flex-wrap:wrap; }
  .tm-size label{ flex:1; }
  .tm-size output{ font-family:var(--mono); font-size:0.75rem; color:var(--muted); min-width:38px; text-align:right; }
  .tm-size input[type=range]{ flex:0 0 100%; width:100%; margin-top:8px; accent-color:var(--cobalt); cursor:pointer; }
  .tm-reset{ margin-top:14px; width:100%; font-family:var(--sans); font-weight:700; font-size:0.8125rem; color:var(--ink); background:var(--paper-2); border:2px solid var(--ink); border-radius:9px; padding:8px; cursor:pointer; }
  .tm-reset:hover{ background:var(--ink); color:var(--paper); }
  .tm-accents{ display:flex; gap:9px; margin-top:2px; }
  .tm-acc{ width:26px; height:26px; border-radius:50%; border:2px solid var(--ink); background:var(--sw); cursor:pointer; padding:0; transition:transform .12s var(--ease); }
  .tm-acc:hover{ transform:scale(1.12); }
  .tm-acc[aria-pressed="true"]{ outline:3px solid var(--ink); outline-offset:2px; }
