:root{--bg:#f7f3ea;--fg:#2b2118;--muted:#6e6253;--accent:#b4441c;--line:#e3dacb;--code:#efe8da;color-scheme:light}[data-theme=dark]{--bg:#1c1814;--fg:#efe7da;--muted:#a89b88;--accent:#e9825a;--line:#352e26;--code:#25201a;color-scheme:dark}*{box-sizing:border-box}body,html{background:var(--bg)}body{margin:0;color:var(--fg);font:var(--body-size)/var(--body-line) var(--font-body);-webkit-font-smoothing:antialiased}code,pre{font-family:var(--font-mono)}h1,h2,h3{font-family:var(--font-head);font-weight:var(--head-weight);letter-spacing:var(--head-track)}.brand{font-family:var(--font-brand);font-weight:var(--brand-weight);letter-spacing:var(--brand-track)}.meta,.nav nav a,.small,time{font-family:var(--font-meta);letter-spacing:var(--meta-track);text-transform:var(--meta-case)}::selection{background:var(--accent);color:var(--bg)}.wrap{max-width:640px;margin:0 auto;padding:48px 20px}a{color:inherit;text-decoration:none}.arrow,.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.nav{justify-content:space-between;margin-bottom:64px}.nav,.nav nav{display:flex;align-items:center}.nav nav{gap:16px}.nav nav a{color:var(--muted)}.nav nav a:hover{color:var(--fg)}.brand{font-size:var(--brand-size)}.toggle{display:grid;place-items:center;width:32px;height:32px;background:none;border:1px solid var(--line);color:var(--muted);border-radius:8px;cursor:pointer}.toggle:hover{color:var(--accent);border-color:var(--accent)}.moon,[data-theme=dark] .sun{display:none}[data-theme=dark] .moon{display:block}h1{font-size:var(--h1-size);line-height:1.25;margin:0 0 16px}.section{font-size:var(--section-size);color:var(--accent);margin:56px 0 12px}.section,.section a,.section a:active,.section a:focus,.section a:focus-visible,.section a:hover,.section a:link,.section a:visited{color:var(--accent)}.section a:hover{text-decoration:underline;text-underline-offset:4px}.section.page-title{font-size:var(--h1-size);margin:0 0 16px}.list{list-style:none;padding:0;margin:0}.list a{display:flex;justify-content:space-between;gap:16px;padding:10px 0}.list a:hover span{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.list time{font-size:var(--meta-size);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.list time,.muted{color:var(--muted)}.block,.small{font-size:14px}.block{display:block}.empty{border:1px dashed var(--line);border-radius:10px;padding:20px;text-align:center;margin:0}.empty,.todo{color:var(--muted)}.todo{border:1px dashed var(--muted);border-radius:8px;padding:12px 14px;font-family:var(--font-mono);font-size:14px}.prose h2{font-size:var(--h2-size);margin-top:36px;line-height:1.3}.prose blockquote{margin:0;border-left:2px solid var(--line);padding-left:16px;color:var(--muted)}.prose pre{background:var(--code);border:1px solid var(--line);padding:14px;border-radius:8px;overflow-x:auto;font-size:14px}.prose table{border-collapse:collapse;width:100%}.prose td,.prose th{border-bottom:1px solid var(--line);text-align:left;padding:6px 8px}.prose img{max-width:100%}@media(max-width:480px){.wrap{padding-top:28px}.nav{margin-bottom:40px}.list a{flex-direction:column;gap:0}}.cover,.prose img{display:block;max-width:100%;height:auto;border-radius:10px;border:1px solid var(--line);background:var(--code)}.cover{width:100%;margin:8px 0 28px;aspect-ratio:16/9;object-fit:cover}.prose figure{margin:28px 0}.prose figure img{margin:0 auto}.prose figcaption{margin-top:8px;text-align:center;font-size:14px;color:var(--muted)}.prose figure.video{margin:28px 0}.prose .embed{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--code)}.prose .embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.prose video{display:block;width:100%;max-width:100%;height:auto;border-radius:10px;border:1px solid var(--line);background:#000}.site-footer{margin-top:88px;padding-top:18px;border-top:1px solid var(--line)}.motto{display:grid;grid-template-columns:auto minmax(0,1fr);grid-column-gap:10px;column-gap:10px;align-items:baseline;max-width:34em;color:var(--muted)}.motto,.motto blockquote{margin:0}.motto p{margin:0;text-wrap:balance}.motto p,.motto-mark{font-family:var(--font-meta);font-style:normal;font-weight:400;font-synthesis:none;font-size:11px;line-height:22px;letter-spacing:0}.motto-mark{color:var(--accent);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.footer-links{list-style:none;margin:10px 0 0;padding:0 0 0 calc(2ch + 10px);display:flex;flex-wrap:wrap;gap:4px 18px;font-family:var(--font-meta);font-size:11px;line-height:22px;letter-spacing:0;font-synthesis:none}.footer-links a,.footer-links a:visited{color:var(--muted);text-decoration:none}.footer-links a:focus-visible,.footer-links a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.footer-links a:focus-visible{outline:1px solid var(--accent);outline-offset:2px;border-radius:2px}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-cyrillic-ext-400-normal.fd03fc54.woff2) format("woff2"),url(/_next/static/media/geist-cyrillic-ext-400-normal.50d0a411.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-cyrillic-400-normal.371f5439.woff2) format("woff2"),url(/_next/static/media/geist-cyrillic-400-normal.78137f54.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-vietnamese-400-normal.d65b233b.woff2) format("woff2"),url(/_next/static/media/geist-vietnamese-400-normal.73dc75ec.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-latin-ext-400-normal.e308ab0e.woff2) format("woff2"),url(/_next/static/media/geist-latin-ext-400-normal.4455ac17.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-latin-400-normal.de26b601.woff2) format("woff2"),url(/_next/static/media/geist-latin-400-normal.2233cf88.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-cyrillic-ext-400-italic.b350e8e6.woff2) format("woff2"),url(/_next/static/media/geist-cyrillic-ext-400-italic.7f3407c6.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-cyrillic-400-italic.b16e358e.woff2) format("woff2"),url(/_next/static/media/geist-cyrillic-400-italic.a50cac95.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-vietnamese-400-italic.cae7a673.woff2) format("woff2"),url(/_next/static/media/geist-vietnamese-400-italic.629f8fc5.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-latin-ext-400-italic.0c894754.woff2) format("woff2"),url(/_next/static/media/geist-latin-ext-400-italic.a35bb9b2.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:italic;font-display:swap;font-weight:400;src:url(/_next/static/media/geist-latin-400-italic.c4ebf92e.woff2) format("woff2"),url(/_next/static/media/geist-latin-400-italic.5c2d04a5.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/geist-cyrillic-ext-600-normal.45a7060a.woff2) format("woff2"),url(/_next/static/media/geist-cyrillic-ext-600-normal.58ed4321.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/geist-cyrillic-600-normal.720238ad.woff2) format("woff2"),url(/_next/static/media/geist-cyrillic-600-normal.5e194947.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/geist-vietnamese-600-normal.1e6d8ab0.woff2) format("woff2"),url(/_next/static/media/geist-vietnamese-600-normal.60c72cb7.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/geist-latin-ext-600-normal.b9ee46cb.woff2) format("woff2"),url(/_next/static/media/geist-latin-ext-600-normal.a2ac26ae.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/geist-latin-600-normal.26376a5c.woff2) format("woff2"),url(/_next/static/media/geist-latin-600-normal.b6e4c2d7.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Departure Mono;src:url(/fonts/departure-mono/DepartureMono-Regular.woff2) format("woff2"),url(/fonts/departure-mono/DepartureMono-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}:root{--font-head:"Departure Mono",monospace;--font-body:"Geist",sans-serif;--font-mono:"Departure Mono",monospace;--font-meta:"Departure Mono",monospace;--font-brand:"Departure Mono",monospace;--head-weight:400;--head-track:0;--h1-size:22px;--h2-size:22px;--section-size:22px;--brand-weight:400;--brand-size:22px;--brand-track:0;--body-size:16px;--body-line:1.7;--meta-size:11px;--meta-track:.04em;--meta-case:uppercase}.prose h2:before{content:"## ";color:var(--muted)}.brand:before{content:"> ";color:var(--accent)}.nav nav a,.small{font-size:11px}