@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--navy:#102e52;--navy-deep:#091e38;--lime:#c2f23a;--lime-dark:#a9db22;--ink:#132944;--muted:#63748a;--line:#dbe3ec;--paper:#f7f9fc}
body{background:#fff;color:var(--ink);font-family:"DM Sans",sans-serif}
a:hover{color:#527715}::selection{background:var(--lime);color:var(--navy-deep)}
.site-header{background:var(--navy);color:#fff;border-bottom:4px solid var(--lime);padding-top:1.1rem;padding-bottom:1.1rem}
.wordmark{font:800 1.05rem "Manrope",sans-serif;letter-spacing:-.035em}.wordmark:before{content:"";display:inline-block;width:11px;height:11px;background:var(--lime);margin-right:.65rem}
nav a{color:#f4f7fb;font-weight:600}nav a:hover,nav a:focus-visible{color:var(--lime)}
.hero{position:relative;max-width:none;padding:clamp(4rem,10vw,8rem) clamp(1.5rem,6vw,5rem) 4.5rem;margin:2.25rem 0 3.5rem;overflow:hidden;background:var(--navy);color:#fff}
.hero:after{content:"";position:absolute;width:clamp(130px,25vw,310px);aspect-ratio:1;right:-3rem;bottom:-7rem;border:clamp(22px,4vw,50px) solid var(--lime);border-radius:50%;pointer-events:none}
.hero .eyebrow{color:var(--lime)}.hero h1,.article-header h1{font-family:"Manrope",sans-serif;font-weight:800;letter-spacing:-.045em}.hero .lede{color:#e0e9f4}
.section-heading{border-top:2px solid var(--navy)}.section-heading h2,.post-card h3,.article-content h2,.article-content h3,.archive-list h2,.archive-item h3{font-family:"Manrope",sans-serif;color:var(--navy);font-weight:800}
.section-heading a,.text-link{color:var(--navy);font-weight:700;text-decoration-color:var(--lime-dark);text-decoration-thickness:3px}
.post-card{border-color:var(--line);border-radius:3px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.post-card:hover{transform:translateY(-3px);box-shadow:0 14px 40px #102e5212}
.post-card__image{border-bottom:3px solid var(--lime);background:#e8edf3}.post-card__body{padding:1.25rem}.post-card p:not(.meta){color:#50637a}
.article-header h1{color:var(--navy)}.article-header .lede{color:#526780}.article-cover img{border-bottom:5px solid var(--lime)}
.article-content blockquote{border-left:5px solid var(--lime-dark);color:#526780}.article-content pre{background:#edf2f8;border-left:4px solid var(--lime-dark)}
.article-content a{color:var(--navy);text-decoration-color:var(--lime-dark);text-decoration-thickness:2px}.tag{border-radius:2px;background:var(--paper);border-color:#cbd6e3}
.article-pagination,.archive-year{border-color:var(--navy);border-top-width:2px}.archive-item{border-bottom-color:var(--line)}
.site-footer{background:var(--navy-deep);color:#d6e1ef;border-top:4px solid var(--lime)}
.skip-link{background:var(--lime);color:var(--navy-deep);font-weight:700}
@media(max-width:560px){.hero{padding:3.5rem 1.35rem;margin-top:1.25rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}


@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');
:root{--navy:#0b1424;--navy-deep:#070d18;--lime:#c2f23a;--orange:#ff9b54;--sky:#75d7ff;--pink:#ff8fcf;--ink:#dbe5f2;--muted:#94a5bb;--line:#26364d;--paper:#101d30;--mono:"IBM Plex Mono",monospace;--sans:"Inter",sans-serif}
html{font-size:14px}body{background:#0b1424;color:var(--ink);font: .92rem/1.65 var(--sans)}a{color:var(--sky)}a:hover{color:var(--pink)}
.site-header{background:var(--navy-deep);border-bottom:1px solid var(--line);padding:.65rem 0;font: .78rem var(--mono)}
.wordmark{font:600 .88rem var(--mono)}.wordmark:before{content:"▰";color:var(--lime);margin-right:.65rem}
nav a{color:#b9c8dc;font:500 .72rem var(--mono);text-transform:uppercase;letter-spacing:.035em}
.hero{padding:clamp(2.5rem,6vw,4.5rem) clamp(1.2rem,4vw,3.2rem) 2.8rem;margin:1.2rem 0 2.5rem;background:#101d30;border:1px solid var(--line);border-left:4px solid var(--lime)}
.hero:before{content:"// FEATURED";display:block;margin-bottom:1rem;color:var(--lime);font:500 .68rem var(--mono);letter-spacing:.1em}
.hero:after{content:"{ }";position:absolute;right:2.5%;bottom:-1.2rem;color:#1b2d44;font:700 clamp(5rem,15vw,10rem) var(--mono)}
.hero .eyebrow{color:var(--orange);font:.7rem var(--mono);text-transform:uppercase}.hero h1,.article-header h1{font-family:var(--mono);font-weight:600;letter-spacing:-.065em;line-height:1.15}
.hero h1{font-size:clamp(1.8rem,4vw,3.25rem)}.hero .lede{color:#b9c8dc;font-size:.95rem}
.section-heading{border-top:1px solid var(--line);padding-top:.65rem}.section-heading h2,.post-card h3,.article-content h2,.article-content h3,.archive-list h2,.archive-item h3{font-family:var(--mono);color:#f1f6ff;font-weight:500}
.section-heading h2{font-size:1.05rem}.section-heading h2:before{content:"/ ";color:var(--pink)}
.post-card{background:#0e1a2b;border:1px solid var(--line);border-radius:2px}.post-card:hover{border-color:#54708d;box-shadow:0 10px 30px #0003}.post-card__image{border-bottom:1px solid var(--line)}.post-card__body{padding:1rem}.post-card h3{font-size:1.05rem}
.meta,.post-meta,.tag{font-family:var(--mono);font-size:.68rem;color:var(--muted)}.tag{border-radius:2px;background:#152238;border:1px solid #30435c;color:var(--sky)}
.article-header h1{color:#f2f6fc;font-size:clamp(1.8rem,4vw,3rem)}.article-content{font-size:.95rem}.article-content h2{font-size:1.35rem;border-bottom:1px solid var(--line)}.article-content h2:before{content:"## ";color:var(--sky);font-size:.78em}.article-content h3{color:var(--orange)}
.article-content blockquote{border-left:3px solid var(--pink);background:#111f32;color:#b8c8dc;padding:.8rem 1rem}.article-content pre{background:#070d18;border:1px solid #26364d;border-left:3px solid var(--sky)}.article-content code,.article-content pre{font-family:var(--mono);font-size:.84em}.article-content code{color:var(--pink)}.article-content pre code{color:#b8e9ff}
.site-footer{background:var(--navy-deep);color:#8498b2;border-top:1px solid var(--line);font:.7rem var(--mono)}
@media(max-width:560px){html{font-size:13px}.hero{padding:2.2rem 1rem;margin-top:.75rem}}


@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');
.hero h1{font-family:"Space Grotesk",var(--sans);font-size:clamp(1.65rem,3.6vw,2.7rem);font-weight:600;letter-spacing:-.055em;line-height:1.12;max-width:18ch}


/* Studio Journal / personal notebook refinement */
:root{--navy:#0b111b;--navy-deep:#080d15;--paper:#0b111b;--line:#293548;--ink:#e3eaf3;--muted:#8fa1b7;--lime:#b9ed68;--sky:#8bc8f5;--pink:#e3a2d6}
body{background:var(--paper);color:var(--ink)}
.site-main{width:min(1080px,calc(100% - 2.5rem))}
.site-header{padding:1rem clamp(1.25rem,5vw,5rem);background:#090f18;border-bottom:1px solid var(--line)}
.wordmark{font-size:.85rem;letter-spacing:-.02em}.wordmark:before{content:"▸";background:none;width:auto;height:auto;color:var(--lime)}
.site-header nav{gap:1.5rem}.site-header nav a{font-size:.73rem;color:#a9b9cd}.site-header nav a:hover{color:var(--lime)}
.journal-hero{padding:clamp(3rem,7vw,5.8rem) clamp(1.5rem,5vw,4rem) 1.5rem;margin:2rem 0 3.5rem;background:linear-gradient(90deg,rgba(185,237,104,.035) 1px,transparent 1px),linear-gradient(rgba(185,237,104,.035) 1px,transparent 1px),#101a29;background-size:28px 28px;border:1px solid #314052;border-top:3px solid var(--lime);border-left:1px solid #314052;box-shadow:0 22px 55px #0002}
.journal-hero:before,.journal-hero:after{display:none}
.journal-hero .eyebrow{display:flex;align-items:center;gap:.6rem;color:var(--lime);font-size:.69rem;letter-spacing:.09em}
.status-led{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px #b9ed6866}
.journal-hero h1{font:600 clamp(2.5rem,6vw,5.2rem)/1.05 "Space Grotesk",sans-serif;letter-spacing:-.06em;max-width:none;margin:1.25rem 0}
.cursor-mark{color:var(--lime)}
.journal-hero .lede{font-size:clamp(.98rem,1.8vw,1.16rem);max-width:550px;color:#b9c8d9;line-height:1.75}
.hero-meta{display:flex;gap:1rem 2rem;flex-wrap:wrap;margin-top:3.7rem;padding-top:1rem;border-top:1px solid #304155;color:#8da3b8;font:500 .65rem/1.6 var(--mono);letter-spacing:.025em}
.hero-meta span:nth-child(2){color:var(--lime)}
.section-heading{padding:0 0 1rem;border-top:0;border-bottom:1px solid var(--line);margin-bottom:0;align-items:center}
.section-heading h2{font-size:1rem;color:#e7edf7}.section-heading h2:before{content:"./ ";color:var(--lime)}
.entry-count{font:400 .68rem var(--mono);color:var(--muted);margin-left:.8rem}
.section-heading a{font:500 .72rem var(--mono);color:var(--sky)}
.journal-list{display:block;padding-bottom:5rem}
.journal-list .post-card{display:grid;grid-template-columns:1fr;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;overflow:visible;box-shadow:none;transition:background .15s}
.journal-list .post-card:has(.post-card__image){grid-template-columns:minmax(0,1fr) 180px}
.journal-list .post-card:hover{transform:none;box-shadow:none;background:#111c2b}
.journal-list .post-card__body{grid-row:1;grid-column:1;padding:1.6rem 1rem}
.journal-list .post-card__image{grid-row:1;grid-column:2;align-self:center;margin:1rem;aspect-ratio:4/3;border:1px solid var(--line);background:#101a29}
.journal-list .post-card h3{font:600 clamp(1.12rem,2.3vw,1.45rem)/1.3 "Space Grotesk",sans-serif;margin:.55rem 0;color:#f2f6fd}
.journal-list .post-card h3 a:hover{color:var(--lime)}
.journal-list .post-card p:not(.meta){max-width:660px;color:#9fb0c4;font-size:.87rem;margin:.5rem 0 .8rem}
.journal-list .post-card .meta{color:#91a4b9;letter-spacing:.025em;font-size:.68rem}
.entry-index{color:var(--lime)}
.journal-list .text-link{font:500 .72rem var(--mono);color:var(--sky);text-decoration:none}
.empty-journal{padding:3rem 1rem;color:var(--muted);font-family:var(--mono)}.empty-journal span{color:var(--lime)}
.site-footer{padding:1.6rem clamp(1.25rem,5vw,5rem);background:#080d15}
.article-content,.archive-list{color:#d7e2ef}
.article-content a{color:var(--sky)}
@media(max-width:600px){.journal-hero{padding:2.5rem 1.2rem 1.2rem;margin:1rem 0 2rem}.hero-meta{margin-top:2.4rem;gap:.5rem 1.3rem}.journal-list .post-card:has(.post-card__image){grid-template-columns:1fr}.journal-list .post-card__image{grid-row:1;grid-column:1;margin:1rem 1rem 0}.journal-list .post-card:has(.post-card__image) .post-card__body{grid-row:2}.journal-list .post-card__body{padding:1.35rem .5rem}.site-header{gap:.8rem}}

/* Compact homepage banner */
.journal-hero{padding:clamp(1.6rem,3.6vw,2.8rem) clamp(1.3rem,4vw,3rem) 1rem;margin:1.15rem 0 2.3rem}
.journal-hero h1{font-size:clamp(2rem,4.3vw,3.6rem);margin:.75rem 0}
.journal-hero .lede{font-size:.95rem;line-height:1.6}
.journal-hero .hero-meta{margin-top:1.7rem;padding-top:.75rem}
@media(max-width:600px){.journal-hero{padding:1.5rem 1rem 1rem;margin:.8rem 0 1.5rem}.journal-hero h1{font-size:clamp(1.9rem,8vw,2.6rem)}.journal-hero .hero-meta{margin-top:1.2rem}}

/* Archive lessons use their own hero styling, not the homepage decorative glyph. */
.teaching-article .teaching-content .hero::before,
.teaching-article .teaching-content .hero::after { content: none; }

/* Teaching pages have their own section hierarchy; never inject Markdown glyphs. */
body:has(.teaching-article) .article-content h2::before,
body:has(.teaching-article) .article-content h3::before {
  content:none!important;
  display:none!important;
}
