:root{--color-primary:#0a0a0a;--color-brand-pink:#ff4d8b;--color-brand-teal:#1a3a3a;--color-brand-lavender:#b8a4ed;--color-brand-peach:#ffb084;--color-brand-ochre:#e8b94a;--color-brand-mint:#a4d4c5;--color-brand-coral:#ff6b5a;--color-canvas:#fffaf0;--color-surface-soft:#faf5e8;--color-surface-card:#f5f0e0;--color-surface-strong:#ebe6d6;--color-surface-code:#f0eadc;--color-surface-dark:#0a1a1a;--color-surface-dark-elevated:#1a2a2a;--color-hairline:#e5e5e5;--color-ink:#0a0a0a;--color-body-strong:#1a1a1a;--color-body:#3a3a3a;--color-muted:#6a6a6a;--color-muted-soft:#9a9a9a;--color-code-ink:#1a1a1a;--color-on-primary:#fff;--color-success:#22c55e;--color-warning:#f59e0b;--color-error:#ef4444;--font-display:'Inter' , -apple-system , BlinkMacSystemFont , 'Segoe UI' , Roboto , sans-serif;--font-body:'Inter' , -apple-system , BlinkMacSystemFont , 'Segoe UI' , Roboto , sans-serif;--font-mono:'JetBrains Mono' , 'Fira Code' , ui-monospace , SFMono-Regular , Menlo , Monaco , Consolas , monospace;--type-display-xl-size:72px;--type-display-xl-track:-2.5px;--type-display-lg-size:56px;--type-display-lg-track:-2px;--type-display-md-size:40px;--type-display-md-track:-1px;--type-display-sm-size:32px;--type-display-sm-track:-.5px;--type-display-weight:500;--type-title-lg-size:24px;--type-title-md-size:18px;--type-title-sm-size:16px;--type-title-weight:600;--type-body-lg-size:18px;--type-body-md-size:16px;--type-body-sm-size:14px;--type-body-weight:400;--type-body-leading:1.55;--type-article-leading:1.7;--type-caption-size:13px;--type-caption-up-size:12px;--type-button-size:14px;--type-nav-size:14px;--type-metadata-size:13px;--type-code-block-size:14px;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-xxl:48px;--space-section:96px;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:9999px;--radius-full:9999px;--container-max:1280px;--article-max:680px}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--color-canvas);color:var(--color-body);font-family: var(--font-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{font-family: var(--font-display);color:var(--color-ink);font-weight:var(--type-display-weight);margin:0}h1{font-size:var(--type-display-lg-size);letter-spacing:var(--type-display-lg-track);line-height:1.05}h2{font-size:var(--type-display-md-size);letter-spacing:var(--type-display-md-track);line-height:1.1}h3{font-size:var(--type-title-lg-size);font-weight:var(--type-title-weight);letter-spacing:-.3px;line-height:1.3}h4{font-size:var(--type-title-md-size);font-weight:var(--type-title-weight);line-height:1.4}p{font-size:var(--type-body-md-size);line-height:var(--type-body-leading);color:var(--color-body)}a{color:var(--color-ink);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}code,kbd,samp,pre{font-family: var(--font-mono);color:var(--color-code-ink)}:not(pre)>code {font-size:.9em;font-weight:400;background:var(--color-surface-code);border:1px solid var(--color-hairline);padding:2px 6px;border-radius:var(--radius-xs)}pre{font-size:var(--type-code-block-size);line-height:1.6;background:var(--color-surface-code);border:1px solid var(--color-hairline);border-radius:var(--radius-md);padding:var(--space-lg);overflow-x:auto}.post-body{max-width:720px}.post-body>*+*{margin-top:var(--space-md)}.post-body>h2{margin-top:var(--space-xxl)}.post-body>h3{margin-top:var(--space-xl)}.post-body ul,.post-body ol{padding-left:var(--space-lg);color:var(--color-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading)}.post-body li+li{margin-top:var(--space-xs)}.post-body blockquote{margin:0;padding:var(--space-md) var(--space-lg);border-left:3px solid var(--color-brand-pink);background:var(--color-surface-card);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-body-strong);font-style:italic}.post-body hr{border:none;border-top:1px solid var(--color-hairline);margin:var(--space-xxl) 0}.screenshot{padding:2rem}.screenshot img{box-shadow: 3px 3px 10px 3px #00000055;border-radius:8px}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-xl)}.section{padding:var(--space-section) 0}.section-sm{padding:var(--space-xxl) 0}.section-head{margin-bottom:var(--space-xl)}.section-head h2{font-family: var(--font-display);font-weight:500;font-size:var(--type-display-md-size);line-height:1.1;letter-spacing:var(--type-display-md-track);color:var(--color-ink)}.section-head p{font-family: var(--font-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading);color:var(--color-muted);margin-top:var(--space-xs)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.grid-hero{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-md);align-items:stretch}.nav{position:sticky;top:0;z-index:100;height:64px;background:var(--color-canvas);border-bottom:1px solid var(--color-hairline)}.nav-inner{max-width:var(--container-max);margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-xl)}.wordmark{font-family: var(--font-display);font-weight:500;font-size:18px;letter-spacing:-.5px;color:var(--color-ink);text-decoration:none}.nav-panel{display:flex;align-items:center;gap:var(--space-xl)}.nav-menu{display:flex;gap:28px}.nav-menu a{font-family: var(--font-body);font-weight:500;font-size:var(--type-nav-size);color:var(--color-ink);text-decoration:none;line-height:1.4}.nav-menu a.muted{color:var(--color-muted)}.nav-say-hi{font-family: var(--font-body);font-weight:500;font-size:var(--type-nav-size);line-height:1.4;color:var(--color-ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px}.hamburger{display:none;font-family: var(--font-body);font-weight:500;font-size:var(--type-nav-size);color:var(--color-ink);background:none;border:none;cursor:pointer}.hero{padding:var(--space-section) 0}.hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:var(--space-xxl);align-items:center}.hero-text{display:flex;flex-direction:column;gap:var(--space-lg)}.hero h1{font-family: var(--font-display);font-weight:var(--type-display-weight);font-size:var(--type-display-xl-size);line-height:1.0;letter-spacing:var(--type-display-xl-track);color:var(--color-ink)}.hero-sub{font-family: var(--font-body);font-weight:var(--type-title-weight);font-size:var(--type-title-md-size);line-height:1.4;color:var(--color-body-strong)}.hero-actions{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.hero-illustration{background:var(--color-surface-soft);border-radius:var(--radius-xl);aspect-ratio: 1 / 1;display:flex;align-items:center;justify-content:center;font-family: var(--font-mono);font-size:11px;color:var(--color-muted-soft);border:1px dashed var(--color-muted-soft)}.hero-terminal{position:relative;background:var(--color-canvas);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 14px 28px -20px rgba(0,0,0,.18);font-family: var(--font-mono);align-self:stretch}.hero-terminal-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:rgba(0,0,0,.025);border-bottom:1px solid var(--color-hairline)}.hero-terminal-dot{width:11px;height:11px;border-radius:var(--radius-pill);display:inline-block}.hero-terminal-dot.dot-1{background:var(--color-brand-coral)}.hero-terminal-dot.dot-2{background:var(--color-brand-ochre)}.hero-terminal-dot.dot-3{background:var(--color-brand-mint)}.hero-terminal-title{margin-left:8px;font-size:12px;color:var(--color-muted);letter-spacing:.02em}.hero-terminal-body{padding:var(--space-lg);font-size:14px;line-height:1.75;color:var(--color-ink)}.hero-terminal-prompt{color:var(--color-brand-pink);font-weight:600;margin-right:8px}.hero-terminal-output{color:var(--color-muted)}.hero-terminal-cursor{display:inline-block;margin-left:2px;color:var(--color-ink);animation:hero-terminal-blink 1s steps(2,jump-none) infinite}@keyframes hero-terminal-blink {
  to {
    opacity: 0;
  }
}@media (prefers-reduced-motion:reduce){.hero-terminal-cursor{animation:none}}.hero-terminal-dismiss,.hero-terminal-forgive{position:absolute;bottom:10px;right:12px;background:rgba(0,0,0,.025);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);padding:4px 8px;font-family: var(--font-mono);font-size:11px;letter-spacing:.02em;color:var(--color-muted-soft);cursor:pointer;transition:color 120ms ease , background 120ms ease , border-color 120ms ease}.hero-terminal-dismiss:hover,.hero-terminal-dismiss:focus-visible,.hero-terminal-forgive:hover,.hero-terminal-forgive:focus-visible{color:var(--color-muted);background:rgba(0,0,0,.05);border-color:var(--color-muted-soft);outline:none}.hero-terminal-forgive{display:none}.hero-terminal.is-silenced .hero-terminal-cursor{display:none}.hero-terminal.is-silenced .hero-terminal-dismiss{display:none}.hero-terminal.is-silenced .hero-terminal-forgive{display:inline-block}.hero-terminal.is-transitioning .hero-terminal-dismiss,.hero-terminal.is-transitioning .hero-terminal-forgive{display:none}.page-header-with-image{display:grid;grid-template-columns:1fr auto;gap:var(--space-xxl);align-items:center}.page-portrait img{width:220px;height:220px;object-fit:cover;border-radius:var(--radius-xl);display:block}.btn{font-family: var(--font-body);font-weight:600;font-size:var(--type-button-size);height:44px;padding:0 20px;display:inline-flex;align-items:center;gap:8px;border-radius:var(--radius-md);border:0;cursor:pointer;text-decoration:none;line-height:1.0}.btn svg{width:1em;height:1em;flex-shrink:0}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-secondary{background:var(--color-canvas);color:var(--color-ink);border:1px solid var(--color-hairline)}.btn-text{background:transparent;color:var(--color-ink);padding:0;height:auto;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}.btn-on-color{background:#fff;color:var(--color-ink)}.badge{align-self:flex-start;font-family: var(--font-body);font-weight:600;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:5px 9px;border-radius:var(--radius-xs)}.badge-on-pink{background:rgba(255,255,255,.2);color:var(--color-on-primary)}.meta-row{font-family: var(--font-mono);font-size:var(--type-metadata-size);line-height:1.4;color:var(--color-muted)}.pill-group{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-top:auto}.pill{font-family: var(--font-mono);font-size:13px;line-height:1;padding:4px 10px;border-radius:var(--radius-pill);background:var(--color-canvas);border:1px solid var(--color-hairline);color:var(--color-muted)}.pill-on-dark{background:rgba(255,255,255,.15);color:var(--color-on-primary);border-color:rgba(255,255,255,.2)}.pill-on-lavender{background:rgba(0,0,0,.08);color:var(--color-ink);border:none}.card-pink{background:var(--color-brand-pink);color:var(--color-on-primary);border-radius:var(--radius-xl);padding:var(--space-xl);display:flex;flex-direction:column;gap:16px}.card-pink h2{font-family: var(--font-display);font-weight:var(--type-display-weight);font-size:var(--type-display-sm-size);line-height:1.15;letter-spacing:var(--type-display-sm-track);color:var(--color-on-primary)}.card-pink .lede{font-family: var(--font-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading);color:var(--color-on-primary);opacity:.92}.card-pink .btn{align-self:flex-end}.card-pink .meta-row{color:var(--color-on-primary);opacity:.8}.card-teal{background:var(--color-brand-teal);color:var(--color-on-primary);border-radius:var(--radius-xl);padding:var(--space-xl);display:flex;flex-direction:column;gap:16px}.card-teal .bio-head{display:flex;gap:var(--space-md);align-items:flex-start}.card-teal .mascot{width:72px;height:72px;border-radius:var(--radius-full);flex-shrink:0;object-fit:cover;border:2px solid rgba(255,255,255,.35)}.card-teal h3{font-family: var(--font-display);font-weight:var(--type-display-weight);font-size:var(--type-display-sm-size);line-height:1.15;letter-spacing:var(--type-display-sm-track);color:var(--color-on-primary)}.card-teal p.body{font-family: var(--font-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading);color:var(--color-on-primary);opacity:.92}.card-teal .socials{display:flex;gap:var(--space-md);flex-wrap:wrap}.card-teal .socials a{font-family: var(--font-body);font-size:var(--type-body-sm-size);color:var(--color-on-primary);opacity:.85;text-underline-offset:3px}.card-lavender{background:var(--color-brand-lavender);color:var(--color-ink);border-radius:var(--radius-xl);padding:var(--space-xl);display:flex;flex-direction:column;gap:12px}a.card-lavender,a.card-peach,a.card-cream{text-decoration:none;color:inherit}a.card-lavender:hover,a.card-peach:hover,a.card-cream:hover{text-decoration:none}.card-lavender h3{font-family: var(--font-body);font-weight:var(--type-title-weight);font-size:var(--type-title-lg-size);line-height:1.3;letter-spacing:-.3px;color:var(--color-ink)}.card-lavender p.body{font-family: var(--font-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading);color:var(--color-ink);opacity:.85}.card-peach{background:var(--color-brand-peach);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:12px}.card-peach h3{font-family: var(--font-body);font-weight:var(--type-title-weight);font-size:var(--type-title-lg-size);line-height:1.3;letter-spacing:-.3px;color:var(--color-ink)}.card-peach p.body{font-family: var(--font-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading);color:var(--color-body-strong)}.card-peach .meta-row{color:var(--color-body);margin-top:auto}.card-ochre{background:var(--color-brand-ochre);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:12px}.card-ochre h3{font-family: var(--font-body);font-weight:var(--type-title-weight);font-size:var(--type-title-lg-size);line-height:1.3;letter-spacing:-.3px;color:var(--color-ink)}.card-ochre p.body{font-family: var(--font-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading);color:var(--color-body-strong)}.card-ochre .meta-row{color:var(--color-body);margin-top:auto}.card-ochre .meta-row a{color:var(--color-ink);text-decoration:underline;text-underline-offset:3px}.page-header{padding:var(--space-section) 0 var(--space-xxl)}.page-header h1{font-family: var(--font-display);font-weight:500;font-size:var(--type-display-lg-size);line-height:1.05;letter-spacing:var(--type-display-lg-track);color:var(--color-ink)}.page-header p{font-family: var(--font-body);font-size:var(--type-title-md-size);font-weight:600;line-height:1.4;color:var(--color-body-strong);margin-top:var(--space-sm);max-width:600px}.page-header .meta-row{margin-top:var(--space-md)}.page-header .pill-group{margin-top:var(--space-sm)}.tag-filters{display:flex;gap:var(--space-xs);flex-wrap:wrap;padding-top:var(--space-lg)}.tag-filter{font-family: var(--font-mono);font-size:13px;line-height:1;padding:4px 10px;border-radius:var(--radius-pill);background:var(--color-canvas);border:1px solid var(--color-hairline);color:var(--color-muted);cursor:pointer;text-decoration:none}.tag-filter.active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.tag-filter-count{opacity:.6}.card-cream{background:var(--color-surface-card);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:12px}.card-cream h3{font-family: var(--font-body);font-weight:600;font-size:var(--type-title-lg-size);line-height:1.3;letter-spacing:-.3px;color:var(--color-ink)}.card-cream p.body{font-family: var(--font-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading);color:var(--color-body)}.card-cream .meta-row{color:var(--color-muted);margin-top:auto}.archive-head{font-family: var(--font-display);font-weight:500;font-size:var(--type-display-sm-size);line-height:1.15;letter-spacing:var(--type-display-sm-track);color:var(--color-ink);margin-bottom:var(--space-lg)}.view-all{text-align:center;margin-top:var(--space-xl)}.archive-year{font-family: var(--font-display);font-weight:500;font-size:var(--type-display-sm-size);line-height:1.15;letter-spacing:var(--type-display-sm-track);color:var(--color-ink);margin-top:var(--space-section);margin-bottom:var(--space-lg)}.archive-year:first-of-type{margin-top:0}.archive-section{padding-top:1rem}.archive-list{display:flex;flex-direction:column;gap:var(--space-sm)}.archive-item{display:flex;flex-direction:column;gap:4px;padding:var(--space-md) var(--space-lg);background:var(--color-surface-card);border-radius:var(--radius-lg)}.archive-item h3{font-family: var(--font-body);font-weight:600;font-size:var(--type-title-md-size);line-height:1.4;color:var(--color-ink)}a.archive-item,a.archive-item:hover,a.archive-item:focus,a.archive-item h3{text-decoration:none;color:inherit}.archive-item .meta-row{font-family: var(--font-mono);font-size:var(--type-metadata-size);color:var(--color-muted)}.cta-band{background:var(--color-surface-soft);border-radius:var(--radius-xl);padding:80px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-lg)}.cta-band h2{font-family: var(--font-display);font-weight:var(--type-display-weight);font-size:var(--type-display-md-size);line-height:1.1;letter-spacing:var(--type-display-md-track);color:var(--color-ink)}.cta-band p{font-family: var(--font-body);font-size:var(--type-body-md-size);line-height:var(--type-body-leading);color:var(--color-body)}.footer{background:var(--color-surface-soft);padding:80px var(--space-xl) var(--space-lg)}.footer-grid{max-width:var(--container-max);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xl)}.footer h4{font-family: var(--font-body);font-weight:var(--type-title-weight);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-muted);margin-bottom:4px}.footer-col{display:flex;flex-direction:column;gap:var(--space-xs)}.footer-col a,.footer-col span{font-family: var(--font-body);font-size:var(--type-body-sm-size);line-height:var(--type-body-leading);color:var(--color-body);text-decoration:none}.colophon{font-family: var(--font-mono);font-size:12px;color:var(--color-muted);line-height:1.5}.rss-badge{font-family: var(--font-mono);font-size:12px;padding:3px 9px;border-radius:var(--radius-sm);background:var(--color-brand-ochre);color:var(--color-ink);align-self:flex-start}.footer-mountain{max-width:var(--container-max);margin:var(--space-xl) auto 0;border-radius:0 0 var(--radius-lg) var(--radius-lg);overflow:hidden}.footer-mountain img{width:100%;height:auto;display:block}.footer-mountain img{width:100%;height:auto;display:block}@media (max-width:1023px){.hero-grid{grid-template-columns:1fr}.hero-illustration{aspect-ratio: 16 / 9;min-height:240px}.grid-2,.grid-hero{grid-template-columns:1fr}.cta-band{padding:var(--space-xxl) var(--space-xl)}}@media (max-width:767px){:root{--type-display-xl-size:36px;--type-display-xl-track:-1px}.page-portrait{display:none}.page-header{padding:var(--space-xxl) 0 var(--space-xl)}.page-header h1{font-size:var(--type-display-md-size);letter-spacing:var(--type-display-md-track)}.page-header p{font-size:var(--type-body-md-size)}.container{padding:0 var(--space-md)}.archive-year{margin-top:var(--space-xxl);font-size:var(--type-title-lg-size);letter-spacing:-.3px}.hero{padding:var(--space-xxl) 0}.hero-illustration{aspect-ratio: 4 / 3;min-height:200px}.hero-sub{font-size:var(--type-body-md-size)}.section{padding:var(--space-xxl) 0}.cta-band{padding:var(--space-xl)}.cta-band h2{font-size:var(--type-display-sm-size);letter-spacing:var(--type-display-sm-track)}.footer-grid{grid-template-columns:1fr}.screenshot{padding:0}.hamburger{display:block}.nav-panel{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:0 var(--space-md);background:var(--color-canvas);border-bottom:1px solid var(--color-hairline);box-shadow:0 8px 16px -8px rgba(0,0,0,.08);transform:translateY(-12px);opacity:0;visibility:hidden;transition:transform 220ms cubic-bezier(.22,1,.36,1) , opacity 160ms ease-out , visibility 0s linear 220ms}.nav.is-open .nav-panel{transform:translateY(0);opacity:1;visibility:visible;transition:transform 260ms cubic-bezier(.22,1,.36,1) , opacity 200ms ease-out}.nav-panel .nav-menu{flex-direction:column;gap:0}.nav-panel .nav-menu a{padding:var(--space-md) 0;border-bottom:1px solid var(--color-hairline)}.nav-panel .nav-say-hi{padding:var(--space-md) 0;align-self:stretch}.footer{padding:var(--space-xxl) var(--space-md) var(--space-lg)}.footer-mountain{margin:var(--space-lg) var(--space-md) 0}}