@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--color-paper:#f3f9ff;--color-paper-2:#deedfb;--color-paper-3:#c2dbf1;--color-ink:#071e36;--color-ink-2:#254466;--color-muted:#47607c;--color-rule:#b3cee7;--color-rule-strong:#76a0c8;--color-accent:#0072de;--color-accent-ink:#f3f9ff;--color-focus:#004ca3;--color-signal:#46b5e4;--font-display:var(--font-geist-sans), Arial, sans-serif;--font-body:var(--font-geist-sans), Arial, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, monospace;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4.5rem;--space-3xl:7rem;--space-4xl:10rem;--text-xs:.7rem;--text-sm:.875rem;--text-md:1.125rem;--text-lg:1.375rem;--text-xl:1.75rem;--text-2xl:2.25rem;--text-display:clamp(3.6rem, 9vw, 8.6rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-short:.18s;--dur-medium:.32s;--container-max:76rem;--control-height:3rem;--avatar-size:2.5rem;--icon-size:1.125rem;--radius-card:.35rem;--radius-pill:999px;--rule-hairline:1px}@supports (color:lab(0% 0 0)){:root{--color-paper:lab(97.684% -1.63475 -4.13263);--color-paper-2:lab(93.0433% -3.30642 -8.55809);--color-paper-3:lab(86.0745% -5.07656 -13.5943);--color-ink:lab(10.3898% -1.2123 -18.7263);--color-ink-2:lab(27.7828% -2.92392 -24.0338);--color-muted:lab(39.5142% -3.60288 -19.1687);--color-rule:lab(81.4285% -5.60564 -15.2492);--color-rule-strong:lab(63.8998% -6.80131 -25.5456);--color-accent:lab(47.3919% 6.35254 -65.0841);--color-accent-ink:lab(97.684% -1.63475 -4.13263);--color-focus:lab(32.0617% 11.5779 -61.4779);--color-signal:lab(68.9563% -21.2183 -33.5547)}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;--text-xs:.75rem;--text-sm:.875rem;--text-lg:1.125rem;--text-2xl:1.5rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.block{display:block}.flex{display:flex}.h-full{height:100%}.min-h-full{min-height:100%}.flex-col{flex-direction:column}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--color-background:var(--color-paper);--color-foreground:var(--color-ink);--font-sans:var(--font-body);--font-mono:var(--font-geist-mono)}*{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-behavior:smooth}body{background:var(--color-paper);min-width:320px;color:var(--color-ink);font-family:var(--font-body);margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}button,a{-webkit-tap-highlight-color:transparent}ul,ol{margin:0;padding:0;list-style:none}p,h1,h2,h3,dl,dd,figure{margin:0}img{max-width:100%}.page-shell{width:min(100% - 64px,1360px);margin-inline:auto}.site-header{padding:var(--space-md) 0}.site-header__inner{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;min-height:52px;display:grid}.brand{align-items:center;gap:var(--space-xs);min-width:0;font-size:var(--text-sm);letter-spacing:-.03em;justify-self:start;font-weight:700;display:inline-flex}.brand__mark{border:1px solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-ink);width:36px;height:36px;color:var(--color-paper);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em;flex:none;place-items:center;display:grid}.site-header__links{gap:var(--space-lg);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;display:flex}.site-header__links a,.site-header__cta,.site-footer a,.text-link,.contact-email{transition:color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out)}.site-header__links a:hover,.site-header__cta:hover,.site-footer a:hover,.text-link:hover,.contact-email:hover{color:var(--color-accent)}.site-header__cta{justify-self:end;align-items:center;gap:var(--space-2xs);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-weight:700;display:inline-flex}.site-header__cta span,.text-link span,.contact-email span{font-size:var(--text-md);line-height:1}.eyebrow{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700;line-height:1.45}.status-dot{width:7px;height:7px;margin-right:var(--space-2xs);border-radius:var(--radius-pill);background:var(--color-accent);vertical-align:1px;display:inline-block}.hero{padding-top:var(--space-2xl);padding-bottom:var(--space-3xl)}.hero__topline,.hero__footerline,.featured-project__meta,.featured-project__caption,.project-card__header,.site-footer{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.hero__topline{padding-bottom:var(--space-md);border-bottom:var(--rule-hairline) solid var(--color-rule-strong)}.hero__status{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap}.hero__grid{gap:clamp(var(--space-xl), 7vw, var(--space-4xl));padding-top:clamp(var(--space-xl), 6vw, var(--space-3xl));grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:end;display:grid}.hero__copy,.hero__proof,.about-split__visual,.about-split__copy,.project-card__body{min-width:0}.hero__copy{padding-bottom:var(--space-md)}.hero__kicker{max-width:300px;color:var(--color-accent-ink);font-family:var(--font-mono);font-size:var(--text-sm);text-transform:uppercase;line-height:1.45}.hero__title,.section-heading h2,.contact-section h2{overflow-wrap:anywhere;min-width:0;font-family:var(--font-display);letter-spacing:-.095em;font-style:normal;font-weight:500}.hero__title{max-width:720px;margin-top:var(--space-md);color:var(--color-ink);font-size:var(--text-display);line-height:.9}.hero__title span{color:var(--color-accent)}.hero__intro{max-width:480px;margin-top:var(--space-xl);color:var(--color-muted);font-size:var(--text-md);line-height:1.6}.hero__actions{align-items:center;gap:var(--space-md);margin-top:var(--space-xl);flex-wrap:wrap;display:flex}.button{min-height:44px;padding:0 var(--space-md);border:1px solid var(--color-ink);border-radius:var(--radius-pill);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);white-space:nowrap;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.button:hover{background:var(--color-ink);color:var(--color-paper);transform:translateY(-2px)}.button:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.text-link{align-items:center;gap:var(--space-2xs);border-bottom:1px solid var(--color-ink);min-height:44px;color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-weight:700;display:inline-flex}.hero__proof>.featured-project{margin-top:var(--space-sm)}.featured-project__meta{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.featured-project__media,.project-card__media{background:var(--color-ink);position:relative;overflow:hidden}.featured-project__media{aspect-ratio:1.18;border:1px solid var(--color-ink)}.project-card__media{aspect-ratio:1.08;border:1px solid var(--color-rule-strong)}.project-visual,.project-visual__image{width:100%;height:100%;position:absolute;inset:0}.project-visual__image{object-fit:contain;object-position:center;padding:clamp(var(--space-md), 4vw, var(--space-2xl));display:block}.media-label{right:var(--space-md);bottom:var(--space-md);padding:var(--space-2xs) var(--space-xs);background:var(--color-paper);color:var(--color-ink);position:absolute}.media-label .status-dot{width:6px;height:6px;margin-right:var(--space-2xs)}.featured-project__caption{padding-top:var(--space-sm);align-items:flex-start}.featured-project__caption h2{margin-top:var(--space-2xs);font-size:var(--text-lg);letter-spacing:-.05em;font-weight:700}.project-year{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.hero__footerline{margin-top:var(--space-2xl);padding-top:var(--space-sm);border-top:var(--rule-hairline) solid var(--color-rule-strong);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.hero__footerline a{color:var(--color-ink);white-space:nowrap}.hero__footerline a:hover{color:var(--color-accent)}.section{padding-top:var(--space-3xl);padding-bottom:var(--space-3xl);border-top:var(--rule-hairline) solid var(--color-rule-strong)}.section-heading h2,.contact-section h2{max-width:820px;margin-top:var(--space-sm);font-size:clamp(2.6rem,6vw,6.4rem);line-height:.93}.about-split{gap:clamp(var(--space-xl), 9vw, var(--space-4xl));margin-top:var(--space-3xl);grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:start;display:grid}.about-split__photo{aspect-ratio:4/5;background:var(--color-paper-2);filter:saturate(.82)contrast(1.04);width:min(100%,360px);position:relative;overflow:hidden}.about-split__photo img{object-fit:cover}.photo-note{max-width:300px;margin-top:var(--space-sm);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;line-height:1.5}.about-split__lead{max-width:680px;color:var(--color-ink);letter-spacing:-.06em;font-size:clamp(1.55rem,3vw,3rem);line-height:1.05}.about-split__details{max-width:520px;margin-top:var(--space-xl);color:var(--color-muted);font-size:var(--text-md);line-height:1.6}.skill-list,.tag-list{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.skill-list{margin-top:var(--space-xl)}.skill-list li,.tag-list li{padding:var(--space-2xs) var(--space-xs);border:1px solid var(--color-rule-strong);color:var(--color-ink-2);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.1}.about-split__copy .text-link{margin-top:var(--space-xl)}.section-heading--row{display:block}.section-heading__note{max-width:360px;margin-top:var(--space-lg);color:var(--color-muted);font-size:var(--text-sm);line-height:1.55}.project-list{gap:var(--space-4xl);margin-top:var(--space-3xl);display:grid}.project-card{gap:clamp(var(--space-xl), 7vw, var(--space-4xl));grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start;display:grid}.project-card--reverse .project-card__media{order:2}.project-card--reverse .project-card__body{order:1}.project-card__body{padding-top:var(--space-xs)}.project-card__header{padding-bottom:var(--space-md);border-bottom:var(--rule-hairline) solid var(--color-rule-strong);align-items:flex-start}.project-card__header h3{max-width:600px;margin-top:var(--space-2xs);overflow-wrap:anywhere;font-family:var(--font-display);letter-spacing:-.09em;font-size:clamp(2rem,4vw,4.3rem);font-style:normal;font-weight:500;line-height:.94}.case-study{margin-top:var(--space-lg)}.case-study>div{gap:var(--space-md);padding:var(--space-md) 0;border-top:var(--rule-hairline) solid var(--color-rule);grid-template-columns:72px minmax(0,1fr);display:grid}.case-study dt{color:var(--color-accent-ink);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:700}.case-study dd{color:var(--color-muted);font-size:var(--text-sm);line-height:1.6}.case-study ol{gap:var(--space-xs);padding-left:var(--space-md);list-style:decimal;display:grid}.tag-list{margin-top:var(--space-md)}.tag-list li{background:var(--color-paper-2);border:0}.project-gallery{gap:var(--space-xs);margin-top:var(--space-xl);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.project-gallery__item{min-width:0}.project-gallery__image{aspect-ratio:1/1.15;background:var(--color-paper-2);position:relative;overflow:hidden}.project-gallery__image img{object-fit:cover;transition:transform var(--dur-medium) var(--ease-out), filter var(--dur-medium) var(--ease-out)}.project-gallery__item:hover img{filter:saturate(1.08);transform:scale(1.03)}.project-gallery__item figcaption{margin-top:var(--space-2xs);color:var(--color-muted);font-size:.6rem;display:block}.contact-section{padding-top:var(--space-3xl);padding-bottom:var(--space-3xl)}.contact-section__inner{gap:clamp(var(--space-xl), 8vw, var(--space-4xl));padding:clamp(var(--space-xl), 6vw, var(--space-3xl));background:var(--color-ink);color:var(--color-paper);grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr);display:grid}.contact-section h2{color:var(--color-paper)}.contact-section__details{max-width:400px;color:var(--color-paper-3);font-size:var(--text-md);align-self:end;line-height:1.6}.contact-section__links{justify-items:start;gap:var(--space-xs);margin-top:var(--space-xl);display:grid}.contact-email{align-items:center;gap:var(--space-2xs);border-bottom:1px solid var(--color-accent);min-height:44px;color:var(--color-paper);font-family:var(--font-mono);font-size:var(--text-sm);white-space:nowrap;font-weight:700;display:inline-flex}.contact-phone,.contact-location{color:var(--color-paper-3);font-family:var(--font-mono);font-size:var(--text-xs)}.contact-phone:hover{color:var(--color-accent)}.site-footer{border-top:var(--rule-hairline) solid var(--color-rule-strong);min-height:88px;color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.site-footer__links{gap:var(--space-md);display:flex}.project-visual__fallback{height:100%;padding:var(--space-xl);color:var(--color-paper);font-family:var(--font-display);font-size:var(--text-2xl);text-align:center;place-items:center;display:grid}@media (max-width:800px){.page-shell{width:min(100% - 32px,1360px)}.site-header__inner{row-gap:var(--space-md);grid-template-columns:minmax(0,1fr) auto}.site-header__links{justify-content:space-between;gap:var(--space-sm);padding-top:var(--space-xs);grid-area:2/1/auto/-1}.site-header__cta{grid-area:1/2}.hero{padding-top:var(--space-xl);padding-bottom:var(--space-2xl)}.hero__grid,.about-split,.project-card,.contact-section__inner{gap:var(--space-xl);grid-template-columns:minmax(0,1fr)}.hero__grid{padding-top:var(--space-2xl)}.hero__title{font-size:clamp(3.8rem,16vw,7.6rem)}.hero__intro{margin-top:var(--space-lg)}.hero__proof{width:min(100%,620px);margin-left:auto}.section{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}.about-split,.project-list{margin-top:var(--space-2xl)}.about-split__photo{width:min(100%,300px)}.project-card--reverse .project-card__media,.project-card--reverse .project-card__body{order:initial}.project-card__media{aspect-ratio:1.18}.project-list{gap:var(--space-3xl)}.contact-section{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}.contact-section__inner{gap:var(--space-2xl);padding:var(--space-xl) var(--space-md)}.site-footer{justify-content:center;align-items:flex-start;gap:var(--space-sm);flex-direction:column;min-height:120px}}@media (max-width:460px){.site-header__links{font-size:.62rem}.brand__name{overflow-wrap:anywhere;max-width:150px}.hero__topline,.hero__footerline,.featured-project__meta,.featured-project__caption{flex-direction:column;align-items:flex-start}.hero__status{white-space:normal}.hero__actions{align-items:flex-start;gap:var(--space-sm);flex-direction:column}.case-study>div{gap:var(--space-2xs);grid-template-columns:1fr}.project-gallery{gap:var(--space-2xs)}.contact-email{font-size:.75rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page-shell{width:min(calc(100% - (var(--space-md) * 2)), var(--container-max))}.site-nav{padding-block:var(--space-md)}.site-nav__inner{align-items:center;gap:var(--space-lg);min-height:var(--control-height);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.site-nav__brand,.site-nav__links,.site-nav__cta,.site-footer__links a,.home-hero__footer span,.eyebrow,.button,.text-link,.contact-card,.tag-list li,.case-study dt{align-items:center;display:inline-flex}.site-nav__brand{gap:var(--space-xs);letter-spacing:-.04em;min-width:0;font-weight:700}.site-nav__avatar-link{border-radius:var(--radius-pill);display:inline-flex}.site-nav__avatar{width:var(--avatar-size);height:var(--avatar-size);border:var(--rule-hairline) solid var(--color-rule-strong);border-radius:var(--radius-pill);background:var(--color-paper-2);flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.site-nav__avatar img{object-fit:cover}.site-nav__name{overflow-wrap:anywhere;min-width:0}.site-nav__links{justify-content:center;gap:var(--space-lg);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.site-nav__links a,.site-nav__cta,.site-footer__links a{min-height:var(--control-height);white-space:nowrap}.site-nav__links a{transition:color var(--dur-short) var(--ease-out)}.site-nav__links a:hover{color:var(--color-accent)}.site-nav__cta{justify-self:end;gap:var(--space-2xs);color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;transition:color var(--dur-short) var(--ease-out);font-weight:700}.site-nav__cta:hover{color:var(--color-ink)}.site-nav__cta svg,.site-footer__links a svg,.button svg,.text-link svg,.contact-card>svg{width:var(--icon-size);height:var(--icon-size)}.eyebrow{gap:var(--space-2xs);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700;line-height:1.45}.status-dot{border-radius:var(--radius-pill);background:var(--color-accent);width:7px;height:7px;margin:0;display:inline-block}.home-hero{padding-block:var(--space-2xl) var(--space-4xl);border-bottom:var(--rule-hairline) solid var(--color-rule-strong)}.home-hero__topline,.home-hero__footer,.home-contact__topline{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.home-hero__topline{padding-bottom:var(--space-md);border-bottom:var(--rule-hairline) solid var(--color-rule)}.home-hero__status{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.home-hero__content{padding-top:clamp(var(--space-xl), 8vw, var(--space-4xl))}.home-hero__kicker{max-width:30ch;color:var(--color-accent-ink);font-family:var(--font-mono);font-size:var(--text-sm);text-transform:uppercase;line-height:1.45}.home-hero__title,.section-intro h2,.home-contact__heading h2,.work-page__intro h1,.case-study-card__header h3{overflow-wrap:anywhere;min-width:0;font-family:var(--font-display);letter-spacing:-.09em;font-style:normal;font-weight:600}.home-hero__title{max-width:10ch;margin-top:var(--space-md);color:var(--color-ink);font-size:var(--text-display);line-height:.88}.home-hero__title span{color:var(--color-accent)}.home-hero__bottom{align-items:end;gap:var(--space-xl);margin-top:var(--space-2xl);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);display:grid}.home-hero__intro{max-width:54ch;color:var(--color-muted);font-size:var(--text-md);line-height:1.6}.home-hero__actions{justify-content:flex-end;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.button{min-height:var(--control-height);justify-content:center;gap:var(--space-2xs);padding-inline:var(--space-md);border:var(--rule-hairline) solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-ink);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);white-space:nowrap;font-weight:700}.button:hover{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper);transform:translateY(-1px)}.button:active{transform:translateY(0)}.text-link{min-height:var(--control-height);gap:var(--space-2xs);border-bottom:var(--rule-hairline) solid var(--color-accent);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;transition:color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out);white-space:nowrap;font-weight:700}.text-link:hover{border-color:var(--color-accent);color:var(--color-accent)}.home-hero__footer{margin-top:var(--space-3xl);padding-top:var(--space-sm);border-top:var(--rule-hairline) solid var(--color-rule);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.home-hero__footer span{gap:var(--space-2xs)}.skills-section{padding-block:var(--space-3xl);border-bottom:var(--rule-hairline) solid var(--color-rule-strong)}.section-intro{column-gap:var(--space-xl);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:end;display:grid}.section-intro .eyebrow{margin-bottom:var(--space-md);grid-column:1/-1}.section-intro h2{max-width:14ch;font-size:clamp(2.8rem,6vw,6rem);line-height:.9}.section-intro>p{max-width:54ch;color:var(--color-muted);font-size:var(--text-md);line-height:1.6}.skills-layout{gap:clamp(var(--space-xl), 8vw, var(--space-4xl));margin-top:var(--space-3xl);grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);display:grid}.skill-groups{gap:var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.skill-group{padding-top:var(--space-md);border-top:var(--rule-hairline) solid var(--color-rule-strong)}.skill-group__heading{align-items:center;gap:var(--space-sm);display:flex}.icon-frame{border:var(--rule-hairline) solid var(--color-rule-strong);border-radius:var(--radius-card);width:2.25rem;height:2.25rem;color:var(--color-accent);flex:none;place-items:center;display:grid}.skill-group h3{font-size:var(--text-md);letter-spacing:-.04em}.skill-group ul{gap:var(--space-2xs);margin-top:var(--space-md);padding-left:calc(2.25rem + var(--space-sm));display:grid}.skill-group li{color:var(--color-muted);font-size:var(--text-sm);line-height:1.4}.skill-group li:before{content:"";width:5px;height:5px;margin:0 var(--space-2xs) 2px 0;border-radius:var(--radius-pill);background:var(--color-accent);display:inline-block}.tech-stack{padding:var(--space-lg);border:var(--rule-hairline) solid var(--color-rule-strong);border-radius:var(--radius-card);background:var(--color-paper-2)}.tech-stack__heading{padding-bottom:var(--space-md);border-bottom:var(--rule-hairline) solid var(--color-rule)}.tech-stack__heading p{max-width:45ch;margin-top:var(--space-sm);color:var(--color-muted);font-size:var(--text-sm);line-height:1.55}.tech-stack__list{gap:var(--space-2xs);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.tech-stack__list li{padding:var(--space-2xs) var(--space-xs);border:var(--rule-hairline) solid var(--color-rule-strong);background:var(--color-paper);color:var(--color-ink-2);font-family:var(--font-mono);font-size:var(--text-xs)}.home-contact{padding-block:var(--space-3xl) var(--space-4xl)}.home-contact__topline{padding-bottom:var(--space-md);border-bottom:var(--rule-hairline) solid var(--color-rule-strong)}.home-contact__note{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase}.home-contact__heading{gap:var(--space-xl);margin-top:var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,.55fr);align-items:end;display:grid}.home-contact__heading h2{max-width:10ch;font-size:clamp(3rem,7vw,7rem);line-height:.88}.home-contact__heading p{max-width:45ch;color:var(--color-muted);font-size:var(--text-md);line-height:1.6}.contact-grid{gap:var(--space-xs);margin-top:var(--space-2xl);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.contact-card{min-width:0;min-height:var(--control-height);gap:var(--space-sm);padding:var(--space-md);border:var(--rule-hairline) solid var(--color-rule-strong);border-radius:var(--radius-card);color:var(--color-ink);grid-template-columns:auto minmax(0,1fr) auto}.contact-card:not(.contact-card--static){transition:border-color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out)}.contact-card:not(.contact-card--static):hover{border-color:var(--color-accent);background:var(--color-paper-2);transform:translateY(-1px)}.contact-card__icon{width:2rem;height:2rem;color:var(--color-accent);place-items:center;display:grid}.contact-card>span:nth-child(2){gap:var(--space-3xs);min-width:0;display:grid}.contact-card small{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.contact-card>svg{color:var(--color-accent);align-self:center}.contact-card--static{color:var(--color-muted)}.work-page{padding-block:var(--space-2xl) var(--space-4xl)}.work-page__intro{gap:var(--space-xl);padding-bottom:var(--space-2xl);border-bottom:var(--rule-hairline) solid var(--color-rule-strong);grid-template-columns:minmax(0,1fr) minmax(0,.6fr);align-items:end;display:grid}.work-page__intro .eyebrow{margin-bottom:var(--space-md)}.work-page__intro h1{max-width:11ch;font-size:clamp(3.4rem,8vw,8rem);line-height:.87}.work-page__intro>p{max-width:50ch;color:var(--color-muted);font-size:var(--text-md);line-height:1.6}.work-page .project-list{gap:var(--space-4xl);margin-top:var(--space-3xl);display:grid}.case-study-card{gap:clamp(var(--space-xl), 7vw, var(--space-4xl));grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start;display:grid}.case-study-card--reverse .case-study-card__media{order:2}.case-study-card--reverse .case-study-card__body{order:1}.case-study-card__media{aspect-ratio:1.08;border:var(--rule-hairline) solid var(--color-ink);background:var(--color-ink);min-width:0;color:var(--color-paper);position:relative;overflow:hidden}.case-study-card__body{min-width:0;padding-top:var(--space-xs)}.case-study-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);padding-bottom:var(--space-md);border-bottom:var(--rule-hairline) solid var(--color-rule-strong);display:flex}.case-study-card__header h3{max-width:12ch;margin-top:var(--space-2xs);font-size:clamp(2.2rem,4vw,4.4rem);line-height:.9}.case-study--blue{margin-top:var(--space-lg)}.case-study--blue>div{gap:var(--space-md);padding-block:var(--space-md);border-top:var(--rule-hairline) solid var(--color-rule);grid-template-columns:6rem minmax(0,1fr);display:grid}.case-study--blue dt{gap:var(--space-2xs);color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.case-study--blue dt svg{width:1rem;height:1rem}.case-study--blue dd{color:var(--color-muted);font-size:var(--text-sm);line-height:1.6}.case-study--blue ol{gap:var(--space-xs);padding-left:var(--space-md);list-style:decimal;display:grid}.work-page .tag-list{gap:var(--space-2xs);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.work-page .tag-list li{gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border:var(--rule-hairline) solid var(--color-rule);background:var(--color-paper-2);color:var(--color-ink-2);font-family:var(--font-mono);font-size:var(--text-xs)}.work-page .tag-list li svg{width:.8rem;height:.8rem;color:var(--color-accent)}.work-page .project-gallery{gap:var(--space-xs);margin-top:var(--space-xl);padding-top:var(--space-md);border-top:var(--rule-hairline) solid var(--color-rule)}.work-page .project-gallery__image{aspect-ratio:1.2;border:var(--rule-hairline) solid var(--color-rule);background:var(--color-paper-2)}.work-page .project-gallery__image img{object-fit:contain;padding:var(--space-xs)}.work-page .project-gallery__item figcaption{margin-top:var(--space-2xs);color:var(--color-muted)}.site-footer{justify-content:space-between;align-items:center;gap:var(--space-md);border-top:var(--rule-hairline) solid var(--color-rule-strong);min-height:6rem;color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;display:flex}.site-footer__mark{color:var(--color-accent);font-weight:700}.site-footer__links{align-items:center;gap:var(--space-md);display:flex}.site-footer__links a{gap:var(--space-2xs);transition:color var(--dur-short) var(--ease-out)}.site-footer__links a:hover{color:var(--color-accent)}@media (max-width:60rem){.site-nav__inner{grid-template-columns:minmax(0,1fr) auto}.site-nav__links{justify-content:space-between;gap:var(--space-sm);grid-area:2/1/auto/-1}.site-nav__cta{grid-area:1/2}.home-hero__bottom,.skills-layout,.home-contact__heading,.work-page__intro,.case-study-card{grid-template-columns:minmax(0,1fr)}.home-hero__actions{justify-content:flex-start}.skills-layout{gap:var(--space-2xl)}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-card--reverse .case-study-card__media,.case-study-card--reverse .case-study-card__body{order:initial}}@media (max-width:40rem){.page-shell{width:min(calc(100% - var(--space-lg)), var(--container-max))}.site-nav__name{max-width:11rem;font-size:var(--text-sm)}.site-nav__links{font-size:.62rem}.home-hero{padding-block:var(--space-xl) var(--space-3xl)}.home-hero__topline,.home-hero__footer,.home-contact__topline{flex-direction:column;align-items:flex-start}.home-hero__title{font-size:clamp(3.8rem,17vw,7rem)}.home-hero__bottom{margin-top:var(--space-xl)}.home-hero__actions{align-items:flex-start;gap:var(--space-sm);flex-direction:column}.section-intro{grid-template-columns:minmax(0,1fr)}.section-intro>p{margin-top:var(--space-lg)}.skill-groups,.contact-grid{grid-template-columns:minmax(0,1fr)}.skills-section,.home-contact{padding-block:var(--space-2xl) var(--space-3xl)}.home-contact__heading{margin-top:var(--space-xl)}.work-page{padding-block:var(--space-xl) var(--space-3xl)}.work-page__intro h1{font-size:clamp(3.5rem,16vw,6.5rem)}.work-page .project-list{gap:var(--space-3xl);margin-top:var(--space-2xl)}.case-study--blue>div{gap:var(--space-2xs);grid-template-columns:minmax(0,1fr)}.work-page .project-gallery{grid-template-columns:minmax(0,1fr)}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start;min-height:8rem}}@media (hover:hover) and (pointer:fine){.site-nav__avatar-link:hover .site-nav__avatar{border-color:var(--color-accent)}}
