/* QSL Connect — qslconnect.com
   Design tokens first, then base, layout, components, pages. */
:root{
  --navy:#0B1220; --navy-2:#111B30; --navy-3:#1A2742;
  --blue:#0B63F6; --blue-d:#0A4FD0; --cyan:#2DB7FF; --green:#22C58B;
  --ink:#0F172A; --muted:#5B6678; --line:#E3E9F2; --bg:#F5F8FD; --white:#fff;
  --purple:#7C3AED; --orange:#F97316; --red:#EF4444; --yellow:#FFD23F;
  --stripe:#635BFF; --paypal:#0A2F86; --kofi:#FF5E5B;
  --radius:18px; --radius-sm:12px;
  --shadow:0 1px 2px rgba(15,23,42,.05),0 10px 30px rgba(15,23,42,.08);
  --shadow-lg:0 2px 4px rgba(15,23,42,.06),0 24px 60px rgba(15,23,42,.16);
  --font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-d:'Plus Jakarta Sans','Inter',system-ui,sans-serif;
  --hand:'Caveat','Segoe Script',cursive;
  --maxw:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);color:var(--ink);background:#fff;line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--font-d);line-height:1.12;margin:0 0 .5em;letter-spacing:-.02em;font-weight:800}
h1{font-size:clamp(2.5rem,5.4vw,4.1rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.7rem)}
h3{font-size:1.2rem;letter-spacing:-.01em}
p{margin:0 0 1em}
.wrap{width:min(var(--maxw),100% - 40px);margin-inline:auto}
.icon{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:var(--ink);padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}
.eyebrow{display:inline-block;font:700 .78rem var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:.9rem}
.lead{font-size:1.18rem;color:var(--muted);max-width:60ch}
.center{text-align:center}.center .lead{margin-inline:auto}
section{padding:92px 0}
.alt{background:var(--bg)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;font:700 1rem var(--font-d);padding:.95em 1.5em;border-radius:14px;border:0;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;text-decoration:none!important;line-height:1.1}
.btn:hover{transform:translateY(-2px)}
.btn .icon{font-size:1.2em}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 22px rgba(11,99,246,.35)}
.btn-primary:hover{background:var(--blue-d)}
.btn-dark{background:#fff;color:var(--navy);box-shadow:0 8px 22px rgba(0,0,0,.25)}
.btn-ghost{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.28)}
.btn-ghost:hover{background:rgba(255,255,255,.18)}
.btn-outline{background:#fff;color:var(--ink);border:1.5px solid var(--line)}
.btn-lg{font-size:1.08rem;padding:1.05em 1.7em}
.btn.is-pending{opacity:.92}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(11,18,32,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.07)}
.nav{display:flex;align-items:center;gap:28px;height:72px}
.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none!important}
.brand svg{width:40px;height:40px}
.brand-name{font:800 1.45rem var(--font-d);letter-spacing:-.03em;line-height:1}
.brand-name b{color:var(--cyan);font-weight:800}
.brand-tag{display:block;font:500 .66rem var(--font);letter-spacing:.04em;color:#9FB0CC;margin-top:3px}
.nav-links{display:flex;gap:6px;margin-left:auto;align-items:center}
.nav-links a{color:#CFD9EA;font:600 .95rem var(--font);padding:.55em .95em;border-radius:10px;text-decoration:none}
.nav-links a:hover,.nav-links a[aria-current=page]{color:#fff;background:rgba(255,255,255,.09)}
.nav-links .btn{padding:.7em 1.15em;font-size:.95rem;margin-left:8px}
.nav-links .btn.btn-heart{background:linear-gradient(135deg,#ff5d7a,#ef3f6e);color:#fff;box-shadow:0 6px 18px rgba(239,63,110,.4)}
.nav-toggle{display:none;margin-left:auto;background:none;border:0;color:#fff;font-size:1.7rem;padding:8px;cursor:pointer}

/* ---------- Hero (home) ---------- */
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden;padding:84px 0 0}
.hero .scenic{position:absolute;inset:0;pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:center;padding-bottom:150px}
.hero h1{color:#fff;margin-bottom:.4em}
.hero h1 em{font-style:normal;background:linear-gradient(90deg,#4FC3FF,#5EEAB4);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{color:#C4D0E6;font-size:1.22rem}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin:30px 0 22px}
.hero-chips{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.hero-chips li{display:flex;align-items:center;gap:8px;font:600 .88rem var(--font);color:#D5E0F3;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);padding:.45em .9em;border-radius:99px}
.hero-chips .icon{color:var(--green)}
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;height:70px;fill:#fff}

/* App mock */
.mock-stage{position:relative;padding:10px 0 30px 0}
.win{background:linear-gradient(180deg,#0F1A30,#0B1424);border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden;color:#DCE6F7;font-size:13px;line-height:1.4}
.win-bar{display:flex;align-items:center;gap:7px;padding:10px 14px;background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.07)}
.win-bar i{width:10px;height:10px;border-radius:50%;background:#34425F}
.win-bar span{margin-left:8px;font:600 12px var(--font);color:#8CA0C4}
.win-body{display:grid;grid-template-columns:54px 1fr;min-height:330px}
.win-side{background:rgba(0,0,0,.22);display:flex;flex-direction:column;gap:10px;align-items:center;padding:14px 0}
.win-side span{width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.07);display:grid;place-items:center;color:#7F93B8;font-size:15px}
.win-side span.on{background:var(--blue);color:#fff}
.win-main{padding:16px;display:grid;gap:12px}
.cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mini{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px 10px}
.mini small{display:block;color:#7F93B8;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.mini b{font:700 13px var(--font-d);color:#fff}
.mini .ok{color:var(--green)}
.scope{position:relative;border-radius:12px;background:radial-gradient(120% 140% at 50% 0%,#14264A,#0A1220);border:1px solid rgba(255,255,255,.08);height:112px;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding:0 12px 10px;overflow:hidden}
.scope i{flex:1;max-width:9px;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--cyan),#1B6BFF);animation:eq 1.3s ease-in-out infinite alternate;height:30%}
.scope .tg{position:absolute;inset:0;display:grid;place-items:center;font:800 54px var(--font-d);color:rgba(255,255,255,.12);letter-spacing:-.04em}
.caller{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px 12px}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#2DB7FF,#7C3AED);display:grid;place-items:center;font:800 13px var(--font-d);color:#fff;flex:none}
.caller b{display:block;color:#fff;font-size:14px}
.caller small{color:#8CA0C4}
.ptt{margin-left:auto;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#4DE3A8,#16A36B);display:grid;place-items:center;color:#06281C;font-size:24px;box-shadow:0 0 0 6px rgba(34,197,139,.18),0 8px 18px rgba(0,0,0,.4)}
@keyframes eq{0%{height:14%}100%{height:88%}}
.phone{position:absolute;right:-14px;bottom:-34px;width:168px;border-radius:26px;background:#0A1322;border:6px solid #1B2744;box-shadow:var(--shadow-lg);padding:14px 11px 14px;color:#DCE6F7;font-size:10.5px}
.phone .notch{width:46px;height:5px;border-radius:9px;background:#1B2744;margin:0 auto 10px}
.phone .pill{display:flex;align-items:center;gap:6px;background:rgba(34,197,139,.14);color:#58E0AE;border-radius:99px;padding:3px 9px;font-weight:700;width:max-content;margin-bottom:8px}
.phone .pill:before{content:"";width:6px;height:6px;border-radius:50%;background:#34D399}
.phone .big{text-align:center;font:800 26px var(--font-d);color:#fff;margin:6px 0}
.phone .ptt{margin:10px auto 6px;width:84px;height:84px;font-size:36px}
.phone .row{display:flex;justify-content:space-between;color:#8CA0C4;margin-top:8px}
.mock-note{margin:14px 0 0;font-size:.74rem;color:#7F93B8;text-align:center}

/* ---------- Feature cards ---------- */
.grid{display:grid;gap:22px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.card h3{margin-bottom:.4em}
.card p{color:var(--muted);margin:0;font-size:.98rem}
.ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:24px;color:#fff;margin-bottom:18px}
.c-blue{background:linear-gradient(135deg,#2DB7FF,#0B63F6)}
.c-green{background:linear-gradient(135deg,#34D399,#0E9F6E)}
.c-purple{background:linear-gradient(135deg,#A78BFA,#7C3AED)}
.c-orange{background:linear-gradient(135deg,#FDBA74,#F97316)}
.c-red{background:linear-gradient(135deg,#FB7185,#EF4444)}
.c-teal{background:linear-gradient(135deg,#5EEAD4,#0D9488)}
.section-head{margin-bottom:46px}
.link-arrow{display:inline-flex;align-items:center;gap:.4em;font:700 1rem var(--font-d);margin-top:26px}

/* steps */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.step{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px 28px}
.step:before{counter-increment:s;content:counter(s);position:absolute;top:-18px;left:26px;width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font:800 1.05rem var(--font-d);box-shadow:0 6px 14px rgba(11,99,246,.4)}
.step p{color:var(--muted);margin:0;font-size:.98rem}

/* platform cards */
.platform{display:flex;flex-direction:column;gap:6px}
.platform .ph{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.platform .ph .ico{margin:0}
.ver{display:inline-block;font:700 .74rem var(--font);background:var(--bg);border:1px solid var(--line);color:var(--muted);padding:.2em .7em;border-radius:99px}
.tick{list-style:none;padding:0;margin:14px 0 22px;display:grid;gap:9px}
.tick li{display:flex;gap:10px;align-items:flex-start;color:#334155;font-size:.97rem}
.tick .icon{color:var(--green);margin-top:.28em;font-size:1.05em}
.platform .btn{align-self:flex-start;margin-top:auto}

/* ---------- Support / donation (matches reference layout) ---------- */
.support-hero{position:relative;background:var(--navy);overflow:hidden;color:#fff}
.support-hero .scenic{position:absolute;inset:0;pointer-events:none}
.support-hero .wrap{position:relative}
.support-top{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center;padding:58px 0 130px}
.support-hero .tagline{position:absolute;right:6%;top:30px;font:700 1.7rem/1.05 var(--hand);color:#fff;transform:rotate(-7deg);text-align:center;text-shadow:0 2px 12px rgba(0,0,0,.4)}
.support-hero .tagline:after{content:"";display:block;height:3px;border-radius:3px;background:#fff;margin:6px 0 0 10%;width:80%;transform:rotate(-2deg)}
.support-hero h1{color:#fff;font-size:clamp(2.6rem,5.4vw,4.2rem)}
.support-hero h1 em{font-style:normal;color:#4FA8FF}
.support-hero .sub{font:700 1.15rem var(--font-d);margin-bottom:.5em;color:#fff}
.support-hero p.lead{color:#D4DEEE;font-size:1.12rem}
.support-wave{position:absolute;left:0;right:0;bottom:-1px;height:90px;fill:#fff}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px;max-width:640px}
.pillar{text-align:center;font:500 .9rem/1.3 var(--font);color:#E6EDF9}
.pillar .ico{width:54px;height:54px;border-radius:50%;margin:0 auto 10px;font-size:26px;box-shadow:0 8px 18px rgba(0,0,0,.3)}
.mug-wrap{position:relative;display:grid;place-items:center}
.mug-wrap svg{width:min(330px,100%);filter:drop-shadow(0 24px 30px rgba(0,0,0,.45))}
.on-white{background:#fff;color:var(--ink)}
.support-sec{padding:34px 0 20px}
.support-sec h2{margin-bottom:.15em}
.support-sec .sub{color:var(--muted);font-size:1.08rem;margin-bottom:34px}
.support-sec .sub strong{color:#334155}

/* tiers */
.freq{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:5px;gap:4px;margin:0 0 26px}
.freq button{font:700 .98rem var(--font-d);border:0;background:transparent;color:var(--muted);padding:.7em 1.4em;border-radius:10px;cursor:pointer}
.freq button[aria-pressed=true]{background:#fff;color:var(--blue);box-shadow:0 2px 8px rgba(15,23,42,.12)}
.tiers{display:none;grid-template-columns:repeat(5,1fr);gap:16px}
.tiers.show{display:grid}
.tiers.monthly{grid-template-columns:repeat(4,1fr)}
.tier{position:relative;display:flex;flex-direction:column;text-align:left;background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:24px 20px 20px;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}
.tier:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.tier[aria-pressed=true]{border-color:var(--blue);box-shadow:0 0 0 4px rgba(11,99,246,.13),var(--shadow)}
.tier .amt{font:800 2.3rem var(--font-d);letter-spacing:-.04em;line-height:1}
.tier .amt sup{font-size:1rem;vertical-align:top;position:relative;top:.35em;margin-right:2px}
.tier .amt small{font:600 .85rem var(--font);color:var(--muted);letter-spacing:0}
.tier h3{font-size:1.02rem;margin:.7em 0 .35em}
.tier p{font-size:.88rem;color:var(--muted);margin:0 0 12px;line-height:1.45}
.tier ul{list-style:none;padding:0;margin:auto 0 0;display:grid;gap:6px;font-size:.84rem;color:#334155}
.tier li{display:flex;gap:7px;align-items:flex-start}
.tier li .icon{color:var(--green);margin-top:.22em;font-size:.95em}
.tier .badge{position:absolute;top:-12px;left:18px;background:linear-gradient(135deg,#FFB020,#F97316);color:#fff;font:800 .68rem var(--font);letter-spacing:.08em;text-transform:uppercase;padding:.35em .8em;border-radius:99px}
.tier .chk{position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:#fff;font-size:13px}
.tier[aria-pressed=true] .chk{background:var(--blue);border-color:var(--blue)}
.custom{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px}
.custom label{font:700 .98rem var(--font-d)}
.custom .field{display:flex;align-items:center;background:#fff;border:2px solid var(--line);border-radius:12px;padding:0 14px;font:800 1.2rem var(--font-d)}
.custom .field:focus-within{border-color:var(--blue)}
.custom input{border:0;outline:0;font:800 1.2rem var(--font-d);width:90px;padding:.55em .3em;background:transparent;color:var(--ink)}
.custom span.note{color:var(--muted);font-size:.9rem}
.summary{margin-top:22px;display:flex;align-items:center;gap:12px;font:600 1rem var(--font);color:#334155}
.summary .pill{background:rgba(11,99,246,.1);color:var(--blue);font:800 1rem var(--font-d);padding:.4em .95em;border-radius:99px}

/* method cards */
.methods{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:stretch}
.method{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1.5px solid #DCE6F7;border-radius:22px;padding:34px 22px 24px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 14px 34px rgba(30,64,140,.08)}
.method .pillrec{position:absolute;top:-14px;left:16px;background:#E8F0FF;border:1px solid #BFD3FB;color:var(--blue);font:800 .72rem var(--font);letter-spacing:.06em;text-transform:uppercase;padding:.4em .95em;border-radius:99px}
.method .logo{height:62px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px}
.wm-stripe{font:800 2.6rem var(--font-d);letter-spacing:-.06em;color:var(--stripe)}
.wm-paypal{font:800 italic 2.1rem var(--font-d);letter-spacing:-.04em;color:var(--paypal)}
.wm-paypal i{color:#1B8BE6;font-style:italic}
.wm-kofi{font:800 2rem var(--font-d);letter-spacing:-.04em;color:#222}
.kofi-ico{width:56px;height:44px;border-radius:14px;background:#29ABE0;display:grid;place-items:center;color:#fff}
.kofi-ico svg{width:30px;height:30px}
.method h3{font-size:1.22rem;margin:.1em 0 .5em}
.method p{color:#475569;font-size:.97rem;margin:0 0 16px}
.pay-badges{display:flex;gap:8px;justify-content:center;margin:0 0 20px;flex-wrap:wrap}
.pay-badges span{height:32px;min-width:50px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:#fff;display:inline-flex;align-items:center;justify-content:center;font:800 .78rem var(--font-d);color:#1A1F71;letter-spacing:.02em}
.pay-badges .mc{gap:0}.pay-badges .mc i{width:16px;height:16px;border-radius:50%;display:block}
.pay-badges .mc i:first-child{background:#EB001B}.pay-badges .mc i:last-child{background:#F79E1B;margin-left:-6px;mix-blend-mode:multiply}
.pay-badges .ap,.pay-badges .gp{color:#111;font-weight:700}
.method .btn{margin-top:auto;width:100%;color:#fff;padding:1em 1em;font-size:1.02rem}
.method .btn .icon{font-size:1.1em}
.btn-stripe{background:var(--blue);box-shadow:0 8px 20px rgba(11,99,246,.3)}
.btn-paypal{background:#0B2E86}
.btn-kofi{background:#FF5B58}
.btn-coffee{background:#FFD21F;color:#1E1A00!important}
.method--coffee{background:linear-gradient(180deg,#FFF6D2,#FFEFB8);border-color:#FFE389;padding:0;overflow:hidden}
.method--coffee .dog{position:relative;width:100%}
.method--coffee .dog img{width:100%;aspect-ratio:287/207;object-fit:cover}
.method--coffee .dog .scrawl{position:absolute;right:8px;top:4px;font:700 1.1rem/1 var(--hand);color:#222;transform:rotate(-6deg)}
.method--coffee .inner{padding:8px 20px 22px;display:flex;flex-direction:column;align-items:center;flex:1;width:100%}
.method .micro{font-size:.78rem;color:#7A8599;margin:10px 0 0;min-height:1.2em}
.community{display:flex;align-items:center;gap:26px;margin-top:34px;background:linear-gradient(90deg,#E6F0FF,#EEF4FF);border:1px solid #D3E2FB;border-radius:24px;padding:26px 34px}
.community .big-ico{width:84px;height:84px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:42px;flex:none;box-shadow:0 10px 24px rgba(11,99,246,.35)}
.community h3{font-size:1.3rem;margin-bottom:.2em}
.community p{margin:0;color:#475569}
.community .hand{margin-left:auto;font:700 1.55rem/1.1 var(--hand);color:#27407A;transform:rotate(-5deg);text-align:left;flex:none}
.trust{display:grid;grid-template-columns:repeat(4,1fr);margin-top:34px;padding-bottom:70px}
.trust>div{display:flex;gap:14px;align-items:flex-start;padding:4px 22px;border-left:1px solid var(--line)}
.trust>div:first-child{border-left:0;padding-left:0}
.trust .ico{width:52px;height:52px;flex:none;border-radius:50%;font-size:24px;margin:0}
.trust b{display:block;font:700 1rem var(--font-d);margin-bottom:2px}
.trust span{color:var(--muted);font-size:.88rem;line-height:1.4;display:block}

/* home donate section wrapper */
.donate-home{background:#fff;padding:0}
.donate-home .support-hero{border-radius:0}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{position:relative;background:var(--navy);color:#fff;padding:84px 0 96px;overflow:hidden}
.page-hero .scenic{position:absolute;inset:0;opacity:.9;pointer-events:none}
.page-hero .wrap{position:relative}
.page-hero h1{color:#fff;font-size:clamp(2.3rem,4.8vw,3.6rem)}
.page-hero .lead{color:#C4D0E6}
.page-hero .support-wave{height:56px}

/* feature rows */
.frow{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:34px 0}
.frow.rev .ftext{order:2}
.ftext h2{font-size:clamp(1.7rem,3vw,2.2rem)}
.ftext p{color:var(--muted)}
.fvis{background:linear-gradient(135deg,#0F1A30,#13264A);border-radius:var(--radius);padding:26px;min-height:240px;display:grid;place-items:center;box-shadow:var(--shadow-lg);color:#DCE6F7}
.fvis .stack{width:100%;display:grid;gap:10px}
.row-i{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:11px 14px;font-size:14px}
.row-i b{color:#fff}.row-i small{color:#8CA0C4;margin-left:auto}
.row-i .dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex:none}
.row-i .dot.o{background:var(--orange)}.row-i .dot.b{background:var(--cyan)}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}
.kpi{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:14px;text-align:center}
.kpi b{display:block;font:800 1.6rem var(--font-d);color:#fff}.kpi small{color:#8CA0C4;font-size:.78rem}
table.cmp{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);font-size:.97rem}
.cmp th,.cmp td{padding:15px 20px;text-align:left;border-bottom:1px solid var(--line)}
.cmp thead th{background:var(--navy);color:#fff;font:700 .95rem var(--font-d)}
.cmp td:not(:first-child),.cmp th:not(:first-child){text-align:center;width:22%}
.cmp tr:last-child td{border-bottom:0}
.cmp .yes{color:var(--green);font-size:1.25rem}
.cmp .no{color:#A6B1C4}
.notice{background:#FFF8E6;border:1px solid #FDE2A1;border-radius:var(--radius-sm);padding:16px 20px;color:#6B4E00;font-size:.95rem}
.notice strong{color:#4D3800}
.faq{display:grid;gap:12px;max-width:820px;margin-inline:auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px 22px}
.faq summary{cursor:pointer;font:700 1.05rem var(--font-d);padding:16px 0;list-style:none;display:flex;justify-content:space-between;gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:1.5rem;line-height:1;color:var(--blue)}
.faq details[open] summary:after{content:"–"}
.faq details p{color:var(--muted);margin:0 0 18px}
.dl-card{display:flex;flex-direction:column;align-items:flex-start}
.req{margin:0;padding:0;list-style:none;color:var(--muted);font-size:.93rem;display:grid;gap:6px}
.play-btn{background:#000;color:#fff;border:1px solid #444}
.play-btn small{display:block;font:500 .66rem var(--font);letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.play-btn b{display:block;font:700 1.15rem var(--font-d);line-height:1}
.play-btn .icon{font-size:1.8em;fill:currentColor;stroke:none}
.prose{max-width:760px;margin-inline:auto}
.prose h2{font-size:1.6rem;margin-top:2em}
.prose h3{margin-top:1.6em}
.prose p,.prose li{color:#334155}
.prose ul{padding-left:1.2em}

/* ---------- Footer ---------- */
.cta-band{background:linear-gradient(135deg,#0B63F6,#2D5BFF 50%,#7C3AED);color:#fff;border-radius:28px;padding:54px 48px;display:flex;align-items:center;gap:30px;justify-content:space-between;flex-wrap:wrap}
.cta-band h2{color:#fff;margin:0 0 .2em;font-size:clamp(1.7rem,3vw,2.3rem)}
.cta-band p{margin:0;color:#DCE6FF}
.site-footer{background:var(--navy);color:#9FB0CC;padding:64px 0 34px;font-size:.93rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.site-footer h4{color:#fff;font:700 .85rem var(--font);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1em}
.site-footer a{color:#B9C7DE;display:block;padding:.28em 0}
.site-footer a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.09);margin-top:44px;padding-top:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.84rem}
.foot-bottom p{margin:0;max-width:760px}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,30px);background:#0F172A;color:#fff;padding:14px 20px;border-radius:14px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:.25s;z-index:200;max-width:92vw;font-size:.93rem}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- Responsive ---------- */
@media(max-width:1020px){
  .hero-grid,.support-top,.frow{grid-template-columns:1fr}
  .frow.rev .ftext{order:0}
  .mock-stage{max-width:620px}
  .g3,.steps{grid-template-columns:1fr 1fr}
  .g4,.methods{grid-template-columns:1fr 1fr}
  .tiers,.tiers.monthly{grid-template-columns:repeat(2,1fr)}
  .trust{grid-template-columns:1fr 1fr;gap:26px 0}
  .trust>div:nth-child(3){border-left:0;padding-left:0}
  .mug-wrap{order:-1;max-width:260px;margin:0 auto}
  .support-top{padding-top:44px}
  .support-hero .tagline{display:none}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:780px){
  body{font-size:16px}
  section{padding:68px 0}
  .nav-toggle{display:block}
  .nav-links{position:absolute;left:0;right:0;top:72px;background:var(--navy);flex-direction:column;align-items:stretch;padding:12px 20px 22px;display:none;border-bottom:1px solid rgba(255,255,255,.1)}
  .nav-links.open{display:flex}
  .nav-links .btn{margin:8px 0 0}
  .g3,.g2,.steps,.g4{grid-template-columns:1fr}
  .methods{grid-template-columns:1fr}
  .pillars{grid-template-columns:1fr 1fr}
  .community{flex-direction:column;text-align:center;padding:28px 22px}
  .community .hand{margin:0;text-align:center}
  .cta-band{padding:38px 26px}
  .win-body{grid-template-columns:1fr}.win-side{display:none}
  .cards4{grid-template-columns:1fr 1fr}
  .phone{display:none}
  .trust{grid-template-columns:1fr}
  .trust>div{border-left:0;padding-left:0}
  .foot-grid{grid-template-columns:1fr}
  .tiers,.tiers.monthly{grid-template-columns:1fr}
  .cmp th,.cmp td{padding:12px 10px;font-size:.88rem}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.scenic{width:100%;height:100%;display:block}

/* Static donation banner (sticks with the header) */
.donate-bar{display:block;background:linear-gradient(90deg,#EF3F6E,#F0613F 50%,#F59E0B);color:#fff;text-decoration:none!important;font:600 .95rem/1.3 var(--font)}
.donate-bar:hover{filter:brightness(1.06)}
.db-in{width:min(var(--maxw),100% - 40px);margin-inline:auto;display:flex;align-items:center;justify-content:center;gap:12px;padding:9px 0}
.db-heart{display:grid;place-items:center;font-size:1.15rem;animation:beat 1.8s ease-in-out infinite}
.db-heart .icon{fill:#fff}
.db-btn{display:inline-flex;align-items:center;gap:6px;background:#fff;color:#C0214D;font:800 .85rem var(--font-d);padding:.45em 1em;border-radius:99px;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.2)}
@keyframes beat{0%,60%,100%{transform:scale(1)}30%{transform:scale(1.2)}}
@media(max-width:780px){
  .nav-links{top:100%!important}
  .db-long{display:none}
  .db-in{gap:10px;font-size:.86rem;justify-content:space-between}
}

/* Supporters wall */
[hidden]{display:none!important}
.wall{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:900px;margin-inline:auto}
.sup{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:99px;padding:.55em 1.1em;box-shadow:var(--shadow);font-size:.97rem}
.sup span{font:800 .7rem var(--font);letter-spacing:.06em;text-transform:uppercase;color:#B4531A;background:#FFF1E0;padding:.3em .7em;border-radius:99px}
.wall-note{display:flex;gap:10px;align-items:flex-start;margin-top:16px;max-width:720px;background:#FFF8E6;border:1px solid #FDE2A1;color:#6B4E00;border-radius:12px;padding:12px 16px;font-size:.93rem}
.wall-note .icon{margin-top:.25em;flex:none}

/* ---- Support Development (Ko-fi) ---- */
.btn-support{background:linear-gradient(135deg,#FF5D7A,#EF3F6E);color:#fff;box-shadow:0 10px 26px rgba(239,63,110,.45)}
.btn-xl{font-size:1.2rem;padding:1.15em 1.6em}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin:26px 0 8px}
.on-dark-note{display:inline-flex;align-items:center;gap:8px;font:600 .9rem var(--font);color:#C4D0E6}
.on-dark-note .icon{color:var(--green)}
.kofi-card{display:grid;grid-template-columns:.9fr 1.1fr;background:#fff;border:1.5px solid #FFE389;border-radius:26px;overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.04),0 20px 50px rgba(30,64,140,.12)}
.kofi-dog{position:relative;background:linear-gradient(180deg,#FFF6D2,#FFEFB8);display:grid;place-items:center;min-height:260px}
.kofi-dog img{width:100%;height:100%;object-fit:cover}
.kofi-dog .scrawl{position:absolute;right:12px;top:8px;font:700 1.4rem/1 var(--hand);color:#222;transform:rotate(-6deg)}
.kofi-main{padding:38px 40px 34px;display:flex;flex-direction:column;align-items:flex-start}
.kofi-main .logo{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.kofi-main h3{font-size:1.5rem;margin-bottom:.7em}
.how{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:10px;width:100%}
.how li{display:flex;align-items:center;gap:12px;color:#334155;font-weight:500}
.how b{width:30px;height:30px;border-radius:50%;background:#E8F0FF;color:var(--blue);display:grid;place-items:center;font:800 .95rem var(--font-d);flex:none}
.kofi-main .btn{width:100%;color:#fff}
.kofi-main .micro{font-size:.84rem;color:#7A8599;margin:10px 0 18px;text-align:center;width:100%}
.kofi-main .pay-badges{justify-content:flex-start;margin:0 0 8px}
.pay-badges .pp{gap:0}
.kofi-main .fine{font-size:.78rem;color:#8A94A6;margin:0}
.kofi-main .wall-note{margin-top:18px}
.covers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}
.covers>div{display:flex;flex-direction:column;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.covers .ico{width:44px;height:44px;font-size:22px;margin-bottom:10px}
.covers b{font:700 1.02rem var(--font-d)}
.covers span:not(.ico){color:var(--muted);font-size:.92rem}
@media(max-width:1020px){.kofi-card{grid-template-columns:1fr}.kofi-dog{min-height:0}.kofi-dog img{height:auto;max-height:300px}.covers{grid-template-columns:1fr}}
@media(max-width:780px){.kofi-main{padding:28px 22px}.hero-cta .btn{width:100%}}
@media(max-width:780px){.db-heart{display:none}.db-text b{font-size:.82rem;line-height:1.25;display:block}.db-btn{font-size:.78rem;padding:.5em .85em}}
