@font-face{font-family:IBM Plex Sans;src:local(IBM Plex Sans Regular),local(IBM Plex Sans),url(../_fonts/NAvprNCT47CLjj3GX-WDKhZkNzd7sAAEJjsoU4m9n5s-_KNkKFeq0DWFjHdakCTw2DIvIZ8VcCPQViV2NsQ_ugo.woff2)format("woff2");font-display:swap;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-weight:400;font-style:normal;font-stretch:100%}@font-face{font-family:IBM Plex Sans Fallback\: BlinkMacSystemFont;src:local(BlinkMacSystemFont);size-adjust:108.282%;ascent-override:94.66%;descent-override:25.3966%;line-gap-override:0%}@font-face{font-family:IBM Plex Sans Fallback\: Segoe UI;src:local(Segoe UI);size-adjust:101.723%;ascent-override:100.764%;descent-override:27.0341%;line-gap-override:0%}@font-face{font-family:IBM Plex Sans Fallback\: Helvetica Neue;src:local(Helvetica Neue);size-adjust:100.222%;ascent-override:102.273%;descent-override:27.439%;line-gap-override:0%}@font-face{font-family:IBM Plex Sans Fallback\: Arial;src:local(Arial);size-adjust:101.166%;ascent-override:101.318%;descent-override:27.183%;line-gap-override:0%}@font-face{font-family:IBM Plex Sans Fallback\: Noto Sans;src:local(Noto Sans);size-adjust:95.1477%;ascent-override:107.727%;descent-override:28.9024%;line-gap-override:0%}@font-face{font-family:IBM Plex Sans;src:local(IBM Plex Sans Regular),local(IBM Plex Sans),url(../_fonts/8yfpHalfiruUnOlEjXAfKI-EE4NlNjlVImQJr-kKi8g-1vG_ZyIAcgj7Zi9Y_7AZOa45lCkr-iXD4cDI90NO4vM.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:normal;font-stretch:100%}@font-face{font-family:IBM Plex Sans;src:local(IBM Plex Sans Medium),url(../_fonts/NAvprNCT47CLjj3GX-WDKhZkNzd7sAAEJjsoU4m9n5s-_KNkKFeq0DWFjHdakCTw2DIvIZ8VcCPQViV2NsQ_ugo.woff2)format("woff2");font-display:swap;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-weight:500;font-style:normal;font-stretch:100%}@font-face{font-family:IBM Plex Sans;src:local(IBM Plex Sans Medium),url(../_fonts/8yfpHalfiruUnOlEjXAfKI-EE4NlNjlVImQJr-kKi8g-1vG_ZyIAcgj7Zi9Y_7AZOa45lCkr-iXD4cDI90NO4vM.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:500;font-style:normal;font-stretch:100%}@font-face{font-family:IBM Plex Sans;src:local(IBM Plex Sans SemiBold),url(../_fonts/NAvprNCT47CLjj3GX-WDKhZkNzd7sAAEJjsoU4m9n5s-_KNkKFeq0DWFjHdakCTw2DIvIZ8VcCPQViV2NsQ_ugo.woff2)format("woff2");font-display:swap;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-weight:600;font-style:normal;font-stretch:100%}@font-face{font-family:IBM Plex Sans;src:local(IBM Plex Sans SemiBold),url(../_fonts/8yfpHalfiruUnOlEjXAfKI-EE4NlNjlVImQJr-kKi8g-1vG_ZyIAcgj7Zi9Y_7AZOa45lCkr-iXD4cDI90NO4vM.woff2)format("woff2");font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:normal;font-stretch:100%}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fafbfc;--white:#fff;--ink:#172538;--muted:#526176;--cobalt:#315ae7;--cobalt-deep:#2446bd;--wash:#edf1fc;--line:#c5ced8;--font:"IBM Plex Sans", "IBM Plex Sans Fallback: BlinkMacSystemFont", "IBM Plex Sans Fallback: Segoe UI", "IBM Plex Sans Fallback: Helvetica Neue", "IBM Plex Sans Fallback: Arial", "IBM Plex Sans Fallback: Noto Sans", "Segoe UI", sans-serif;--text-small:.875rem;--text-control:1rem;--text-body:1rem;--text-title:1.25rem;--text-heading:clamp(1.75rem, 3vw, 2.25rem);--space-xs:8px;--space-sm:16px;--space-md:24px;--space-lg:40px;--space-xl:64px;--section-space:clamp(48px, 6vw, 72px);--gutter:clamp(16px, 3vw, 48px);--frame-padding:clamp(16px, 2vw, 28px);--section-inset:clamp(20px, 2.5vw, 32px);--inset:24px;--container:1200px;--radius:2px;--ease:cubic-bezier(.22, 1, .36, 1)}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--text-control);-webkit-font-smoothing:antialiased;margin:0;line-height:1.65}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}a,button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance;font-weight:400}h2{font-size:var(--text-heading);letter-spacing:-.035em;line-height:1.15}h3{font-size:var(--text-title);letter-spacing:-.025em;line-height:1.3}p{text-wrap:pretty}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--cobalt);outline-offset:4px}::selection{background:var(--cobalt);color:var(--white)}[id]{scroll-margin-top:88px}.container{width:min(var(--container),calc(100% - var(--gutter)*2));padding-inline:var(--frame-padding);margin-inline:auto}main{position:relative}main:before{content:"";z-index:3;inset-block:0;width:min(var(--container),calc(100% - var(--gutter)*2));border-inline:1px solid var(--line);pointer-events:none;position:absolute;left:50%;transform:translate(-50%)}.contact-layout,.hero,.section.container{position:relative}.hero,.section.container{border-top:0}.contact-section:after,.hero:after,.section.container:after{content:"";border-top:1px solid var(--line);pointer-events:none;width:100vw;position:absolute;top:0;left:50%;transform:translate(-50%)}.contact-layout:before,.hero:before,.section.container:before,.site-footer:before{content:"";z-index:2;background:linear-gradient(var(--cobalt),var(--cobalt)) 0 /7px 7px no-repeat,linear-gradient(var(--cobalt),var(--cobalt)) 100% /7px 7px no-repeat;pointer-events:none;height:7px;position:absolute;top:-4px;left:-3px;right:-3px}.icon-definitions{width:0;height:0;position:absolute;overflow:hidden}.icon{fill:none;stroke:currentColor;flex:0 0 20px;width:20px;height:20px;display:block}.skip-link{z-index:30;background:var(--cobalt);color:var(--white);border-radius:var(--radius);padding:12px 20px;position:fixed;top:12px;left:20px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.button{border-radius:var(--radius);background:var(--cobalt);min-height:44px;color:var(--white);font-size:var(--text-control);text-align:center;transition:background-color .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-weight:500;line-height:1.5;text-decoration:none;display:inline-flex}.button:hover{background:var(--cobalt-deep)}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{cursor:not-allowed;background:var(--wash);color:var(--muted);border-color:var(--line)}.text-link{min-height:44px;font-size:var(--text-control);text-underline-offset:5px;transition:color .18s var(--ease),text-decoration-color .18s var(--ease);align-items:center;gap:12px;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.text-link:hover{color:var(--cobalt);text-decoration-color:currentColor}.site-header{z-index:20;background:var(--paper);position:sticky;top:0}.header-inner{border-inline:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:72px;display:flex}.brand{letter-spacing:-.025em;align-items:center;gap:12px;font-weight:500;text-decoration:none;display:inline-flex}.brand>span{white-space:nowrap}.brand-mark{-o-object-fit:cover;object-fit:cover;flex:0 0 30px;width:30px;height:30px;display:block}.desktop-nav{align-items:center;gap:32px;display:flex}.desktop-nav>a{min-height:44px;font-size:var(--text-small);align-items:center;padding-block:12px;font-weight:500;text-decoration:none;display:inline-flex}.desktop-nav>a:hover{color:var(--cobalt)}.mobile-menu{display:none}.hero{grid-template-columns:max-content minmax(0,38ch);justify-content:space-evenly;align-items:center;gap:0;padding-block:clamp(32px,4vw,64px);padding-inline:0;display:grid}.hero-copy{position:relative}.hero-eyebrow{color:var(--cobalt-deep);font-size:var(--text-body);letter-spacing:.02em;margin-top:0;margin-bottom:0;font-weight:500}.hero-name{letter-spacing:-.04em;min-width:0;margin:0;font-size:clamp(5.1rem,11.05vw,10.2rem);font-weight:600;line-height:.9}.hero-name>span{display:block}.hero-name>span:last-child{color:var(--cobalt)}.hero-description{max-width:38ch;font-size:var(--text-body);margin-top:16px;line-height:1.65}.hero-action{flex-wrap:wrap;align-items:center;gap:24px;margin-top:28px;display:flex}.hero-action .button{flex:none}.hero-note{color:var(--muted);font-size:var(--text-small);margin:0;line-height:1.6}.section{padding-block:var(--section-space)}.section-intro{grid-template-columns:1fr;align-items:start;gap:0;margin-bottom:32px;display:grid}.section-intro h2{max-width:none}.projects-subtitle{color:var(--muted);font-size:var(--text-body);margin-top:12px}.project-list{border-block:1px solid var(--line);margin:0;padding:0;list-style:none}.project{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(24px,5vw,64px);padding-block:32px;display:grid}.project+.project{border-top:1px solid var(--line)}.project-details,.project-heading{min-width:0}.project-category{color:var(--muted);font-size:var(--text-small);margin-bottom:12px}.project-heading h3{color:var(--cobalt-deep);font-size:var(--text-heading)}.project-role{color:var(--muted);font-size:var(--text-small);margin-top:8px}.project-description{max-width:58ch;color:var(--muted)}.project-technologies{font-size:var(--text-small);flex-wrap:wrap;gap:8px 20px;margin-top:24px;padding:0;list-style:none;display:flex}.ai-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(32px,6vw,80px);display:grid}.ai-copy{min-width:0}.ai-kicker{color:var(--cobalt-deep);font-size:var(--text-small);letter-spacing:.02em;margin-bottom:18px;font-weight:600}.ai-copy h2{max-width:22ch}.ai-description{max-width:48ch;color:var(--muted);margin-top:24px}.ai-principles{margin:28px 0 0}.ai-principles>div{border-top:1px solid var(--line);padding-block:16px}.ai-principles dt{font-weight:500}.ai-principles dd{color:var(--muted);font-size:var(--text-small);margin:4px 0 0}.ai-diagram{border:1px solid var(--line);min-width:0;margin:0;padding:clamp(20px,3vw,32px)}.ai-diagram figcaption{color:var(--muted);font-size:var(--text-small);margin-bottom:24px}.ai-flow{margin:0;padding:0;list-style:none}.ai-flow>li{border:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:16px;padding:16px;display:grid;position:relative}.ai-flow>li+li{margin-top:24px}.ai-flow>li+li:before{content:"";border-left:1px solid var(--cobalt);height:24px;position:absolute;top:-25px;left:25px}.ai-flow>li+li:after{content:"";border-right:1px solid var(--cobalt);border-bottom:1px solid var(--cobalt);width:7px;height:7px;position:absolute;top:-7px;left:22px;transform:rotate(45deg)}.ai-flow-index{color:var(--cobalt-deep);font-variant-numeric:tabular-nums;font-size:.75rem}.ai-flow h3{font-size:var(--text-body);font-weight:500}.ai-flow p{color:var(--muted);font-size:var(--text-small);margin-top:4px}.ai-flow>.ai-flow-gate{border-color:var(--cobalt);background:var(--wash)}.ai-diagram-note{color:var(--muted);font-size:var(--text-small);margin-top:24px}.contact-section{border-top:0;padding-block:0;position:relative}.contact-layout{padding-inline:var(--section-inset);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:0;display:grid}.contact-copy{padding-block:var(--section-space);padding-right:40px}.contact-copy h2{max-width:16ch}.contact-description{max-width:44ch;color:var(--muted);font-size:var(--text-body);margin-top:24px}.contact-details{padding-block:var(--section-space);border-left:1px solid var(--line);padding-left:40px}.contact-details h3{font-size:var(--text-small);letter-spacing:0;margin-bottom:16px;font-weight:600}.contact-note{max-width:40ch;color:var(--muted);font-size:var(--text-body)}.contact-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:32px;display:flex}.contact-socials{gap:8px;display:flex}.social-link{border:1px solid var(--line);border-radius:var(--radius);width:46px;height:46px;color:var(--ink);transition:background-color .18s var(--ease),border-color .18s var(--ease);justify-content:center;align-items:center;display:inline-flex}.social-link .icon{fill:currentColor;stroke:none}.social-link:hover{background:var(--wash);border-color:var(--cobalt)}.site-footer{border-top:0;border-inline:1px solid var(--line);align-items:center;gap:24px;padding-block:28px;display:flex;position:relative}.site-footer:before{left:0;right:0}.site-footer:after{content:"";border-top:1px solid var(--line);pointer-events:none;width:100vw;position:absolute;top:0;left:50%;transform:translate(-50%)}.site-footer>p{color:var(--muted);font-size:var(--text-small);margin-left:auto}.back-top{border:1px solid var(--line);border-radius:var(--radius);justify-content:center;width:44px}.back-top .icon{transform:rotate(-90deg)}@keyframes content-arrives{0%{opacity:.6;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero-copy>*{animation:content-arrives .6s var(--ease) both}.button>.icon,.text-link>.icon{transition:transform .18s var(--ease)}.button:is(:hover,:focus-visible)>.icon:has(use[href=\#arrow]){transform:translate(3px)}.text-link:not(.back-top):is(:hover,:focus-visible)>.icon:has(use[href=\#arrow]){transform:translate(3px)}@supports (animation-timeline:view()){.section-intro{animation:linear both content-arrives;animation-timeline:view();animation-range:entry 0 entry 70%}}@media (width<=1100px){.desktop-nav{gap:24px}}@media (width<=800px){:root{--gutter:24px;--section-space:48px}[id]{scroll-margin-top:80px}.header-inner{min-height:64px}.desktop-nav{display:none}.brand{font-size:var(--text-small);gap:10px}.brand-mark{flex-basis:26px;width:26px;height:26px}.mobile-menu{display:block}.mobile-menu>summary{min-width:44px;min-height:44px;font-size:var(--text-small);align-items:center;gap:8px;font-weight:600;list-style:none;display:flex}.mobile-menu[open]>summary .icon{transform:rotate(45deg)}.mobile-menu:not([open])>nav{display:none}.mobile-menu nav{padding:8px var(--gutter) 20px;border-bottom:1px solid var(--line);background:var(--paper);display:grid;position:absolute;top:100%;left:0;right:0}.mobile-menu nav a{border-top:1px solid var(--line);justify-content:space-between;align-items:center;min-height:56px;padding:12px 0;text-decoration:none;display:flex}.mobile-menu nav a:last-child{color:var(--cobalt);font-weight:600}.hero{padding-inline:var(--section-inset);grid-template-columns:minmax(0,1fr);gap:24px}.hero-name{font-size:clamp(3.4rem,20.4vw,8.5rem)}.hero-description{max-width:38ch;margin-top:20px}.hero-action{flex-direction:column;align-items:stretch;gap:16px}.ai-layout{grid-template-columns:1fr;gap:40px}.project{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:24px}.contact-layout{grid-template-columns:1fr;gap:0}.contact-copy{padding-bottom:40px;padding-right:0}.contact-copy h2{max-width:20ch}.contact-description{max-width:50ch}.contact-details{border-top:1px solid var(--line);border-left:0;padding-top:32px;padding-left:0}.site-footer{flex-wrap:wrap;gap:12px;padding-block:24px}.site-footer>p{flex-basis:100%;order:2;margin-left:36px}.back-top{margin-left:auto}}@media (width<=420px){:root{--gutter:20px}.header-inner{gap:12px}.brand{gap:8px;font-size:.8125rem}.brand-mark{flex-basis:24px;width:24px;height:24px}.hero-description{font-size:var(--text-control)}.hero-action .button{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important;animation:none!important}}
