@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-normal.cHuGMAiY.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-normal.DwHjdM4S.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-normal.ece1310W.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-normal.D-yuW59g.woff2) format("woff2-variations");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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-normal.CxNHBx-q.woff2) format("woff2-variations");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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.D9elroTD.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-italic.BXuSHrjR.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-italic.RLIThRd4.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-italic.F2ziEGcb.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-italic.C3q834ic.woff2) format("woff2-variations");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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-italic.CpkvI5hy.woff2) format("woff2-variations");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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-italic.D2yaqPoE.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-vietnamese-wght-normal.XAtsl5Q_.woff2) format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-ext-wght-normal.C4zznr8T.woff2) format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-wght-normal.E0tuGl4L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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: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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+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: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+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: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+0000-00FF,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: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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+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: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+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: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+0000-00FF,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:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-italic.CBjNughH.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-italic.B4oTjJdl.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:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-italic.CBJ8pzag.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-italic.2syK4fUT.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-italic.DRuN92E5.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-italic.D6eaYXMU.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:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-italic.B7_fu1kp.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-italic.Bg0ZHwF4.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:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-italic.BqAiT5Ww.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-italic.66oory27.woff) format("woff");unicode-range:U+0000-00FF,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}:root{color-scheme:light;--color-bg: #F7F4EC;--color-surface: #FDFCF7;--color-surface-sunken: #EFEBDE;--color-text: #26281F;--color-text-muted: #5A5F4E;--color-border: #D8D3C0;--color-border-strong: #B9B29A;--color-primary: #4A5D3A;--color-primary-hover: #3C4C2F;--color-primary-contrast: #FDFCF7;--color-accent: #9C4A1E;--color-link: #9C4A1E;--color-link-hover: #7C3A16;--color-focus-ring: #4A5D3A;--color-success: #3E6B44;--color-warn: #755D1B;--color-herp-bg: #E4E9DA;--color-herp-text: #3A4A2C;--color-herp-dot: #4A5D3A;--color-herp-border: #C5CFB2;--color-lore-bg: #F3E2D3;--color-lore-text: #7C3A16;--color-lore-dot: #9C4A1E;--color-lore-border: #E3C6AC;--shadow-card: 0 1px 2px rgb(38 40 31 / .06), 0 2px 8px rgb(38 40 31 / .05)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg: #191B14;--color-surface: #22251B;--color-surface-sunken: #14160F;--color-text: #E8E4D6;--color-text-muted: #A8AC97;--color-border: #3A3E30;--color-border-strong: #565B47;--color-primary: #9DB585;--color-primary-hover: #B0C69A;--color-primary-contrast: #191B14;--color-accent: #D98A52;--color-link: #D98A52;--color-link-hover: #E5A470;--color-focus-ring: #9DB585;--color-success: #8FBF95;--color-warn: #D9B45C;--color-herp-bg: #2C3323;--color-herp-text: #B9CBA4;--color-herp-dot: #9DB585;--color-herp-border: #46503A;--color-lore-bg: #3A2A1D;--color-lore-text: #E0A377;--color-lore-dot: #D98A52;--color-lore-border: #5C4430;--shadow-card: 0 1px 2px rgb(0 0 0 / .4), 0 2px 8px rgb(0 0 0 / .3)}}[data-theme=dark]{color-scheme:dark;--color-bg: #191B14;--color-surface: #22251B;--color-surface-sunken: #14160F;--color-text: #E8E4D6;--color-text-muted: #A8AC97;--color-border: #3A3E30;--color-border-strong: #565B47;--color-primary: #9DB585;--color-primary-hover: #B0C69A;--color-primary-contrast: #191B14;--color-accent: #D98A52;--color-link: #D98A52;--color-link-hover: #E5A470;--color-focus-ring: #9DB585;--color-success: #8FBF95;--color-warn: #D9B45C;--color-herp-bg: #2C3323;--color-herp-text: #B9CBA4;--color-herp-dot: #9DB585;--color-herp-border: #46503A;--color-lore-bg: #3A2A1D;--color-lore-text: #E0A377;--color-lore-dot: #D98A52;--color-lore-border: #5C4430;--shadow-card: 0 1px 2px rgb(0 0 0 / .4), 0 2px 8px rgb(0 0 0 / .3)}:root{--font-serif: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--font-sans: "Archivo Variable", "Archivo", "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-base: 1.125rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-2xl: 2.1875rem;--text-3xl: 2.75rem;--leading-tight: 1.15;--leading-snug: 1.3;--leading-prose: 1.65;--measure: 68ch;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--tracking-caps: .08em}:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--container-prose: 68ch;--container-content: 52rem;--container-wide: 72rem;--radius-sm: 3px;--radius-md: 6px;--rule: 1px solid var(--color-border)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-serif);font-size:var(--text-base);line-height:var(--leading-prose);text-rendering:optimizeLegibility}img,svg{max-width:100%;height:auto;display:block}a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}a:hover{color:var(--color-link-hover);text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:2px}::selection{background:var(--color-herp-bg);color:var(--color-herp-text)}.container{max-width:var(--container-wide);margin-inline:auto;padding-inline:var(--space-5)}.container--content{max-width:var(--container-content)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.img-placeholder{display:grid;place-items:center;aspect-ratio:3 / 2;border:1px solid var(--color-border);border-radius:var(--radius-md);background:repeating-linear-gradient(-45deg,var(--color-surface-sunken) 0 10px,var(--color-surface) 10px 20px);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase}.site-header{background:var(--color-bg);border-bottom:var(--rule)}.site-header__inner{max-width:var(--container-wide);margin-inline:auto;padding:var(--space-4) var(--space-5);display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3) var(--space-5);flex-wrap:wrap}.brand{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);text-decoration:none;letter-spacing:-.01em}.brand:hover{color:var(--color-text)}.brand .brand__tld{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--color-text-muted)}.site-nav{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5)}.site-nav a{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);text-decoration:none;padding-block:var(--space-1)}.site-nav a:hover{color:var(--color-link-hover)}.site-nav a[aria-current=page]{color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:.4em}.site-footer{border-top:var(--rule);margin-top:var(--space-8);color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--text-sm)}.site-footer__inner{max-width:var(--container-wide);margin-inline:auto;padding:var(--space-6) var(--space-5);display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3) var(--space-6);flex-wrap:wrap}.site-footer a{color:var(--color-text-muted)}.site-footer a:hover{color:var(--color-link-hover)}.site-footer__colophon{font-family:var(--font-mono);font-size:var(--text-xs)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:.02em;line-height:1.2;padding:.625rem 1.125rem;border:1px solid transparent;border-radius:var(--radius-sm);text-decoration:none;cursor:pointer;background:none;color:inherit}.btn:hover{text-decoration:none}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}.btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-primary-contrast)}.btn--secondary{border-color:var(--color-primary);color:var(--color-primary)}.btn--secondary:hover{background:var(--color-herp-bg);color:var(--color-herp-text)}.btn--ghost{color:var(--color-link);padding-inline:var(--space-3)}.btn--ghost:hover{color:var(--color-link-hover);background:var(--color-surface-sunken)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;line-height:1;padding:.3rem .65rem;border-radius:999px;border:1px solid;white-space:nowrap}.badge:before{content:"";width:.5em;height:.5em;flex:none}.badge--herp{background:var(--color-herp-bg);color:var(--color-herp-text);border-color:var(--color-herp-border)}.badge--herp:before{background:var(--color-herp-dot);border-radius:50%}.badge--lore{background:var(--color-lore-bg);color:var(--color-lore-text);border-color:var(--color-lore-border)}.badge--lore:before{background:var(--color-lore-dot);transform:rotate(45deg) scale(.9)}.badge--methods{background:var(--color-surface-sunken);color:var(--color-text-muted);border-color:var(--color-border-strong)}.badge--methods:before{background:transparent;border:1.5px solid currentColor;border-radius:50%}.pill-unverified{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;line-height:1;padding:.3rem .65rem;border-radius:999px;border:1px dashed var(--color-border-strong);background:var(--color-surface);color:var(--color-text-muted);white-space:nowrap}.pill-unverified:before{content:"";width:.5em;height:.5em;flex:none;border:1.5px dashed currentColor;border-radius:50%}.pub-card{background:var(--color-surface);border:var(--rule);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);display:grid;gap:var(--space-3)}.pub-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.pub-card__badges{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:flex-end}.pub-card__title{margin:0;font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-snug);text-wrap:pretty}.pub-card__title a{color:var(--color-text);text-decoration:none}.pub-card__title a:hover{color:var(--color-link-hover);text-decoration:underline;text-decoration-thickness:2px}.pub-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.pub-card__year{font-family:var(--font-mono);color:var(--color-text)}.pub-card__venue{font-style:italic;font-family:var(--font-serif)}.pub-card__citation{font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6;color:var(--color-text-muted);background:var(--color-surface-sunken);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);overflow-wrap:anywhere;margin:0}.pub-card__flag{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted);border:1px dashed var(--color-border-strong);border-radius:999px;padding:.2rem .6rem}.appearance-list{margin:0;padding:0;list-style:none;border-top:var(--rule)}.appearance-row{display:grid;grid-template-columns:7rem 1fr auto;gap:var(--space-2) var(--space-5);align-items:baseline;padding:var(--space-4) 0;border-bottom:var(--rule)}.appearance-row__date{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.appearance-row__title{margin:0;font-family:var(--font-serif);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.appearance-row__title a{color:var(--color-text);text-decoration:none}.appearance-row__title a:hover{color:var(--color-link-hover);text-decoration:underline}.appearance-row__venue{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-muted)}.appearance-row__links{display:block;margin-top:var(--space-1);font-family:var(--font-sans);font-size:var(--text-sm)}.appearance-row__links a{color:var(--color-link)}.appearance-row__links a:hover{color:var(--color-link-hover)}.appearance-row__kind{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}@media(max-width:40rem){.appearance-row{grid-template-columns:1fr}.appearance-row .appearance-row__kind{justify-self:start}}.prose{max-width:var(--measure);font-size:var(--text-base);line-height:var(--leading-prose)}.prose>*+*{margin-block:var(--space-4) 0}.prose h1,.prose h2,.prose h3{font-family:var(--font-serif);line-height:var(--leading-tight);text-wrap:balance}.prose h1{font-size:var(--text-2xl);font-weight:var(--weight-bold);margin-top:0}.prose h2{font-size:var(--text-xl);font-weight:var(--weight-semibold);margin-top:var(--space-7)}.prose h3{font-size:var(--text-lg);font-weight:var(--weight-semibold);margin-top:var(--space-6)}.prose p{margin-block:var(--space-4);text-wrap:pretty}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:var(--space-2)}.prose blockquote{margin:var(--space-5) 0;padding:var(--space-3) var(--space-5);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-md);font-style:italic;color:var(--color-text-muted)}.prose figure{margin:var(--space-6) 0}.prose figcaption{margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.03em;color:var(--color-text-muted)}.prose code{font-family:var(--font-mono);font-size:.85em;background:var(--color-surface-sunken);padding:.1em .35em;border-radius:var(--radius-sm)}.prose hr{border:0;border-top:var(--rule);margin:var(--space-7) 0}.hero{padding:var(--space-8) 0 var(--space-7);border-bottom:var(--rule)}.hero__kicker{margin:0 0 var(--space-4);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-primary)}.hero__kicker .hero__plus{color:var(--color-accent)}.hero__title{margin:0 0 var(--space-5);font-family:var(--font-serif);font-size:clamp(var(--text-2xl),4.5vw,var(--text-3xl));font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.01em;text-wrap:balance}.hero__thesis{margin:0 0 var(--space-6);font-size:var(--text-lg);line-height:1.55;color:var(--color-text-muted);text-wrap:pretty}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin:var(--space-8) 0 var(--space-5);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-text)}.section-head h2{margin:0;font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--weight-semibold)}.section-head .section-head__index{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.section-head__link{font-family:var(--font-sans);font-size:var(--text-sm)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:var(--space-5)}.credits-list{margin:0;padding:0;list-style:none}.credits-item{padding:var(--space-4) 0;border-bottom:var(--rule)}.credits-item:first-child{border-top:var(--rule)}.credits-item__subject{margin:0 0 var(--space-2);font-family:var(--font-serif);font-weight:var(--weight-semibold)}.credits-item__meta{margin:0;display:grid;grid-template-columns:7rem 1fr;gap:var(--space-1) var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm)}.credits-item__meta dt{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.credits-item__meta dd{margin:0;overflow-wrap:anywhere}@media(max-width:40rem){.credits-item__meta{grid-template-columns:1fr}.credits-item__meta dd{margin-bottom:var(--space-2)}}.pillars{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);margin-top:var(--space-7)}.pillar{display:block;text-decoration:none;color:var(--color-text);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);border-top:3px solid var(--color-border)}.pillar:hover{color:var(--color-text)}.pillar--herp{border-top-color:var(--color-primary)}.pillar--lore{border-top-color:var(--color-accent)}.pillar__label{display:block;font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.pillar__desc{display:block;color:var(--color-text-muted);margin-top:var(--space-2);font-size:var(--text-md)}@media(max-width:40rem){.pillars{grid-template-columns:1fr}}body{min-height:100dvh;display:flex;flex-direction:column}main{flex:1 0 auto}.page{padding-block:var(--space-7)}.skip-link{position:absolute;left:var(--space-2);top:-3rem;background:var(--color-surface);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-sm);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--rule);transition:top .15s ease;z-index:100}.skip-link:focus{top:var(--space-2)}
