*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-family:Inter,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}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:Roboto Mono,monospace;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}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--color-bg:#f5f2ee;--color-bg-secondary:#fff;--color-accent:#a0443c;--color-accent-light:#a0443c12;--color-text:#202022;--muted:#66615f;--line:#d9d3cd;--panel:#ede8e2;--header-bg:#f5f2eef2;--button-text:#fffaf7;--color-dark-1:#202022;--color-dark-2:#403b38;--color-dark-3:#d9d3cd;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.dark{--color-bg:#101011;--color-bg-secondary:#19191b;--color-accent:#c56f68;--color-accent-light:#c56f6812;--color-text:#f2efeb;--muted:#a19b97;--line:#303032;--panel:#1e1b1c;--header-bg:#101011f2;--button-text:#151112;--color-dark-1:#f2efeb;--color-dark-2:#d3cdca;--color-dark-3:#303032;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Arial,sans-serif}::selection{background:var(--color-accent);color:var(--color-bg)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}:focus-visible{outline:2px solid var(--color-accent);outline-offset:6px}#main-content:focus{outline:none}h1,h2,h3,p{margin:0}img{max-width:100%;height:auto}section{scroll-margin-top:25px}*,:before,:after,::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-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:#3b82f680;--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: }.container{width:100%}@media (min-width:375px){.container{max-width:375px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-bottom-0\.5{bottom:-.125rem}.left-0{left:0}.-bottom-0,.bottom-0{bottom:0}.left-6{left:1.5rem}.right-6{right:1.5rem}.-top-8{top:-2rem}.top-full{top:100%}.z-\[-1\]{z-index:-1}.mx-auto{margin-left:auto;margin-right:auto}.mr-1{margin-right:.25rem}.mt-5{margin-top:1.25rem}.mb-5{margin-bottom:1.25rem}.block{display:block}.flex{display:flex}.grid{display:grid}.list-item{display:list-item}.hidden{display:none}.h-64{height:16rem}.h-\[1px\]{height:1px}.h-0\.5{height:.125rem}.h-0{height:0}.h-7{height:1.75rem}.h-\[200px\]{height:200px}.h-full{height:100%}.h-24{height:6rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-10{height:2.5rem}.min-h-\[250px\]{min-height:250px}.w-fit{width:fit-content}.w-64{width:16rem}.w-0{width:0}.w-7{width:1.75rem}.w-6{width:1.5rem}.w-5{width:1.25rem}.w-full{width:100%}.w-0\.5{width:.125rem}.w-14{width:3.5rem}.w-max{width:max-content}.w-\[120px\]{width:120px}.min-w-\[120px\]{min-width:120px}.max-w-\[350px\]{max-width:350px}.max-w-sm{max-width:24rem}.translate-x-6{--tw-translate-x:1.5rem;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))}.translate-y-6{--tw-translate-y:1.5rem;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))}.rotate-90{--tw-rotate:90deg;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))}.rotate-45{--tw-rotate:45deg;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))}.-rotate-45{--tw-rotate:-45deg;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))}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-8{gap:2rem}.gap-2{gap:.5rem}.gap-6{gap:1.5rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*calc(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*calc(1 - var(--tw-space-x-reverse)))}.space-y-14>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3.5rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.border-\[1\.5px\]{border-width:1.5px}.border-2{border-width:2px}.border-\[3px\]{border-width:3px}.border-accent{border-color:var(--color-accent)}.bg-accent{background-color:var(--color-accent)}.bg-bg-secondary{background-color:var(--color-bg-secondary)}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}.bg-slate-900\/75{background-color:#0f172abf}.bg-dark-3{background-color:var(--color-dark-3)}.bg-bg{background-color:var(--color-bg)}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-4{padding:1rem}.p-1{padding:.25rem}.p-2\.5{padding:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-24{padding-top:6rem;padding-bottom:6rem}.text-center{text-align:center}.font-mono{font-family:Roboto Mono,monospace}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-medium{font-weight:500}.capitalize{text-transform:capitalize}.tracking-widest{letter-spacing:.1em}.text-accent{color:var(--color-accent)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-slate-900\/75{color:#0f172abf}.text-dark-2{color:var(--color-dark-2)}.text-text{color:var(--color-text)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-100{transition-delay:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-scroll{transition-timing-function:cubic-bezier(.645,.045,.355,1)}.\[writing-mode\:vertical-lr\]{writing-mode:vertical-lr}.page-width{width:min(1120px,100% - 112px);margin-inline:auto}.section-space{padding-block:112px}.mono,.eyebrow,.section-label,.project-tags,.archive-tags,.technology-list{letter-spacing:.035em;font-family:Roboto Mono,monospace;font-size:11px;font-weight:400}.accent{color:var(--color-accent)}.site-header{z-index:50;background:var(--header-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);position:fixed;top:0;left:0;right:0}.header-inner{justify-content:space-between;align-items:center;gap:32px;width:min(1328px,100% - 80px);height:84px;margin-inline:auto;display:flex}.wordmark{letter-spacing:-.09em;font-size:34px;font-weight:700;line-height:1}.wordmark span{color:var(--color-accent)}.main-nav{align-items:center;gap:34px;margin-left:auto;display:flex}.main-nav a{color:var(--muted);padding-block:10px;font-size:12px;transition:color .2s;position:relative}.main-nav a:after{content:"";background:var(--color-accent);width:0;height:1px;transition:width .2s;position:absolute;bottom:2px;left:0}.main-nav a:hover,.main-nav a:focus-visible{color:var(--color-text)}.main-nav a:hover:after{width:100%}.header-actions{align-items:center;gap:16px;display:flex}.theme-toggle{border:1px solid var(--line);width:44px;height:44px;color:var(--muted);background:0 0;border-radius:50%;place-items:center;transition:color .2s,border-color .2s;display:grid}.theme-toggle:hover{border-color:var(--color-accent);color:var(--color-accent)}.theme-sun,.theme-label-light{display:none}.dark .theme-sun,.dark .theme-label-light{display:block}.dark .theme-moon,.dark .theme-label-dark,.menu-toggle{display:none}.skip-link{background:var(--color-accent);color:var(--button-text);z-index:100;padding:14px 20px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:12px}.hero{flex-direction:column;min-height:min(860px,100svh);padding-top:156px;padding-bottom:30px;display:flex}.hero-topline{justify-content:space-between;align-items:center;display:flex}.eyebrow{color:var(--color-accent);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:12px;display:flex}.status-dot{background:var(--color-accent);flex:none;width:6px;height:6px}.hero-index{color:var(--muted);font-size:10px}.hero-name{letter-spacing:-.08em;max-width:100%;margin:49px 0 37px;font-size:clamp(92px,12.6vw,176px);font-weight:500;line-height:.92}.hero-name>span{display:block}.hero-name .name-second{margin-top:4px;padding-left:20%}.name-period{color:var(--color-accent)}.hero-bottom{justify-content:space-between;align-items:center;gap:50px;padding-block:24px 42px;display:flex}.hero-intro{max-width:430px}.hero-intro>p:first-child{letter-spacing:-.025em;max-width:380px;font-size:19px;line-height:1.65}.hero-location{color:var(--muted);margin-top:14px;font-size:12px;line-height:1.7}.hero-links{flex-shrink:0;align-items:center;gap:30px;display:flex}.button-primary{background:var(--color-accent);color:var(--button-text);border:1px solid #0000;justify-content:center;align-items:center;gap:26px;min-height:50px;padding:16px 20px;font-size:12px;font-weight:500;transition:background .2s,transform .2s;display:inline-flex}.button-primary:hover:not(:disabled){background:var(--color-text);color:var(--color-bg);transform:translateY(-2px)}.text-link{align-items:center;gap:12px;padding-block:14px;font-size:12px;display:inline-flex}.text-link:hover{color:var(--color-accent)}.hero-footnote{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;margin-top:auto;padding-top:24px;display:flex}.hero-footnote .mono{letter-spacing:.12em;font-size:9px}.scroll-cue{align-items:center;gap:24px;font-size:10px;display:flex}.scroll-cue span{color:var(--color-accent);font-size:20px}.section-label{text-transform:uppercase;letter-spacing:.11em;align-items:center;gap:18px;margin-bottom:32px;display:flex}.section-label>span:first-child{color:var(--color-accent);font-size:10px}.section-label>span:last-child{color:var(--muted)}h2{letter-spacing:-.055em;font-size:clamp(38px,4.8vw,64px);font-weight:500;line-height:1.1}.section-heading-row{justify-content:space-between;align-items:end;gap:32px;margin-bottom:56px;display:flex}.section-aside{text-align:right;color:var(--muted);letter-spacing:.1em;font-size:9px;line-height:1.9}.work-section{padding-top:92px}.featured-projects{gap:64px;display:grid}.project-image{background:var(--panel);border:1px solid var(--line);display:block;position:relative;overflow:hidden}.project-image-bar{height:56px;color:var(--muted);justify-content:space-between;align-items:center;padding:0 28px;display:flex}.project-image-bar .mono{font-size:10px}.project-image-bar svg{color:var(--color-accent)}.project-image-content{padding:18px 11% 56px}.project-screenshot{width:100%;height:auto;transition:transform .5s cubic-bezier(.22,1,.36,1);box-shadow:0 18px 50px #0002}.project-image-0 .project-screenshot{border:1px solid #ffffff20;border-radius:3px}.project-image-1{background:var(--color-bg-secondary)}.project-image-1 .project-image-content{padding-inline:14%;padding-top:12px;padding-bottom:52px}.project-image-1 .project-screenshot{box-shadow:none}.project-image:hover .project-screenshot{transform:translateY(-5px)scale(1.015)}.project-image-year{color:var(--muted);font-size:10px;position:absolute;bottom:18px;right:26px}.project-caption{justify-content:space-between;align-items:center;gap:30px;padding-top:22px;display:flex}.project-caption h3{letter-spacing:-.04em;flex-shrink:0;font-size:25px;font-weight:500}.project-caption h3 a{align-items:center;gap:15px;display:flex}.project-caption h3 svg{width:17px;color:var(--color-accent)}.project-tags{flex-wrap:wrap;justify-content:end;gap:8px;margin:0;padding:0;font-size:9px;list-style:none;display:flex}.project-tags li{border:1px solid var(--line);color:var(--muted);padding:6px 9px}.more-work{margin-top:88px}.more-work-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;padding-bottom:20px;display:flex}.more-work-heading h3{letter-spacing:-.03em;font-size:23px;font-weight:500}.more-work-heading .mono{color:var(--muted);font-size:9px}.archive-row{border-bottom:1px solid var(--line);padding-block:20px;transition:background .2s;position:relative}.archive-row:hover{background:var(--color-accent-light)}.archive-main{align-items:center;gap:24px;display:flex}.archive-thumbnail{-o-object-fit:cover;object-fit:cover;opacity:.82;filter:saturate(.5);flex-shrink:0;width:76px;height:50px;transition:opacity .2s,filter .2s}.archive-row:hover .archive-thumbnail{opacity:1;filter:saturate()}.archive-title{letter-spacing:-.025em;font-size:17px;font-weight:500}.archive-year{color:var(--muted);margin-left:auto}.archive-main>svg{color:var(--color-accent);margin-right:4px}.archive-detail{align-items:center;gap:20px;margin-top:-8px;margin-left:100px;display:flex}.archive-tags{color:var(--muted);padding-right:100px;font-size:9px;line-height:1.8}.archive-source{white-space:nowrap;align-items:center;gap:5px;margin-left:auto;font-size:10px;display:flex}.archive-source svg{width:12px;height:12px}.about-grid{grid-template-columns:1.2fr 1fr;align-items:start;gap:100px;display:grid}.about-copy h2{margin-bottom:36px}.about-copy>p{color:var(--muted);max-width:480px;font-size:16px;line-height:1.9}.about-copy>p+p{margin-top:20px}.about-note{color:var(--muted);letter-spacing:.08em;align-items:center;gap:18px;margin-top:38px;font-size:9px;display:flex}.small-cross{color:var(--color-accent);font-size:24px;font-weight:300;line-height:1}.portrait-wrap{margin-top:3px;transform:rotate(2deg)}.portrait-frame{aspect-ratio:1/1.13;background:var(--panel);position:relative;overflow:hidden}.portrait{-o-object-fit:cover;object-fit:cover;-o-object-position:center 30%;object-position:center 30%;width:100%;height:100%;transition:transform .5s cubic-bezier(.22,1,.36,1)}@media (hover:hover) and (prefers-reduced-motion:no-preference){.portrait-frame:hover .portrait{transform:scale(1.035)}}.portrait-corner{background:var(--color-accent);width:45px;height:45px;color:var(--button-text);place-items:center;font-size:30px;font-weight:300;display:grid;position:absolute;bottom:0;right:0}.portrait-caption{color:var(--muted);justify-content:space-between;gap:15px;margin-top:16px;font-size:8px;display:flex}.skills-section{background:var(--color-bg-secondary);border-block:1px solid var(--line)}.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;margin-top:62px;display:grid}.skill-column{border-top:1px solid var(--line);padding-top:22px}.skill-number{color:var(--color-accent);font-size:10px}.skill-column h3{letter-spacing:-.03em;margin-top:16px;margin-bottom:26px;font-size:20px;font-weight:500}.skill-column h3:first-letter{text-transform:uppercase}.technology-list{color:var(--muted);flex-wrap:wrap;gap:11px 18px;margin:0;padding:0;font-size:11px;line-height:1.7;list-style:none;display:flex}.experience-list{margin-top:58px}.experience-row{border-top:1px solid var(--line);grid-template-columns:1fr 2fr;gap:40px;padding-block:36px;display:grid}.experience-date{color:var(--muted);padding-top:7px;font-size:11px}.current-label{color:var(--color-accent);letter-spacing:.12em;margin-top:15px;font-size:9px;display:block}.experience-content h3{letter-spacing:-.03em;font-size:25px;font-weight:500}.experience-content h3 a{align-items:center;gap:12px;display:inline-flex}.experience-content h3 svg{width:17px;color:var(--color-accent)}.experience-role{color:var(--color-accent);text-transform:capitalize;margin-top:7px;font-size:13px}.experience-content ul{color:var(--muted);margin:24px 0 0;padding-left:16px;font-size:13px;line-height:1.9}.experience-content li{margin-bottom:9px;padding-left:5px}.experience-content li::marker{color:var(--color-accent);font-size:9px}.contact-section{border-block:1px solid var(--line);background:var(--color-bg-secondary)}.contact-grid{grid-template-columns:1fr 1fr;gap:100px;display:grid}.contact-copy h2{margin-bottom:26px;font-size:clamp(48px,6vw,82px)}.contact-copy>p{color:var(--muted);max-width:360px;font-size:14px;line-height:1.9}.contact-copy>p+p{margin-top:12px}.contact-email{border-bottom:1px solid var(--color-accent);letter-spacing:-.02em;align-items:center;gap:16px;margin-top:35px;padding-bottom:9px;font-size:17px;display:inline-flex}.contact-email svg{color:var(--color-accent);width:17px}.contact-socials{gap:26px;margin-top:24px;display:flex}.contact-socials a{color:var(--muted);align-items:center;gap:7px;font-size:11px;display:flex}.contact-socials svg{width:13px;height:13px}.contact-socials a:hover{color:var(--color-accent)}.form-pair{grid-template-columns:1fr 1fr;gap:24px;display:grid}.form-field{margin-bottom:24px}.form-field label{margin-bottom:10px;font-size:11px;display:block}.form-field input,.form-field textarea{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--color-text);background:0 0;border-radius:0;padding:8px 0 13px;font-size:13px;line-height:1.6;transition:border-color .2s;display:block}.form-field textarea{resize:vertical;min-height:105px}.form-field input::-moz-placeholder{color:var(--muted);opacity:1}.form-field textarea::-moz-placeholder{color:var(--muted);opacity:1}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--muted);opacity:1}.form-field input:focus,.form-field textarea:focus{border-color:var(--color-accent);box-shadow:0 1px 0 var(--color-accent);outline:0}.form-field [aria-invalid=true]{border-color:var(--color-accent)}.field-error{color:var(--color-accent);margin-top:7px;font-size:11px;display:block}.form-footer{justify-content:space-between;align-items:center;gap:20px;margin-top:30px;display:flex}.contact-verification{margin-top:24px}.turnstile-widget{min-height:65px}.verification-message{color:var(--muted);font-size:12px;line-height:1.7}.verification-message:not(:empty){margin-top:10px}.form-footer .mono{color:var(--muted);font-size:8px}.form-feedback{min-height:24px;color:var(--color-text);margin-top:16px;font-size:12px;line-height:1.7}.form-feedback.is-error{color:var(--color-accent)}.site-footer{justify-content:space-between;align-items:center;gap:30px;min-height:115px;display:flex}.footer-signature{letter-spacing:-.045em;font-size:17px;font-weight:500}.footer-credit{color:var(--muted);margin-right:auto;font-size:10px}.footer-links{color:var(--muted);gap:22px;font-size:10px;display:flex}.footer-links a{align-items:center;gap:6px;display:flex}.footer-links svg{width:12px;height:12px}.footer-links a:hover{color:var(--color-accent)}.not-found{flex-direction:column;justify-content:center;align-items:flex-start;gap:35px;min-height:80svh;padding-block:180px 100px;display:flex}.not-found h1{letter-spacing:-.06em;font-size:clamp(50px,8vw,100px);line-height:1.05}@media (prefers-reduced-motion:no-preference){.hero-name{animation:.5s cubic-bezier(.22,1,.36,1) both hero-enter}.hero-topline,.hero-bottom{animation:.4s cubic-bezier(.22,1,.36,1) both hero-enter}@keyframes hero-enter{0%{opacity:.2;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}@media (min-width:1500px){.hero{min-height:850px}}@media (max-width:1023px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-width{width:calc(100% - 80px)}.hero{min-height:auto;padding-top:146px}.hero-name{font-size:clamp(90px,15vw,154px)}.hero-bottom{align-items:flex-start;gap:24px}.hero-links{flex-direction:column;align-items:flex-start;gap:4px}.hero-intro>p:first-child{max-width:350px;font-size:18px}.section-space{padding-block:90px}.about-grid,.contact-grid{gap:55px}.form-pair{grid-template-columns:1fr;gap:0}.project-caption{align-items:start}.project-tags{max-width:360px}.form-footer>.mono{display:none}.form-footer{justify-content:flex-end}}@media (max-width:767px){html{scroll-padding-top:80px}.page-width{width:calc(100% - 40px)}.header-inner{gap:16px;width:calc(100% - 40px);height:70px}.wordmark{font-size:30px}.header-actions{gap:14px}.theme-toggle{width:40px;height:40px}.menu-toggle{color:var(--color-text);background:0 0;border:none;align-items:center;gap:18px;padding:12px 0 12px 8px;font-size:12px;display:flex}.menu-toggle span{color:var(--color-accent);font-size:18px}.main-nav{background:var(--color-bg);border-bottom:1px solid var(--line);gap:0;padding:20px;display:none;position:absolute;top:70px;left:0;right:0}.main-nav.is-open{flex-direction:column;align-items:stretch;display:flex}.main-nav a{padding:16px 10px;font-size:16px}.main-nav a:after{display:none}.hero{padding-top:124px;padding-bottom:22px}.hero-index{display:none}.eyebrow{letter-spacing:.09em;gap:9px;font-size:9px}.hero-name{margin:42px 0 22px;font-size:clamp(76px,19vw,140px);line-height:.96}.hero-name .name-second{margin-top:0;padding-left:10%}.hero-bottom{flex-direction:column;gap:26px;padding-top:14px;padding-bottom:40px}.hero-intro>p:first-child{max-width:330px;font-size:17px}.hero-location{margin-top:12px;font-size:11px}.hero-links{flex-direction:row;align-items:center;gap:24px}.button-primary{gap:18px;padding:14px 16px;font-size:11px}.text-link{gap:8px;font-size:11px}.hero-footnote{padding-top:17px}.hero-footnote .mono{letter-spacing:.06em;font-size:8px}.scroll-cue{gap:10px;font-size:9px}.section-space{padding-block:68px}.section-label{gap:14px;margin-bottom:25px;font-size:10px}h2{font-size:clamp(36px,8vw,52px)}.section-heading-row{margin-bottom:32px}.section-aside{display:none}.featured-projects{gap:38px}.project-image-bar{height:43px;padding-inline:16px}.project-image-bar .mono{font-size:8px}.project-image-bar svg{width:16px}.project-image-content{padding:8px 6% 35px}.project-image-1 .project-image-content{padding:8px 8% 30px}.project-image-year{font-size:8px;bottom:10px;right:15px}.project-caption{flex-direction:column;gap:12px;padding-top:16px}.project-caption h3{font-size:22px}.project-tags{justify-content:start;gap:6px;max-width:none}.project-tags li{padding:5px 7px;font-size:8px}.more-work{margin-top:52px}.archive-main{gap:14px}.archive-thumbnail{width:50px;height:38px}.archive-title{font-size:14px}.archive-year{font-size:9px}.archive-main>svg{flex-shrink:0;width:15px}.archive-detail{flex-wrap:wrap;gap:6px;margin:8px 0 0 64px}.archive-tags{padding-right:0;font-size:8px}.archive-source{margin-left:0;font-size:9px}.about-grid{grid-template-columns:1fr;gap:44px}.about-copy h2{margin-bottom:24px}.about-copy>p{max-width:520px;font-size:14px;line-height:1.9}.about-note{margin-top:25px}.portrait-wrap{justify-self:center;width:90%;max-width:370px}.skills-grid{grid-template-columns:1fr;gap:28px;margin-top:35px}.skill-column{grid-template-columns:28px 1fr;gap:4px 12px;padding-top:20px;display:grid}.skill-number{padding-top:6px}.skill-column h3{margin:0 0 13px;font-size:19px}.technology-list{grid-column:2;font-size:10px}.experience-list{margin-top:35px}.experience-row{grid-template-columns:1fr;gap:18px;padding-block:26px}.experience-date{align-items:center;gap:15px;font-size:10px;display:flex}.current-label{margin-top:0;font-size:8px}.experience-content h3{font-size:23px}.experience-content ul{margin-top:18px;font-size:12px}.contact-grid{grid-template-columns:1fr;gap:44px}.contact-copy h2{font-size:58px}.contact-copy>p{max-width:500px}.contact-email{margin-top:25px;font-size:17px}.form-pair{grid-template-columns:1fr 1fr;gap:20px}.form-footer{justify-content:space-between}.form-footer>.mono{display:block}.site-footer{flex-wrap:wrap;justify-content:start;gap:14px 24px;padding-block:30px}.footer-signature{font-size:16px}.footer-credit{font-size:9px}.footer-links{width:100%;margin-top:6px}}@media (max-width:359px){.hero-name{font-size:21vw}.hero-name .name-second{padding-left:4%}.hero-links{gap:14px}.form-pair{grid-template-columns:1fr;gap:0}.archive-thumbnail{display:none}.archive-detail{margin-left:0}.form-footer>.mono{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.before\:mr-3:before{content:var(--tw-content);margin-right:.75rem}.before\:block:before{content:var(--tw-content);display:block}.before\:text-accent:before{content:var(--tw-content);color:var(--color-accent)}.before\:content-\[\'▹\'\]:before{--tw-content:"▹";content:var(--tw-content)}.hover\:-translate-y-1:hover{--tw-translate-y:-.25rem;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))}.hover\:bg-accent-light:hover{background-color:var(--color-accent-light)}.hover\:text-accent:hover{color:var(--color-accent)}.focus\:-translate-y-1:focus{--tw-translate-y:-.25rem;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))}.focus\:bg-accent-light:focus{background-color:var(--color-accent-light)}.focus\:text-accent:focus{color:var(--color-accent)}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:w-full{width:100%}.group:hover .group-hover\:translate-x-4{--tw-translate-x:1rem;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))}.group:hover .group-hover\:translate-y-4{--tw-translate-y:1rem;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))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;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))}.group:hover .group-hover\:space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.group:hover .group-hover\:text-accent{color:var(--color-accent)}.group:hover .group-hover\:opacity-100{opacity:1}.group:focus .group-focus\:w-full{width:100%}.group:focus .group-focus\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;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))}.group:focus .group-focus\:space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.group:focus .group-focus\:outline-none{outline-offset:2px;outline:2px solid #0000}.dark .dark\:bg-slate-700\/90{background-color:#334155e6}.dark .dark\:text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity))}.dark .dark\:text-slate-700\/90{color:#334155e6}.dark .dark\:shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark .dark\:shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:640px){.sm\:inset-0{inset:0}.sm\:block{display:block}.sm\:h-auto{height:auto}.sm\:h-16{height:4rem}.sm\:h-full{height:100%}.sm\:h-10{height:2.5rem}.sm\:w-auto{width:auto}.sm\:w-16{width:4rem}.sm\:w-0\.5{width:.125rem}.sm\:w-0{width:0}.sm\:min-w-\[180px\]{min-width:180px}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:gap-10{gap:2.5rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:\!text-left{text-align:left!important}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:flex{display:flex}.md\:min-h-\[448px\]{min-height:448px}.md\:min-w-\[448px\]{min-width:448px}.md\:max-w-md{max-width:28rem}.md\:gap-10{gap:2.5rem}.md\:py-32{padding-top:8rem;padding-bottom:8rem}.md\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width:1024px){.lg\:w-1\/2{width:50%}.lg\:flex-row{flex-direction:row}}@media (min-width:1280px){.xl\:left-12{left:3rem}.xl\:right-12{right:3rem}}
