:root {
  --bg:        #252018;
  --surface:   #2e2a22;
  --border:    #46413a;
  --text:      #e2ddd5;
  --muted:     #a09890;
  --faint:     #6a6560;
  --white:     #f5f2ec;
  --accent:    #c8a96e;
  --acc-dark:  #8a7040;
  --font-d:    'Bebas Neue', sans-serif;
  --font-b:    'Cormorant Garamond', Georgia, serif;
  --font-m:    'DM Mono', monospace;
  --ease:      cubic-bezier(0.16,1,0.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:20px}
body{background:var(--bg);color:var(--text);font-family:var(--font-b);font-weight:300;line-height:1.78;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

.grain{position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E")}

/* HEADER */
.site-header{position:sticky;top:0;z-index:100;background:rgba(37,32,24,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.header-inner{max-width:1200px;margin:0 auto;padding:0 2.5rem;height:62px;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.site-logo{font-family:var(--font-d);font-size:1.4rem;letter-spacing:.18em;color:var(--accent);transition:opacity .2s}
.site-logo:hover{opacity:.7}
.site-nav{display:flex;align-items:center;gap:2rem}
.site-nav a{font-family:var(--font-m);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);transition:color .2s}
.site-nav a:hover{color:var(--text)}
.nav-cta{color:var(--accent)!important;border:1px solid var(--acc-dark);padding:.4rem .9rem;border-radius:3px;transition:background .2s,color .2s!important}
.nav-cta:hover{background:var(--accent);color:var(--bg)!important}

/* HERO */
.home-hero{padding:6rem 2.5rem 4rem;max-width:1200px;margin:0 auto;border-bottom:1px solid var(--border)}
.hero-inner{max-width:680px}
.kicker{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;font-family:var(--font-m);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.kicker-line{display:block;width:44px;height:1px;background:var(--accent);opacity:.5}
.hero-title{font-family:var(--font-b);font-size:clamp(2rem,5vw,3.6rem);font-weight:300;line-height:1.1;color:var(--white);letter-spacing:-.01em;margin-bottom:2rem}
.hero-tags{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;font-family:var(--font-m);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.sep{opacity:.4}

/* POST FEED */
.post-feed{max-width:1200px;margin:0 auto;padding:3rem 2.5rem 5rem}
.post-card--featured{padding:2.5rem 0 2.5rem;border-bottom:1px solid var(--border);margin-bottom:3rem}
.card-meta{display:flex;align-items:center;gap:.6rem;margin-bottom:.9rem;font-family:var(--font-m);font-size:.58rem;letter-spacing:.1em;color:var(--faint)}
.tag{border:1px solid var(--acc-dark);color:var(--accent);padding:.18rem .55rem;border-radius:2px;font-family:var(--font-m);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase}
.card-title{font-family:var(--font-b);font-weight:300;line-height:1.15;color:var(--white)}
.card-title--lg{font-size:clamp(1.8rem,4vw,2.8rem);margin-bottom:1rem}
.card-title{font-size:1.25rem;margin-bottom:.7rem}
.card-title a:hover{color:var(--accent)}
.card-excerpt{font-size:.95rem;font-style:italic;color:var(--muted);line-height:1.6;margin-bottom:1.4rem;max-width:520px}
.card-excerpt--sm{font-size:.85rem;margin-bottom:1rem}
.card-link{font-family:var(--font-m);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:.4rem;transition:color .2s,gap .2s}
.card-link:hover{color:var(--accent);gap:.7rem}

.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0}
.post-card--grid{padding:2rem 2rem 2rem 0;border-bottom:1px solid var(--border)}

/* SINGLE POST */
.post-header{padding:5rem 2.5rem 3.5rem;border-bottom:1px solid var(--border);background:linear-gradient(to bottom,var(--surface),var(--bg))}
.post-header-inner{max-width:680px;margin:0 auto}
.post-kicker{display:flex;align-items:center;gap:1rem;margin-bottom:1.8rem}
.post-title{font-family:var(--font-b);font-size:clamp(2rem,5vw,3.8rem);font-weight:300;color:var(--white);line-height:1.08;letter-spacing:-.015em;margin-bottom:1.2rem}
.post-subtitle{font-size:1.1rem;font-style:italic;color:var(--muted);line-height:1.6;margin-bottom:2rem;max-width:540px}
.post-byline{font-family:var(--font-m);font-size:.6rem;letter-spacing:.1em;color:var(--faint);padding-top:1.2rem;border-top:1px solid var(--border)}
.post-feature-img{max-width:960px;margin:2rem auto 0;padding:0 2.5rem}
.post-feature-img img{width:100%;max-height:480px;object-fit:cover;border-radius:6px}

.post-body{display:grid;grid-template-columns:1fr 210px;gap:3.5rem;max-width:960px;margin:0 auto;padding:3.5rem 2.5rem 4rem;align-items:start}
.post-content{font-size:1rem;line-height:1.78;color:var(--text)}
.post-content>*+*{margin-top:1.4em}
.post-content h2{font-family:var(--font-b);font-size:1.8rem;font-weight:400;color:var(--white);margin-top:2.8rem;margin-bottom:.9rem}
.post-content h3{font-family:var(--font-b);font-size:1.35rem;font-weight:400;color:var(--white);margin-top:2.2rem;margin-bottom:.7rem}
.post-content h4{font-family:var(--font-m);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-top:1.8rem;margin-bottom:.5rem}
.post-content>p:first-of-type::first-letter{font-size:5rem;font-weight:600;line-height:.78;float:left;margin-right:.1em;margin-top:.1em;color:var(--accent);font-family:var(--font-b)}
.post-content a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--acc-dark);text-underline-offset:3px}
.post-content blockquote{border-left:3px solid var(--accent);padding:1.4rem 2rem;background:var(--surface);font-size:1.2rem;font-style:italic;color:var(--white);margin:2.2rem 0}
.post-content hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}
.post-content strong{font-weight:600;color:var(--white)}
.post-content ul,.post-content ol{padding-left:1.4rem;margin-bottom:1.4em}
.post-content li{margin-bottom:.45em}
.post-content pre{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1.4rem;overflow-x:auto;font-family:var(--font-m);font-size:.76rem;line-height:1.6;color:#7eb8c4}
.post-content code{font-family:var(--font-m);font-size:.8em;background:var(--surface);padding:.12em .35em;border-radius:3px;color:#7eb8c4}
.post-content pre code{background:none;padding:0;font-size:inherit}

/* SIDEBAR */
.sidebar-sticky{position:sticky;top:82px}
.sidebar-label{font-family:var(--font-m);font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:.8rem;display:block}
.toc a{display:block;font-family:var(--font-m);font-size:.6rem;letter-spacing:.06em;color:var(--muted);padding:.35rem 0 .35rem .7rem;border-left:1px solid var(--border);transition:color .2s,border-color .2s;line-height:1.4}
.toc a:hover,.toc a.active{color:var(--accent);border-left-color:var(--accent)}
.sb-panel{margin-top:1.8rem}
.sb-axis{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
.sb-name{font-family:var(--font-m);font-size:.56rem;letter-spacing:.08em;color:var(--muted);width:58px;flex-shrink:0}
.sb-bar-wrap{flex:1;height:3px;background:var(--border);border-radius:2px}
.sb-bar{height:100%;background:var(--accent);border-radius:2px;transition:width .4s var(--ease)}
.sb-val{font-family:var(--font-m);font-size:.56rem;color:var(--faint);width:32px;text-align:right}
.share-link{display:block;font-family:var(--font-m);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:.3rem 0;transition:color .2s}
.share-link:hover{color:var(--accent)}

/* POST FOOTER */
.post-footer{border-top:1px solid var(--border);max-width:960px;margin:0 auto;padding:3rem 2.5rem 5rem}
.related{margin-top:3rem}
.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);margin-top:.8rem}
.related-card{background:var(--surface);padding:1.2rem 1.4rem;transition:background .2s;display:block}
.related-card:hover{background:var(--bg)}
.related-date{font-family:var(--font-m);font-size:.56rem;letter-spacing:.1em;color:var(--faint);display:block;margin-bottom:.4rem}
.related-title{font-family:var(--font-b);font-size:1.05rem;color:var(--white);line-height:1.3}

/* SUBSCRIBE */
.subscribe-block{border-top:1px solid var(--border);padding:4rem 0 0}
.subscribe-block--inline{margin-top:3rem}
.subscribe-inner{max-width:480px}
.sub-label{font-family:var(--font-m);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}
.sub-title{font-family:var(--font-b);font-size:1.4rem;font-weight:300;color:var(--white);line-height:1.4;margin-bottom:1.6rem}
.sub-form{display:flex;gap:.8rem;flex-wrap:wrap}
.sub-form input{flex:1;min-width:200px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--font-m);font-size:.72rem;padding:.75rem 1rem;border-radius:3px;outline:none;transition:border-color .2s}
.sub-form input:focus{border-color:var(--accent)}
.sub-form button{background:var(--accent);color:var(--bg);font-family:var(--font-m);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:.75rem 1.6rem;border:none;border-radius:3px;cursor:pointer;transition:background .2s}
.sub-form button:hover{background:var(--white)}
.sub-confirm{font-family:var(--font-m);font-size:.62rem;color:var(--accent);margin-top:.8rem}

/* PROGRESS BAR */
.progress-bar{position:fixed;top:62px;left:0;width:0%;height:2px;background:var(--accent);z-index:200;transition:width .1s linear;pointer-events:none}

/* ARCHIVE / TAG */
.archive-header{padding:5rem 2.5rem 3rem;max-width:1200px;margin:0 auto;border-bottom:1px solid var(--border)}

/* ERROR */
.error-page{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2.5rem;text-align:center}
.error-code{font-family:var(--font-d);font-size:7rem;letter-spacing:.1em;color:var(--border);line-height:1}
.error-title{font-family:var(--font-b);font-size:2rem;font-weight:300;color:var(--white);margin:.8rem 0}
.error-desc{font-style:italic;color:var(--muted);margin-bottom:2rem}
.empty-state{padding:4rem 2.5rem;color:var(--faint);font-style:italic}

/* FOOTER */
.site-footer{border-top:1px solid var(--border);padding:2.5rem 0;margin-top:auto}
.footer-inner{max-width:1200px;margin:0 auto;padding:0 2.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-logo{font-family:var(--font-d);font-size:1.1rem;letter-spacing:.18em;color:var(--faint)}
.footer-note,.footer-copy{font-family:var(--font-m);font-size:.56rem;letter-spacing:.1em;color:var(--faint)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.reveal.visible{opacity:1;transform:none}

@media(max-width:900px){
  .post-body{grid-template-columns:1fr}
  .post-sidebar{display:none}
  .post-grid{grid-template-columns:1fr}
  .related-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  html{font-size:17px}
  .home-hero,.post-feed,.post-header,.post-body,.post-footer,.archive-header,.footer-inner{padding-left:1.2rem;padding-right:1.2rem}
  .post-card--featured{padding:2rem 0}
  .sub-form{flex-direction:column}
}

.verify-revoked-banner{margin:0 0 1.5rem;padding:1rem 1.2rem;border:1px solid var(--danger,#c0392b);border-left:3px solid var(--danger,#c0392b);background:rgba(192,57,43,.08);color:var(--danger,#c0392b);font-size:.85rem;line-height:1.55;border-radius:3px}
.verify-revoked-banner strong{color:var(--danger,#c0392b)}

