@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-italic-BicUS2cM.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-italic-BfTTTDIL.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-italic-Py8at3oI.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.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}:root{--gutter:clamp(1rem, 4vw, 2.5rem);--header-h:72px;--font-display:Fraunces Variable, Iowan Old Style, Palatino Linotype, Georgia, serif;--font-sans:Geist Variable, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-mono:Geist Mono Variable, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ease-out:cubic-bezier(.22, 1, .36, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f4f1ea;--color-surface:#fbf9f4;--color-surface-2:#ece8df;--color-surface-inverse:#16140f;--color-border:#16140f1a;--color-border-strong:#16140f38;--color-text:#16140f;--color-text-muted:#58534b;--color-text-subtle:#6a645a;--color-text-inverse:#f4f1ea;--color-accent:#e4572e;--color-accent-text:#b13c18;--color-accent-soft:#e4572e1f;--color-on-accent:#16140f;--color-accent-on-inverse:#ff7a4d;--color-focus:#b13c18;--color-spotlight:#e4572e17;--color-grid:#16140f12;--color-glow:#ff7a3d47;--color-success:#1f7a4a;--color-danger:#b42318;--header-bg:#f4f1eab8;--shadow-sm:0 1px 2px #16140f0f;--shadow-md:0 14px 34px -16px #16140f38;--shadow-lg:0 40px 90px -40px #16140f66;--noise-opacity:.045}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0d0d0f;--color-surface:#141417;--color-surface-2:#1c1c21;--color-surface-inverse:#ece8e1;--color-border:#ffffff14;--color-border-strong:#ffffff2e;--color-text:#ece8e1;--color-text-muted:#a8a399;--color-text-subtle:#8f8a80;--color-text-inverse:#0d0d0f;--color-accent:#ff6b3d;--color-accent-text:#ff8a5f;--color-accent-soft:#ff6b3d24;--color-on-accent:#0d0d0f;--color-accent-on-inverse:#9c3312;--color-focus:#ff8a5f;--color-spotlight:#ff6b3d1a;--color-grid:#ffffff0d;--color-glow:#ff6b3d33;--color-success:#4ade80;--color-danger:#ff7b72;--header-bg:#0d0d0fb3;--shadow-sm:0 1px 2px #0006;--shadow-md:0 14px 34px -16px #000000b3;--shadow-lg:0 40px 90px -40px #000000d9;--noise-opacity:.06}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0d0d0f;--color-surface:#141417;--color-surface-2:#1c1c21;--color-surface-inverse:#ece8e1;--color-border:#ffffff14;--color-border-strong:#ffffff2e;--color-text:#ece8e1;--color-text-muted:#a8a399;--color-text-subtle:#8f8a80;--color-text-inverse:#0d0d0f;--color-accent:#ff6b3d;--color-accent-text:#ff8a5f;--color-accent-soft:#ff6b3d24;--color-on-accent:#0d0d0f;--color-accent-on-inverse:#9c3312;--color-focus:#ff8a5f;--color-spotlight:#ff6b3d1a;--color-grid:#ffffff0d;--color-glow:#ff6b3d33;--color-success:#4ade80;--color-danger:#ff7b72;--header-bg:#0d0d0fb3;--shadow-sm:0 1px 2px #0006;--shadow-md:0 14px 34px -16px #000000b3;--shadow-lg:0 40px 90px -40px #000000d9;--noise-opacity:.06}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100svh}img,picture,video,canvas,svg{max-width:100%;display:block}img{height:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}ul[role=list],ol[role=list]{padding:0;list-style:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}[hidden]{display:none!important}html{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-padding-top:calc(var(--header-h) + 1.5rem);font-size:100%;line-height:1.6}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{color:var(--color-text);overflow-x:clip}::selection{background:var(--color-accent);color:var(--color-on-accent)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}h1,h2,h3,h4{text-wrap:balance;font-weight:500;line-height:1.1}p{text-wrap:pretty}strong{font-weight:600}em{font-style:italic}:where(main,section)[tabindex="-1"]:focus{outline:none}:root[data-motion=on] [data-reveal]{opacity:0;transform:translateY(28px)}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{[data-reveal],.intro-fade,.intro-slide,.hero__word{opacity:1!important;animation:none!important;transform:none!important}.header,.bg,.progress,.skip-link,.marquee__toggle{display:none!important}.timeline__item,.project-card,.skill-card{break-inside:avoid}}.container{width:100%;max-width:1320px;padding-inline:var(--gutter);margin-inline:auto}.container--narrow{width:100%;max-width:880px;padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(4rem,3rem + 5vw,8rem);position:relative}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}:root[data-motion=on] .intro-fade{animation:.9s cubic-bezier(.22,1,.36,1) both intro-fade;animation-delay:calc(var(--d,0) * 90ms + .35s)}:root[data-motion=on] .intro-slide{animation:.9s cubic-bezier(.22,1,.36,1) both intro-slide;animation-delay:calc(var(--d,0) * 90ms + .12s)}@keyframes intro-slide{0%{transform:translateY(22px)}}@keyframes intro-fade{0%{opacity:0;transform:translateY(18px)}}.page-enter-active{transition:opacity .42s cubic-bezier(.22,1,.36,1)}.page-leave-active{transition:opacity .24s cubic-bezier(.22,1,.36,1),transform .24s cubic-bezier(.22,1,.36,1)}.page-enter-from{opacity:0}.page-leave-to{opacity:0;transform:translateY(-12px)}.accent-sun{--accent-a:#f4b43c;--accent-b:#ff7a3d}.accent-lime{--accent-a:#b9e639;--accent-b:#3fbf6f}.accent-ocean{--accent-a:#3d7bff;--accent-b:#23c3e6}.accent-violet{--accent-a:#8b6cff;--accent-b:#d06cff}.accent-coral{--accent-a:#ff7a59;--accent-b:#ff4f8b}.accent-teal{--accent-a:#2bb3a3;--accent-b:#3d7bff}.accent-honey{--accent-a:#e9a23b;--accent-b:#c96f1f}.accent-rose{--accent-a:#f0648c;--accent-b:#8b6cff}.footer[data-v-a60f40ab]{border-top:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 55%, transparent);margin-top:4rem;padding-block:clamp(3rem,2rem + 4vw,5rem) 2rem;position:relative}.footer__top[data-v-a60f40ab]{gap:2.5rem;padding-bottom:3rem;display:grid}@media (min-width:768px){.footer__top[data-v-a60f40ab]{grid-template-columns:1.6fr 1fr 1fr}}.footer__name[data-v-a60f40ab]{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.75rem,1.35rem + 1.7vw,2.75rem);line-height:1}.footer__role[data-v-a60f40ab]{color:var(--color-text-muted);margin-top:.75rem;font-size:.875rem}.footer__col ul[data-v-a60f40ab]{gap:.25rem;display:grid}.footer__heading[data-v-a60f40ab]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:.75rem;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.footer__link[data-v-a60f40ab]{min-height:36px;color:var(--color-text-muted);align-items:center;gap:.5rem;font-size:.875rem;transition:color .16s cubic-bezier(.22,1,.36,1);display:inline-flex}.footer__link[data-v-a60f40ab]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.footer__link[data-v-a60f40ab]:hover{color:var(--color-text)}}.footer__bottom[data-v-a60f40ab]{border-top:1px solid var(--color-border);color:var(--color-text-subtle);font-size:.75rem;font-family:var(--font-mono);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding-top:1.5rem;display:flex}.footer__top-btn[data-v-a60f40ab]{min-height:44px;color:var(--color-text-muted);align-items:center;gap:.5rem;display:inline-flex}.footer__top-btn[data-v-a60f40ab]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.footer__top-btn[data-v-a60f40ab]:hover{color:var(--color-text)}}.btn[data-v-4031164d]{--btn-bg:transparent;--btn-fg:var(--color-text);--btn-border:transparent;border:1px solid var(--btn-border);background:var(--btn-bg);min-height:44px;color:var(--btn-fg);font-family:var(--font-sans);letter-spacing:-.01em;white-space:nowrap;isolation:isolate;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding-inline:1.25rem;font-size:.875rem;font-weight:500;line-height:1;transition:transform .28s cubic-bezier(.22,1,.36,1),background-color .28s cubic-bezier(.22,1,.36,1),border-color .28s cubic-bezier(.22,1,.36,1),color .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.22,1,.36,1);display:inline-flex;position:relative;overflow:hidden}.btn[data-v-4031164d]:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.btn[data-v-4031164d] svg{flex-shrink:0;transition:transform .28s cubic-bezier(.22,1,.36,1)}@media (hover:hover) and (pointer:fine){.btn[data-v-4031164d]:hover{transform:translateY(-1px)}.btn[data-v-4031164d]:hover svg{transform:translate(2px,-1px)}}.btn[data-v-4031164d]:active{transform:translateY(0)scale(.98)}.btn--sm[data-v-4031164d]{min-height:36px;padding-inline:1rem;font-size:.75rem}.btn--lg[data-v-4031164d]{min-height:52px;padding-inline:1.5rem;font-size:1rem}.btn--primary[data-v-4031164d]{--btn-bg:var(--color-accent);--btn-fg:var(--color-on-accent);box-shadow:0 10px 30px -12px var(--color-glow)}@media (hover:hover) and (pointer:fine){.btn--primary[data-v-4031164d]:hover{box-shadow:0 16px 40px -14px var(--color-glow)}}.btn--secondary[data-v-4031164d]{--btn-bg:var(--color-surface);--btn-border:var(--color-border-strong)}@media (hover:hover) and (pointer:fine){.btn--secondary[data-v-4031164d]:hover{--btn-border:var(--color-text)}}.btn--ghost[data-v-4031164d]{--btn-fg:var(--color-text-muted);padding-inline:.75rem}@media (hover:hover) and (pointer:fine){.btn--ghost[data-v-4031164d]:hover{--btn-fg:var(--color-text);--btn-bg:var(--color-surface-2)}}.brand-mark[data-v-e24d866c]{flex-shrink:0}.brand-mark__bg[data-v-e24d866c]{fill:var(--color-surface-inverse);transition:fill .28s cubic-bezier(.22,1,.36,1)}.brand-mark__w[data-v-e24d866c]{stroke:var(--color-text-inverse)}.brand-mark__dot[data-v-e24d866c]{fill:var(--color-accent)}.theme-toggle[data-v-797b447b]{border:1px solid var(--color-border);background:var(--color-surface);width:44px;height:44px;color:var(--color-text);border-radius:999px;place-items:center;transition:border-color .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1);display:grid;position:relative}.theme-toggle[data-v-797b447b]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.theme-toggle[data-v-797b447b]:hover{border-color:var(--color-border-strong);transform:rotate(-12deg)}}.theme-toggle__icon[data-v-797b447b]{grid-area:1/1;transition:transform .6s cubic-bezier(.22,1,.36,1),opacity .28s cubic-bezier(.22,1,.36,1)}.theme-toggle__icon--sun[data-v-797b447b]{opacity:0;transform:rotate(-90deg)scale(.5)}:root[data-theme=dark] .theme-toggle__icon--sun[data-v-797b447b]{opacity:1;transform:none}:root[data-theme=dark] .theme-toggle__icon--moon[data-v-797b447b]{opacity:0;transform:rotate(90deg)scale(.5)}.menu[data-v-2db84009]{z-index:200;padding-block:1rem max(1.5rem, env(safe-area-inset-bottom));background:var(--color-bg);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.menu__top[data-v-2db84009]{justify-content:space-between;align-items:center;min-height:56px;display:flex}.menu__top-actions[data-v-2db84009]{gap:.5rem;display:flex}.menu__close[data-v-2db84009]{background:var(--color-surface-inverse);width:44px;height:44px;color:var(--color-text-inverse);border-radius:999px;place-items:center;display:grid}.menu__close[data-v-2db84009]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.menu__nav[data-v-2db84009]{flex:1;align-items:center;padding-block:2rem;display:flex}.menu__list[data-v-2db84009]{gap:.25rem;width:100%;display:grid}.menu__link[data-v-2db84009]{border-bottom:1px solid var(--color-border);font-family:var(--font-display);letter-spacing:-.03em;align-items:baseline;gap:1rem;padding-block:.5rem;font-size:clamp(2.25rem,1.5rem + 5vw,3.5rem);line-height:1.1;display:flex}.menu__link[data-v-2db84009]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.menu__link[data-v-2db84009]:active{color:var(--color-accent)}.menu__index[data-v-2db84009]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-text);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.menu__footer[data-v-2db84009]{gap:1rem;display:grid}.menu__row[data-v-2db84009]{flex-wrap:wrap;gap:.75rem 1.5rem;display:flex}.menu__contact[data-v-2db84009]{min-height:44px;color:var(--color-text-muted);word-break:break-all;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.menu__contact[data-v-2db84009]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.menu-enter-active[data-v-2db84009],.menu-leave-active[data-v-2db84009]{transition:opacity .32s cubic-bezier(.22,1,.36,1)}.menu-enter-active .menu__item[data-v-2db84009],.menu-leave-active .menu__item[data-v-2db84009]{transition:transform .52s cubic-bezier(.22,1,.36,1),opacity .52s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i) * 45ms + 60ms)}.menu-enter-from[data-v-2db84009],.menu-leave-to[data-v-2db84009]{opacity:0}.menu-enter-from .menu__item[data-v-2db84009],.menu-leave-to .menu__item[data-v-2db84009]{opacity:0;transform:translateY(24px)}.menu-leave-active .menu__item[data-v-2db84009]{transition-delay:0s}.header[data-v-46fd74f2]{z-index:100;padding-top:env(safe-area-inset-top);border-bottom:1px solid #0000;transition:background-color .28s cubic-bezier(.22,1,.36,1),border-color .28s cubic-bezier(.22,1,.36,1),-webkit-backdrop-filter .28s cubic-bezier(.22,1,.36,1),backdrop-filter .28s cubic-bezier(.22,1,.36,1);position:fixed;inset:0 0 auto}.header--scrolled[data-v-46fd74f2]{background:var(--header-bg);border-color:var(--color-border);-webkit-backdrop-filter:blur(16px)saturate(140%)}.header__inner[data-v-46fd74f2]{height:var(--header-h);justify-content:space-between;align-items:center;gap:1rem;display:flex}.header__brand[data-v-46fd74f2]{border-radius:10px;align-items:center;gap:.75rem;display:inline-flex}.header__brand[data-v-46fd74f2]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.header__name[data-v-46fd74f2]{letter-spacing:-.01em;font-size:.875rem;font-weight:600;line-height:1.2;display:grid}@media (max-width:479.98px){.header__name[data-v-46fd74f2]{display:none}}.header__role[data-v-46fd74f2]{color:var(--color-text-subtle);font-family:var(--font-mono);letter-spacing:.02em;font-size:.6875rem;font-weight:400}.header__nav[data-v-46fd74f2]{display:none}@media (min-width:1024px){.header__nav[data-v-46fd74f2]{display:block}}.header__list[data-v-46fd74f2]{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 75%, transparent);border-radius:999px;gap:.25rem;padding:.25rem;display:flex}.header__link[data-v-46fd74f2]{min-height:36px;color:var(--color-text-muted);border-radius:999px;align-items:center;padding-inline:1rem;font-size:.875rem;font-weight:500;transition:color .16s cubic-bezier(.22,1,.36,1),background-color .28s cubic-bezier(.22,1,.36,1);display:inline-flex;position:relative}.header__link[data-v-46fd74f2]:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (hover:hover) and (pointer:fine){.header__link[data-v-46fd74f2]:hover{color:var(--color-text)}}.header__link.is-active[data-v-46fd74f2]{background:var(--color-surface-inverse);color:var(--color-text-inverse)}.header__actions[data-v-46fd74f2]{align-items:center;gap:.5rem;display:flex}@media (max-width:767.98px){.header__cv[data-v-46fd74f2]{display:none}}.header__menu-btn[data-v-46fd74f2]{background:var(--color-surface-inverse);width:44px;height:44px;color:var(--color-text-inverse);border-radius:999px;place-items:center;display:grid}.header__menu-btn[data-v-46fd74f2]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (min-width:1024px){.header__menu-btn[data-v-46fd74f2]{display:none}}.bg[data-v-a815e223]{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg__grid[data-v-a815e223]{background-image:linear-gradient(to right, var(--color-grid) 1px, transparent 1px), linear-gradient(to bottom, var(--color-grid) 1px, transparent 1px);background-position:top;background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 0,#000 30%,#0000 80%);mask-image:radial-gradient(80% 60% at 50% 0,#000 30%,#0000 80%)}.bg__glow[data-v-a815e223]{background:radial-gradient(circle, var(--color-glow) 0%, transparent 65%);will-change:transform;border-radius:50%;width:640px;height:640px;position:absolute;top:-320px;left:-320px;transform:translate(70vw,20vh)}.bg__noise[data-v-a815e223]{opacity:var(--noise-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.progress[data-v-a3761c08]{z-index:300;background:linear-gradient(90deg, var(--color-accent), color-mix(in srgb, var(--color-accent) 40%, #fff));transform-origin:0;opacity:0;height:3px;transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .3s cubic-bezier(.22,1,.36,1) .2s;position:fixed;inset:0 0 auto;transform:scaleX(0)}.progress--active[data-v-a3761c08]{opacity:1;transition:transform 4s cubic-bezier(.1,.6,.2,1),opacity .12s linear;transform:scaleX(.8)}.skip-link[data-v-4172058a]{z-index:400;background:var(--color-surface-inverse);color:var(--color-text-inverse);border-radius:999px;padding:.75rem 1.25rem;font-weight:600;transition:transform .28s cubic-bezier(.22,1,.36,1);position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link[data-v-4172058a]:focus-visible{transform:none}.main[data-v-4172058a]{outline:none;display:block}.section-heading[data-v-d8575da5]{gap:1.5rem;margin-bottom:clamp(2.5rem,2rem + 3vw,4.5rem);display:grid}.section-heading__rule[data-v-d8575da5]{border-top:1px solid var(--color-border-strong);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);align-items:center;gap:.75rem;padding-top:1rem;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500;display:flex}.section-heading__index[data-v-d8575da5]{color:var(--color-accent-text)}.section-heading__label[data-v-d8575da5]:before{content:"/";color:var(--color-text-subtle);margin-right:.75rem}.section-heading__title[data-v-d8575da5]{letter-spacing:-.035em;font-variation-settings:"SOFT" 50;max-width:18ch;font-family:Fraunces Variable,Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:clamp(2.5rem,1.5rem + 4.2vw,5.25rem);font-weight:400;line-height:.95}.section-heading__title[data-v-d8575da5] em{color:var(--color-accent);font-style:italic}.section-heading__lede[data-v-d8575da5]{max-width:56ch;color:var(--color-text-muted);font-size:clamp(1.0625rem,1rem + .35vw,1.3125rem);line-height:1.55}.about__grid[data-v-95cfb80c]{gap:2.5rem;display:grid}@media (min-width:1024px){.about__grid[data-v-95cfb80c]{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,1rem + 5vw,6rem)}}.about__story[data-v-95cfb80c]{align-content:start;gap:1.25rem;display:grid}.about__lead[data-v-95cfb80c]{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.375rem,1.1rem + 1.1vw,2rem);line-height:1.3}.about__text[data-v-95cfb80c]{max-width:62ch;color:var(--color-text-muted);font-size:clamp(1.0625rem,1rem + .35vw,1.3125rem);line-height:1.65}.about__languages[data-v-95cfb80c]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);align-items:center;gap:.5rem;margin-top:.5rem;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500;display:inline-flex}.about__stats[data-v-95cfb80c]{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:.75rem;display:grid}@media (min-width:768px){.about__stats[data-v-95cfb80c]{gap:1rem}}.stat[data-v-95cfb80c]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:24px;flex-direction:column-reverse;justify-content:flex-end;gap:.5rem;min-height:150px;padding:1.25rem;display:flex}.stat__value[data-v-95cfb80c]{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(2.25rem,1.8rem + 1.8vw,3.5rem);line-height:1}.stat__label[data-v-95cfb80c]{color:var(--color-text-muted);font-size:.875rem;line-height:1.4}.principles[data-v-95cfb80c]{gap:.75rem;margin-top:clamp(3rem,2rem + 3vw,5rem);display:grid}@media (min-width:768px){.principles[data-v-95cfb80c]{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}}@media (min-width:1280px){.principles[data-v-95cfb80c]{grid-template-columns:repeat(4,minmax(0,1fr))}}.principle[data-v-95cfb80c]{background:var(--color-surface);border:1px solid var(--color-border);isolation:isolate;border-radius:24px;position:relative}.principle[data-v-95cfb80c]:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,-20%), var(--color-spotlight), transparent 60%);opacity:0;pointer-events:none;transition:opacity .28s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.principle[data-v-95cfb80c]:hover:before{opacity:1}}.principle[data-v-95cfb80c]{align-content:start;gap:.75rem;padding:1.5rem;display:grid;position:relative;overflow:hidden}.principle__index[data-v-95cfb80c]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500;position:absolute;top:1.25rem;right:1.25rem}.principle__icon[data-v-95cfb80c]{background:var(--color-accent-soft);width:44px;height:44px;color:var(--color-accent-text);border-radius:16px;place-items:center;margin-bottom:.5rem;display:grid}.principle__title[data-v-95cfb80c]{letter-spacing:-.01em;font-size:1rem;font-weight:600}.principle__body[data-v-95cfb80c]{color:var(--color-text-muted);font-size:.875rem;line-height:1.6}.form[data-v-149afb3a]{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);border-radius:32px;gap:1.25rem;padding:clamp(1.25rem,1rem + 1.5vw,2.25rem);display:grid}.form__head[data-v-149afb3a]{gap:.5rem;display:grid}.form__title[data-v-149afb3a]{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);font-weight:400}.form__hint[data-v-149afb3a]{color:var(--color-text-muted);font-size:.875rem}.form__row[data-v-149afb3a]{gap:1.25rem;display:grid}@media (min-width:480px){.form__row[data-v-149afb3a]{grid-template-columns:repeat(2,minmax(0,1fr))}}.field[data-v-149afb3a]{gap:.5rem;min-width:0;display:grid}.field__label[data-v-149afb3a]{font-size:.875rem;font-weight:500}.field__optional[data-v-149afb3a]{color:var(--color-text-subtle);font-weight:400}.field__control[data-v-149afb3a]{border:1px solid var(--color-border-strong);background:var(--color-bg);width:100%;min-height:48px;color:var(--color-text);border-radius:10px;padding:.75rem 1rem;font-size:1rem;transition:border-color .16s cubic-bezier(.22,1,.36,1),box-shadow .16s cubic-bezier(.22,1,.36,1)}.field__control[data-v-149afb3a]:hover{border-color:var(--color-text-subtle)}.field__control[data-v-149afb3a]:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.field__control--area[data-v-149afb3a]{resize:vertical;min-height:150px;line-height:1.6}.field--error .field__control[data-v-149afb3a]{border-color:var(--color-danger)}.field__meta[data-v-149afb3a]{justify-content:space-between;gap:.75rem;display:flex}.field__error[data-v-149afb3a]{color:var(--color-danger);font-size:.875rem}.field__count[data-v-149afb3a]{color:var(--color-text-subtle);font-family:var(--font-mono);margin-left:auto;font-size:.75rem}.form__actions[data-v-149afb3a]{display:flex}@media (max-width:479.98px){.form__actions[data-v-149afb3a] .btn{flex:1}}.form__status[data-v-149afb3a]{color:var(--color-text-muted);gap:.75rem;font-size:.875rem;display:grid}.form__status[data-v-149afb3a]:empty{display:none}.form__copy[data-v-149afb3a]{border:1px solid var(--color-border-strong);border-radius:999px;justify-self:start;align-items:center;gap:.5rem;min-height:40px;padding-inline:1rem;font-size:.875rem;font-weight:500;display:inline-flex}.form__copy[data-v-149afb3a]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.contact__grid[data-v-54c71207]{gap:1rem;display:grid}@media (min-width:1024px){.contact__grid[data-v-54c71207]{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:1.5rem}}.contact__channels[data-v-54c71207]{gap:.75rem;display:grid}@media (min-width:480px){.contact__channels[data-v-54c71207]{grid-template-columns:repeat(2,minmax(0,1fr))}}.channel[data-v-54c71207]{background:var(--color-surface);border:1px solid var(--color-border);isolation:isolate;border-radius:24px;position:relative}.channel[data-v-54c71207]:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,-20%), var(--color-spotlight), transparent 60%);opacity:0;pointer-events:none;transition:opacity .28s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.channel[data-v-54c71207]:hover:before{opacity:1}}.channel[data-v-54c71207]{flex-direction:column;gap:.5rem;min-width:0;padding:1.25rem;display:flex;position:relative;overflow:hidden}@media (min-width:480px){.channel--wide[data-v-54c71207],.channel--email[data-v-54c71207]{grid-column:1/-1}}.channel--email[data-v-54c71207]{background:radial-gradient(80% 140% at 100% 0%, var(--color-accent-soft), transparent 60%), var(--color-surface);padding:clamp(1.25rem,1rem + 1vw,2rem)}.channel--link[data-v-54c71207]{transition:border-color .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1)}.channel--link[data-v-54c71207]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.channel--link[data-v-54c71207]:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.channel--link:hover .channel__arrow[data-v-54c71207]{color:var(--color-accent);transform:translate(2px,-2px)}}.channel__label[data-v-54c71207]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);align-items:center;gap:.5rem;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500;display:inline-flex}.channel__email[data-v-54c71207]{font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;background-image:linear-gradient(var(--color-accent), var(--color-accent));background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;font-size:clamp(1.375rem,1rem + 1.6vw,2.25rem);line-height:1.15;transition:background-size .6s cubic-bezier(.22,1,.36,1)}.channel__email[data-v-54c71207]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.channel__email[data-v-54c71207]:hover{background-size:100% 2px}}.channel__actions[data-v-54c71207]{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.channel__btn[data-v-54c71207]{border:1px solid var(--color-border-strong);border-radius:999px;align-items:center;gap:.5rem;min-height:44px;padding-inline:1rem;font-size:.875rem;font-weight:500;transition:background-color .28s cubic-bezier(.22,1,.36,1),border-color .28s cubic-bezier(.22,1,.36,1);display:inline-flex}.channel__btn[data-v-54c71207]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.channel__btn[data-v-54c71207]:hover{border-color:var(--color-text)}}.channel__btn--solid[data-v-54c71207]{border-color:var(--color-surface-inverse);background:var(--color-surface-inverse);color:var(--color-text-inverse)}.channel__value[data-v-54c71207]{font-family:var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);line-height:1.2}.channel__meta[data-v-54c71207]{color:var(--color-text-subtle);font-family:var(--font-mono);font-size:.75rem}.channel__arrow[data-v-54c71207]{color:var(--color-text-subtle);transition:transform .28s cubic-bezier(.22,1,.36,1),color .28s cubic-bezier(.22,1,.36,1);position:absolute;top:1.25rem;right:1.25rem}.edu__grid[data-v-8fb5dd07]{gap:.75rem;display:grid}@media (min-width:768px){.edu__grid[data-v-8fb5dd07]{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}}@media (min-width:1024px){.edu__grid[data-v-8fb5dd07]{grid-template-columns:repeat(12,minmax(0,1fr))}}.edu-card[data-v-8fb5dd07]{background:var(--color-surface);border:1px solid var(--color-border);isolation:isolate;border-radius:32px;position:relative}.edu-card[data-v-8fb5dd07]:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,-20%), var(--color-spotlight), transparent 60%);opacity:0;pointer-events:none;transition:opacity .28s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.edu-card[data-v-8fb5dd07]:hover:before{opacity:1}}.edu-card[data-v-8fb5dd07]{flex-direction:column;gap:.75rem;min-width:0;padding:clamp(1.25rem,1rem + 1vw,2rem);display:flex;position:relative;overflow:hidden}@media (min-width:1024px){.edu-card[data-v-8fb5dd07]{grid-column:span 3}}.edu-card--highlight[data-v-8fb5dd07]{background:radial-gradient(90% 120% at 100% 0%, var(--color-accent-soft), transparent 60%), var(--color-surface)}@media (min-width:768px){.edu-card--highlight[data-v-8fb5dd07]{grid-column:1/-1}}@media (min-width:1024px){.edu-card--highlight[data-v-8fb5dd07]{grid-area:span 2/span 6}}.edu-card--highlight .edu-card__degree[data-v-8fb5dd07]{font-size:clamp(1.75rem,1.35rem + 1.7vw,2.75rem)}.edu-card--highlight .edu-card__field[data-v-8fb5dd07]{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.5rem)}@media (min-width:1024px){.edu-card--languages[data-v-8fb5dd07]{grid-column:span 6}}.edu-card__period[data-v-8fb5dd07]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-text);flex-wrap:wrap;align-items:center;gap:.5rem;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500;display:flex}.edu-card__badge[data-v-8fb5dd07]{border:1px solid var(--color-border-strong);color:var(--color-text-muted);border-radius:999px;margin-left:auto;padding:2px .5rem}.edu-card__degree[data-v-8fb5dd07]{letter-spacing:-.02em;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);font-weight:500}.edu-card__field[data-v-8fb5dd07]{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);font-style:italic;line-height:1.15}.edu-card__school[data-v-8fb5dd07]{gap:.25rem;margin-top:auto;padding-top:1rem;display:grid}.edu-card__institution[data-v-8fb5dd07]{font-weight:500;line-height:1.4}.edu-card__original[data-v-8fb5dd07]{color:var(--color-text-muted);font-size:.875rem;font-style:italic}.edu-card__location[data-v-8fb5dd07]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);align-items:center;gap:.25rem;margin-top:.25rem;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500;display:inline-flex}.edu-card__icon[data-v-8fb5dd07]{background:var(--color-surface-inverse);width:64px;height:64px;color:var(--color-text-inverse);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:clamp(1.25rem,1rem + 1vw,2rem);right:clamp(1.25rem,1rem + 1vw,2rem)}@media (max-width:479.98px){.edu-card__icon[data-v-8fb5dd07]{display:none}}.languages[data-v-8fb5dd07]{flex-wrap:wrap;gap:.75rem 2rem;display:flex}.languages__item[data-v-8fb5dd07]{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.75rem,1.35rem + 1.7vw,2.75rem);line-height:1.1}.edu-card__note[data-v-8fb5dd07]{color:var(--color-text-muted);margin-top:auto;font-size:.875rem}.tags[data-v-3b33fbd5]{flex-wrap:wrap;gap:.5rem;display:flex}.tags__item[data-v-3b33fbd5]{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 70%, transparent);min-height:30px;color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.01em;overflow-wrap:anywhere;border-radius:999px;align-items:center;max-width:100%;padding:.25rem .75rem;font-size:.75rem;line-height:1.2;display:inline-flex}.tags--sm .tags__item[data-v-3b33fbd5]{min-height:26px;padding:2px .5rem;font-size:.6875rem}.tags__item--more[data-v-3b33fbd5]{color:var(--color-text-subtle);border-style:dashed}.engagements[data-v-c05e6c1c]{gap:1rem;display:grid}.engagements__tabs[data-v-c05e6c1c]{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}@media (min-width:768px){.engagements__tabs[data-v-c05e6c1c]{flex-wrap:wrap;display:flex}}.engagements__tab[data-v-c05e6c1c]{border:1px solid var(--color-border);min-height:44px;color:var(--color-text-muted);text-align:left;border-radius:999px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .28s cubic-bezier(.22,1,.36,1),color .28s cubic-bezier(.22,1,.36,1),border-color .28s cubic-bezier(.22,1,.36,1);display:inline-flex}.engagements__tab[data-v-c05e6c1c]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.engagements__tab[data-v-c05e6c1c]:hover{border-color:var(--color-border-strong);color:var(--color-text)}}.engagements__tab.is-active[data-v-c05e6c1c]{border-color:var(--color-surface-inverse);background:var(--color-surface-inverse);color:var(--color-text-inverse)}.engagements__tab.is-active .engagements__tab-index[data-v-c05e6c1c]{color:var(--color-accent-on-inverse)}.engagements__tab-index[data-v-c05e6c1c]{font-family:var(--font-mono);color:var(--color-text-subtle);font-size:.6875rem}.engagements__panel[data-v-c05e6c1c]{background:var(--color-surface-2);border-radius:16px;padding:1.5rem}.engagements__panel[data-v-c05e6c1c]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.engagements__content[data-v-c05e6c1c]{gap:1rem;display:grid}.engagements__role[data-v-c05e6c1c]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-text);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.engagements__tagline[data-v-c05e6c1c]{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);font-weight:400;line-height:1.2}.engagements__features[data-v-c05e6c1c]{gap:.5rem;display:grid}.engagements__features li[data-v-c05e6c1c]{color:var(--color-text-muted);padding-left:1.5rem;font-size:.875rem;line-height:1.6;position:relative}.engagements__features li[data-v-c05e6c1c]:before{content:"";background:var(--color-accent);width:12px;height:1px;position:absolute;top:.7em;left:0}.engagements__link[data-v-c05e6c1c]{border-bottom:1px solid var(--color-border-strong);justify-self:start;align-items:center;gap:.5rem;min-height:44px;font-size:.875rem;font-weight:600;display:inline-flex}.engagements__link[data-v-c05e6c1c]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.engagements__link[data-v-c05e6c1c] svg{transition:transform .28s cubic-bezier(.22,1,.36,1)}@media (hover:hover) and (pointer:fine){.engagements__link[data-v-c05e6c1c]:hover{border-color:var(--color-accent)}.engagements__link[data-v-c05e6c1c]:hover svg{transform:translate(3px)}}.swap-enter-active[data-v-c05e6c1c],.swap-leave-active[data-v-c05e6c1c]{transition:opacity .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1)}.swap-enter-from[data-v-c05e6c1c]{opacity:0;transform:translateY(8px)}.swap-leave-to[data-v-c05e6c1c]{opacity:0}.timeline[data-v-7432c632]{gap:clamp(2.5rem,2rem + 3vw,5rem);display:grid}.timeline__item[data-v-7432c632]{gap:1.5rem;display:grid;position:relative}@media (min-width:1024px){.timeline__item[data-v-7432c632]{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(2rem,1rem + 4vw,5rem)}}.timeline__aside[data-v-7432c632]{border-left:1px solid var(--color-border-strong);align-content:start;gap:.5rem;padding-left:1.5rem;display:grid;position:relative}.timeline__aside[data-v-7432c632]:before{content:"";background:var(--color-accent);width:11px;height:11px;box-shadow:0 0 0 4px var(--color-bg);border-radius:50%;position:absolute;top:6px;left:-6px}@media (min-width:1024px){.timeline__aside[data-v-7432c632]{top:calc(var(--header-h) + 2rem);position:sticky}}.timeline__period[data-v-7432c632]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-text);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.timeline__company[data-v-7432c632]{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.75rem,1.35rem + 1.7vw,2.75rem);font-weight:400;line-height:1.05}.timeline__role[data-v-7432c632]{font-weight:500}.timeline__type[data-v-7432c632]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.timeline__card[data-v-7432c632]{background:var(--color-surface);border:1px solid var(--color-border);min-width:0;box-shadow:var(--shadow-md);border-radius:32px;gap:1.5rem;padding:clamp(1.25rem,1rem + 1.5vw,2.25rem);display:grid}.timeline__summary[data-v-7432c632]{font-size:clamp(1.0625rem,1rem + .35vw,1.3125rem);line-height:1.6}.timeline__project[data-v-7432c632]{background:var(--color-surface-2);border-radius:16px;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem;transition:transform .28s cubic-bezier(.22,1,.36,1);display:flex}.timeline__project>span[data-v-7432c632]{gap:.25rem;display:grid}.timeline__project[data-v-7432c632] svg{flex-shrink:0;transition:transform .28s cubic-bezier(.22,1,.36,1)}.timeline__project[data-v-7432c632]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.timeline__project[data-v-7432c632]:hover svg{color:var(--color-accent);transform:translate(4px)}}.timeline__project-label[data-v-7432c632]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.timeline__project-name[data-v-7432c632]{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem)}.timeline__project-tagline[data-v-7432c632]{color:var(--color-text-muted);font-size:.875rem}.timeline__stack[data-v-7432c632]{border-top:1px dashed var(--color-border-strong);gap:.75rem;padding-top:1.5rem;display:grid}.timeline__stack-label[data-v-7432c632]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.bento[data-v-bcb3393b]{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}@media (min-width:768px){.bento[data-v-bcb3393b]{gap:1rem}}.tile[data-v-bcb3393b]{background:var(--color-surface);border:1px solid var(--color-border);isolation:isolate;border-radius:24px;position:relative}.tile[data-v-bcb3393b]:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,-20%), var(--color-spotlight), transparent 60%);opacity:0;pointer-events:none;transition:opacity .28s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.tile[data-v-bcb3393b]:hover:before{opacity:1}}.tile[data-v-bcb3393b]{min-width:0;box-shadow:var(--shadow-sm);flex-direction:column;gap:.5rem;padding:clamp(1rem,.8rem + 1vw,1.5rem);display:flex;overflow:hidden}.tile__label[data-v-bcb3393b]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);align-items:center;gap:.5rem;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500;display:inline-flex}.tile__text[data-v-bcb3393b]{color:var(--color-text-muted);font-size:.875rem;line-height:1.5}.tile__foot[data-v-bcb3393b]{color:var(--color-text-subtle);font-family:var(--font-mono);letter-spacing:.02em;margin-top:auto;padding-top:.75rem;font-size:.6875rem}.tile--exp[data-v-bcb3393b]{grid-row:span 1}@media (min-width:768px){.tile--exp[data-v-bcb3393b]{grid-row:span 2}}.tile__big[data-v-bcb3393b]{font-family:var(--font-display);letter-spacing:-.05em;align-items:baseline;gap:.5rem;margin-block:.5rem;font-size:clamp(3.5rem,2.4rem + 4vw,6.5rem);line-height:.9;display:flex}.tile__big-unit[data-v-bcb3393b]{letter-spacing:-.02em;color:var(--color-accent-text);font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);font-style:italic}.tile__time[data-v-bcb3393b]{font-family:var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(2.25rem,1.8rem + 1.6vw,3.25rem);line-height:1}.tile--now[data-v-bcb3393b]{--accent-a:#f4b43c;--accent-b:#ff7a3d;background:radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--accent-a) 26%, transparent), transparent 60%), var(--color-surface);grid-column:span 2;transition:border-color .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1);position:relative}@media (min-width:768px){.tile--now[data-v-bcb3393b]{grid-column:auto}}.tile--now[data-v-bcb3393b]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.tile--now[data-v-bcb3393b]:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.tile--now:hover .tile__arrow[data-v-bcb3393b]{color:var(--color-accent);transform:translate(3px,-3px)}}.tile__live[data-v-bcb3393b]{background:var(--color-success);width:8px;height:8px;box-shadow:0 0 0 0 color-mix(in srgb, var(--color-success) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.tile__live[data-v-bcb3393b]{animation:2.4s cubic-bezier(.22,1,.36,1) infinite pulse-bcb3393b}}.tile__project[data-v-bcb3393b]{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.75rem,1.35rem + 1.7vw,2.75rem);font-style:italic;line-height:1}.tile__arrow[data-v-bcb3393b]{color:var(--color-text-subtle);transition:transform .28s cubic-bezier(.22,1,.36,1),color .28s cubic-bezier(.22,1,.36,1);position:absolute;top:1.25rem;right:1.25rem}.tile--stack[data-v-bcb3393b]{grid-column:span 2;gap:1rem}.marquee[data-v-bcb3393b]{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.marquee:hover .marquee__track[data-v-bcb3393b],.marquee.marquee--paused .marquee__track[data-v-bcb3393b]{animation-play-state:paused}.tile__head[data-v-bcb3393b]{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.marquee__toggle[data-v-bcb3393b]{border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-muted);border-radius:999px;place-items:center;transition:color .16s cubic-bezier(.22,1,.36,1),border-color .16s cubic-bezier(.22,1,.36,1);display:grid;position:relative}.marquee__toggle[data-v-bcb3393b]:after{content:"";position:absolute;inset:-6px}.marquee__toggle[data-v-bcb3393b]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.marquee__toggle[data-v-bcb3393b]:hover{color:var(--color-text);border-color:var(--color-border-strong)}}@media (prefers-reduced-motion:reduce){.marquee__toggle[data-v-bcb3393b]{display:none}}.marquee__track[data-v-bcb3393b]{flex-shrink:0;gap:1.5rem;padding-right:1.5rem;display:flex}@media (prefers-reduced-motion:no-preference){.marquee__track[data-v-bcb3393b]{animation:32s linear infinite marquee-bcb3393b}}.marquee__item[data-v-bcb3393b]{font-family:var(--font-display);letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:1.5rem;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);display:inline-flex}.marquee__item[data-v-bcb3393b]:after{content:"✦";color:var(--color-accent);font-size:.6em}@media (prefers-reduced-motion:reduce){.marquee[data-v-bcb3393b]{-webkit-mask-image:none;mask-image:none}.marquee__track[data-v-bcb3393b]{flex-wrap:wrap;flex-shrink:1;gap:.5rem 1rem}.marquee__track[aria-hidden=true][data-v-bcb3393b]{display:none}.marquee__item[data-v-bcb3393b]{gap:1rem;font-size:clamp(1.0625rem,1rem + .35vw,1.3125rem)}}@keyframes marquee-bcb3393b{to{transform:translate(-100%)}}@keyframes pulse-bcb3393b{70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}.hero[data-v-96d0e808]{padding-top:calc(var(--header-h) + clamp(1.5rem, 1rem + 3vw, 4rem));padding-bottom:clamp(4rem,3rem + 5vw,8rem);position:relative}.hero__meta[data-v-96d0e808]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:clamp(1.5rem,1rem + 2vw,3rem);display:flex}.hero__status[data-v-96d0e808]{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.hero__pulse[data-v-96d0e808]{background:var(--color-success);border-radius:50%;width:8px;height:8px;position:relative}.hero__pulse[data-v-96d0e808]:after{content:"";border-radius:inherit;border:1px solid var(--color-success);opacity:0;position:absolute;inset:-4px}@media (prefers-reduced-motion:no-preference){.hero__pulse[data-v-96d0e808]:after{animation:2.4s cubic-bezier(.22,1,.36,1) infinite ring-96d0e808}}.hero__based[data-v-96d0e808]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.hero__title[data-v-96d0e808]{letter-spacing:-.035em;font-variation-settings:"SOFT" 50;letter-spacing:-.055em;font-family:Fraunces Variable,Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:clamp(3.75rem,.9rem + 12.6vw,12.5rem);font-weight:400;line-height:.86}.hero__line[data-v-96d0e808]{margin:0 -.12em -.08em -.04em;padding:0 .12em .08em .04em;display:block;overflow:hidden}@media (min-width:768px){.hero__line--offset[data-v-96d0e808]{padding-left:1.1em}}.hero__word[data-v-96d0e808]{display:inline-block}.hero__word--italic[data-v-96d0e808]{font-style:italic;font-weight:300}.hero__dot[data-v-96d0e808]{color:var(--color-accent);font-style:normal}.hero__body[data-v-96d0e808]{gap:2.5rem;margin-top:clamp(2rem,1.5rem + 3vw,4.5rem);display:grid}@media (min-width:1024px){.hero__body[data-v-96d0e808]{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;gap:clamp(2rem,1rem + 4vw,5rem)}}.hero__intro[data-v-96d0e808]{align-content:start;gap:1.5rem;display:grid}.hero__role[data-v-96d0e808]{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);line-height:1.15}.hero__role em[data-v-96d0e808]{color:var(--color-accent-text)}.hero__lead[data-v-96d0e808]{max-width:52ch;color:var(--color-text-muted);font-size:clamp(1.0625rem,1rem + .35vw,1.3125rem);line-height:1.6}.hero__actions[data-v-96d0e808]{flex-wrap:wrap;gap:.75rem;display:flex}@media (max-width:479.98px){.hero__actions[data-v-96d0e808] .btn{flex:100%}}.hero__socials[data-v-96d0e808]{flex-wrap:wrap;gap:.5rem 1.5rem;display:flex}.hero__social[data-v-96d0e808]{min-height:44px;color:var(--color-text-muted);overflow-wrap:anywhere;align-items:center;gap:.5rem;font-size:.875rem;transition:color .16s cubic-bezier(.22,1,.36,1);display:inline-flex}.hero__social[data-v-96d0e808]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}@media (hover:hover) and (pointer:fine){.hero__social[data-v-96d0e808]:hover{color:var(--color-text)}}:root[data-motion=on] .hero__word[data-v-96d0e808]{animation:1.1s cubic-bezier(.22,1,.36,1) both rise-96d0e808;animation-delay:calc(var(--d) * .11s + 80ms)}@keyframes rise-96d0e808{0%{transform:translateY(105%)}}@keyframes ring-96d0e808{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}.preview[data-v-4d45c7be]{border:1px solid var(--color-border);background:var(--color-surface-2);isolation:isolate;border-radius:24px;flex-direction:column;display:flex;position:relative;overflow:hidden}.preview__bar[data-v-4d45c7be]{border-bottom:1px solid var(--color-border);background:var(--color-surface);align-items:center;gap:.75rem;height:34px;padding-inline:1rem;display:flex}.preview__dots[data-v-4d45c7be]{gap:6px;display:inline-flex}.preview__dots i[data-v-4d45c7be]{background:var(--color-border-strong);border-radius:50%;width:9px;height:9px}.preview__address[data-v-4d45c7be]{background:var(--color-surface-2);min-width:0;max-width:260px;color:var(--color-text-subtle);font-family:var(--font-mono);text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;flex:1;margin-inline:auto;padding:3px .75rem;font-size:.6875rem;overflow:hidden}.preview__viewport[data-v-4d45c7be]{aspect-ratio:16/10;position:relative;overflow:hidden}.preview--hero .preview__viewport[data-v-4d45c7be]{aspect-ratio:16/9}.preview__img[data-v-4d45c7be]{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .9s cubic-bezier(.22,1,.36,1)}.preview__art[data-v-4d45c7be]{background:radial-gradient(70% 90% at 85% 15%, color-mix(in srgb, var(--accent-a) 55%, transparent), transparent 70%), radial-gradient(60% 80% at 10% 100%, color-mix(in srgb, var(--accent-b) 45%, transparent), transparent 70%), var(--color-surface-2);position:absolute;inset:0}.preview__art[data-v-4d45c7be]:before{content:"";background-image:linear-gradient(to right, var(--color-grid) 1px, transparent 1px), linear-gradient(to bottom, var(--color-grid) 1px, transparent 1px);background-size:28px 28px;position:absolute;inset:0}.preview__initial[data-v-4d45c7be]{font-family:var(--font-display);letter-spacing:-.06em;color:color-mix(in srgb, var(--color-text) 88%, var(--accent-a));opacity:.9;font-size:clamp(9rem,6rem + 12vw,16rem);font-style:italic;font-weight:300;line-height:1;transition:transform .9s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-18%;right:6%}.preview__card[data-v-4d45c7be]{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 88%, transparent);width:min(62%,280px);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;gap:.25rem;padding:1rem;transition:transform .9s cubic-bezier(.22,1,.36,1);display:grid;position:absolute;top:12%;left:7%}.preview__card-value[data-v-4d45c7be]{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.5rem,1.2rem + 1vw,2.25rem);line-height:1}.preview__card-label[data-v-4d45c7be]{color:var(--color-text-muted);font-size:.75rem;line-height:1.4}.preview__card-lines[data-v-4d45c7be]{gap:6px;margin-top:.5rem;display:grid}.preview__card-lines i[data-v-4d45c7be]{background:var(--color-border-strong);opacity:.6;border-radius:999px;height:6px}.preview__card-lines i[data-v-4d45c7be]:first-child{width:90%}.preview__card-lines i[data-v-4d45c7be]:nth-child(2){width:70%}.preview__card-lines i[data-v-4d45c7be]:nth-child(3){background:var(--accent-a);opacity:.8;width:45%}.preview__chips[data-v-4d45c7be]{flex-wrap:wrap;gap:6px;max-width:60%;padding:0;list-style:none;display:flex;position:absolute;bottom:9%;left:7%}.preview__chips li[data-v-4d45c7be]{background:var(--color-surface-inverse);color:var(--color-text-inverse);font-family:var(--font-mono);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.6875rem}.preview--hero .preview__initial[data-v-4d45c7be]{font-size:clamp(12rem,6rem + 22vw,34rem);bottom:-24%;right:8%}.preview--hero .preview__card[data-v-4d45c7be]{width:min(46%,420px);padding:clamp(1rem,.6rem + 1.4vw,2rem);top:14%;left:6%}.preview--hero .preview__card-value[data-v-4d45c7be]{font-size:clamp(1.75rem,1.2rem + 2.4vw,3.5rem)}.preview--hero .preview__card-label[data-v-4d45c7be]{font-size:clamp(.75rem,.7rem + .3vw,.9375rem)}.preview--hero .preview__chips[data-v-4d45c7be]{bottom:10%;left:6%}.preview--hero .preview__chips li[data-v-4d45c7be]{padding:5px 14px;font-size:.8125rem}@media (max-width:479.98px){.preview--card .preview__card[data-v-4d45c7be]{width:70%;padding:.75rem}}.project-card[data-v-2daf615d]{background:var(--color-surface);border:1px solid var(--color-border);isolation:isolate;border-radius:32px;position:relative}.project-card[data-v-2daf615d]:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,-20%), color-mix(in srgb, var(--accent-a) 14%, transparent), transparent 60%);opacity:0;pointer-events:none;transition:opacity .28s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.project-card[data-v-2daf615d]:hover:before{opacity:1}}.project-card[data-v-2daf615d]{flex-direction:column;height:100%;padding:.75rem;transition:transform .6s cubic-bezier(.22,1,.36,1),border-color .28s cubic-bezier(.22,1,.36,1),box-shadow .6s cubic-bezier(.22,1,.36,1);display:flex;position:relative}.project-card[data-v-2daf615d]:has(.project-card__link:focus-visible){outline:2px solid var(--color-focus);outline-offset:4px}@media (hover:hover) and (pointer:fine){.project-card[data-v-2daf615d]:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.project-card[data-v-2daf615d]:hover .preview__img,.project-card[data-v-2daf615d]:hover .preview__initial{transform:scale(1.04)}.project-card[data-v-2daf615d]:hover .preview__card{transform:translateY(-6px)}.project-card:hover .project-card__cta[data-v-2daf615d]{color:var(--color-text)}.project-card:hover .project-card__cta[data-v-2daf615d] svg{color:var(--color-accent);transform:translate(3px,-3px)}}@media (min-width:1024px){.project-card__preview[data-v-2daf615d] .preview__viewport{aspect-ratio:auto;height:clamp(260px,22vw,340px)}}.project-card__body[data-v-2daf615d]{flex-direction:column;flex:1;gap:.75rem;padding:1.25rem .75rem .75rem;display:flex}.project-card__meta[data-v-2daf615d]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500;display:flex}.project-card__badge[data-v-2daf615d]{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;align-items:center;gap:6px;padding:2px .5rem;display:inline-flex}.project-card__badge-dot[data-v-2daf615d]{background:var(--color-success);border-radius:50%;width:6px;height:6px}.project-card__title[data-v-2daf615d]{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.75rem,1.35rem + 1.7vw,2.75rem);font-weight:400;line-height:1}.project-card__link[data-v-2daf615d]{outline:none}.project-card__link[data-v-2daf615d]:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.project-card__tagline[data-v-2daf615d]{max-width:48ch;color:var(--color-text-muted);line-height:1.55}.project-card__cta[data-v-2daf615d]{color:var(--color-text-muted);align-items:center;gap:.5rem;margin-top:auto;padding-top:.75rem;font-size:.875rem;font-weight:600;transition:color .28s cubic-bezier(.22,1,.36,1);display:inline-flex}.project-card__cta[data-v-2daf615d] svg{transition:transform .28s cubic-bezier(.22,1,.36,1),color .28s cubic-bezier(.22,1,.36,1)}.row[data-v-5ff34b8d]{border-bottom:1px solid var(--color-border);isolation:isolate;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1.5rem .5rem;display:grid;position:relative}@media (min-width:768px){.row[data-v-5ff34b8d]{grid-template-columns:3rem minmax(0,1fr) minmax(0,14rem) auto;gap:1.5rem;padding-inline:1rem}}.row[data-v-5ff34b8d]:before{content:"";z-index:-1;background:linear-gradient(90deg, color-mix(in srgb, var(--accent-a) 16%, transparent), transparent 70%);transform-origin:0;border-radius:16px;transition:transform .6s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:scaleX(0)}.row[data-v-5ff34b8d]:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}@media (hover:hover) and (pointer:fine){.row[data-v-5ff34b8d]:hover:before{transform:scaleX(1)}.row:hover .row__arrow[data-v-5ff34b8d]{background:var(--color-surface-inverse);color:var(--color-text-inverse);transform:rotate(45deg)}}.row__index[data-v-5ff34b8d]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.row__main[data-v-5ff34b8d]{gap:.25rem;min-width:0;display:grid}.row__name[data-v-5ff34b8d]{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);line-height:1.15}.row__tagline[data-v-5ff34b8d]{color:var(--color-text-muted);font-size:.875rem}.row__context[data-v-5ff34b8d]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500;display:none}@media (min-width:768px){.row__context[data-v-5ff34b8d]{display:block}}.row__arrow[data-v-5ff34b8d]{border:1px solid var(--color-border);border-radius:50%;place-items:center;width:44px;height:44px;transition:background-color .28s cubic-bezier(.22,1,.36,1),color .28s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);display:grid}.projects__grid[data-v-9e6aad96]{gap:1rem;display:grid}@media (min-width:768px){.projects__grid[data-v-9e6aad96]{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}}@media (min-width:1024px){.projects__grid[data-v-9e6aad96]{grid-template-columns:repeat(12,minmax(0,1fr))}.projects__grid>li[data-v-9e6aad96]{grid-column:span 5}.projects__grid>li[data-v-9e6aad96]:nth-child(4n+1),.projects__grid>li[data-v-9e6aad96]:nth-child(4n+4){grid-column:span 7}}.projects__more[data-v-9e6aad96]{margin-top:clamp(3rem,2rem + 4vw,6rem)}.projects__more-title[data-v-9e6aad96]{border-bottom:1px solid var(--color-border-strong);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);padding-bottom:1rem;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.skills__grid[data-v-b306c685]{gap:.75rem;display:grid}@media (min-width:768px){.skills__grid[data-v-b306c685]{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}}@media (min-width:1024px){.skills__grid[data-v-b306c685]{grid-template-columns:repeat(4,minmax(0,1fr))}}.skill-card[data-v-b306c685]{background:var(--color-surface);border:1px solid var(--color-border);isolation:isolate;border-radius:24px;position:relative}.skill-card[data-v-b306c685]:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,-20%), var(--color-spotlight), transparent 60%);opacity:0;pointer-events:none;transition:opacity .28s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.skill-card[data-v-b306c685]:hover:before{opacity:1}}.skill-card[data-v-b306c685]{flex-direction:column;gap:.75rem;min-width:0;padding:1.5rem;transition:border-color .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1);display:flex;overflow:hidden}@media (hover:hover) and (pointer:fine){.skill-card[data-v-b306c685]:hover{border-color:var(--color-border-strong)}}@media (min-width:1024px){.skill-card--wide[data-v-b306c685]{grid-column:span 2}}@media (min-width:768px){.skill-card--full[data-v-b306c685]{grid-column:1/-1}}.skill-card__head[data-v-b306c685]{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.skill-card__icon[data-v-b306c685]{border:1px solid var(--color-border);background:var(--color-surface-2);width:44px;height:44px;color:var(--color-text);border-radius:16px;place-items:center;display:grid}.skill-card__count[data-v-b306c685]{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:500}.skill-card__title[data-v-b306c685]{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.375rem,1.2rem + .75vw,1.75rem);font-weight:400}.skill-card__desc[data-v-b306c685]{color:var(--color-text-muted);font-size:.875rem;line-height:1.55}.skill-card__tags[data-v-b306c685]{margin-top:auto;padding-top:.75rem}
