/* Long-form article styles — tokens per docs/08 (law). Shared by /blog and articles. */
:root { --base:#0A0B0D; --surface:#16181C; --ember:#FF5A1F; --ember-soft:#FF8A5C; --money:#22E06B;
  --ice:#7FE7FF; --text:#F5F5F7; --text2:#8A8F98; --line:#22252B;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Arial,sans-serif; }
* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--base); color:var(--text); font-family:var(--font); -webkit-font-smoothing:antialiased; line-height:1.7; }
::selection { background:var(--ember); color:#0A0B0D; }
header.site { position:sticky; top:0; z-index:10; background:rgba(10,11,13,.78); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.bar { max-width:1080px; margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; height:60px; }
.wordmark { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:800; letter-spacing:.26em; text-transform:uppercase; color:var(--text); text-decoration:none; }
.wordmark img { width:26px; height:26px; border-radius:7px; }
.bar nav a { color:var(--text2); text-decoration:none; font-size:14px; margin-left:20px; }
.bar nav a:hover, .bar nav a[aria-current] { color:var(--text); }
main { max-width:720px; margin:0 auto; padding:56px 24px 120px; }
.hud { font-size:12px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--text2); display:flex; align-items:center; gap:10px; }
.hud::before { content:""; width:22px; height:1px; background:var(--ember); }
h1 { font-size:clamp(30px,5.4vw,44px); font-weight:900; letter-spacing:-.025em; line-height:1.08; margin-top:14px; }
.byline { display:flex; flex-wrap:wrap; gap:6px 14px; align-items:baseline; margin-top:16px; color:var(--text2); font-size:13.5px; }
.byline b { color:var(--text); font-weight:700; }
.flag { margin-top:14px; font-size:13px; color:var(--text2); border-left:2px solid var(--line); padding-left:12px; }
.intro { color:#C7CBD1; font-size:16.5px; margin-top:16px; line-height:1.7; max-width:640px; }
.intro b { color:var(--text); font-weight:700; }
.capsule { margin-top:26px; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--ember); border-radius:14px; padding:20px 22px; font-size:17px; }
.capsule b, article b, article strong { color:var(--text); font-weight:700; }
article { margin-top:8px; }
article h2 { font-size:24px; font-weight:800; letter-spacing:-.015em; margin:44px 0 12px; line-height:1.2; }
article h3 { font-size:18px; font-weight:800; margin:30px 0 8px; }
article p { color:#C7CBD1; font-size:16.5px; margin-top:14px; }
article a { color:var(--text); text-decoration:underline; text-decoration-color:#3A3F47; text-underline-offset:3px; }
article a:hover { text-decoration-color:var(--ember); }
article ul, article ol { color:#C7CBD1; font-size:16.5px; margin:14px 0 0 22px; }
article li { margin-top:8px; }
.tablewrap { overflow-x:auto; margin-top:18px; }
table { border-collapse:collapse; width:100%; font-size:15px; }
th { text-align:left; font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--text2); padding:10px 14px; border-bottom:1px solid var(--line); white-space:nowrap; }
td { padding:12px 14px; border-bottom:1px solid var(--line); color:#C7CBD1; vertical-align:top; }
td:first-child { color:var(--text); font-weight:700; white-space:nowrap; }
.qa { margin-top:18px; }
.qa details { border-bottom:1px solid var(--line); }
.qa summary { cursor:pointer; padding:16px 0; font-size:16px; font-weight:700; color:var(--text); list-style:none; display:flex; justify-content:space-between; gap:16px; }
.qa summary::-webkit-details-marker { display:none; }
.qa summary::after { content:"+"; color:var(--text2); font-size:20px; flex:none; }
.qa details[open] summary::after { content:"–"; }
.qa details p { padding-bottom:16px; margin-top:0; font-size:15.5px; }
.shotlink { display:block; margin:24px auto 0; width:min(300px,86%); border-radius:22px; overflow:hidden; border:1px solid var(--line); }
.shotlink img { display:block; width:100%; height:auto; }
.shotcap { text-align:center; font-size:13px; color:var(--text2); margin-top:8px; }
.disclaimer { margin-top:48px; border:1px dashed var(--line); border-radius:14px; padding:16px 20px; font-size:13px; color:var(--text2); }
.cta-block { margin-top:48px; background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:28px 26px; text-align:center; }
.cta-block h2 { margin:0; font-size:22px; }
.cta-block p { color:var(--text2); font-size:15px; margin-top:10px; }
.cta-pill { display:inline-flex; margin-top:18px; background:var(--ember); color:#0A0B0D; font-weight:800; font-size:15px; border-radius:999px; padding:14px 26px; text-decoration:none; box-shadow:0 6px 30px rgba(255,90,31,.35); }
.cta-free { margin-top:12px; font-size:13px; color:var(--money); }
.related { margin-top:40px; }
.related a { display:block; padding:14px 0; border-bottom:1px solid var(--line); color:var(--text); text-decoration:none; font-weight:700; font-size:15.5px; }
.related a:hover { color:var(--ember-soft); }
.related span { display:block; color:var(--text2); font-weight:500; font-size:13.5px; margin-top:3px; }
footer.site { border-top:1px solid var(--line); padding:40px 24px; }
.foot { max-width:720px; margin:0 auto; color:var(--text2); font-size:12.5px; line-height:1.7; }
.foot a { color:#A9AFB8; }
a:focus-visible, summary:focus-visible, button:focus-visible { outline:2px solid var(--ice); outline-offset:3px; border-radius:4px; }
/* Sticky mobile CTA bar — appears past 35% scroll, dismissible (localStorage) */
.stickybar { position:fixed; left:0; right:0; bottom:0; z-index:20; background:rgba(10,11,13,.92);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-top:1px solid var(--line);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom)); display:none; align-items:center; gap:12px; justify-content:center; }
.stickybar.show { display:flex; }
.stickybar .txt { font-size:13.5px; color:var(--text2); }
.stickybar .txt b { color:var(--text); }
.stickybar a.pill { flex:none; background:var(--ember); color:#0A0B0D; font-weight:800; font-size:14px; border-radius:999px; padding:11px 18px; text-decoration:none; min-height:24px; }
.stickybar button { flex:none; background:none; border:0; color:var(--text2); font-size:20px; cursor:pointer; width:44px; height:44px; }
@media (min-width:760px) { .stickybar { display:none !important; } }
/* Calculator */
.calc { margin-top:26px; background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:26px 24px; }
.calc label { display:block; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text2); margin-top:18px; }
.calc label:first-child { margin-top:0; }
.calc input, .calc select { width:100%; margin-top:8px; background:var(--base); border:1px solid var(--line); border-radius:12px; color:var(--text); font-size:17px; padding:12px 14px; font-family:var(--font); }
.calc input:focus, .calc select:focus { outline:2px solid var(--ember); border-color:transparent; }
.calc .row { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:end; }
.calc .row label { margin-top:0; }
.calc-out { margin-top:26px; text-align:center; }
.calc-big { font-size:clamp(44px,10vw,72px); font-weight:900; letter-spacing:-.03em; color:var(--money); font-variant-numeric:tabular-nums; line-height:1; }
.calc-sub { color:var(--text2); font-size:15px; margin-top:8px; }
.calc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:22px; }
@media (max-width:560px) { .calc-grid { grid-template-columns:1fr; } }
.calc-cell { background:var(--base); border:1px solid var(--line); border-radius:14px; padding:14px; text-align:center; }
.calc-cell .n { font-size:22px; font-weight:900; color:var(--text); font-variant-numeric:tabular-nums; }
.calc-cell .l { font-size:12px; color:var(--text2); margin-top:4px; }
