:root{
  --navy:#1a2643; --navy-deep:#121b33; --paper:#f7f7f7; --paper-2:#eceef2;
  --mauve:#a69fab; --teal:#3c88ac; --teal-bright:#54a3c6;
  --ink:#1a2643; --ink-soft:#46506a;
  --line:rgba(26,38,67,0.12); --line-dark:rgba(247,247,247,0.14);
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--paper); color:var(--ink); line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; }
a{ color:var(--teal); }

/* sticky top bar */
.abar{
  position:sticky; top:0; z-index:50;
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 24px;
  background:rgba(18,27,51,0.92);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-dark);
}
.abar a.home{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:15px; color:rgba(247,247,247,0.9); text-decoration:none; }
.abar a.home span{ color:var(--teal-bright); }
.abar a.home:hover{ color:#fff; }
.abar .site{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:1px; color:var(--mauve); }

/* header */
.ahead{
  background:radial-gradient(700px 400px at 80% -10%, rgba(60,136,172,0.22), transparent 70%), var(--navy);
  color:var(--paper); padding:72px 24px 60px;
}
.ahead .inner{ max-width:760px; margin:0 auto; }
.ahead .cat{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--teal-bright); margin-bottom:18px; }
.ahead h1{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(30px,5vw,50px); line-height:1.1; letter-spacing:-1px; margin-bottom:16px; }
.ahead .sub{ font-size:18px; color:rgba(247,247,247,0.82); margin-bottom:18px; }
.ahead .by{ font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--mauve); letter-spacing:1px; }

/* article body */
.article{ max-width:720px; margin:0 auto; padding:56px 24px 40px; }
.article > p:first-of-type.lead{ font-size:20px; color:var(--ink); }
.article h2{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:26px; letter-spacing:-0.5px; margin:44px 0 14px; color:var(--ink); }
.article h3{ font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:20px; margin:32px 0 12px; color:var(--ink); }
.article p{ margin-bottom:20px; font-size:17.5px; color:var(--ink-soft); }
.article strong{ color:var(--ink); font-weight:700; }
.article ul, .article ol{ margin:0 0 22px 0; padding-left:24px; }
.article li{ margin-bottom:10px; font-size:17px; color:var(--ink-soft); }
.article li::marker{ color:var(--teal); }
.article ul ul, .article ol ol, .article ul ol, .article ol ul{ margin:10px 0 0 0; }
.article a{ color:var(--teal); text-underline-offset:3px; }
.article img{ border-radius:12px; border:1px solid var(--line); margin:8px 0 28px; }
.article hr{ border:none; border-top:1px solid var(--line); margin:38px 0; }
.callout{
  background:#fff; border:1px solid var(--line); border-left:3px solid var(--teal);
  border-radius:10px; padding:18px 22px; margin:8px 0 28px;
}
.callout p{ margin:0; font-size:16px; }
.disclosure{
  margin-top:44px; padding:18px 22px; background:var(--paper-2);
  border-radius:10px; font-size:14.5px; color:var(--ink-soft); line-height:1.6;
}
.disclosure strong{ color:var(--ink); }

/* footer */
.afoot{ border-top:1px solid var(--line); max-width:720px; margin:0 auto; padding:30px 24px 72px; }
.afoot .back{ display:inline-flex; align-items:center; gap:8px; font-weight:600; text-decoration:none; color:var(--teal); }
.afoot .back:hover{ color:var(--teal-bright); }
.afoot .cr{ margin-top:18px; font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:1.5px; color:var(--mauve); }

@media (max-width:520px){
  .article{ padding:40px 20px; }
  .article p, .article li{ font-size:16.5px; }
}
