
:root{
  --ink:#16243C; --ink-2:#22324f; --pass:#1F9D5B; --pass-soft:#e6f4ec;
  --paper:#FBFAF6; --line:#E7E3D8; --spark:#F4B43A; --muted:#5d6b80;
  --r:18px;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji",sans-serif;color:var(--ink);background:var(--paper);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
svg{display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
h1,h2,h3{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;line-height:1.06;letter-spacing:-.02em;margin:0}
p{margin:0 0 1em}
.mono{font-family:"Space Mono",monospace}
.muted{color:var(--muted)}

/* ---- Redesign nav (prototype) ---- */
header.site{position:sticky;top:0;z-index:50;background:rgba(251,250,246,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.site .nav{display:flex;align-items:center;justify-content:space-between;height:66px}
header.site .brand{display:flex;align-items:center;gap:10px;font-family:"Bricolage Grotesque";font-weight:800;font-size:20px;letter-spacing:-.02em;text-decoration:none}
header.site .mark{width:34px;height:34px;border-radius:8px;object-fit:contain;display:block}
header.site .brand .bp{color:var(--pass)}
.navlinks{display:flex;gap:28px;font-size:15px;font-weight:500;color:var(--ink-2)}
.navlinks a{text-decoration:none}.navlinks a:hover{color:var(--pass)}
.navright{display:flex;align-items:center;gap:18px}
.login{font-size:15px;font-weight:600;color:var(--ink-2);text-decoration:none;white-space:nowrap}
.login:hover{color:var(--pass)}
@media(max-width:780px){.navlinks{display:none}}
.btn-pri{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;border-radius:12px;padding:11px 18px;font-size:15px;transition:transform .15s ease,box-shadow .15s ease;cursor:pointer;border:none;background:var(--pass);color:#fff;box-shadow:0 6px 18px rgba(31,157,91,.28)}
.btn-pri:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(31,157,91,.34)}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;border-radius:12px;padding:11px 18px;font-size:15px;transition:.15s;cursor:pointer;border:1.5px solid var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}

/* prototype JS-controlled ad slot (empty/hidden unless window.ADS=true) */
.adwrap{border-bottom:1px solid var(--line);background:#f3f1ea;padding:10px 0}
.adbox{height:90px;border:1px dashed #cfc8b6;border-radius:10px;display:grid;place-items:center;font-family:"Space Mono";font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#b3aa93}

/* Legacy banner ad slots — filled by /ad-top.js + /ad-bottom.js (hidden until filled) */
.ad-slot{display:none;background:#fff}
.ad-slot.show{display:block}
.ad-slot.ad-top{border-bottom:1px solid var(--line)}
.ad-slot.ad-bottom{border-top:1px solid var(--line)}
.ad-slot>.wrap{padding:10px 0;display:flex;justify-content:center}
.ad-banner{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  max-width:1080px;min-height:50px;padding:11px 18px;border-radius:12px;font-weight:700;
  font-size:14px;text-align:center;background:linear-gradient(135deg,#eff6ff,#e0e7ff);
  color:#1e3a8a;border:1px solid #dbe4ff}
.ad-banner:hover{filter:brightness(.99)}
.ad-banner img{max-width:100%;height:auto;display:block}

.hero{background:linear-gradient(180deg,var(--accent-soft),transparent);padding:56px 0 40px;border-bottom:1px solid #eef2f7}
.crumbs{font-size:13px;color:#64748b;margin-bottom:18px}
.crumbs a:hover{color:var(--accent)}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.02em;padding:5px 11px;border-radius:999px;background:#fff;border:1px solid #e2e8f0;color:#475569}
.pill.accent{background:var(--accent);color:#fff;border-color:transparent}
.pill.soft{background:var(--accent-soft);color:var(--accent);border-color:transparent}
h1.title{font-size:clamp(30px,5vw,46px);font-weight:800;max-width:18ch}
.lede{font-size:clamp(17px,2.3vw,20px);color:#334155;max-width:60ch;margin-top:16px}

.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:15px;padding:13px 20px;border-radius:13px;border:1px solid transparent;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;cursor:pointer}
.btn .ico{width:20px;height:20px;flex:none}
.btn.primary{background:var(--accent);color:#fff;box-shadow:0 8px 20px -8px var(--accent)}
.btn.primary:hover{filter:brightness(1.05);transform:translateY(-1px)}
.btn.ghost{background:#fff;color:#0f172a;border-color:#dbe2ea}
.btn.ghost:hover{border-color:#c3ccd6;transform:translateY(-1px)}
.btn .sub{display:flex;flex-direction:column;line-height:1.05;text-align:left}
.btn .sub small{font-size:10px;font-weight:600;opacity:.85;text-transform:uppercase;letter-spacing:.06em}
.btn .sub b{font-size:15px}

/* Vibrant store-download buttons — make "get it here" unmistakable */
.btn.store{position:relative;overflow:hidden;padding:14px 24px;border-radius:15px;font-size:16px}
.btn.store .ico{width:26px;height:26px}
.btn.store .sub small{opacity:.9}
.btn.store .sub b{font-size:17px}
.btn.webcta{background:linear-gradient(135deg,#6366f1,#8b5cf6,#ec4899);color:#fff;border:0;box-shadow:0 10px 24px -8px rgba(139,92,246,.6)}
.btn.webcta:hover{filter:brightness(1.06);transform:translateY(-2px) scale(1.02)}
.btn.webcta svg{color:#fff}
.qcard-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px dashed #e2e8f0;padding-top:4px;margin-top:6px}
.qcard-foot .qcard-ans{border-top:0;padding-top:0;margin-top:0;flex:1;min-width:160px}
.ans-unlock{flex:none;border:0;cursor:pointer;font-weight:800;font-size:13px;color:#fff;padding:8px 15px;border-radius:10px;background:linear-gradient(135deg,#6366f1,#ec4899);box-shadow:0 6px 16px -6px rgba(139,92,246,.55);transition:.12s}
.ans-unlock:hover{filter:brightness(1.07);transform:translateY(-1px)}
.fs-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}
.fs-modal[hidden]{display:none}
.fs-modal-bg{position:absolute;inset:0;background:rgba(15,23,42,.62)}
.fs-modal-card{position:relative;z-index:1;width:min(460px,94vw);height:min(740px,92vh);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 40px 90px -20px rgba(0,0,0,.55)}
.fs-modal-card iframe{width:100%;height:100%;border:0;display:block}
.fs-modal-x{position:absolute;top:8px;right:12px;z-index:2;background:rgba(255,255,255,.92);border:1px solid #e2e8f0;width:32px;height:32px;border-radius:50%;font-size:20px;line-height:1;cursor:pointer}
button.btn{font-family:inherit}
.btn.store.primary{
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 80%,#fff) 0%,var(--accent) 46%,color-mix(in srgb,var(--accent) 70%,#000) 100%);
  color:#fff;border:0;
  box-shadow:0 12px 28px -6px color-mix(in srgb,var(--accent) 62%,transparent),0 2px 6px -1px rgba(15,23,42,.28);
}
.btn.store.primary:hover{transform:translateY(-2px) scale(1.025);filter:brightness(1.07);
  box-shadow:0 20px 40px -8px color-mix(in srgb,var(--accent) 72%,transparent),0 4px 10px -2px rgba(15,23,42,.34)}
.btn.store.ghost{background:#0f172a;color:#fff;border-color:#0f172a;box-shadow:0 10px 24px -10px rgba(15,23,42,.7)}
.btn.store.ghost:hover{background:#1e293b;border-color:#1e293b;transform:translateY(-2px) scale(1.025);box-shadow:0 16px 32px -10px rgba(15,23,42,.7)}
/* animated sheen draws the eye to the primary CTA */
.btn.store.primary::after{content:"";position:absolute;top:0;left:-80%;width:48%;height:100%;pointer-events:none;
  background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.55) 50%,transparent 100%);
  transform:skewX(-20deg);animation:storeSheen 5s ease-in-out infinite}
@keyframes storeSheen{0%,58%{left:-80%}82%,100%{left:150%}}
@media (prefers-reduced-motion:reduce){.btn.store.primary::after{animation:none;display:none}.btn.store{transition:none}}

section.block{padding:48px 0}
section.block.alt{background:#fff;border-top:1px solid #eef2f7;border-bottom:1px solid #eef2f7}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
h2.head{font-size:clamp(23px,3.4vw,31px);font-weight:800;max-width:24ch}
.block .intro{margin-top:14px;max-width:64ch;color:#334155}

.topics{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.topics li{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #e7edf3;border-radius:13px;padding:15px 16px;font-weight:600}
.topics .chk{width:22px;height:22px;flex:none;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-top:1px}
.topics .chk svg{width:13px;height:13px}

.features{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px}
.feature{background:#fff;border:1px solid #e7edf3;border-radius:16px;padding:22px}
.feature .ico{width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.feature .ico svg{width:21px;height:21px}
.feature h3{font-size:17px;font-weight:800;margin-bottom:6px}
.feature p{margin:0;color:#475569;font-size:15px}

.faq{margin-top:22px;border-top:1px solid #e7edf3}
.faq details{border-bottom:1px solid #e7edf3}
.faq summary{cursor:pointer;list-style:none;padding:18px 4px;font-weight:700;font-size:17px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .plus{flex:none;width:22px;height:22px;color:var(--accent);transition:transform .2s ease}
.faq details[open] summary .plus{transform:rotate(45deg)}
.faq .answer{padding:0 4px 20px;color:#334155;max-width:70ch}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.card{display:flex;flex-direction:column;background:#fff;border:1px solid #e7edf3;border-radius:16px;padding:20px;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 30px -18px rgba(15,23,42,.4);border-color:var(--c,#cbd5e1)}
.card .ctag{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--c,#64748b)}
.card h3{font-size:17px;font-weight:800;margin:8px 0 6px}
.card p{font-size:14px;color:#64748b;margin:0 0 14px;flex:1}
.card .go{font-size:14px;font-weight:700;color:var(--c,#0f172a);display:inline-flex;align-items:center;gap:6px}
.card .badge{align-self:flex-start;font-size:11px;font-weight:700;color:#92400e;background:#fef3c7;border-radius:999px;padding:3px 9px;margin-bottom:10px}

.catsec{padding:34px 0}
.catsec .chead{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.catsec .dot{width:14px;height:14px;border-radius:50%}
.catsec h2{font-size:22px;font-weight:800}
.catsec .blurb{color:#64748b;max-width:60ch;margin:0}

.quiz{list-style:none;counter-reset:q;padding:0;margin:24px 0 0;display:grid;gap:14px}
.quiz>li.q{background:#fff;border:1px solid #e7edf3;border-radius:14px;padding:20px 22px;counter-increment:q}
.quiz .qtag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:3px 10px;margin-bottom:12px}
.quiz .stem{font-weight:700;font-size:17px;margin:0 0 14px;color:#0f172a}
.quiz .stem::before{content:"Q" counter(q) ". ";color:var(--accent);font-weight:800}
.quiz .opts{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:8px}
.quiz .opts li{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:#334155}
.quiz .opts .ltr{flex:none;width:24px;height:24px;border-radius:7px;background:#f1f5f9;color:#475569;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;margin-top:1px}
.quiz details.ans{border-top:1px dashed #e2e8f0;margin-top:4px}
.quiz details.ans summary{cursor:pointer;list-style:none;font-weight:700;font-size:14px;color:var(--accent);display:inline-flex;align-items:center;gap:6px;padding:12px 0 4px}
.quiz details.ans summary::-webkit-details-marker{display:none}
.quiz details.ans summary .plus{flex:none;width:18px;height:18px;transition:transform .2s ease}
.quiz details.ans[open] summary .plus{transform:rotate(45deg)}
.quiz .answer{padding:6px 0 4px}
.quiz .correct-line{margin:0 0 8px;font-size:15px;color:#0f172a}
.quiz .correct-line b{color:#15803d}
.quiz .expl{margin:0;font-size:14px;color:#475569;background:#f8fafc;border-left:3px solid var(--accent);padding:11px 14px;border-radius:0 8px 8px 0}
.quiznote{margin:20px 0 0;font-size:14px}

.practice{margin:22px 0 6px}
.pstart{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.pstart .btn.primary{font-size:16px;padding:14px 24px}
.pstart-note{font-size:14px;max-width:48ch}
.prunner{background:#fff;border:1px solid #e7edf3;border-radius:16px;padding:24px 24px 22px;box-shadow:0 14px 34px -22px rgba(15,23,42,.55)}
.prbar{display:flex;justify-content:space-between;gap:14px;font-size:13px;font-weight:800;letter-spacing:.02em;color:#64748b;margin-bottom:14px}
.prstem{font-weight:700;font-size:18px;line-height:1.4;margin:0 0 16px;color:#0f172a}
.propts{display:grid;gap:10px;margin-bottom:14px}
.propt{display:flex;gap:11px;align-items:flex-start;text-align:left;width:100%;font:inherit;font-size:15px;color:#0f172a;background:#f8fafc;border:1.5px solid #e7edf3;border-radius:11px;padding:13px 15px;cursor:pointer;transition:border-color .12s ease,background .12s ease}
.propt:hover:not(:disabled){border-color:var(--accent);background:#fff}
.propt .ltr{flex:none;width:24px;height:24px;border-radius:7px;background:#fff;border:1px solid #e2e8f0;color:#475569;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.propt:disabled{cursor:default}
.propt.correct{border-color:#16a34a;background:#f0fdf4}
.propt.correct .ltr{background:#16a34a;color:#fff;border-color:#16a34a}
.propt.wrong{border-color:#dc2626;background:#fef2f2}
.propt.wrong .ltr{background:#dc2626;color:#fff;border-color:#dc2626}
.prexpl{font-size:14px;color:#475569;background:#f8fafc;border-left:3px solid var(--accent);padding:12px 15px;border-radius:0 8px 8px 0;margin:0 0 16px}
.prexpl .verdict{font-weight:800;display:block;margin-bottom:4px}
.prexpl .verdict.ok{color:#15803d}
.prexpl .verdict.no{color:#b91c1c}
.practions{display:flex;gap:12px;flex-wrap:wrap}
.prdone{text-align:center;padding:6px 0 4px}
.prdone h3{font-size:21px;font-weight:800;margin-bottom:8px}
.prdone p{max-width:46ch;margin:0 auto 18px;color:#475569}

.ctaband{background:var(--accent);color:#fff;border-radius:20px;padding:36px;text-align:center;margin:8px 0}
.ctaband h2{font-size:26px;font-weight:800;color:#fff}
.ctaband p{color:rgba(255,255,255,.9);max-width:50ch;margin:10px auto 22px}
.ctaband .btn.primary{background:#fff;color:var(--accent)}
.ctaband .btn.store.primary{background:#fff;box-shadow:0 14px 30px -8px rgba(15,23,42,.45),0 0 0 1px rgba(255,255,255,.6)}
.ctaband .btn.store.primary::after{background:linear-gradient(115deg,transparent 0%,color-mix(in srgb,var(--accent) 28%,transparent) 50%,transparent 100%)}
.ctaband .btn.store.ghost{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.55);box-shadow:none}
.ctaband .btn.store.ghost:hover{background:rgba(255,255,255,.24)}
.ctaband .cta{justify-content:center}

footer.site{background:#0f172a;color:#cbd5e1;padding:48px 0 36px;margin-top:8px}
footer.site .brand{color:#fff;margin-bottom:8px}
footer.site .tagline{color:#94a3b8;max-width:48ch;margin-bottom:28px}
.fcols{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.fcol h4{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;margin:0 0 10px}
.fcol a{display:block;font-size:13px;color:#94a3b8;padding:3px 0}
.fcol a:hover{color:#fff}
.fbase{margin-top:34px;padding-top:20px;border-top:1px solid #1e293b;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13px;color:#64748b}

@media (max-width:760px){
  header.site nav{display:none}
  .topics,.features,.grid,.fcols{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr 1fr}
  .features{grid-template-columns:1fr}
  .fcols{grid-template-columns:1fr 1fr}
  .hero{padding:40px 0 32px}
  section.block{padding:38px 0}
}
@media (max-width:520px){
  .grid{grid-template-columns:1fr}
  .fcols{grid-template-columns:1fr}
}
/* Per-question page styles */
.q-hero{background:linear-gradient(180deg,var(--accent-soft),transparent);padding:48px 0 36px;border-bottom:1px solid #eef2f7}
.q-opts{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:10px}
.q-opt{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1.5px solid #e7edf3;border-radius:12px;padding:14px 16px;font-size:16px;color:#334155;cursor:pointer;transition:border-color .12s ease,background .12s ease}
.q-opt:hover{border-color:var(--accent);background:#f8fafc}
.q-opt .oltr{flex:none;width:28px;height:28px;border-radius:8px;background:#f1f5f9;color:#475569;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;margin-top:1px}
.q-opt.is-correct{border-color:#16a34a;background:#f0fdf4}
.q-opt.is-correct .oltr{background:#16a34a;color:#fff}
.q-opt.user-wrong{border-color:#dc2626;background:#fef2f2}
.q-opt.user-wrong .oltr{background:#dc2626;color:#fff}
.q-opt.done{cursor:default;pointer-events:none}
.q-opt.done:hover{border-color:#e7edf3;background:#fff}
.q-opt.done.is-correct:hover{border-color:#16a34a;background:#f0fdf4}
.q-opt.done.user-wrong:hover{border-color:#dc2626;background:#fef2f2}
.q-expl{display:none;background:#fff;border-left:4px solid #16a34a;border-radius:0 12px 12px 0;padding:16px 20px;margin:16px 0 0;color:#334155;font-size:15px;line-height:1.6}
.q-expl.revealed{display:block}
.q-expl .verdict{display:block;font-weight:800;color:#15803d;font-size:15px;margin-bottom:6px}
.q-user-verdict{display:block;font-weight:800;font-size:15px;margin-bottom:10px;padding:10px 14px;border-radius:8px}
.q-user-verdict.ok{color:#15803d;background:#f0fdf4}
.q-user-verdict.no{color:#b91c1c;background:#fef2f2}
.q-topic{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:700;padding:5px 12px;border-radius:999px;margin-top:20px}

/* Practice page: a batch of question cards (10 per page) */
.qset{list-style:none;counter-reset:none;margin:24px 0 0;padding:0;display:flex;flex-direction:column;gap:16px}
.qcard{background:#fff;border:1px solid #e7edf3;border-radius:16px;padding:22px 22px 16px;box-shadow:0 10px 30px -24px rgba(15,23,42,.5)}
.qcard-q{font-size:17px;font-weight:700;line-height:1.45;margin:0 0 14px;color:#0f172a}
.qcard-no{display:inline-block;font-size:13px;font-weight:800;color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:2px 9px;margin-right:10px;vertical-align:middle}
.qcard-opts{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.qcard-opts li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:#334155;background:#f8fafc;border:1px solid #eef2f7;border-radius:10px;padding:10px 13px}
.qcard-opts li[role=button]{cursor:pointer;transition:border-color .12s,background .12s}
.qcard-opts li[role=button]:hover:not(.locked){border-color:var(--accent);background:#fff}
.qcard-opts li.locked{cursor:default}
.qcard-opts li.correct{border-color:#16a34a;background:#f0fdf4;color:#14532d;font-weight:600}
.qcard-opts li.correct .oltr{background:#16a34a;color:#fff;border-color:#16a34a}
.qcard-opts li.wrong{border-color:#dc2626;background:#fef2f2;color:#7f1d1d}
.qcard-opts li.wrong .oltr{background:#dc2626;color:#fff;border-color:#dc2626}
.qcard-opts .oltr{flex:none;width:22px;height:22px;border-radius:6px;background:#fff;border:1px solid #e2e8f0;color:#64748b;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center}
.qcard-ans{border-top:1px dashed #e2e8f0;padding-top:4px}
.qcard-ans>summary{cursor:pointer;list-style:none;font-weight:700;font-size:14px;color:var(--accent);padding:10px 0 6px;display:inline-flex;align-items:center;gap:7px}
.qcard-ans>summary::-webkit-details-marker{display:none}
.qcard-ans>summary::before{content:"▸";transition:transform .15s ease}
.qcard-ans[open]>summary::before{transform:rotate(90deg)}
.qcard-ansbody{padding:4px 0 10px}
.qcard-correct{font-weight:700;color:#15803d;margin:0 0 8px}
.qcard-ansbody p{margin:0 0 8px;font-size:15px;line-height:1.6;color:#334155}
.qcard-topic{font-size:12px;color:#94a3b8;font-weight:600}

/* Part navigation chips */
.part-links{margin-top:26px}
.part-links h3{font-size:15px;font-weight:800;margin:0 0 12px}
.part-grid{display:flex;flex-wrap:wrap;gap:8px}
.part-grid.hub-parts{gap:10px;margin-top:8px}
.part-chip{display:inline-flex;flex-direction:column;gap:1px;font-size:13px;font-weight:700;color:#334155;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:9px 13px;transition:border-color .12s,transform .12s}
.part-chip:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
.part-chip.current{background:var(--accent);color:#fff;border-color:transparent}
.part-chip b{font-size:13px}.part-chip span{font-size:11px;opacity:.8}

/* Slim footer for practice pages */
footer.site.mini{padding:34px 0 28px}
footer.site.mini .fmini-rel{margin:14px 0}
footer.site.mini .fmini-rel h4{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;margin:0 0 8px}
.fmini-links{display:flex;flex-wrap:wrap;gap:6px 16px}
.fmini-links a{font-size:13px;color:#94a3b8}.fmini-links a:hover{color:#fff}
footer.site.mini .tagline a{color:#cbd5e1}footer.site.mini .tagline a:hover{color:#fff}

.qnav{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0;align-items:center}
.nav-btn{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;padding:10px 16px;border-radius:10px;border:1.5px solid #e2e8f0;background:#fff;color:#0f172a;transition:border-color .12s ease,transform .12s ease}
.nav-btn:hover{border-color:var(--accent);transform:translateY(-1px);color:var(--accent)}
.nav-rand{background:var(--accent)!important;color:#fff!important;border-color:transparent!important}
.nav-rand:hover{filter:brightness(1.07)}
.nav-hub{font-size:13px;color:#64748b;font-weight:600}
.nav-hub:hover{color:var(--accent)}
.rel-qs{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rel-q-card{display:block;background:#fff;border:1.5px solid #e7edf3;border-radius:12px;padding:16px 18px;transition:border-color .14s ease,transform .14s ease}
.rel-q-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.rel-q-cat{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-bottom:6px;display:block}
.rel-q-stem{font-weight:700;font-size:14px;color:#0f172a;display:block;margin-bottom:6px}
.rel-q-ans{font-size:13px;color:#16a34a;font-weight:700;display:block}
.q-cta-band{background:var(--accent);color:#fff;border-radius:18px;padding:28px 32px;margin:8px 0}
.q-cta-band h3{font-size:20px;font-weight:800;color:#fff;margin-bottom:6px}
.q-cta-band p{color:rgba(255,255,255,.88);font-size:15px;margin-bottom:18px;max-width:52ch}
.q-cta-band .cta{justify-content:flex-start}
.q-browse{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.q-browse-link{display:block;background:#fff;border:1px solid #e7edf3;border-radius:10px;padding:12px 14px;font-size:13px;font-weight:600;color:#334155;transition:border-color .12s ease}
.q-browse-link:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:760px){.rel-qs{grid-template-columns:1fr}.q-browse{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.q-browse{grid-template-columns:1fr}}
/* Hub directory (category-grouped question links) */
.hub-dir-cat{padding-top:28px}
.hub-dir-cat:first-child{padding-top:20px}
.hub-dir-cat h3{font-size:17px;font-weight:800;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.hub-dir-cat-count{font-size:12px;font-weight:700;background:var(--accent-soft);color:var(--accent);padding:2px 8px;border-radius:999px}
.hub-dir-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hub-dir-link{display:block;background:#fff;border:1px solid #e7edf3;border-radius:10px;padding:10px 13px;font-size:13px;font-weight:600;color:#334155;line-height:1.4;transition:border-color .12s ease,color .12s ease}
.hub-dir-link:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:760px){.hub-dir-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.hub-dir-grid{grid-template-columns:1fr}}
/* Single-question inline CTAs */
.q-top-cta{background:var(--accent);color:#fff;padding:13px 0}
.q-top-cta-inner{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.q-top-cta-text{flex:1;font-size:13px;font-weight:600;min-width:180px;line-height:1.4;opacity:.95}
.q-top-cta-btns{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}
.q-top-cta .btn{padding:9px 14px;font-size:13px;border-radius:10px}
.q-top-cta .btn.primary{background:#fff;color:var(--accent)}
.q-top-cta .btn.store.primary{background:#fff;box-shadow:0 12px 26px -8px rgba(15,23,42,.5),0 0 0 1px rgba(255,255,255,.5)}
.q-top-cta .btn.store.primary::after{background:linear-gradient(115deg,transparent 0%,color-mix(in srgb,var(--accent) 26%,transparent) 50%,transparent 100%)}
.q-top-cta .btn.ghost{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.5)}
.q-top-cta .btn.store.ghost{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.5);box-shadow:none}
.q-top-cta .btn.ghost:hover{background:rgba(255,255,255,.28)}
.q-bottom-cta{background:var(--accent-soft);border:2px solid var(--accent);border-radius:14px;padding:18px 22px;margin:20px 0 4px}
.q-bottom-cta p{margin:0 0 14px;font-size:15px;color:#0f172a;line-height:1.5}

/* ====================================================================== */
/* ===============  REDESIGN COMPONENT SYSTEM (prototypes)  ============== */
/* ====================================================================== */
.eyebrow{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--pass);margin:0}

/* redesign hero (homepage + exam) — scoped to .rd to avoid touching practice hero */
.rd-hero{padding:56px 0 24px}
.rd-hero.exam{padding:24px 0 18px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
.rd-hero.exam .hero-grid{align-items:start}
.rd-hero h1{font-family:"Bricolage Grotesque";font-weight:800;font-size:clamp(38px,5.2vw,64px);line-height:1.05;letter-spacing:-.02em;margin:14px 0 0}
.rd-hero.exam h1{font-size:clamp(32px,4.2vw,52px);margin-top:12px}
.rd-hero h1 .pass{color:var(--pass)}
.rd-hero p.lead{font-size:20px;color:var(--muted);margin:22px 0 28px;max-width:36ch}
.rd-hero.exam p.lead{font-size:19px;max-width:44ch;margin:18px 0 24px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.pricechip{margin-top:20px;display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-2);flex-wrap:wrap}
.pricechip b{font-family:"Space Mono";color:var(--ink)}
.dot{width:5px;height:5px;border-radius:50%;background:var(--line)}
.trust{margin-top:32px;display:flex;gap:26px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.trust b{font-family:"Bricolage Grotesque";font-weight:800;color:var(--ink);font-size:19px;display:block;letter-spacing:-.02em}
.facts{margin-top:26px;display:flex;gap:14px;flex-wrap:wrap}
.fact{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px 16px;min-width:120px}
.fact b{font-family:"Bricolage Grotesque";font-weight:800;font-size:21px;display:block;letter-spacing:-.02em}
.fact span{font-size:12.5px;color:var(--muted)}
.fact-topics{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:880px){.hero-grid{grid-template-columns:1fr;gap:32px}.rd-hero{padding:36px 0 12px}}

/* signature interactive question card */
.qcard-x{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px 24px 20px;box-shadow:0 24px 60px -28px rgba(22,36,60,.35)}
.qcard-x .qtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.qtag{font-family:"Space Mono";font-size:11px;letter-spacing:.10em;text-transform:uppercase;background:var(--pass-soft);color:#157a47;padding:4px 9px;border-radius:7px}
.qnum{font-family:"Space Mono";font-size:12px;color:var(--muted)}
.qcard-x .qtext{font-family:"Bricolage Grotesque";font-weight:700;font-size:18px;line-height:1.3;margin:10px 0 16px}
.opt{display:flex;align-items:center;gap:13px;padding:12px 14px;border:1.5px solid var(--line);border-radius:13px;margin-bottom:9px;cursor:pointer;background:#fff;transition:.15s;font-size:15px;width:100%;text-align:left;font-family:inherit;color:inherit}
.opt:hover{border-color:#c9d2df}
.bub{flex:0 0 27px;height:27px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-family:"Space Mono";font-weight:700;font-size:13px;color:var(--muted);transition:.15s}
.opt.correct{border-color:var(--pass);background:var(--pass-soft)}
.opt.correct .bub{border-color:var(--pass);background:var(--pass);color:#fff}
.opt.wrong{opacity:.5}
.opt-expl{display:none;font-size:14px;color:var(--ink-2);background:var(--pass-soft);border-radius:11px;padding:12px 14px;margin-top:4px}
.opt-expl.show{display:block}.opt-expl b{color:#157a47}
.qhint{font-size:12.5px;color:var(--muted);text-align:center;margin-top:11px}
/* hero sample-card rotation control */
.hero-sample{display:flex;flex-direction:column;gap:14px}
.qcycle{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.qcycle-next{font-family:"Space Mono";font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:9px 15px;cursor:pointer;transition:.15s}
.qcycle-next:hover{border-color:var(--ink)}
.qcycle-link{font-size:13.5px;font-weight:700;color:#157a47;text-decoration:none}
.qcycle-link:hover{text-decoration:underline}

/* redesign section frame */
.rd-sec{padding:60px 0}
.rd-sec.tight{padding:46px 0}
.sec-line{border-top:1px solid var(--line)}
.shead{max-width:64ch;margin-bottom:28px}
.shead h2{font-family:"Bricolage Grotesque";font-weight:800;font-size:clamp(26px,3.4vw,40px);line-height:1.05;letter-spacing:-.02em}
.shead p{color:var(--muted);font-size:18px;margin-top:12px}

/* breadcrumb */
.crumb{padding:18px 0 0;font-size:13px;color:var(--muted);font-family:"Space Mono"}
.crumb a{text-decoration:none}.crumb a:hover{color:var(--pass)}
.crumb .sep{margin:0 8px;color:var(--line)}

/* category-hub cards */
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 20px;text-decoration:none;display:block;transition:.18s;position:relative}
.cat:hover{transform:translateY(-3px);border-color:var(--ink);box-shadow:0 18px 36px -22px rgba(22,36,60,.4)}
.cat .ic{font-size:26px}
.cat h3{font-family:"Bricolage Grotesque";font-weight:800;font-size:19px;margin:14px 0 4px}
.cat .n{font-family:"Space Mono";font-size:12.5px;color:var(--pass)}
.cat .ex{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.45}
@media(max-width:920px){.cats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.cats{grid-template-columns:1fr}}

/* how it works */
.how{background:var(--ink);color:var(--paper);border-radius:30px;padding:54px 44px}
.how .eyebrow{color:var(--spark)}
.how h2{font-family:"Bricolage Grotesque";font-weight:800;color:#fff;font-size:clamp(26px,3vw,36px);max-width:18ch;letter-spacing:-.02em;line-height:1.05}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:38px}
.step .sn{font-family:"Space Mono";font-weight:700;font-size:13px;color:var(--spark);letter-spacing:.1em}
.step h3{font-family:"Bricolage Grotesque";font-weight:800;color:#fff;font-size:21px;margin:12px 0 8px}
.step p{color:#aeb9cc;font-size:15px;margin:0}
.step .ln{height:1px;background:rgba(255,255,255,.16);margin-top:18px}
@media(max-width:760px){.how{padding:36px 24px}.steps{grid-template-columns:1fr;gap:24px}}

/* catalog cards (popular / listing / category) */
.pop{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;text-decoration:none;transition:.18s;display:flex;flex-direction:column}
.pcard:hover{border-color:var(--pass);transform:translateY(-2px);box-shadow:0 16px 32px -22px rgba(22,36,60,.4)}
.pcard .ptop{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}
.pcard .ic{font-size:24px;line-height:1}
.badge{font-family:"Space Mono";font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:4px 9px;border-radius:999px;background:var(--pass-soft);color:#157a47}
.pcard h3{font-family:"Bricolage Grotesque";font-weight:800;font-size:18px}
.pcard .sub{font-size:13.5px;color:var(--muted);margin-top:3px}
.pcard .prow{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted)}
.pcard .price{font-family:"Space Mono";font-weight:700;color:var(--ink);font-size:13px}
.pcard .price span{color:var(--muted);font-weight:400}
.vidpill{display:inline-flex;align-items:center;gap:5px;color:#157a47;font-weight:600;font-size:12px}
@media(max-width:820px){.pop{grid-template-columns:1fr}}

/* light pricing band (homepage) */
.priceband-l{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:30px;padding:44px}
.priceband-l h2{font-family:"Bricolage Grotesque";font-weight:800;font-size:clamp(26px,3vw,36px);margin-top:10px;letter-spacing:-.02em}
/* dark pricing band (exam + shared) */
.priceband{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;background:var(--ink);color:var(--paper);border-radius:28px;padding:42px}
.priceband .eyebrow{color:var(--spark)}
.priceband h2{font-family:"Bricolage Grotesque";font-weight:800;color:#fff;font-size:clamp(24px,3vw,34px);margin-top:8px;letter-spacing:-.02em}
.priceband p{color:#aeb9cc;margin:14px 0 0;max-width:42ch;font-size:16px}
.priceband .btn-pri{margin-top:18px}
.plans{display:flex;gap:14px}
.plan{flex:1;border:1.5px solid var(--line);border-radius:16px;padding:20px}
.plan .amt{font-family:"Bricolage Grotesque";font-weight:800;font-size:32px;letter-spacing:-.03em}
.plan .per{font-size:13px;color:var(--muted)}
.plan .lbl{font-family:"Space Mono";font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.priceband-l .plan.feat{border-color:var(--pass);background:var(--pass-soft)}
.priceband .plan{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.03)}
.priceband .plan .amt{color:#fff}
.priceband .plan .per{color:#aeb9cc}
.priceband .plan .lbl{color:#8c99b0}
.priceband .plan.feat{border-color:var(--pass);background:rgba(31,157,91,.12)}
.priceband .plan.feat .lbl{color:#7fd6a6}
@media(max-width:820px){.priceband,.priceband-l{grid-template-columns:1fr;padding:30px}}
@media(max-width:480px){.plans{flex-direction:column}}

/* 30-question static practice block */
.psec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.modetoggle{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px}
.modetoggle button{border:none;background:transparent;font-family:inherit;font-weight:600;font-size:14px;color:var(--muted);padding:8px 15px;border-radius:9px;cursor:pointer;transition:.15s}
.modetoggle button.on{background:var(--ink);color:#fff}
.pdfbtn{font-size:14px;padding:9px 15px}
.qlist{list-style:none;counter-reset:qn;margin:0;padding:0;display:grid;gap:14px}
.qitem{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;counter-increment:qn}
.qitem .qq{font-family:"Bricolage Grotesque";font-weight:700;font-size:17px;line-height:1.35;margin:0 0 14px;display:flex;gap:11px;align-items:baseline}
.qitem .qq::before{content:counter(qn);font-family:"Space Mono";font-size:12px;font-weight:700;color:#fff;background:var(--pass);flex:0 0 auto;width:24px;height:24px;border-radius:7px;display:inline-grid;place-items:center;transform:translateY(2px)}
.qitem .opt-expl{margin-top:8px}
.morebar{text-align:center;margin-top:18px}
/* flashcard mode */
.fcards{max-width:640px;margin:0 auto}
.flip{perspective:1400px;cursor:pointer}
.flip-inner{position:relative;transition:transform .5s;transform-style:preserve-3d;min-height:300px}
.flip.flipped .flip-inner{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 24px 60px -34px rgba(22,36,60,.4)}
.face .ftag{font-family:"Space Mono";font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.face .fq{font-family:"Bricolage Grotesque";font-weight:700;font-size:22px;line-height:1.3}
.face.back{transform:rotateY(180deg);background:var(--pass-soft)}
.face.back .ftag{color:#157a47}
.face.back .fa{font-family:"Bricolage Grotesque";font-weight:800;font-size:24px;color:#157a47;margin-bottom:10px}
.face.back .fe{font-size:15.5px;color:var(--ink-2)}
.fhint{text-align:center;font-size:12.5px;color:var(--muted);margin-top:14px}
.fnav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:18px}
.fnav button{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:#fff;cursor:pointer;font-size:18px;color:var(--ink)}
.fnav button:hover{border-color:var(--ink)}
.fnav .fcount{font-family:"Space Mono";font-size:13px;color:var(--muted);min-width:64px;text-align:center}
@media(prefers-reduced-motion:reduce){.flip-inner{transition:none}}

/* video */
.video-wrap{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 24px 60px -34px rgba(22,36,60,.45);aspect-ratio:16/9;background:#000}
.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:13.5px;color:var(--muted);font-family:"Space Mono"}

/* prose (ASO description) */
.prose{font-size:17px;color:var(--ink-2);max-width:68ch}
.prose p{margin:0 0 16px}
.prose h3{font-family:"Bricolage Grotesque";font-weight:800;font-size:20px;color:var(--ink);margin:26px 0 10px}
.prose ul{margin:0 0 16px;padding-left:0;list-style:none}
.prose li{position:relative;padding:6px 0 6px 30px}
.prose li::before{content:"\2713";position:absolute;left:0;top:6px;color:var(--pass);font-weight:800}

/* topics grid (singular .topic) */
.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.topic{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.topic .tn{font-family:"Space Mono";font-size:12px;color:var(--pass)}
.topic h3{font-family:"Bricolage Grotesque";font-weight:800;font-size:16px;margin:8px 0 0}
@media(max-width:760px){.topic-grid{grid-template-columns:1fr 1fr}}

/* redesign faq (.rd-faq, avoids practice .faq) */
.rd-faq details{border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:12px;overflow:hidden}
.rd-faq summary{cursor:pointer;list-style:none;padding:18px 20px;font-family:"Bricolage Grotesque";font-weight:700;font-size:17px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.rd-faq summary::-webkit-details-marker{display:none}
.rd-faq summary::after{content:"+";font-family:"Space Mono";color:var(--pass);font-size:22px;transition:.2s}
.rd-faq details[open] summary::after{transform:rotate(45deg)}
.rd-faq .ans{padding:0 20px 18px;color:var(--ink-2);font-size:15.5px}

/* related cards */
.rel{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.rcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;text-decoration:none;transition:.16s}
.rcard:hover{border-color:var(--pass);transform:translateY(-2px)}
.rcard .rc{font-family:"Space Mono";font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rcard h3{font-family:"Bricolage Grotesque";font-weight:800;font-size:15.5px;margin:8px 0 0}
@media(max-width:820px){.rel{grid-template-columns:1fr 1fr}}

/* app download badges — dark, inline-SVG icons */
.appbadges{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.appbadge{display:inline-flex;align-items:center;gap:9px;background:var(--ink);border:1px solid var(--ink);border-radius:11px;padding:8px 14px;text-decoration:none;transition:.15s}
.appbadge:hover{background:#0f1a2e;transform:translateY(-1px);box-shadow:0 10px 22px -12px rgba(22,36,60,.6)}
.appbadge .g{flex:0 0 auto;display:block}
.appbadge b{font-family:"Bricolage Grotesque";font-weight:700;font-size:14px;color:#fff;display:block;line-height:1.15}
.appbadge small{font-size:10px;color:rgba(255,255,255,.72);letter-spacing:.03em;text-transform:uppercase}
.getapp{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:30px;padding:18px 22px;background:#fff;border:1px dashed var(--line);border-radius:16px}
.getapp .ga-txt{font-size:14.5px;color:var(--muted);max-width:30ch}
.getapp .ga-txt b{color:var(--ink);font-family:"Bricolage Grotesque"}
/* compact app badges under the hero sample card */
.herocol{display:flex;flex-direction:column}
.hero-app{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center;margin-top:16px}
.hero-app .ha-lead{font-family:"Space Mono";font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.appbadge.sm{padding:7px 12px}
.appbadge.sm .g{font-size:16px}
.ha-note{font-size:12px;line-height:1.45;color:var(--muted);text-align:center;margin:11px auto 0;max-width:46ch}
.ha-note b{color:var(--ink)}
/* video placeholder (no youtube_id yet) */
.video-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px;background:var(--pass-soft);color:var(--ink)}
.video-ph p{margin:0;font-family:"Bricolage Grotesque";font-weight:700;font-size:clamp(17px,2.4vw,22px);max-width:30ch;color:var(--ink)}
/* purchase modal — CTAs pop this instead of leaving for the exam page */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(16,24,40,.55);backdrop-filter:blur(3px)}
.modal-card{position:relative;width:min(520px,100%);height:min(780px,92vh);background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 40px 100px -28px rgba(0,0,0,.55)}
.modal-card iframe{width:100%;height:100%;border:0;display:block}
.modal-close{position:absolute;top:12px;right:12px;z-index:2;width:38px;height:38px;border-radius:50%;border:none;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.22);cursor:pointer;font-size:17px;color:var(--ink)}
.modal-close:hover{background:#f1efe9}
/* listing result-count line */
.rescount{font-family:"Space Mono";font-size:13px;color:var(--muted);margin:0 0 18px}
.rescount b{color:var(--ink)}

/* redesign curated footer */
footer.site.rd{background:transparent;color:var(--ink);border-top:1px solid var(--line);margin-top:30px;padding:54px 0 40px}
footer.site.rd .fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:30px}
footer.site.rd .fcol h4{font-family:"Space Mono";font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;font-weight:700}
footer.site.rd .fcol a{display:block;text-decoration:none;color:var(--ink-2);font-size:14.5px;padding:5px 0}
footer.site.rd .fcol a:hover{color:var(--pass)}
footer.site.rd .brand{display:flex;align-items:center;gap:10px;font-family:"Bricolage Grotesque";font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--ink)}
footer.site.rd .brand .bp{color:var(--pass)}
footer.site.rd .mark{width:34px;height:34px;border-radius:8px;object-fit:contain}
footer.site.rd .fbrand p{color:var(--muted);font-size:14px;max-width:34ch;margin:14px 0 0}
footer.site.rd .fbot{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--muted)}
footer.site.rd .disc{font-size:12.5px;color:var(--muted);text-align:center;padding:8px 0 0}
@media(max-width:760px){footer.site.rd .fgrid{grid-template-columns:1fr 1fr}}

/* search + filter chips + pagination (listing/category pages) */
.filterbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:22px}
.chip{display:inline-flex;align-items:center;font-size:13px;font-weight:600;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 14px;text-decoration:none;transition:.15s;font-family:inherit;cursor:pointer}
.chip:hover{border-color:var(--pass);color:var(--pass)}
.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.searchbox{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.searchbox input{border:none;outline:none;background:transparent;font-family:inherit;font-size:15px;width:100%;color:var(--ink)}
.home-search{margin:18px 0 0;max-width:520px}
.home-search .searchbox{box-shadow:0 16px 40px -28px rgba(17,24,39,.45)}
.home-search button{border:none;background:var(--pass);color:#fff;border-radius:10px;padding:9px 14px;font-family:inherit;font-weight:800;cursor:pointer;white-space:nowrap}
.home-search button:hover{filter:brightness(.96)}
.pager{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:34px}
.pager a,.pager span{font-family:"Space Mono";font-size:14px;padding:8px 13px;border-radius:10px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink-2)}
.pager a:hover{border-color:var(--pass);color:var(--pass)}
.pager .cur{background:var(--ink);color:#fff;border-color:var(--ink)}
.pager .disabled{opacity:.4;pointer-events:none}
.noresults{color:var(--muted);font-size:16px;padding:30px 0;text-align:center}

@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}
:focus-visible{outline:3px solid var(--spark);outline-offset:2px;border-radius:6px}
