.blog-shell{--ink:#0a0a0a;--paper:#f5f1e8;--rule:#d9cfb9;--pink:#ff3e8e;--yellow:#f5c518;--blue:#1d3fff;--muted:#6b5f49;background:var(--paper);color:var(--ink);font-family:var(--font-inter), system-ui, sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;font-size:16px;line-height:1.5}.blog-shell a{color:var(--blue);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.blog-shell a:hover{background:var(--yellow);color:var(--ink);text-decoration:none}.blog-shell .mono{font-family:var(--font-jetbrains-mono), ui-monospace, monospace}.blog-shell .hand{font-family:var(--font-caveat), cursive}.blog-topbar{border-bottom:2px solid var(--ink);background:var(--paper);justify-content:space-between;align-items:baseline;padding:14px 32px;display:flex}.blog-topbar .wordmark{font-family:var(--font-jetbrains-mono), monospace;color:var(--ink);font-size:20px;font-weight:700;text-decoration:none}.blog-topbar .wordmark:hover{background:0 0}.blog-topbar .wordmark .tag{background:var(--yellow);border:1px solid var(--ink);margin-left:8px;padding:0 6px;font-size:12px;font-weight:500}.blog-topbar nav{font-family:var(--font-jetbrains-mono), monospace;font-size:13px}.blog-topbar nav .sep{color:var(--ink);opacity:.5;margin:0 8px}.blog-topbar nav a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px}.blog-crumbs{font-family:var(--font-jetbrains-mono), monospace;color:var(--muted);letter-spacing:.06em;padding:16px 32px 0;font-size:12px}.blog-crumbs a{color:var(--ink);border-bottom:1px dashed var(--ink);text-decoration:none}.blog-crumbs a:hover{background:var(--yellow);border-bottom-color:var(--yellow)}.blog-crumbs .sep{color:var(--muted);margin:0 8px}.blog-crumbs .sep:before{content:"/"}.blog-hero{background:var(--hero-bg,#0d9488);color:#fff;border-bottom:4px solid var(--ink);padding:56px 48px 72px;position:relative;overflow:hidden}.blog-hero .stamp-halo{content:"";opacity:.9;pointer-events:none;background:radial-gradient(circle,#0000 58%,#ffffff26 60%);border:3px solid #fff;border-radius:50%;width:140px;height:140px;position:absolute;top:24px;right:48px;transform:rotate(-12deg)}.blog-hero .stamp{width:120px;height:120px;font-family:var(--font-jetbrains-mono), monospace;color:#fff;text-align:center;letter-spacing:.08em;text-transform:uppercase;border:2px solid #fff9;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1.3;display:flex;position:absolute;top:60px;right:58px;transform:rotate(-12deg)}.blog-hero .stamp .n{margin:4px 0;font-size:28px;line-height:1;display:block}.blog-hero-inner{z-index:2;max-width:1136px;margin:0 auto;position:relative}.blog-hero .meta-top{flex-wrap:wrap;gap:12px;margin-bottom:40px;display:flex}.blog-hero .hero-tag{font-family:var(--font-jetbrains-mono), monospace;color:#fff;text-transform:uppercase;letter-spacing:.08em;border:2px solid #fff;padding:4px 10px;font-size:11px;font-weight:700}.blog-hero .hero-tag.filled{background:var(--ink);color:#fff;border-color:var(--ink)}.blog-hero .hero-tag.y{background:var(--yellow);color:var(--ink);border-color:var(--ink)}.blog-hero .scribble{font-family:var(--font-caveat), cursive;color:var(--yellow);margin-bottom:28px;font-size:24px;display:inline-block;transform:rotate(-1.5deg)}.blog-hero .scribble:before{content:"→ "}.blog-hero h1{font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;letter-spacing:-.015em;color:#fff;max-width:20ch;margin:0 0 32px;font-size:64px;font-weight:700;line-height:1}.blog-hero h1 .accent{background:var(--yellow);color:var(--ink);padding:0 6px;position:relative}.blog-hero h1 .accent:after{content:"*";color:#fff;font-size:20px;position:absolute;top:-18px;right:-4px}.blog-hero .byline{font-family:var(--font-jetbrains-mono), monospace;color:#fff;border-top:2px solid #ffffff4d;flex-wrap:wrap;align-items:center;gap:14px;max-width:760px;padding-top:18px;font-size:13px;display:flex}.blog-hero .byline .tag-inline{color:var(--ink);background:#fff;padding:2px 8px;font-weight:700}.blog-hero .byline .sl{opacity:.4}.blog-hero .byline a{color:#fff;text-decoration:underline;text-decoration-thickness:1px}.blog-hero .byline a:hover{background:var(--yellow);color:var(--ink)}.blog-ribbon{grid-template-columns:repeat(var(--ribbon-n,5), 1fr);border-bottom:4px solid var(--ink);display:grid}.blog-ribbon .band{height:56px;font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.1em;text-transform:uppercase;border-right:2px solid var(--ink);text-align:center;justify-content:center;align-items:center;padding:0 12px;font-size:11px;font-weight:500;display:flex}.blog-ribbon .band:last-child{border-right:0}.blog-ribbon .band.light{color:#000000b3}.blog-ribbon .band.dark{color:#ffffffd9}.blog-page{grid-template-columns:1fr 260px;gap:48px;max-width:1200px;margin:0 auto;padding:64px 32px 96px;display:grid}@media (max-width:900px){.blog-page{grid-template-columns:1fr;gap:32px;padding:32px 20px 64px}}.blog-article{max-width:680px}.blog-opener{border:3px solid var(--ink);background:var(--yellow);box-shadow:6px 6px 0 var(--ink);margin-bottom:36px;padding:20px 24px;position:relative}.blog-opener:before{content:"// PALETTE IN THIS ESSAY";background:var(--ink);color:var(--paper);font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.14em;padding:3px 10px;font-size:10px;font-weight:700;position:absolute;top:-12px;left:16px}.blog-opener .line1{font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;letter-spacing:.02em;margin-bottom:4px;font-size:14px;font-weight:700}.blog-opener .line2{font-size:15px;font-weight:500;line-height:1.45}.blog-opener .roles{font-family:var(--font-jetbrains-mono), monospace;border-top:1.5px dashed var(--ink);margin-top:10px;padding-top:10px;font-size:11px}.blog-opener .roles span{background:var(--ink);color:var(--yellow);letter-spacing:.04em;margin-bottom:4px;margin-right:4px;padding:2px 6px;display:inline-block}.blog-body .lede{border-left:4px solid var(--ink);margin-bottom:32px;padding-left:18px;font-size:21px;font-weight:500;line-height:1.4}.blog-body p{margin-bottom:22px;font-size:17px;line-height:1.55}.blog-body h2{font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;letter-spacing:-.01em;margin:56px 0 20px;font-size:22px;font-weight:700}.blog-body h2:before{content:"// ";color:var(--blue)}.blog-body h3{font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;margin:40px 0 16px;font-size:17px;font-weight:700}.blog-body h3:before{content:"// ";color:var(--blue);opacity:.7}.blog-body ul,.blog-body ol{margin:20px 0 22px 20px;padding-left:4px}.blog-body ul{list-style:none}.blog-body ul li{margin:6px 0;padding-left:20px;font-size:17px;position:relative}.blog-body ul li:before{content:"*";color:var(--pink);font-family:var(--font-jetbrains-mono), monospace;font-weight:700;position:absolute;top:0;left:0}.blog-body ol li{margin:6px 0 6px 20px;font-size:17px}.blog-body blockquote{border-left:4px solid var(--pink);margin:28px 0;padding:4px 20px;font-size:19px;font-style:normal;font-weight:500}.blog-body code{background:var(--ink);color:var(--paper);font-family:var(--font-jetbrains-mono), monospace;padding:1px 5px;font-size:.88em}.blog-body pre{background:var(--ink);color:var(--paper);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--pink);margin:28px 0;padding:20px;overflow-x:auto}.blog-body pre code{background:0 0;padding:0}.blog-body .pullbox,.blog-pullbox{background:var(--pink);color:var(--ink);border:3px solid var(--ink);font-family:var(--font-inter), sans-serif;box-shadow:8px 8px 0 var(--ink);margin:40px 0;padding:28px 32px;font-size:22px;font-weight:500;line-height:1.3;position:relative}.blog-body .pullbox:before,.blog-pullbox:before{content:"// QUOTE 001";background:var(--paper);color:var(--ink);font-family:var(--font-jetbrains-mono), monospace;border:2px solid var(--ink);padding:2px 8px;font-size:11px;position:absolute;top:-14px;left:20px}.blog-palette-code{border:3px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink);margin:40px 0;padding:24px}.blog-palette-code .header-line{font-family:var(--font-jetbrains-mono), monospace;color:var(--ink);opacity:.65;border-bottom:1px dashed var(--ink);justify-content:space-between;margin-bottom:16px;padding-bottom:12px;font-size:11px;display:flex}.blog-palette-code .row{border-bottom:1px dashed var(--ink);grid-template-columns:60px 1fr 140px;align-items:center;gap:16px;padding:8px 0;display:grid}.blog-palette-code .row:last-child{border-bottom:0}.blog-palette-code .chip{border:2px solid var(--ink);width:60px;height:32px}.blog-palette-code .name{font-family:var(--font-jetbrains-mono), monospace;font-size:14px;font-weight:500}.blog-palette-code .hex{font-family:var(--font-jetbrains-mono), monospace;text-align:right;background:var(--ink);color:var(--paper);justify-self:end;padding:3px 8px;font-size:13px}.blog-aside{font-family:var(--font-jetbrains-mono), monospace;align-self:start;font-size:13px;position:sticky;top:20px}@media (max-width:900px){.blog-aside{position:static}}.blog-aside .panel{border:2px solid var(--ink);background:var(--paper);box-shadow:5px 5px 0 var(--ink);margin-bottom:24px;padding:16px}.blog-aside .label{text-transform:uppercase;color:var(--ink);letter-spacing:.05em;margin-bottom:12px;font-size:11px;font-weight:700}.blog-aside .label:before{content:"/// ";color:var(--blue)}.blog-aside ul{margin:0;padding:0;list-style:none}.blog-aside ul li{border-bottom:1px dashed var(--ink);padding:6px 0}.blog-aside ul li:last-child{border-bottom:0}.blog-aside ul li a{color:var(--ink);border-bottom:0;text-decoration:none}.blog-aside ul li a:before{content:"* ";color:var(--pink)}.blog-aside ul li a:hover{background:var(--yellow)}.blog-next{max-width:1200px;margin:0 auto;padding:0 32px 96px}.blog-next .h{font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;letter-spacing:.1em;border-top:4px solid var(--ink);margin:0 0 16px;padding-top:32px;font-size:11px}.blog-next .h:before{content:"-> "}.blog-next .grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}@media (max-width:900px){.blog-next .grid{grid-template-columns:1fr}}.blog-next .tile{border:2px solid var(--ink);background:var(--paper);box-shadow:6px 6px 0 var(--ink);color:var(--ink);padding:20px;text-decoration:none;transition:transform 60ms linear,box-shadow 60ms linear;display:block}.blog-next .tile:hover{background:var(--yellow);box-shadow:8px 8px 0 var(--ink);transform:translate(-2px,-2px)}.blog-next .tile .tag{font-family:var(--font-jetbrains-mono), monospace;background:var(--yellow);border:1px solid var(--ink);text-transform:uppercase;padding:1px 6px;font-size:10px;display:inline-block}.blog-next .tile h3{font-family:var(--font-jetbrains-mono), monospace;margin:10px 0 0;font-size:17px;font-weight:700;line-height:1.2}.blog-next .tile .m{font-family:var(--font-jetbrains-mono), monospace;opacity:.6;margin-top:10px;font-size:11px}.blog-next .tile.highlight{background:var(--pink);color:var(--paper)}.blog-next .tile.highlight h3,.blog-next .tile.highlight .m{color:var(--paper)}.blog-next .tile.highlight .tag{background:var(--paper);border-color:var(--paper);color:var(--ink)}.blog-next .tile.highlight:hover{background:var(--pink);filter:brightness(1.08)}.blog-author-bio{border:2px solid var(--ink);background:var(--paper);box-shadow:5px 5px 0 var(--ink);gap:20px;margin:56px 0 0;padding:20px 24px;display:flex;position:relative}.blog-author-bio:before{content:"// AUTHOR";background:var(--ink);color:var(--paper);font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.14em;padding:3px 10px;font-size:10px;font-weight:700;position:absolute;top:-12px;left:16px}.blog-author-bio .avatar{border:2px solid var(--ink);background:linear-gradient(135deg, var(--pink), var(--yellow));flex-shrink:0;width:64px;height:64px}.blog-author-bio .name{font-family:var(--font-jetbrains-mono), monospace;margin-bottom:4px;font-size:15px;font-weight:700}.blog-author-bio .bio{color:var(--ink);font-size:14px;line-height:1.5}.blog-index-header{max-width:1200px;margin:0 auto;padding:56px 32px 32px}.blog-index-header .kicker{font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--blue);margin-bottom:12px;font-size:11px}.blog-index-header .kicker:before{content:"// ";color:var(--blue)}.blog-index-header h1{font-family:var(--font-jetbrains-mono), monospace;letter-spacing:-.02em;text-transform:uppercase;max-width:18ch;font-size:54px;font-weight:700;line-height:1}.blog-index-header h1 .accent{background:var(--yellow);padding:0 6px}.blog-index-header .sub{max-width:60ch;color:var(--ink);margin-top:18px;font-size:16px;line-height:1.55}.blog-index-grid{grid-template-columns:repeat(3,1fr);gap:24px;max-width:1200px;margin:0 auto;padding:32px 32px 96px;display:grid}@media (max-width:900px){.blog-index-grid{grid-template-columns:1fr}}.blog-card{border:2px solid var(--ink);background:var(--paper);box-shadow:6px 6px 0 var(--ink);color:var(--ink);flex-direction:column;text-decoration:none;transition:transform 60ms linear,box-shadow 60ms linear;display:flex}.blog-card:hover{box-shadow:8px 8px 0 var(--ink);background:var(--paper);transform:translate(-2px,-2px)}.blog-card .cover-strip{grid-template-columns:repeat(var(--strip-n,5), 1fr);border-bottom:2px solid var(--ink);height:120px;display:grid}.blog-card .cover-strip .band{height:100%}.blog-card .cover-empty{background:var(--ink);height:120px;color:var(--yellow);font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.1em;border-bottom:2px solid var(--ink);justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.blog-card .body{padding:20px}.blog-card .cat{font-family:var(--font-jetbrains-mono), monospace;background:var(--yellow);border:1px solid var(--ink);text-transform:uppercase;letter-spacing:.08em;padding:2px 8px;font-size:10px;display:inline-block}.blog-card h3{font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;letter-spacing:-.01em;margin:12px 0 10px;font-size:19px;font-weight:700;line-height:1.2}.blog-card .excerpt{color:var(--ink);opacity:.85;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 14px;font-size:14px;line-height:1.55;display:-webkit-box;overflow:hidden}.blog-card .meta{font-family:var(--font-jetbrains-mono), monospace;color:var(--ink);opacity:.6;border-top:1px dashed var(--ink);padding-top:10px;font-size:11px}.blog-pagination{max-width:1200px;font-family:var(--font-jetbrains-mono), monospace;text-transform:uppercase;letter-spacing:.08em;justify-content:center;gap:14px;margin:0 auto;padding:0 32px 64px;font-size:12px;display:flex}.blog-pagination a{background:var(--ink);color:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--pink);padding:8px 14px;text-decoration:none}.blog-pagination a:hover{background:var(--blue);box-shadow:3px 3px 0 var(--yellow)}.blog-pagination .current{color:var(--ink);opacity:.7;padding:8px 14px}.blog-footer{border-top:4px solid var(--ink);background:var(--paper);font-family:var(--font-jetbrains-mono), monospace;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px;padding:40px 32px;font-size:12px;display:flex}.blog-footer a{color:var(--ink)}
