@font-face{font-family:__Archivo_7347c0;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/8a053b136321ec99-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:__Archivo_7347c0;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/2a8fe189f1a8dd0c-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Archivo_7347c0;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/c214ffb7f5362987-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:__Archivo_Fallback_7347c0;src:local("Arial");ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.00%;size-adjust:98.70%}.__className_7347c0{font-family:__Archivo_7347c0,__Archivo_Fallback_7347c0;font-style:normal}.__variable_7347c0{--font-grotesk:"__Archivo_7347c0","__Archivo_Fallback_7347c0"}@font-face{font-family:__Instrument_Sans_3f4a4b;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/adb45196eddef626-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Instrument_Sans_3f4a4b;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d0ba92e140f0dc-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:__Instrument_Sans_Fallback_3f4a4b;src:local("Arial");ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.00%;size-adjust:102.74%}.__className_3f4a4b{font-family:__Instrument_Sans_3f4a4b,__Instrument_Sans_Fallback_3f4a4b;font-style:normal}.__variable_3f4a4b{--font-body:"__Instrument_Sans_3f4a4b","__Instrument_Sans_Fallback_3f4a4b"}@font-face{font-family:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-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:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-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:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-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:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_4dc837;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-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:__JetBrains_Mono_Fallback_4dc837;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_4dc837{font-family:__JetBrains_Mono_4dc837,__JetBrains_Mono_Fallback_4dc837;font-style:normal}.__variable_4dc837{--font-code:"__JetBrains_Mono_4dc837","__JetBrains_Mono_Fallback_4dc837"}

/*
! tailwindcss v3.4.7 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:var(--font-body),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-code),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-feature-settings:normal;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}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}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}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--paper:236 232 222;--paper-raised:228 223 211;--ink:20 20 17;--ink-body:52 51 46;--ink-soft:86 84 76;--rule:212 206 192;--code:246 243 236;--accent:255 106 43;--on-accent:20 20 17;--sheet:251 250 246;--frame:2px;--lift:7px;--frame-ink:var(--ink);--bloom:0.42;--grain:0.16;--grain-blend:multiply;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--paper:19 19 16;--paper-raised:31 31 27;--ink:236 232 222;--ink-body:206 202 190;--ink-soft:158 154 143;--rule:50 50 44;--code:12 12 10;--bloom:0.2;--frame-ink:19 19 16;--grain:0.35;--grain-blend:soft-light}}*{border-color:rgb(var(--rule))}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.static{position:static}.absolute{position:absolute}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.z-10{z-index:10}.z-\[3\]{z-index:3}.mx-auto{margin-left:auto;margin-right:auto}.-ml-3{margin-left:-.75rem}.mb-10{margin-bottom:2.5rem}.mb-6{margin-bottom:1.5rem}.mt-10{margin-top:2.5rem}.mt-16{margin-top:4rem}.mt-20{margin-top:5rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-14{height:3.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.min-h-screen{min-height:100vh}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-full{width:100%}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[46rem\]{max-width:46rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.scroll-mt-6{scroll-margin-top:1.5rem}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-px{gap:1px}.gap-x-10{column-gap:2.5rem}.gap-x-3{column-gap:.75rem}.gap-x-6{column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-ink{--tw-border-opacity:1;border-color:rgb(var(--ink)/var(--tw-border-opacity))}.border-ink\/20{border-color:rgb(var(--ink)/.2)}.border-rule{--tw-border-opacity:1;border-color:rgb(var(--rule)/var(--tw-border-opacity))}.bg-ink{--tw-bg-opacity:1;background-color:rgb(var(--ink)/var(--tw-bg-opacity))}.bg-paper{--tw-bg-opacity:1;background-color:rgb(var(--paper)/var(--tw-bg-opacity))}.bg-paper\/80{background-color:rgb(var(--paper)/.8)}.bg-rule{--tw-bg-opacity:1;background-color:rgb(var(--rule)/var(--tw-bg-opacity))}.p-2\.5{padding:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-5{padding-bottom:1.25rem}.pb-8{padding-bottom:2rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-14{padding-top:3.5rem}.pt-24{padding-top:6rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.font-display{font-family:var(--font-grotesk),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.font-mono{font-family:var(--font-code),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.font-sans{font-family:var(--font-body),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.leading-\[1\.02\]{line-height:1.02}.leading-relaxed{line-height:1.625}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-tight{letter-spacing:-.025em}.text-accent{--tw-text-opacity:1;color:rgb(var(--accent)/var(--tw-text-opacity))}.text-ink{--tw-text-opacity:1;color:rgb(var(--ink)/var(--tw-text-opacity))}.text-ink-soft{--tw-text-opacity:1;color:rgb(var(--ink-soft)/var(--tw-text-opacity))}.text-paper{--tw-text-opacity:1;color:rgb(var(--paper)/var(--tw-text-opacity))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.blur{--tw-blur:blur(8px);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-blur{--tw-backdrop-blur:blur(8px);-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-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[font-stretch\:82\%\]{font-stretch:82%}.island{--paper:19 19 16;--paper-raised:31 31 27;--ink:236 232 222;--ink-soft:158 154 143;background:rgb(var(--paper-raised));color:rgb(var(--ink))}.cv-card,.cv-sheet{--paper:236 232 222;--ink:20 20 17;--ink-soft:86 84 76}.stagger{animation:rise .9s cubic-bezier(.2,.7,.1,1) both;animation-delay:calc(var(--i, 0) * 90ms + 60ms)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.stagger{animation:none}}.paper{position:relative;isolation:isolate;min-height:100vh;overflow-x:clip;background:radial-gradient(48rem 34rem at calc(100% - 4rem) 2rem,rgb(var(--accent)/var(--bloom)),transparent 62%),radial-gradient(40rem 30rem at -3rem 32rem,rgb(var(--ink)/.07),transparent 70%),rgb(var(--paper));color:rgb(var(--ink));font-family:var(--font-body),ui-sans-serif,sans-serif}.paper:before{position:absolute;inset:0 0 auto 0;height:min(140vh,100%);background-image:linear-gradient(90deg,rgb(var(--ink)/.06) 1px,transparent 1px);background-size:calc(100% / 6) 100%;mask-image:linear-gradient(180deg,#000 20%,transparent 90%)}.paper:after,.paper:before{content:"";z-index:-1;pointer-events:none}.paper:after{position:fixed;inset:0;opacity:var(--grain);mix-blend-mode:var(--grain-blend);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.paper ::selection{background:rgb(var(--accent));color:rgb(var(--on-accent))}.paper *{border-color:rgb(var(--ink)/.14)}.home-navlink{display:inline-flex;align-items:center;border-radius:999px;padding:.45rem .9rem;font-weight:500;transition:background-color .2s ease,color .2s ease}.home-navlink:hover{background:rgb(var(--ink)/.07)}.home-navlink--cv{background:rgb(var(--ink));color:rgb(var(--paper))}.home-navlink--cv:hover{background:rgb(var(--accent));color:rgb(var(--on-accent))}.home-title{display:flex;flex-direction:column;align-items:flex-start;font-family:var(--font-grotesk);font-stretch:78%;font-size:clamp(2.1rem,4.8vw,4.3rem);line-height:1;letter-spacing:-.03em}.home-title__lead{margin-bottom:.9rem;font-weight:600;font-size:clamp(1.15rem,1.8vw,1.5rem);letter-spacing:-.01em;color:rgb(var(--ink-soft))}.lt-stack{--shift:0.5em;display:inline-grid;max-width:100%;padding-right:calc(var(--shift) * 2)}.lt-block{position:relative;left:calc(var(--shift) * var(--step, 0));display:flex;flex-direction:column;align-items:center;gap:.4rem;border:var(--frame) solid rgb(var(--frame-ink));border-radius:.2em;padding:.16em .4em .3em;text-align:center;box-shadow:var(--lift) var(--lift) 0 0 rgb(var(--accent)),var(--lift) var(--lift) 0 var(--frame) rgb(var(--frame-ink))}.lt-block+.lt-block{margin-top:calc(var(--frame) * -1)}.lt-block strong{font-weight:800;white-space:nowrap}@media (max-width:380px){.home-title{font-size:1.85rem}}.lt-block__tools{font-family:var(--font-code);font-stretch:100%;font-weight:400;font-size:.75rem;letter-spacing:0;opacity:.7}.lt-block--1{background:rgb(var(--accent));color:rgb(var(--on-accent))}.lt-block--2{background:rgb(var(--paper-raised))}.lt-block--3{background:rgb(var(--on-accent));color:rgb(var(--accent))}.home-link{color:rgb(var(--ink));font-weight:500;text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:rgb(var(--accent));text-underline-offset:4px;transition:background-color .2s ease}.home-link:hover{background:rgb(var(--accent));color:rgb(var(--on-accent))}.btn-primary{display:inline-flex;min-height:3.4rem;align-items:center;justify-content:space-between;gap:.85rem;border-radius:999px;background:rgb(var(--ink));padding:.45rem .45rem .45rem 1.4rem;font-weight:600;color:rgb(var(--paper));box-shadow:0 10px 24px -14px rgb(var(--ink)/.8);transition:transform .25s cubic-bezier(.2,.8,.1,1),box-shadow .25s ease}.btn-primary__icon{display:grid;place-items:center;height:2.5rem;width:2.5rem;border-radius:999px;background:rgb(var(--accent));color:rgb(var(--on-accent));transition:transform .35s cubic-bezier(.2,.8,.1,1)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px -14px rgb(var(--ink)/.85)}.btn-primary:hover .btn-primary__icon{transform:rotate(-12deg) scale(1.08)}.btn-primary--sm{gap:.6rem;padding:.3rem .3rem .3rem 1rem;font-size:.875rem}.btn-primary--sm .btn-primary__icon{height:2rem;width:2rem}.btn-primary--sm:hover .btn-primary__icon{transform:translateY(2px)}.btn-primary--accent{background:rgb(var(--accent));color:rgb(var(--on-accent));box-shadow:none}.btn-primary--accent .btn-primary__icon{background:rgb(var(--on-accent));color:rgb(var(--accent))}@media (prefers-color-scheme:dark){.lt-block--2{background:#2c2b26}.lt-block--3{background:#1e1d1a}}.btn-ghost{display:inline-flex;min-height:3.4rem;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;border:1.5px solid rgb(var(--ink))!important;padding:.8rem 1.4rem;font-weight:600;transition:background-color .2s ease,color .2s ease}.btn-ghost:hover{background:rgb(var(--ink));color:rgb(var(--paper))}.home-hero{display:grid;gap:3rem;grid-template-areas:"title" "media" "actions"}.home-hero__title{grid-area:title}.home-hero__media{grid-area:media}.home-hero__actions{grid-area:actions;display:grid;grid-template-columns:1fr auto;gap:.75rem;white-space:nowrap}@media (min-width:768px){.home-hero{grid-template-columns:1fr clamp(15rem,24vw,19rem);grid-template-areas:"title media" "actions media";column-gap:clamp(6rem,11vw,10rem);row-gap:2.5rem}.home-hero__actions{display:flex;align-self:end}}.home-hero-media{position:relative;width:min(56%,19rem);margin-left:auto;margin-bottom:1.5rem}@media (min-width:768px){.home-hero-media{width:100%}.home-hero-media .cv-card{right:calc(100% - 5.5rem)}}.home-portrait{transform:rotate(-2deg)}.home-portrait img{aspect-ratio:4/5;width:100%;border-radius:.5rem;object-fit:cover;box-shadow:0 18px 40px -22px rgb(var(--ink)/.7)}.cv-card{position:absolute;right:calc(100% - 3rem);bottom:-1.5rem;display:flex;width:12rem;flex-direction:column;gap:.7rem;border:var(--frame) solid rgb(var(--frame-ink));border-radius:6px;background:rgb(var(--sheet));padding:.9rem .9rem .8rem;color:rgb(var(--ink));box-shadow:var(--lift) var(--lift) 0 0 rgb(var(--accent)),var(--lift) var(--lift) 0 var(--frame) rgb(var(--frame-ink));transform:rotate(4deg);transition:transform .4s cubic-bezier(.2,.8,.1,1),box-shadow .4s cubic-bezier(.2,.8,.1,1)}.cv-card:hover{--lift:11px;transform:rotate(0deg) translate(-3px,-6px)}.cv-card:active{transform:translate(2px,2px)}.cv-card__head{display:flex;align-items:center;justify-content:space-between}.cv-card__tag{border-radius:3px;background:rgb(var(--ink));padding:.15rem .4rem;font-family:var(--font-grotesk);font-stretch:70%;font-weight:800;font-size:.8rem;line-height:1;color:rgb(var(--accent))}.cv-card__meta{font-family:var(--font-code);font-size:.625rem;color:rgb(var(--ink-soft))}.cv-card__name{white-space:nowrap;font-family:var(--font-grotesk);font-stretch:82%;font-weight:700;font-size:1rem;line-height:1.05;letter-spacing:-.01em}.cv-card__rows{display:flex;flex-direction:column;gap:.4rem;border-top:1px solid;padding-top:.6rem}.cv-card__row{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:.4rem;font-family:var(--font-code);font-size:.625rem;color:rgb(var(--ink-soft));white-space:nowrap}.cv-card__row i{border-bottom:1px dotted rgb(var(--ink)/.35);transform:translateY(-.2em)}.cv-card__fact{color:rgb(var(--ink))}.cv-card__cta{display:flex;align-items:center;justify-content:space-between;margin-top:.2rem;border-radius:999px;background:rgb(var(--ink));padding:.25rem .25rem .25rem .85rem;font-weight:600;font-size:.875rem;color:rgb(var(--sheet))}.cv-card__arrow{display:grid;place-items:center;height:1.75rem;width:1.75rem;border-radius:999px;background:rgb(var(--accent));color:rgb(var(--on-accent));transition:transform .35s cubic-bezier(.2,.8,.1,1)}.cv-card:hover .cv-card__arrow{transform:rotate(45deg)}@media (max-width:380px){.cv-card{width:11rem}.cv-card__name{font-size:.875rem}.cv-card__row{gap:.3rem;letter-spacing:-.03em}}.home-marquee{overflow:hidden}.home-marquee__track{display:flex;width:max-content;animation:marquee 64s linear infinite}.home-marquee__set{display:flex}.home-marquee__set span{display:inline-flex;align-items:center;gap:2.5rem;padding:1rem 0 1rem 2.5rem;font-family:var(--font-grotesk);font-stretch:70%;font-weight:700;font-size:clamp(1.75rem,4vw,3rem);line-height:1;text-transform:uppercase;white-space:nowrap}.home-marquee__set i{font-style:normal;color:rgb(var(--accent))}@keyframes marquee{to{transform:translateX(-50%)}}.home-heading{font-family:var(--font-grotesk);font-stretch:70%;font-weight:800;font-size:clamp(2.6rem,7vw,5.25rem);line-height:.9;letter-spacing:-.025em;text-transform:uppercase}.home-work{display:grid;grid-template-columns:3rem 1fr;align-items:center;gap:.9rem 1.1rem;border-bottom:1px solid;padding:1.6rem 0}.home-work__logo{width:3rem;height:3rem;border-radius:999px;box-shadow:0 0 0 1.5px rgb(var(--ink));object-fit:cover}.home-work__name{font-family:var(--font-grotesk);font-stretch:75%;font-weight:700;font-size:clamp(2rem,4vw,2.75rem);line-height:1;letter-spacing:-.02em}.home-work__role{display:block;margin-top:.45rem;font-size:.9375rem;font-weight:500}.home-work__products,.home-work__years{font-family:var(--font-code);font-size:.75rem;color:rgb(var(--ink-soft))}.home-work__products{display:block;margin-top:.3rem}.home-work__summary,.home-work__years{grid-column:1/-1}.home-work__summary{line-height:1.6;color:rgb(var(--ink-soft))}@media (min-width:768px){.home-work{grid-template-columns:3.5rem 14rem 1fr auto;column-gap:1.75rem}.home-work__logo{width:3.5rem;height:3.5rem}.home-work__summary,.home-work__years{grid-column:auto}.home-work__years{text-align:right}}.home-article{position:relative;display:grid;grid-template-columns:1fr auto;gap:.5rem 1.5rem;border-bottom:1px solid;padding:1.5rem 0;transition:padding .3s cubic-bezier(.2,.8,.1,1)}.home-article:before{content:"";position:absolute;inset:0 -1rem;z-index:-1;border-radius:.75rem;background:rgb(var(--accent));transform:scaleY(.6);opacity:0;transition:transform .3s cubic-bezier(.2,.8,.1,1),opacity .2s ease}.home-article:hover{--ink:var(--on-accent);--ink-soft:66 70 40;color:rgb(var(--ink))}.home-article:hover:before{transform:none;opacity:1}.home-article__date{grid-column:1/-1;font-family:var(--font-code);font-size:.75rem;color:rgb(var(--ink-soft))}.home-article__body{display:flex;flex-direction:column;gap:.4rem}.home-article__title{font-family:var(--font-grotesk);font-stretch:85%;font-weight:600;font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.15;letter-spacing:-.015em}.home-article__desc{max-width:40rem;font-size:.9375rem;line-height:1.55;color:rgb(var(--ink-soft));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-article__tags{display:none}.home-article__arrow{display:grid;place-items:center;align-self:center;height:2.75rem;width:2.75rem;border-radius:999px;border:1.5px solid rgb(var(--ink))!important;transition:background-color .2s ease,color .2s ease,transform .3s ease}.home-article:hover .home-article__arrow{background:rgb(var(--ink));color:rgb(var(--accent));transform:rotate(45deg)}@media (min-width:768px){.home-article{grid-template-columns:6.5rem 1fr 12rem auto;align-items:baseline}.home-article__date{grid-column:auto}.home-article__tags{display:flex;flex-wrap:wrap;gap:.35rem;font-family:var(--font-code);font-size:.6875rem;color:rgb(var(--ink-soft))}.home-article__tags span{border:1px solid;border-radius:999px;padding:.1rem .55rem}}.home-cta{background:radial-gradient(40rem 26rem at 100% 0,rgb(var(--accent)/.16),transparent 65%),rgb(var(--paper-raised))}.home-cta__title{margin-top:1rem;font-family:var(--font-grotesk);font-stretch:70%;font-weight:800;font-size:clamp(1.75rem,8.2vw,6.5rem);line-height:.9;letter-spacing:-.03em;text-transform:uppercase}@media (prefers-reduced-motion:reduce){.home-marquee__track{animation:none}}.reader{color:rgb(var(--ink-body))}.reader.paper:before{display:none}.reader-bar{position:sticky;top:0;z-index:20;background:rgb(var(--paper)/.8);backdrop-filter:blur(12px);border-bottom:1px solid rgb(var(--rule)/.7)}.reader-progress{position:absolute;inset:auto 0 -1px 0;height:3px;background:rgb(var(--accent));transform-origin:0 50%}.reader-tag{border:1px solid rgb(var(--rule));border-radius:999px;padding:.15rem .65rem}.reader-pager,.reader-tag{font-family:var(--font-code);font-size:11px;color:rgb(var(--ink-soft))}.reader-pager{display:flex;min-height:7.5rem;flex-direction:column;gap:.75rem;background:rgb(var(--paper));padding:1.5rem 1.75rem;text-transform:uppercase;letter-spacing:.14em;transition:background-color .2s ease}a.reader-pager:hover{background:rgb(var(--paper-raised))}.reader-pager strong{font-family:var(--font-grotesk);font-stretch:85%;font-size:1.375rem;font-weight:700;line-height:1.25;letter-spacing:normal;text-transform:none;color:rgb(var(--ink))}.reader-prose{max-width:44rem;font-size:1.0625rem;line-height:1.8}.reader-prose>:first-child{margin-top:0}.reader-prose .table-wrap,.reader-prose blockquote,.reader-prose ol,.reader-prose p,.reader-prose ul{margin:1.35em 0}.reader-prose h2,.reader-prose h3,.reader-prose h4{position:relative;scroll-margin-top:5rem;font-family:var(--font-grotesk);font-stretch:85%;font-weight:700;letter-spacing:-.02em;color:rgb(var(--ink))}.reader-prose h2{margin:2.6em 0 .8em;font-size:1.95rem;line-height:1.2}.reader-prose h3{margin:2em 0 .6em;font-size:1.4rem;line-height:1.3}.reader-prose h4{margin:1.8em 0 .5em;font-size:1.15rem}.reader-prose .anchor{position:absolute;left:-1.1em;padding-right:.3em;color:rgb(var(--ink-soft));opacity:0;text-decoration:none;transition:opacity .15s ease}.reader-prose :is(h2,h3,h4):hover .anchor{opacity:1}.reader-prose strong{font-weight:600;color:rgb(var(--ink))}.reader-prose a{color:rgb(var(--ink));text-decoration:underline;text-decoration-color:rgb(var(--accent));text-decoration-thickness:2px;text-underline-offset:3px;transition:background-color .15s ease,color .15s ease}.reader-prose a:hover{background:rgb(var(--accent));color:rgb(var(--on-accent))}.reader-prose ol,.reader-prose ul{padding-left:1.4em}.reader-prose ul{list-style:disc}.reader-prose ol{list-style:decimal}.reader-prose li{margin:.45em 0;padding-left:.25em}.reader-prose li::marker{color:rgb(var(--ink-soft))}.reader-prose li>ol,.reader-prose li>ul{margin:.4em 0}.reader-prose blockquote{border-left:3px solid rgb(var(--accent));padding-left:1.25em;font-family:var(--font-grotesk);font-stretch:90%;font-size:1.2em;font-weight:500;color:rgb(var(--ink))}.reader-prose hr{margin:3em 0;border:0;border-top:1px solid rgb(var(--rule))}.reader-prose :not(pre)>code{border:1px solid rgb(var(--rule));border-radius:5px;background:rgb(var(--paper-raised));padding:.1em .38em;font-family:var(--font-code);font-size:.84em;color:rgb(var(--ink));overflow-wrap:anywhere}.reader-prose img{border-radius:.75rem}.reader-prose .table-wrap{overflow-x:auto}.reader-prose table{width:100%;border-collapse:collapse;font-size:.92em}.reader-prose th{border-bottom:1px solid rgb(var(--rule));padding:.6em .8em;text-align:left;font-family:var(--font-code);font-size:.75em;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:rgb(var(--ink-soft))}.reader-prose td{border-bottom:1px solid rgb(var(--rule)/.6);padding:.6em .8em}.reader-prose figure.code{margin:1.75em 0;overflow:hidden;border:1px solid rgb(var(--rule));border-radius:.75rem;background:rgb(var(--code))}@media (min-width:1024px){.reader-prose figure.code{margin-inline:-1.5rem}}.reader-prose figure.code figcaption{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgb(var(--rule));padding:.45rem .6rem .45rem 1.1rem;font-family:var(--font-code);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:rgb(var(--ink-soft))}.reader-prose .copy-btn{border:1px solid rgb(var(--rule));border-radius:999px;padding:.2rem .7rem;font:inherit;color:rgb(var(--ink-soft));transition:color .15s ease,border-color .15s ease}.reader-prose .copy-btn:hover,.reader-prose .copy-btn[data-copied]{border-color:rgb(var(--accent));color:rgb(var(--ink))}.reader-prose pre.shiki{margin:0;overflow-x:auto;padding:1.1rem 1.25rem;background:transparent!important;font-family:var(--font-code);font-size:.8125rem;line-height:1.7;tab-size:2}.reader-prose pre.shiki span{color:var(--shiki-light)}@media (prefers-color-scheme:dark){.reader-prose pre.shiki span{color:var(--shiki-dark)}}.cv-stage{perspective:1600px}.cv-sheet{position:relative;overflow:hidden;aspect-ratio:210/297;width:min(100%,(100vh - 8.5rem - 12px) * 210/297);width:min(100%,(100svh - 8.5rem - 12px) * 210/297);margin-inline:auto;border-radius:4px;background:#fff;box-shadow:0 0 0 1.5px rgb(var(--ink)),12px 12px 0 0 rgb(var(--accent)),12px 12px 0 1.5px rgb(var(--ink)),0 40px 60px -30px rgb(var(--ink)/.45);transform-origin:50% 0;animation:cv-lift 1.1s cubic-bezier(.2,.8,.1,1) .18s both}@keyframes cv-lift{0%{opacity:0;transform:translateY(48px) rotateX(14deg) scale(.96)}to{opacity:1;transform:none}}.cv-skeleton{position:absolute;inset:0;background:linear-gradient(rgb(var(--ink)/.1),rgb(var(--ink)/.1)) 50% 5.5% /34% 1.6% no-repeat,linear-gradient(rgb(var(--ink)/.06),rgb(var(--ink)/.06)) 50% 9% /52% 1% no-repeat,repeating-linear-gradient(to bottom,rgb(var(--ink)/.06) 0 .9%,transparent .9% 2.6%) 50% 85% /86% 78% no-repeat;animation:cv-pulse 1.6s ease-in-out infinite}@keyframes cv-pulse{50%{opacity:.45}}.cv-page{position:relative;z-index:1;clip-path:inset(0 0 100% 0)}.cv-scan{position:absolute;z-index:2;inset:0 0 auto 0;height:2px;opacity:0;background:rgb(var(--ink));box-shadow:0 0 0 2px rgb(var(--accent)),0 -40px 60px -10px rgb(var(--accent)/.45);pointer-events:none}.cv-sheet.is-ready .cv-skeleton{animation:none}.cv-sheet.is-failed .cv-skeleton{animation:none;opacity:.35}.cv-sheet.is-ready .cv-page{animation:cv-reveal 1s cubic-bezier(.65,0,.35,1) forwards}.cv-sheet.is-ready .cv-scan{animation:cv-scan 1s cubic-bezier(.65,0,.35,1) forwards}@keyframes cv-reveal{to{clip-path:inset(0 0 0 0)}}@keyframes cv-scan{0%{top:0;opacity:1}85%{opacity:1}to{top:100%;opacity:0}}@media (prefers-reduced-motion:reduce){.cv-sheet,.cv-sheet.is-ready .cv-scan,.cv-skeleton{animation:none}.cv-page,.cv-sheet.is-ready .cv-page{clip-path:none;animation:none}}.hover\:bg-ink\/10:hover{background-color:rgb(var(--ink)/.1)}.hover\:text-accent:hover{--tw-text-opacity:1;color:rgb(var(--accent)/var(--tw-text-opacity))}.group:hover .group-hover\:-translate-x-0\.5{--tw-translate-x:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:640px){.sm\:inline-flex{display:inline-flex}.sm\:gap-2{gap:.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:768px){.md\:mb-12{margin-bottom:3rem}.md\:mt-24{margin-top:6rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:items-end{align-items:flex-end}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:py-28{padding-top:7rem;padding-bottom:7rem}.md\:pb-16{padding-bottom:4rem}.md\:pb-28{padding-bottom:7rem}.md\:pb-32{padding-bottom:8rem}.md\:pt-20{padding-top:5rem}.md\:pt-32{padding-top:8rem}.md\:text-right{text-align:right}.md\:text-\[3\.25rem\]{font-size:3.25rem}}