@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.woff2) format("woff2");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-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");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-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.woff2) format("woff2");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-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.woff2) format("woff2");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-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/704b853f32d191d5-s.woff2) format("woff2");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-weight:700;font-display:swap;src:url(/_next/static/media/656feb427634a431-s.woff2) format("woff2");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-weight:700;font-display:swap;src:url(/_next/static/media/991629005c80bdf1-s.woff2) format("woff2");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-weight:700;font-display:swap;src:url(/_next/static/media/46e154b2fcbd6033-s.woff2) format("woff2");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-weight:700;font-display:swap;src:url(/_next/static/media/37786be940ec402b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_b4c22e{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_b4c22e{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_43f867{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_43f867{--font-sans:"IBM Plex Sans","IBM Plex Sans Fallback"}

/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}}:root{--bg:#0a0a0b;--bg-2:#0d0d0f;--panel:#0f0f11;--line:#ffffff12;--line-2:#ffffff1f;--fg:#e7e7e8;--fg-dim:#909094;--fg-faint:#56565a;--accent:#5ccb86;--accent-dim:#5ccb8624;--mono:var(--font-mono),ui-monospace,"SF Mono",Menlo,monospace;--sans:var(--font-sans),system-ui,sans-serif;--gutter:clamp(20px,5vw,88px);--maxw:1060px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:16px;line-height:1.6;overflow-x:hidden}body:before{content:"";background-image:linear-gradient(var(--line)1px,transparent 1px),linear-gradient(90deg,var(--line)1px,transparent 1px);opacity:.35;pointer-events:none;z-index:0;background-size:64px 64px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(100% 70% at 50% 0,#000 0,#0000 75%);mask-image:radial-gradient(100% 70% at 50% 0,#000 0,#0000 75%)}a{color:inherit;text-decoration:none}::selection{background:var(--accent-dim);color:#fff}:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.mono{font-family:var(--mono)}.wrap{max-width:var(--maxw);padding:0 var(--gutter);margin:0 auto}.topbar{z-index:50;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#0a0a0bb8;height:46px;position:fixed;top:0;left:0;right:0}.topbar,.topbar .wrap{align-items:center;display:flex}.topbar .wrap{justify-content:space-between;width:100%}.brand{font-family:var(--mono);letter-spacing:.02em;color:var(--fg);align-items:center;gap:9px;font-size:12.5px;display:flex}.dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 0 var(--accent);border-radius:50%;animation:pulse 2.6s ease-out infinite}@keyframes pulse{50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.dot{animation:none}}.topnav{font-family:var(--mono);color:var(--fg-faint);gap:22px;font-size:12px;display:flex}.topnav a{transition:color .18s}.topnav a:hover{color:var(--accent)}.topclock{font-family:var(--mono);color:var(--fg-dim);font-size:12px}@media (max-width:720px){.topnav{display:none}}section{z-index:1;position:relative}.seclabel{font-family:var(--mono);letter-spacing:.16em;color:var(--fg-faint);text-transform:uppercase;align-items:center;gap:12px;padding-bottom:26px;font-size:11.5px;display:flex}.seclabel .idx{color:var(--accent)}.seclabel:after{content:"";background:var(--line);flex:1;height:1px}.hero{padding-top:132px;padding-bottom:96px}.hero .kicker{letter-spacing:.22em;color:var(--fg-faint);text-transform:uppercase;margin-bottom:26px;font-size:12px}.hero .kicker,.hero h1{font-family:var(--mono)}.hero h1{letter-spacing:-.02em;color:#fff;margin-bottom:22px;font-size:clamp(40px,8vw,92px);font-weight:600;line-height:.98}.hero h1 .blink{color:var(--accent);font-weight:400;animation:blink 1.1s step-end infinite}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.hero h1 .blink{animation:none}}.hero .role{font-family:var(--mono);color:var(--fg-dim);margin-bottom:30px;font-size:clamp(15px,2.4vw,20px)}.hero .role b{color:var(--fg);font-weight:500}.hero .summary{max-width:560px;color:var(--fg-dim);font-size:16.5px;line-height:1.7}.hero .summary b{color:var(--fg);font-weight:500}.herogrid{grid-template-columns:1.15fr .85fr;align-items:start;gap:54px;display:grid}@media (max-width:860px){.herogrid{grid-template-columns:1fr;gap:40px}}.terminal{background:var(--panel);border:1px solid var(--line-2);font-family:var(--mono);border-radius:7px;overflow:hidden;box-shadow:0 24px 60px -30px #000c}.term-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:11px 14px;display:flex}.term-head .tdot{background:#2a2a2d;border-radius:50%;width:10px;height:10px}.term-head .tname{color:var(--fg-faint);letter-spacing:.04em;margin-left:8px;font-size:11.5px}.term-body{min-height:232px;padding:18px 18px 22px;font-size:13px;line-height:1.85}.term-body .ln{white-space:pre-wrap;word-break:break-word}.term-body .pr{color:var(--accent)}.term-body .mut{color:var(--fg-faint)}.term-body .ok{color:var(--accent)}.term-body .val{color:var(--fg)}.cursor{background:var(--accent);vertical-align:-2px;width:8px;height:15px;margin-left:2px;animation:blink 1.1s step-end infinite;display:inline-block}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}.links{flex-wrap:wrap;gap:10px;margin-top:34px;display:flex}.lnk{font-family:var(--mono);color:var(--fg-dim);border:1px solid var(--line-2);border-radius:5px;align-items:center;gap:9px;padding:9px 14px;font-size:12.5px;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.lnk:hover{color:#fff;border-color:var(--accent);background:var(--accent-dim)}.lnk .ar{color:var(--fg-faint);transition:color .18s,transform .18s}.lnk:hover .ar{color:var(--accent);transform:translate(2px,-2px)}.lnk.todo{border-style:dashed}.lnk.todo:after{content:"set url";color:var(--fg-faint);border:1px solid var(--line-2);letter-spacing:.05em;border-radius:3px;padding:1px 4px;font-size:9.5px}.block{padding:70px 0}.block,.logrow{border-top:1px solid var(--line)}.logrow{grid-template-columns:150px 1fr;gap:0;transition:background .2s;display:grid}.logrow:last-child{border-bottom:1px solid var(--line)}.logrow .meta{border-left:2px solid #0000;padding:26px 24px 26px 0}.logrow:hover{background:#ffffff03}.logrow:hover .meta{border-left-color:var(--accent);padding-left:18px}.logrow .body,.logrow .meta{transition:padding .2s,border-color .2s}.logrow .when{color:var(--accent);letter-spacing:.03em}.logrow .place,.logrow .when{font-family:var(--mono);font-size:11.5px}.logrow .place{color:var(--fg-faint);margin-top:6px}.logrow .body{padding:26px 0}.logrow .co{font-family:var(--mono);color:#fff;font-size:19px;font-weight:600}.logrow .ti{font-family:var(--mono);color:var(--fg-dim);margin-top:3px;font-size:13px}.logrow ul{flex-direction:column;gap:10px;margin-top:16px;list-style:none;display:flex}.logrow li{color:var(--fg-dim);max-width:640px;padding-left:20px;font-size:15px;line-height:1.62;position:relative}.logrow li:before{content:"▹";color:var(--fg-faint);font-size:13px;position:absolute;top:0;left:0}.logrow li b{color:var(--fg);font-weight:500}.tags{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.tag{font-family:var(--mono);color:var(--fg-dim);border:1px solid var(--line);letter-spacing:.02em;border-radius:4px;padding:3px 8px;font-size:11px}@media (max-width:720px){.logrow{grid-template-columns:1fr}.logrow .meta{padding:22px 0 0;border-left:none!important;padding-left:0!important}.logrow .body{padding:14px 0 24px}.logrow:hover .meta{padding-left:0}}.projects{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (max-width:720px){.projects{grid-template-columns:1fr}}.proj{border:1px solid var(--line-2);background:var(--bg-2);border-radius:7px;padding:26px 26px 24px;transition:border-color .2s,transform .2s,background .2s}.proj:hover{border-color:var(--accent);background:var(--panel);transform:translateY(-3px)}.proj .ph{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.proj .pn{font-family:var(--mono);color:#fff;font-size:17px;font-weight:600}.proj .pi{font-size:11px}.proj .ar,.proj .pi{font-family:var(--mono);color:var(--fg-faint)}.proj .ar{transition:color .2s,transform .2s}.proj:hover .ar{color:var(--accent);transform:translate(3px,-3px)}.proj p{color:var(--fg-dim);font-size:14.5px;line-height:1.6}.proj p b{color:var(--fg);font-weight:500}.proj .tags{margin-top:18px}.stackgrid{grid-template-columns:200px 1fr;gap:18px 40px;display:grid}@media (max-width:720px){.stackgrid{grid-template-columns:1fr;gap:6px 0}}.stackgrid .skh{font-family:var(--mono);letter-spacing:.08em;color:var(--fg-faint);text-transform:uppercase;padding-top:18px;font-size:12px}.stackgrid .skh,.stackgrid .skv{border-top:1px solid var(--line)}.stackgrid .skv{flex-wrap:wrap;gap:8px;padding:18px 0;display:flex}@media (max-width:720px){.stackgrid .skv{border-top:none;padding-top:8px}.stackgrid .skh{border-top:none}.stackgrid .skh:not(:first-child){border-top:1px solid var(--line);margin-top:10px}}.chip{font-family:var(--mono);color:var(--fg);border:1px solid var(--line-2);border-radius:5px;padding:6px 11px;font-size:12.5px;transition:border-color .16s,color .16s}.chip:hover{border-color:var(--accent);color:var(--accent)}.awards{flex-direction:column;display:flex}.award{border-top:1px solid var(--line);grid-template-columns:64px 1fr;align-items:baseline;gap:0;padding:22px 0;display:grid}.award:last-child{border-bottom:1px solid var(--line)}.award .an{font-family:var(--mono);color:var(--accent);font-size:12px}.award .at{color:var(--fg);font-size:16px}.award .at b{color:#fff;font-weight:500}.award .at span{color:var(--fg-faint);font-family:var(--mono);font-size:12.5px}.writing{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (max-width:720px){.writing{grid-template-columns:1fr}}.post-card{border:1px solid var(--line-2);background:var(--bg-2);border-radius:7px;flex-direction:column;padding:24px 24px 22px;transition:border-color .2s,transform .2s,background .2s;display:flex}.post-card:hover{border-color:var(--accent);background:var(--panel);transform:translateY(-3px)}.post-card .pmeta{font-family:var(--mono);color:var(--fg-faint);gap:10px;margin-bottom:12px;font-size:11px;display:flex}.post-card .ptitle{font-family:var(--mono);color:#fff;justify-content:space-between;align-items:flex-start;gap:12px;font-size:16.5px;font-weight:600;line-height:1.3;display:flex}.post-card .ptitle .ar{color:var(--fg-faint);flex:none;transition:color .2s,transform .2s}.post-card:hover .ptitle .ar{color:var(--accent);transform:translate(3px,-3px)}.post-card p{color:var(--fg-dim);flex:1;margin-top:10px;font-size:14px;line-height:1.6}h2.bigt{font-family:var(--mono);color:#fff;letter-spacing:-.01em;margin-bottom:8px;font-size:clamp(26px,4vw,38px);font-weight:600}.secsub{color:var(--fg-dim);max-width:520px;margin-bottom:40px;font-size:15.5px}.secsub .inlnk{color:var(--fg);border-bottom:1px solid var(--line-2);transition:color .18s,border-color .18s}.secsub .inlnk:hover{color:var(--accent);border-color:var(--accent)}.contactgrid{max-width:620px}.contactform{gap:20px}.contactform,.contactform .field{flex-direction:column;display:flex}.contactform .field{gap:8px}.contactform .field label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);font-size:11px}.contactform input,.contactform textarea{font-family:var(--mono);color:var(--fg);background:var(--panel);border:1px solid var(--line-2);resize:vertical;border-radius:6px;width:100%;padding:12px 14px;font-size:14px;transition:border-color .18s,background .18s}.contactform input::placeholder,.contactform textarea::placeholder{color:var(--fg-faint)}.contactform input:focus,.contactform textarea:focus{border-color:var(--accent);background:var(--bg-2);outline:none}.contactform input:disabled,.contactform textarea:disabled{opacity:.55;cursor:not-allowed}.contactform .formrow{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.contactform .submitbtn{cursor:pointer;background:0 0}.contactform .submitbtn:disabled{opacity:.6;cursor:not-allowed}.contactform .formstatus{font-family:var(--mono);font-size:12.5px}.contactform .formstatus.err{color:#ff6b6b}.formdone{border:1px solid var(--line-2);background:var(--panel);border-radius:8px;padding:28px 26px}.formdone-mark{color:var(--accent);margin-bottom:12px;font-size:13.5px}.formdone p{color:var(--fg-dim);margin-bottom:18px;font-size:15px}.formdone .lnk{cursor:pointer;background:0 0}footer{border-top:1px solid var(--line);z-index:1;padding:64px 0 80px;position:relative}.footgrid{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:40px;display:flex}.footgrid .fcol h4{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:12px;font-size:11px}.footgrid .fcol p{font-family:var(--mono);color:var(--fg-dim);font-size:13.5px;line-height:1.7}.footgrid .fcol p span.hl{color:var(--fg)}.footgrid .fcol a:hover{color:var(--accent)}.footnote{font-family:var(--mono);color:var(--fg-faint);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:48px;padding-top:22px;font-size:11.5px;display:flex}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(14px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.article{max-width:720px;margin:0 auto;padding-top:110px;padding-bottom:100px}.backlink{font-family:var(--mono);color:var(--fg-dim);align-items:center;gap:8px;margin-bottom:36px;font-size:12px;transition:color .18s;display:inline-flex}.backlink:hover{color:var(--accent)}.article-head .ameta{font-family:var(--mono);color:var(--fg-faint);flex-wrap:wrap;gap:12px;margin-bottom:18px;font-size:11.5px;display:flex}.article-head h1{font-family:var(--mono);letter-spacing:-.02em;color:#fff;margin-bottom:16px;font-size:clamp(28px,5vw,44px);font-weight:600;line-height:1.08}.article-head .excerpt{color:var(--fg-dim);margin-bottom:28px;font-size:17px;line-height:1.6}.article-head .tags{border-bottom:1px solid var(--line);margin-bottom:40px;padding-bottom:36px}.prose{color:var(--fg-dim);font-size:16.5px;line-height:1.75}.prose>*+*{margin-top:20px}.prose h2{color:#fff;letter-spacing:-.01em;margin-top:44px;font-size:22px}.prose h2,.prose h3{font-family:var(--mono);font-weight:600}.prose h3{color:var(--fg);margin-top:34px;font-size:17px}.prose strong{color:var(--fg);font-weight:600}.prose a{color:var(--accent);border-bottom:1px solid var(--accent-dim)}.prose a:hover{border-bottom-color:var(--accent)}.prose code{font-family:var(--mono);color:var(--accent);background:var(--accent-dim);border-radius:4px;padding:1px 6px;font-size:.86em}.prose pre{background:var(--panel);border:1px solid var(--line-2);border-radius:7px;padding:18px;font-size:13px;line-height:1.7;overflow-x:auto}.prose pre code{color:var(--fg);background:0 0;padding:0;font-size:13px}.prose ul{flex-direction:column;gap:10px;padding-left:0;list-style:none;display:flex}.prose ul li{padding-left:20px;position:relative}.prose ul li:before{content:"▹";color:var(--fg-faint);position:absolute;top:0;left:0}.prose blockquote{border-left:2px solid var(--accent);color:var(--fg);padding-left:18px;font-style:italic}