@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family=DM+Serif+Display:ital@0;1&family=Literata:ital,opsz,wght@0,7..72,300;0,7..72,400;0,7..72,500;1,7..72,300;1,7..72,400&family=JetBrains+Mono:wght@300;400;500&display=swap');

:root {
  --void:#0c0b09;--ink:#1a1916;--coal:#2a2924;--ash:#4a4944;--mist:#8a8880;
  --fog:#b8b6b0;--paper:#f5f0e8;--cream:#faf7f2;--white:#fdfcfa;
  --red:#8B1A1A;--red-warm:#b83020;--red-light:#d4472c;
  --gold:#b8912a;--gold-warm:#d4a93a;
  --dv:rgba(255,255,255,0.07);--dvl:rgba(26,25,22,0.1);
  --display:"Cormorant Garamond","Times New Roman",serif;
  --heading:"DM Serif Display",Georgia,serif;
  --body:"Literata",Georgia,serif;
  --mono:"JetBrains Mono",monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--void);color:var(--paper);font-family:var(--body);-webkit-font-smoothing:antialiased;min-height:100vh;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.nav{position:fixed;top:0;left:0;right:0;z-index:200;height:58px;display:flex;align-items:center;padding:0 52px;justify-content:space-between;transition:background 0.4s,border-color 0.4s;border-bottom:1px solid transparent;}
.nav.scrolled{background:rgba(12,11,9,0.95);border-color:var(--dv);backdrop-filter:blur(16px);}
.nav-logo{font-family:var(--mono);font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--paper);font-weight:400;}
.nav-logo em{font-style:normal;color:var(--red-light);}
.nav-links{display:flex;align-items:center;gap:36px;}
.nav-links a{font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--ash);transition:color 0.2s;}
.nav-links a:hover{color:var(--paper);}
.nav-links a.active{color:var(--fog);}
.nav-follow{color:var(--red-light)!important;border:1px solid rgba(212,71,44,0.3);padding:6px 18px;border-radius:2px;transition:all 0.2s!important;}
.nav-follow:hover{background:var(--red)!important;color:var(--white)!important;border-color:var(--red)!important;}

.w{max-width:1200px;margin:0 auto;padding:0 52px;}
.w-mid{max-width:1040px;margin:0 auto;padding:0 52px;}
.w-read{max-width:720px;margin:0 auto;padding:0 52px;}

.footer{background:var(--ink);border-top:1px solid var(--dv);padding:56px 0 40px;}
.footer-grid{max-width:1200px;margin:0 auto;padding:0 52px 40px;display:grid;grid-template-columns:5fr 2fr 2fr;gap:56px;border-bottom:1px solid var(--dv);margin-bottom:32px;}
.footer-brand{font-family:var(--display);font-size:32px;font-weight:500;color:var(--paper);margin-bottom:14px;}
.footer-desc{font-size:14px;line-height:1.75;color:var(--ash);max-width:340px;}
.footer-col h5{font-family:var(--mono);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--red-light);margin-bottom:16px;}
.footer-col a{display:block;font-size:13px;color:var(--ash);line-height:1.6;margin-bottom:7px;transition:color 0.15s;}
.footer-col a:hover{color:var(--fog);}
.footer-bottom{max-width:1200px;margin:0 auto;padding:0 52px;display:flex;justify-content:space-between;align-items:center;}
.footer-copy,.footer-tag{font-family:var(--mono);font-size:10px;letter-spacing:1px;color:var(--coal);}

.card{display:block;position:relative;border:1px solid var(--dv);border-radius:1px;overflow:hidden;transition:border-color 0.25s,transform 0.3s;}
.card:hover{border-color:rgba(212,71,44,0.35);transform:translateY(-3px);}
.card-inner{padding:28px 28px 24px;position:relative;overflow:hidden;}
.card-bignum{font-family:var(--display);font-size:100px;font-weight:600;line-height:1;color:rgba(255,255,255,0.035);position:absolute;top:8px;right:14px;pointer-events:none;letter-spacing:-4px;user-select:none;}
.card-tag{font-family:var(--mono);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--red-light);margin-bottom:14px;display:block;}
.card-title{font-family:var(--heading);font-size:19px;line-height:1.3;color:var(--paper);margin-bottom:10px;}
.card-desc{font-size:13px;line-height:1.65;color:var(--ash);margin-bottom:20px;}
.card-arrow{font-family:var(--mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--red-light);display:flex;align-items:center;gap:5px;transition:gap 0.2s;}
.card:hover .card-arrow{gap:9px;}

.art-header{padding-top:124px;padding-bottom:72px;background:var(--void);position:relative;overflow:hidden;}
.art-header::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--dv);}
.art-header-bgnum{position:absolute;right:40px;top:50%;transform:translateY(-44%);font-family:var(--display);font-size:380px;font-weight:700;line-height:1;color:rgba(255,255,255,0.022);pointer-events:none;letter-spacing:-20px;user-select:none;}
.art-header-inner{max-width:800px;margin:0 auto;padding:0 52px;position:relative;z-index:1;}
.art-series{font-family:var(--mono);font-size:9px;letter-spacing:4px;text-transform:uppercase;color:var(--red-light);margin-bottom:28px;display:flex;align-items:center;gap:14px;}
.art-series::before{content:"";width:28px;height:1px;background:var(--red-light);flex-shrink:0;}
.art-title{font-family:var(--display);font-size:54px;font-weight:600;line-height:1.08;color:var(--white);margin-bottom:24px;letter-spacing:-0.5px;}
.art-subtitle{font-family:var(--body);font-size:19px;font-style:italic;font-weight:300;line-height:1.65;color:var(--mist);margin-bottom:36px;max-width:640px;}
.art-meta{display:flex;align-items:center;gap:20px;padding-top:28px;border-top:1px solid var(--dv);}
.art-meta-name{font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--fog);}
.art-meta-role{font-family:var(--mono);font-size:9px;letter-spacing:1px;color:var(--ash);}
.art-meta-sep{width:1px;height:22px;background:var(--dv);}

.art-body-bg{background:var(--cream);}
.art-body{max-width:720px;margin:0 auto;padding:64px 52px 72px;}
.art-body p{font-size:18px;line-height:1.9;color:#2c2a25;margin-bottom:22px;font-weight:300;}
.art-body p strong{font-weight:500;color:var(--ink);}
.art-body em{font-style:italic;}
.art-body sup{font-family:var(--mono);font-size:9px;color:var(--red);vertical-align:super;line-height:0;}
.art-body h2{font-family:var(--display);font-size:32px;font-weight:600;color:var(--ink);margin:52px 0 18px;line-height:1.2;letter-spacing:-0.3px;}
.art-body h2::before{content:"";display:block;width:28px;height:2px;background:var(--red);margin-bottom:14px;}
.art-body .pullquote{border-left:3px solid var(--red);padding:4px 0 4px 28px;margin:36px 0;font-family:var(--display);font-size:27px;font-style:italic;font-weight:400;line-height:1.4;color:var(--ink);}
.art-body .callout{background:#ede8db;border-left:3px solid var(--gold);padding:20px 24px;margin:32px 0;font-size:16px;line-height:1.75;color:#2c2a25;border-radius:0 2px 2px 0;}
.art-body .callout strong{color:#5a3e0a;}
.art-body .counter-box,.art-body .mirror-box{background:var(--ink)!important;border:1px solid rgba(255,255,255,0.06)!important;border-radius:3px;padding:24px 28px;margin:32px 0;}
.art-body .counter-box p,.art-body .mirror-box p{color:rgba(245,240,232,0.72)!important;font-size:15px!important;}
.art-body .counter-box strong,.art-body .mirror-box strong{color:var(--paper)!important;}
.art-body .counter-box .counter-label{color:var(--red-light)!important;font-family:var(--mono)!important;font-size:9px!important;letter-spacing:2px!important;}
.art-body .two-col,.art-body .breakdown-row,.art-body .seq-hero,.art-body .layer-diagram,.art-body .before-after,.art-body .registers-diagram,.art-body .rules-grid,.art-body .arc-box,.art-body .retro-box,.art-body .manifesto,.art-body .flow-diagram,.art-body .loop-diagram,.art-body .nextgen-flow,.art-body .analogy-box,.art-body .irony-box{border:1px solid rgba(26,25,22,0.12)!important;border-radius:3px;padding:24px 28px;margin:32px 0;background:#ede8db!important;}
.art-body .closing{background:var(--ink);padding:28px 32px;border-radius:3px;margin-top:52px;}
.art-body .closing p{color:rgba(245,240,232,0.6);font-size:15px;line-height:1.75;margin-bottom:8px;}
.art-body .closing .next-up{font-family:var(--mono);font-size:10px;letter-spacing:1px;color:var(--red-light);margin-top:14px;}
.art-body .article-label,.art-body .series-badge{display:none!important;}
.art-body .reqchain-teaser{display:none!important;}

.refs-bg{background:var(--cream);padding-bottom:64px;}
.refs{max-width:720px;margin:0 auto;padding:0 52px;border-top:1px solid rgba(26,25,22,0.1);padding-top:36px;}
.refs h3{font-family:var(--mono);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--mist);margin-bottom:24px;}
.ref-list{list-style:none;display:flex;flex-direction:column;gap:14px;}
.ref-list li{display:flex;gap:14px;font-size:13px;line-height:1.65;color:#4a4840;}
.ref-num{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--red);flex-shrink:0;width:24px;padding-top:1px;}
.ref-list a{color:var(--red);border-bottom:1px dotted rgba(139,26,26,0.35);}
.ref-list a:hover{border-color:var(--red);}
.ref-type{font-family:var(--mono);font-size:8px;letter-spacing:1px;text-transform:uppercase;background:rgba(26,25,22,0.08);color:var(--mist);padding:1px 5px;border-radius:1px;margin-left:4px;flex-shrink:0;align-self:flex-start;margin-top:2px;}

.art-nav-bg{background:var(--cream);border-top:1px solid rgba(26,25,22,0.1);padding:36px 0;}
.art-nav{max-width:720px;margin:0 auto;padding:0 52px;display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.art-nav-link{border:1px solid rgba(26,25,22,0.1);border-radius:2px;padding:18px 20px;background:white;transition:border-color 0.2s;display:block;}
.art-nav-link:hover{border-color:var(--red);}
.art-nav-dir{font-family:var(--mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--mist);margin-bottom:6px;}
.art-nav-title{font-family:var(--heading);font-size:14px;color:var(--ink);line-height:1.4;}
.art-nav-link.right{text-align:right;}

.series-row{display:grid;grid-template-columns:72px 1fr auto;align-items:stretch;border-bottom:1px solid var(--dv);transition:background 0.2s;cursor:pointer;}
.series-row:first-child{border-top:1px solid var(--dv);}
.series-row:hover{background:rgba(255,255,255,0.02);}
.series-row-num{font-family:var(--display);font-size:18px;font-weight:300;color:rgba(255,255,255,0.15);padding:20px 0;display:flex;align-items:center;justify-content:center;transition:color 0.2s;}
.series-row:hover .series-row-num{color:var(--red-light);}
.series-row-body{padding:20px 24px;border-left:1px solid var(--dv);border-right:1px solid var(--dv);}
.series-row-title{font-family:var(--heading);font-size:17px;line-height:1.35;color:var(--fog);margin-bottom:4px;transition:color 0.2s;}
.series-row:hover .series-row-title{color:var(--paper);}
.series-row-desc{font-size:13px;color:var(--ash);line-height:1.5;}
.series-row-act{padding:20px 24px;display:flex;align-items:center;}
.act-badge{font-family:var(--mono);font-size:8.5px;letter-spacing:1px;text-transform:uppercase;padding:4px 10px;border-radius:1px;border:1px solid;white-space:nowrap;}
.act-p{color:var(--red-light);border-color:rgba(212,71,44,0.25);}
.act-i{color:#8898c0;border-color:rgba(120,140,200,0.25);}
.act-s{color:#70b880;border-color:rgba(80,170,100,0.25);}
.act-e{color:#c090d8;border-color:rgba(160,100,200,0.25);}
.act-r{color:var(--gold-warm);border-color:rgba(212,169,58,0.25);}

.reveal{opacity:0;transform:translateY(22px);transition:opacity 0.65s ease,transform 0.65s ease;}
.reveal.in{opacity:1;transform:none;}

@media(max-width:768px){
  .nav{padding:0 24px;}
  .nav-links a:not(.nav-follow){display:none;}
  .w,.w-mid,.w-read{padding:0 24px;}
  .art-header-inner,.art-body,.refs,.art-nav{padding:0 24px;}
  .art-title{font-size:34px;}
  .art-body p{font-size:16px;}
  .art-nav{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;padding:0 24px;gap:32px;}
  .footer-bottom{padding:0 24px;}
  .series-row{grid-template-columns:52px 1fr;}
  .series-row-act{display:none;}
}
