@layer reset,tokens.primitives,tokens.semantic,tokens.components,tokens.locale,fonts,base,components,utilities,overrides;@layer reset{*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}}@layer tokens.primitives{:root{--color-brand-300: oklch(78% .16 145);--color-brand-400: oklch(70% .16 145);--color-brand-500: oklch(58% .18 145);--color-brand-600: oklch(45% .16 145);--color-brand-700: oklch(38% .15 145);--color-neutral-0: oklch(100% 0 0);--color-neutral-50: oklch(97% .005 250);--color-neutral-100: oklch(94% .008 250);--color-neutral-200: oklch(88% .01 250);--color-neutral-700: oklch(35% .02 250);--color-neutral-800: oklch(22% .025 250);--color-neutral-900: oklch(13% .03 250);--color-neutral-950: oklch(8% .03 250);--type-2xs: .694rem;--type-xs: .833rem;--type-sm: 1rem;--type-md: 1.2rem;--type-lg: 1.44rem;--type-xl: 1.728rem;--type-2xl: 2.074rem;--type-3xl: 2.488rem;--type-4xl: clamp(2.5rem, 5vw, 4rem);--type-5xl: clamp(3rem, 7vw, 6rem);--type-6xl: clamp(4rem, 9vw, 8rem);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--radius-none: 0;--radius-sm: 2px;--radius-pill: 999px;--font-mono: "Terminus", "IBM Plex Mono", ui-monospace, monospace;--font-mono-alt: "IBM Plex Mono", "SF Mono", Menlo, monospace;--font-serif: "IBM Plex Serif", "Iowan Old Style", Georgia, serif;--font-sans: "IBM Plex Sans", -apple-system, system-ui, sans-serif}}@layer tokens.semantic{:root{color-scheme:light dark;--color-bg: light-dark(var(--color-neutral-50), var(--color-neutral-950));--color-bg-2: light-dark(var(--color-neutral-100), var(--color-neutral-900));--color-bg-3: light-dark(var(--color-neutral-200), var(--color-neutral-800));--color-fg: light-dark(var(--color-neutral-900), var(--color-neutral-50));--color-fg-2: light-dark(var(--color-neutral-700), var(--color-neutral-200));--color-fg-3: light-dark(oklch(38% .02 250), oklch(70% .02 250));--color-rule: light-dark(var(--color-neutral-900), var(--color-neutral-50));--color-rule-soft: color-mix(in oklch, var(--color-rule) 13%, transparent);--color-accent: light-dark(var(--color-brand-600), var(--color-brand-400));--color-accent-fill: var(--color-brand-500);--color-accent-soft: color-mix(in oklch, var(--color-accent) 13%, transparent);--color-accent-fg: var(--color-neutral-950)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root[data-theme=green]{color-scheme:dark;--color-bg: oklch(15% .05 145);--color-bg-2: oklch(20% .06 145);--color-bg-3: oklch(25% .06 145);--color-fg: oklch(92% .08 145);--color-fg-2: oklch(78% .1 145);--color-fg-3: oklch(60% .1 145);--color-rule: var(--color-brand-500);--color-accent: oklch(82% .18 145)}}@layer tokens.components{:root{--rail-width: 64px;--rail-width-expanded: 240px;--section-pad-block: calc(var(--space-16) * var(--density, 1));--section-pad-inline: calc(var(--space-12) * var(--density, 1));--hero-min-block-size: 92vh;--hero-pad-inline: var(--space-12);--note-min-block-size: 240px;--project-min-block-size: 280px;--container-max: 1400px;--reading-max: 70ch}}@layer tokens.locale{:root[lang|=ar]{--font-mono: "Reem Kufi", system-ui;--font-mono-alt: "IBM Plex Sans Arabic", system-ui;--font-serif: "Amiri", Georgia, serif}:root[lang|=ar] *{letter-spacing:0!important}:root[lang|=ar] [style*=line-height],:root[lang|=ar] .big,:root[lang|=ar] h1,:root[lang|=ar] h2{line-height:1.5}:root[lang|=ja]{--font-mono: "DotGothic16", monospace;--font-mono-alt: "Source Han Code JP", monospace;--font-serif: "Noto Serif JP", serif}:root[lang|=zh]{--font-mono: "Cubic 11", monospace;--font-mono-alt: "Source Han Mono SC", monospace;--font-serif: "Source Han Serif SC", serif}}@layer fonts{@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}}@layer fonts{@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}}@layer fonts{@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-mono-cyrillic-ext-700-normal.BDQ-w_bc.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-700-normal.CtgKGIh5.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:700;src:url(/_astro/ibm-plex-mono-cyrillic-700-normal.Bp80XfeI.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-700-normal.O_YjL27c.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:700;src:url(/_astro/ibm-plex-mono-vietnamese-700-normal.apsD3J7v.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-700-normal.Bs14ezHR.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:700;src:url(/_astro/ibm-plex-mono-latin-ext-700-normal.Dhimjc7-.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-700-normal.Cwsjk1Jb.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:700;src:url(/_astro/ibm-plex-mono-latin-700-normal.7sUh57Bg.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-700-normal.CNHXzs6v.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}}@layer fonts{@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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+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 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+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 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+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}}@layer fonts{@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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+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 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+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 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+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}}@layer fonts{@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-serif-cyrillic-ext-400-normal.CxUI4jC_.woff2) format("woff2"),url(/_astro/ibm-plex-serif-cyrillic-ext-400-normal.BcBv-TKp.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 Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-serif-cyrillic-400-normal.CPQ8oqB-.woff2) format("woff2"),url(/_astro/ibm-plex-serif-cyrillic-400-normal.C7IY3oUc.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-serif-vietnamese-400-normal.DGubAMUE.woff2) format("woff2"),url(/_astro/ibm-plex-serif-vietnamese-400-normal.BY9Vij9A.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 Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-serif-latin-ext-400-normal.CNMooFZX.woff2) format("woff2"),url(/_astro/ibm-plex-serif-latin-ext-400-normal.DwktX9jl.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 Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-serif-latin-400-normal.BIGslYFI.woff2) format("woff2"),url(/_astro/ibm-plex-serif-latin-400-normal.BB-zNvJB.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}}@layer fonts{@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-serif-cyrillic-ext-700-normal.CFcTJr1V.woff2) format("woff2"),url(/_astro/ibm-plex-serif-cyrillic-ext-700-normal.Dq7XTXEq.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 Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-serif-cyrillic-700-normal.BSMLrh7C.woff2) format("woff2"),url(/_astro/ibm-plex-serif-cyrillic-700-normal.CHVzwaSb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"IBM Plex Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-serif-vietnamese-700-normal.hPmb8oh_.woff2) format("woff2"),url(/_astro/ibm-plex-serif-vietnamese-700-normal.B3aSYR1A.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 Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-serif-latin-ext-700-normal.BoBbeF2z.woff2) format("woff2"),url(/_astro/ibm-plex-serif-latin-ext-700-normal.5BnP_gGI.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 Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-serif-latin-700-normal.bnJnpGuO.woff2) format("woff2"),url(/_astro/ibm-plex-serif-latin-700-normal.BBiG0u0D.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}}@layer fonts{@font-face{font-family:Terminus;src:url(/fonts/TerminusTTF-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Terminus;src:url(/fonts/TerminusTTF-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}}@layer base{*,*:before,*:after{box-sizing:border-box}html{block-size:100%}body{margin:0;min-block-size:100%;background:var(--color-bg);color:var(--color-fg);font-family:var(--font-mono);font-size:var(--type-sm);line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}pre code,pre,code{direction:ltr;text-align:start}::selection{background:var(--color-accent-soft);color:var(--color-fg)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}@layer components{:root{--accent: var(--color-accent);--accent-soft: var(--color-accent-soft);--bg: var(--color-bg);--bg-2: var(--color-bg-2);--bg-3: var(--color-bg-3);--fg: var(--color-fg);--fg-2: var(--color-fg-2);--fg-3: var(--color-fg-3);--rule: var(--color-rule);--rule-soft: var(--color-rule-soft);--mono: var(--font-mono);--mono-alt: var(--font-mono-alt);--serif: var(--font-serif);--sans: var(--font-sans);--density: 1}:root[data-font=mono]{--body-font: var(--mono-alt);--head-font: var(--mono-alt)}:root[data-font=serif]{--body-font: var(--sans);--head-font: var(--serif)}:root:not([data-font]),:root[data-font=terminus]{--body-font: var(--mono);--head-font: var(--mono)}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--body-font, var(--sans));font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}a.inline{border-block-end:1px solid var(--accent)}a.inline:hover{background:var(--accent-soft)}::selection{background:var(--accent);color:#000}.mono{font-family:var(--mono)}.serif{font-family:var(--serif)}.sans{font-family:var(--sans)}:root[data-font=mono] .mono,:root[data-font=mono] .hero .topbar,:root[data-font=mono] .mini,:root[data-font=mono] .coord,:root[data-font=mono] #tweaks{font-family:var(--mono-alt)!important}.mini{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}.shell{display:grid;grid-template-columns:var(--rail-w, 64px) 1fr;min-block-size:100vh}html[data-rail-pinned=true] .shell{--rail-w: 240px}.main{min-inline-size:0}section.panel{border-block-end:1px solid var(--rule-soft);padding-block:calc(80px * var(--density));padding-inline:calc(56px * var(--density));position:relative}section.panel>.coord{position:absolute;inset-block-start:20px;inset-inline:56px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--fg-3);text-transform:uppercase}section.panel>.coord .num{color:var(--accent);font-weight:700}.hero{min-block-size:92vh;padding-block-start:28px;padding-block-end:56px;padding-inline:56px;display:flex;flex-direction:column;position:relative;overflow:hidden}.hero .topbar{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);padding-block-end:12px;border-block-end:1px solid var(--rule-soft)}.hero .topbar .dot-live:before{content:"";display:inline-block;inline-size:7px;block-size:7px;background:var(--accent);margin-inline-end:8px;border-radius:50%;animation:blink 1.4s steps(2) infinite;vertical-align:1px}.hero.v-dossier .body{flex:1;display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:end;padding-block-start:40px}.hero.v-dossier h1{font-family:var(--head-font);font-size:clamp(32px,6.5vw,84px);line-height:.95;letter-spacing:-.04em;margin-block:0 18px;font-weight:700}.hero.v-dossier h1 .lf{display:block}.hero.v-dossier h1 em{font-style:italic;font-family:var(--serif);color:var(--accent);font-weight:400}.hero.v-dossier .sub{font-family:var(--serif);font-size:clamp(15px,1.4vw,20px);line-height:1.4;max-inline-size:42ch;margin-block-end:24px;color:var(--fg-2)}.hero.v-dossier .dossier-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px;font-family:var(--mono);font-size:12px;border-block-start:1px solid var(--rule-soft);padding-block-start:18px;max-inline-size:620px}.hero.v-dossier .dossier-meta div .k{color:var(--fg-3);text-transform:uppercase;letter-spacing:.1em;font-size:10px;margin-block-end:4px}.hero .portrait{position:relative;aspect-ratio:4/5;background:var(--bg-3);overflow:hidden;border:1px solid var(--rule);max-inline-size:320px;justify-self:end;inline-size:100%}.hero .portrait img{inline-size:100%;block-size:100%;object-fit:cover;filter:contrast(1.05) saturate(1.05)}.hero .portrait .stamp{position:absolute;inset-block-end:10px;inset-inline-end:10px;padding-block:6px;padding-inline:10px;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--rule)}.hero .portrait .corners:before,.hero .portrait .corners:after{content:"";position:absolute;inline-size:18px;block-size:18px;border:1px solid var(--accent)}.hero .portrait .corners:before{inset-block-start:8px;inset-inline-start:8px;border-inline-end:none;border-block-end:none}.hero .portrait .corners:after{inset-block-end:8px;inset-inline-end:8px;border-inline-start:none;border-block-start:none}.hero.v-ascii{padding-block-start:28px}.hero.v-ascii .ascii{font-family:var(--mono);font-weight:700;white-space:pre;line-height:.92;font-size:clamp(10px,1.45vw,22px);color:var(--fg);margin-block:40px 24px;letter-spacing:0}.hero.v-ascii .ascii .g{color:var(--accent)}.hero.v-ascii .tagline{font-family:var(--serif);font-size:clamp(22px,2.2vw,30px);max-inline-size:46ch;line-height:1.3}.hero.v-ascii .ticker{margin-block-start:auto;display:flex;gap:48px;border-block-start:1px solid var(--rule-soft);padding-block-start:18px;overflow:hidden}.hero.v-ascii .ticker div{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3)}.hero.v-ascii .ticker div strong{color:var(--fg);display:block;font-size:22px;letter-spacing:-.02em;text-transform:none}.hero.v-terminal{background:var(--bg);direction:ltr}.hero.v-terminal .term{margin-block-start:40px;font-family:var(--mono);font-size:clamp(14px,1.3vw,18px);line-height:1.6;max-inline-size:900px}.hero.v-terminal .term .prompt{color:var(--accent)}.hero.v-terminal .term .out{color:var(--fg-2)}.hero.v-terminal .term .big{font-size:clamp(48px,7vw,88px);font-weight:700;line-height:1;letter-spacing:-.03em;color:var(--fg);margin-block:18px 10px}.hero.v-terminal .cursor{display:inline-block;inline-size:.6ch;block-size:1em;background:var(--accent);vertical-align:-.15em;animation:blink 1s steps(2) infinite}.hero.v-terminal .term .row{display:flex;gap:10px}.hero.v-terminal .term .row .label{color:var(--fg-3);inline-size:9ch}.hero.v-billboard{padding-block:28px 0;padding-inline:0}.hero.v-billboard .topbar{padding-inline:56px}.hero.v-billboard .bill{flex:1;display:grid;grid-template-columns:1.6fr .8fr;gap:0;position:relative;overflow:hidden}.hero.v-billboard .bill .right{max-inline-size:360px;inline-size:100%;justify-self:end;align-self:center;aspect-ratio:4/5;margin-block:40px;margin-inline-start:40px;margin-inline-end:0}.hero.v-billboard .bill .left{padding:56px;display:flex;flex-direction:column;justify-content:space-between}.hero.v-billboard .bill .left h1{font-family:var(--head-font);font-weight:700;font-size:clamp(44px,7vw,104px);line-height:.88;letter-spacing:-.05em;margin:0}.hero.v-billboard .bill .left h1 span.ab{color:var(--accent)}.hero.v-billboard .bill .left .claims{display:grid;gap:8px;margin-block-start:32px;max-inline-size:520px}.hero.v-billboard .bill .left .claims div{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;padding-block:6px;border-block-start:1px solid var(--rule-soft);display:flex;justify-content:space-between}.hero.v-billboard .bill .left .claims div span:first-child{color:var(--fg-3)}.hero.v-billboard .bill .right{position:relative;overflow:hidden;border-inline-start:1px solid var(--rule);background:var(--bg-3)}.hero.v-billboard .bill .right img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;filter:contrast(1.05)}.hero.v-billboard .bill .right .stamp{position:absolute;inset-block-end:24px;inset-inline:24px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#fff;mix-blend-mode:difference}.hero.v-card{background:var(--bg);padding-block-start:28px}.hero.v-card .card{margin-block-start:40px;margin-inline:auto;max-inline-size:1100px;inline-size:100%;background:var(--bg-2);border:1px solid var(--rule);padding-block:36px;padding-inline:40px;position:relative;box-shadow:10px 10px 0 var(--rule-soft)}.hero.v-card .card:before{content:"";position:absolute;inset-block-start:48px;inset-inline:0;block-size:1px;background:var(--accent)}.hero.v-card .card .head{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--fg-3);padding-block-end:14px}.hero.v-card .card h1{font-family:var(--head-font);font-size:clamp(48px,7vw,96px);line-height:.92;letter-spacing:-.03em;margin-block:28px 12px;font-weight:700}.hero.v-card .card .handwritten{position:absolute;font-family:var(--serif);font-style:italic;color:var(--accent);font-size:15px;transform:rotate(-3deg);line-height:1.2}.hero.v-card .card .annotations{display:grid;grid-template-columns:2fr 1fr;gap:40px;margin-block-start:28px;align-items:start}.hero.v-card .card .annotations p{font-family:var(--serif);font-size:19px;line-height:1.4;margin:0;max-inline-size:50ch}.hero.v-card .card .av{aspect-ratio:1/1;background:var(--bg-3);overflow:hidden;border:1px solid var(--rule)}.hero.v-card .card .av img{inline-size:100%;block-size:100%;object-fit:cover}.hero.v-card .card .foot{margin-block-start:28px;display:flex;justify-content:space-between;padding-block-start:18px;border-block-start:1px dashed var(--rule-soft);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-3)}.section-head{margin-block-end:40px}.section-head h2{font-family:var(--head-font);font-size:clamp(36px,4.2vw,64px);line-height:1;letter-spacing:-.03em;margin:0;font-weight:700}.section-head h2 em{font-family:var(--serif);font-style:italic;color:var(--accent);font-weight:400}.about-grid{display:grid;grid-template-columns:180px 1.3fr 1fr;gap:40px}.about-grid .labels{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-3)}.about-grid .labels ul{list-style:none;margin:0;padding:0;display:grid;gap:16px}.about-grid .labels li span{display:block;color:var(--fg);margin-block-start:4px;font-size:13px;letter-spacing:0;text-transform:none;font-family:var(--body-font, var(--sans))}.about-grid .prose p{font-family:var(--serif);font-size:21px;line-height:1.5;margin-block:0 1.1em;text-wrap:pretty}.about-grid .prose p:first-child:first-letter{font-size:3.4em;float:inline-start;line-height:.85;padding-block-start:4px;padding-inline-end:12px;font-weight:700;color:var(--accent);font-family:var(--head-font)}.about-grid .prose p em{color:var(--accent);font-style:italic}.about-grid aside{border-inline-start:1px solid var(--rule-soft);padding-inline-start:24px;font-family:var(--mono);font-size:12px;display:grid;gap:14px;align-self:start}.about-grid aside .kv{display:grid;grid-template-columns:90px 1fr;gap:8px}.about-grid aside .kv .k{color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.xp-list{display:grid;gap:0}.xp-row{display:grid;grid-template-columns:180px 1fr 220px 180px;gap:24px;padding-block:24px;border-block-start:1px solid var(--rule-soft);align-items:baseline;transition:background .2s}.xp-row:hover{background:var(--bg-2)}.xp-row .years{font-family:var(--mono);font-size:12px;color:var(--fg-3);letter-spacing:.05em}.xp-row .role{font-family:var(--head-font);font-size:22px;font-weight:600;letter-spacing:-.01em}.xp-row .role em{font-family:var(--serif);font-style:italic;color:var(--accent);font-weight:400;display:block;font-size:14px;margin-block-start:4px}.xp-row .company{font-family:var(--mono);font-size:13px;color:var(--fg-2)}.xp-row .place{font-family:var(--mono);font-size:11px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em}.projects{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft)}.project{grid-column:span 3;background:var(--bg);padding:28px;display:flex;flex-direction:column;min-block-size:280px;transition:background .2s;cursor:pointer;position:relative}.project.big{grid-column:span 3}.project.wide{grid-column:span 6;flex-direction:row;align-items:stretch;gap:40px;padding:40px}.project:hover{background:var(--bg-2)}.project .tag{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-block-end:14px}.project h3{font-family:var(--head-font);font-size:28px;font-weight:700;line-height:1.05;letter-spacing:-.02em;margin-block:0 10px}.project.big h3,.project.wide h3{font-size:40px}.project p{font-family:var(--serif);font-size:15px;line-height:1.45;color:var(--fg-2);margin-block:0 auto;max-inline-size:52ch}.project .meta{margin-block-start:22px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.1em;padding-block-start:12px;border-block-start:1px solid var(--rule-soft)}.project .visual{aspect-ratio:4/3;background:repeating-linear-gradient(45deg,var(--rule-soft) 0 1px,transparent 1px 10px),var(--bg-3);border:1px solid var(--rule-soft);margin-block:-4px 20px;position:relative;display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--fg-3)}.project.wide .body{flex:1;display:flex;flex-direction:column}.project.wide .visual{inline-size:44%;margin:0;aspect-ratio:auto}.skills{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft)}.skill-col{background:var(--bg);padding:24px}.skill-col h3{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin-block:0 14px;padding-block-end:10px;border-block-end:1px solid var(--rule-soft)}.skill-col ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.skill-col li{font-family:var(--head-font);font-size:18px;letter-spacing:-.01em;display:flex;justify-content:space-between;align-items:baseline}.skill-col li .lvl{font-family:var(--mono);font-size:10px;color:var(--fg-3);letter-spacing:.1em}.skill-col li .bar{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:0}.writing{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft)}.note{background:var(--bg);padding:28px;min-block-size:240px;display:flex;flex-direction:column;cursor:pointer;transition:background .2s}.note:hover{background:var(--bg-2)}.note .date{font-family:var(--mono);font-size:11px;color:var(--fg-3);letter-spacing:.08em;text-transform:uppercase}.note h3{font-family:var(--head-font);font-size:24px;font-weight:700;line-height:1.15;letter-spacing:-.02em;margin-block:12px 0;margin-block-end:auto}.note .read{margin-block-start:24px;font-family:var(--mono);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.12em}.note .read:after{content:" →"}.talks{display:grid;gap:0}.talk{display:grid;grid-template-columns:120px 1fr 200px 120px;gap:24px;padding-block:22px;border-block-start:1px solid var(--rule-soft);align-items:baseline}.talk .when{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.05em}.talk .title{font-family:var(--head-font);font-size:22px;font-weight:600;letter-spacing:-.01em}.talk .venue{font-family:var(--mono);font-size:12px;color:var(--fg-2)}.talk .status{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--fg-3);text-align:end}.talk .status.live{color:var(--accent)}.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.quote{display:flex;flex-direction:column;padding:28px;border:1px solid var(--rule-soft);background:var(--bg);position:relative}.quote:before{content:"“";position:absolute;inset-block-start:-12px;inset-inline-start:18px;font-family:var(--serif);font-size:80px;line-height:1;color:var(--accent);background:var(--bg);padding-inline:8px}.quote blockquote{margin-block:10px 24px;font-family:var(--serif);font-size:19px;line-height:1.4;font-style:italic;text-wrap:pretty}.quote .who{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin-block-start:auto}.quote .who strong{display:block;color:var(--fg);font-size:13px;letter-spacing:.04em;margin-block-end:4px}.quote .who span{color:var(--fg-3)}.now{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:start}.now .focus{font-family:var(--head-font);font-size:clamp(32px,3.6vw,52px);line-height:1.1;letter-spacing:-.02em;font-weight:700;text-wrap:pretty}.now .focus em{font-family:var(--serif);font-style:italic;color:var(--accent);font-weight:400}.now ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}.now ul li{display:grid;grid-template-columns:14px 80px 1fr;gap:12px;align-items:baseline;padding-block:10px;border-block-start:1px solid var(--rule-soft);font-family:var(--mono);font-size:13px}.now ul li .d{inline-size:8px;block-size:8px;background:var(--accent);border-radius:50%;margin-block-start:6px}.now ul li .k{color:var(--fg-3);text-transform:uppercase;font-size:10px;letter-spacing:.1em}.contact{display:grid;grid-template-columns:1fr 1fr;gap:56px}.contact .big{font-family:var(--head-font);font-size:clamp(40px,5.5vw,80px);line-height:.95;letter-spacing:-.03em;font-weight:700}[dir=rtl] .contact .big{line-height:1.6;letter-spacing:0}.contact .big em{font-family:var(--serif);font-style:italic;color:var(--accent);font-weight:400}.contact .links{display:grid;gap:0;align-self:end}.contact .links a{display:grid;grid-template-columns:40px 1fr 24px;gap:18px;align-items:center;padding-block:22px;border-block-start:1px solid var(--rule-soft);font-family:var(--head-font);font-size:28px;font-weight:600;letter-spacing:-.01em;transition:color .15s,padding .2s}.contact .links a:last-child{border-block-end:1px solid var(--rule-soft)}.contact .links a:hover{color:var(--accent);padding-inline-start:12px}.contact .links a .n{display:inline-flex;align-items:center;justify-content:center;color:var(--fg-3)}.contact .links a .n svg{inline-size:20px;block-size:20px}.contact .links a .arrow{font-family:var(--mono);font-size:20px;color:var(--accent)}footer{padding-block:32px;padding-inline:56px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--fg-3);letter-spacing:.08em;text-transform:uppercase}#tweaks-open{position:fixed;inset-inline-end:18px;inset-block-end:18px;z-index:99;background:var(--fg);color:var(--bg);border:1px solid var(--rule);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding-block:10px;padding-inline:14px;cursor:pointer;box-shadow:4px 4px 0 var(--rule-soft);transition:transform .1s}#tweaks-open:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--rule-soft)}#tweaks.open~#tweaks-open,body:has(#tweaks.open) #tweaks-open{display:none}#tweaks{position:fixed;inset-inline-end:18px;inset-block-end:18px;inline-size:300px;background:var(--bg);border:1px solid var(--rule);font-family:var(--mono);font-size:12px;color:var(--fg);z-index:100;display:none;box-shadow:8px 8px 0 var(--rule-soft)}#tweaks.open{display:block}#tweaks header{padding-block:10px;padding-inline:14px;display:flex;justify-content:space-between;border-block-end:1px solid var(--rule-soft);text-transform:uppercase;letter-spacing:.12em;font-size:11px}#tweaks header .close{cursor:pointer;color:var(--fg-3)}#tweaks .body{padding-block:12px;padding-inline:14px;display:grid;gap:14px;max-block-size:70vh;overflow:auto}#tweaks .group{display:grid;gap:6px}#tweaks .group .label{color:var(--fg-3);text-transform:uppercase;letter-spacing:.1em;font-size:10px}#tweaks .btns{display:flex;gap:4px;flex-wrap:wrap}#tweaks .btns button{flex:1;min-inline-size:0;background:transparent;border:1px solid var(--rule-soft);color:var(--fg);font-family:var(--mono);font-size:11px;padding-block:6px;padding-inline:8px;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;transition:all .15s}#tweaks .btns button:hover{border-color:var(--accent)}#tweaks .btns button.on{background:var(--accent);color:#000;border-color:var(--accent)}#tweaks .swatches{display:flex;gap:6px;flex-wrap:wrap}#tweaks .swatches button{inline-size:24px;block-size:24px;border:1px solid var(--rule-soft);cursor:pointer;padding:0;transition:transform .1s,border .1s}#tweaks .swatches button.on{border:2px solid var(--fg);transform:scale(1.1)}#tweaks input[type=range]{inline-size:100%;accent-color:var(--accent)}@media(max-width:1100px){.hero.v-dossier .body,.hero.v-billboard .bill{grid-template-columns:1fr}.projects,.skills,.writing{grid-template-columns:1fr 1fr}.project,.project.big{grid-column:span 1}.project.wide{grid-column:span 2;flex-direction:column}.project.wide .visual{inline-size:100%;aspect-ratio:4/3}.section-head{grid-template-columns:1fr;gap:12px}.about-grid{grid-template-columns:1fr}.xp-row{grid-template-columns:100px 1fr}.xp-row .company,.xp-row .place{grid-column:2}.contact,.now,.quotes{grid-template-columns:1fr}.talk{grid-template-columns:80px 1fr}.talk .venue,.talk .status{grid-column:2}}@media(max-width:720px){.shell{grid-template-columns:1fr}html[data-rail-pinned=true] .shell{--rail-w: 1fr}.hero,section.panel{padding-block:56px;padding-inline:22px}.hero.v-billboard{padding-block:28px 0;padding-inline:0}.hero.v-billboard .bill .left{padding-block:32px;padding-inline:22px}.projects,.skills,.writing{grid-template-columns:1fr}.project,.project.big,.project.wide{grid-column:span 1}}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.rail.svelte-pnk3ok{position:sticky;inset-block-start:0;block-size:100vh;inline-size:100%;border-inline-end:1px solid var(--rule-soft);background:var(--bg);z-index:5}.rail.svelte-pnk3ok .inner:where(.svelte-pnk3ok){position:relative;block-size:100%;inline-size:64px;display:flex;flex-direction:column;align-items:stretch;padding-block:18px;gap:18px;background:var(--bg);transition:inline-size .18s ease,box-shadow .18s ease;overflow:hidden}.rail[data-mode=overlay].svelte-pnk3ok .inner:where(.svelte-pnk3ok){inline-size:240px;box-shadow:2px 0 24px #0000001f;z-index:20}.rail[data-mode=pinned].svelte-pnk3ok .inner:where(.svelte-pnk3ok){inline-size:100%}.rail.svelte-pnk3ok .mark:where(.svelte-pnk3ok){align-self:center;inline-size:34px;block-size:34px;display:grid;place-items:center;background:var(--fg);color:var(--bg);font-family:var(--mono);font-weight:700;letter-spacing:-.03em;flex-shrink:0}.rail.svelte-pnk3ok nav:where(.svelte-pnk3ok){display:flex;flex-direction:column;gap:2px;margin-block-start:10px;padding-inline:6px}.rail.svelte-pnk3ok nav:where(.svelte-pnk3ok) a:where(.svelte-pnk3ok),.rail.svelte-pnk3ok .bottom:where(.svelte-pnk3ok) a:where(.svelte-pnk3ok),.rail.svelte-pnk3ok .bottom:where(.svelte-pnk3ok) .pin:where(.svelte-pnk3ok){display:flex;align-items:center;gap:14px;padding-block:10px;padding-inline:10px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2);border-inline-start:2px solid transparent;min-block-size:40px;background:transparent;border-block-start:0;border-block-end:0;border-inline-end:0;text-align:start;cursor:pointer}.rail.svelte-pnk3ok nav:where(.svelte-pnk3ok) a:where(.svelte-pnk3ok):hover,.rail.svelte-pnk3ok nav:where(.svelte-pnk3ok) a.active:where(.svelte-pnk3ok),.rail.svelte-pnk3ok .bottom:where(.svelte-pnk3ok) a:where(.svelte-pnk3ok):hover,.rail.svelte-pnk3ok .bottom:where(.svelte-pnk3ok) .pin:where(.svelte-pnk3ok):hover{color:var(--fg);border-inline-start-color:var(--accent)}.rail.svelte-pnk3ok nav:where(.svelte-pnk3ok) a.active:where(.svelte-pnk3ok){background:color-mix(in oklab,var(--accent) 8%,transparent)}.rail.svelte-pnk3ok .icon:where(.svelte-pnk3ok){display:inline-grid;place-items:center;inline-size:22px;font-size:16px;color:var(--fg);flex-shrink:0}.rail.svelte-pnk3ok nav:where(.svelte-pnk3ok) a.active:where(.svelte-pnk3ok) .icon:where(.svelte-pnk3ok),.rail.svelte-pnk3ok nav:where(.svelte-pnk3ok) a:where(.svelte-pnk3ok):hover .icon:where(.svelte-pnk3ok){color:var(--accent)}.rail.svelte-pnk3ok .label:where(.svelte-pnk3ok){flex:1;display:inline-flex;align-items:baseline;gap:10px;white-space:nowrap;opacity:0;transition:opacity .12s ease}.rail[data-mode=overlay].svelte-pnk3ok .label:where(.svelte-pnk3ok),.rail[data-mode=pinned].svelte-pnk3ok .label:where(.svelte-pnk3ok){opacity:1}.rail.svelte-pnk3ok .label:where(.svelte-pnk3ok) .num:where(.svelte-pnk3ok){font-size:10px;color:var(--fg-2);letter-spacing:.18em}.rail[data-mode=collapsed].svelte-pnk3ok .label:where(.svelte-pnk3ok){pointer-events:none}.rail.svelte-pnk3ok .locales:where(.svelte-pnk3ok){margin-block-start:auto;display:flex;flex-wrap:wrap;gap:2px;padding-inline:10px;padding-block:12px 0}.rail.svelte-pnk3ok .locales:where(.svelte-pnk3ok) a:where(.svelte-pnk3ok){font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--fg-3);padding-block:4px;padding-inline:6px;min-block-size:28px;min-inline-size:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent}.rail.svelte-pnk3ok .locales:where(.svelte-pnk3ok) a.on:where(.svelte-pnk3ok){color:var(--accent);border-color:currentColor}.rail.svelte-pnk3ok .locales:where(.svelte-pnk3ok) a:where(.svelte-pnk3ok):hover{color:var(--fg)}.rail.svelte-pnk3ok .bottom:where(.svelte-pnk3ok){display:flex;flex-direction:column;gap:2px;padding-inline:6px;padding-block-start:10px;border-block-start:1px solid var(--rule-soft)}.rail.svelte-pnk3ok .blink:where(.svelte-pnk3ok){align-self:center;inline-size:10px;block-size:10px;background:var(--accent);animation:svelte-pnk3ok-rail-blink 1.1s steps(2) infinite;margin-block-end:4px}@keyframes svelte-pnk3ok-rail-blink{50%{opacity:0}}.rail.svelte-pnk3ok .pin:where(.svelte-pnk3ok){font-variant-caps:all-small-caps}@media(max-width:720px){.rail.svelte-pnk3ok{display:none}}.mnav.svelte-cli79p{display:none;align-items:center;gap:12px;padding-block:10px;padding-inline:16px;border-block-end:1px solid var(--rule-soft);background:var(--bg);position:sticky;inset-block-start:0;z-index:15}.mnav.svelte-cli79p .brand:where(.svelte-cli79p){inline-size:30px;block-size:30px;display:grid;place-items:center;background:var(--fg);color:var(--bg);font-family:var(--mono);font-weight:700}.mnav.svelte-cli79p .title:where(.svelte-cli79p){font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);flex:1}.mnav.svelte-cli79p .burger:where(.svelte-cli79p){appearance:none;background:transparent;border:1px solid var(--rule-soft);padding-block:6px;padding-inline:12px;font-family:var(--mono);font-size:20px;line-height:1;color:var(--fg);min-block-size:40px;min-inline-size:44px}.backdrop.svelte-cli79p{position:fixed;inset:0;background:#0006;z-index:40}.drawer.svelte-cli79p{position:fixed;inset-block:0;inset-inline-start:0;inline-size:min(340px,86vw);background:var(--bg);border-inline-end:1px solid var(--rule-soft);display:flex;flex-direction:column;gap:10px;padding-block:16px;padding-inline:14px;z-index:50;overflow-y:auto}.drawer-head.svelte-cli79p{display:flex;align-items:center;justify-content:space-between;padding-block-end:8px;border-block-end:1px solid var(--rule-soft);font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3)}.drawer-head.svelte-cli79p button:where(.svelte-cli79p){appearance:none;background:transparent;border:0;font-size:24px;line-height:1;color:var(--fg);cursor:pointer;min-inline-size:40px;min-block-size:40px}.drawer.svelte-cli79p nav:where(.svelte-cli79p){display:flex;flex-direction:column;gap:2px}.drawer.svelte-cli79p nav:where(.svelte-cli79p) a:where(.svelte-cli79p){display:flex;align-items:center;gap:14px;padding-block:12px;padding-inline:10px;font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2);border-inline-start:2px solid transparent;min-block-size:44px}.drawer.svelte-cli79p nav:where(.svelte-cli79p) a.active:where(.svelte-cli79p){color:var(--fg);border-inline-start-color:var(--accent);background:color-mix(in oklab,var(--accent) 8%,transparent)}.drawer.svelte-cli79p nav:where(.svelte-cli79p) a:where(.svelte-cli79p) .icon:where(.svelte-cli79p){inline-size:22px;display:inline-grid;place-items:center;color:var(--accent)}.drawer.svelte-cli79p nav:where(.svelte-cli79p) a:where(.svelte-cli79p) .num:where(.svelte-cli79p){font-size:10px;letter-spacing:.2em;color:var(--fg-3)}.drawer.svelte-cli79p .locales:where(.svelte-cli79p){display:flex;flex-wrap:wrap;gap:4px;padding-block:8px 0;border-block-start:1px solid var(--rule-soft);margin-block-start:8px}.drawer.svelte-cli79p .locales:where(.svelte-cli79p) a:where(.svelte-cli79p){font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--fg-3);padding-block:6px;padding-inline:10px;border:1px solid transparent;min-block-size:32px;display:inline-flex;align-items:center}.drawer.svelte-cli79p .locales:where(.svelte-cli79p) a.on:where(.svelte-cli79p){color:var(--accent);border-color:currentColor}.drawer.svelte-cli79p .socials:where(.svelte-cli79p){display:flex;flex-wrap:wrap;gap:4px 8px;padding-block:12px 0;border-block-start:1px solid var(--rule-soft);margin-block-start:8px}.drawer.svelte-cli79p .socials:where(.svelte-cli79p) a:where(.svelte-cli79p){display:inline-flex;align-items:center;gap:8px;padding-block:8px;padding-inline:10px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);min-block-size:40px}.drawer.svelte-cli79p .socials:where(.svelte-cli79p) a:where(.svelte-cli79p):hover{color:var(--fg)}@media(max-width:720px){.mnav.svelte-cli79p{display:flex}}#tweaks .swatches .brand-swatch{background:var(--color-accent)!important}@media(max-width:720px){#tweaks{inset-inline:0;inset-block-end:0;inline-size:100%;max-block-size:80vh;border-inline:0;border-block-end:0;border-block-start:1px solid var(--rule);box-shadow:0 -6px 20px #0000001f}#tweaks .body{max-block-size:calc(80vh - 48px)}}.site-footer[data-astro-cid-37fxchfa]{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center;padding-block:24px;padding-inline:24px;margin-block-start:40px;border-block-start:1px solid var(--border, rgba(0, 0, 0, .08));font-family:var(--mono, monospace);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3, var(--fg-2))}
