@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-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking: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}}}@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;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:#6366f1;--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--blur-md:12px;--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);--color-vibe-dark:#0a0a0b;--color-vibe-text:#f1f5f9}}@layer base{*,:after,:before,::backdrop{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}html,:host{-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,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{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}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-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{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{background:var(--ink);color:var(--bone);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}[id]{scroll-margin-top:calc(var(--header-h) + 3.5rem)}h1,h2,h3,h4{text-wrap:balance;font-weight:800}p{text-wrap:pretty}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent-deep);color:#fff}}@layer components;@layer utilities{.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.z-10{z-index:10}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing) * 1)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-md{max-width:var(--container-md)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse)))}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-vibe-dark{background-color:var(--color-vibe-dark)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.p-2{padding:calc(var(--spacing) * 2)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-pre-wrap{white-space:pre-wrap}.text-indigo-300{color:var(--color-indigo-300)}.text-red-400{color:var(--color-red-400)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-vibe-text{color:var(--color-vibe-text)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:border-white\/30:hover{border-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.hover\:border-white\/30:hover{border-color:color-mix(in oklab,var(--color-white) 30%,transparent)}}.hover\:bg-indigo-400:hover{background-color:var(--color-indigo-400)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}}.focus\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:48rem){.md\:p-12{padding:calc(var(--spacing) * 12)}}@media print{.print\:hidden{display:none}}.glass-card{border-style:var(--tw-border-style);border-width:1px;border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.glass-card{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.glass-card{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.glass-card{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.glass-card{--tw-backdrop-blur:blur(var(--blur-md));-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,);border-radius:14px}}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/plus-jakarta-sans-latin.woff2)format("woff2");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;src:url(/fonts/cormorant-garamond-italic-latin.woff2)format("woff2");font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#0a0a0c;--ink-raised:#0f0f13;--ink-sunken:#070709;--bone:#edebe6;--bone-dim:#b3b4bc;--accent:#a9b4ff;--accent-deep:#6366f1;--accent-wash:#7c82ff24;--rule:#edebe621;--rule-strong:#edebe642;--danger:#fca5a5;--font-sans:"Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--page-x:clamp(1.25rem, 5vw, 6rem);--rail-w:clamp(0rem, 8vw, 7rem);--header-h:4.25rem;--ease:cubic-bezier(.22, 1, .36, 1);font-family:var(--font-sans);color-scheme:dark}body:after{content:"";z-index:9999;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.serif-italic{font-family:Cormorant Garamond,serif;font-style:italic}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dot{background:var(--accent);vertical-align:.05em;border-radius:50%;width:.4rem;height:.4rem;margin-right:.55rem;display:inline-block}@keyframes rise-in{0%{transform:translateY(28px)}to{transform:none}}@keyframes title-in{0%{letter-spacing:-.052em;transform:translateY(18px)}to{transform:none}}@keyframes rule-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes hero-in{0%{clip-path:inset(0 0 110%);transform:translateY(.4em)}to{clip-path:inset(0 0 -30%);transform:none}}@keyframes hero-rise{0%{transform:translateY(.18em)}to{transform:none}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.rise{animation:linear both rise-in;animation-timeline:view();animation-range:entry entry 62%}.clip-up{animation:linear both title-in;animation-timeline:view();animation-range:entry 4% entry 58%}.section__title:after{animation:linear both rule-draw;animation-timeline:view();animation-range:entry 10% entry 70%}.section__rail:after{animation:linear both rule-draw;animation-timeline:view();animation-range:entry cover 24%}}.hero__in{animation:hero-in .72s var(--ease) both;animation-delay:calc(var(--i,0) * 70ms)}.hero__title .hero__in{animation-name:hero-rise;animation-duration:.6s}}.btn{--btn-bg:transparent;background:var(--btn-bg);white-space:nowrap;font:inherit;letter-spacing:-.01em;cursor:pointer;transition:background-color .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),transform .25s var(--ease);border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:.55rem;padding:.8rem 1.5rem;font-size:.92rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn--primary{--btn-bg:var(--bone);color:#0a0a0c}.btn--primary:hover{--btn-bg:#fff}.btn--primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn--ghost{border-color:var(--rule-strong);color:var(--bone)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.btn--link{color:var(--accent);font-family:var(--font-mono);padding-inline:.15rem;font-size:.85rem;font-weight:500}.link-underline,.section__lede a,.work-note a,.contact-form__error a,.work-projects__list a,.contact-list a,.btn--link{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px;padding-bottom:1px;text-decoration:none;position:relative}@media(prefers-reduced-motion:no-preference){.section__lede a,.work-projects__list a,.contact-list a,.btn--link{transition:background-size .35s var(--ease),color .25s var(--ease);background-size:0% 1px}.section__lede a:hover,.work-projects__list a:hover,.contact-list a:hover,.btn--link:hover{background-size:100% 1px}}.site-header{z-index:60;border-bottom:1px solid var(--rule);position:fixed;inset:0 0 auto}.site-header:before{content:"";z-index:-1;background:var(--ink);position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.site-header:before{background:color-mix(in oklab,var(--ink) 82%,transparent)}}.site-header:before{-webkit-backdrop-filter:blur(16px)saturate(140%);backdrop-filter:blur(16px)saturate(140%)}.site-header__bar{height:var(--header-h);padding-inline:var(--page-x);justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.site-header__brand{letter-spacing:-.02em;align-items:center;gap:.6rem;font-weight:800;text-decoration:none;display:inline-flex}.site-header__mark{background:var(--accent-deep);color:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;display:inline-flex}.site-header__links{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;gap:2rem;margin:0;padding:0;font-size:.8rem;font-weight:500;list-style:none;display:none}.site-header__links a{color:var(--bone-dim);transition:color .25s var(--ease);text-decoration:none}.site-header__links a:hover{color:var(--accent)}.site-header__toggle{border:1px solid var(--rule);width:2.6rem;height:2.6rem;color:var(--bone);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}@media(min-width:820px){.site-header__links{display:flex}.site-header__toggle{display:none}}.mobile-menu{z-index:100;background:var(--ink);padding:var(--page-x);flex-direction:column;justify-content:center;align-items:flex-start;gap:2.5rem;display:flex;position:fixed;inset:0}.mobile-menu__links{counter-reset:menu;flex-direction:column;gap:1.35rem;margin:0;padding:0;list-style:none;display:flex}.mobile-menu__links li{counter-increment:menu;align-items:baseline;gap:1rem;display:flex}.mobile-menu__links li:before{content:counter(menu,decimal-leading-zero);font-family:var(--font-mono);color:var(--accent);font-size:.75rem}.mobile-menu__links a{letter-spacing:-.035em;font-size:clamp(2rem,9vw,3rem);font-weight:800;text-decoration:none}.mobile-menu__close{border:1px solid var(--rule);color:var(--bone-dim);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.5rem;padding:.65rem 1.3rem;display:inline-flex}.hero{min-height:100svh;padding:calc(var(--header-h) + 4rem) var(--page-x) 4rem;border-bottom:1px solid var(--rule);align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero__bg{z-index:-1;position:absolute;inset:0}.hero__bg img{object-fit:cover;filter:grayscale()contrast(1.1);opacity:.22;width:100%;height:100%}.hero__scrim{background:radial-gradient(120% 90% at 82% 8%,var(--accent-wash),transparent 58%),linear-gradient(to top,var(--ink) 16%,var(--ink) 62%,transparent);position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.hero__scrim{background:radial-gradient(120% 90% at 82% 8%,var(--accent-wash),transparent 58%),linear-gradient(to top,var(--ink) 16%,color-mix(in oklab,var(--ink) 84%,transparent) 62%,transparent)}}.hero__inner{width:100%;max-width:78rem}.hero__eyebrow{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 1.75rem;font-size:.82rem}.hero__title{letter-spacing:-.055em;margin:0;font-size:clamp(3.2rem,15vw,11rem);line-height:.86}.clip-line{display:block}.hero__meta{border-top:1px solid var(--rule);gap:2rem;margin-top:2.5rem;padding-top:2rem;display:grid}@media(min-width:900px){.hero__meta{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:4rem}}.hero__lede{color:var(--bone-dim);max-width:34rem;margin:0;font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.55}.hero__facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:0;display:grid}.hero__facts dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bone-dim);font-size:.8rem}.hero__facts dd{font-variant-numeric:tabular-nums;text-wrap:nowrap;margin:.4rem 0 0;font-size:.98rem;font-weight:700}@media(max-width:560px){.hero__facts{grid-template-columns:1fr;gap:.9rem}.hero__facts>div{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:.6rem;display:flex}.hero__facts dd{margin:0}}.hero__actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:2.5rem;display:flex}@media(max-width:560px){.hero__actions{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.hero__actions>.btn--primary,.hero__actions>.btn--link{grid-column:1/-1}.hero__actions>.btn--link{justify-self:start;margin-top:.35rem}.hero__actions .btn{justify-content:center}}.section{grid-template-columns:var(--rail-w) minmax(0,1fr);padding:clamp(4rem,9vw,8rem) var(--page-x);border-bottom:1px solid var(--rule);display:grid}.section--alt{background:var(--ink-raised)}.section--cta{background:var(--ink-sunken)}.section__rail{position:relative}@media(min-width:900px){.section__rail{top:calc(var(--header-h) + 3rem);align-self:start;height:12rem;position:sticky}.section__rail:after{content:"";background:var(--accent);transform-origin:0;width:2.2rem;height:1px;position:absolute;top:2.6rem;left:0}}.section__index{font-family:var(--font-mono);letter-spacing:.1em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:.84rem;font-weight:700}@media(max-width:899px){.section{grid-template-columns:1fr;gap:.75rem}}.section__body{min-width:0}.section__head{max-width:46rem;margin-bottom:clamp(2.5rem,5vw,4rem)}.section__eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim);margin:0 0 .9rem;font-size:.78rem}.section__title{letter-spacing:-.04em;margin:0;padding-bottom:1.1rem;font-size:clamp(2rem,5.2vw,3.6rem);line-height:1.02;position:relative}.section__title:after{content:"";background:var(--accent);transform-origin:0;width:clamp(3rem,8vw,6rem);height:2px;position:absolute;bottom:0;left:0}.section__lede{color:var(--bone-dim);margin:1.35rem 0 0;font-size:1.05rem;line-height:1.65}.section__lede a{color:var(--accent)}.subhead{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:2.5rem 0 1.25rem;font-size:.78rem;font-weight:700}.subhead:first-child{margin-top:0}.work-list{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.work-card{border-bottom:1px solid var(--rule);transition:background-color .4s var(--ease);padding:clamp(1.75rem,3.5vw,2.75rem) 0}.work-card:hover{background:linear-gradient(90deg,var(--accent-wash),transparent 55%)}.work-card__head{align-items:baseline;gap:1.25rem;margin-bottom:1.75rem;display:flex}.work-card__n{font-family:var(--font-mono);color:var(--accent);font-variant-numeric:tabular-nums;flex:none;font-size:.82rem}.work-card__head h3{letter-spacing:-.025em;margin:0;font-size:clamp(1.25rem,2.4vw,1.75rem)}.work-card__period{font-family:var(--font-mono);color:var(--bone-dim);margin:.3rem 0 0;font-size:.82rem}.work-card__body{gap:1.5rem;margin:0;display:grid}@media(min-width:1000px){.work-card__body{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;padding-left:2.5rem}}.work-card__body dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--rule);padding-bottom:.6rem;font-size:.76rem}.work-card__body dd{color:var(--bone-dim);margin:.75rem 0 0;font-size:.93rem;line-height:1.6}.work-card__steps{margin:0;padding-left:1.05rem;list-style:none}.work-card__steps li{position:relative}.work-card__steps li:before{content:"";background:var(--accent);border-radius:1px;width:4px;height:4px;position:absolute;top:.62em;left:-1.05rem}.work-card__steps li+li{margin-top:.55rem}.work-note{border-left:2px solid var(--accent-deep);background:var(--accent-wash);color:var(--bone-dim);max-width:62rem;margin:2.5rem 0 0;padding:1.25rem 1.5rem;font-size:.95rem;line-height:1.65}.work-note p{margin:0}.work-note strong{color:var(--bone)}.work-projects{margin-top:clamp(3rem,6vw,5rem)}.work-projects__list{background:var(--rule);border:1px solid var(--rule);gap:1px;margin:0;padding:0;list-style:none;display:grid}@media(min-width:900px){.work-projects__list{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}}.work-projects__list li{background:var(--ink);transition:background-color .35s var(--ease);flex-direction:column;padding:1.75rem;display:flex}.section--alt .work-projects__list li,.work-projects__list li:hover{background:var(--ink-raised)}.work-projects__list h4{letter-spacing:-.015em;margin:0 0 .6rem;font-size:1.02rem}.work-projects__list>li>p{color:var(--bone-dim);margin:0;font-size:.9rem;line-height:1.6}.work-projects__list>li>p.tag-row{margin-top:1.1rem}.work-projects__list>li>.project-links{margin-top:auto;padding-top:1.1rem}.work-projects__list a{color:var(--accent);font-family:var(--font-mono);align-items:center;gap:.3rem;font-size:.84rem;display:inline-flex}.project-links{flex-wrap:wrap;gap:.4rem 1.1rem;margin-top:.9rem;display:flex}.tag-row{flex-wrap:wrap;gap:.35rem;margin:.9rem 0 0;display:flex}.tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--rule-strong);color:var(--bone-dim);border-radius:3px;padding:.22rem .55rem;font-size:.78rem}.experience-grid{gap:3rem;display:grid}@media(min-width:900px){.experience-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:5rem}}.timeline{margin:0 0 2rem;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--rule);gap:.15rem;padding:1.1rem 0;display:grid}.timeline li:first-child{border-top:1px solid var(--rule)}.timeline__role{letter-spacing:-.01em;margin:0;font-weight:700}.timeline__company{color:var(--bone-dim);margin:0;font-size:.93rem}.timeline__period{font-family:var(--font-mono);color:var(--accent);font-variant-numeric:tabular-nums;margin:.2rem 0 0;font-size:.8rem}.skill-list{margin:0;display:grid}.skill-list>div{border-bottom:1px solid var(--rule);padding:.9rem 0}.skill-list>div:first-child{border-top:1px solid var(--rule)}.skill-list dt{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:.76rem}.skill-list dd{margin:.4rem 0 0;font-size:.93rem;line-height:1.55}.contact-grid{gap:3rem;display:grid}@media(min-width:900px){.contact-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:5rem}}.contact-form{gap:1.5rem;display:grid}.contact-form .btn{justify-content:center;justify-self:start}.contact-form__row{gap:1.5rem;display:grid}@media(min-width:640px){.contact-form__row{grid-template-columns:1fr 1fr}}.contact-form__honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.field label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bone-dim);margin-bottom:.5rem;font-size:.76rem;display:block}.field input,.field textarea{box-sizing:border-box;border:0;border-bottom:1px solid var(--rule-strong);width:100%;color:var(--bone);font:inherit;transition:border-color .25s var(--ease);background:0 0;border-radius:0;padding:.7rem 0;font-size:1rem}.field textarea{resize:vertical}.field input:focus,.field textarea:focus{border-bottom-color:var(--accent);outline:none}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.contact-form__status{min-height:1.2rem;color:var(--accent);margin:0;font-size:.93rem}.contact-form__error{color:var(--danger);margin:0;font-size:.93rem;line-height:1.55}.contact-form__error a{color:var(--danger)}.contact-list{margin:0;padding:0;list-style:none}.contact-list li{border-bottom:1px solid var(--rule);color:var(--bone-dim);align-items:center;gap:.8rem;padding:.85rem 0;display:flex}.contact-list li:first-child{border-top:1px solid var(--rule)}.contact-list a{color:var(--bone);font-family:var(--font-mono);font-size:.85rem}.site-footer{padding:clamp(3rem,6vw,5rem) var(--page-x);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;display:flex}.site-footer__note{color:var(--bone-dim);max-width:30rem;margin:0;line-height:1.6}.site-footer__note .serif-italic{color:var(--accent);font-size:1.3rem}.site-footer__links{gap:.6rem;display:flex}.site-footer__links a{border:1px solid var(--rule);width:2.6rem;height:2.6rem;color:var(--bone-dim);transition:color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.site-footer__links a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.site-footer__copy{color:var(--bone-dim);font-family:var(--font-mono);margin:0;font-size:.8rem}.resume-page{padding:calc(var(--header-h) + 4rem) var(--page-x) 6rem;max-width:76rem;margin-inline:auto}.resume-header{border-bottom:1px solid var(--rule);gap:2.5rem;padding-bottom:2.5rem;display:grid}@media(min-width:900px){.resume-header{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:end}}.resume-header__name{letter-spacing:-.05em;margin:0;font-size:clamp(2.5rem,8vw,5rem);line-height:.92}.resume-header__role{font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);margin:1rem 0 0;font-size:.86rem}.resume-header__summary{color:var(--bone-dim);max-width:40rem;margin:1rem 0 0;line-height:1.6}.resume-header__contacts{margin:0;padding:0;list-style:none}.resume-header__contacts li{border-bottom:1px solid var(--rule);color:var(--bone-dim);font-family:var(--font-mono);align-items:center;gap:.7rem;padding:.55rem 0;font-size:.84rem;display:flex}.resume-header__contacts li:first-child{border-top:1px solid var(--rule)}.resume-header__contacts a{color:var(--bone)}.resume-actions{flex-wrap:wrap;gap:.75rem;margin:2.5rem 0 3.5rem;display:flex}.resume-grid{gap:3.5rem;display:grid}@media(min-width:900px){.resume-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:5rem}}.resume-grid__main,.resume-grid__side{align-content:start;gap:3.5rem;display:grid}.resume-section-title{border-bottom:1px solid var(--rule-strong);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 1.75rem;padding-bottom:.7rem;font-size:.78rem;font-weight:700}.resume-jobs,.resume-projects{margin:0;padding:0;list-style:none}.resume-job{border-bottom:1px solid var(--rule);margin-bottom:2rem;padding:0 0 2rem}.resume-jobs li:last-child,.resume-projects li:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.resume-job__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.resume-job__head h3{letter-spacing:-.025em;margin:0;font-size:1.22rem}.resume-job__period{font-family:var(--font-mono);color:var(--accent);font-variant-numeric:tabular-nums;margin:0;font-size:.8rem}.resume-job__company{color:var(--bone-dim);margin:.35rem 0 1rem;font-size:.95rem;font-weight:600}.resume-job__note{color:var(--bone-dim);margin:-.6rem 0 .9rem;font-size:.88rem;font-style:italic}.resume-job__bullets{color:var(--bone-dim);margin:0;padding-left:1.05rem;font-size:.94rem;line-height:1.6;list-style:none}.resume-job__bullets li{position:relative}.resume-job__bullets li:before{content:"";background:var(--accent);border-radius:1px;width:4px;height:4px;position:absolute;top:.62em;left:-1.05rem}.resume-job__bullets li+li{margin-top:.4rem}.resume-projects li{border-bottom:1px solid var(--rule);margin-bottom:1.75rem;padding-bottom:1.75rem}.resume-projects li h3{margin:0 0 .45rem;font-size:1.05rem}.resume-projects li p{color:var(--bone-dim);margin:0;font-size:.94rem;line-height:1.6}.resume-projects li a{color:var(--accent);font-family:var(--font-mono);font-size:.84rem}.resume-education{margin:0;padding:0;list-style:none}.resume-education h3{margin:0;font-size:1rem}.resume-education__level{color:var(--bone-dim);margin:.2rem 0 0;font-size:.88rem}.resume-education__note{color:var(--bone-dim);margin:.35rem 0 0;font-size:.86rem;line-height:1.55}.notfound{min-height:72vh;padding:calc(var(--header-h) + 6rem) var(--page-x) 5rem;max-width:46rem}.notfound__code{font-family:var(--font-mono);letter-spacing:.35em;color:var(--accent);margin:0;font-size:.8rem}.notfound__title{letter-spacing:-.045em;margin:1rem 0 0;font-size:clamp(2.2rem,7vw,4rem);line-height:1}.notfound__text{color:var(--bone-dim);margin:1.25rem 0 0;line-height:1.65}body.hunting,body.hunting a,body.hunting button,body.hunting input,body.hunting textarea{cursor:none}.pointer-bugs{z-index:9990;pointer-events:none;width:100%;color:var(--accent);position:absolute;top:0;left:0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.bug{filter:drop-shadow(0 0 2px #0a0a0cd9)drop-shadow(0 0 14px #7c82ff80);animation:bug-settle .5s var(--ease) both,bug-drift var(--drift-dur,9s) ease-in-out infinite alternate;animation-delay:var(--settle-delay,0s),var(--drift-delay,0s);display:block;position:absolute;translate:-50% -50%}.bug svg{display:block}@keyframes bug-settle{0%{filter:blur(3px)drop-shadow(0 0 #0000);scale:.7}to{scale:1}}@keyframes bug-drift{0%{rotate:calc(var(--tilt,0deg) * -1);translate:-54% -46%}to{rotate:var(--tilt,0deg);translate:-46% -54%}}.bug__legs{transform-origin:20px 20px;animation:2.4s steps(2,end) infinite bug-twitch}@keyframes bug-twitch{0%,82%{transform:none}88%{transform:rotate(2.5deg)}94%{transform:rotate(-2.5deg)}}.bug--target{color:#edebe6;filter:drop-shadow(0 0 3px #0a0a0ce6)drop-shadow(0 0 20px #a9b4ffd9);transition:scale .18s var(--ease);scale:1.14}.bug--caught{animation:bug-logged .55s var(--ease) forwards}@keyframes bug-logged{0%{opacity:1;scale:1.12}35%{opacity:1;scale:.45}to{opacity:0;translate:-50% -140%;scale:.2}}.bug--caught:after{content:var(--tag,"LOGGED");font-family:var(--font-mono);letter-spacing:.1em;white-space:nowrap;color:var(--accent);animation:tag-rise .65s var(--ease) forwards;font-size:.6rem;position:absolute;top:-.4rem;left:50%;translate:-50%}@keyframes tag-rise{0%{opacity:0;translate:-50% .4rem}40%{opacity:1}to{opacity:0;translate:-50% -1.6rem}}.pointer-lens{z-index:10001;pointer-events:none;will-change:transform;width:0;height:0;position:fixed;top:0;left:0}.pointer-lens__ring{width:184px;height:184px;transition:border-color .2s var(--ease),scale .2s var(--ease);background:radial-gradient(circle at 34% 30%,#ffffff12,#0000 58%);border:1px solid #edebe68c;border-radius:50%;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:inset 0 0 40px #7c82ff1f,0 0 0 1px #0a0a0c73,0 18px 50px #00000073}.pointer-lens__grip{transform-origin:0;background:#edebe68c;border-radius:4px;width:46px;height:7px;position:absolute;top:50%;left:50%;translate:60px 60px;rotate:45deg}.pointer-lens--armed .pointer-lens__ring{border-color:#fff;scale:1.04}.bughunt-toggle{z-index:10002;border:1px solid var(--rule-strong);background:var(--ink);border-radius:999px;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;padding:0;display:inline-flex;position:fixed;bottom:clamp(.75rem,2vw,1.25rem);right:clamp(.75rem,2vw,1.25rem)}@supports (color:color-mix(in lab,red,red)){.bughunt-toggle{background:color-mix(in oklab,var(--ink) 78%,transparent)}}.bughunt-toggle{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--bone-dim);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color .25s var(--ease),border-color .25s var(--ease);font-size:.78rem}.bughunt-toggle__label{pointer-events:none;white-space:nowrap;border:1px solid var(--rule);background:var(--ink);border-radius:999px;padding:.35rem .7rem;position:absolute;top:50%;right:calc(100% + .5rem);translate:0 -50%}@supports (color:color-mix(in lab,red,red)){.bughunt-toggle__label{background:color-mix(in oklab,var(--ink) 90%,transparent)}}.bughunt-toggle__label{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .2s var(--ease),transform .2s var(--ease);transform:translate(6px)}.bughunt-toggle:hover .bughunt-toggle__label,.bughunt-toggle:focus-visible .bughunt-toggle__label{opacity:1;transform:none}.bughunt-toggle:hover,.bughunt-toggle:focus-visible,.bughunt-toggle[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}body.hunting .bughunt-toggle{cursor:none}@media(max-width:600px){.bughunt-toggle,.bughunt-hud{display:none}}.bughunt-hud{z-index:10002;border:1px solid var(--rule);background:var(--ink);border-radius:10px;align-items:baseline;gap:.75rem;padding:.7rem 1.1rem;display:flex;position:fixed;bottom:clamp(1rem,3vw,2rem);left:clamp(1rem,3vw,2rem)}@supports (color:color-mix(in lab,red,red)){.bughunt-hud{background:color-mix(in oklab,var(--ink) 82%,transparent)}}.bughunt-hud{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-family:var(--font-mono)}.bughunt-hud__count{color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:700}.bughunt-hud__of{color:var(--bone-dim);font-size:.85rem}.bughunt-hud__label{letter-spacing:.08em;text-transform:uppercase;color:var(--bone-dim);font-size:.78rem}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media print{:root{--bone:#111;--bone-dim:#333;--accent:#3730a3;--rule:#d4d4d8;--rule-strong:#a1a1aa}body{color:#111!important;background:#fff!important}body:after,.site-header,.bughunt-toggle,.bughunt-hud,.resume-actions,.pointer-lens,.pointer-bugs{display:none!important}.resume-page{max-width:none;font-size:9.5pt;padding:0!important}.resume-grid{grid-template-columns:2fr 1fr;gap:10mm;display:grid}.resume-grid__main,.resume-grid__side{gap:6mm}.resume-header{grid-template-columns:2fr 1fr;align-items:end;gap:8mm;padding-bottom:4mm}.resume-header__name{font-size:24pt}.resume-header__role{font-size:10pt}.resume-jobs,.resume-projects{gap:5mm}.resume-job__head h3{font-size:11pt}.resume-job,.resume-projects li,.skill-list>div{break-inside:avoid}.tag{color:#3730a3;background:#eef2ff;border-color:#c7d2fe}}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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}@keyframes spin{to{transform:rotate(360deg)}}
