@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/roboto-flex-cyrillic-ext-wght-normal-CVcCQn0y.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:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/roboto-flex-cyrillic-wght-normal-BJ-nQEdz.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/roboto-flex-greek-wght-normal-DeN4rzfy.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/roboto-flex-vietnamese-wght-normal-AVFfiTln.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:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/roboto-flex-latin-ext-wght-normal-gysdOMcS.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:Roboto Flex Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/roboto-flex-latin-wght-normal-n-dP9qr2.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.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{font-synthesis:none;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--md-sys-color-primary:#5b4fe5;--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:#e5deff;--md-sys-color-on-primary-container:#201467;--md-sys-color-secondary:#5f5b7d;--md-sys-color-on-secondary:#fff;--md-sys-color-secondary-container:#e5e0ff;--md-sys-color-on-secondary-container:#1c1936;--md-sys-color-tertiary:#75479a;--md-sys-color-on-tertiary:#fff;--md-sys-color-tertiary-container:#f1dbff;--md-sys-color-on-tertiary-container:#2c0c45;--md-sys-color-surface:#fcf8ff;--md-sys-color-on-surface:#1d1b20;--md-sys-color-surface-variant:#e7e0ec;--md-sys-color-on-surface-variant:#49454f;--md-sys-color-surface-container-lowest:#fff;--md-sys-color-surface-container-low:#f7f2fa;--md-sys-color-surface-container:#f1ecf4;--md-sys-color-surface-container-high:#ebe6ee;--md-sys-color-surface-container-highest:#e6e0e9;--md-sys-color-outline:#79747e;--md-sys-color-outline-variant:#cac4d0;--md-sys-color-inverse-surface:#322f35;--md-sys-color-inverse-on-surface:#f5eff7;--md-sys-shape-corner-sm:8px;--md-sys-shape-corner-md:12px;--md-sys-shape-corner-lg:18px;--md-sys-shape-corner-xl:28px;--md-sys-shape-corner-full:999px;--md-sys-elevation-shadow-0:none;--md-sys-elevation-shadow-1:0 1px 2px #20193229, 0 2px 6px #20193214;--md-sys-elevation-shadow-2:0 2px 4px #20193224, 0 6px 16px #20193217;--md-sys-typescale-label-lg:650 .875rem/1.25rem "Roboto Flex Variable", sans-serif;--md-sys-typescale-label-lg-tracking:.01em;--md-sys-typescale-title-md:650 1rem/1.5rem "Roboto Flex Variable", sans-serif;--md-sys-typescale-title-md-tracking:0;--md-sys-typescale-headline-sm:650 1.5rem/2rem "Roboto Flex Variable", sans-serif;--md-sys-typescale-headline-sm-tracking:-.02em;--md-sys-typescale-headline-lg:650 2rem/2.5rem "Roboto Flex Variable", sans-serif;--md-sys-typescale-headline-lg-tracking:-.03em;--page-width:1180px;--page-padding:24px;--motion-expressive:cubic-bezier(.2, .8, .2, 1);font-family:Roboto Flex Variable,system-ui,sans-serif}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--md-sys-color-primary:#c7bfff;--md-sys-color-on-primary:#2d2378;--md-sys-color-primary-container:#43378f;--md-sys-color-on-primary-container:#e7e0ff;--md-sys-color-secondary:#c8c2eb;--md-sys-color-on-secondary:#302d4e;--md-sys-color-secondary-container:#464361;--md-sys-color-on-secondary-container:#e5e0ff;--md-sys-color-tertiary:#dfb8ff;--md-sys-color-on-tertiary:#482060;--md-sys-color-tertiary-container:#603978;--md-sys-color-on-tertiary-container:#f1dbff;--md-sys-color-surface:#141218;--md-sys-color-on-surface:#e8e0e9;--md-sys-color-surface-variant:#49454f;--md-sys-color-on-surface-variant:#cac4d0;--md-sys-color-surface-container-lowest:#0f0d13;--md-sys-color-surface-container-low:#1d1b20;--md-sys-color-surface-container:#211f24;--md-sys-color-surface-container-high:#2b292f;--md-sys-color-surface-container-highest:#36333a;--md-sys-color-outline:#938f99;--md-sys-color-outline-variant:#49454f;--md-sys-color-inverse-surface:#e8e0e9;--md-sys-color-inverse-on-surface:#322f35;--md-sys-elevation-shadow-1:0 1px 2px #00000059, 0 4px 12px #0000002e;--md-sys-elevation-shadow-2:0 3px 6px #00000059, 0 10px 26px #00000038}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{min-width:320px;min-height:100vh;color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface);margin:0;transition:color .26s,background-color .26s;overflow-x:hidden}button,a{font:inherit}a{color:inherit;text-decoration:none}button,a,md-filled-button,md-filled-tonal-button,md-text-button,md-filled-tonal-icon-button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid color-mix(in srgb, var(--md-sys-color-primary) 58%, transparent);outline-offset:3px}::selection{color:var(--md-sys-color-on-primary-container);background:var(--md-sys-color-primary-container)}.site-shell{min-height:100vh;overflow:hidden}md-filled-button,md-filled-tonal-button,md-text-button,md-filled-tonal-icon-button,md-filled-card{font-family:inherit}md-filled-button,md-filled-tonal-button,md-text-button,md-filled-tonal-icon-button{transition:transform .22s var(--motion-expressive)}md-filled-button:hover,md-filled-tonal-button:hover,md-text-button:hover,md-filled-tonal-icon-button:hover{transform:translateY(-2px)}md-filled-button{--md-filled-button-container-height:56px;--md-filled-button-container-shape:18px;--md-filled-button-label-text-font:"Roboto Flex Variable";--md-filled-button-label-text-weight:680}md-filled-tonal-button{--md-filled-tonal-button-container-height:56px;--md-filled-tonal-button-container-shape:18px;--md-filled-tonal-button-label-text-font:"Roboto Flex Variable";--md-filled-tonal-button-label-text-weight:680}md-text-button{--md-text-button-container-height:44px;--md-text-button-container-shape:16px;--md-text-button-label-text-font:"Roboto Flex Variable";--md-text-button-label-text-weight:680}.app-bar-wrap{z-index:100;width:100%;padding:0 var(--page-padding);pointer-events:none;position:fixed;top:16px;left:0}.app-bar{width:min(var(--page-width), 100%);background:color-mix(in srgb, var(--md-sys-color-surface-container) 92%, transparent);border:1px solid var(--md-sys-color-outline-variant);min-height:68px;box-shadow:var(--md-sys-elevation-shadow-1);-webkit-backdrop-filter:blur(18px)saturate(140%);pointer-events:auto;border-radius:28px;grid-template-columns:1fr auto 1fr;align-items:center;margin:0 auto;padding:8px 10px 8px 12px;display:grid;position:relative}.brand{letter-spacing:-.02em;align-items:center;gap:11px;width:fit-content;font-size:15px;font-weight:720;display:inline-flex}.brand img{object-fit:cover;border:3px solid var(--md-sys-color-primary-container);border-radius:50%;width:46px;height:46px;display:block}.nav-links{background:var(--md-sys-color-surface-container-high);border-radius:18px;align-items:center;gap:2px;padding:4px;display:flex}.nav-links a{min-height:38px;color:var(--md-sys-color-on-surface-variant);border-radius:14px;align-items:center;padding:0 16px;font-size:13px;font-weight:640;transition:color .18s,background-color .18s;display:inline-flex}.nav-links a:hover{color:var(--md-sys-color-on-secondary-container);background:var(--md-sys-color-secondary-container)}.nav-links a.is-active{color:var(--md-sys-color-on-primary-container);background:var(--md-sys-color-primary-container)}.app-bar-actions{justify-self:end;align-items:center;gap:6px;display:flex}.material-icon-button,.menu-button{--md-filled-tonal-icon-button-container-shape:16px}.menu-button{display:none}.hero{width:min(var(--page-width), calc(100% - 48px));grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);align-items:stretch;gap:18px;margin:0 auto;padding:116px 0 28px;display:grid}.hero-copy-wrap,.hero-visual-wrap,.hero-copy,.hero-visual{min-width:0;height:100%}.hero-copy{--md-filled-card-container-color:var(--md-sys-color-primary-container);--md-filled-card-container-shape:48px 48px 16px 48px;display:block}.hero-copy-content{min-height:530px;color:var(--md-sys-color-on-primary-container);flex-direction:column;justify-content:center;padding:54px;display:flex}.hero h1{letter-spacing:-.064em;font-variation-settings:"wdth" 95, "opsz" 80;max-width:700px;margin:0;font-size:5.2rem;font-weight:760;line-height:.98}.hero h1 span{color:var(--md-sys-color-primary);display:block}.hero-copy-content>p{max-width:590px;color:color-mix(in srgb, var(--md-sys-color-on-primary-container) 78%, transparent);letter-spacing:-.016em;margin:28px 0 0;font-size:18px;line-height:1.58}.hero-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:34px;display:flex}.hero-visual{--md-filled-card-container-color:var(--md-sys-color-tertiary-container);--md-filled-card-container-shape:48px 16px 48px 48px;display:block}.hero-card-content{min-height:530px;color:var(--md-sys-color-on-tertiary-container);flex-direction:column;padding:36px;display:flex;position:relative;overflow:hidden}.hero-card-content:before,.hero-card-content:after{content:"";pointer-events:none;background:color-mix(in srgb, var(--md-sys-color-tertiary) 18%, transparent);border-radius:50%;position:absolute}.hero-card-content:before{width:220px;height:220px;top:-78px;right:-56px}.hero-card-content:after{width:150px;height:150px;bottom:48px;left:-45px}.portrait-shape{z-index:1;background:var(--md-sys-color-tertiary);border-radius:56% 44% 48% 52%/42% 54% 46% 58%;width:190px;height:190px;margin:12px auto 28px;padding:9px;position:relative;transform:rotate(3deg)}.portrait-shape img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.hero-card-heading{z-index:1;text-align:center;position:relative}.hero-card-heading span{color:color-mix(in srgb, var(--md-sys-color-on-tertiary-container) 68%, transparent);font-size:13px;font-weight:620}.hero-card-heading h2{letter-spacing:-.04em;margin:4px 0 0;font-size:34px;line-height:1.1}.stack-chips span{border-radius:12px;align-items:center;min-height:36px;padding:0 13px;font-family:JetBrains Mono Variable,monospace;font-size:11px;font-weight:600;display:inline-flex}.profile-link{z-index:1;width:fit-content;color:var(--md-sys-color-tertiary);align-items:center;gap:6px;margin:auto auto 0;font-size:13px;font-weight:720;display:inline-flex;position:relative}.section{width:min(var(--page-width), calc(100% - 48px));margin:0 auto;padding:72px 0}.section-heading{grid-template-columns:minmax(0,1fr) minmax(280px,.48fr);align-items:end;gap:56px;margin-bottom:38px;display:grid}.section-label{color:var(--md-sys-color-primary);margin-bottom:12px;font-size:13px;font-weight:740;display:inline-block}.section-heading h2,.contact-copy h2{letter-spacing:-.055em;font-variation-settings:"wdth" 96, "opsz" 72;margin:0;font-size:3.8rem;font-weight:735;line-height:1.02}.section-heading>p{color:var(--md-sys-color-on-surface-variant);margin:0 0 5px;font-size:16px;line-height:1.6}.about-grid{grid-template-rows:repeat(2,minmax(190px,auto));grid-template-columns:1.2fr .8fr;gap:16px;display:grid}.about-card-wrap,.about-card{min-width:0;height:100%}.about-card-main-wrap{grid-row:1/3}.about-card{display:block}.about-card-main{--md-filled-card-container-color:var(--md-sys-color-secondary-container);--md-filled-card-container-shape:36px 36px 36px 12px}.language-card{--md-filled-card-container-color:var(--md-sys-color-tertiary-container);--md-filled-card-container-shape:36px 12px 36px 36px}.editor-card{--md-filled-card-container-color:var(--md-sys-color-primary-container);--md-filled-card-container-shape:12px 36px 36px 36px}.about-card-content{height:100%;color:var(--md-sys-color-on-secondary-container);flex-direction:column;padding:36px;display:flex}.language-card .about-card-content{color:var(--md-sys-color-on-tertiary-container)}.editor-card .about-card-content{color:var(--md-sys-color-on-primary-container)}.card-icon,.project-icon{background:color-mix(in srgb, currentColor 11%, transparent);border-radius:18px;flex:none;place-items:center;width:52px;height:52px;display:grid}.about-card-main .card-icon{margin-bottom:auto}.about-card h3{letter-spacing:-.04em;margin:70px 0 12px;font-size:34px;line-height:1.08}.about-card p{max-width:590px;color:color-mix(in srgb, currentColor 72%, transparent);margin:0;font-size:16px;line-height:1.6}.compact-card-content{flex-direction:row;align-items:center;gap:22px}.compact-card-content h3{margin:0 0 6px;font-size:24px}.compact-card-content p{font-size:14px}.stack-panel{background:var(--md-sys-color-surface-container-low);border:1px solid var(--md-sys-color-outline-variant);border-radius:26px;align-items:center;gap:30px;margin-top:16px;padding:24px 28px;display:flex}.stack-panel>p{color:var(--md-sys-color-on-surface-variant);white-space:nowrap;margin:0;font-size:12px;font-weight:720}.stack-chips{flex-wrap:wrap;gap:7px;display:flex}.stack-chips span{color:var(--md-sys-color-on-secondary-container);background:var(--md-sys-color-secondary-container)}.projects-section{padding-top:78px}.projects-heading{grid-template-columns:1fr auto}.projects-heading md-text-button{margin-bottom:3px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-card-wrap,.project-card{min-width:0;height:100%}.project-card{--md-filled-card-container-shape:34px;display:block}.project-primary{--md-filled-card-container-color:var(--md-sys-color-primary-container)}.project-secondary{--md-filled-card-container-color:var(--md-sys-color-secondary-container)}.project-tertiary{--md-filled-card-container-color:var(--md-sys-color-tertiary-container)}.project-neutral{--md-filled-card-container-color:var(--md-sys-color-surface-container-high)}.project-card-content{flex-direction:column;min-height:330px;padding:30px;display:flex}.project-card-top{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.project-language{color:var(--md-sys-color-on-surface-variant);background:color-mix(in srgb, var(--md-sys-color-surface) 62%, transparent);border-radius:11px;padding:8px 11px;font-family:JetBrains Mono Variable,monospace;font-size:10px;font-weight:600}.project-card-content>div:nth-child(2){margin:auto 0 30px}.project-card h3{letter-spacing:-.04em;margin:48px 0 10px;font-size:28px;line-height:1.1}.project-card p{max-width:450px;color:var(--md-sys-color-on-surface-variant);margin:0;font-size:14px;line-height:1.58}.project-card md-text-button{width:fit-content}.contact-section{width:min(var(--page-width), calc(100% - 48px));margin:62px auto 0}.contact-card{--md-filled-card-container-color:var(--md-sys-color-inverse-surface);--md-filled-card-container-shape:48px 48px 16px 48px;display:block}.contact-card-content{min-height:560px;color:var(--md-sys-color-inverse-on-surface);grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:70px;padding:64px;display:grid}.contact-copy{flex-direction:column;align-items:flex-start;display:flex}.contact-copy .section-label{color:var(--md-sys-color-primary)}html[data-theme=dark] .contact-copy .section-label{color:var(--md-sys-color-primary-container)}.contact-copy h2{font-size:4.5rem}.contact-copy>p{max-width:500px;color:color-mix(in srgb, var(--md-sys-color-inverse-on-surface) 68%, transparent);margin:24px 0 36px;font-size:16px;line-height:1.6}.contact-copy md-filled-button{--md-filled-button-container-shape:28px;margin-top:auto}.contact-links{flex-direction:column;align-self:center;display:flex}.contact-links a{border-bottom:1px solid color-mix(in srgb, var(--md-sys-color-inverse-on-surface) 16%, transparent);justify-content:space-between;align-items:center;gap:20px;min-height:82px;padding:0 10px;font-size:15px;font-weight:650;display:flex}.contact-links a:last-child{border-bottom:0}.contact-links a>span{align-items:center;gap:13px;display:inline-flex}.contact-links a>svg{transition:transform .18s var(--motion-expressive)}.contact-links a:hover>svg{transform:translate(3px,-3px)}footer{color:var(--md-sys-color-on-surface-variant);justify-content:space-between;align-items:center;gap:24px;padding:26px 8px 42px;display:flex}.footer-brand{align-items:center;gap:10px;font-size:13px;font-weight:700;display:inline-flex}.footer-brand img{border-radius:50%;width:34px;height:34px}footer p{margin:0;font-size:12px}@media (width<=1020px){.hero h1{font-size:4.3rem}.hero-copy-content{padding:42px}.contact-card-content{padding:54px}.contact-copy h2{font-size:3.9rem}}@media (width<=820px){.app-bar{grid-template-columns:1fr auto}.nav-links{background:var(--md-sys-color-surface-container);border:1px solid var(--md-sys-color-outline-variant);box-shadow:var(--md-sys-elevation-shadow-2);border-radius:24px;flex-direction:column;align-items:stretch;padding:10px;display:none;position:absolute;top:calc(100% + 10px);left:0;right:0}.nav-links.is-open{display:flex}.nav-links a{min-height:48px}.menu-button{display:inline-block}.hero{grid-template-columns:1fr}.hero-copy-content,.hero-card-content{min-height:480px}.hero-card-content{min-height:500px}.section-heading{grid-template-columns:1fr;gap:18px}.about-grid{grid-template-rows:auto;grid-template-columns:1fr}.about-card-main-wrap{grid-row:auto}.about-card-main .about-card-content{min-height:390px}.stack-panel{flex-direction:column;align-items:flex-start;gap:18px}.contact-card-content{grid-template-columns:1fr;gap:54px;min-height:0}.contact-copy md-filled-button{margin-top:10px}}@media (width<=620px){:root{--page-padding:10px}.app-bar-wrap{top:10px}.app-bar{border-radius:22px;min-height:62px}.brand img{width:42px;height:42px}.brand span{font-size:14px}.hero,.section,.contact-section{width:calc(100% - 20px)}.hero{gap:12px;padding-top:92px;padding-bottom:34px}.hero-copy,.hero-visual{--md-filled-card-container-shape:32px}.hero-copy-content{min-height:480px;padding:30px 26px}.hero h1{font-size:3.2rem;line-height:1}.hero-copy-content>p{margin-top:22px;font-size:16px}.hero-actions{flex-direction:column;align-items:stretch;margin-top:28px}.hero-actions md-filled-button,.hero-actions md-filled-tonal-button{width:100%}.hero-card-content{min-height:470px;padding:28px}.portrait-shape{width:170px;height:170px}.section{padding-top:72px;padding-bottom:72px}.section-heading{margin-bottom:28px}.section-heading h2,.contact-copy h2{font-size:2.8rem}.about-card-main .about-card-content{min-height:360px}.about-card,.project-card{--md-filled-card-container-shape:28px}.about-card-content{padding:28px}.about-card h3{margin-top:58px;font-size:28px}.compact-card-content{min-height:170px}.compact-card-content h3{margin-top:0;font-size:22px}.stack-panel{padding:22px}.project-grid{grid-template-columns:1fr;gap:12px}.project-card-content{min-height:310px;padding:26px}.contact-section{margin-top:34px}.contact-card{--md-filled-card-container-shape:32px}.contact-card-content{gap:42px;padding:38px 26px 28px}.contact-copy h2{font-size:3rem}.contact-copy md-filled-button{--md-filled-button-container-height:72px;--md-filled-button-leading-space:24px;--md-filled-button-trailing-space:24px;width:100%}.contact-links a{min-height:72px}footer{flex-direction:column;align-items:flex-start;padding-inline:4px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
