/* =====================================================================
   Credit to Keys — article cluster stylesheet
   Tokens mirror /keys/index.html exactly. Gold is ACTION-ONLY:
   never a background, never a surface.
   ===================================================================== */
:root{
  --ink:#0A1426; --navy:#14264A; --navy-2:#1F3864;
  --paper:#FFFFFF; --mist:#F4F7FB; --line:#DFE8F2;
  --text:#111C2E; --muted:#5A6B82;
  --on-dark:#E8F0FA; --on-dark-mut:#9DB2CE;
  --gold:#FFC93C; --gold-deep:#E9B01F; --blue:#2E75B6;
  --r-sm:10px; --r:14px; --r-lg:20px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(10,20,38,.06), 0 4px 12px rgba(10,20,38,.05);
  --sh-2:0 2px 4px rgba(10,20,38,.06), 0 12px 32px rgba(10,20,38,.10);
  --wrap:1080px; --read:72ch;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  color:var(--text);background:var(--paper);
  line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}
.read{max-width:var(--read);margin:0 auto;}

h1,h2,h3{line-height:1.16;letter-spacing:-0.022em;text-wrap:balance;font-weight:800;}
h1{font-size:clamp(2.05rem,5vw,3.1rem);color:#fff;}
h2{font-size:clamp(1.5rem,3.2vw,2.1rem);color:var(--navy);margin:44px 0 14px;}
h3{font-size:1.14rem;font-weight:700;letter-spacing:-0.012em;color:var(--navy);margin:30px 0 8px;}
p{margin-bottom:18px;text-wrap:pretty;}
.lead{font-size:1.11rem;color:var(--muted);text-wrap:pretty;}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin-bottom:14px;}
.eyebrow.on-dark{color:var(--gold);}
a{color:var(--blue);}
article ul,article ol{margin:0 0 20px 22px;}
article li{margin-bottom:9px;}
strong{color:var(--navy);font-weight:700;}

/* ---------- Buttons — gold is action-only ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--gold);color:#101A2B;font-weight:700;font-size:1.02rem;
  font-family:inherit;padding:15px 32px;border:0;border-radius:var(--r-pill);
  text-decoration:none;cursor:pointer;
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset, 0 8px 22px rgba(233,176,31,.34);
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.btn:hover{transform:translateY(-2px);background:var(--gold-deep);box-shadow:0 12px 30px rgba(233,176,31,.42);}
.btn:active{transform:translateY(0);}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px;}

/* ---------- Sticky header ---------- */
.nav{
  position:sticky;top:0;z-index:60;background:rgba(10,20,38,.86);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(232,240,250,.10);
}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:13px;padding-bottom:13px;gap:16px;}
.brandmark{color:#fff;font-weight:800;letter-spacing:.03em;font-size:.95rem;text-decoration:none;display:flex;align-items:center;gap:9px;}
.brandmark .key{color:var(--gold);}
.nav .btn{padding:10px 22px;font-size:.94rem;}

/* ---------- Article hero ---------- */
.ahero{
  background:radial-gradient(120% 90% at 50% 0%, rgba(46,117,182,.30) 0%, rgba(10,20,38,0) 62%), var(--ink);
  color:#fff;padding:70px 0 60px;
}
.ahero .lead{color:var(--on-dark);margin-top:16px;}
.ahero .accent{display:block;width:78px;height:4px;background:var(--gold);border-radius:4px;margin:20px 0 22px;}
.crumb{font-size:.85rem;color:var(--on-dark-mut);margin-bottom:18px;}
.crumb a{color:var(--on-dark-mut);}
.byline{
  margin-top:26px;padding-top:20px;border-top:1px solid rgba(232,240,250,.14);
  font-size:.9rem;color:var(--on-dark-mut);
}
.byline b{color:var(--on-dark);}

/* ---------- Body ---------- */
article{padding:52px 0 20px;}
.callout{
  background:var(--mist);border-left:4px solid var(--blue);
  border-radius:0 var(--r) var(--r) 0;padding:22px 24px;margin:28px 0;
}
.callout p:last-child{margin-bottom:0;}
.callout .tag{font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);display:block;margin-bottom:8px;}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line);margin-top:14px;}
.faq details{border-bottom:1px solid var(--line);padding:18px 0;}
.faq summary{font-weight:700;color:var(--navy);cursor:pointer;list-style:none;font-size:1.04rem;display:flex;justify-content:space-between;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'+';color:var(--blue);font-weight:800;flex:0 0 auto;}
.faq details[open] summary::after{content:'\2013';}
.faq details p{margin:14px 0 0;color:var(--muted);}

/* ---------- Related ---------- */
.related{background:var(--mist);padding:56px 0;margin-top:56px;border-top:1px solid var(--line);}
.related h2{margin-top:0;}
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:24px;}
.rcard{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  padding:22px;text-decoration:none;color:var(--text);box-shadow:var(--sh-1);
  transition:transform .16s ease, box-shadow .16s ease;
}
.rcard:hover{transform:translateY(-3px);box-shadow:var(--sh-2);}
.rcard h3{margin:0 0 6px;}
.rcard p{font-size:.94rem;color:var(--muted);margin:0;}

/* ---------- Mid-page CTA ---------- */
.midcta{
  background:var(--navy);color:var(--on-dark);border-radius:var(--r-lg);
  padding:38px 34px;margin:44px 0;text-align:center;
}
.midcta h3{color:#fff;font-size:1.5rem;margin:0 0 10px;}
.midcta p{color:var(--on-dark-mut);margin:0 auto 22px;max-width:52ch;}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:var(--on-dark);text-align:center;padding:70px 24px 52px;}
footer h2{color:#fff;margin-top:0;}
footer .lead{color:var(--on-dark-mut);margin:14px auto 28px;max-width:56ch;}
.legal{font-size:.86rem;color:var(--on-dark-mut);margin-top:20px;}
.legal a{color:var(--on-dark-mut);}
.fineprint{font-size:.76rem;color:var(--on-dark-mut);opacity:.72;max-width:74ch;margin:18px auto 0;line-height:1.6;}

@media (max-width:640px){
  article{padding:36px 0 12px;}
  .ahero{padding:52px 0 46px;}
  .midcta{padding:30px 22px;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
