/* =========================================================================
   Stiprios kartu — palette taken straight from the logo files:
   #002315 deep green ground, #3AE295 bright green mark.
   ========================================================================= */

:root{
  --ink:#002315;
  --ink-2:#00301d;
  --ink-3:#013b25;
  --line:rgba(58,226,149,.16);
  --line-2:rgba(58,226,149,.30);
  --green:#3ae295;
  --green-2:#7cf0bb;
  --tx:#e6fff2;
  --tx-dim:#9dc4b1;
  --wrap:1180px;
  --r:14px;
  --ctl-h:42px;              /* header controls: lang toggle and the small button */
  --f-disp:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Space Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}}

body{
  margin:0;background:var(--ink);color:var(--tx);
  font-family:var(--f-disp);font-size:17px;line-height:1.65;
  font-weight:450;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3{margin:0;line-height:1.05;letter-spacing:-.02em;font-weight:800}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:4px}

.wrap{width:min(100% - 40px,var(--wrap));margin-inline:auto}

.skip{position:absolute;left:-9999px;top:0;background:var(--green);color:var(--ink);
  padding:10px 16px;z-index:99;font-weight:700}
.skip:focus{left:12px;top:12px}

/* ---------- kickers / headings ---------- */
.kicker{
  font-family:var(--f-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--green);margin:0 0 14px;
}
.h2{font-size:clamp(30px,4.6vw,54px);margin:0 0 20px;text-wrap:balance}
.h2-dim{color:var(--tx-dim);font-weight:600}

/* copyable link beside each section heading */
.anchor{
  margin-left:.35em;font-size:.5em;font-weight:700;color:var(--green);
  text-decoration:none;vertical-align:middle;
  opacity:0;transition:opacity .15s ease;
}
.h2:hover .anchor{opacity:.6}
.anchor:hover{opacity:1}
.anchor:focus-visible{opacity:1}
.anchor.ok::after{content:"\2713";margin-left:.25em}
/* touch devices have no hover, so keep it faintly visible */
@media (hover:none){ .anchor{opacity:.4} }
.lead{font-size:clamp(17px,1.7vw,21px);color:var(--tx-dim);max-width:70ch;line-height:1.6}
.lead strong{color:var(--tx)}
/* the inline call to action under the partnership lead */
.lead-cta{margin:4px 0 0}
.lnk-cta{
  display:inline-flex;align-items:center;gap:9px;
  color:var(--green);text-decoration:none;font-weight:700;font-size:16.5px;
  border-bottom:1px solid var(--line-2);padding-bottom:3px;transition:border-color .15s;
}
.lnk-cta::after{content:"\2192";font-size:1.05em;transition:transform .2s ease}
.lnk-cta:hover{border-color:var(--green)}
.lnk-cta:hover::after{transform:translateX(4px)}
/* small caveats under a section. Display face, not mono — these are asides, not data;
   the top margin keeps them off whatever block they follow. */
.note{
  font-family:var(--f-disp);font-size:13.5px;color:var(--tx-dim);line-height:1.6;
  letter-spacing:0;margin:26px 0 0;
}
.lnk{color:var(--green);text-decoration-color:var(--line-2);text-underline-offset:3px}
.lnk:hover{text-decoration-color:var(--green)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--green);color:#00190f;border:1px solid var(--green);
  padding:13px 24px;border-radius:999px;font-weight:800;font-size:15px;
  letter-spacing:.01em;text-decoration:none;cursor:pointer;
  transition:transform .15s ease,background .15s ease,box-shadow .15s ease;
}
.btn:hover{background:var(--green-2);border-color:var(--green-2);transform:translateY(-2px);
  box-shadow:0 10px 30px -12px rgba(58,226,149,.6)}
.btn-ghost{background:transparent;color:var(--green);border-color:var(--line-2)}
.btn-ghost:hover{background:rgba(58,226,149,.09);border-color:var(--green);color:var(--green-2);
  box-shadow:none}
.btn-sm{height:var(--ctl-h);padding:0 18px;font-size:14px}
.btn-block{display:flex;width:100%;margin-top:12px}
/* long address: identical to every other button — only the tighter side padding and
   a wrap rule, as a safety net on very narrow screens */
.btn-mail{letter-spacing:0;overflow-wrap:anywhere;text-align:center;padding-inline:16px}

/* ---------- header ---------- */
.hdr{
  position:sticky;top:0;z-index:50;
  background:rgba(0,35,21,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
/* the mark starts large and shrinks once you scroll past the hero's first stretch;
   .small is put on the header by app.js */
.hdr-in{display:flex;align-items:center;gap:22px;height:124px;transition:height .28s ease}
.hdr.small .hdr-in{height:68px}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;flex-shrink:0}
.brand img{
  width:88px;height:88px;border-radius:16px;
  transition:width .28s ease,height .28s ease,border-radius .28s ease;
}
.hdr.small .brand img{width:44px;height:44px;border-radius:10px}
.brand-tx{
  font-family:var(--f-mono);font-weight:700;font-size:16px;line-height:1.15;
  letter-spacing:.06em;text-transform:lowercase;color:var(--green);
  transition:font-size .28s ease;
}
.hdr.small .brand-tx{font-size:12.5px}
.nav{display:flex;gap:26px;margin-left:auto;font-size:14.5px;font-weight:600}
.nav a{
  text-decoration:none;color:var(--tx-dim);transition:color .15s;white-space:nowrap;
  position:relative;padding-bottom:3px;
}
.nav a:hover{color:var(--green)}
/* the section currently under the header */
.nav a.on{color:var(--green)}
.nav a.on::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;
  background:var(--green);border-radius:2px;
}
.hdr-act{display:flex;align-items:center;gap:12px;margin-left:auto}
.nav + .hdr-act{margin-left:0}
.lang{
  height:var(--ctl-h);
  display:inline-flex;align-items:center;justify-content:center;
  background:none;border:1px solid var(--line-2);color:var(--green);
  font-family:var(--f-mono);font-size:12px;font-weight:700;letter-spacing:.08em;
  line-height:1;padding:0 14px;border-radius:999px;cursor:pointer;transition:.15s;
}
.lang:hover{background:rgba(58,226,149,.1);border-color:var(--green)}

/* ---------- hero ---------- */
.hero{position:relative;padding:clamp(64px,9vw,120px) 0 0;overflow:hidden}
.hero-bg{
  position:absolute;inset:-20% -10% auto;height:120%;pointer-events:none;
  background:
    radial-gradient(60% 50% at 22% 8%,rgba(58,226,149,.16),transparent 68%),
    radial-gradient(46% 44% at 88% 34%,rgba(58,226,149,.10),transparent 70%);
}
.hero-in{position:relative}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--green);border:1px solid var(--line-2);border-radius:999px;
  padding:7px 16px;margin:0 0 26px;background:rgba(58,226,149,.06);
}
.dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex:none;
  box-shadow:0 0 0 0 rgba(58,226,149,.7);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(58,226,149,0)}100%{box-shadow:0 0 0 0 rgba(58,226,149,0)}}

.hero-h1{
  font-size:clamp(38px,7.4vw,88px);font-weight:900;letter-spacing:-.035em;
  margin:0 0 26px;text-wrap:balance;
}
.hero-h1 em{font-style:normal;color:var(--green)}
.hero-sub{max-width:62ch;font-size:clamp(16.5px,1.65vw,20px);color:var(--tx-dim);line-height:1.62}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

/* ---------- stats ---------- */
.stats{
  list-style:none;margin:clamp(52px,7vw,84px) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.stats li{padding:26px 22px 24px;border-right:1px solid var(--line)}
.stats li:last-child{border-right:0}
.stats b{
  display:block;font-size:clamp(30px,4vw,46px);font-weight:900;letter-spacing:-.04em;
  color:var(--green);line-height:1;
}
.stats .of{font-size:.44em;font-weight:700;color:var(--tx-dim);margin-left:3px;letter-spacing:0}
.stats span:last-child{
  display:block;margin-top:9px;font-family:var(--f-mono);font-size:11.5px;
  letter-spacing:.09em;text-transform:uppercase;color:var(--tx-dim);line-height:1.5;
}

/* ---------- sections ---------- */
.sec{padding:clamp(64px,8.5vw,112px) 0}
.sec-alt{background:var(--ink-2)}

/* ---------- world map ---------- */
.map{
  margin:38px 0 0;padding:clamp(14px,2vw,22px);
  background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);
}
.sec-alt .map{background:var(--ink)}
.map-svg{
  display:block;width:100%;height:auto;
  overflow:hidden;                 /* clip land to the viewBox, not the path's full extent */
  border-radius:calc(var(--r) - 6px);
  background:rgba(0,0,0,.14);
}

/* land sits just above the card ground — present, never competing with the markers */
.map-land{fill:#04422a;stroke:rgba(58,226,149,.18);stroke-width:.22;
  stroke-linejoin:round;vector-effect:non-scaling-stroke}

.mk-dot{stroke-width:1.1;paint-order:stroke}
.mk-n{
  font-family:var(--f-mono);font-size:4.1px;font-weight:700;letter-spacing:.04em;
  dominant-baseline:middle;
  paint-order:stroke;stroke:var(--ink);stroke-width:1.4;stroke-linejoin:round;
}
.mk-i{opacity:.6}
.mk-name{letter-spacing:.02em}
.mk-done .mk-dot{fill:var(--green);stroke:var(--ink)}
.mk-done .mk-n{fill:var(--green)}
.mk-next .mk-dot{fill:var(--green);stroke:var(--ink)}
.mk-next .mk-n{fill:var(--green);font-size:4.6px}
.mk-todo .mk-dot{fill:none;stroke:var(--tx-dim);stroke-width:1}
.mk-todo .mk-n{fill:var(--tx-dim)}

.mk-ring{fill:none;stroke:var(--green);stroke-width:.9;opacity:.55}
.mk-pulse{fill:none;stroke:var(--green);stroke-width:1;opacity:.9;
  transform-box:fill-box;transform-origin:center;animation:mapPulse 2.8s ease-out infinite}
@keyframes mapPulse{
  0%{transform:scale(1);opacity:.85}
  70%{transform:scale(3.4);opacity:0}
  100%{transform:scale(3.4);opacity:0}
}

.map-key{
  list-style:none;display:flex;flex-wrap:wrap;gap:6px 20px;
  margin:14px 2px 2px;padding:0;
}
.map-key li{display:flex;align-items:center;gap:8px;
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--tx-dim)}
.k-dot{width:9px;height:9px;border-radius:50%;flex:none}
.k-done .k-dot,.k-next .k-dot{background:var(--green)}
.k-next .k-dot{box-shadow:0 0 0 3px rgba(58,226,149,.22)}
.k-todo .k-dot{border:1.5px solid var(--tx-dim)}
.k-done span:last-child,.k-next span:last-child{color:var(--green)}

/* ---------- channel list (flip cards) ---------- */
.chan{list-style:none;margin:30px 0 0;padding:0;border-top:1px solid var(--line)}
.chan li{
  border-bottom:1px solid var(--line);
  perspective:1800px;                 /* 3D depth for the flip */
  height:var(--h,auto);               /* JS sets this to the visible face */
  transition:height .5s cubic-bezier(.4,.15,.2,1);
}
.ch-flip{
  position:relative;height:100%;
  transform-style:preserve-3d;
  transition:transform .55s cubic-bezier(.4,.15,.2,1);
}
.chan li.open .ch-flip{transform:rotateX(180deg)}
.ch-face{backface-visibility:hidden;-webkit-backface-visibility:hidden}

.ch-front{
  display:flex;align-items:center;gap:20px;padding:20px 4px;
  transition:padding .18s;
}
.chan li:not(.open) .ch-front:hover{background:rgba(58,226,149,.045);padding-inline:14px}
.ch-back{
  position:absolute;inset:0;transform:rotateX(180deg);
  background:rgba(58,226,149,.05);
}
.ch-back-in{padding:20px 14px 18px}
/* the channel name, mirrored from the front so an open card still identifies itself */
.ch-back-t{
  display:flex;align-items:baseline;gap:20px;margin:0 0 16px;
  padding-bottom:12px;border-bottom:1px solid var(--line);
}
.ch-back-t b{
  font-size:clamp(17px,2.1vw,23px);font-weight:700;letter-spacing:-.015em;color:var(--tx);
}

.chan-n{font-family:var(--f-mono);font-size:13px;color:var(--tx-dim);flex:none;width:26px}
.chan-b{flex:1;min-width:0}
.chan-b h3{font-size:clamp(18px,2.2vw,25px);font-weight:700;letter-spacing:-.015em}
.chan-m{margin:5px 0 0;font-family:var(--f-mono);font-size:12.5px;color:var(--tx-dim)}
.chan .tag{
  flex:none;font-family:var(--f-mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  padding:6px 13px;border-radius:999px;border:1px solid var(--line);color:var(--tx-dim);
  white-space:nowrap;
}
.chan .tag-done{background:rgba(58,226,149,.14);border-color:var(--line-2);color:var(--green)}
.chan .tag-next{background:var(--green);border-color:var(--green);color:#00190f;font-weight:700}
.chan li.done .chan-n,.chan li.done .chan-b h3{color:var(--tx)}
.chan li.nextup{background:rgba(58,226,149,.07);box-shadow:inset 3px 0 0 var(--green)}
.chan li:not(.done):not(.nextup) .chan-b h3{color:var(--tx-dim)}

/* the flip trigger */
.ch-btn{
  flex:none;display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--green);background:rgba(58,226,149,.08);
  border:1px solid var(--line-2);border-radius:999px;padding:7px 13px;
  transition:background .15s,border-color .15s;
}
.ch-btn:hover{background:rgba(58,226,149,.2);border-color:var(--green)}
.ch-ico{position:relative;width:9px;height:9px;flex:none}
.ch-ico::before,.ch-ico::after{
  content:"";position:absolute;background:currentColor;border-radius:1px;
  transition:transform .3s;
}
.ch-ico::before{left:0;top:4px;width:9px;height:1.5px}
.ch-ico::after{left:3.75px;top:0;width:1.5px;height:9px}
.ch-ico-back::after{display:none}          /* back button shows a bare dash */

/* the detail face */
.ch-why{
  margin:0 0 16px;font-size:15px;line-height:1.6;color:var(--tx);max-width:80ch;
}
.ch-d{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;margin:0 0 16px;
  background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;
}
.ch-d > div{background:var(--ink);padding:11px 13px;min-width:0}
.ch-d dt{
  font-family:var(--f-mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--tx-dim);margin:0 0 4px;
}
.ch-d dd{margin:0;font-size:13.5px;font-weight:600;color:var(--green);line-height:1.4}
.ch-btn-close{padding:7px 14px}

/* ---------- crossings ---------- *//* ---------- crossings ---------- */
.cross{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:44px 0 0}
.cx{
  background:var(--ink);border:1px solid var(--line);border-radius:var(--r);
  padding:clamp(22px,3vw,34px);
}
.cx-hi{border-color:var(--line-2);box-shadow:0 0 0 1px rgba(58,226,149,.08) inset}
.cx-date{font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;color:var(--green);margin:0 0 8px}
.cx h3{font-size:clamp(23px,2.8vw,32px);margin:0 0 22px}
.cx p{font-size:15.5px;color:var(--tx-dim);margin:0;line-height:1.62}
.cx-d{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0 0 22px;
  background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;
}
.cx-d-col{grid-template-columns:1fr}
.cx-d > div{background:var(--ink-2);padding:13px 15px}
.cx-d dt{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--tx-dim);margin:0 0 5px}
.cx-d dd{margin:0;font-size:17px;font-weight:800;color:var(--green);letter-spacing:-.01em}
.sec-alt .cx-d > div{background:var(--ink-3)}

.hero-shot{margin:36px 0 0}
.hero-shot img{width:100%;border-radius:var(--r);border:1px solid var(--line)}
.hero-shot figcaption{
  margin-top:12px;font-family:var(--f-mono);font-size:12px;color:var(--tx-dim);letter-spacing:.03em;
}

/* ---------- the motto ---------- */
/* One line, nothing else in the band. A motto squeezed under other copy reads as a
   subtitle; given silence around it, it reads as a motto. */
.moto{
  padding:clamp(60px,9vw,110px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(58% 130% at 50% 50%,rgba(58,226,149,.11),transparent 70%),
    var(--ink);
  text-align:center;
}
.moto-l{
  margin:0 auto;max-width:22ch;
  font-size:clamp(27px,4.6vw,54px);font-weight:800;letter-spacing:-.03em;line-height:1.14;
  color:var(--green);text-wrap:balance;
}

/* ---------- next / cook strait ---------- */
.next-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:30px;margin-top:40px;align-items:start}
.next-copy p:not(.lead){color:var(--tx-dim);font-size:16px}
.next-card{
  background:var(--ink-2);border:1px solid var(--line-2);border-radius:var(--r);
  padding:clamp(22px,2.6vw,30px);position:sticky;top:96px;
}
.next-card h3{font-size:20px;margin:0 0 18px}

/* ---------- team ---------- */
.team{list-style:none;margin:40px 0 22px;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:14px}
.team li{
  background:var(--ink);border:1px solid var(--line);border-radius:var(--r);
  padding:24px 20px;position:relative;transition:border-color .18s,transform .18s;
}
.team li:hover{border-color:var(--line-2);transform:translateY(-3px)}
.team h3{font-size:18.5px;margin:0 0 7px;letter-spacing:-.02em;
  padding-right:30px;overflow-wrap:break-word;hyphens:auto}
/* given name and surname each on their own line, so every card is the same shape */
.team h3 span{display:block}
.team h3 span + span{color:var(--green)}
.team .role{margin:0;font-size:13.5px;color:var(--tx-dim);line-height:1.5}
.team .age{
  position:absolute;top:20px;right:20px;margin:0;
  font-family:var(--f-mono);font-size:12px;color:var(--green);opacity:.75;
}
/* only present when a birthday is under 30 days out */
.team .bday{
  display:inline-flex;align-items:center;gap:5px;margin:12px 0 0;
  font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--green);background:rgba(58,226,149,.12);
  border:1px solid var(--line-2);border-radius:999px;padding:4px 9px;
}
.team .bday-i{
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  font-size:12px;line-height:1;text-transform:none;letter-spacing:0;
}

/* ---------- crew credits ---------- */
.crew{margin:34px 0 0}
.crew h3{
  font-family:var(--f-mono);font-size:12px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--green);margin:0 0 16px;
}
.crew-g{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.crew-c{background:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:22px 22px 18px}
.crew-c h4{
  margin:0 0 14px;font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--tx);
  padding-bottom:12px;border-bottom:1px solid var(--line);
}
.crew-c ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
/* she was at both crossings, so she sits across the pair rather than inside one */
.crew-both{grid-column:1 / -1}
.crew-both ul{max-width:none}
.crew-c li{display:flex;flex-direction:column;gap:2px}
.crew-c b{font-size:15.5px;font-weight:700;color:var(--green);letter-spacing:-.01em}
.crew-c span{font-size:13.5px;color:var(--tx-dim);line-height:1.5}

/* ---------- gallery ---------- */
.grid{
  margin-top:36px;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;
}
.grid figure{margin:0;position:relative;overflow:hidden;border-radius:12px;
  border:1px solid var(--line);background:var(--ink-2);aspect-ratio:4/5}
.grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,opacity .3s}
.grid figure:hover img{transform:scale(1.05)}

/* ---------- gallery placeholder ---------- */
.soon{
  margin-top:36px;padding:clamp(38px,6vw,66px) 24px;
  border:1px dashed var(--line-2);border-radius:var(--r);background:var(--ink-2);
  display:grid;justify-items:center;gap:14px;text-align:center;
}
.soon-t{
  margin:0;font-family:var(--f-mono);font-size:13px;font-weight:700;
  letter-spacing:.26em;text-transform:uppercase;color:var(--green);
}
.soon-s{margin:0;max-width:46ch;color:var(--tx-dim);font-size:15.5px;line-height:1.6}
.soon .btn{margin-top:4px}

/* ---------- support ---------- */
.sec-support{background:
  linear-gradient(180deg,var(--ink-2),var(--ink) 70%);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ask{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;margin-top:22px}
.ask-b,.ask-c{background:var(--ink);border:1px solid var(--line);border-radius:var(--r);
  padding:clamp(24px,3vw,32px)}
.ask-c{border-color:var(--line-2)}
.ask h3{font-size:20px;margin:0 0 18px}
.ask-c p{font-size:15px;color:var(--tx-dim)}
/* the pointer-to-requisites line sits under the button stack, so it follows the
   buttons: same typeface, centred with them — not the mono, left-aligned .note default */
/* font-size restated because .ask-c p (0,2,1) outranks the base .note rule (0,1,0) */
.ask-c .note{
  margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line);text-align:center;
  font-size:13.5px;
}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.ticks li{position:relative;padding-left:30px;font-size:15.5px;color:var(--tx-dim);line-height:1.55}
.ticks li::before{
  content:"";position:absolute;left:0;top:.52em;width:15px;height:8px;
  border-left:2px solid var(--green);border-bottom:2px solid var(--green);
  transform:rotate(-45deg);
}

/* ---------- donate (PayPal) ---------- */
/* PayPal's snippet ships Helvetica, a fixed width, a square corner and PayPal gold.
   The button is our own markup — the form posts to PayPal either way — so it takes the
   brand green like every other primary action. The card logos and PayPal wordmark below
   it stay, which is what actually carries the "this is a real payment" signal. */
.pay{
  margin-top:22px;background:var(--ink);border:1px solid var(--line-2);
  border-radius:var(--r);padding:clamp(22px,2.6vw,30px);
  display:grid;grid-template-columns:1.4fr 1fr;gap:26px;align-items:center;
}
.pay-t h3{
  font-family:var(--f-mono);font-size:12px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--green);margin:0 0 10px;
}
.pay-t p{margin:0;font-size:15px;color:var(--tx-dim);line-height:1.6;max-width:46ch}
.pay-f{display:grid;justify-items:center;gap:10px;margin:0}
.pp-btn{
  width:100%;border:0;border-radius:999px;padding:13px 24px;cursor:pointer;
  background:var(--green);color:#00190f;
  font-family:var(--f-disp);font-weight:800;font-size:15px;line-height:24.75px;
  letter-spacing:.01em;
  transition:transform .15s ease,background .15s ease,box-shadow .15s ease;
}
.pp-btn:hover{background:var(--green-2);transform:translateY(-2px);
  box-shadow:0 10px 30px -12px rgba(58,226,149,.6)}
.pp-btn:active{transform:translateY(0)}
.pay-cards{height:22px;width:auto;opacity:.9}
.pay-by{
  margin:0;display:flex;align-items:center;gap:6px;
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;color:var(--tx-dim);
}
.pay-by img{height:14px;width:auto}

/* ---------- requisites ---------- */
.req{
  margin-top:22px;background:var(--ink);border:1px solid var(--line);
  border-radius:var(--r);padding:clamp(22px,2.6vw,30px);
}
.req h3{font-size:17px;color:var(--green);margin:0 0 18px;
  font-family:var(--f-mono);font-weight:700;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase}
.req-d{
  /* three items: one clean row, collapsing straight to a single column on phones —
     a 2-column step would leave a ragged empty cell */
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0;
  background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;
}
.req-d > div{background:var(--ink-2);padding:14px 16px;min-width:0}
.req-d-2{grid-template-columns:repeat(2,1fr)}
.req-d dt{
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--tx-dim);margin:0 0 6px;
}
.req-d dd{
  margin:0;font-family:var(--f-mono);font-size:14px;font-weight:700;color:var(--tx);
  letter-spacing:.01em;overflow-wrap:anywhere;
}

/* ---------- press ---------- */
.press{list-style:none;margin:38px 0 0;padding:0;border-top:1px solid var(--line)}
.press li{border-bottom:1px solid var(--line)}
.press a{
  display:flex;align-items:baseline;gap:20px;padding:18px 4px;text-decoration:none;
  transition:background .18s,padding .18s;
}
.press a:hover{background:rgba(58,226,149,.05);padding-inline:14px}
.press .src{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--green);flex:none;width:118px;
}
.press .ttl{font-size:16.5px;font-weight:600;color:var(--tx-dim);transition:color .18s;line-height:1.45}
.press a:hover .ttl{color:var(--tx)}

/* ---------- footer ---------- */
.ftr{background:var(--ink-2);border-top:1px solid var(--line);padding:52px 0 26px}
.ftr-in{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start}
.ftr-brand{display:flex;gap:15px;align-items:center;max-width:44ch}
.ftr-brand img{border-radius:10px;flex:none}
.ftr-brand p{margin:0;font-size:14.5px;color:var(--tx-dim);line-height:1.55}
.ftr-links{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:14.5px;font-weight:600}
.ftr-links a{text-decoration:none;color:var(--green)}
.ftr-links a:hover{color:var(--green-2)}
.ftr-btm{
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:36px;padding-top:20px;border-top:1px solid var(--line);
}
.ftr-btm p{margin:0;font-family:var(--f-mono);font-size:11.5px;color:var(--tx-dim);letter-spacing:.05em}
.ftr-next{color:var(--green)!important}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .nav{display:none}
  .cross,.next-grid,.ask{grid-template-columns:1fr}
  .next-card{position:static}
  .stats{grid-template-columns:1fr 1fr}
  .stats li:nth-child(2n){border-right:0}
  .stats li:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media (max-width:640px){
  body{font-size:16px}
  .hdr-in{height:96px;gap:12px}
  .hdr.small .hdr-in{height:60px}
  .brand img{width:66px;height:66px}
  .hdr.small .brand img{width:38px;height:38px}
  .brand-tx{display:none}
  .ch-front{flex-wrap:wrap;gap:12px;row-gap:14px}
  .chan-b{flex-basis:calc(100% - 58px)}
  .chan .tag{margin-left:46px}
  .ch-back-in{padding:18px 12px 16px}
  .ch-why{font-size:14.5px}
  .ch-d{grid-template-columns:1fr}
  .req-d{grid-template-columns:1fr}
  .crew-g{grid-template-columns:1fr}
  /* ~95px a cell here, which breaks "16 val. 20 min." across two lines — stack instead */
  .cx-d{grid-template-columns:1fr}
  .pay{grid-template-columns:1fr;gap:20px}
  /* at 15px the address needs 283px and the card offers 269px, so it would break
     mid-address. One step down keeps it on a single line; the wrap rule above is
     still there as a safety net on phones narrower than this. */
  .btn-mail{font-size:14px;padding-inline:8px}
  /* the map is ~305px wide here, so a 4.1-unit name renders at 3.3px — unreadable.
     Drop the names, keep the numbers big enough to read, and let the list below
     supply the names. Dots scale a little less so the labels still clear them. */
  .mk-name{display:none}
  .mk-n{font-size:8px;stroke-width:2.4}
  .mk-i{opacity:1}
  .mk-next .mk-n{font-size:8px}
  .mk-dot,.mk-ring{transform-box:fill-box;transform-origin:center;transform:scale(1.4)}
  .map-key{gap:6px 14px}
  .press a{flex-direction:column;gap:6px}
  .press .src{width:auto}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .stats li{padding:20px 16px}
}
