[hidden]{display:none!important}
/* Palette supplied from https://iyi.dev/_astro/Page.CPHo-8Vg.css. */
:root {
  color-scheme: light dark;
  --paper: #fff;
  --raise: #f7f7f8;
  --ink: #1c1c1e;
  --graphite: #4d4f53;
  --mute: #676a6f;
  --hairline: #e3e4e8;
  --track: #eceef1;
  --brand: #d1333d;
  --brand-deep: #ad1f29;
  --brand-soft: #fdeeee;
  --glove: #ecb643;
  --signal: var(--brand-deep);
  --signal-deep: #8a151d;
  --boundary: #85888f;
  --paper-dark: #141418;
  --raise-dark: #1d1d23;
  --ink-dark: #f0f0f2;
  --graphite-dark: #c3c5cb;
  --mute-dark: #9ba0a8;
  --hairline-dark: #33343c;
  --track-dark: #2b2c33;
  --brand-dark: #f4636d;
  --brand-deep-dark: #ff8f96;
  --brand-soft-dark: #2b171a;
  --glove-dark: #f0c25e;
  --signal-deep-dark: #ffb3b8;
  --boundary-dark: #6b6d76;
  --font-sans: "Figtree Variable", "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-text: var(--font-sans);
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
@media screen and (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) {
    --paper: var(--paper-dark);
    --raise: var(--raise-dark);
    --ink: var(--ink-dark);
    --graphite: var(--graphite-dark);
    --mute: var(--mute-dark);
    --hairline: var(--hairline-dark);
    --track: var(--track-dark);
    --brand: var(--brand-dark);
    --brand-deep: var(--brand-deep-dark);
    --brand-soft: var(--brand-soft-dark);
    --glove: var(--glove-dark);
    --signal-deep: var(--signal-deep-dark);
    --boundary: var(--boundary-dark);
    color-scheme: dark;
  }
}
@media screen {
  :root[data-theme=dark] {
    --paper: var(--paper-dark);
    --raise: var(--raise-dark);
    --ink: var(--ink-dark);
    --graphite: var(--graphite-dark);
    --mute: var(--mute-dark);
    --hairline: var(--hairline-dark);
    --track: var(--track-dark);
    --brand: var(--brand-dark);
    --brand-deep: var(--brand-deep-dark);
    --brand-soft: var(--brand-soft-dark);
    --glove: var(--glove-dark);
    --signal-deep: var(--signal-deep-dark);
    --boundary: var(--boundary-dark);
    color-scheme: dark;
  }
  :root[data-theme=light] { color-scheme: light; }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-text);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;line-height:1.6}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
a:hover{color:var(--brand-deep)}
button,a,input,select{touch-action:manipulation}
:focus-visible{outline:2px solid var(--brand-deep);outline-offset:4px}
.shell{max-width:1344px;margin:auto;padding:0 56px}
.accent{color:var(--brand-deep)}
header{height:104px;border-bottom:1px solid var(--hairline);display:flex;align-items:center;justify-content:space-between;gap:30px}
.logo{display:flex;gap:11px;align-items:center}
.logo-mark svg{display:block;width:44px;height:44px}
.logo-name b{color:var(--brand-deep);font-weight:800}
.logo-name{font-size:25px;letter-spacing:-1px;font-weight:600}
nav{display:flex;gap:33px;margin-left:auto;margin-right:40px;font-size:14px}
.header-link{font-size:13px;border:1px solid var(--hairline);padding:10px 16px;border-radius:6px}
.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:45px;padding:76px 0 65px;align-items:center}
.eyebrow{font-family:var(--font-mono);letter-spacing:1.6px;font-size:11px;color:var(--mute);display:flex;align-items:center;gap:9px}
.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brand-deep);flex-shrink:0}
.hero h1{font-size:clamp(42px,5vw,68px);line-height:1.06;letter-spacing:-3.6px;font-weight:500;margin:23px 0}
.hero em,.closing em{color:var(--brand-deep);font-family:Georgia,serif;font-weight:400}
.hero p{color:var(--mute);font-size:15px;line-height:1.8;margin:0 0 25px}
.text-link{font-size:14px;display:inline-flex;align-items:center;gap:25px}
.hero-links{display:flex;flex-wrap:wrap;gap:12px 36px}
/* The hero's terminal: dark in both themes, like a terminal. */
.hero-art{--term:#16161b;--term-raise:#202027;--term-line:#2e2f37;--term-ink:#e9e9ee;--term-mute:#8d919a;--term-red:#f4636d;--term-ok:#6cc28d;position:relative;display:grid;gap:10px;align-content:start;padding:52px 22px 22px;border:1px solid var(--term-line);border-radius:12px;overflow:hidden;background:var(--term);color:var(--term-ink);font:12px/1.85 var(--font-mono);box-shadow:12px 12px 0 color-mix(in srgb,var(--brand) 22%,transparent)}
.art-label{position:absolute;top:20px;left:22px;color:var(--term-mute);font:9px var(--font-mono);letter-spacing:2px}
.art-line{overflow-wrap:anywhere}
.art-prompt{color:var(--term-red)}
.art-out{color:var(--term-mute)}
.art-ok{color:var(--term-ok)}
.art-file{background:var(--term-raise);border:1px solid var(--term-line);border-radius:8px;overflow:hidden;font-size:11px}
.art-name{font-size:10px;letter-spacing:.4px;color:var(--term-mute);padding:4px 12px;border-bottom:1px solid var(--term-line)}
.art-file .art-line{padding:0 12px 0 26px}
.art-file .art-add{position:relative;background:color-mix(in srgb,var(--term-ok) 16%,transparent)}
.art-file .art-add::before{content:"+";position:absolute;left:12px;color:var(--term-ok);font-weight:600}
.stats{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);display:flex;align-items:center;gap:32px;padding:21px 0;font-size:12px;color:var(--mute)}
.stats b{color:var(--ink);font-size:17px;font-weight:500;margin-right:5px}
.stats .dot{margin-right:8px}
.stats-note{margin-left:auto;font-family:Georgia,serif;font-style:italic}
.catalog{display:grid;grid-template-columns:228px minmax(0,1fr);gap:40px;padding:55px 0 60px}
aside>.eyebrow{margin:7px 0 21px}
.category-link{display:flex;justify-content:space-between;font-size:12px;padding:12px 10px;margin:4px 0;color:var(--mute);border-radius:5px}
.category-link.active{background:var(--brand-soft);color:var(--brand-deep)}
.category-link>span:last-child{font-family:var(--font-mono);font-size:10px}
.aside-note{border:1px solid var(--hairline);border-radius:8px;padding:22px 18px;margin-top:33px}
.aside-note>span{font-size:24px;color:var(--brand-deep)}
.aside-note h3{font-size:14px;font-weight:500;margin:8px 0}
.aside-note p{font-size:12px;color:var(--mute);margin:0 0 15px}
.aside-note a{font-size:11px;color:var(--brand-deep)}
.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.section-title h2{font-size:23px;font-weight:500;letter-spacing:-.6px;margin:0}
.section-title>span{font:11px var(--font-mono);color:var(--mute)}
.filters{display:flex;flex-wrap:wrap;gap:9px}
.search{display:flex;align-items:center;gap:8px;flex:1 1 240px;border:1px solid var(--hairline);background:var(--raise);padding:7px 12px;border-radius:5px}
.search>span{font-size:25px;line-height:1;color:var(--mute)}
input[type=text],input:not([type]){width:100%;min-width:0;background:transparent;border:0;color:var(--ink);font-size:13px;padding:4px}
input::placeholder{color:var(--mute)}
kbd{font:11px var(--font-mono);color:var(--mute);border:1px solid var(--hairline);padding:0 6px;border-radius:3px}
select,.filters button{background:var(--raise);border:1px solid var(--hairline);border-radius:5px;color:var(--mute);padding:9px 10px;font-size:11px;max-width:100%}
.filters button{color:var(--brand-deep);cursor:pointer}
.catalog-note{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--mute);margin:18px 0 24px}
.package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.package{position:relative;border:1px solid var(--hairline);border-radius:8px;background:var(--raise);padding:19px 17px 15px;display:flex;flex-direction:column;transition:border-color .2s,transform .2s}
.package:hover{border-color:var(--brand);transform:translateY(-2px)}
.package-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.package-icon{border:1px solid var(--hairline);background:var(--brand-soft);width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font:20px Georgia,serif;color:var(--brand-deep)}
.badge{display:inline-block;font:9px var(--font-mono);border:1px solid var(--hairline);background:var(--raise);padding:3px 6px;border-radius:4px;color:var(--graphite);white-space:nowrap}
.badge.module{color:var(--brand-deep);background:var(--brand-soft);border-color:var(--hairline)}
.package h3{font-size:19px;letter-spacing:-.4px;font-weight:500;margin:20px 0 8px}
/* The name's link covers the whole card; the category link stays above it. */
.package h3 a{display:flex;justify-content:space-between}
.package h3 a::after{content:"";position:absolute;inset:0;border-radius:8px}
.package h3 a:focus-visible{outline:none}
.package h3 a:focus-visible::after{outline:2px solid var(--brand-deep);outline-offset:3px}
.package-bottom a{position:relative;z-index:1}
.package h3 span{color:var(--mute);font-size:14px}
.package p{font-size:12px;color:var(--mute);line-height:1.8;margin:0 0 23px;flex:1}
.package p.package-stats{font:10px var(--font-mono);flex:0;margin:0 0 12px}
.package-bottom{border-top:1px solid var(--hairline);padding-top:13px;display:flex;justify-content:space-between;gap:5px;font-size:9px;color:var(--mute);align-items:center}
.button{display:inline-block;background:var(--brand);border:1px solid transparent;padding:11px 17px;border-radius:5px;color:var(--paper);font-size:12px;cursor:pointer}
.button:hover{background:var(--brand-deep);color:var(--paper)}
.empty{grid-column:1/-1;padding:45px;text-align:center;border:1px dashed var(--hairline);border-radius:8px}
.empty p{color:var(--mute)}
.closing{border-top:1px solid var(--hairline);text-align:center;padding:53px 0 60px}
.closing .eyebrow{justify-content:center}
.closing h2{font-size:43px;font-weight:500;letter-spacing:-1.5px;margin:15px 0}
.closing .text-link{color:var(--mute);font-size:12px}
footer{border-top:1px solid var(--hairline);display:flex;gap:22px;align-items:center;justify-content:space-between;padding:25px 0 35px;font-size:11px;color:var(--mute)}
.footer-logo{font-size:19px;letter-spacing:-.7px;font-weight:600;color:var(--ink)}
.detail{padding:58px 0 75px;min-height:55vh}
.detail>.eyebrow{margin-top:40px}
.detail h1{font-size:54px;letter-spacing:-2px;line-height:1.1;font-weight:500;margin:26px 0}
.lead{font-size:19px;color:var(--mute);max-width:760px}
.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:50px;margin-top:45px}
.detail h2{font-weight:500;font-size:22px;margin:30px 0 15px}
.detail p{color:var(--mute)}
pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--raise);border:1px solid var(--hairline);padding:24px;border-radius:8px;color:var(--brand-deep);font-size:13px}
.metadata{border:1px solid var(--hairline);border-radius:8px;background:var(--raise);padding:24px;align-self:start}
.metadata h3{font-size:17px;font-weight:500}
.metadata dt{font-size:11px;color:var(--mute);margin-top:18px}
.metadata dd{font-size:13px;margin:3px 0}
.metadata .button{margin-top:25px}
.care{font-size:11px;line-height:1.6;color:var(--mute);margin:16px 0 0}
.care a{color:var(--brand-deep)}
.prose{max-width:800px}
.skip-link{position:absolute;left:20px;top:-100px;background:var(--brand);color:var(--paper);padding:10px;z-index:3}
.skip-link:focus{top:10px}
@media(min-width:1100px){.filters .search{flex-basis:100%}
.filters select{flex:1}
}
@media(max-width:1100px){.shell{padding:0 30px}
.package-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.catalog{grid-template-columns:200px minmax(0,1fr);gap:25px}
.stats-note{display:none}
.hero{gap:25px}
.hero h1{letter-spacing:-2px}
.desktop{display:none}
}
@media(max-width:720px){.shell{padding:0 20px}
header{height:82px;gap:15px}
nav{gap:17px;margin:0 0 0 auto;font-size:12px}
.header-link{display:none}
.logo-name{font-size:20px}
.logo-mark svg{width:38px;height:38px}
.hero{grid-template-columns:1fr;padding:48px 0 30px;gap:35px}
.hero h1{font-size:49px;letter-spacing:-2.5px}
.hero-art{max-width:520px;width:100%}
.stats{gap:14px;font-size:10px;justify-content:space-between;padding:18px 0}
.stats b{font-size:14px}
.catalog{grid-template-columns:1fr;padding-top:30px;gap:25px}
.catalog>aside{display:flex;flex-wrap:wrap;gap:5px}
.catalog>aside>.eyebrow{width:100%;margin:0 0 10px}
.category-link{gap:12px;font-size:10px;margin:0;padding:8px 9px;border:1px solid var(--hairline)}
.aside-note{display:none}
.package-grid{gap:10px}
.package{padding:15px 12px}
.package h3{font-size:18px}
.package p{font-size:11px}
.package-icon{width:28px;height:28px}
.badge{font-size:8px;padding:3px 4px}
.package-bottom{flex-wrap:wrap;gap:9px}
.filters select{flex:1}
.catalog-note{font-size:9px;line-height:1.7}
.closing h2{font-size:34px}
footer{flex-wrap:wrap;gap:12px}
footer>span{order:3;width:100%}
.detail h1{font-size:43px}
.detail-grid{grid-template-columns:1fr;gap:25px}
.lead{font-size:17px}
}
@media(max-width:380px){nav{gap:10px}
.package-grid{grid-template-columns:1fr}
.stats{flex-wrap:wrap}
.hero h1{font-size:42px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.package{transition:none}
.package:hover{transform:none}
}


.button:disabled{opacity:.45;cursor:default}


