:root{
  --navy:#1E3440; --navy-deep:#16262F; --navy-soft:#2C4655;
  --rust:#C7451F; --rust-deep:#A5362A;
  --gold:#F0A63A; --gold-soft:#FBE3C0;
  --paper:#FAF7EF; --card:#FFFFFF; --card-2:#F3EDDD;
  --ink:#201C16; --ink-soft:#5B564A; --ink-faint:#8B8574;
  --line:#DCD3BC;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --navy:#28414F; --navy-deep:#16262F; --navy-soft:#345163;
    --rust:#E2703F; --rust-deep:#D97D53;
    --gold:#F3B75B; --gold-soft:#4A3A1E;
    --paper:#171512; --card:#211E19; --card-2:#292420;
    --ink:#EFEAE0; --ink-soft:#B9B2A2; --ink-faint:#847C6C;
    --line:#3A342A;
  }
}
:root[data-theme="dark"]{
  --navy:#28414F; --navy-deep:#16262F; --navy-soft:#345163;
  --rust:#E2703F; --rust-deep:#D97D53;
  --gold:#F3B75B; --gold-soft:#4A3A1E;
  --paper:#171512; --card:#211E19; --card-2:#292420;
  --ink:#EFEAE0; --ink-soft:#B9B2A2; --ink-faint:#847C6C;
  --line:#3A342A;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Manrope",-apple-system,Segoe UI,Arial,sans-serif;
  font-size:16px; line-height:1.6;
}
h1,h2,h3,h4{ font-family:"League Spartan",Arial,sans-serif; font-weight:800; letter-spacing:-0.01em; text-wrap:balance; margin:0; color:var(--ink); }
p{ margin:0; }
a{ color:inherit; }
img{ max-width:100%; }
.wrap{ max-width:1120px; margin:0 auto; padding:0 24px; }
.narrow{ max-width:740px; margin:0 auto; padding:0 24px; }
.eyebrow{ font-family:"Bebas Neue",Arial,sans-serif; font-weight:400; font-size:0.85rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--rust-deep); display:flex; align-items:center; gap:8px; }
.eyebrow .dot{ width:6px; height:6px; border-radius:50%; background:var(--rust); flex:none; }
section{ padding:56px 0; }
@media (max-width:700px){ section{ padding:40px 0; } }

.btn{ display:inline-flex; align-items:center; gap:8px; font-family:"League Spartan",Arial,sans-serif; font-weight:700; font-size:1rem; padding:13px 24px; border-radius:9px; text-decoration:none; cursor:pointer; border:1.5px solid transparent; transition:transform .15s ease, box-shadow .15s ease; }
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--rust); color:#fff; box-shadow:0 4px 0 var(--rust-deep); }
.btn-primary:hover{ box-shadow:0 6px 0 var(--rust-deep); }
.btn-dark{ background:var(--navy); color:#fff; box-shadow:0 4px 0 var(--navy-deep); }
.btn-dark:hover{ box-shadow:0 6px 0 var(--navy-deep); }

/* NAV */
nav{ position:sticky; top:0; z-index:50; background:var(--paper); border-bottom:1px solid var(--line); }
nav .wrap{ display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap:16px; }
.logo{ font-family:"League Spartan",Arial,sans-serif; font-weight:800; font-size:1.25rem; letter-spacing:-0.02em; text-decoration:none; color:var(--ink); }
.logo span{ color:var(--rust); }
.navlinks{ display:flex; gap:26px; font-size:0.92rem; font-weight:600; }
.navlinks a{ text-decoration:none; color:var(--ink-soft); border-bottom:2px solid transparent; padding-bottom:3px; transition:color .15s; }
.navlinks a:hover{ color:var(--ink); border-color:var(--gold); }
@media (max-width:840px){ .navlinks{ display:none; } }

/* BREADCRUMB */
.crumb{ font-size:0.86rem; color:var(--ink-faint); margin-bottom:18px; }
.crumb a{ color:var(--ink-soft); text-decoration:none; }
.crumb a:hover{ color:var(--rust); }

/* BLOG INDEX */
.blog-hero{ background:linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%); padding:64px 0 52px; }
.blog-hero .eyebrow{ color:var(--gold); }
.blog-hero .eyebrow .dot{ background:var(--rust); }
.blog-hero h1{ color:#fff; font-size:clamp(2rem,4.4vw,3rem); margin-top:12px; }
.blog-hero p{ color:#D7DEE1; margin-top:14px; font-size:1.08rem; max-width:56ch; }

.post-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:8px; }
@media (max-width:900px){ .post-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .post-grid{ grid-template-columns:1fr; } }
.post-card{ background:var(--card); border:1.5px solid var(--line); border-radius:12px; padding:22px; display:flex; flex-direction:column; height:100%; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease; }
.post-card:hover{ transform:translateY(-2px); box-shadow:0 6px 0 var(--line); }
.post-card .tag2{ font-family:"Bebas Neue",Arial,sans-serif; font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--rust-deep); }
.post-card h2, .post-card h3{ font-size:1.08rem; margin-top:10px; color:var(--ink); }
.post-card p{ font-size:0.92rem; color:var(--ink-soft); margin-top:8px; flex:1; line-height:1.5; }
.post-card .read{ margin-top:14px; font-family:"League Spartan",Arial,sans-serif; font-weight:700; font-size:0.88rem; color:var(--rust); }
.post-card .meta{ font-size:0.78rem; color:var(--ink-faint); margin-top:10px; }

/* ARTICLE */
.article-hero{ padding:48px 0 8px; }
.article-hero h1{ font-size:clamp(1.9rem,4vw,2.7rem); margin-top:12px; line-height:1.08; }
.article-meta{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin-top:18px; font-size:0.88rem; color:var(--ink-faint); }
.article-meta .sep{ opacity:0.6; }

.prose{ padding-top:20px; padding-bottom:8px; }
.prose h2{ font-size:1.5rem; margin-top:2.2em; margin-bottom:0.6em; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:1.18rem; margin-top:1.8em; margin-bottom:0.5em; color:var(--navy); }
.prose p{ margin-top:1.1em; color:var(--ink); font-size:1.05rem; line-height:1.75; }
.prose p:first-of-type{ margin-top:0; }
.prose ul, .prose ol{ margin-top:1.1em; padding-left:1.3em; color:var(--ink); font-size:1.05rem; line-height:1.7; }
.prose li{ margin-top:0.5em; }
.prose li::marker{ color:var(--rust); font-weight:700; }
.prose strong{ color:var(--navy); }
.prose a{ color:var(--rust-deep); text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:3px; font-weight:600; }
.prose a:hover{ color:var(--rust); }
.prose blockquote{ margin:1.8em 0; padding:18px 24px; background:var(--card-2); border-left:4px solid var(--rust); border-radius:0 10px 10px 0; font-family:"League Spartan",Arial,sans-serif; font-weight:700; font-size:1.15rem; color:var(--navy); line-height:1.4; }
.prose .table-wrap{ overflow-x:auto; margin-top:1.6em; }
.prose table{ width:100%; border-collapse:collapse; min-width:420px; }
.prose th{ text-align:left; font-family:"League Spartan",Arial,sans-serif; font-size:0.78rem; letter-spacing:0.04em; text-transform:uppercase; color:#fff; background:var(--navy); font-weight:700; padding:10px 14px; }
.prose td{ padding:11px 14px; border-bottom:1px solid var(--line); font-size:0.94rem; color:var(--ink); vertical-align:top; }
.prose tr:nth-child(even) td{ background:var(--card-2); }
.prose td.amt{ font-family:"League Spartan",Arial,sans-serif; font-weight:800; color:var(--rust-deep); white-space:nowrap; }
.prose .callout{ margin:1.8em 0; border:1.5px solid var(--gold); background:var(--gold-soft); border-left:5px solid var(--rust); border-radius:12px; padding:20px 24px; }
.prose .callout p{ margin-top:0; font-size:0.98rem; }
.prose .callout p + p{ margin-top:0.8em; }

.cta-box{ margin-top:3em; background:var(--navy); background:linear-gradient(155deg, var(--navy) 0%, var(--navy-deep) 100%); border-radius:16px; padding:34px; text-align:center; }
.cta-box .eyebrow{ color:var(--gold); justify-content:center; }
.cta-box h3{ color:#fff; font-size:1.5rem; margin-top:10px; }
.cta-box p{ color:#D7DEE1; margin-top:10px; max-width:52ch; margin-left:auto; margin-right:auto; }
.cta-box .btn{ margin-top:20px; }

.author-box{ margin-top:3em; display:flex; gap:16px; align-items:flex-start; padding-top:2em; border-top:1px solid var(--line); }
.author-box .av{ flex:0 0 48px; height:48px; width:48px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-family:"League Spartan"; font-weight:800; font-size:1.1rem; }
.author-box h4{ font-size:0.98rem; }
.author-box p{ font-size:0.88rem; color:var(--ink-soft); margin-top:3px; }

.related{ margin-top:3em; padding-top:2em; border-top:1px solid var(--line); }
.related h3{ font-size:1.1rem; margin-bottom:16px; }

footer{ padding:48px 0 34px; background:var(--navy-deep); color:#EDEAE0; }
footer .wrap{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:28px; }
footer .logo{ color:#EDEAE0; }
footer .logo span{ color:var(--gold); }
footer .fcol h5{ font-family:"Bebas Neue",Arial,sans-serif; font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; color:#9AA6AB; margin-bottom:10px; }
footer .fcol a, footer .fcol p{ display:block; font-size:0.9rem; color:#DEDACD; text-decoration:none; margin-bottom:7px; }
footer .fcol a:hover{ color:var(--gold); }
footer .fbottom{ margin-top:34px; padding-top:20px; border-top:1px solid rgba(255,255,255,0.12); font-size:0.78rem; color:#8B958A; }
