:root{
    --ink:#101D2E;
    --ink-soft:#1A2B40;
    --paper:#FAF8F4;
    --wheat:#FFC93C;
    --wheat-deep:#E0A800;
    --steel:#8FA0B3;
    --line:#E3DDD0;
    --text:#1C2937;
    --mono:'IBM Plex Mono',ui-monospace,monospace;
    --sans:'IBM Plex Sans',system-ui,sans-serif;
    --disp:'Unbounded',var(--sans);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth;scroll-padding-top:118px}
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{animation:none!important;transition:none!important}
  }
  html,body{overflow-x:clip;max-width:100%}
  body{font-family:var(--sans);background:var(--paper);color:var(--text);line-height:1.6;font-size:16px}
  .wrap{max-width:1080px;margin:0 auto;padding:0 22px}
  .narrow{max-width:780px}
  a{color:inherit}
  img{max-width:100%;display:block}
  :focus-visible{outline:3px solid var(--wheat);outline-offset:2px}

  /* ---------- header ---------- */
  header.site{background:var(--ink);color:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(255,255,255,.08)}
  .topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 16px}
  .brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#fff;flex:none;min-width:0}
  .brand img{width:auto;height:82px;object-fit:contain;flex:none}
  .brand .wm{display:flex;flex-direction:column;justify-content:center;line-height:1.12;min-width:0}
  .brand .wm-name{font-family:var(--disp);font-weight:700;font-size:clamp(.95rem,2.2vw,1.05rem);letter-spacing:.01em;white-space:nowrap}
  .brand .wm-sub{font-family:var(--mono);font-weight:400;font-size:.66rem;color:var(--steel);white-space:nowrap;margin-top:2px}
  .brand .dot{color:var(--wheat)}
  nav.main{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:center}
  nav.main a{font-size:.9rem;text-decoration:none;color:#D7DEE6;white-space:nowrap}
  nav.main a:hover{color:var(--wheat)}
  nav.main a.nav-cta,nav.main a.nav-cta:hover{color:var(--ink)}
  nav.main .nav-cta{display:none}
  .nav-right{display:flex;align-items:center;gap:14px;flex:none}
  .lang{display:flex;gap:2px;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:3px}
  .lang button{font-family:var(--mono);font-size:.76rem;background:none;border:none;color:var(--steel);padding:4px 11px;border-radius:999px;cursor:pointer}
  .lang button.on{background:var(--wheat);color:var(--ink);font-weight:500}
  .nav-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.25);border-radius:8px;color:#fff;font-size:1.1rem;padding:4px 10px;cursor:pointer}

  /* ---------- buttons ---------- */
  .btn{display:inline-block;font-family:var(--sans);font-weight:600;font-size:.95rem;text-decoration:none;padding:12px 22px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:.15s}
  .btn-y{background:var(--wheat);color:var(--ink)}
  .btn-y:hover{background:#FFD867}
  .btn-o{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
  .btn-o:hover{border-color:#fff}
  .btn-d{background:transparent;color:var(--ink);border-color:var(--line)}
  .btn-d:hover{border-color:var(--ink)}
  .btn-sm{padding:9px 16px;font-size:.85rem}

  /* ---------- hero ---------- */
  .hero{position:relative;background:var(--ink);color:#fff;overflow:hidden;border-bottom:0}
  .hero::before{content:"";position:absolute;inset:0;z-index:0;background:url('../assets/img/hero.jpg') center/cover no-repeat;opacity:.28}
  .hero-video{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
  .hero-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .hero::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(16,29,46,.62),rgba(16,29,46,.9))}
  .hero .wrap{position:relative;z-index:3;padding:100px 22px 108px}
  .eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--wheat);margin-bottom:18px}
  h1{font-family:var(--disp);font-weight:700;font-size:clamp(1.9rem,5.2vw,3.1rem);line-height:1.14;margin-bottom:20px;max-width:18ch}
  .hero p.lead{color:#D6DEE7;max-width:60ch;font-size:1.05rem;margin-bottom:30px}
  .hero-cta{display:flex;gap:12px;flex-wrap:wrap}

  /* ---------- sections ---------- */
  section{padding:64px 0;border-bottom:1px solid var(--line)}
  .sec-tag{font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--wheat-deep);margin-bottom:12px}
  h2{font-family:var(--disp);font-weight:500;font-size:clamp(1.4rem,3vw,1.9rem);margin-bottom:16px;line-height:1.2;color:var(--ink)}
  h3{font-family:var(--disp);font-weight:500;font-size:1.1rem;margin-bottom:8px;color:var(--ink)}
  .lead-p{font-size:1.05rem;color:#3A4756;margin-bottom:18px;max-width:65ch}
  p.body{margin-bottom:16px;max-width:68ch;color:#33404E}
  .alt{background:#fff}
  .split{display:grid;grid-template-columns:1.1fr .9fr;gap:42px;align-items:center}
  .split.rev .media{order:2}
  .media img{border-radius:16px;width:100%;height:100%;max-height:420px;object-fit:cover;box-shadow:0 18px 40px -24px rgba(16,29,46,.5)}
  ul.ticks{list-style:none;margin:8px 0 0;display:grid;gap:16px}
  ul.ticks li{display:flex;align-items:flex-start;gap:14px;color:#33404E;max-width:64ch}
  ul.ticks .tick-ic{width:30px;height:30px;flex:none;margin-top:1px}

  /* stats */
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:30px}
  .stat{background:var(--ink);color:#fff;border-radius:14px;padding:22px 18px}
  .stat b{display:block;font-family:var(--disp);font-weight:700;font-size:1.7rem;color:var(--wheat);line-height:1}
  .stat span{display:block;margin-top:8px;font-size:.82rem;color:#C7D1DC}

  /* cards grid */
  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
  .card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
  .card img{height:170px;object-fit:cover;width:100%}
  .card .pad{padding:18px;flex:1;display:flex;flex-direction:column}
  .card p{font-size:.92rem;color:#46535F;margin-bottom:14px;flex:1}

  /* donate */
  .donate-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}
  .consent{background:#FFFBEF;border:1px solid var(--line);border-left:4px solid var(--wheat);border-radius:12px;padding:16px 18px;font-size:.9rem;color:#46535F;margin-bottom:26px;max-width:none}
  .bank-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
  .bank-head{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:12px 16px}
  .bank-head .ccy{font-family:var(--mono);font-size:.8rem;font-weight:500;background:var(--wheat);color:var(--ink);border-radius:6px;padding:3px 9px}
  .bank-head .ccy-name{font-size:.85rem;color:#C7D1DC}
  .field{padding:12px 16px;border-bottom:1px solid var(--line)}
  .field:last-child{border-bottom:none}
  .field .k{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#9AA6B2;margin-bottom:3px}
  .field .v{font-family:var(--mono);font-size:.85rem;word-break:break-word;color:var(--text)}
  .iban-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#FFFBEF;border:none;border-bottom:1px solid var(--line);cursor:pointer;font-family:inherit;padding:12px 16px}
  .iban-row:hover{background:#FFF6DA}
  .iban-row .copy-hint{margin-left:auto;font-family:var(--mono);font-size:.7rem;color:#9AA6B2;flex:none}
  .iban-row.copied .copy-hint{color:var(--wheat-deep);font-weight:600}

  .req{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;margin-top:6px}
  .req-row{display:flex;align-items:center;gap:14px;padding:15px 16px;border-bottom:1px solid var(--line);background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;cursor:pointer;font-family:inherit}
  .req-row:last-child{border-bottom:none}
  .req-row:hover{background:#FFFBEF}
  .req-row .ccy{font-family:var(--mono);font-size:.72rem;font-weight:500;background:var(--ink);color:var(--wheat);border-radius:6px;padding:4px 8px;flex:none;min-width:96px;text-align:center}
  .req-row .val{font-family:var(--mono);font-size:.85rem;word-break:break-all;color:var(--text);flex:1 1 auto;min-width:0}
  .req-row .val.tbd{color:#9AA6B2;font-style:italic}
  .req-row .copy-hint{margin-left:auto;flex:none;font-family:var(--mono);font-size:.7rem;color:#9AA6B2}
  .req-row.copied .copy-hint{color:var(--wheat-deep);font-weight:500}
  .donate-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:22px}
  .hotline{font-family:var(--mono);font-size:.9rem;color:#46535F}
  .hotline b{color:var(--ink)}

  /* documents */
  .doc-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
  .doc{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}
  .doc .ico{width:40px;height:40px;border-radius:9px;background:var(--ink);color:var(--wheat);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.7rem;font-weight:600}
  .doc h3{font-size:1rem;margin:0}
  .doc p{font-size:.86rem;color:#5C6B7A;flex:1}
  .doc-links{display:flex;gap:10px;flex-wrap:wrap}
  .doc-links a{font-family:var(--mono);font-size:.8rem;color:var(--wheat-deep);text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:5px 10px}
  .doc-links a:hover{border-color:var(--wheat-deep)}

  /* offices */
  .offices{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
  .office{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
  .office img{height:150px;width:100%;object-fit:cover}
  .office .pad{padding:18px}
  .office .city{font-family:var(--disp);font-size:1.05rem;color:var(--ink);margin-bottom:6px}
  .office address{font-style:normal;font-size:.9rem;color:#46535F;margin-bottom:12px;line-height:1.5}
  .office a.map{font-family:var(--mono);font-size:.78rem;color:var(--wheat-deep);text-decoration:none}
  .office a.map:hover{text-decoration:underline}

  /* partners */
  .partners{display:flex;flex-wrap:wrap;gap:18px;margin-top:8px}
  .partner{flex:1;min-width:220px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:26px 22px;text-align:center;text-decoration:none;color:#7A8794;filter:grayscale(1);opacity:.7;transition:.25s}
  .partner:hover{filter:grayscale(0);opacity:1;border-color:var(--wheat);color:var(--ink);box-shadow:0 14px 30px -22px rgba(16,29,46,.6)}
  .partner .pname{font-family:var(--disp);font-size:1.1rem;color:var(--ink)}
  .partner .pmeta{font-size:.8rem;margin-top:6px}
  .partner-note{font-size:.86rem;color:#7A8794;margin-top:14px}

  /* team */
  .team{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
  .member{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
  .member img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;display:block;background:#EEE9DE}
  .member .m-pad{padding:16px 18px}
  .member .m-name{font-family:var(--disp);font-weight:500;font-size:1.05rem;color:var(--ink)}
  .member .m-role{font-size:.9rem;color:#5C6B7A;margin-top:5px}

  /* subtle hover highlights (team photos + infographics) */
  .member,.stat{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
  .member:hover{transform:translateY(-4px);box-shadow:0 18px 36px -22px rgba(16,29,46,.55);border-color:var(--wheat)}
  .member img{transition:transform .45s ease}
  .member:hover img{transform:scale(1.05)}
  .stat:hover{transform:translateY(-4px);box-shadow:0 16px 32px -18px rgba(16,29,46,.6)}
  ul.ticks li .tick-ic{transition:transform .25s ease}
  ul.ticks li:hover .tick-ic{transform:scale(1.14)}

  /* careers */
  .vac{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-top:18px}
  .vac .badge{display:inline-block;font-family:var(--mono);font-size:.72rem;background:#F0EBDD;color:#7A6A2E;border-radius:999px;padding:4px 12px;margin-bottom:10px}
  .vac p{margin:0;color:#46535F}

  /* video */
  .video{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16/9;border:1px solid var(--line);margin-top:18px;background:#000}
  .video iframe,.video video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}

  /* contact / form */
  .contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:42px;margin-top:8px}
  form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  form label{display:block;font-size:.82rem;font-weight:600;color:var(--ink);margin:14px 0 6px}
  form label .req-star{color:#D14}
  form input,form textarea{width:100%;font-family:var(--sans);font-size:.95rem;color:var(--text);background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 13px}
  form input:focus,form textarea:focus{outline:none;border-color:var(--wheat);box-shadow:0 0 0 3px rgba(255,201,60,.25)}
  form textarea{min-height:120px;resize:vertical}
  .form-note{font-size:.8rem;color:#7A8794;margin-top:10px}
  .form-msg{margin-top:12px;font-size:.9rem;display:none}
  .form-msg.ok{display:block;color:#1E7A4D}
  .form-msg.err{display:block;color:#C0392B}
  .info-block dt{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#9AA6B2;margin-top:16px}
  .info-block dt:first-child{margin-top:0}
  .info-block dd{margin:3px 0 0;font-size:.95rem;color:#33404E}
  .info-block a{color:var(--wheat-deep);text-decoration:none}
  .info-block a:hover{text-decoration:underline}

  /* faq */
  details{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px;padding:0 18px}
  summary{font-weight:600;font-size:.95rem;padding:15px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
  summary::after{content:"+";font-family:var(--mono);color:var(--wheat-deep);font-size:1.1rem;flex:none}
  details[open] summary::after{content:"\2013"}
  details p{padding:0 0 16px;color:#46535F;font-size:.93rem}

  /* footer */
  footer.site{background:var(--ink);color:var(--steel);padding:54px 0 30px;font-size:.9rem;border:none}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;margin-bottom:30px}
  footer.site .brand{margin-bottom:16px}
  .brand img.foot-logo{width:auto;height:52px;object-fit:contain}
  .foot-muted{color:#AAB6C2}
  footer.site p{color:#AAB6C2;font-size:.88rem;max-width:42ch;margin-bottom:10px}
  footer.site h4{color:#fff;font-size:.82rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px}
  footer.site ul{list-style:none;display:grid;gap:9px}
  footer.site a{color:#D7DEE6;text-decoration:none}
  footer.site a:hover{color:var(--wheat)}
  .npo{font-size:.84rem;color:#AAB6C2;line-height:1.6}
  .foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
  .legal{font-size:.78rem;color:#6E8097;max-width:70ch}

  .toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(80px);background:var(--ink);color:#fff;font-family:var(--mono);font-size:.82rem;padding:10px 18px;border-radius:999px;border:1px solid var(--wheat);opacity:0;transition:.25s;pointer-events:none;z-index:99}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

  /* sticky-header shadow + back-to-top */
  header.site{transition:box-shadow .2s}
  header.site.scrolled{box-shadow:0 8px 24px -12px rgba(0,0,0,.55)}
  .to-top{position:fixed;right:20px;bottom:22px;z-index:50;width:48px;height:48px;border-radius:50%;border:none;background:var(--wheat);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px -8px rgba(16,29,46,.6);opacity:0;transform:translateY(18px) scale(.9);pointer-events:none;transition:.25s}
  .to-top.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
  .to-top:hover{background:#FFD867}
  body.menu-open .to-top{opacity:0;pointer-events:none}   /* don't float over the open menu */

  /* ---------- utilities ---------- */
  .text-center{text-align:center}
  .text-sm{font-size:.9rem}
  .mt-16{margin-top:16px}
  .mt-24{margin-top:24px}
  .mt-34{margin-top:34px}
  .mt-40{margin-top:40px}
  .lead-p.center{margin:0 auto}
  .note{font-size:.9rem;color:#5C6B7A}
  .doc-report{margin-top:26px;font-size:.92rem;color:#5C6B7A}

  /* ---------- responsive ---------- */
  @media (max-width:860px){
    .split,.contact-grid{grid-template-columns:1fr;gap:26px}
    .split.rev .media{order:0}
    .grid3,.doc-list,.offices{grid-template-columns:1fr 1fr}
    .donate-grid{grid-template-columns:1fr}
    .stats{grid-template-columns:1fr 1fr}
  }
  /* header collapses to a menu before the inline nav can crowd the brand */
  @media (max-width:880px){
    nav.main{display:none;position:absolute;top:100%;left:0;right:0;background:var(--ink);flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;gap:0;padding:10px 22px 18px;border-top:1px solid rgba(255,255,255,.1);max-height:calc(100vh - 76px);max-height:calc(100dvh - 76px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
    nav.main.open{display:flex}
    nav.main a{padding:12px 0;width:100%}
    .nav-toggle{display:inline-block}
    .nav-right>.btn-y{display:none}              /* top Donate moves into the menu */
    nav.main .nav-cta{display:block;margin-top:10px;text-align:center;padding:12px}
  }
  /* short / landscape screens: compact the dropdown so everything fits without scrolling */
  @media (max-width:880px) and (max-height:640px){
    nav.main{padding:2px 22px 10px}
    nav.main a{padding:7px 0;font-size:.95rem}
    nav.main .nav-cta{margin-top:6px;padding:8px}
  }
  @media (max-width:880px) and (max-height:430px){
    nav.main a{padding:5px 0}
  }
  @media (max-width:680px){
    html{scroll-padding-top:88px}
    .topbar{gap:8px;padding:10px 8px}
    .brand{gap:8px}
    .brand img{height:54px}
    .brand .wm-name{font-size:.8rem}
    .brand .wm-sub{font-size:.6rem}
    .nav-right{gap:7px}
    .lang button{padding:4px 8px;font-size:.7rem}
    .grid3,.doc-list,.offices,.team{grid-template-columns:1fr}
    form .row{grid-template-columns:1fr}
    .stats{grid-template-columns:1fr 1fr}
    .foot-grid{grid-template-columns:1fr;gap:24px}
    /* crypto rows: code on its own full-width line so the address never collapses */
    #crypto-list .req-row{flex-wrap:wrap}
    #crypto-list .req-row .ccy{min-width:auto;order:1}
    #crypto-list .req-row .copy-hint{order:2;margin-left:auto}
    #crypto-list .req-row .val{order:3;flex:1 1 100%;margin-top:6px}
  }
