@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-400-normal.D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-400-normal.fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-600-normal.BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-600-normal.D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-600-normal.DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-cyrillic-ext-700-normal.BmRLXWpJ.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-700-normal.DCQwxkRk.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-cyrillic-700-normal.D_uavGvn.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-700-normal.RFb1v-CK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-greek-700-normal.wyJ6jzdA.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-700-normal.CkZN0sRy.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-vietnamese-700-normal.CkEo6LDy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-700-normal.BV5B8Are.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-ext-700-normal.aMgXseD4.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-700-normal.DZH6Xh-4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-700-normal.Bxkt5Cjx.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-700-normal.Bth3BMcD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-cyrillic-600-normal.CTOM6hUh.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-vietnamese-600-normal.D2EvbN8M.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f4f5f7;--paper-raised:#fff;--line:#e3e5ea;--line-strong:#d2d6dd;--text:#2c313b;--text-strong:#12151b;--muted:#697082;--accent:#9a6a10;--accent-solid:#b4791a;--accent-wash:#f2e9d6;--broken:#b3261e;--ok:#2f7d46;--font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--content-w:44rem;--wide-w:60rem;--rail-w:5.75rem;--step--1:clamp(.82rem, .8rem + .1vw, .9rem);--step-0:clamp(1rem, .97rem + .15vw, 1.08rem);--step-1:clamp(1.2rem, 1.13rem + .35vw, 1.4rem);--step-2:clamp(1.5rem, 1.35rem + .7vw, 1.95rem);--step-3:clamp(1.95rem, 1.6rem + 1.6vw, 2.9rem);--step-4:clamp(2.4rem, 1.9rem + 2.6vw, 3.9rem);--radius:4px;--tick:.6rem;color-scheme:light}[data-theme=dark]{--paper:#14161b;--paper-raised:#1b1e26;--line:#2a2f3a;--line-strong:#384050;--text:#c6ccd6;--text-strong:#edeff3;--muted:#7c8291;--accent:#e9b44c;--accent-solid:#e9b44c;--accent-wash:#2a2418;--broken:#f2726a;--ok:#4ec172;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--paper:#14161b;--paper-raised:#1b1e26;--line:#2a2f3a;--line-strong:#384050;--text:#c6ccd6;--text-strong:#edeff3;--muted:#7c8291;--accent:#e9b44c;--accent-solid:#e9b44c;--accent-wash:#2a2418;--broken:#f2726a;--ok:#4ec172;color-scheme:dark}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--text);font-family:var(--font-sans);font-size:var(--step-0);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;line-height:1.65;display:flex}img,picture,svg{max-width:100%;display:block}a{color:var(--accent);text-decoration:none}::selection{background:var(--accent);color:var(--paper)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.wrap{width:100%;max-width:var(--wide-w);margin-inline:auto;padding-inline:1.5rem}.wrap--narrow{max-width:calc(var(--content-w) + var(--rail-w))}main{flex:1 0 auto;padding-block:clamp(2.5rem,6vw,5rem)}.eyebrow{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.5rem;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--accent-solid);width:1.4rem;height:1px}h1,h2,h3,h4{color:var(--text-strong);letter-spacing:-.015em;text-wrap:balance;font-weight:700;line-height:1.12}.log{border-left:1px solid var(--line);margin-left:.5rem}.record{grid-template-columns:var(--rail-w) 1fr;border-bottom:1px dashed var(--line);align-items:baseline;gap:0 1.5rem;padding:1.15rem 0 1.15rem 1.5rem;transition:background-color .18s;display:grid;position:relative}.record:last-child{border-bottom:0}.record:before{content:"";width:var(--tick);background:var(--line-strong);height:1px;transition:width .18s,background-color .18s;position:absolute;top:1.55rem;left:-1px}.record:hover{background:color-mix(in srgb, var(--accent-wash) 55%, transparent)}.record:hover:before{width:calc(var(--tick) + .5rem);background:var(--accent-solid)}.record__offset{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.record__title{font-size:var(--step-1);color:var(--text-strong);letter-spacing:-.01em;font-weight:600;line-height:1.25}.record a.record__title:hover{color:var(--accent)}.record__desc{color:var(--muted);font-size:var(--step-0);margin-top:.3rem}.record__meta{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-top:.55rem;display:flex}.tags{flex-wrap:wrap;gap:.4rem;padding:0;list-style:none;display:flex}.tag{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.1rem .5rem;transition:color .15s,border-color .15s}.tag:before{content:"#";color:var(--accent-solid);margin-right:.05rem}a.tag:hover{color:var(--text-strong);border-color:var(--accent-solid)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=34rem){:root{--rail-w:0}.record{grid-template-columns:1fr;gap:0}.record__offset{margin-bottom:.35rem}}.site-header{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 88%, transparent);backdrop-filter:saturate(1.4)blur(8px);z-index:10;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:1rem;padding-block:.9rem;display:flex}.wordmark{font-family:var(--font-mono);font-weight:600;font-size:var(--step-0);color:var(--text-strong);letter-spacing:-.02em}.wordmark .accent{color:var(--accent)}.nav{align-items:center;gap:.35rem;display:flex}.nav a{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);border-radius:var(--radius);padding:.3rem .55rem;transition:color .15s,background-color .15s}.nav a:hover{color:var(--text-strong)}.nav a[aria-current=page]{color:var(--accent)}.theme-toggle{font-family:var(--font-mono);font-size:var(--step--1);border:1px solid var(--line-strong);color:var(--muted);border-radius:var(--radius);cursor:pointer;background:0 0;align-items:center;gap:.4rem;padding:.3rem .5rem;line-height:1;transition:color .15s,border-color .15s;display:inline-flex}.theme-toggle:hover{color:var(--text-strong);border-color:var(--accent-solid)}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:inline}[data-theme=dark] .theme-toggle .icon-moon{display:none}.hero{border-bottom:1px dashed var(--line);margin-bottom:2.5rem;padding-block:clamp(1rem,4vw,2.5rem) clamp(2.5rem,7vw,4.5rem)}.hero__logline{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);white-space:nowrap;margin-bottom:1.5rem;overflow-x:auto}.hero__logline .k{color:var(--accent)}.hero__title{font-family:var(--font-mono);font-weight:600;font-size:var(--step-4);letter-spacing:-.03em;color:var(--text-strong);max-width:18ch;line-height:1.02}.hero__sub{font-size:var(--step-1);color:var(--muted);max-width:46ch;margin-top:1.25rem;line-height:1.5}.hero__links{flex-wrap:wrap;gap:.5rem .75rem;margin-top:1.75rem;display:flex}.linkbtn{font-family:var(--font-mono);font-size:var(--step--1);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius);padding:.4rem .7rem;transition:color .15s,border-color .15s,background-color .15s}.linkbtn:hover{color:var(--accent);border-color:var(--accent-solid)}.linkbtn:before{content:"→ ";color:var(--muted)}@keyframes riseIn{0%{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:none}}.reveal{animation:.5s cubic-bezier(.22,1,.36,1) both riseIn}.reveal-1{animation-delay:50ms}.reveal-2{animation-delay:.14s}.reveal-3{animation-delay:.23s}.reveal-4{animation-delay:.32s}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.section-head h2{font-family:var(--font-mono);font-size:var(--step-1);letter-spacing:-.01em;font-weight:600}.section-head a{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted)}.section-head a:hover{color:var(--accent)}.prose{max-width:var(--content-w);font-size:var(--step-0);line-height:1.72}.prose>*+*{margin-top:1.15em}.prose h2,.prose h3,.prose h4{font-family:var(--font-sans);margin-top:2.2em;margin-bottom:-.2em;scroll-margin-top:5rem}.prose h2{font-size:var(--step-2)}.prose h3{font-size:var(--step-1)}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:3px;transition:text-decoration-color .15s}.prose a:hover{text-decoration-color:var(--accent)}.prose strong{color:var(--text-strong);font-weight:600}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--accent-solid)}.prose blockquote{border-left:2px solid var(--accent-solid);color:var(--muted);padding-left:1.1rem;font-style:italic}.prose hr{border:0;border-top:1px dashed var(--line-strong);margin-block:2.5em}.prose img{border-radius:var(--radius);border:1px solid var(--line)}.prose table{border-collapse:collapse;width:100%;font-size:var(--step--1);display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:.5rem .7rem}.prose th{font-family:var(--font-mono);color:var(--text-strong);background:var(--paper-raised)}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--paper-raised);border:1px solid var(--line);color:var(--text-strong);border-radius:3px;padding:.08em .36em;font-size:.88em}.prose pre.astro-code{font-family:var(--font-mono);font-size:var(--step--1);border-radius:var(--radius);border:1px solid var(--line);tab-size:2;padding:1.1rem 1.2rem;line-height:1.6;overflow-x:auto}.prose pre.astro-code code{font-family:inherit;font-size:inherit;background:0 0;border:0;padding:0}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}@media (prefers-color-scheme:dark){:root:not([data-theme]) .astro-code,:root:not([data-theme]) .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}.prose .wikilink{color:var(--accent);border-bottom:1px solid color-mix(in srgb, var(--accent) 45%, transparent);text-decoration:none}.prose .wikilink:hover{border-bottom-color:var(--accent)}.prose .wikilink--broken{color:var(--broken);border-bottom:1px dashed var(--broken);cursor:help}.prose .callout{border-radius:var(--radius);margin-block:1.4em}.post-head{border-bottom:1px dashed var(--line);margin-bottom:2.5rem;padding-bottom:1.5rem}.post-head h1{font-family:var(--font-sans);font-size:var(--step-3);margin-top:.6rem}.post-meta{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:1.1rem;display:flex}.post-meta .dot{color:var(--line-strong)}.canonical-note{font-size:var(--step--1);color:var(--muted);margin-top:1rem}.backlink{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);margin-bottom:1.5rem;display:inline-block}.backlink:hover{color:var(--accent)}.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:1rem;display:grid}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);flex-direction:column;gap:.6rem;padding:1.25rem;transition:border-color .18s,transform .18s;display:flex}.card:hover{border-color:var(--accent-solid);transform:translateY(-2px)}.card__name{font-family:var(--font-mono);font-weight:600;font-size:var(--step-1);color:var(--text-strong)}.card__name .slash{color:var(--muted)}.card__desc{color:var(--muted);flex:1}.card__status{font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent);align-items:center;gap:.4rem;display:inline-flex}.card__status:before{content:"";background:var(--accent-solid);border-radius:50%;width:.45rem;height:.45rem}.card__links{font-family:var(--font-mono);font-size:var(--step--1);gap:.9rem;display:flex}.email{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);margin-top:3.5rem;padding:1.5rem}.email h2{font-family:var(--font-mono);font-size:var(--step-1);font-weight:600}.email p{color:var(--muted);font-size:var(--step-0);margin-top:.4rem}.email__row{flex-wrap:wrap;gap:.6rem;margin-top:1.1rem;display:flex}.email input[type=email]{font-family:var(--font-mono);font-size:var(--step-0);background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--text-strong);flex:16rem;padding:.6rem .75rem}.email input::placeholder{color:var(--muted)}.email button{font-family:var(--font-mono);font-size:var(--step-0);background:var(--accent-solid);color:#14161b;border:1px solid var(--accent-solid);border-radius:var(--radius);cursor:pointer;padding:.6rem 1.1rem;font-weight:500;transition:filter .15s}.email button:hover{filter:brightness(1.08)}.email__note{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);margin-top:.75rem}.site-footer{border-top:1px solid var(--line);margin-top:4rem}.site-footer__inner{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding-block:1.5rem;display:flex}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--accent)}.site-footer__links{gap:1.1rem;display:flex}.lede{font-size:var(--step-1);color:var(--muted);max-width:52ch;margin-top:.75rem;line-height:1.55}.page-head{margin-bottom:2.5rem}.page-head h1{font-family:var(--font-mono);font-size:var(--step-3);letter-spacing:-.02em}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a.card{color:inherit;text-decoration:none}.card__open{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);margin-top:auto;transition:color .15s}a.card:hover .card__open{color:var(--accent)}.card__status[data-status=live]{color:var(--ok)}.card__status[data-status=live]:before{background:var(--ok)}.card__status[data-status=archived]{color:var(--muted)}.card__status[data-status=archived]:before{background:var(--muted)}.project-tagline{font-size:var(--step-1);color:var(--muted);max-width:52ch;margin-top:.6rem;line-height:1.5}.project-links{flex-wrap:wrap;gap:.5rem .75rem;margin-top:1.25rem;display:flex}[data-callout=note]{--rc-color-light:var(--callout-note-color-light,#086ddd);--rc-color-dark:var(--callout-note-color-dark,#027aff)}[data-callout=abstract]{--rc-color-light:var(--callout-abstract-color-light,#00bfbc);--rc-color-dark:var(--callout-abstract-color-dark,#53dfdd)}[data-callout=summary]{--rc-color-light:var(--callout-summary-color-light,#00bfbc);--rc-color-dark:var(--callout-summary-color-dark,#53dfdd)}[data-callout=tldr]{--rc-color-light:var(--callout-tldr-color-light,#00bfbc);--rc-color-dark:var(--callout-tldr-color-dark,#53dfdd)}[data-callout=info]{--rc-color-light:var(--callout-info-color-light,#086ddd);--rc-color-dark:var(--callout-info-color-dark,#027aff)}[data-callout=todo]{--rc-color-light:var(--callout-todo-color-light,#086ddd);--rc-color-dark:var(--callout-todo-color-dark,#027aff)}[data-callout=tip]{--rc-color-light:var(--callout-tip-color-light,#00bfbc);--rc-color-dark:var(--callout-tip-color-dark,#53dfdd)}[data-callout=hint]{--rc-color-light:var(--callout-hint-color-light,#00bfbc);--rc-color-dark:var(--callout-hint-color-dark,#53dfdd)}[data-callout=important]{--rc-color-light:var(--callout-important-color-light,#00bfbc);--rc-color-dark:var(--callout-important-color-dark,#53dfdd)}[data-callout=success]{--rc-color-light:var(--callout-success-color-light,#08b94e);--rc-color-dark:var(--callout-success-color-dark,#44cf6e)}[data-callout=check]{--rc-color-light:var(--callout-check-color-light,#08b94e);--rc-color-dark:var(--callout-check-color-dark,#44cf6e)}[data-callout=done]{--rc-color-light:var(--callout-done-color-light,#08b94e);--rc-color-dark:var(--callout-done-color-dark,#44cf6e)}[data-callout=question]{--rc-color-light:var(--callout-question-color-light,#ec7500);--rc-color-dark:var(--callout-question-color-dark,#e9973f)}[data-callout=help]{--rc-color-light:var(--callout-help-color-light,#ec7500);--rc-color-dark:var(--callout-help-color-dark,#e9973f)}[data-callout=faq]{--rc-color-light:var(--callout-faq-color-light,#ec7500);--rc-color-dark:var(--callout-faq-color-dark,#e9973f)}[data-callout=warning]{--rc-color-light:var(--callout-warning-color-light,#ec7500);--rc-color-dark:var(--callout-warning-color-dark,#e9973f)}[data-callout=attention]{--rc-color-light:var(--callout-attention-color-light,#ec7500);--rc-color-dark:var(--callout-attention-color-dark,#e9973f)}[data-callout=caution]{--rc-color-light:var(--callout-caution-color-light,#ec7500);--rc-color-dark:var(--callout-caution-color-dark,#e9973f)}[data-callout=failure]{--rc-color-light:var(--callout-failure-color-light,#e93147);--rc-color-dark:var(--callout-failure-color-dark,#fb464c)}[data-callout=missing]{--rc-color-light:var(--callout-missing-color-light,#e93147);--rc-color-dark:var(--callout-missing-color-dark,#fb464c)}[data-callout=fail]{--rc-color-light:var(--callout-fail-color-light,#e93147);--rc-color-dark:var(--callout-fail-color-dark,#fb464c)}[data-callout=danger]{--rc-color-light:var(--callout-danger-color-light,#e93147);--rc-color-dark:var(--callout-danger-color-dark,#fb464c)}[data-callout=error]{--rc-color-light:var(--callout-error-color-light,#e93147);--rc-color-dark:var(--callout-error-color-dark,#fb464c)}[data-callout=bug]{--rc-color-light:var(--callout-bug-color-light,#e93147);--rc-color-dark:var(--callout-bug-color-dark,#fb464c)}[data-callout=example]{--rc-color-light:var(--callout-example-color-light,#7852ee);--rc-color-dark:var(--callout-example-color-dark,#a882ff)}[data-callout=quote]{--rc-color-light:var(--callout-quote-color-light,#9e9e9e);--rc-color-dark:var(--callout-quote-color-dark,#9e9e9e)}[data-callout=cite]{--rc-color-light:var(--callout-cite-color-light,#9e9e9e);--rc-color-dark:var(--callout-cite-color-dark,#9e9e9e)}.callout{--rc-color-default:#888;mix-blend-mode:darken;background-color:rgb(from var(--rc-color-light,var(--rc-color-default)) r g b / .1);border-radius:4px;width:100%;margin:1em 0;padding:12px 12px 12px 24px;line-height:1.3;overflow:hidden}.dark .callout{mix-blend-mode:lighten;background-color:rgb(from var(--rc-color-dark,var(--rc-color-default)) r g b / .1)}.callout-title{color:var(--rc-color-light,var(--rc-color-default));font-size:inherit;align-items:flex-start;gap:4px;display:flex}.dark .callout-title{color:var(--rc-color-dark,var(--rc-color-default))}.callout-title::-webkit-details-marker{display:none}.callout-title-icon{flex:none;align-items:center;display:flex}.callout-title-text{color:inherit;font-weight:600}.callout-content{background-color:#0000;padding:0;overflow-x:auto}.callout[data-collapsible=true] .callout-title{cursor:pointer}.callout[data-collapsible=true] .callout-fold-icon{align-items:center;padding-inline-end:8px;display:flex}.callout[data-collapsible=true]>.callout-title .callout-fold-icon svg{transition:transform .1s ease-in-out;transform:rotate(-90deg)}.callout[data-collapsible=true][open]>.callout-title .callout-fold-icon svg{transform:none}.callout-title-icon:after,.callout-fold-icon:after{content:"​"}.callout-title-icon svg,.callout-fold-icon svg{width:18px;height:18px}
