@charset "UTF-8";@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-cyrillic-ext-wght-normal-BUWC6ZS3.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-cyrillic-wght-normal-ENSFVLK4.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-greek-wght-normal-Y3BRZMJV.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-vietnamese-wght-normal-SP6EBKAH.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-latin-ext-wght-normal-TSLVDSQR.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-latin-wght-normal-VBS632QH.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url("./media/ibm-plex-sans-cyrillic-ext-400-normal-7Z3465FB.woff2") format("woff2"),url("./media/ibm-plex-sans-cyrillic-ext-400-normal-YU2ZJYJL.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("./media/ibm-plex-sans-cyrillic-400-normal-APB4EUBL.woff2") format("woff2"),url("./media/ibm-plex-sans-cyrillic-400-normal-7FSQ77DP.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("./media/ibm-plex-sans-greek-400-normal-L4LAXORB.woff2") format("woff2"),url("./media/ibm-plex-sans-greek-400-normal-X3NYKSO2.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("./media/ibm-plex-sans-vietnamese-400-normal-P5ZB55LJ.woff2") format("woff2"),url("./media/ibm-plex-sans-vietnamese-400-normal-A4XVIM4G.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("./media/ibm-plex-sans-latin-ext-400-normal-EDOVP6TU.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-ext-400-normal-IC47YBOO.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("./media/ibm-plex-sans-latin-400-normal-COQVXTP6.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-400-normal-JC3YNCCZ.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url("./media/ibm-plex-sans-cyrillic-ext-500-normal-SJW52W6D.woff2") format("woff2"),url("./media/ibm-plex-sans-cyrillic-ext-500-normal-Z7QHO46N.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:500;src:url("./media/ibm-plex-sans-cyrillic-500-normal-R6B2XZIQ.woff2") format("woff2"),url("./media/ibm-plex-sans-cyrillic-500-normal-WNQEPSX2.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:500;src:url("./media/ibm-plex-sans-greek-500-normal-4XELGUF7.woff2") format("woff2"),url("./media/ibm-plex-sans-greek-500-normal-B6ARYOP3.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:500;src:url("./media/ibm-plex-sans-vietnamese-500-normal-J2J6G2N5.woff2") format("woff2"),url("./media/ibm-plex-sans-vietnamese-500-normal-OZE7IZOF.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:500;src:url("./media/ibm-plex-sans-latin-ext-500-normal-SG2XNXKB.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-ext-500-normal-4YL5ICYH.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:500;src:url("./media/ibm-plex-sans-latin-500-normal-JTONHBWS.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-500-normal-7DOULDHV.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url("./media/ibm-plex-sans-cyrillic-ext-600-normal-HGPMDSPK.woff2") format("woff2"),url("./media/ibm-plex-sans-cyrillic-ext-600-normal-UU6N6VST.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("./media/ibm-plex-sans-cyrillic-600-normal-AFPTCLK6.woff2") format("woff2"),url("./media/ibm-plex-sans-cyrillic-600-normal-7XGRL4XO.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("./media/ibm-plex-sans-greek-600-normal-NTJH3CYY.woff2") format("woff2"),url("./media/ibm-plex-sans-greek-600-normal-GD52DGQ2.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("./media/ibm-plex-sans-vietnamese-600-normal-JKSXZXZW.woff2") format("woff2"),url("./media/ibm-plex-sans-vietnamese-600-normal-5IGNKSLH.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("./media/ibm-plex-sans-latin-ext-600-normal-ZNWKNRXL.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-ext-600-normal-OPCHJXXH.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("./media/ibm-plex-sans-latin-600-normal-DTNZULF4.woff2") format("woff2"),url("./media/ibm-plex-sans-latin-600-normal-B3O423MA.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 properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--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-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;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,samp,pre{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{font-size:75%;line-height:0;position:relative;vertical-align:baseline}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}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}: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,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-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]),::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 utilities{.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.block{display:block}.flex{display:flex}.grid{display:grid}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.text-wrap{text-wrap:wrap}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}}:root{color-scheme:dark;--bg: #0D1015;--panel: #12161D;--panel-2: #0F1318;--line: #232A33;--line-strong: #2A323D;--text: #E6EAF0;--muted: #8B95A5;--dim: #5C6672;--accent: #8BE04A;--accent-hover: #A9F26F;--accent-glow: rgba(139, 224, 74, .22);--code-key: #7AA2F7;--code-str: #C3E88D;--code-num: #F78C6C;--mono: "JetBrains Mono Variable", "JetBrains Mono", Consolas, Menlo, monospace;--sans: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--radius: 10px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}::selection{background:var(--accent);color:var(--bg)}h1,h2,h3,h4,p{margin:0}h1,h2{font-weight:600;letter-spacing:-.03em;text-wrap:balance}h1{font-size:clamp(2.4rem,5vw,3.9rem);line-height:1.04}h2{font-size:clamp(1.75rem,3vw,2.1rem);line-height:1.1;letter-spacing:-.025em}h3{font-size:1.25rem;font-weight:500;letter-spacing:-.01em;line-height:1.25}h4{font-size:1rem;font-weight:500}.site-frame{min-height:100vh;background-color:var(--bg);background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:64px 64px}.shell{width:min(1160px,100% - 40px);margin-inline:auto}.mono{font-family:var(--mono)}.label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.dim{color:var(--dim)}.muted{color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:4px;border:1px solid var(--line-strong);color:var(--muted);font:400 12px/1 var(--mono);white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 20px;border-radius:6px;font:500 14px/1 var(--mono);white-space:nowrap;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease,border-color .15s ease}.btn-accent{background:var(--accent);color:var(--bg);box-shadow:0 0 0 1px #8be04a66,0 0 32px var(--accent-glow)}.btn-accent:hover{color:var(--bg);background:var(--accent-hover);box-shadow:0 0 0 1px #8be04a99,0 0 40px var(--accent-glow)}.btn-line{border:1px solid var(--line-strong);color:var(--text);background:#ffffff05}.btn-line:hover{color:var(--text);border-color:var(--accent);background:#8be04a0f}.icon{width:14px;height:14px;flex:none}.status-dot{position:relative;display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}.status-dot:after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid var(--accent);opacity:0}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;background:var(--accent);color:var(--bg);padding:.7rem 1rem;font-family:var(--mono);font-size:13px;border-radius:6px}.skip-link:focus{top:1rem}.section{padding-block:96px}.section.tight{padding-top:0}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.section-head .label{display:block;margin-bottom:10px}.section-head .count{font:400 12px/1 var(--mono);color:var(--dim)}.section-head.padded{padding-inline:24px}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:#0d1015eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{display:inline-flex;align-items:center;gap:10px;font:600 14px/1 var(--mono)}.wordmark:hover{color:var(--text)}.wordmark-tilde{color:var(--accent);font-weight:400}.desktop-nav{display:flex;align-items:center;gap:28px}.desktop-nav nav{display:flex;gap:28px;align-items:center}.desktop-nav nav a,.mobile-nav nav a{color:var(--muted);font:500 13px/1 var(--mono);letter-spacing:.02em}.desktop-nav nav a:hover,.mobile-nav nav a:hover,.desktop-nav nav a.active,.mobile-nav nav a.active{color:var(--accent)}.nav-cv{display:inline-flex;align-items:center;gap:6px}.status{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font:400 12px/1 var(--mono);padding-left:20px;border-left:1px solid var(--line)}.menu-button{display:none;align-items:center;gap:12px;border:0;background:transparent;color:var(--text);font:500 13px/1 var(--mono);cursor:pointer;padding:8px 0}.mobile-nav{display:none;border-top:1px solid var(--line);padding-block:16px 20px}.mobile-nav nav{display:grid;gap:16px}.site-footer{border-top:1px solid var(--line);padding-block:28px;margin-top:40px}.footer-inner{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--dim);font:400 12px/1.6 var(--mono)}.footer-inner a{color:var(--muted)}.footer-inner a:hover{color:var(--accent)}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;padding-block:88px 96px}.hero-copy{display:flex;flex-direction:column;gap:26px}.hero-copy .label{letter-spacing:.06em}.hero-copy h1 span{color:var(--accent)}.hero-lead{max-width:560px;color:var(--muted);font-size:18px;line-height:1.6}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}.terminal{padding:0;overflow:hidden;box-shadow:0 30px 80px #00000080;font-family:var(--mono)}.terminal-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel-2)}.terminal-dots{display:flex;gap:6px;width:42px}.terminal-dots span{width:10px;height:10px;border-radius:50%;background:var(--line-strong)}.terminal-title{color:var(--dim);font-size:12px}.terminal-spacer{width:42px}.terminal-body{padding:22px 24px;font-size:14px;line-height:1.75;display:flex;flex-direction:column;overflow-x:auto}.terminal-body .k{color:var(--code-key)}.terminal-body .s{color:var(--code-str)}.terminal-body .n{color:var(--code-num)}.terminal-body .c{color:var(--dim)}.terminal-line{white-space:pre}.terminal-line.indent{padding-left:2ch}.terminal-line.prompt{margin-top:6px}.cursor{display:inline-block;width:9px;height:16px;background:var(--accent);vertical-align:-3px;margin-left:2px}.work-list{display:flex;flex-direction:column;overflow:hidden}.project-row{display:grid;grid-template-columns:56px minmax(0,1fr) 300px 40px;gap:24px;padding:26px 24px;border-top:1px solid var(--line);align-items:center;color:var(--text);transition:background-color .15s ease}.project-row:first-child{border-top:0}.project-row:hover{background:var(--panel-2);color:var(--text)}.project-index{font:400 13px/1 var(--mono);color:var(--dim)}.project-row.featured .project-index,.project-row.featured .project-arrow{color:var(--accent)}.project-title{display:flex;flex-direction:column;gap:6px}.project-title p{color:var(--muted);font-size:14.5px}.project-arrow{color:var(--dim);text-align:right;font-size:18px;transition:color .15s ease,transform .15s ease}.project-row:hover .project-arrow{color:var(--accent);transform:translate(4px)}.experience{display:grid;grid-template-columns:340px 1fr;gap:64px;align-items:start}.experience-intro{display:flex;flex-direction:column;gap:18px}.experience-intro p{color:var(--muted);font-size:15px;line-height:1.6}.experience-intro .text-link{align-self:flex-start}.portrait{width:96px;height:96px;border-radius:8px;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05);border:1px solid var(--line)}.text-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font:500 13px/1 var(--mono)}.text-link:hover{color:var(--accent-hover)}.roles{display:flex;flex-direction:column}.role{display:grid;grid-template-columns:170px 1fr 1.2fr;gap:28px;padding:20px 0;border-top:1px solid var(--line);align-items:baseline}.role:last-child{border-bottom:1px solid var(--line)}.role time{color:var(--dim);font:400 13px/1.4 var(--mono)}.role h4{font-size:16px}.role .company{display:block;color:var(--muted);font-size:13.5px;margin-top:2px}.role p{color:var(--muted);font-size:14.5px;line-height:1.5}.capabilities{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.capability{padding:28px;display:flex;flex-direction:column;gap:14px}.capability .index{font:400 12px/1 var(--mono);color:var(--accent)}.capability p{color:var(--muted);font-size:14.5px;line-height:1.55}.contact{padding:clamp(32px,5vw,56px);border-color:#8be04a59;box-shadow:inset 0 0 80px #8be04a0d;display:flex;flex-direction:column;gap:22px}.contact h2{max-width:760px}.contact-actions{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:8px}.contact-actions .meta{color:var(--dim);font:400 12px/1 var(--mono)}.breadcrumb{display:flex;font:400 13px/1 var(--mono);color:var(--text)}.breadcrumb a{color:var(--dim)}.breadcrumb a:hover{color:var(--accent)}.case-hero{padding-block:64px 48px;display:flex;flex-direction:column;gap:22px}.case-hero h1{max-width:900px}.case-hero .lead{max-width:760px;color:var(--muted);font-size:18px;line-height:1.6}.case-meta{display:grid;grid-template-columns:auto auto 1fr;gap:32px;padding:18px 24px;margin:8px 0 0;align-items:start}.case-meta dt{font:400 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}.case-meta dd{margin:0;font-size:14.5px}.case-section{display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;padding-block:56px;border-top:1px solid var(--line)}.case-section .label{padding-top:6px}.case-section h2{margin-bottom:20px}.large-copy{max-width:720px;color:var(--muted);font-size:17px;line-height:1.65}.contribution-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.contribution-list li{display:grid;grid-template-columns:40px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line)}.contribution-list li:last-child{border-bottom:1px solid var(--line)}.contribution-list li span{font:400 13px/1.6 var(--mono);color:var(--accent)}.contribution-list li p{color:var(--muted);font-size:15px;line-height:1.6}.decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.decision{padding:24px;display:flex;flex-direction:column;gap:12px}.decision span{font:400 12px/1 var(--mono);color:var(--accent)}.decision p{color:var(--muted);font-size:14.5px;line-height:1.55}.diagram-wrap{padding-block:8px 56px}.system-diagram{margin:0;padding:24px;display:flex;flex-direction:column;gap:18px}.system-diagram figcaption{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.system-diagram figcaption .mono{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.system-diagram figcaption strong{font-size:15px;font-weight:500}.system-diagram svg{width:100%;height:auto;display:block;font-family:var(--mono)}.diagram-lines path{fill:none;stroke:var(--line-strong);stroke-width:1.5}.diagram-node rect{fill:var(--panel-2);stroke:var(--line-strong);stroke-width:1.5;rx:6}.diagram-node text{fill:var(--text);font-size:14px;font-weight:500;text-anchor:middle;letter-spacing:.04em}.diagram-node text.small{fill:var(--muted);font-size:11px;font-weight:400}.diagram-node.accent rect{stroke:var(--accent);fill:#8be04a0f}.diagram-node.accent text{fill:var(--accent)}.diagram-node.accent text.small{fill:var(--code-str)}.diagram-note text{fill:var(--dim);font-size:11px;letter-spacing:.1em;text-anchor:middle}.case-pagination{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-block:16px 64px}.case-pagination a{padding:22px 24px;display:flex;flex-direction:column;gap:10px;color:var(--text);transition:border-color .15s ease}.case-pagination a:hover{border-color:var(--accent);color:var(--text)}.case-pagination a .mono{font-size:12px;color:var(--dim)}.case-pagination a:last-child{text-align:right}.case-pagination strong{font-weight:500;font-size:15px}.case-contact{margin-bottom:64px}.page-head{padding-block:56px 40px;display:flex;flex-direction:column;gap:16px}.page-head .breadcrumb{margin-bottom:8px}.page-head h1{max-width:860px}.page-head .lead{max-width:680px;color:var(--muted);font-size:17px;line-height:1.6}.page-head .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.index-list{display:flex;flex-direction:column;overflow:hidden}.index-row{display:grid;grid-template-columns:180px minmax(0,1fr) 40px;gap:24px;padding:22px 24px;border-top:1px solid var(--line);align-items:center;color:var(--text);transition:background-color .15s ease}.index-row:first-child{border-top:0}.index-row:hover{background:var(--panel-2);color:var(--text)}.index-row .name{font:500 14px/1 var(--mono);color:var(--accent)}.index-row p{color:var(--muted);font-size:14.5px}.index-row:hover .project-arrow{color:var(--accent);transform:translate(4px)}.cv-frame{overflow:hidden}.cv-frame object{display:block;width:100%;height:min(1400px,100vh - 120px);border:0;background:var(--panel-2)}.cv-fallback{padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:18px;color:var(--muted);text-align:center}.contact-details{margin:8px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 32px;padding-top:24px;border-top:1px solid var(--line)}.contact-details dt{font:400 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}.contact-details dd{margin:0;font-size:15px;color:var(--text)}.contact-details dd a{color:var(--accent);font-family:var(--mono);font-size:14px}.not-found{padding-block:96px;display:flex;flex-direction:column;gap:24px;max-width:720px}.not-found .terminal-body{gap:2px}.not-found .btn{align-self:flex-start}.not-found p.muted{font-size:16px;line-height:1.6}@media(prefers-reduced-motion:no-preference){.hero-copy>*{animation:rise .48s ease both}.hero-copy>:nth-child(2){animation-delay:.08s}.hero-copy>:nth-child(3){animation-delay:.16s}.hero-copy>:nth-child(4){animation-delay:.24s}.terminal{animation:rise .6s ease .2s both}.cursor{animation:blink 1s steps(1) infinite}.status-dot{animation:status-glow 2s ease-in-out infinite}.status-dot:after{animation:status-ping 2s ease-out infinite}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}@keyframes status-glow{0%,to{box-shadow:0 0 6px var(--accent)}50%{box-shadow:0 0 14px var(--accent),0 0 24px var(--accent-glow)}}@keyframes status-ping{0%{transform:scale(.7);opacity:.9}80%,to{transform:scale(2.8);opacity:0}}@media(max-width:1024px){.hero{grid-template-columns:1fr;gap:40px;padding-block:56px 64px}.experience{grid-template-columns:1fr;gap:32px}.project-row{grid-template-columns:48px minmax(0,1fr) 40px;row-gap:12px}.project-row .tag-row{grid-column:2}.case-section{grid-template-columns:1fr;gap:16px}.capabilities{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.section{padding-block:64px}.desktop-nav{display:none}.menu-button{display:inline-flex}.mobile-nav{display:block}.hero-copy h1{font-size:clamp(2rem,9vw,2.6rem)}.project-row{grid-template-columns:minmax(0,1fr) 24px;padding:20px 18px;gap:10px 12px}.project-index{display:none}.project-title{grid-column:1;grid-row:1}.project-arrow{grid-column:2;grid-row:1}.project-row .tag-row{grid-column:1/-1;grid-row:2}.terminal-line{white-space:pre-wrap}.system-diagram{overflow-x:auto}.system-diagram svg{min-width:640px}.role{grid-template-columns:1fr;gap:6px}.capabilities,.decision-grid,.case-pagination,.contact-details{grid-template-columns:1fr}.index-row{grid-template-columns:minmax(0,1fr) 24px;padding:18px;gap:6px 12px}.index-row .name,.index-row p{grid-column:1}.index-row .project-arrow{grid-column:2;grid-row:1/span 2}.cv-frame object{height:70vh}.case-pagination a:last-child{text-align:left}.case-meta{grid-template-columns:1fr;gap:16px}.section-head{flex-direction:column;align-items:flex-start}.section-head.padded{padding-inline:0}.terminal-body{font-size:12.5px;padding:16px}}@media(max-width:360px){.label-extra{display:none}}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@property --tw-backdrop-blur{syntax: "*"; inherits: false;}@property --tw-backdrop-brightness{syntax: "*"; inherits: false;}@property --tw-backdrop-contrast{syntax: "*"; inherits: false;}@property --tw-backdrop-grayscale{syntax: "*"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: "*"; inherits: false;}@property --tw-backdrop-invert{syntax: "*"; inherits: false;}@property --tw-backdrop-opacity{syntax: "*"; inherits: false;}@property --tw-backdrop-saturate{syntax: "*"; inherits: false;}@property --tw-backdrop-sepia{syntax: "*"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-border-style: solid;--tw-outline-style: solid;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial}}}
