@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.p.02z5rrbg5nt92.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.p.02z5rrbg5nt92.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.p.02z5rrbg5nt92.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.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:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_ea9d36e-module__cej35a__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_ea9d36e-module__cej35a__variable{--font-ibm-plex-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
:root{--bg:#fafaf7;--fg:#0a0a08;--muted:#0a0a089e;--faint:#0a0a0861;--hair:#0a0a081f;--hair-strong:#0a0a0838;--panel:#0a0a0809;--accent:#16a34a;--accent-soft:color-mix(in oklab, var(--accent) 16%, transparent);--font-family:var(--font-ibm-plex-sans), ui-sans-serif, system-ui, sans-serif;--text-meta:.75rem;--text-body:1rem;--text-heading:1.25rem;--text-section:clamp(2rem, 4vw, 3rem);--text-hero:clamp(2.75rem, 4.5vw, 3.75rem);--weight-regular:400;--weight-medium:500;--weight-semibold:600;--leading-tight:.95;--leading-heading:1.2;--leading-body:1.6;--tracking-tight:-.03em;--tracking-normal:0;--tracking-wide:.08em;--section-copy-width:100%;--section-copy-gap:18px;--section-copy-spacing:48px;--section-copy-link-offset:.15em;--floating-control-size:44px;--floating-control-inset:20px;--floating-control-icon-size:18px;--footer-contact-target-size:44px;--footer-contact-icon-size:27px;--footer-contact-icon-opacity:.62;--radius:8px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-height:100vh;color:var(--fg);font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-body);letter-spacing:var(--tracking-normal);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.site-shell{width:min(1160px,100vw - 40px);margin:0 auto}.topbar{z-index:20;background:color-mix(in oklab, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:center;align-items:center;gap:24px;padding:18px 0;display:flex;position:sticky;top:0}.topbar nav{font-size:var(--text-meta);font-weight:var(--weight-medium);color:var(--muted);gap:18px;display:flex}.topbar nav a:hover{color:var(--fg)}.headline-section{place-items:center;min-height:min(360px,100vh - 58px);padding:96px 0;display:grid}.headline-section h1{width:100%;font-size:var(--text-hero);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-align:center;margin:0}.hero-company-link{color:inherit;white-space:nowrap;text-decoration-line:underline;-webkit-text-decoration-color:var(--hair-strong);text-decoration-color:var(--hair-strong);text-underline-offset:.08em;text-decoration-thickness:.04em}.hero-company-link:hover{text-decoration-color:currentColor}.hero-company-logo{vertical-align:-.04em;width:.68em;height:.68em;margin-left:.14em;display:inline-block}.section-index{font-size:var(--text-meta);font-weight:var(--weight-medium);color:var(--faint);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin:0 0 18px}.button{border:1px solid var(--hair-strong);min-height:42px;font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:var(--leading-heading);background:color-mix(in oklab, var(--bg) 92%, white);border-radius:6px;justify-content:center;align-items:center;padding:0 16px;display:inline-flex}.button.primary{border-color:var(--accent);background:var(--accent);color:#041208}.back-to-top{top:50%;right:var(--floating-control-inset);z-index:30;width:var(--floating-control-size);height:var(--floating-control-size);appearance:none;border:1px solid var(--hair-strong);background:color-mix(in oklab, var(--bg) 92%, white);color:var(--fg);border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;transform:translateY(-50%)}.back-to-top:hover,.back-to-top:focus-visible{background:color-mix(in oklab, var(--bg) 76%, var(--fg))}.back-to-top svg{width:var(--floating-control-icon-size);height:var(--floating-control-icon-size)}.back-to-top-tooltip{visibility:hidden;border:1px solid var(--hair-strong);border-radius:calc(var(--radius) / 2);background:var(--bg);color:var(--fg);font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:var(--leading-heading);white-space:nowrap;opacity:0;pointer-events:none;padding:6px 8px;position:absolute;top:50%;right:calc(100% + 10px);transform:translateY(-50%)}.back-to-top:hover .back-to-top-tooltip,.back-to-top:focus-visible .back-to-top-tooltip{visibility:visible;opacity:1}.project-card,.brain-chat{border:1px solid var(--hair);background:color-mix(in oklab, var(--bg) 92%, white);border-radius:var(--radius)}.section{padding:72px 0}.section h2{max-width:760px;font-size:var(--text-section);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-tight);margin:0}.section-heading{max-width:820px;margin-bottom:34px}.section-heading p:last-child{max-width:650px;color:var(--muted)}.section h2.work-heading{white-space:nowrap;max-width:none}.site-ending{color:var(--muted);font-size:var(--text-heading);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-tight);text-align:center;padding:0 0 72px}.site-ending p{margin:0}.footer-contact-links{margin-top:22px}.footer-contact-links ul{flex-wrap:wrap;justify-content:center;gap:4px;margin:0;padding:0;list-style:none;display:flex}.footer-contact-link{width:var(--footer-contact-target-size);height:var(--footer-contact-target-size);color:var(--fg);background:0 0;place-items:center;display:grid;position:relative}.footer-contact-link>svg,.footer-contact-link>img{width:var(--footer-contact-icon-size);height:var(--footer-contact-icon-size);object-fit:contain;opacity:var(--footer-contact-icon-opacity)}.footer-contact-link:hover>svg,.footer-contact-link:hover>img,.footer-contact-link:focus-visible>svg,.footer-contact-link:focus-visible>img{opacity:1}.footer-contact-tooltip{visibility:hidden;border:1px solid var(--hair-strong);border-radius:calc(var(--radius) / 2);background:var(--bg);color:var(--fg);font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:var(--leading-heading);white-space:nowrap;opacity:0;pointer-events:none;padding:6px 8px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.footer-contact-link:hover .footer-contact-tooltip,.footer-contact-link:focus-visible .footer-contact-tooltip{visibility:visible;opacity:1}.work-subsection+.work-subsection{margin-top:64px}.work-subsection-heading{font-size:var(--text-heading);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-tight);margin:0 0 22px}.section-copy{width:var(--section-copy-width);gap:var(--section-copy-gap);margin:0 0 var(--section-copy-spacing);color:var(--muted);font-size:var(--text-body);line-height:var(--leading-body);display:grid}.section-copy p{margin:0}.section-copy a{text-decoration-line:underline;-webkit-text-decoration-color:var(--hair-strong);text-decoration-color:var(--hair-strong);text-underline-offset:var(--section-copy-link-offset)}.section-copy a:hover{text-decoration-color:currentColor}.copy-stack{gap:18px;display:grid}.copy-stack a{text-decoration-line:underline;-webkit-text-decoration-color:var(--hair-strong);text-decoration-color:var(--hair-strong);text-underline-offset:.15em}.copy-stack a:hover{text-decoration-color:currentColor}.about-copy{margin-bottom:48px}.copy-stack p,.project-main p,.chat-message p{color:var(--muted);margin:0}.chat-message p{white-space:pre-wrap}.project-card h4{font-size:var(--text-heading);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-tight);margin:0}.project-list{gap:16px;display:grid}.project-card{padding:24px}.project-card-body{margin-top:20px}.project-card-body-with-image{grid-template-columns:minmax(0,1fr) clamp(240px,28vw,300px);align-items:start;gap:32px;display:grid}.project-image-frame{aspect-ratio:1;border:1px solid var(--hair);border-radius:var(--radius);background:var(--panel);width:100%;position:relative;overflow:hidden}.project-image{object-fit:contain}.project-meta{font-size:var(--text-meta);font-weight:var(--weight-medium);color:var(--faint);flex-wrap:wrap;gap:6px 18px;display:flex}.project-meta strong{font-weight:var(--weight-medium);color:var(--muted)}.project-card-header h4{font-size:var(--text-heading);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-tight);margin-top:6px}.project-main p{margin:0}.project-details{gap:16px;margin:0;display:grid}.project-details div{gap:4px;display:grid}.project-details dt{font-weight:var(--weight-semibold)}.project-details dd{color:var(--muted);margin:0}.about-section{display:block}.about-section .brain-chat{max-height:620px}.brain-chat{flex-direction:column;max-height:620px;display:flex;overflow:hidden}.chat-header{text-align:center;flex:none;padding:32px 24px 24px}.chat-header h3{font-size:var(--text-heading);font-weight:var(--weight-semibold);line-height:var(--leading-heading);margin:0}.chat-header p{max-width:680px;color:var(--muted);font-size:var(--text-body);margin:8px auto 0}.chat-log{flex:auto;align-content:start;gap:14px;min-height:0;padding:0 24px 24px;display:grid;overflow-y:auto}.chat-message{border:1px solid var(--hair);background:var(--panel);border-radius:8px;max-width:86%;padding:13px 14px}.chat-message.user{background:var(--accent-soft);border-color:color-mix(in oklab, var(--accent) 50%, var(--hair));justify-self:end}.chat-message.assistant{background:color-mix(in oklab, var(--bg) 96%, white);justify-self:start}.source-list{border-top:1px solid var(--hair);flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:10px;display:flex}.source-list span{font-size:var(--text-meta);font-weight:var(--weight-medium);color:var(--faint)}.source-list .source-list-label{color:var(--muted);text-transform:uppercase}.chat-form{flex:none;padding:0 18px 18px}.starter-questions{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:14px;display:flex}.suggestion-chip{border:1px solid var(--hair);color:var(--muted);background:color-mix(in oklab, var(--bg) 96%, white);font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:var(--leading-body);border-radius:999px;padding:7px 12px;transition:color .14s,border-color .14s,background-color .14s}.suggestion-chip:hover:not(:disabled){color:var(--fg);border-color:color-mix(in oklab, var(--accent) 50%, var(--hair));background:var(--accent-soft)}.suggestion-chip:disabled{cursor:not-allowed;opacity:.55}.chat-composer{border:1px solid var(--hair);border-radius:calc(var(--radius) * 3);background:color-mix(in oklab, var(--bg) 96%, white);width:100%;box-shadow:0 8px 24px color-mix(in oklab, var(--fg) 8%, transparent);transition:border-color .14s,box-shadow .14s;position:relative}.chat-composer:focus-within{border-color:color-mix(in oklab, var(--accent) 60%, var(--hair));box-shadow:0 0 0 3px var(--accent-soft)}.chat-composer textarea{field-sizing:content;resize:none;border-radius:inherit;width:100%;min-height:48px;max-height:128px;color:var(--fg);background:0 0;border:0;outline:0;padding:12px 60px 12px 16px;overflow-y:auto}.chat-send-button{width:40px;height:40px;color:var(--bg);background:var(--accent);border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:grid;position:absolute;bottom:8px;right:8px}.chat-send-button:hover:not(:disabled){background:color-mix(in oklab, var(--accent) 86%, var(--fg))}.chat-send-button:disabled{cursor:not-allowed;color:var(--faint);background:var(--hair-strong)}.chat-send-button svg{width:20px;height:20px}.chat-send-button path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.chat-send-button rect{fill:currentColor}.chat-privacy-notice{color:var(--faint);font-size:var(--text-meta);line-height:var(--leading-body);text-align:center;margin:10px 4px 0}@media (max-width:860px){.site-shell{width:min(100% - 28px,760px)}.topbar nav{display:none}.section h2.work-heading{white-space:normal}.project-card-body-with-image{grid-template-columns:1fr}.project-image-frame{max-width:320px}.headline-section{min-height:auto;padding:72px 0}.brain-chat{max-height:620px}}@media (max-width:520px){:root{--floating-control-inset:8px}.section{padding:56px 0}.site-ending{padding-bottom:56px}.work-subsection+.work-subsection{margin-top:48px}.chat-message{max-width:100%}.chat-header{padding:26px 18px 20px}.chat-log{padding:0 18px 20px}.chat-form{padding:0 14px 14px}.suggestion-chip{text-align:center;width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
