@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_a9df3dd8-module__7wYMoG__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_a9df3dd8-module__7wYMoG__variable{--font-body:"Inter", "Inter Fallback"}
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..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:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_6ceeaab9-module__sj0MdG__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_6ceeaab9-module__sj0MdG__variable{--font-display:"Manrope", "Manrope Fallback"}
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.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:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_a793bbdc-module__eski5G__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_a793bbdc-module__eski5G__variable{--font-label:"Space Grotesk", "Space Grotesk Fallback"}
:root{--surface:#f7f9fb;--surface-container-low:#f2f4f6;--surface-container:#eceef0;--surface-container-lowest:#fff;--surface-dim:#f1f5f9;--text-primary:#191c1e;--text-muted:#454652;--text-subtle:#64748b;--text-placeholder:#757684;--text-on-primary:#fff;--primary:#2b3c8c;--primary-container:#4454a5;--primary-fixed:#dee1ff;--tertiary:#6c3400;--outline-variant:#c5c5d4;--nav-brand:#0f172a;--nav-link:#475569;--nav-link-active:#4338ca;--nav-link-active-border:#4f46e5;--footer-command:#4338ca;--chip-bg:#e6e8ea;--secondary-bg:#e0e3e5;--timeline-node-bg:#e0e3e5;--timeline-node-fg:#64748b;--location-overlay-text:#fff;--status-dot-size:10px;--ambient-shadow:0 20px 40px -10px #2b3c8c14;--ambient-shadow-strong:0 20px 40px -10px #2b3c8c33;--ghost-border:1px solid #c5c5d433;--radius-xl:12px;--radius-lg:10px;--radius-pill:999px;--space-page-gap:96px;--space-page-bottom:72px;--space-section-top:52px;--space-block-xxl:96px;--space-block-xl:72px;--space-block-lg:56px;--space-block-md:40px;--space-block-sm:28px;--motion-duration-enter:.42s;--motion-duration-reveal:.5s;--motion-duration-fast:.22s;--motion-stagger-step:60ms;--motion-distance-sm:14px;--motion-distance-md:18px;--motion-ease-standard:cubic-bezier(.33, 1, .68, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--surface:#0f131a;--surface-container-low:#161c26;--surface-container:#1c2431;--surface-container-lowest:#232d3d;--surface-dim:#0b1017;--text-primary:#e6ecf4;--text-muted:#b8c2d2;--text-subtle:#8f9bae;--text-placeholder:#8b95a8;--text-on-primary:#f3f6ff;--primary:#7f8fff;--primary-container:#5768d1;--primary-fixed:#2e3968;--tertiary:#d8a16e;--outline-variant:#4b5670;--nav-brand:#dfe7f5;--nav-link:#9dacbf;--nav-link-active:#9aa9ff;--nav-link-active-border:#7f8fff;--footer-command:#9aa9ff;--chip-bg:#2a3344;--secondary-bg:#2a3344;--timeline-node-bg:#2a3344;--timeline-node-fg:#a8b4c7;--location-overlay-text:#f4f7ff;--ambient-shadow:0 20px 40px -10px #080c1c73;--ambient-shadow-strong:0 20px 40px -10px #080c1c99;--ghost-border:1px solid #7a8aa838}}:root[data-theme=dark]{--surface:#0f131a;--surface-container-low:#161c26;--surface-container:#1c2431;--surface-container-lowest:#232d3d;--surface-dim:#0b1017;--text-primary:#e6ecf4;--text-muted:#b8c2d2;--text-subtle:#8f9bae;--text-placeholder:#8b95a8;--text-on-primary:#f3f6ff;--primary:#7f8fff;--primary-container:#5768d1;--primary-fixed:#2e3968;--tertiary:#d8a16e;--outline-variant:#4b5670;--nav-brand:#dfe7f5;--nav-link:#9dacbf;--nav-link-active:#9aa9ff;--nav-link-active-border:#7f8fff;--footer-command:#9aa9ff;--chip-bg:#2a3344;--secondary-bg:#2a3344;--timeline-node-bg:#2a3344;--timeline-node-fg:#a8b4c7;--location-overlay-text:#f4f7ff;--ambient-shadow:0 20px 40px -10px #080c1c73;--ambient-shadow-strong:0 20px 40px -10px #080c1c99;--ghost-border:1px solid #7a8aa838}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--surface);color:var(--text-primary);font-family:var(--font-body), "Inter", sans-serif;min-height:100%;transition:background-color var(--motion-duration-enter) var(--motion-ease-standard), color var(--motion-duration-enter) var(--motion-ease-standard)}a{color:inherit;text-decoration:none}.portfolio-body{background:var(--surface);min-height:100vh}.portfolio-main{padding-top:84px}.route-transition{will-change:opacity, transform, filter}.container-shell{width:min(1280px,100% - 64px);margin-inline:auto}.page{gap:var(--space-page-gap);padding-bottom:var(--space-page-bottom);flex-direction:column;display:flex}.section-spaced{padding-top:var(--space-section-top)}.top-nav-shell{z-index:100;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:color-mix(in srgb, var(--surface-container-lowest) 80%, transparent);box-shadow:var(--ambient-shadow);transition:background-color var(--motion-duration-enter) var(--motion-ease-standard), box-shadow var(--motion-duration-enter) var(--motion-ease-standard);position:fixed;inset:0 0 auto}.top-nav{justify-content:space-between;align-items:center;gap:18px;min-height:84px;display:flex}.top-nav-brand{font-family:var(--font-display), "Manrope", sans-serif;letter-spacing:-.05em;color:var(--nav-brand);white-space:nowrap;font-size:20px;font-weight:800}.top-nav-links{scrollbar-width:none;-webkit-overflow-scrolling:touch;align-items:center;gap:24px;min-width:0;display:flex;overflow-x:auto}.top-nav-links::-webkit-scrollbar{display:none}.top-nav-link{font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--nav-link);transition:color var(--motion-duration-fast) var(--motion-ease-standard), border-color var(--motion-duration-fast) var(--motion-ease-standard);white-space:nowrap;border-bottom:2px solid #0000;padding-bottom:7px;font-size:12px}.top-nav-link:hover,.top-nav-link.is-active{color:var(--nav-link-active);border-color:var(--nav-link-active-border)}.top-nav-actions{align-items:center;gap:12px;display:inline-flex}.top-nav-menu-toggle{border:var(--ghost-border);background:color-mix(in srgb, var(--surface-container-lowest) 85%, transparent);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:4px;width:40px;height:40px;padding:0;display:none}.menu-line{background:var(--text-primary);width:16px;height:2px;transition:transform var(--motion-duration-fast) var(--motion-ease-standard), opacity var(--motion-duration-fast) var(--motion-ease-standard);border-radius:999px}.top-nav-menu-toggle.is-open .menu-line:first-child{transform:translateY(6px)rotate(45deg)}.top-nav-menu-toggle.is-open .menu-line:nth-child(2){opacity:0}.top-nav-menu-toggle.is-open .menu-line:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.theme-toggle{border:var(--ghost-border);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-container-lowest) 82%, transparent);height:36px;color:var(--text-muted);font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-ease-standard), border-color var(--motion-duration-fast) var(--motion-ease-standard), background-color var(--motion-duration-fast) var(--motion-ease-standard);align-items:center;gap:8px;padding:0 12px;font-size:11px;display:inline-flex}.theme-toggle:hover{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 35%, var(--outline-variant) 65%)}.theme-toggle-dot{background:var(--primary);border-radius:50%;width:8px;height:8px}.ghost-top{border-top:var(--ghost-border)}.site-footer{background:var(--surface-dim);transition:background-color var(--motion-duration-enter) var(--motion-ease-standard);padding:48px 0}.footer-grid{justify-content:space-between;align-items:center;gap:24px;padding-top:48px;display:flex}.footer-command{font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.1em;color:var(--footer-command);text-transform:uppercase;margin:0 0 8px;font-size:12px}.footer-copy{color:var(--text-subtle);margin:0;font-size:14px}.footer-links{gap:32px;display:flex}.footer-link{font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.1em;color:var(--text-subtle);text-transform:uppercase;transition:color var(--motion-duration-fast) var(--motion-ease-standard);font-size:12px}.footer-link:hover{color:var(--primary)}.section-index{font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--tertiary);margin:0;font-size:12px}.display-xl,.display-lg,.display-md,.display-subtitle{font-family:var(--font-display), "Manrope", sans-serif;color:var(--text-primary);margin:0}.display-xl{letter-spacing:-.02em;font-size:clamp(42px,7vw,96px);font-weight:800;line-height:1}.display-lg{letter-spacing:-.02em;font-size:clamp(38px,6vw,72px);font-weight:800;line-height:1}.display-md{letter-spacing:-.02em;font-size:clamp(30px,3vw,36px);font-weight:800;line-height:1.1}.display-subtitle{color:var(--primary);opacity:.9;font-size:clamp(30px,4vw,48px);line-height:1.1}.body-lg,.body-md,.body-sm{color:var(--text-muted);margin:0}.body-lg{font-size:clamp(18px,2vw,24px);line-height:1.45}.body-md{font-size:18px;line-height:1.625}.body-sm{font-size:14px;line-height:1.6}.ambient-card,.ambient-surface{border-radius:var(--radius-xl)}.ambient-card{background:var(--surface-container-lowest);box-shadow:var(--ambient-shadow);transition:background-color var(--motion-duration-enter) var(--motion-ease-standard), box-shadow var(--motion-duration-enter) var(--motion-ease-standard)}.ambient-surface{background:var(--surface-container-low);transition:background-color var(--motion-duration-enter) var(--motion-ease-standard)}.cta{border-radius:var(--radius-pill);font-family:var(--font-label), "Space Grotesk", sans-serif;text-transform:uppercase;letter-spacing:.08em;transition:transform var(--motion-duration-fast) var(--motion-ease-standard), box-shadow var(--motion-duration-fast) var(--motion-ease-standard), background-color var(--motion-duration-fast) var(--motion-ease-standard), border-color var(--motion-duration-fast) var(--motion-ease-standard), color var(--motion-duration-fast) var(--motion-ease-standard);border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:14px 28px;font-size:12px;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.cta--tiny{padding:10px 20px;font-size:11px}.cta--primary{background:var(--primary);color:var(--text-on-primary);box-shadow:var(--ambient-shadow-strong)}.cta--secondary{background:var(--secondary-bg);color:var(--text-primary);border-color:#c5c5d433}.cta--light{background:var(--surface-container-lowest);color:var(--primary)}.cta--ghost{color:var(--primary);background:0 0;border-color:#2b3c8c33}.cta--dark{background:var(--text-primary);color:var(--surface)}.cta:hover{transform:translateY(-1px)}.cta-shimmer:before{content:"";background:linear-gradient(120deg, transparent 0%, color-mix(in srgb, var(--primary-container) 65%, white 35%) 50%, transparent 100%);width:38%;transition:transform var(--motion-duration-enter) var(--motion-ease-standard);position:absolute;inset:0;transform:translate(-180%)skew(-24deg)}.cta-shimmer:hover:before{transform:translate(320%)skew(-24deg)}.tech-chip{border-radius:var(--radius-pill);background:var(--chip-bg);font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;align-items:center;gap:8px;padding:6px 12px;font-size:11px;display:inline-flex}.tech-chip.is-small{padding:4px 10px;font-size:10px}.tech-chip-dot{background:var(--primary);border-radius:50%;width:6px;height:6px}.home-hero{min-height:760px;padding-top:32px;position:relative}.hero-code-mark{color:color-mix(in srgb, var(--primary) 12%, transparent);-webkit-user-select:none;user-select:none;pointer-events:none;font-size:clamp(180px,22vw,320px);font-weight:700;position:absolute;top:200px;left:6px;transform:rotate(-14deg)}.home-hero-grid{z-index:2;grid-template-columns:1.2fr 1fr;align-items:center;gap:48px;display:grid;position:relative}.home-hero-copy{flex-direction:column;gap:16px;display:flex}.home-summary{max-width:640px;padding-top:12px}.cta-row{flex-wrap:wrap;gap:16px;padding-top:20px;display:flex}.metric-row{flex-wrap:wrap;gap:44px;margin-top:28px;padding-top:28px;display:flex}.metric-item{flex-direction:column;gap:3px;display:flex}.metric-value{font-family:var(--font-label), "Space Grotesk", sans-serif;color:var(--primary);margin:0;font-size:18px;font-weight:700}.metric-label{font-family:var(--font-label), "Space Grotesk", sans-serif;color:var(--text-muted);letter-spacing:.11em;text-transform:uppercase;margin:0;font-size:11px}.home-bento{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.bento-card{flex-direction:column;justify-content:space-between;gap:18px;min-height:270px;padding:28px;display:flex}.bento-card h3{font-family:var(--font-display), "Manrope", sans-serif;letter-spacing:-.02em;margin:0;font-size:30px;line-height:1.1}.bento-accent{background:var(--primary);width:48px;height:4px}.chip-stack{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.bento-card-primary{background:linear-gradient(135deg, var(--primary), var(--primary-container));color:var(--text-on-primary)}.bento-card-primary p{font-family:var(--font-label), "Space Grotesk", sans-serif;color:#b9c3ff;text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:12px}.bento-cover{grid-column:1/-1;min-height:320px;position:relative;overflow:hidden}.cover-image{object-fit:cover;width:100%;height:100%;display:block}.cover-overlay{color:var(--text-on-primary);background:linear-gradient(#191c1e00 30%,#191c1ecc 100%);flex-direction:column;justify-content:flex-end;gap:8px;padding:24px;display:flex;position:absolute;inset:0}.cover-status{font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:10px}.cover-overlay h3{font-size:20px;font-family:var(--font-display), "Manrope", sans-serif;margin:0}.home-featured{gap:var(--space-block-lg);flex-direction:column;display:flex}.featured-head{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.inline-link{font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);font-size:12px}.featured-grid,.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.project-card{background:var(--surface-container-lowest);border-radius:var(--radius-xl);transition:transform var(--motion-duration-fast) var(--motion-ease-standard), box-shadow var(--motion-duration-fast) var(--motion-ease-standard);position:relative;overflow:hidden;box-shadow:0 20px 40px -10px #2b3c8c0d}.project-card:after{content:"";opacity:0;transition:opacity var(--motion-duration-fast) var(--motion-ease-standard);pointer-events:none;background:linear-gradient(145deg,#dee1ff1f,#dee1ff00);position:absolute;inset:0}.project-card:hover{box-shadow:var(--ambient-shadow);transform:translateY(-4px)}.project-card:hover:after{opacity:1}.project-card-media{background:var(--surface-container);min-height:214px;overflow:hidden}.project-image{object-fit:cover;width:100%;height:214px;display:block}.project-card-body{flex-direction:column;gap:16px;padding:28px;display:flex}.project-headline-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.project-title{font-family:var(--font-display), "Manrope", sans-serif;letter-spacing:-.02em;margin:0;font-size:28px;line-height:1.2}.project-year{font-family:var(--font-label), "Space Grotesk", sans-serif;color:var(--tertiary);font-size:11px}.project-excerpt{color:var(--text-muted);margin:0;font-size:14px;line-height:1.65}.project-chip-row{flex-wrap:wrap;gap:8px;display:flex}.project-foot-row{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.project-code{font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--tertiary);font-size:12px}.project-link{color:var(--primary);font-size:18px}.project-cta-card{background:linear-gradient(145deg, var(--primary), var(--primary-container));color:var(--text-on-primary);border-radius:var(--radius-xl);min-height:440px;box-shadow:var(--ambient-shadow-strong);flex-direction:column;justify-content:space-between;padding:30px;display:flex}.project-cta-card h3{font-size:34px;line-height:1.1;font-family:var(--font-display), "Manrope", sans-serif;margin:0 0 12px}.project-cta-card p{color:#b9c3ff;margin:0;line-height:1.6}.project-cta-icon{color:#d6dbff;margin-bottom:18px}.section-title{max-width:820px;margin-top:16px}.section-summary{max-width:640px;margin-top:18px}.page-projects .projects-grid{margin-top:var(--space-block-lg)}.project-placeholder{background:var(--surface-container-low);border:2px dashed color-mix(in srgb, var(--outline-variant) 35%, transparent);border-radius:var(--radius-xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:512px;padding:24px;display:flex}.project-placeholder h3{font-size:24px;font-family:var(--font-display), "Manrope", sans-serif;margin:0}.project-placeholder p{text-transform:uppercase;letter-spacing:.1em;color:var(--text-placeholder);margin:0;font-size:11px}.placeholder-icon{width:44px;height:44px;color:var(--primary);background:var(--surface-container-lowest);border-radius:12px;place-items:center;display:grid}.detail-header{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.detail-subtitle{max-width:820px;margin-top:24px}.detail-actions{padding-bottom:8px}.detail-hero-image{margin-top:var(--space-block-md);min-height:480px;position:relative;overflow:hidden}.detail-image-overlay{background:linear-gradient(#2b3c8c00 30%,#2b3c8c33 100%);position:absolute;inset:0}.detail-grid{margin-top:var(--space-block-md);grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:72px;display:grid}.detail-main{gap:var(--space-block-lg);flex-direction:column;display:flex}.detail-section h2{font-family:var(--font-display), "Manrope", sans-serif;letter-spacing:-.02em;align-items:center;gap:10px;margin:0 0 22px;font-size:40px;display:flex}.detail-section h2 span{color:var(--tertiary);font-family:var(--font-label), "Space Grotesk", sans-serif;font-size:18px}.detail-section p+p{margin-top:20px}.detail-solution{padding:34px}.solution-bullets{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px;display:grid}.solution-bullets p{color:var(--text-muted);align-items:baseline;gap:8px;margin:0;line-height:1.6;display:flex}.solution-bullets span{color:var(--primary)}.implementation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.implementation-card{background:var(--surface-container-lowest);border-radius:var(--radius-lg);padding:24px;box-shadow:0 1px 2px #0000000d}.implementation-card p{font-family:var(--font-label), "Space Grotesk", sans-serif;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);margin:0 0 10px;font-size:12px}.implementation-card span{color:var(--text-muted);font-size:15px;line-height:1.6}.stack-chip-row{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.detail-aside{flex-direction:column;gap:24px;display:flex}.impact-card{background:var(--primary);color:var(--text-on-primary);border-radius:var(--radius-xl);padding:28px}.impact-card .section-index{color:#b9c3ff}.impact-metric{margin-top:24px}.impact-metric p{margin:0;font-size:48px;font-weight:600;line-height:1}.impact-metric span{font-family:var(--font-label), "Space Grotesk", sans-serif;color:#dbe2ff;font-size:14px}.next-steps-card{flex-direction:column;gap:18px;display:flex}.status-row{justify-content:space-between;align-items:center;padding-top:16px;display:flex}.status-row span{opacity:.55;font-family:var(--font-label), "Space Grotesk", sans-serif;font-size:13px}.status-row strong{color:var(--primary);align-items:center;gap:7px;font-size:13px;display:inline-flex}.status-row i{background:var(--primary);border-radius:50%;width:8px;height:8px;display:inline-block}.about-hero{margin-bottom:var(--space-block-xxl);grid-template-columns:1.2fr 1fr;align-items:start;gap:72px;display:grid}.about-copy{gap:12px;max-width:720px;display:grid}.about-bio{gap:24px;max-width:672px;margin-top:24px;display:grid}.text-primary{color:var(--primary)}.about-portrait-wrap{position:relative}.about-portrait{height:580px;overflow:hidden}.about-portrait .cover-image{object-fit:cover;width:100%;height:100%}.about-status-floating{padding:16px 18px;position:absolute;bottom:-20px;right:-20px}.about-status-floating strong{align-items:center;gap:8px;font-size:14px;display:inline-flex}.about-status-floating i{background:var(--primary);border-radius:50%;width:8px;height:8px;display:inline-block}.skills-section,.timeline-section{flex-direction:column;gap:12px;display:flex}.skills-section{margin-top:0}.timeline-section{margin-top:var(--space-block-xl)}.experience-timeline{margin-top:var(--space-block-lg)}.skill-grid{margin-top:var(--space-block-md);grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.skill-card{padding:32px}.skill-card h3{font-family:var(--font-display), "Manrope", sans-serif;margin:0 0 22px}.skill-list{gap:16px;display:grid}.skill-row{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;font-size:16px;display:flex}.timeline-list{margin-top:var(--space-block-md);gap:56px;display:grid;position:relative}.timeline-list:before{content:"";background:#c5c5d44d;width:1px;position:absolute;top:8px;bottom:8px;left:15px}.timeline-item{grid-template-columns:36px minmax(0,1fr);gap:34px;display:grid;position:relative}.timeline-node{background:var(--timeline-node-bg);width:32px;height:32px;color:var(--timeline-node-fg);border:1px solid #c5c5d466;border-radius:50%;place-items:center;font-size:12px;display:grid}.timeline-node.active{background:var(--primary);color:var(--text-on-primary);border-color:#0000}.timeline-content{gap:12px;display:grid}.timeline-headline-row{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.timeline-headline-row h3{font-size:32px;line-height:1.1;font-family:var(--font-display), "Manrope", sans-serif;margin:0}.timeline-headline-row span{color:var(--primary);font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.08em;text-transform:uppercase;font-size:14px}.timeline-company{font-family:var(--font-label), "Space Grotesk", sans-serif;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:12px}.contact-hero{justify-content:space-between;align-items:flex-end;gap:48px;display:flex}.contact-title{letter-spacing:-.025em;max-width:390px;font-size:clamp(52px,5.7vw,72px);line-height:1}.contact-intro{max-width:448px;padding-bottom:8px}.contact-bento{margin-top:var(--space-block-xl);grid-template-columns:minmax(0,1.45fr) minmax(340px,1fr);align-items:start;gap:28px;display:grid}.contact-form-card{align-self:start;padding:48px}.contact-form{gap:34px;display:grid}.contact-two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;display:grid}.contact-field-wrap{gap:12px;display:grid}.contact-label{font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:13px}.contact-input{border:0;border-bottom:1px solid var(--outline-variant);background:var(--surface-container-low);width:100%;color:var(--text-primary);font-size:16px;font-family:var(--font-body), "Inter", sans-serif;transition:border-color var(--motion-duration-fast) var(--motion-ease-standard);border-radius:0;outline:0;padding:16px}.contact-input::placeholder{color:var(--text-placeholder)}.contact-textarea{resize:vertical;min-height:132px}.contact-input:focus{border-color:var(--primary)}.contact-side-cluster{gap:32px;display:grid}.status-block{background:var(--surface-container-low);border-left:4px solid var(--primary);border-radius:var(--radius-xl);justify-content:space-between;align-items:center;gap:20px;padding:32px;display:flex}.status-label{font-family:var(--font-label), "Space Grotesk", sans-serif;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);margin:0;font-size:12px}.status-value{font-family:var(--font-display), "Manrope", sans-serif;letter-spacing:-.02em;margin:6px 0 0;font-size:30px}.status-dot{background:var(--primary);border-radius:50%;width:10px;height:10px}.contact-channel-card{gap:16px;padding:32px;display:grid}.contact-email{font-size:40px;line-height:1.1;font-family:var(--font-display), "Manrope", sans-serif;margin:0 0 8px}.channel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.channel-link{background:var(--surface-container-lowest);min-height:56px;font-family:var(--font-label), "Space Grotesk", sans-serif;transition:background-color var(--motion-duration-fast) var(--motion-ease-standard), color var(--motion-duration-fast) var(--motion-ease-standard);border-radius:8px;align-items:center;padding:16px;font-size:15px;display:flex}.channel-link:hover{background:color-mix(in srgb, var(--primary-fixed) 28%, var(--surface-container-lowest) 72%);color:var(--primary)}.location-card{border-radius:var(--radius-xl);min-height:200px;box-shadow:var(--ambient-shadow);position:relative;overflow:hidden}.location-overlay{color:var(--location-overlay-text);background:linear-gradient(20deg,#2b3c8ccc,#2b3c8c00);flex-direction:column;justify-content:flex-end;gap:4px;padding:24px;display:flex;position:absolute;inset:0}.location-overlay p{font-size:11px;font-family:var(--font-label), "Space Grotesk", sans-serif;letter-spacing:.08em;text-transform:uppercase;margin:0}.location-overlay h3{font-size:26px;font-family:var(--font-display), "Manrope", sans-serif;margin:0}.newsletter-card{margin-top:var(--space-block-xl);border-radius:var(--radius-xl);background:var(--surface-container);justify-content:space-between;align-items:center;gap:48px;padding:48px;display:flex}.newsletter-card h2{margin-bottom:10px}.newsletter-form{gap:12px;width:min(520px,100%);display:flex}.newsletter-input{background:var(--surface-container-lowest);border:0;border-radius:12px;outline:0;flex:1;height:56px;padding:0 18px;font-size:16px}.newsletter-input:focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 30%, white 70%)}@media (prefers-reduced-motion:reduce){.route-transition,[data-motion],[data-motion-item]{filter:none!important;opacity:1!important;animation:none!important;transform:none!important}.cta,.project-card,.top-nav-link{transition:none}}@media (max-width:1120px){:root{--space-page-gap:84px;--space-page-bottom:64px;--space-section-top:44px;--space-block-xxl:72px;--space-block-xl:56px;--space-block-lg:48px;--space-block-md:36px;--space-block-sm:24px}.home-hero-grid,.about-hero,.detail-grid,.contact-bento{grid-template-columns:1fr}.detail-actions{padding-bottom:0}.detail-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.contact-intro{max-width:560px;padding-bottom:0}.about-hero{margin-bottom:var(--space-block-xxl);gap:48px}.about-copy,.about-bio{max-width:100%}.timeline-section{margin-top:var(--space-block-xl)}.experience-timeline{margin-top:var(--space-block-lg)}.contact-bento,.newsletter-card{margin-top:var(--space-block-xl)}}@media (max-width:960px){:root{--space-page-gap:76px;--space-page-bottom:56px;--space-section-top:40px;--space-block-xxl:64px;--space-block-xl:48px;--space-block-lg:40px;--space-block-md:32px;--space-block-sm:22px}.container-shell{width:min(1280px,100% - 40px)}.top-nav{grid-template-columns:1fr auto;justify-content:space-between;align-items:center;gap:0 14px;min-height:0;padding:10px 0;display:grid}.portfolio-main{padding-top:94px}.top-nav-brand{grid-column:1/2}.top-nav-menu-toggle{flex-direction:column;grid-column:2/3;justify-self:end;display:inline-flex}.top-nav-actions,.top-nav-links{display:none}.top-nav.is-mobile-open{row-gap:12px}.top-nav.is-mobile-open .top-nav-links{border-top:var(--ghost-border);flex-direction:column;grid-column:1/-1;align-items:flex-start;gap:12px;width:100%;padding:14px 0 0;display:flex;overflow:visible}.top-nav.is-mobile-open .top-nav-actions{grid-column:1/-1;gap:10px;padding-bottom:4px;display:inline-flex}.featured-grid,.projects-grid,.skill-grid,.implementation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-cta-card,.project-placeholder{min-height:360px}.contact-hero,.featured-head,.newsletter-card,.timeline-headline-row,.footer-grid{flex-direction:column;align-items:flex-start}.newsletter-form{width:100%}.contact-email{font-size:30px}.contact-bento,.newsletter-card{margin-top:var(--space-block-xl)}}@media (max-width:760px){:root{--space-page-gap:68px;--space-page-bottom:48px;--space-section-top:32px;--space-block-xxl:56px;--space-block-xl:40px;--space-block-lg:32px;--space-block-md:24px;--space-block-sm:18px}.container-shell{width:calc(100% - 28px)}.page{gap:var(--space-page-gap)}.top-nav-links{gap:12px}.top-nav{padding:9px 0}.top-nav-brand{letter-spacing:-.04em;font-size:18px}.top-nav-menu-toggle{width:36px;height:36px}.theme-toggle{letter-spacing:.08em;height:32px;padding:0 10px;font-size:10px}.top-nav-actions .cta--tiny{padding:9px 14px;font-size:10px}.top-nav-link{letter-spacing:.08em;padding-bottom:4px;font-size:12px}.portfolio-main{padding-top:90px}.hero-code-mark{opacity:.5;top:280px;left:10px}.home-bento,.featured-grid,.projects-grid,.skill-grid,.implementation-grid,.solution-bullets,.contact-two-col,.channel-grid,.detail-aside{grid-template-columns:1fr}.contact-form-card,.detail-solution,.newsletter-card,.skill-card,.project-card-body{padding:22px}.contact-bento,.newsletter-card{margin-top:var(--space-block-xl)}.contact-form{gap:24px}.project-title,.status-value,.timeline-headline-row h3,.location-overlay h3{font-size:24px}.about-status-floating{margin-top:14px;position:static}.about-hero{margin-bottom:var(--space-block-xxl);gap:32px}.timeline-section{margin-top:var(--space-block-xl)}.experience-timeline{margin-top:var(--space-block-lg)}.skill-grid,.timeline-list{margin-top:var(--space-block-md)}.timeline-list{gap:40px}.timeline-item{grid-template-columns:28px minmax(0,1fr);gap:20px}.timeline-node{width:26px;height:26px;font-size:10px}.timeline-list:before{left:12px}.site-footer{padding:36px 0}.footer-links{flex-wrap:wrap;gap:16px}}@media (max-width:420px){.top-nav.is-mobile-open .top-nav-actions{width:100%}.theme-toggle{width:32px;padding-inline:0}.theme-toggle span:last-child{display:none}.top-nav-actions .cta--tiny{padding:8px 11px}.portfolio-main{padding-top:88px}}
