@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.woff2)format("woff2-variations");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}@layer base{:root{color-scheme:dark;--bg:#111719;--surface:#172022;--surface-raised:#1c2729;--text:#edf3ef;--muted:#a9b8b2;--subtle:#899b94;--line:#2b3839;--accent:#9be6cd;--heading:"Space Grotesk Variable", sans-serif;--body:"Inter Variable", sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace}:root[data-accent=violet],.accent-violet{--accent:#c2b7fa}:root[data-accent=amber],.accent-amber{--accent:#efd19a}:root[data-accent=emerald],.accent-emerald{--accent:#a6ddb4}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{background:var(--bg);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.7}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--heading);letter-spacing:-.045em;text-wrap:balance;font-weight:500;line-height:1.15}h1{font-size:clamp(3rem,5.2vw,4.65rem)}h2{font-size:clamp(2.2rem,3.5vw,3.2rem)}h3{letter-spacing:-.03em;font-size:1.5rem}p{color:var(--muted)}img,svg{max-width:100%;display:block}ul,ol{margin:0;padding:0}.text-muted{color:var(--subtle)}.container{width:min(1240px,100% - 96px);margin-inline:auto}.section{padding-block:100px}.eyebrow{font-family:var(--mono);letter-spacing:.09em;color:var(--accent);font-size:11px;font-weight:400;line-height:1.6}.eyebrow .status-dot{margin-right:8px}.status-dot{background:var(--accent);vertical-align:1px;width:6px;height:6px;box-shadow:0 0 16px color-mix(in srgb, var(--accent) 25%, transparent);border-radius:50%;display:inline-block}.skip-link{z-index:100;background:var(--accent);color:var(--bg);padding:10px 18px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.button{border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:16px;min-height:50px;padding:12px 22px;font-size:13px;font-weight:500;transition:background .2s,border-color .2s,transform .2s;display:inline-flex}.button-primary{background:var(--accent);color:#14201d}.button-primary:hover{background:color-mix(in srgb, var(--accent) 85%, white);transform:translateY(-2px)}.button-quiet{color:var(--text);padding-inline:10px}.button-quiet:hover{background:var(--surface)}.text-link{min-height:44px;color:var(--accent);align-items:center;gap:16px;font-size:14px;display:inline-flex}.text-link:hover svg{transform:translate(4px)}.text-link svg{transition:transform .2s}.tag-list{flex-wrap:wrap;gap:7px;list-style:none;display:flex}.tag-list li{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:4px 9px;font-size:10px;line-height:1.5}}@layer layout{.site-header{z-index:40;background:color-mix(in srgb, var(--bg) 94%, transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(18px);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:88px;display:flex}.wordmark{font-family:var(--heading);letter-spacing:-.055em;flex-shrink:0;align-items:center;gap:13px;font-size:22px;font-weight:600;display:inline-flex}.wordmark-dot{color:var(--accent)}.brand-mark{border:1px solid var(--line);letter-spacing:-.12em;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;padding-right:2px;font-size:19px;display:flex;position:relative}.brand-mark span{color:var(--accent)}.brand-mark i{background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:6px;right:5px}.primary-nav{align-items:center;gap:28px;font-size:12px;font-weight:500;display:flex}.primary-nav>a{min-height:44px;color:var(--muted);align-items:center;gap:6px;transition:color .2s;display:flex;position:relative}.primary-nav>a:hover,.primary-nav>a[aria-current]{color:var(--text)}.primary-nav>a[aria-current]:after{content:"";background:var(--accent);width:18px;height:2px;position:absolute;bottom:0}.primary-nav .nav-github{border-left:1px solid var(--line);padding-left:24px}.primary-nav .nav-contact{color:var(--accent)}.menu-toggle{display:none}.home-hero{grid-template-columns:1.05fr 1fr;align-items:center;gap:68px;min-height:680px;padding-block:86px 80px;display:grid}.hero-copy .eyebrow{margin-bottom:24px}.hero-emphasis{color:var(--accent)}.hero-description{max-width:550px;margin-top:27px;font-size:16px;line-height:1.8}.hero-actions{flex-wrap:wrap;align-items:center;gap:17px;margin-top:32px;display:flex}.hero-personal{font-family:var(--mono);color:var(--subtle);flex-wrap:wrap;align-items:center;gap:10px;margin-top:39px;font-size:10px;display:flex}.location-mark{color:var(--accent);font-size:17px;line-height:1}.hero-divider{background:var(--line);width:1px;height:12px;margin-inline:4px}.hero-visual{min-width:0}.hero-visual-note{color:var(--subtle);font-family:var(--mono);align-items:start;gap:16px;margin-top:20px;padding-left:10px;font-size:10px;line-height:1.8;display:flex}.hero-visual-note strong{color:var(--muted);font-weight:400}.small-bracket{color:var(--accent);font-size:20px;line-height:1.5}.career-strip{border-block:1px solid var(--line);padding-block:27px}.career-strip .container{justify-content:space-between;align-items:center;gap:30px;display:flex}.career-strip .eyebrow{color:var(--subtle)}.career-strip .container>div{font-family:var(--heading);letter-spacing:-.025em;color:#c6d0cc;justify-content:space-between;align-items:center;gap:52px;font-size:19px;display:flex}.section-heading{justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:42px;display:flex}.section-heading .eyebrow{margin-bottom:15px}.section-heading>p{max-width:360px;font-size:14px;line-height:1.8}.domain-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.practice-section{border-block:1px solid var(--line);background:#141c1e}.practice-grid{grid-template-columns:1fr 1fr;gap:90px;display:grid}.practice-grid .eyebrow{margin-bottom:23px}.practice-intro{max-width:390px;margin-top:23px;font-size:14px}.practice-grid .text-link{margin-top:27px}.practice-list article{border-bottom:1px solid var(--line);gap:24px;padding-block:26px;display:flex}.practice-list article:first-child{padding-top:0}.practice-list article>span{font-family:var(--mono);color:var(--accent);margin-top:4px;font-size:11px}.practice-list h3{font-size:21px}.practice-list p{margin-top:10px;font-size:13px}.education-line{justify-content:space-between;align-items:center;gap:35px;padding-block:40px;display:flex}.education-line p{font-size:12px}.education-line p span{color:var(--subtle);padding-inline:12px}.site-footer{border-top:1px solid var(--line);background:#0f1517}.footer-top{justify-content:space-between;align-items:center;gap:60px;padding-block:72px;display:flex}.footer-top .eyebrow{margin-bottom:21px}.footer-top h2{font-size:clamp(2.2rem,3.7vw,3.4rem)}.contact-links{min-width:290px}.contact-email{font-family:var(--heading);letter-spacing:-.03em;align-items:center;gap:18px;min-height:44px;font-size:20px;display:flex}.contact-email:hover,.contact-social a:hover{color:var(--accent)}.contact-social{gap:25px;margin-top:11px;font-size:12px;display:flex}.contact-social a{align-items:center;gap:8px;min-height:44px;display:inline-flex}.contact-links p{font-family:var(--mono);margin-top:10px;font-size:10px}.footer-bottom{border-top:1px solid var(--line);color:var(--subtle);justify-content:space-between;align-items:center;gap:20px;padding-block:25px;font-size:10px;display:flex}.footer-brand{font-family:var(--heading);color:var(--text);letter-spacing:-.04em;font-size:17px;font-weight:600}.footer-domain-links{gap:23px;display:flex}.footer-domain-links a{align-items:center;min-height:44px;display:inline-flex}.footer-domain-links a:hover{color:var(--text)}.motion-toggle{border:1px solid var(--line);min-height:44px;font-family:var(--mono);background:0 0;border-radius:5px;padding:6px 10px;font-size:10px}.motion-toggle:hover{border-color:var(--accent);color:var(--accent)}.home-hero{grid-template-columns:1fr 1.12fr;gap:48px}.domain-hero{grid-template-columns:1fr 1.08fr;gap:48px}.hero-visual,.domain-hero-visual{min-width:0}}@layer components{.system-map{border:1px solid var(--line);color:var(--accent);background:radial-gradient(ellipse at 50% 48%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 60%), #141d1f;border-radius:12px;overflow:hidden}.map-topline,.map-bottomline{font-family:var(--mono);letter-spacing:.08em;justify-content:space-between;align-items:center;gap:20px;padding:15px 20px;font-size:9px;display:flex}.map-topline{border-bottom:1px solid var(--line)}.map-topline>span:first-child{align-items:center;gap:7px;display:flex}.map-topline>span:last-child,.map-caption{color:var(--subtle)}.map-bottomline{border-top:1px solid var(--line);letter-spacing:.02em;font-size:8px}.map-bottomline>span:last-child{white-space:nowrap}.map-svg{width:100%;height:auto}.map-routes{opacity:.3}.map-flow{stroke-dasharray:8 350;animation:6s linear infinite flow}.map-flow path:nth-child(2){opacity:.8}.map-flow path:nth-child(3){opacity:.6}.map-orbit{transform-origin:50%;transform-box:fill-box;animation:45s linear infinite orbit}.map-core{fill:#1c2d2b;stroke:var(--accent);stroke-width:.8px}.map-monogram{fill:var(--accent);font-family:var(--heading);letter-spacing:-3px;font-size:40px;font-weight:500}.map-core-label{font-size:8px;font-family:var(--mono);fill:var(--muted);letter-spacing:1px}.map-node>rect:first-child{fill:#172123;stroke:#344446;stroke-width:.8px}.map-node-icon{fill:color-mix(in srgb, var(--accent) 9%, transparent);stroke:var(--accent);stroke-width:.7px}.map-icon-line{stroke:var(--accent);fill:none;stroke-width:.8px}.map-node-index{fill:var(--subtle);font-family:var(--mono);font-size:8px}.map-node-title{fill:var(--text);font-family:var(--heading);letter-spacing:-.3px;font-size:15px}.map-node-subtitle{fill:var(--muted);font-family:var(--mono);font-size:8px}.domain-card{border:1px solid var(--line);background:linear-gradient(135deg, var(--surface), #141c1e);border-radius:10px;flex-direction:column;min-height:342px;padding:30px;transition:border-color .25s,transform .25s,background .25s;display:flex;position:relative}.domain-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 6%, var(--surface)), #141c1e);transform:translateY(-4px)}.domain-card-top{justify-content:space-between;align-items:center;display:flex}.domain-card-arrow{border:1px solid var(--line);width:38px;height:38px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;transition:color .2s,transform .2s;display:flex}.domain-card:hover .domain-card-arrow{color:var(--accent);transform:rotate(45deg)}.domain-card-symbol{width:65px;height:54px;margin-block:13px 25px}.domain-card-symbol svg{width:65px;height:54px;stroke:var(--accent);stroke-width:1.2px;stroke-linejoin:round}.domain-card h3{margin-bottom:14px;font-size:29px}.domain-card>p{max-width:440px;font-size:13px;line-height:1.8}.domain-card-bottom{justify-content:space-between;align-items:center;gap:20px;margin-top:auto;padding-top:30px;display:flex}.domain-card-bottom>span{color:var(--accent);white-space:nowrap;align-items:center;gap:12px;font-size:11px;display:inline-flex}.domain-card-bottom .tag-list li{color:var(--subtle);border:none;margin-right:5px;padding-inline:0;font-size:9px}.domain-hero{grid-template-columns:1fr 1fr;align-items:center;gap:70px;padding-block:60px 65px;display:grid}.back-link{font-family:var(--mono);color:var(--muted);align-items:center;gap:12px;min-height:44px;font-size:11px;display:inline-flex}.back-link:hover{color:var(--accent)}.domain-hero .back-link{margin-bottom:23px}.domain-hero .eyebrow{margin-bottom:19px}.domain-hero h1{max-width:580px;font-size:clamp(3rem,4.4vw,4.05rem)}.domain-hero .hero-description{font-size:14px}.domain-hero .hero-actions{gap:10px}.domain-hero .button{padding-inline:17px;font-size:12px}.section-nav{border-block:1px solid var(--line);background:#141c1e}.section-nav .container{justify-content:space-between;align-items:center;gap:25px;min-height:66px;display:flex}.section-nav-label{font-family:var(--heading);color:var(--text);font-size:14px}.section-nav .container>div{gap:27px;display:flex}.section-nav a{color:var(--muted);align-items:center;min-height:44px;font-size:11px;display:flex}.section-nav a:hover{color:var(--accent)}.capability-item{border-top:1px solid var(--line);grid-template-columns:60px 1fr 1.3fr;gap:35px;padding-block:30px;display:grid}.capability-item:last-child{border-bottom:1px solid var(--line)}.capability-number{font-family:var(--mono);color:var(--subtle);padding-top:5px;font-size:11px}.capability-item h3{font-size:23px}.capability-item p{margin-bottom:15px;font-size:13px}.capability-extra{margin-top:20px}.experience-section{border-block:1px solid var(--line);background:#141c1e}.experience-list{list-style:none}.experience-item{border-top:1px solid var(--line);grid-template-columns:250px 1fr;gap:55px;padding-block:32px;display:grid}.experience-period{font-family:var(--mono);color:var(--subtle);margin-bottom:9px;font-size:10px;display:block}.experience-employer{font-family:var(--heading);letter-spacing:-.02em;font-size:23px}.experience-content h3{margin-bottom:17px;font-size:21px}.experience-content ul{list-style:none}.experience-content li{color:var(--muted);margin-block:9px;padding-left:20px;font-size:13px;position:relative}.experience-content li:before{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;top:10px;left:0}.project-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.project-card{border:1px solid var(--line);background:#172022;border-radius:8px;flex-direction:column;padding:30px;transition:border-color .25s,transform .25s;display:flex}.project-card:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.project-card-top{justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px;display:flex}.project-card-top .eyebrow{font-size:9px}.project-status{font-family:var(--mono);text-transform:capitalize;color:var(--muted);align-items:center;gap:6px;font-size:9px;display:inline-flex}.project-status>span{background:var(--subtle);border-radius:50%;width:4px;height:4px}.project-card h3{margin-bottom:16px;font-size:25px}.project-card h3 a{justify-content:space-between;align-items:flex-start;gap:30px;display:flex}.project-card h3 svg{color:var(--subtle);flex-shrink:0;margin-top:3px}.project-card h3 a:hover{color:var(--accent)}.project-card>p{margin-bottom:24px;font-size:13px;line-height:1.85}.project-card .tag-list{margin-bottom:28px}.project-card-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:25px;margin-top:auto;padding-top:14px;display:flex}.project-card-bottom a{min-height:44px;color:var(--accent);align-items:center;gap:10px;font-size:11px;display:inline-flex}.project-card-bottom .project-source{color:var(--muted)}.lab-section{border-top:1px solid var(--line)}.lab-figure{border:1px solid var(--line);background:#101517;border-radius:9px;margin:0;overflow:hidden}.lab-figure img{width:100%;height:auto}.lab-figure figcaption{font-family:var(--mono);color:var(--subtle);border-top:1px solid var(--line);padding:12px 20px;font-size:10px}.hardware-list{grid-template-columns:1fr 1fr 1fr;gap:30px;margin-top:30px;display:grid}.hardware-list .eyebrow{margin-bottom:10px;font-size:9px}.hardware-list h3{font-size:22px}.next-domain{padding-block:30px 55px}.next-domain>div{gap:25px;margin-top:18px;display:flex}.next-domain a{border:1px solid var(--line);border-radius:5px;flex:1;justify-content:space-between;align-items:center;gap:35px;padding:17px 20px;font-size:12px;display:flex}.next-domain a:hover{color:var(--accent);border-color:var(--accent)}.next-domain svg{flex-shrink:0}.project-detail{padding-block:50px 90px}.project-detail-header{max-width:940px;margin-bottom:60px}.project-detail-header .back-link{margin-bottom:28px}.project-detail-header .eyebrow{margin-bottom:19px}.project-detail-header h1{max-width:900px;font-size:clamp(3rem,5vw,4.6rem)}.project-lead{max-width:800px;margin-block:28px;font-size:18px;line-height:1.8}.project-detail-grid{border-top:1px solid var(--line);grid-template-columns:250px minmax(0,1fr);gap:75px;padding-top:50px;display:grid}.project-sidebar{font-size:13px}.project-sidebar>div{margin-bottom:30px}.project-sidebar .eyebrow{margin-bottom:10px;font-size:9px}.project-sidebar a{align-items:center;gap:10px;min-height:35px;margin-bottom:5px;display:flex}.project-sidebar a:hover{color:var(--accent)}.prose{color:var(--muted);max-width:780px;font-size:15px}.prose h2{color:var(--text);margin-block:40px 20px;font-size:30px}.prose h2:first-child{margin-top:0}.prose h3{color:var(--text);margin-block:30px 16px;font-size:23px}.prose p{margin-bottom:20px}.prose ul,.prose ol{margin-block:20px 28px;padding-left:23px}.prose li{margin-block:10px;padding-left:4px}.prose strong{color:var(--text);font-weight:600}.prose a{color:var(--accent);text-underline-offset:4px;overflow-wrap:anywhere;text-decoration:underline}.prose code{color:var(--accent);background:var(--surface);border-radius:3px;padding:2px 5px;font-size:.85em}.prose pre{border:1px solid var(--line);border-radius:6px;padding:20px;overflow-x:auto}.evidence-links{border-top:1px solid var(--line);margin-top:40px;padding-top:10px}.evidence-links a{align-items:center;gap:8px;display:inline-flex}.related-section{border-top:1px solid var(--line);padding-block:35px 70px}.related-section>div{flex-wrap:wrap;gap:25px;margin-top:20px;display:flex}.related-section a{font-family:var(--heading);border-bottom:1px solid var(--line);flex:1;justify-content:space-between;align-items:center;gap:20px;min-width:230px;padding-block:12px;font-size:20px;display:flex}.related-section a:hover{color:var(--accent)}.backup-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.backup-grid h2{margin-block:22px;font-size:27px}.backup-summary{margin-top:60px}.not-found{padding-block:120px 150px}.not-found .eyebrow{margin-bottom:20px}.not-found p:not(.eyebrow){max-width:560px;margin-block:30px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.language-switcher{align-items:center;min-height:44px;display:inline-flex}.language-switcher select{appearance:auto;width:auto;max-width:145px;min-height:39px;color:var(--text);border:1px solid var(--line);font:11px/1.4 var(--body);cursor:pointer;background:#172022;border-radius:5px;padding:7px 28px 7px 11px}.language-switcher select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.language-switcher option{color:#edf3ef;background:#172022}.artwork{background:#101719;margin:0;overflow:hidden}.artwork-hero{border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 65px #0003}.artwork-image{isolation:isolate;position:relative;overflow:hidden}.artwork img{aspect-ratio:3/2;object-fit:cover;width:100%;height:auto;transition:transform .6s}.artwork figcaption{border-top:1px solid var(--line);color:var(--subtle);font:8px/1.6 var(--mono);letter-spacing:.055em;justify-content:space-between;gap:12px;padding:15px 18px;display:flex}.artwork figcaption>span:first-child{color:var(--accent)}.art-glow{background:radial-gradient(ellipse at 55% 85%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 65%);mix-blend-mode:screen;opacity:.35;pointer-events:none;animation:9s ease-in-out infinite alternate art-breathe;position:absolute;inset:0}.art-corner{opacity:.45;width:18px;height:18px;color:var(--accent);pointer-events:none;position:absolute}.art-corner-top{border-top:1px solid;border-right:1px solid;top:16px;right:16px}.art-corner-bottom{border-bottom:1px solid;border-left:1px solid;bottom:16px;left:16px}.domain-card{min-height:0;padding:0;overflow:hidden}.domain-card .artwork{border-bottom:1px solid var(--line)}.domain-card-body{flex-direction:column;flex:1;padding:26px 30px 28px;display:flex}.domain-card-top{margin-bottom:20px}.domain-card-body>p{max-width:440px;font-size:13px;line-height:1.8}.domain-card:hover .artwork img{transform:scale(1.025)}.capability-layout{grid-template-columns:.86fr 1.14fr;align-items:start;gap:60px;display:grid}.capability-map{padding-top:10px;position:sticky;top:115px}.capability-layout .capability-item{grid-template-columns:28px 1fr;gap:12px 20px;padding-block:24px}.capability-layout .capability-item>div{grid-column:2}.capability-layout .capability-item h3{font-size:23px}.project-visual{color:var(--accent);background:radial-gradient(ellipse at 50% 80%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 75%), #111a1c;position:relative;overflow:hidden;container-type:inline-size}.project-visual-caption{font:8px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--subtle);position:absolute;top:11px;left:20px}.project-visual-svg{width:100%;height:auto}.project-card>.project-visual{border-bottom:1px solid var(--line);border-radius:7px 7px 0 0;margin:-30px -30px 26px}.project-card-top{margin-bottom:22px}.project-detail-visual{border:1px solid var(--line);border-radius:10px;max-width:940px;margin-block:-20px 48px;overflow:hidden}.project-detail-visual .project-visual-svg{max-height:330px}.lab-link{margin-top:25px}@container (width<=580px){.project-visual-label{font-size:18px}}@container (width<=440px){.project-visual-label{font-size:22px}}}@layer responsive{@media (width<=1180px){.container{width:calc(100% - 64px)}.primary-nav{gap:19px}.primary-nav .nav-github{padding-left:18px}.home-hero{gap:36px}.home-hero h1{font-size:4rem}.career-strip .container>div{gap:32px;font-size:17px}.domain-hero{gap:40px}.domain-card-bottom{flex-wrap:wrap;gap:12px}}@media (width<=1000px){.header-inner{min-height:74px}.menu-toggle{border:1px solid var(--line);background:0 0;border-radius:5px;align-items:center;gap:16px;min-height:44px;padding:8px 13px;font-size:12px;display:inline-flex}.menu-lines{border-block:1px solid var(--muted);width:16px;height:10px}.menu-toggle[aria-expanded=true] .menu-lines{border-color:var(--accent)}.primary-nav{border-bottom:1px solid var(--line);background:#141c1e;grid-template-columns:1fr 1fr;gap:10px 25px;padding:20px 32px 26px;display:none;position:absolute;top:100%;left:0;right:0}.primary-nav.is-open{animation:.2s ease-out menu-enter;display:grid}.primary-nav .nav-github{border-left:0;padding-left:0}.home-hero{grid-template-columns:1.04fr 1fr;gap:30px;min-height:600px;padding-block:64px}.home-hero h1{font-size:3.3rem}.hero-description{font-size:14px}.hero-copy .eyebrow{font-size:9px}.desktop-break{display:none}.hero-actions{gap:10px}.hero-actions .button{padding-inline:14px;font-size:12px}.hero-personal{font-size:9px}.section{padding-block:75px}.section-heading{gap:40px}.section-heading>p{max-width:310px}.practice-grid{gap:45px}.career-strip .container{align-items:flex-start}.career-strip .container>div{flex-wrap:wrap;justify-content:flex-end;gap:12px 30px}.experience-item{grid-template-columns:200px 1fr;gap:40px}.capability-item{grid-template-columns:35px .8fr 1.2fr;gap:25px}.domain-hero{gap:30px}.domain-hero h1{font-size:3.1rem}.project-detail-grid{grid-template-columns:200px 1fr;gap:40px}.footer-domain-links{gap:14px}.backup-grid{grid-template-columns:1fr}}@media (width<=760px){.container{width:calc(100% - 40px)}.header-inner{min-height:70px}.wordmark{font-size:21px}.brand-mark{width:31px;height:31px}.primary-nav{padding-inline:20px}.home-hero{grid-template-columns:1fr;gap:45px;padding-block:48px 44px}.home-hero h1{font-size:clamp(2.8rem,10.8vw,4.7rem)}.hero-copy .eyebrow{letter-spacing:.04em;margin-bottom:22px;font-size:9px}.hero-description{max-width:480px;margin-top:24px;font-size:14px}.hero-actions{gap:14px;margin-top:28px}.hero-actions .button{min-height:48px}.hero-personal{margin-top:27px;font-size:9px}.hero-visual-note{margin-top:15px}.career-strip{padding-block:23px}.career-strip .container{flex-direction:column;gap:14px}.career-strip .container>div{justify-content:flex-start;gap:12px 27px;font-size:16px}.section{padding-block:64px}.section-heading{flex-direction:column;align-items:flex-start;gap:22px;margin-bottom:30px}.section-heading>p{max-width:500px;font-size:13px}.section-heading .eyebrow{font-size:9px}h2{font-size:2.6rem}.domain-grid{grid-template-columns:1fr;gap:16px}.domain-card{min-height:340px;padding:25px}.domain-card-bottom{flex-wrap:nowrap}.domain-card h3{font-size:28px}.practice-grid{grid-template-columns:1fr;gap:40px}.practice-intro{max-width:100%}.practice-list article{padding-block:23px}.education-line{flex-direction:column;align-items:flex-start;gap:12px;padding-block:30px}.education-line p{line-height:1.9}.education-line p span{padding-inline:5px}.footer-top{flex-direction:column;align-items:flex-start;gap:35px;padding-block:55px}.footer-top h2{font-size:2.65rem}.footer-top .eyebrow{font-size:9px}.contact-email{font-size:21px}.contact-links{width:100%;min-width:0}.contact-email{overflow-wrap:anywhere}.footer-bottom{flex-wrap:wrap;gap:12px 25px;padding-block:20px}.footer-domain-links{order:4;justify-content:space-between;gap:14px;width:100%}.footer-bottom>span{margin-left:auto}.domain-hero{grid-template-columns:1fr;gap:40px;padding-block:30px 45px}.domain-hero .back-link{margin-bottom:22px}.domain-hero h1{font-size:clamp(2.8rem,10vw,4rem)}.domain-hero .eyebrow{font-size:9px}.domain-hero .hero-description{font-size:14px}.section-nav .container{flex-direction:column;align-items:flex-start;gap:8px;padding-block:16px 8px}.section-nav .container>div{flex-wrap:wrap;gap:17px}.section-nav a{font-size:10px}.capability-item{grid-template-columns:25px 1fr;gap:12px 16px;padding-block:27px}.capability-item h3{font-size:23px}.capability-item>div{grid-column:2}.experience-item{grid-template-columns:1fr;gap:20px;padding-block:28px}.experience-meta{flex-direction:column;display:flex}.experience-period{margin-bottom:6px}.experience-employer{font-size:24px}.experience-content h3{font-size:21px}.experience-content li{font-size:13px}.project-grid{grid-template-columns:1fr}.project-card{padding:25px}.project-card h3{font-size:25px}.hardware-list{grid-template-columns:1fr;gap:22px}.hardware-list>div{border-bottom:1px solid var(--line);padding-bottom:20px}.hardware-list h3{font-size:22px}.lab-figure figcaption{padding:10px 13px;font-size:9px}.next-domain>div{flex-direction:column;gap:12px}.next-domain a{padding-block:18px}.project-detail{padding-block:30px 65px}.project-detail-header{margin-bottom:35px}.project-detail-header h1{font-size:2.9rem}.project-lead{margin-block:23px;font-size:15px}.project-detail-grid{grid-template-columns:1fr;gap:30px;padding-top:30px}.project-sidebar{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:20px;padding-bottom:10px;display:grid}.project-sidebar>div{margin-bottom:10px}.prose{font-size:14px}.prose h2{font-size:28px}.related-section>div{flex-direction:column;gap:10px}.related-section a{font-size:20px}.not-found{padding-block:90px}.not-found h1{font-size:3rem}}@media (width<=380px){.domain-card-bottom{flex-wrap:wrap}.hero-personal{gap:7px;font-size:8px}.hero-actions{gap:8px}.hero-actions .button{padding-inline:12px;font-size:11px}.map-bottomline{gap:8px;padding:10px;font-size:7px}.map-bottomline>span:last-child{display:none}.footer-bottom>span{width:100%;margin-left:0}.section-nav .container>div{gap:14px}}html[data-motion=paused] .map-flow,html[data-motion=paused] .map-orbit,.page-hidden .map-flow,.page-hidden .map-orbit,.is-offscreen .map-flow,.is-offscreen .map-orbit{animation-play-state:paused}html[data-motion=paused]{scroll-behavior:auto}html[data-motion=paused] *,html[data-motion=paused] :before,html[data-motion=paused] :after{transition-duration:0s!important}html[data-motion=paused] .primary-nav.is-open{animation:none}html[data-motion=paused] .domain-card:hover,html[data-motion=paused] .button-primary:hover{transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important;animation:none!important}.domain-card:hover,.button-primary:hover{transform:none}}@media (width<=1180px){.home-hero,.domain-hero{gap:34px}.capability-layout{gap:35px}}@media (width<=1000px){.home-hero,.domain-hero{grid-template-columns:1fr 1fr;gap:28px}.artwork figcaption{letter-spacing:.02em;padding-inline:12px;font-size:7px}.capability-layout{grid-template-columns:1fr;gap:34px}.capability-map{width:100%;max-width:600px;margin-inline:auto;position:static}.primary-nav .language-switcher{justify-content:flex-start;display:inline-flex}}@media (width<=760px){.home-hero,.domain-hero{grid-template-columns:1fr;gap:34px}.domain-card{min-height:0;padding:0}.domain-card-body{padding:23px 25px 26px}.artwork figcaption{padding:12px;font-size:7px}.project-card>.project-visual{margin:-25px -25px 24px}.project-detail-visual{margin-block:0 30px}.art-corner{width:13px;height:13px}}@media (width<=380px){.artwork figcaption>span:last-child{display:none}.domain-card-body{padding-inline:20px}}html[data-motion=paused] .art-glow,.page-hidden .art-glow,.is-offscreen .art-glow{animation-play-state:paused}html[data-motion=paused] .domain-card:hover .artwork img,html[data-motion=paused] .domain-card:hover .domain-card-arrow{transform:none}@media (prefers-reduced-motion:reduce){.domain-card:hover .artwork img,.domain-card:hover .domain-card-arrow{transform:none}}}@keyframes flow{to{stroke-dashoffset:-358px}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes menu-enter{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}@keyframes art-breathe{to{opacity:1}}
