@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.bb140f9f.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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.50575af1.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.78d1a7ae.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.247c8473.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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.18d7c7dc.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.71e1367e.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:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_cab50ca9-module__sYX4bW__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_cab50ca9-module__sYX4bW__variable{--font-manrope:"Manrope","Manrope Fallback"}
@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bbd88c7cbebcb5b-s.5dffbad4.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:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e3c10b17cdb86a23-s.9c849131.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(../media/612838607db3d51d-s.p.7fc7e6d5.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:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9710cef2a2a6ac70-s.a1099429.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:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a978fc28c69736ab-s.1914b782.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(../media/303804218d80822e-s.p.9b40bd6c.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:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e37557cf0085218d-s.1d7e972f.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:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(../media/146a3e5eadafdf83-s.3716a6ec.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d9b5d46d9a89ffe6-s.p.0855aa53.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:Barlow Condensed;font-style:normal;font-weight:800;font-display:swap;src:url(../media/5a938ab334846ae8-s.0d1c4196.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:Barlow Condensed;font-style:normal;font-weight:800;font-display:swap;src:url(../media/3dae58b0b46c3f93-s.725acad1.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:800;font-display:swap;src:url(../media/89232e6535d3b87e-s.p.1a05cc88.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:Barlow Condensed Fallback;src:local(Arial);ascent-override:130.73%;descent-override:26.15%;line-gap-override:0.0%;size-adjust:76.49%}.barlow_condensed_f252cbb3-module__z66bGq__className{font-family:Barlow Condensed,Barlow Condensed Fallback;font-style:normal}.barlow_condensed_f252cbb3-module__z66bGq__variable{--font-barlow:"Barlow Condensed","Barlow Condensed Fallback"}
*,: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-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#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: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-body);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}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:var(--font-body);font-feature-settings:normal;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#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}dialog{padding:0}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]:where(:not([hidden=until-found])){display:none}:root{--color-olive:#3f6212;--color-lime:#a3e635;--color-sage:#cbd58b;--color-paper:#f5f6ec;--color-paper-2:#e8e9e0;--color-paper-3:#d8d8cf;--color-ink:#1b1b15;--color-muted:#55564e;--color-rule:#b1b2a9;--color-accent:var(--color-olive);--color-accent-ink:#f9f9f3;--color-focus:var(--color-olive);--color-dark:#14140f;--color-light:#f2f2ec;--color-dark-muted:#b1b2a9;--color-dark-rule:#43433c;--color-success:#356c38;--color-image-paper:#f2f2ec;--font-body:var(--font-manrope),sans-serif;--font-display:var(--font-barlow),sans-serif;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4.5rem;--space-3xl:7rem;--ease-out:cubic-bezier(.16,1,.3,1);--bg-primary:var(--color-paper);--bg-secondary:var(--color-paper-2);--bg-tertiary:var(--color-paper-3);--text-primary:var(--color-ink);--text-secondary:var(--color-muted);--text-tertiary:var(--color-muted);--border:var(--color-rule);--card-bg:var(--color-paper);--card-border:var(--color-rule)}@supports (color:lab(0% 0 0)){:root{--color-paper:lab(96.6379% -1.51548 4.66166);--color-paper-2:lab(91.98% -1.28591 3.94167);--color-paper-3:lab(86.1888% -1.39833 4.30353);--color-ink:lab(9.62158% -1.29648 4.33358);--color-muted:lab(36.3065% -1.36562 4.33001);--color-rule:lab(72.2684% -1.39293 4.30776);--color-accent-ink:lab(97.7532% -.941426 2.862);--color-dark:lab(6.26761% -.911064 2.82024);--color-light:lab(95.4332% -.941068 2.8622);--color-dark-muted:lab(72.2684% -1.39293 4.30776);--color-dark-rule:lab(28.1856% -1.35335 4.34058);--color-success:lab(40.8999% -28.0357 23.083);--color-image-paper:lab(95.4332% -.941068 2.8622)}}.dark{--color-paper:#12120d;--color-paper-2:#1d1d18;--color-paper-3:#292924;--color-ink:#efefe9;--color-muted:#aeafa7;--color-rule:#4d4e47;--color-accent:var(--color-lime);--color-accent-ink:#14140f;--color-focus:var(--color-lime);--color-success:#82bc83}@supports (color:lab(0% 0 0)){.dark{--color-paper:lab(5.32635% -.739694 2.28544);--color-paper-2:lab(10.7662% -1.10316 3.63962);--color-paper-3:lab(16.5674% -1.11923 3.62477);--color-ink:lab(94.2732% -.940949 2.86231);--color-muted:lab(71.0907% -1.16587 3.58577);--color-rule:lab(32.8091% -1.14398 3.60335);--color-accent-ink:lab(6.26761% -.911064 2.82024);--color-success:lab(71.0974% -27.9721 22.3984)}}html,body{overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);min-width:320px}h1,h2,h3,h4{font-family:var(--font-display);overflow-wrap:anywhere;min-width:0;font-style:normal}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}::selection{background:var(--color-accent);color:var(--color-accent-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:5px}section[id]{scroll-margin-top:6rem}.container{width:100%}@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}}.section-container{width:100%;max-width:1440px;margin-inline:auto;padding-inline:clamp(1.25rem,5vw,5rem)}.section-padding{padding-block:clamp(4.5rem,8vw,8rem)}.section-heading{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3.5rem;display:flex}.section-title{letter-spacing:-.065em;font-size:clamp(2.5rem,5vw,5rem);font-weight:500;line-height:1.05}.section-subtitle{max-width:30ch;color:var(--color-muted);font-size:.95rem;line-height:1.7}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:.68rem;font-weight:600;display:inline-flex}.section-number{color:var(--color-accent)}.btn-primary,.btn-secondary{border:1px solid var(--color-ink);white-space:nowrap;border-radius:3px;justify-content:center;align-items:center;gap:.75rem;min-height:48px;padding:.8rem 1.4rem;font-size:.8rem;font-weight:500;transition:background .2s,color .2s,transform .2s;display:inline-flex}.btn-primary{background:var(--color-ink);color:var(--color-paper)}.btn-secondary{color:var(--color-ink);background:0 0}.btn-primary:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.btn-secondary:hover{background:var(--color-paper-2)}.btn-primary:active,.btn-secondary:active{transform:translateY(1px)}.skill-badge{border:1px solid var(--color-rule);color:var(--color-muted);border-radius:2px;padding:.4rem .65rem;font-size:.68rem;display:inline-block}.text-link{white-space:nowrap;align-items:center;gap:.5rem;min-height:44px;font-size:.8rem;display:inline-flex}.text-link:hover{color:var(--color-accent)}.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}.static{position:static}.absolute{position:absolute}.relative{position:relative}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mr-3{margin-right:.75rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.contents{display:contents}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.resize{resize:both}.justify-between{justify-content:space-between}.pt-0{padding-top:0}.font-sans{font-family:var(--font-body)}.text-xs{font-size:.75rem;line-height:1rem}.text-primary-500{color:var(--color-accent)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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)}.site-nav{z-index:50;background:var(--color-paper);border-bottom:1px solid var(--color-rule);position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;gap:1rem;min-height:82px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.06em;white-space:nowrap;align-items:center;gap:.7rem;font-size:1.2rem;font-weight:700;display:flex}.brand-mark{color:var(--color-accent);font-size:1.4rem}.nav-tools{align-items:center;gap:.6rem;display:flex}.icon-button{border:1px solid #0000;border-radius:3px;place-items:center;min-width:44px;min-height:44px;display:grid}.icon-button:hover{background:var(--color-paper-2);border-color:var(--color-rule)}.nav-contact{margin-inline:.5rem}.nav-menu{border-top:1px solid var(--color-rule);grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;padding-block:1.5rem;display:grid}.nav-menu a{white-space:nowrap;align-items:center;min-height:44px;font-size:.85rem;display:flex}.nav-menu a:hover{color:var(--color-accent)}.skip-link{background:var(--color-paper);padding:1rem;position:absolute;top:-5rem;left:1rem}.skip-link:focus{z-index:60;top:1rem}.hero{padding-top:clamp(2rem,5vw,5rem);position:relative}.hero-meta{color:var(--color-muted);letter-spacing:.13em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:1rem;font-size:.65rem;display:flex}.availability{align-items:center;gap:.5rem;display:flex}.status-dot{background:var(--color-success);border-radius:50%;flex-shrink:0;width:6px;height:6px}.hero-name{letter-spacing:-.08em;margin-block:clamp(2rem,4vw,4rem);font-size:clamp(4.1rem,12.7vw,12rem);font-weight:500;line-height:.89}.hero-name span{display:block}.hero-name .name-dot{color:var(--color-accent);display:inline}.hero-foot{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:2rem;padding-block:2rem 3rem;display:grid}.hero-role{letter-spacing:-.04em;max-width:24ch;font-size:clamp(1.15rem,2.4vw,2rem)}.hero-foot-right{justify-content:flex-end;align-items:center;gap:2rem;display:flex}.hero-foot-right p{color:var(--color-muted);max-width:30ch;font-size:.8rem;line-height:1.7}.hero-scroll{border:1px solid var(--color-rule);border-radius:50%;flex-shrink:0;place-items:center;width:56px;height:56px;transition:transform .3s;display:grid}.hero-scroll:hover{transform:translateY(4px)}.marquee-wrap{border-block:1px solid var(--color-rule);background:var(--color-paper-2);color:var(--color-muted);padding-block:1.15rem;overflow:hidden}.marquee-track{width:max-content;animation:45s linear infinite marquee;display:flex}.marquee-item{align-items:center;gap:2rem;padding-inline:2rem;font-size:.72rem;display:flex}.marquee-wrap:hover .marquee-track{animation-play-state:paused}.about-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(2rem,6vw,6rem);display:grid}.portrait-figure{position:relative}.portrait-image{aspect-ratio:4/5;background:var(--color-paper-2);position:relative;overflow:hidden}.portrait-image img{-o-object-fit:cover;object-fit:cover;filter:grayscale();transition:filter .7s}.portrait-image:hover img{filter:grayscale(0)}.portrait-caption{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);justify-content:space-between;margin-top:1rem;font-size:.65rem;display:flex}.about-copy{padding-top:1rem}.about-statement{font-family:var(--font-display);letter-spacing:-.045em;margin-bottom:2rem;font-size:clamp(1.65rem,3vw,2.6rem);line-height:1.3}.body-copy{color:var(--color-muted);max-width:65ch;font-size:.92rem;line-height:1.85}.about-actions{flex-wrap:wrap;gap:.75rem;margin-block:2rem;display:flex}.education-list{border-top:1px solid var(--color-rule);margin-top:3rem}.education-item{border-bottom:1px solid var(--color-rule);padding-block:1.5rem}.education-item h4{margin-bottom:.6rem;font-size:1rem}.education-item p{color:var(--color-muted);font-size:.78rem;line-height:1.8}.experience-section{background:var(--color-paper-2);color:var(--color-ink)}.experience-row{border-top:1px solid var(--color-rule);grid-template-columns:minmax(0,.7fr) minmax(0,1.2fr) minmax(0,1.1fr);gap:2rem;padding-block:2.5rem;display:grid}.experience-date{color:var(--color-muted);font-size:.75rem;line-height:1.6}.company-line{align-items:center;gap:1rem;margin-bottom:.85rem;display:flex}.company-logo{background:var(--color-image-paper);border-radius:2px;flex-shrink:0;place-items:center;width:54px;height:54px;padding:.4rem;display:grid}.company-logo img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.company-line h3{letter-spacing:-.04em;font-size:1.3rem}.experience-role{margin-bottom:.4rem;font-size:.82rem}.experience-location{color:var(--color-muted);font-size:.72rem}.experience-detail p{color:var(--color-muted);margin-bottom:1rem;font-size:.82rem;line-height:1.8}.tag-row{flex-wrap:wrap;gap:.5rem;display:flex}.project-filters{flex-wrap:wrap;gap:.6rem;margin-bottom:2rem;display:flex}.filter-button{border:1px solid var(--color-rule);white-space:nowrap;border-radius:2px;min-height:44px;padding:.65rem 1.1rem;font-size:.75rem}.filter-button[aria-pressed=true]{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}.filter-button:hover{border-color:var(--color-ink)}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem 2rem;display:grid}.project-featured{grid-column:1/-1}.project-visual{background:var(--color-paper-2);aspect-ratio:1.55;border:1px solid var(--color-rule);place-items:center;display:grid;position:relative;overflow:hidden}.project-featured .project-visual{aspect-ratio:2.2}.project-screenshot{width:86%;height:83%;position:relative;overflow:hidden;transform:none}.project-screenshot img{-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top}.project-caption{justify-content:space-between;align-items:start;gap:2rem;padding-top:1.5rem;display:flex}.project-caption h3{letter-spacing:-.05em;margin-bottom:.7rem;font-size:clamp(1.3rem,2.5vw,2rem)}.project-caption p{color:var(--color-muted);max-width:60ch;margin-bottom:1rem;font-size:.8rem;line-height:1.8}.project-index{color:var(--color-muted);flex-shrink:0;padding-top:.5rem;font-size:.68rem}.project-visual-label{letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);font-size:.62rem;position:absolute;top:1.5rem;left:1.5rem}.signal-art{border-bottom:1px solid var(--color-rule);align-items:end;gap:2%;width:80%;height:48%;display:flex}.signal-art span{background:var(--color-ink);opacity:.65;width:6%}.signal-art span:nth-child(9){background:var(--color-accent);opacity:1}.rag-art{justify-content:center;align-items:center;gap:1rem;width:80%;display:flex}.rag-node{border:1px solid var(--color-rule);text-align:center;background:var(--color-paper);padding:1.2rem .8rem;font-size:.65rem}.rag-node:last-child{color:var(--color-accent);border-color:var(--color-accent)}.project-caption details{margin-top:1.5rem}.project-caption summary{cursor:pointer;align-items:center;gap:.5rem;width:fit-content;min-height:44px;font-size:.8rem;display:flex}.project-caption summary:hover{color:var(--color-accent)}.project-caption details[open] summary{margin-bottom:1rem}.skills-section{background:var(--color-dark);color:var(--color-light)}.skills-section .eyebrow,.skills-section .section-subtitle{color:var(--color-dark-muted)}.skills-list{-moz-column-gap:5rem;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:5rem;display:grid}.skill-row{border-top:1px solid var(--color-dark-rule);grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:1rem;padding-block:1.5rem;display:grid}.skill-row h3{font-size:.95rem}.skill-row p{color:var(--color-dark-muted);font-size:.8rem;line-height:1.9}.certification-band{border-block:1px solid var(--color-rule);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:2rem;padding-block:2.5rem;display:grid}.certification-number{font-family:var(--font-display);letter-spacing:-.09em;color:var(--color-accent);font-size:6rem;line-height:1}.certification-band h3{letter-spacing:-.04em;max-width:30ch;font-size:clamp(1.4rem,2.7vw,2.4rem);line-height:1.25}.certification-band p{text-transform:uppercase;letter-spacing:.15em;color:var(--color-muted);margin-bottom:.75rem;font-size:.7rem}.certified-label{color:var(--color-muted);align-items:center;gap:.5rem;font-size:.72rem;display:flex}.leadership-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:5rem;display:grid}.leadership-art{flex-direction:column;align-self:start;align-items:center;gap:1rem;min-width:0;display:flex}.ai-nexus-stage{background:var(--color-paper-2);border:1px solid var(--color-rule);width:100%;max-width:420px;padding:clamp(1.5rem,4vw,3rem)}.ai-nexus-logo{aspect-ratio:308/269;width:100%;display:block;position:relative;overflow:clip}.ai-nexus-logo img{width:162.338%;max-width:none;height:auto;position:absolute;top:-43.1227%;left:-30.5195%}.ai-nexus-white,.dark .ai-nexus-color{display:none}.dark .ai-nexus-white{display:block}.certification-band+.certification-band{border-top:0}.leadership-art figcaption{letter-spacing:.1em;width:100%;max-width:420px;color:var(--color-muted);justify-content:space-between;gap:1rem;font-size:.65rem;display:flex}.leadership-art figcaption span{color:var(--color-accent)}.leadership-copy h3{letter-spacing:-.04em;margin-bottom:1rem;font-size:1.6rem}.responsibility-list{margin-top:1.5rem}.responsibility-list li{border-top:1px solid var(--color-rule);gap:1rem;padding-block:1rem;font-size:.82rem;line-height:1.6;display:flex}.responsibility-list span{color:var(--color-accent);padding-top:.2rem;font-size:.65rem}.contact-section{background:var(--color-paper-2);color:var(--color-ink)}.contact-headline{letter-spacing:-.075em;max-width:11ch;margin-bottom:3rem;font-size:clamp(3.5rem,9vw,8rem);line-height:1}.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5rem;display:grid}.contact-email{white-space:nowrap;border-bottom:1px solid var(--color-ink);align-items:center;gap:.75rem;min-height:44px;margin-bottom:1.5rem;font-size:clamp(.85rem,1.65vw,1.4rem);display:inline-flex}.contact-links{flex-wrap:wrap;gap:1.5rem;margin-top:2rem;display:flex}.contact-form{gap:1.25rem;display:grid}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.contact-form label{margin-bottom:.5rem;font-size:.72rem;display:block}.contact-form input,.contact-form textarea{border:1px solid var(--color-rule);background:var(--color-paper);width:100%;min-height:48px;color:var(--color-ink);border-radius:2px;padding:.8rem;font-size:.85rem;transition:background .2s}.contact-form input:hover,.contact-form textarea:hover{background:var(--color-paper-2)}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.contact-form textarea{resize:vertical;min-height:130px}.contact-form input::-moz-placeholder{color:var(--color-muted)}.contact-form textarea::-moz-placeholder{color:var(--color-muted)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--color-muted)}.form-note{color:var(--color-muted);min-height:1.2rem;font-size:.7rem;line-height:1.6}.footer-top{justify-content:space-between;align-items:center;gap:2rem;padding-block:3rem;display:flex}.footer-bottom{border-top:1px solid var(--color-rule);color:var(--color-muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-block:1.5rem;font-size:.65rem;display:flex}.footer-links{gap:1.5rem;display:flex}.scroll-progress{background:var(--color-accent);z-index:70;transform-origin:0;height:2px;position:fixed;top:0;left:0;right:0}.reveal-up{animation:linear both reveal-up;animation-timeline:view();animation-range:entry cover 15%}@keyframes reveal-up{0%{opacity:1;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes marquee{to{transform:translate(-50%)}}@supports not (animation-timeline:view()){.reveal-up{animation:none}}@media (max-width:60rem){.section-heading{flex-direction:column;align-items:start;gap:1rem}.section-subtitle{max-width:50ch}.experience-row{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}.experience-detail{grid-column:2}.skills-list{-moz-column-gap:2rem;column-gap:2rem}.skill-row{grid-template-columns:minmax(0,1fr)}.contact-grid,.leadership-grid{gap:2rem}}@media (max-width:40rem){.nav-inner{min-height:70px}.wordmark{font-size:1rem}.nav-tools{gap:0}.nav-contact{display:none}.nav-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-meta{letter-spacing:.06em;align-items:start;font-size:.58rem}.availability{max-width:23ch;line-height:1.5}.hero-name{margin-block:3rem;font-size:clamp(4.1rem,15vw,6.5rem)}.hero-name .surname{margin-left:10%}.hero-foot{grid-template-columns:minmax(0,1fr);gap:1.5rem}.hero-foot-right{justify-content:space-between}.about-grid,.projects-grid,.leadership-grid,.contact-grid{grid-template-columns:minmax(0,1fr)}.portrait-figure{max-width:380px}.experience-row{grid-template-columns:minmax(0,1fr);gap:1rem}.experience-detail{grid-column:auto}.projects-grid{gap:3rem}.project-featured .project-visual{aspect-ratio:1.55}.project-caption{gap:1rem}.skills-list{grid-template-columns:minmax(0,1fr)}.skill-row{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}.certification-band{grid-template-columns:auto minmax(0,1fr);gap:1rem}.certification-number{font-size:4.5rem}.certified-label{grid-column:2}.rag-art{gap:.5rem;width:90%}.rag-node{padding:1rem .5rem;font-size:.6rem}.form-row{grid-template-columns:minmax(0,1fr)}.footer-top{flex-direction:column;align-items:start;gap:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}:root{--color-on-dark-accent:var(--color-lime)}.skills-section .section-number{color:var(--color-on-dark-accent)}.marquee-wrap{position:relative}.marquee-wrap:focus-within .marquee-track{animation-play-state:paused}.marquee-pause{background:var(--color-paper-2);color:var(--color-ink);border-left:1px solid var(--color-rule);position:absolute;top:50%;right:0;transform:translateY(-50%)}button:active{filter:brightness(.94)}button:disabled,input:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}a:active{opacity:.8}:is(.contact-form input:user-invalid,.contact-form textarea:user-invalid){border-color:var(--color-accent)}:root{--color-input-rule:#787870}@supports (color:lab(0% 0 0)){:root{--color-input-rule:lab(50.2275% -1.37967 4.31833)}}.dark{--color-input-rule:#808179}@supports (color:lab(0% 0 0)){.dark{--color-input-rule:lab(53.7077% -1.38235 4.31621)}}.contact-form input,.contact-form textarea,.filter-button{border-color:var(--color-input-rule)}.wordmark{text-transform:uppercase;letter-spacing:.025em;gap:.8rem;font-size:1.35rem;font-weight:700}.brand-mark{width:36px;height:34px;color:var(--color-ink);flex-shrink:0}.section-title{letter-spacing:-.015em;font-size:clamp(2.75rem,5.5vw,5.5rem);font-weight:600}.contact-headline{letter-spacing:-.02em;font-weight:600}.about-statement{letter-spacing:0;font-weight:500}.hero-diptych{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(2rem,6vw,6rem);padding-block:2.5rem;display:grid}.hero-name{text-transform:uppercase;letter-spacing:-.025em;margin-block:0;font-size:clamp(6rem,14vw,13rem);font-weight:800;line-height:1}.hero-name .surname{margin-left:0}.hero-discipline{letter-spacing:.16em;color:var(--color-muted);margin-top:1.5rem;font-size:.65rem;font-weight:600}.hero-discipline span{color:var(--color-accent);margin-inline:.5rem}.hero-work{border-top:2px solid var(--color-ink)}.hero-work h2{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;padding-block:1.2rem;font-size:.68rem;font-weight:600;display:flex}.hero-work h2 span{color:var(--color-muted);letter-spacing:0;font-size:.6rem}.hero-work-link{border-top:1px solid var(--color-rule);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.25rem;padding-block:1.5rem;display:grid}.hero-work-number{color:var(--color-muted);font-size:.65rem}.hero-work-link strong{font-family:var(--font-display);letter-spacing:.02em;font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:600;display:block}.hero-work-link small{color:var(--color-muted);margin-top:.4rem;font-size:.72rem;line-height:1.5;display:block}.hero-work-link:hover strong{color:var(--color-accent)}.hero-work-all{border-top:1px solid var(--color-rule);justify-content:space-between;width:100%;padding-block:1rem}.hero-foot{border-top:1px solid var(--color-rule);padding-block:1.5rem 3rem}.hero-role{font-family:var(--font-body);letter-spacing:0;max-width:36ch;font-size:clamp(.9rem,1.5vw,1.2rem)}.portrait-image img{filter:none}.marquee-item:after{content:"/";color:var(--color-muted)}.project-caption h3,.company-line h3,.leadership-copy h3{letter-spacing:0;font-weight:600}@media (max-width:60rem){.hero-diptych{gap:2rem}.hero-name{font-size:clamp(6rem,15vw,10rem)}}@media (max-width:40rem){.hero-diptych{grid-template-columns:minmax(0,1fr);padding-block:2rem}.hero-name{font-size:clamp(6rem,27vw,10rem)}.hero-name .surname{margin-left:0}.hero-work h2{font-size:.65rem}.hero-work-link{padding-block:1rem}.hero-work-link strong{font-size:1.7rem}.wordmark{gap:.5rem;font-size:1.05rem}.brand-mark{width:30px;height:28px}.hero-discipline{letter-spacing:.07em}}.brand-logo{flex-shrink:0;display:block;position:relative;overflow:hidden}.brand-logo--horizontal{aspect-ratio:1695/258;width:clamp(120px,18vw,190px)}.brand-logo--horizontal .brand-image{width:118.053%;max-width:none;height:auto;position:absolute;top:-237.597%;left:-5.8407%}.brand-logo--vertical{aspect-ratio:1471/910;width:100%}.brand-logo--vertical .brand-image{width:136.03%;max-width:none;height:auto;position:absolute;top:-30.989%;left:-19.9184%}.brand-image--dark{visibility:hidden}.dark .brand-image--dark{visibility:visible}.dark .brand-image--light{visibility:hidden}.hero-brand{width:100%;margin-block:1.5rem}.footer-top .brand-logo--horizontal{width:clamp(180px,24vw,260px)}.hero-work-number{color:var(--color-accent)}.hero-work-link:hover{background:var(--color-paper-2)}.hero-work-link{padding-inline:.75rem;transition:background .2s}.project-visual{background:color-mix(in srgb,var(--color-sage)22%,var(--color-paper))}.dark .project-visual{background:var(--color-paper-2)}.portrait-caption{border-top:1px solid var(--color-rule);padding-top:1rem}.hero-scroll{border-color:var(--color-accent);color:var(--color-accent)}.certification-number{color:var(--color-accent)}@media (max-width:40rem){.hero-brand{max-width:400px;margin-block:1rem}}.projects-grid{flex-direction:column;gap:0;display:flex}.project-showcase{border-top:1px solid var(--color-rule);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(2rem,5vw,5rem);padding-block:3.5rem;display:grid}.project-preview{min-width:0}.project-screenshot{border:1px solid var(--color-rule);background:var(--color-image-paper);border-radius:8px;width:100%;height:auto;margin:0;overflow:hidden;transform:none}.project-screenshot img{-o-object-fit:contain;object-fit:contain;width:100%;height:auto;display:block}.project-visual:hover .project-screenshot{transform:none}.project-preview-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.project-preview-tabs button{border:1px solid var(--color-input-rule);white-space:nowrap;border-radius:3px;min-height:44px;padding:.6rem 1rem;font-size:.72rem}.project-preview-tabs button[aria-pressed=true]{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}.project-preview-tabs button:hover{border-color:var(--color-accent)}.project-preview-caption{letter-spacing:.08em;color:var(--color-muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;font-size:.62rem;display:flex}.project-caption{padding:0;display:block}.project-caption h3{letter-spacing:0;margin-block:.75rem 1.5rem;font-size:clamp(2rem,3.8vw,3.6rem);line-height:1.1}.project-caption p{font-size:.9rem;line-height:1.85}.project-caption .eyebrow{letter-spacing:.12em;font-size:.63rem;line-height:1.7}.project-highlights{gap:.75rem;margin-block:1.5rem;display:grid}.project-highlights li{color:var(--color-muted);gap:.8rem;font-size:.8rem;line-height:1.7;display:flex}.project-highlights li:before{content:"";background:var(--color-accent);flex-shrink:0;width:5px;height:5px;margin-top:.5rem}.project-caption details{border-top:1px solid var(--color-rule);margin-top:1.5rem;padding-top:.5rem}.project-system{border:1px solid var(--color-rule);background:var(--color-paper-2);min-height:300px;color:var(--color-ink);border-radius:8px;flex-direction:column;justify-content:space-between;gap:2rem;padding:clamp(1.25rem,3vw,2.5rem);display:flex}.project-system figcaption{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);justify-content:space-between;align-items:center;gap:1rem;font-size:.62rem;display:flex}.project-system figcaption span{color:var(--color-accent)}.project-system-flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;display:grid}.project-system-step{border-top:1px solid var(--color-rule);min-width:0;padding-top:1rem;position:relative}.project-system-number{color:var(--color-accent);margin-bottom:.7rem;font-size:.62rem;display:block}.project-system-step strong{font-family:var(--font-display);font-size:clamp(1.15rem,2vw,1.8rem);font-weight:600;display:block}.project-system-step small{color:var(--color-muted);margin-top:.5rem;font-size:.65rem;line-height:1.6;display:block}.project-system-arrow{background:var(--color-paper-2);color:var(--color-accent);position:absolute;top:-9px;right:-20px}.project-system p{color:var(--color-muted);max-width:65ch;font-size:.75rem;line-height:1.8}@media (max-width:60rem){.project-showcase{grid-template-columns:minmax(0,1fr);align-items:start;gap:2rem}.project-caption h3{max-width:28ch}}@media (max-width:40rem){.project-showcase{padding-block:2.5rem}.project-system{gap:1.5rem;min-height:270px}.project-system-flow{gap:1rem}.project-system-arrow{width:14px;top:-7px;right:-14px}.project-system-step small{font-size:.6rem}.project-system figcaption{letter-spacing:.04em;font-size:.55rem}}.project-client-logo{-o-object-fit:contain;object-fit:contain;align-self:center;width:120px;height:120px}.nav-menu .nav-academic-link{grid-column:1/-1}:root{--color-chat-overlay:#0006;--color-chat-shadow:#0000002e;--color-chat-metal:#c5cbd0;--color-chat-face:#172019;--color-chat-error:#a32727}.dark{--color-chat-error:#ffb4ab}.chat-launcher{z-index:45;border:1px solid var(--color-rule);background:var(--color-paper-2);width:100px;height:114px;box-shadow:0 6px 24px var(--color-chat-shadow);border-radius:24px;flex-direction:column;align-items:center;transition:border-color .2s,transform .2s;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.chat-launcher[data-open=true]{visibility:hidden}.chat-launcher:hover{border-color:var(--color-accent);transform:translateY(-2px)}.chat-launcher:active{transform:translateY(1px)}.chat-launcher-note{background:var(--color-paper);border:1px solid var(--color-rule);width:max-content;max-width:min(260px,100vw - 40px);color:var(--color-muted);opacity:0;pointer-events:none;border-radius:8px;padding:.6rem .75rem;font-size:.65rem;transition:opacity .2s;position:absolute;bottom:calc(100% + .6rem);right:0}.chat-launcher:hover .chat-launcher-note,.chat-launcher:focus-visible .chat-launcher-note{opacity:1}.chat-launcher-name{letter-spacing:.14em;color:var(--color-muted);font-size:.6rem}.chat-launcher-name span{color:var(--color-accent);margin-left:.5rem}.chat-mascot{width:100px;height:90px;display:block;position:relative}.chat-mascot canvas{pointer-events:none;position:absolute;inset:0}.chat-mascot[data-webgl=ready] .chat-mascot-fallback{display:none}.chat-mascot-fallback,.chat-header-face{background:var(--color-chat-face);border:5px solid var(--color-chat-metal);border-radius:40%;justify-content:center;align-items:center;gap:9px;display:flex}.chat-mascot-fallback{position:absolute;inset:22px 20px}.chat-mascot-fallback i,.chat-header-face i{background:var(--color-lime);border-radius:6px;width:5px;height:10px}.chat-launcher[data-sleeping=true] .chat-mascot-fallback i{height:2px}.chat-sleep-mark{color:var(--color-accent);letter-spacing:.15em;font-size:.6rem;position:absolute;top:9px;right:10px}.chat-dialog{border:1px solid var(--color-rule);background:var(--color-paper);width:min(460px,100vw - 32px);max-width:none;height:min(680px,100dvh - 32px);max-height:none;color:var(--color-ink);box-shadow:0 12px 64px var(--color-chat-shadow);border-radius:20px;margin:0;padding:0;position:fixed;inset:auto 1.5rem 1.5rem auto}.chat-dialog::backdrop{background:var(--color-chat-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chat-panel{grid-template-rows:auto minmax(0,1fr) auto;height:100%;display:grid}.chat-header{border-bottom:1px solid var(--color-rule);align-items:center;gap:.75rem;padding:1rem 1.1rem;display:flex}.chat-header-face{border-width:3px;flex-shrink:0;gap:7px;width:40px;height:38px}.chat-header h2{font-family:var(--font-body);align-items:center;gap:.5rem;font-size:1rem;font-weight:700;display:flex}.chat-header p{color:var(--color-muted);margin-top:.15rem;font-size:.6rem}.chat-online-dot{background:var(--color-accent);border-radius:50%;width:6px;height:6px}.chat-header-actions{flex-shrink:0;margin-left:auto;display:flex}.chat-header-actions button{width:44px;height:44px;color:var(--color-muted);border-radius:8px;place-items:center;display:grid}.chat-header-actions button:hover{background:var(--color-paper-2);color:var(--color-ink)}.chat-header-actions button:active,.chat-starters button:active{transform:translateY(1px)}.chat-transcript{overscroll-behavior:contain;padding:1.25rem;overflow-y:auto}.chat-welcome .eyebrow{margin-bottom:.75rem;font-size:.55rem}.chat-welcome h3{letter-spacing:-.03em;margin-bottom:.75rem;font-size:2.25rem;line-height:1.05}.chat-welcome p,.chat-message p{overflow-wrap:anywhere;font-size:.8rem;line-height:1.8}.chat-welcome p{color:var(--color-muted)}.chat-small-label{color:var(--color-muted);margin-bottom:.65rem;font-size:.62rem}.chat-starters>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.chat-starters button{border:1px solid var(--color-rule);background:var(--color-paper-2);text-align:left;border-radius:10px;min-height:86px;padding:.85rem}.chat-starters strong{justify-content:space-between;align-items:flex-start;gap:.35rem;font-size:.72rem;font-weight:600;line-height:1.55;display:flex}.chat-starters strong svg{color:var(--color-accent);flex-shrink:0;margin-top:.2rem}.chat-starters button>span{color:var(--color-muted);margin-top:.4rem;font-size:.62rem;line-height:1.6;display:block}.chat-starters button:hover{border-color:var(--color-accent)}.chat-messages{gap:1rem;display:grid}.chat-message{background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:12px;padding:.9rem 1rem}.chat-message>span{color:var(--color-accent);margin-bottom:.35rem;font-size:.62rem;font-weight:700;display:block}.chat-message p{white-space:pre-wrap}.chat-message--user{background:var(--color-paper);margin-left:2rem}.chat-message--user>span{color:var(--color-muted)}.chat-thinking{color:var(--color-muted);align-items:center;gap:.6rem;padding:1rem 0;font-size:.7rem;display:flex}.chat-thinking span{color:var(--color-accent);letter-spacing:.15em;animation:1s ease-in-out infinite alternate chat-think}.chat-error{border:1px solid var(--color-chat-error);color:var(--color-chat-error);border-radius:10px;margin-top:1rem;padding:.9rem;font-size:.72rem}.chat-error button,.chat-error a{white-space:nowrap;align-items:center;gap:.5rem;min-height:44px;margin-right:1rem;text-decoration:underline;display:inline-flex}.chat-composer{border-top:1px solid var(--color-rule);background:var(--color-paper-2);padding:1rem 1.25rem .85rem}.chat-composer label{margin-bottom:.5rem;font-size:.62rem;display:block}.chat-composer>div{align-items:center;gap:.5rem;display:flex}.chat-composer textarea{resize:none;border:1px solid var(--color-rule);background:var(--color-paper);width:100%;min-width:0;min-height:48px;max-height:100px;color:var(--color-ink);border-radius:10px;padding:.75rem;font-size:.75rem;line-height:1.5}.chat-composer textarea::placeholder{color:var(--color-muted)}.chat-composer textarea:hover{border-color:var(--color-accent)}.chat-composer button{background:var(--color-accent);width:48px;height:48px;color:var(--color-accent-ink);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.chat-composer button:hover:not(:disabled){filter:brightness(1.1)}.chat-composer button:active:not(:disabled){transform:translateY(1px)}.chat-composer p{color:var(--color-muted);margin-top:.55rem;font-size:.58rem}.chat-dialog button:disabled,.chat-dialog textarea:disabled{opacity:.5;cursor:not-allowed}.chat-dialog button:focus-visible,.chat-dialog a:focus-visible,.chat-dialog textarea:focus-visible,.chat-launcher:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@keyframes chat-think{to{opacity:.35}}@media (max-width:640px){.chat-launcher{border-radius:20px;width:82px;height:94px;bottom:1rem;right:1rem}.chat-mascot{width:82px;height:73px}.chat-dialog{width:calc(100vw - 24px);height:min(680px,100dvh - 24px);inset:auto 12px 12px auto}.chat-header{gap:.5rem;padding:.75rem}.chat-header p{max-width:19ch}.chat-transcript{padding:1rem}.chat-starters>div{grid-template-columns:minmax(0,1fr)}.chat-starters button{min-height:68px}.chat-starters strong{font-size:.75rem}.chat-composer{padding:.85rem 1rem}}@media (prefers-reduced-motion:reduce){.chat-launcher,.chat-launcher-note{transition:none}.chat-thinking span{animation:none}}html:has(.chat-dialog[open]){overflow-y:auto}.chat-launcher,.chat-launcher[data-open=true]{width:170px;height:170px;box-shadow:none;visibility:visible;background:0 0;border:0;border-radius:0;bottom:20px;right:24px}.chat-launcher:hover,.chat-launcher:active{border:0;transform:none}.chrome-mascot{width:170px;height:170px;display:block;position:relative}.chrome-mascot>div{width:100%;height:100%}.chat-launcher-note{opacity:1;font-size:.7rem;bottom:90%;right:0}.chat-launcher[data-open=true] .chat-launcher-note{opacity:0}.chat-launcher:has(.chrome-mascot:not([data-stage=awake])) .chat-launcher-note{opacity:0}.chrome-welcome{border:1px solid var(--color-accent);background:var(--color-paper);width:max-content;color:var(--color-ink);border-radius:12px;padding:.65rem 1rem;font-size:.72rem;position:absolute;bottom:95%;right:0}.chrome-fallback{background:var(--color-chat-metal);width:90px;height:90px;color:var(--color-chat-face);border-radius:50%;place-items:center;margin:35px auto;font-size:2rem;display:grid}.chat-dialog{z-index:50;border-radius:16px;width:min(440px,100vw - 32px);height:min(540px,100dvh - 224px);inset:auto 28px 200px auto}.chat-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}.chat-header-face{display:none}.firefly-screen-overlay{pointer-events:none;z-index:40;position:fixed;inset:0;overflow:clip;width:100vw!important;height:100dvh!important}.screen-firefly{width:10px;height:10px;position:absolute}.firefly-aura{background:var(--color-lime);opacity:.1;filter:blur(9px);border-radius:50%;position:absolute;inset:-14px}.firefly-core{background:var(--color-lime);box-shadow:0 0 9px var(--color-lime);border-radius:50%;position:absolute;inset:2px}.firefly-wing{background:var(--color-sage);opacity:.6;border-radius:50%;width:7px;height:3px;animation:.13s linear infinite alternate firefly-wing;position:absolute;top:1px}.wing-left{transform-origin:100%;left:-3px}.wing-right{transform-origin:0;right:-3px}@keyframes firefly-wing{to{transform:scaleY(.15)}}@media (max-width:640px){.chat-launcher,.chat-launcher[data-open=true]{width:120px;height:120px;bottom:8px;right:8px}.chrome-mascot{width:120px;height:120px}.chat-dialog{width:calc(100vw - 24px);height:min(530px,100dvh - 156px);inset:auto 12px 136px auto}.chat-launcher-note{font-size:.62rem}}@media (prefers-reduced-motion:reduce){.firefly-wing{animation:none}}.chat-launcher[data-open=true]:hover .chat-launcher-note,.chat-launcher[data-open=true]:focus-visible .chat-launcher-note{opacity:0}.chat-welcome .eyebrow{display:none}.chat-welcome{padding-bottom:.85rem}.chat-welcome h3{margin-bottom:.5rem;font-size:1.9rem}.chat-welcome p{font-size:.75rem;line-height:1.65}.chat-starters button{min-height:76px;padding:.65rem}.chat-transcript{padding:1rem}.contact-form .contact-honeypot{display:none}.contact-form button:disabled{cursor:wait;opacity:.65}.contact-form input:disabled,.contact-form textarea:disabled{opacity:.7}.contact-form .form-note[data-state=success]{color:var(--color-accent)}.contact-form .form-note[data-state=error]{color:var(--color-ink)}.contact-spinner{animation:1s linear infinite contact-spin}@keyframes contact-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.contact-spinner{animation:none}}.chat-launcher:has(.chrome-welcome) .chat-launcher-note{display:none}.chrome-welcome{pointer-events:none;white-space:nowrap;max-width:calc(100vw - 40px)}.motion-word-clip{vertical-align:bottom;max-width:100%;margin-bottom:-.13em;padding-bottom:.13em;display:inline-block;overflow:clip}.motion-word{overflow-wrap:anywhere;max-width:100%;display:inline-block}.motion-text{min-width:0}.motion-enhanced .reveal-up{animation:none}.motion-enhanced [data-motion-state=pending]{opacity:0}.motion-enhanced [data-motion-state=revealed]{opacity:1}.motion-enhanced .hero-brand[data-scroll-linked]{translate:0 var(--hero-drift,0px);transform-origin:0}.motion-enhanced .portrait-image[data-scroll-linked]{overflow:clip}.motion-enhanced .portrait-image[data-scroll-linked] img{translate:0 var(--parallax-y,0px);scale:1.12}.motion-enhanced .project-screenshot[data-scroll-linked]{scale:calc(.975 + var(--scroll-progress,.5)*.025);transform-origin:50%}.motion-enhanced .about-statement[data-scroll-linked]{background:linear-gradient(to right,var(--color-ink)0 var(--text-fill,0%),var(--color-muted)var(--text-fill,0%)100%);color:#0000;-webkit-background-clip:text;background-clip:text}.motion-enhanced [data-motion-effect=rule]{position:relative}.motion-enhanced [data-motion-effect=rule]:after{content:"";background:var(--color-accent);transform-origin:0;height:1px;transition:transform .85s var(--ease-out);pointer-events:none;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.motion-enhanced [data-motion-effect=rule][data-motion-state=revealed]:after{transform:scaleX(1)}.motion-enhanced .experience-section,.motion-enhanced .skills-section{position:relative}.motion-enhanced .experience-section:before,.motion-enhanced .skills-section:before{content:"";background:var(--color-accent);width:100%;height:3px;transform:scaleX(var(--scroll-progress,0));transform-origin:0;pointer-events:none;position:absolute;top:0;left:0}@media (min-width:961px){.motion-enhanced .project-showcase{align-items:start}.motion-enhanced .project-preview{position:sticky;top:105px}}@media (prefers-reduced-motion:reduce){.motion-enhanced [data-motion-state]{opacity:1!important;clip-path:none!important;transform:none!important}.motion-word{opacity:1!important;transform:none!important}[data-scroll-linked],[data-scroll-linked] img{translate:none!important;scale:1!important}.about-statement[data-scroll-linked]{color:var(--color-ink)!important;background:0 0!important}}.motion-enhanced [data-motion-effect=rule]:after{transition-duration:.35s}@supports (animation-timeline:view()){@media (min-width:768px) and (prefers-reduced-motion:no-preference){.motion-enhanced .portrait-image{overflow:clip}.motion-enhanced .portrait-image img{animation:linear both portrait-native;animation-timeline:view();animation-range:entry exit}}}@keyframes portrait-native{0%{transform:translateY(-18px)scale(1.08)}to{transform:translateY(18px)scale(1.08)}}.motion-enhanced .experience-section:before,.motion-enhanced .skills-section:before{content:none}.cv-dialog{border:1px solid var(--color-rule);background:var(--color-paper);width:min(440px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--color-ink);border-radius:16px;margin:auto;padding:0;position:fixed;inset:0;box-shadow:0 24px 80px #0003}.cv-dialog::backdrop{background:#0008}.cv-dialog-content{padding:48px 28px 28px;position:relative}.cv-dialog h2{margin-bottom:24px;font-size:1.25rem;font-weight:600}.cv-dialog-close{padding:8px;position:absolute;top:12px;right:12px}.cv-dialog-options{flex-wrap:wrap;gap:12px;display:flex}.cv-dialog-options a{flex:1;justify-content:space-between}
