@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-ext-wght-normal.BOFOeGcA.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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-wght-normal.Xz1IZZA0.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;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-vietnamese-500-normal.BmEvtly_.woff2)format("woff2"),url(/_astro/space-grotesk-vietnamese-500-normal.BTqKIpxg.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-ext-500-normal.DUe3BAxM.woff2)format("woff2"),url(/_astro/space-grotesk-latin-ext-500-normal.3dgZTiw9.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-500-normal.lFbtlQH6.woff2)format("woff2"),url(/_astro/space-grotesk-latin-500-normal.CNSSEhBt.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-vietnamese-600-normal.DUi7WF5p.woff2)format("woff2"),url(/_astro/space-grotesk-vietnamese-600-normal.D6zpsUhD.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-latin-ext-600-normal.DxxdqCpr.woff2)format("woff2"),url(/_astro/space-grotesk-latin-ext-600-normal.VcznFIpX.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-latin-600-normal.DjKNqYRj.woff2)format("woff2"),url(/_astro/space-grotesk-latin-600-normal.BflQw4A9.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-vietnamese-700-normal.DMty7AZE.woff2)format("woff2"),url(/_astro/space-grotesk-vietnamese-700-normal.Duxec5Rn.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-latin-ext-700-normal.BQnZhY3m.woff2)format("woff2"),url(/_astro/space-grotesk-latin-ext-700-normal.HVCqSBdx.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-latin-700-normal.RjhwGPKo.woff2)format("woff2"),url(/_astro/space-grotesk-latin-700-normal.CwsQ-cCU.woff)format("woff");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}:root{--palette-neutral-0:#fafafa;--palette-neutral-50:#f5f5f5;--palette-neutral-100:#e5e5e5;--palette-neutral-400:#a3a3a3;--palette-neutral-600:#525252;--palette-neutral-700:#404040;--palette-neutral-800:#262626;--palette-neutral-900:#171717;--palette-neutral-950:#0a0a0a;--palette-surface:#fff;--motion-duration:.2s;--bg:var(--palette-neutral-0);--fg:var(--palette-neutral-900);--heading:var(--palette-neutral-950);--muted:var(--palette-neutral-600);--accent:var(--palette-neutral-950);--accent-2:var(--palette-neutral-700);--card:var(--palette-surface);--line:var(--palette-neutral-100);--radius:10px;--shadow:0 1px 2px #0000000a;--max:1080px;--prose-max:40rem;--text-base:1rem;--leading-body:1.55;--leading-heading:1.12;--space-section-y:clamp(3.5rem, 8vw, 5.5rem);--space-block:1rem;--focus-color:var(--palette-neutral-950);--font-sans:"DM Sans", "Segoe UI", sans-serif;--font-display:"Space Grotesk", "DM Sans", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;color-scheme:light;font-size:100%}html,body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;margin:0;padding:0}a{color:var(--accent);transition:border-color var(--motion-duration), box-shadow var(--motion-duration), color var(--motion-duration);text-decoration:none}a:hover{color:var(--accent-2);text-underline-offset:3px;text-decoration:underline}.main-nav a:hover,.lang-picker__item:hover,.profile-chip:hover,.btn:hover{text-decoration:none}a[aria-current=page]{color:var(--accent)}.container{max-width:var(--max);margin:0 auto;padding:0 clamp(16px,4vw,24px)}.skip-link{z-index:200;background:var(--heading);color:#fff;border-radius:0 0 var(--radius) var(--radius);width:1px;height:1px;padding:12px 20px;font-weight:700;position:absolute;top:auto;left:-9999px;overflow:hidden}.skip-link:focus,.skip-link:focus-visible{outline-offset:2px;outline:2px solid #fff;width:auto;height:auto;position:fixed;top:0;left:clamp(16px,4vw,24px);overflow:visible}.scaffold-notice{max-width:var(--prose-max);border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--fg);margin:clamp(2rem,6vw,4rem) auto;padding:1rem 1.25rem;font-size:.95rem}.lang-rail{flex-shrink:0;margin-left:auto;position:relative}.lang-picker{position:relative}.lang-picker__summary{cursor:pointer;border:1px solid var(--line);background:var(--card);min-width:44px;min-height:44px;color:var(--accent);border-radius:8px;justify-content:center;align-items:center;padding:0 12px;font-size:.85rem;font-weight:700;list-style:none;display:flex}.lang-picker__summary::-webkit-details-marker{display:none}.lang-picker[open] .lang-picker__summary{border-color:var(--accent);box-shadow:0 0 0 1px #0a0a0a14}.lang-picker__panel{z-index:150;background:var(--bg);border:1px solid var(--line);min-width:13rem;max-height:min(70vh,20rem);box-shadow:var(--shadow);border-radius:10px;margin:0;padding:6px;font-size:.85rem;font-weight:600;list-style:none;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}.lang-picker__panel>li{margin:0}.lang-picker__item{color:var(--fg);border-radius:6px;padding:8px 10px;text-decoration:none;display:block}.lang-picker__item:hover{background:var(--card);text-decoration:none}.lang-picker__item.is-current{color:var(--accent);background:var(--card)}.lang-picker__item.is-soon{color:var(--muted);cursor:default;font-weight:500}.footer-lang-note{color:var(--muted);margin:.5rem 0 0;font-size:.85rem}.nav-toggle:focus-visible,.main-nav a:focus-visible,.page-nav a:focus-visible,.brand:focus-visible,.footer-nav a:focus-visible,.social-footer__btn:focus-visible,.built-portfolio-card:focus-visible,.publication-card:focus-visible,.portfolio-card:focus-visible,.repo-card:focus-visible,.contribution-summary__link:focus-visible,.support-option:focus-visible,.profile-chip:focus-visible,.btn:focus-visible,.lang-picker__summary:focus-visible,.lang-picker__item:focus-visible,.skip-link:focus-visible{outline:2px solid var(--focus-color);outline-offset:3px}header{border-bottom:1px solid var(--line);z-index:100;backdrop-filter:saturate(180%)blur(12px);background:#fafafad1;position:sticky;top:0}.nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex;position:relative}.page-nav{flex:auto;justify-content:center;align-items:center;gap:4px 14px;min-width:0;font-size:.88rem;font-weight:600;display:none}.page-nav a{color:var(--muted);white-space:nowrap;border-radius:6px;align-items:center;min-height:44px;padding:0 4px;display:inline-flex}.page-nav a:hover{color:var(--heading);text-decoration:none}@media (width>=900px){.page-nav{display:flex}}@media (width<=899px){.page-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:100%;order:3;justify-content:flex-start;padding-bottom:2px;display:flex;overflow-x:auto;mask-image:linear-gradient(90deg,#000 92%,#0000)}.page-nav::-webkit-scrollbar{display:none}}.brand{font-family:var(--font-display);letter-spacing:-.03em;color:var(--heading);flex:1;min-width:0;font-weight:700}.brand small{font-family:var(--font-sans);letter-spacing:0;color:var(--muted);margin-top:2px;font-size:.75rem;font-weight:500;line-height:1.35;display:block}.nav-toggle{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);min-width:44px;min-height:44px;color:var(--fg);cursor:pointer;justify-content:center;align-items:center;padding:8px 14px;font-size:.9rem;font-weight:700;display:flex}.nav-toggle:hover{border-color:var(--accent)}.main-nav{border-bottom:1px solid var(--line);box-shadow:var(--shadow);background:#fffffffa;flex-direction:column;align-items:stretch;gap:4px;margin:0;padding:12px 20px 16px;display:none;position:absolute;top:100%;left:0;right:0}.main-nav.is-open{display:flex}.main-nav a{border-radius:8px;padding:12px 8px;font-weight:600}.main-nav a:hover{background:var(--card)}.nav-social{color:var(--accent);font-weight:600}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.04em;color:var(--heading);font-weight:600}h1{font-size:clamp(2rem,5vw + .5rem,3.4rem);line-height:var(--leading-heading);margin:0 0 var(--space-block)}h2{letter-spacing:-.035em;font-size:clamp(1.35rem,2.2vw + .5rem,1.75rem);line-height:var(--leading-heading);margin:0 0 1.5rem}h3{font-size:clamp(1.05rem,1.2vw + .5rem,1.25rem);line-height:var(--leading-heading);letter-spacing:-.02em;margin:1.25rem 0 .75rem}.page-title{margin-bottom:1rem}.section-title{margin-bottom:1.25rem}.lead,.sub{color:var(--muted);line-height:var(--leading-body);max-width:var(--prose-max);font-size:1.1rem}.prose-block{max-width:var(--prose-max)}.hero{border-bottom:1px solid var(--line);background:radial-gradient(ellipse 70% 80% at 100% 10%, #0a0a0a0b, transparent 55%), linear-gradient(180deg, #f4f4f4 0%, var(--bg) 72%);padding:clamp(3.5rem,10vw,6rem) 0 clamp(2.75rem,5vw,3.75rem)}.hero-grid{grid-template-columns:1fr;align-items:center;gap:clamp(1.5rem,4vw,2.5rem);display:grid}.hero-copy{min-width:0}.hero-wrap{max-width:42rem}.hero-visual{justify-self:start;width:100%;max-width:22rem}.hero-photo{aspect-ratio:4/5;object-fit:cover;object-position:center top;border:1px solid var(--line);width:100%;height:auto;box-shadow:none;background:#f0f0f0;border-radius:14px;display:block}.kicker{color:var(--muted);font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:600}.hero h1{letter-spacing:-.05em;max-width:18ch;margin:14px 0 16px;font-size:clamp(2.15rem,6vw + .4rem,3.75rem);line-height:1.05}.hero-lead{max-width:38rem;color:var(--muted);margin:0 0 22px;font-size:clamp(1.02rem,.4vw + .95rem,1.15rem);line-height:1.55}.hero--compact{padding:clamp(2.25rem,6vw,3.5rem) 0 clamp(2rem,4vw,2.75rem)}.hero--compact h1{max-width:none;margin:0 0 .75rem;font-size:clamp(1.85rem,4vw + .55rem,2.75rem)}.hero-lead--compact{margin-bottom:1.25rem}.hero-cta{margin-top:.25rem}@media (width>=900px){.hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(14rem,.75fr);gap:clamp(1.75rem,4vw,3rem)}.hero-visual{justify-self:end;max-width:20rem}}.surface-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}.surface-card--muted{background:linear-gradient(180deg, var(--card) 0%, var(--bg) 100%)}.surface-card--center{text-align:center}.surface-card--center .sub{margin-left:auto;margin-right:auto}.surface-card--center .cta{justify-content:center}.roadmap-mirror{margin-top:24px;margin-bottom:0}.surface-card h2{margin-top:0}.profile-chips{flex-wrap:wrap;gap:10px;margin:16px 0 0;padding:0;list-style:none;display:flex}.profile-chips>li{margin:0}.profile-chip{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:.9rem;font-weight:600;transition:border-color .2s,box-shadow .2s,color .2s;display:inline-flex}.profile-chip:hover{border-color:var(--accent);color:var(--heading);box-shadow:none;background:#f0f0f0}.profile-chip__logo{object-fit:contain;flex-shrink:0;width:auto;max-width:28px;height:14px;display:block}.profile-chip__logo--tall{max-width:18px;height:18px}.profile-chip__mark{color:#fafafa;letter-spacing:.02em;background:#0a0a0a;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.62rem;font-weight:700;display:inline-flex}.roadmap-list{color:var(--fg);max-width:var(--prose-max);margin:0;padding-left:1.25rem;line-height:1.65}.roadmap-list li{margin-bottom:12px}.roadmap-list li::marker{color:var(--accent)}@media (width<=899px){.hero{padding:48px 0 40px}}@media (width>=900px){.brand small{font-size:.8rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}a,.btn,.profile-chip,.card{transition:none}.btn.primary:hover{transform:none}}.btn{border:1px solid var(--accent);font-family:var(--font-sans);letter-spacing:-.01em;cursor:pointer;text-align:center;background:0 0;border-radius:999px;padding:11px 20px;font-size:.95rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-block}.btn.primary{background:var(--accent);color:#fafafa!important}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2);transform:none}.btn.secondary{background:var(--card);color:var(--heading);border:1px solid var(--line)}.btn.secondary:hover{border-color:var(--accent);background:#f5f5f5}.cta{flex-wrap:wrap;gap:12px;margin:8px 0 0;display:flex}.back-link{text-align:center;color:var(--muted);margin:32px 0;font-weight:600;display:block}footer{text-align:center;color:var(--muted);border-top:1px solid var(--line);padding:40px 0;font-size:.95rem}.footer-nav{flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-bottom:18px;font-weight:600;display:flex}.footer-nav a{min-height:44px;color:var(--heading);align-items:center;display:inline-flex}.social-footer{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:12px;font-weight:600;display:flex}.social-footer a,.social-footer__btn{border:1px solid var(--line);background:var(--card);min-width:7.5rem;min-height:44px;color:var(--heading);border-radius:999px;justify-content:center;align-items:center;padding:0 18px;display:inline-flex}.social-footer a:hover,.social-footer__btn:hover{border-color:var(--accent);background:#f0f0f0;text-decoration:none}.footer-corporate{opacity:.92;font-size:.95rem}.footer-meta{margin:12px 0;font-size:.95rem}@media (width>=900px){.nav-toggle{display:none}.main-nav{box-shadow:none;background:0 0;border:none;flex-direction:row;align-items:center;gap:24px;margin:0 0 0 auto;padding:0;display:flex;position:static}.main-nav a{padding:4px 0}.main-nav a:hover{background:0 0}.brand small{font-size:.8rem}}@media (width>=320px){.brand small{max-width:100%}}@media (width>=768px){.page-nav{gap:6px 18px}}@media (width>=1280px){.container{max-width:min(var(--max), 96vw)}}@media (prefers-reduced-motion:reduce){:root{--motion-duration:.01ms}html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-color-scheme:dark){html{color-scheme:dark}:root{--palette-neutral-0:#0a0a0a;--palette-neutral-50:#171717;--palette-neutral-100:#262626;--palette-neutral-400:#b8b8b8;--palette-neutral-600:#d4d4d4;--palette-neutral-700:#e5e5e5;--palette-neutral-800:#f5f5f5;--palette-neutral-900:#fafafa;--palette-neutral-950:#fff;--palette-surface:#171717}header{background:color-mix(in srgb, var(--palette-neutral-0) 88%, transparent)}.skip-link:focus,.skip-link:focus-visible{outline-color:var(--bg)}}@media print{.skip-link,.lang-rail,.page-nav,.connect-shell,.li-badge-official,script{display:none!important}body{color:#000;background:#fff}a[href^=http]:after{content:" (" attr(href) ")";font-size:.85em}}.page-section{padding:var(--space-section-y) 0;border-bottom:1px solid var(--line)}.page-section h2{text-transform:none;letter-spacing:-.03em;color:var(--heading);border-bottom:1px solid var(--line);max-width:var(--prose-max);margin-bottom:.65rem;padding-bottom:.55rem;font-size:clamp(1.25rem,1.6vw + .55rem,1.5rem)}.page-section--after-hero{padding-top:clamp(1.75rem,4vw,2.5rem)}.section-lead{color:var(--muted);margin-top:.35rem;margin-bottom:0;font-size:1.02rem;line-height:1.55}.page-section--no-border{border-bottom:none}.page-section--tight-bottom{padding-bottom:1.5rem}.page-section--flush-top{padding-top:0}.page-section:last-of-type{border-bottom:none}.page-hero{text-align:center}.page-hero .page-title{margin-bottom:1rem}.page-hero .lead{max-width:var(--prose-max);text-align:center;margin-left:auto;margin-right:auto}.lead{color:var(--muted);line-height:var(--leading-body);font-size:1.1rem}.section-head{text-align:center;margin-bottom:2.5rem}.section-head .section-title{margin-bottom:.5rem}.section-head .section-kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .5rem;font-size:.9rem;font-weight:600}.section-head .lead{max-width:var(--prose-max);text-align:center;margin:.75rem auto 0}.content-prose{max-width:var(--prose-max);text-align:left}.content-prose p{margin:0 0 1rem}.content-prose p:last-child{margin-bottom:0}.content-block{margin-top:2.5rem}.content-block:first-of-type{margin-top:0}.content-block>h2{text-align:left;margin-top:0;margin-bottom:.75rem}.content-block>.sub,.content-block>.lead{text-align:left;max-width:var(--prose-max);margin-bottom:1rem;margin-left:0;margin-right:0}.sub--tight-top{margin-top:0}.page-cta{text-align:center;padding:var(--space-section-y) 0;background:var(--card);border-radius:var(--radius);margin-top:0}.page-cta h2{margin-top:0}.page-cta .lead,.page-cta .sub{text-align:center;margin-bottom:1.25rem;margin-left:auto;margin-right:auto}.page-cta .cta{justify-content:center;margin-top:0}.page-cta .btn:not(.secondary){background:var(--accent);color:#fff}.page-cta .btn:not(.secondary):hover{background:var(--accent-2);border-color:var(--accent-2)}.grid--auto-fit{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.intro{text-align:center;max-width:800px;margin:0 auto 3rem}.intro--wide{max-width:900px}.grid{gap:32px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;padding:28px;transition:transform .3s,box-shadow .3s;display:flex}.card:hover{box-shadow:var(--shadow);border-color:#d4d4d4;transform:none}.card--accent-top{border-top:1px solid var(--line)}.card h3{color:var(--heading);font-size:1.2rem;line-height:1.25;font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 8px;font-weight:600}.card--accent-top h3{margin-bottom:16px;font-size:1.3rem;line-height:1.3}.duration{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px;font-size:.9rem;font-weight:700}.metric{color:var(--accent);margin:12px 0;font-size:1.4rem;font-weight:800}.metric--inline{margin-top:12px;font-size:.95rem;font-weight:700;display:block}ul.clean{flex-grow:1;margin:16px 0 0;padding:0;list-style:none}ul.clean.clean--flush{margin:0}ul.clean li{border-bottom:1px dotted var(--line);padding:8px 0;font-size:.97rem;line-height:1.55}.card--accent-top ul.clean li{padding:10px 0;font-size:.95rem}ul.clean li:last-child{border-bottom:none}.tech-stack{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding-top:16px;font-size:.9rem}.tech-stack strong{color:var(--fg);font-weight:600}.cta-section{text-align:center;padding:var(--space-section-y) 0 2.5rem}.cta-section .btn:not(.secondary){background:var(--accent);color:#fff}.cta-section .btn:not(.secondary):hover{background:var(--accent-2);border-color:var(--accent-2)}.cta-section--panel{background:var(--card);border-radius:var(--radius);margin-top:3rem}.cta-section--panel .cta{justify-content:center;margin-top:1.5rem}.section-header{text-align:center;margin-bottom:2.5rem}.section-header .section-title{margin-bottom:8px;font-size:clamp(1.5rem,3vw,2rem)}.section-header .section-kicker{color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin:0;font-size:.9rem;font-weight:600}.link-row{align-items:center;gap:12px;margin-top:12px;font-size:.95rem;display:flex}.about-grid{grid-template-columns:1fr;align-items:start;gap:clamp(1.25rem,3vw,2rem);display:grid}.location-badges{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.badge{background:var(--card);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:600}.sub--small{font-size:.9rem}.institution-links{flex-wrap:wrap;justify-content:center;gap:20px;font-weight:600;display:flex}.institution-links a{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:10px 16px}.institution-links a:hover{border-color:var(--accent);text-decoration:none}.degree-section{max-width:var(--prose-max);text-align:left;margin:0 0 3rem}.degree-title{align-items:center;gap:8px;margin-bottom:12px;display:flex}.degree-title h2{margin:0;font-size:clamp(1.25rem,2.5vw,1.6rem)}.institution{color:var(--muted);margin-bottom:16px;font-style:italic}.course-list{margin:24px 0;padding:0;list-style:none}.course-list li{border-bottom:1px solid var(--line);padding:16px 0}.course-list li:last-child{border-bottom:none}.course-code{color:var(--accent);width:100px;min-width:100px;font-family:ui-monospace,monospace;font-weight:700;display:inline-block}.course-title{margin-right:8px;font-weight:600}.course-list li:hover{background:#fcfdfe}.approach-main{max-width:none}p.intro-lead,.lead--italic{color:var(--muted);font-size:1.1rem;font-style:italic;font-family:var(--font-display);line-height:var(--leading-body)}.page-hero p.intro-lead,.page-hero .lead--italic{max-width:var(--prose-max);text-align:center;margin-bottom:0;margin-left:auto;margin-right:auto}.pillar-grid{grid-template-columns:1fr 1fr;gap:32px;margin-top:32px;display:grid}.pillar{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.pillar h3{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-top:0;font-family:Inter,system-ui,sans-serif;font-size:.85rem;font-weight:800}.pillar p{margin-bottom:0;font-size:.95rem}.linkedin-card{color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s;display:block}.linkedin-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.linkedin-card__inner{align-items:flex-start;gap:1.25rem;display:flex}.linkedin-card__photo{object-fit:cover;border-radius:8px;flex-shrink:0;width:96px;height:96px}.linkedin-card__title{margin:0 0 .5rem;font-size:1.125rem}.linkedin-card__cta{color:var(--accent);margin-top:.75rem;font-weight:600;display:inline-block}.off-duty-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-width:var(--prose-max);margin:0 0 1rem;padding:20px}#map-container{border-radius:var(--radius);width:100%;height:500px;min-height:320px;max-height:70vh;box-shadow:var(--shadow);border:1px solid var(--line);margin:24px 0;position:relative}#regions_div{width:100%;height:100%}.map-overlay-title{color:var(--fg);background:#fffc;border-radius:8px;padding:8px 16px;font-size:1.1rem;font-weight:700;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #0000001a}#legend-container{z-index:1;border:1px solid var(--line);background:#fffffff2;border-radius:8px;padding:12px;font-size:.9rem;position:absolute;bottom:20px;left:20px;box-shadow:0 2px 8px #0000001a}@media (width>=640px){.grid--2{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.grid--2-md{grid-template-columns:repeat(2,1fr)}.grid--3-lg{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.course-code{width:auto;margin-bottom:4px;display:block}.course-list li{padding:12px 0;font-size:.9rem}.pillar-grid{grid-template-columns:1fr}#map-container{height:min(70vh,400px)}}@media (prefers-reduced-motion:reduce){.card:hover{transform:none}}.x-source{color:var(--muted);margin-top:.75rem;font-size:.95rem}.x-badge{background:var(--accent);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.stat-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);padding:20px}.stat__num{color:var(--accent);font-size:clamp(1.4rem,3vw,2rem);font-weight:800;line-height:1.1}.stat__label{color:var(--muted);margin-top:6px;font-size:.85rem;font-weight:600}.x-tabs{justify-content:center;gap:8px;margin-bottom:1.5rem;display:flex}.x-tab{border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:999px;padding:8px 18px;font-size:.9rem;font-weight:600}.x-tab.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.post-list{counter-reset:post;gap:16px;margin:0;padding:0;list-style:none;display:grid}.post-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 20px 20px 56px;position:relative}.post-item:before{counter-increment:post;content:counter(post);background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;font-weight:800;display:flex;position:absolute;top:20px;left:16px}.post-item__text{color:var(--fg);margin:0 0 12px;line-height:1.5}.post-metrics{color:var(--muted);flex-wrap:wrap;gap:8px 18px;font-size:.85rem;display:flex}.post-metric strong{color:var(--accent)}.post-link{margin-top:12px;font-size:.9rem;font-weight:600;display:inline-block}.table-wrap{overflow-x:auto}.theme-table{border-collapse:collapse;width:100%;font-size:.95rem}.theme-table th,.theme-table td{text-align:left;border-bottom:1px solid var(--line);padding:12px 14px}.theme-table thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}.theme-table tbody th{color:var(--heading);font-weight:700}.theme-table tbody tr:hover{background:var(--card)}.x-subhead{text-align:center;margin:2.5rem 0 1rem}.idea-card{gap:4px}.idea-card__meta{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:800}.idea-card__draft{color:var(--fg);margin:8px 0;font-size:1.02rem;line-height:1.5}.idea-card__why{color:var(--muted);margin:0 0 12px;font-size:.85rem}.idea-actions{flex-wrap:wrap;gap:10px;margin-top:auto;display:flex}.idea-actions .btn{padding:8px 16px;font-size:.9rem}.copy-btn{cursor:pointer}@media (width>=640px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.work-intro{max-width:42rem}.work-group-heading{margin:1.75rem 0 .75rem;font-size:1.125rem;font-weight:600}.work-ambient-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;margin-top:.5rem;display:flex}.work-ambient-head .work-group-heading{margin:0}.work-trust-marks{flex-wrap:wrap;align-items:center;gap:.85rem 1.1rem;display:flex}.work-trust-marks img{object-fit:contain;opacity:.92;filter:grayscale();width:auto;max-width:140px;height:28px;display:block}.work-table-wrap{border:1px solid var(--line);background:var(--card);box-shadow:none;border-radius:12px;margin-top:.5rem;overflow-x:auto}.work-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.92rem;line-height:1.5}.work-table .work-col-situation{width:24%}.work-table .work-col-role{width:22%}.work-table .work-col-did{width:32%}.work-table .work-col-changed{width:22%}.work-table--ambient .work-col-situation{width:23%}.work-table--ambient .work-col-role{width:24%}.work-table--ambient .work-col-did{width:31%}.work-table--ambient .work-col-changed{width:22%}.work-table caption.visually-hidden,.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.work-table thead th{color:var(--heading);font-family:var(--font-display);letter-spacing:-.02em;text-align:left;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;background:#f5f5f5;padding:18px 16px;font-size:.85rem;font-weight:600}.work-table thead th:last-child,.work-table td:last-child{border-right:0}.work-table tbody td{vertical-align:top;border-bottom:1px solid var(--line);border-right:1px solid var(--line);color:var(--fg);padding:20px 16px}.work-table tbody tr:last-child td{border-bottom:0}.work-table tbody tr:nth-child(2n) td{background:#ffffff8c}.work-domain{letter-spacing:.07em;text-transform:uppercase;color:var(--heading);font-size:.78rem;font-weight:700;font-family:var(--font-sans);margin-bottom:.45rem;display:block}.work-nested{margin:.85rem 0 0;padding-left:1.15rem}.work-nested .work-domain{margin:0 .35rem 0 0;font-size:.72rem;display:inline}.portfolio-intro,.github-intro{margin-bottom:.25rem}.built-portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:1.25rem;margin-top:1.35rem;display:grid}.built-portfolio-card{background:var(--card);border:1px solid var(--line);min-width:0;min-height:100%;color:var(--fg);border-radius:12px;flex-direction:column;padding:1.25rem 1.35rem;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex;box-shadow:0 1px 2px #0000000a}.built-portfolio-card:hover{color:var(--fg);border-color:#94a3b8;text-decoration:none;box-shadow:0 6px 16px #00000014}.built-portfolio-card:focus-visible{border-color:var(--accent);color:var(--fg);outline:2px solid var(--focus-color);outline-offset:2px;text-decoration:none;box-shadow:0 0 0 3px #2ec4b640}.built-portfolio-card__kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:600;font-family:var(--font-sans);margin-bottom:.5rem;display:block}.built-portfolio-card__title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--heading);margin-bottom:.65rem;font-size:clamp(1.1rem,1.2vw + .75rem,1.35rem);display:block}.built-portfolio-card__body{color:var(--muted);flex:1;margin-bottom:1rem;font-size:.95rem;line-height:1.55;display:block}.built-portfolio-card__inline-url{color:var(--fg);font-weight:600}.built-portfolio-card__cta{color:var(--accent-2);margin-top:auto;font-size:.92rem;font-weight:600;display:block}.built-portfolio-card:hover .built-portfolio-card__cta{color:var(--accent)}@media (width<=900px){.built-portfolio-grid{grid-template-columns:minmax(0,1fr)}}.portfolio-cards{flex-wrap:wrap;align-items:flex-start;gap:1rem;margin-top:1rem;display:flex}.portfolio-card{max-width:100%;line-height:0;display:block}.portfolio-card img{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:min(100%,420px);height:auto;display:block}.contribution-summary{border:1px solid var(--line);background:var(--card);border-radius:12px;grid-template-columns:1fr;gap:1rem;margin-top:1.25rem;padding:1rem 1.1rem;display:grid}.contribution-summary__title{margin:0 0 .4rem;font-size:1.05rem}.contribution-summary__body{color:var(--muted);max-width:36rem;margin:0 0 .65rem;font-size:.95rem}.contribution-summary__link{font-weight:600}.portfolio-card--heatmap{width:100%;max-width:36rem;overflow:hidden}.portfolio-card--heatmap img{opacity:.92;width:100%;max-width:100%;height:auto}.repo-section-head{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;margin:2rem 0 .35rem;padding-top:.25rem;display:flex}.repo-section-heading{margin:0;font-size:1.125rem}.repo-section-all{font-size:.95rem;font-weight:600}.portfolio-repos{margin-top:1rem}.repo-cards{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:1.25rem;width:100%;max-width:100%;margin-top:1rem;display:grid}.repo-card{min-width:0;max-width:100%;color:var(--fg);background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 1px 2px #0000000d}.repo-card:hover{color:var(--fg);border-color:#94a3b8;text-decoration:none;box-shadow:0 6px 16px #00000014}.repo-card__og{aspect-ratio:1200/630;object-fit:cover;object-position:top center;background:#f8fafa;width:100%;max-width:100%;height:auto;display:block}.repo-card__body{border-top:1px solid #f1f5f9;flex-direction:column;flex:1;min-width:0;padding:1rem 1.25rem 1.15rem;display:flex}.repo-card__name{color:var(--heading);overflow-wrap:anywhere;font-size:1.05rem;font-weight:700;display:block}.repo-card__desc{color:var(--muted);overflow-wrap:anywhere;margin-top:.35rem;font-size:.9rem;line-height:1.45;display:block}.repo-card__stats{flex-wrap:wrap;gap:.45rem .75rem;margin-top:auto;padding-top:.85rem;display:flex}.repo-card__stat{border:1px solid var(--line);background:#fafafa;border-radius:8px;flex-direction:column;gap:.1rem;min-width:3.5rem;padding:.35rem .55rem;display:inline-flex}.repo-card__stat-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:600}.repo-card__stat-value{color:var(--heading);font-size:.92rem;font-weight:700;font-family:var(--font-display)}.publication-featured{margin-top:.75rem}.publication-card{border:1px solid var(--line);max-width:36rem;color:var(--fg);box-shadow:none;background:linear-gradient(#fff 0%,#f5f5f5 100%);border-radius:14px;padding:1.35rem 1.5rem;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:block}.publication-card:hover{border-color:var(--accent);color:var(--fg);text-decoration:none;box-shadow:0 6px 16px #0000000f}.publication-card__kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem;font-size:.72rem;font-weight:700;display:block}.publication-card__title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--heading);font-size:clamp(1.2rem,1.5vw + .8rem,1.55rem);display:block}.publication-card__body{color:var(--muted);margin-top:.45rem;font-size:.95rem;line-height:1.5;display:block}@media (width<=1100px){.repo-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.repo-cards{grid-template-columns:minmax(0,1fr)}}@media (width>=900px){.contribution-summary{grid-template-columns:minmax(12rem,.85fr) minmax(0,1.15fr);align-items:center}}@media (width<=900px){.work-table,.work-table thead,.work-table tbody,.work-table th,.work-table td,.work-table tr{width:100%;display:block}.work-table thead{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.work-table tbody tr{border-bottom:1px solid var(--line);padding:8px 0}.work-table tbody tr:last-child{border-bottom:0}.work-table tbody td{border:0;border-bottom:1px dashed var(--line);padding:14px 16px}.work-table tbody td:last-child{border-bottom:0}.work-table tbody td:before{content:attr(data-label);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem;font-size:.75rem;font-weight:700;display:block}}.support-options{gap:12px;max-width:36rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.support-option{border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:14px;padding:1.15rem 1.35rem;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:block}.support-option:hover{border-color:var(--accent);color:var(--fg);text-decoration:none;box-shadow:0 6px 16px #0000000f}.support-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.support-option__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--heading);font-size:1.05rem;font-weight:700;display:block}.support-option__body{color:var(--muted);margin-top:.35rem;font-size:.95rem;line-height:1.5;display:block}.connect-badges{flex-wrap:wrap;align-items:stretch;gap:16px;margin-top:.5rem;display:flex}.li-badge{max-width:100%;min-height:88px;color:var(--fg);background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:inline-flex;box-shadow:0 1px 2px #0000000d}.li-badge:hover{color:var(--fg);border-color:#0a66c2;text-decoration:none;box-shadow:0 4px 12px #0a66c21f}.li-badge__photo{object-fit:cover;background:#f1f5f9;border-radius:50%;flex-shrink:0;width:64px;height:64px}.li-badge__body{flex-direction:column;gap:2px;min-width:0;display:flex}.li-badge__name{color:#0a175e;font-size:1rem;font-weight:700;line-height:1.25}.li-badge__role{color:var(--heading);font-size:.95rem;font-weight:600;line-height:1.35}.li-badge__cta{color:#0a66c2;margin-top:4px;font-size:.8rem;font-weight:600}.li-badge__mark{color:#fff;background:#0a66c2;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-left:4px;font-size:.85rem;font-weight:800;display:inline-flex}.connect-shell{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:12px;min-height:88px;padding:12px 16px;display:inline-flex;box-shadow:0 1px 2px #0000000d}.connect-shell__mark{color:#fff;background:#0a0a0a;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.95rem;font-weight:700;display:inline-flex}.connect-badges .LI-profile-badge,.connect-badges .badge-base{min-width:200px;min-height:56px;line-height:normal;display:inline-block;position:relative}.connect-badges .LI-profile-badge[hidden],.connect-badges .li-badge[hidden]{display:none!important}.connect-badges .LI-simple-link{display:none}.connect-badges .twitter-follow-button{align-items:center;min-height:28px;display:inline-flex}.connect-badges iframe{vertical-align:middle;max-width:100%;display:block}
