@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-grotesk-vietnamese-400-normal.B7xT_GF5.woff2)format("woff2"),url(/_astro/space-grotesk-vietnamese-400-normal.BIWiOVfw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-grotesk-latin-ext-400-normal.CfP_5XZW.woff2)format("woff2"),url(/_astro/space-grotesk-latin-ext-400-normal.DRPE3kg4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-grotesk-latin-400-normal.CJ-V5oYT.woff2)format("woff2"),url(/_astro/space-grotesk-latin-400-normal.BnQMeOim.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-vietnamese-500-normal.BmEvtly_.woff2)format("woff2"),url(/_astro/space-grotesk-vietnamese-500-normal.BTqKIpxg.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-ext-500-normal.DUe3BAxM.woff2)format("woff2"),url(/_astro/space-grotesk-latin-ext-500-normal.3dgZTiw9.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-500-normal.lFbtlQH6.woff2)format("woff2"),url(/_astro/space-grotesk-latin-500-normal.CNSSEhBt.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-vietnamese-600-normal.DUi7WF5p.woff2)format("woff2"),url(/_astro/space-grotesk-vietnamese-600-normal.D6zpsUhD.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-latin-ext-600-normal.DxxdqCpr.woff2)format("woff2"),url(/_astro/space-grotesk-latin-ext-600-normal.VcznFIpX.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-latin-600-normal.DjKNqYRj.woff2)format("woff2"),url(/_astro/space-grotesk-latin-600-normal.BflQw4A9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-vietnamese-700-normal.DMty7AZE.woff2)format("woff2"),url(/_astro/space-grotesk-vietnamese-700-normal.Duxec5Rn.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-latin-ext-700-normal.BQnZhY3m.woff2)format("woff2"),url(/_astro/space-grotesk-latin-ext-700-normal.HVCqSBdx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-latin-700-normal.RjhwGPKo.woff2)format("woff2"),url(/_astro/space-grotesk-latin-700-normal.CwsQ-cCU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#e3e4eb;--ink:#242631;--muted:#5c606d;--accent:#5f4daf;--line:#c6c7d4;--surface:#ffffff8c;--font:"Space Grotesk", sans-serif;--mono:"IBM Plex Mono", monospace;--shadow:0 16px 35px -25px #35314155;--cobalt:var(--accent);color-scheme:light}:root[data-theme=dark]{--bg:#20232e;--ink:#f0edf8;--muted:#b7b9cb;--accent:#c4b5ff;--line:#464958;--surface:#252836cc;--shadow:0 16px 35px -25px #0009;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:115px}body{background:var(--bg);color:var(--ink);font:400 16px/1.65 var(--font);-webkit-font-smoothing:antialiased;margin:0}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 6% 15%,#d7cbe080,#0000 57%),radial-gradient(at 93% 4%,#c7d8e396,#0000 50%),radial-gradient(at 60% 90%,#ded3d67a,#0000 60%);position:fixed;inset:0}html[data-theme=dark] body:before{background:radial-gradient(at 4% 10%,#3e315667,#0000 60%),radial-gradient(at 95% 14%,#25405366,#0000 55%)}p,h1,h2,h3,ul{margin:0}p{color:var(--muted)}h1,h2,h3{font-weight:600;line-height:1.12}h2{letter-spacing:-1.8px;font-size:46px}h3{letter-spacing:-.45px;font-size:20px}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.35;cursor:default}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img,svg{max-width:100%}img{display:block}svg{vertical-align:middle}.wrap{width:min(1040px,100% - 80px);margin-inline:auto}.skip-link{background:var(--surface);z-index:99;padding:12px 20px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:10px}.site-header{z-index:30;width:min(760px,100% - 40px);position:fixed;top:24px;left:50%;transform:translate(-50%)}.nav-capsule{background:color-mix(in srgb, var(--bg) 54%, transparent);backdrop-filter:blur(22px);box-shadow:var(--shadow), inset 0 1px 0 #fff5;border:1px solid #ffffff70;border-radius:100px;justify-content:space-between;align-items:center;gap:24px;padding:9px 10px;display:flex}.nav-links{align-items:center;gap:2px;display:flex}.nav-links a{white-space:nowrap;border:1px solid #0000;border-radius:40px;padding:10px 14px;font-size:13px;font-weight:500}.nav-links a:hover{background:var(--surface);color:var(--ink)}.nav-links a.active{background:color-mix(in srgb, var(--accent) 10%, var(--surface));border-color:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 0 1px 3px #534e6320}.theme-toggle{border:1px solid var(--line);background:var(--surface);border-radius:50%;flex-shrink:0;width:40px;height:40px;padding:10px}.theme-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:19px;height:19px}.sun-icon,html[data-theme=dark] .moon-icon{display:none}html[data-theme=dark] .sun-icon{display:block}.mobile-brand,.menu-toggle{display:none}.hero{grid-template-columns:minmax(0,1fr) 280px;align-items:center;gap:36px;padding-top:154px;display:grid}.hero h1{letter-spacing:-2.6px;white-space:nowrap;font-size:clamp(36px,4.4vw,57px)}.name-period{color:var(--accent)}.hero-role{color:var(--ink);letter-spacing:-2px;margin-top:12px;font-size:clamp(40px,4.2vw,56px);font-weight:500;line-height:1.08}.type-cursor{vertical-align:-1px;background:var(--accent);width:3px;height:.82em;margin-left:8px;animation:1s step-end 3 forwards cursor-intro;display:inline-block}@keyframes cursor-intro{0%,45%{opacity:1}46%,to{opacity:0}}.hero-description{max-width:570px;margin-top:24px;font-size:17px;line-height:1.75}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:25px;display:flex}.button{border:1px solid var(--line);border-radius:12px;justify-content:center;align-items:center;gap:15px;min-height:45px;padding:10px 19px;font-size:13px;font-weight:500;display:inline-flex}.button svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:17px}.primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.secondary{background:var(--surface);box-shadow:inset 0 1px #fff3}.secondary:hover{border-color:var(--accent)}.hero-socials{align-items:center;gap:10px;margin-top:24px;display:flex}.hero-socials>a{border:1px solid var(--line);background:#ffffff16;border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.hero-socials>a svg{fill:currentColor;width:19px;height:19px}.hero-socials>a:last-of-type svg{fill:none;stroke:currentColor;stroke-width:1.5px}.hero-socials>span{color:var(--muted);margin-left:7px;font-size:11px}.identity{justify-content:center;align-items:center;height:300px;margin-top:15px;display:flex;position:relative}.identity-disc{background:linear-gradient(135deg,#f2eef9aa,#b9b5cfcc);border:1px solid #ffffff80;border-radius:50%;justify-content:center;align-items:center;gap:5px;width:228px;height:228px;display:flex;position:relative;box-shadow:inset 3px 3px 12px #fff8,inset -10px -12px 22px #8e86aa30,0 20px 30px -20px #5e537c80}.identity-letters{letter-spacing:-8px;color:#464057;padding-bottom:9px;font-size:83px;font-weight:600;line-height:1}.identity-letters>span{color:#70618f}.identity-bracket{color:#8b809d;opacity:.7;font-size:43px;font-weight:400;line-height:1}.identity-orbit{border:1px solid #9b94b14a;border-radius:50%;width:274px;height:274px;position:absolute;transform:rotate(-24deg)}.identity-orbit:before,.identity-orbit:after{content:"";background:#8b7aa9;border-radius:50%;width:6px;height:6px;position:absolute;top:25px;left:49px;box-shadow:0 0 0 5px #c4b4d733}.identity-orbit:after{inset:auto 42px 31px auto}.identity-tag{z-index:1;background:var(--surface);backdrop-filter:blur(10px);box-shadow:var(--shadow);border:1px solid #fff6;border-radius:10px;padding:7px 15px;font-size:12px;position:absolute}.tag-top{top:37px;right:0;transform:rotate(8deg)}.tag-bottom{bottom:42px;left:-4px;transform:rotate(-8deg)}.identity-caption{color:var(--muted);letter-spacing:.1px;font-size:10px;position:absolute;bottom:-13px}html[data-theme=dark] .identity-disc{background:linear-gradient(135deg,#56516b,#35384b);border-color:#716884;box-shadow:inset 3px 3px 12px #ffffff15,0 20px 30px -20px #0008}html[data-theme=dark] .identity-letters{color:#f0eaff}html[data-theme=dark] .identity-letters>span{color:#b4a1df}html[data-theme=dark] .identity-bracket{color:#b1a6c5}.section{padding-top:104px}.section-heading{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:32px;display:flex}.section-heading p{margin-top:15px;font-size:15px}.about-section{padding-top:79px}.about-copy>p{font-size:16px;line-height:1.8}.text-link{color:var(--accent);align-items:center;gap:20px;margin-top:22px;font-size:13px;font-weight:500;display:inline-flex}.text-link:hover{text-underline-offset:5px;text-decoration:underline}.small-link{white-space:nowrap;align-items:center;gap:15px;font-size:12px;font-weight:500;display:inline-flex}.experience-list{flex-direction:column;gap:14px;display:flex}.experience{background:var(--surface);box-shadow:var(--shadow);border:1px solid #ffffff35;border-radius:22px;align-items:flex-start;gap:24px;padding:27px 28px;display:flex}.experience-icon{background:color-mix(in srgb, var(--accent) 7%, var(--surface));border:1px solid var(--line);width:44px;height:44px;color:var(--accent);border-radius:14px;flex-shrink:0;place-items:center;font-size:14px;display:grid}.experience-icon svg{fill:none;stroke:currentColor;stroke-width:1.4px;width:23px}.experience-body{flex:1;min-width:0}.experience-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.experience h3{font-size:18px;line-height:1.4}.experience-date{white-space:nowrap;font-size:11px}.organization{color:var(--ink);margin-top:4px;font-size:13px}.experience-body>p:last-child:not(.organization){margin-top:12px;font-size:14px}.service-note{margin-top:20px;padding-left:4px;font-size:12px}.gallery-controls{gap:9px;display:flex}.icon-button{background:var(--surface);border:1px solid var(--line);border-radius:50%;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.icon-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.project-gallery{scrollbar-width:thin;scrollbar-color:#9690aa transparent;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;border-radius:23px;padding-bottom:16px;overflow-x:auto}.project-track{align-items:stretch;gap:20px;display:flex}.project-card{background:var(--surface);scroll-snap-align:start;border:1px solid #ffffff40;border-radius:23px;flex:0 0 calc(33.3333% - 13.3333px);min-width:0;overflow:hidden}.project-card-link{flex-direction:column;height:100%;padding:11px;display:flex}.project-card-link:hover{color:inherit}.project-card-link:hover h3,.project-card-link:hover .project-detail-link{color:var(--accent)}.project-card-copy{flex-direction:column;flex:1;padding:19px 12px 12px;display:flex}.project-category{font-size:10px;line-height:1.5}.project-card-copy h3{letter-spacing:-1px;overflow-wrap:anywhere;margin-top:7px;font-size:25px}.project-summary{min-height:65px;margin-top:13px;font-size:12px;line-height:1.7}.tech-list{flex-wrap:wrap;gap:6px;margin-top:18px;padding:0;list-style:none;display:flex}.tech-list li{border:1px solid var(--line);color:var(--muted);background:#ffffff10;border-radius:7px;padding:3px 7px;font-size:9px}.project-detail-link{justify-content:space-between;align-items:center;margin-top:auto;padding-top:24px;font-size:12px;font-weight:500;display:flex}.contact-section{grid-template-columns:.8fr 1.2fr;align-items:start;gap:60px;padding-bottom:90px;display:grid}.contact-heading>p{max-width:250px;margin-top:17px;font-size:14px}.contact-panel{background:var(--surface);box-shadow:var(--shadow);border:1px solid #ffffff50;border-radius:23px;padding:30px}.contact-email>span:first-child{color:var(--muted);margin-bottom:9px;font-size:11px;display:block}.contact-email>a{letter-spacing:-.7px;overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:12px;font-size:23px;line-height:1.4;display:flex}.contact-email>a>span{color:var(--accent);font-size:23px}.copy-email{color:var(--accent);background:0 0;border:0;min-height:25px;margin-top:15px;padding:0}.copy-email:hover{text-decoration:underline}.copy-status{color:var(--muted);margin-left:12px;font-size:10px;display:inline}.contact-bottom{border-top:1px solid var(--line);justify-content:space-between;gap:18px;margin-top:24px;padding-top:21px;font-size:12px;display:flex}.contact-bottom>div{gap:20px;display:flex}.contact-bottom span{color:var(--accent)}.site-footer{border-top:1px solid var(--line);align-items:center;gap:28px;padding-block:28px 35px;font-size:11px;display:flex}.footer-name{margin-right:auto;font-weight:500}.footer-name>span{color:var(--muted);margin-top:2px;font-size:10px;font-weight:400;display:block}.back-top span{margin-left:12px}html[data-theme=dark] .experience,html[data-theme=dark] .project-card,html[data-theme=dark] .contact-panel{border-color:#51536588}@media (width>=1500px){.hero{padding-top:175px}.section{padding-top:115px}.about-section{padding-top:85px}}@media (width<=1050px){.hero{grid-template-columns:minmax(0,1fr) 245px;gap:25px}.hero h1{letter-spacing:-2px;white-space:normal;font-size:47px}.hero-role{font-size:47px}.identity{transform-origin:100%;transform:scale(.87)}.hero-description{font-size:16px}.experience-heading{align-items:start}.experience-date{padding-top:3px}.contact-section{gap:32px}.contact-email>a{font-size:21px}.project-card{flex-basis:calc(50% - 10px)}.project-summary{min-height:45px;font-size:13px}}@media (width<=760px){.wrap{width:calc(100% - 48px)}.site-header{width:calc(100% - 32px);max-width:520px;top:16px}.nav-capsule{gap:14px;padding:7px 9px}.mobile-brand{letter-spacing:-2px;margin-left:12px;font-size:26px;font-weight:600;line-height:1;display:block}.menu-toggle{border:0;border-left:1px solid var(--line);background:0 0;justify-content:space-between;align-items:center;gap:22px;margin-left:auto;padding:7px 0 7px 18px;font-size:12px;display:flex}.menu-toggle span{font-size:21px;line-height:1;transition:transform .2s}.theme-toggle{width:37px;height:37px;margin-left:2px;padding:8px}.nav-links{background:color-mix(in srgb, var(--bg) 95%, transparent);backdrop-filter:blur(22px);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;padding:12px;display:none;position:absolute;top:64px;left:0;right:0}.menu-open .nav-links{grid-template-columns:1fr 1fr;gap:5px;display:grid}.nav-links a{border-radius:13px;padding:12px 17px}.menu-open .menu-toggle span{transform:rotate(45deg)}.hero{grid-template-columns:minmax(0,1fr) 155px;gap:14px;padding-top:119px}.hero h1{white-space:normal;letter-spacing:-2px;max-width:360px;font-size:40px}.hero-role{letter-spacing:-1.5px;font-size:36px}.hero-description{max-width:450px;margin-top:20px;font-size:15px}.identity{transform-origin:100%;width:155px;height:220px;margin-top:-35px;transform:scale(.64)}.identity-disc{flex-shrink:0}.identity-orbit{width:274px;height:274px}.identity-tag{white-space:nowrap}.tag-top{top:-10px;right:-55px}.tag-bottom{bottom:3px;left:-60px}.identity-caption{white-space:nowrap;font-size:13px;bottom:-65px}.hero-actions{gap:9px;margin-top:21px}.button{gap:10px;padding:9px 14px;font-size:12px}.hero-socials>span{display:none}.section{padding-top:76px}h2{letter-spacing:-1.3px;font-size:37px}.about-section{padding-top:66px}.about-copy>p{max-width:470px;font-size:15px}.text-link{margin-top:16px}.section-heading{gap:20px;margin-bottom:26px}.section-heading p{margin-top:12px;font-size:13px}.experience{gap:18px;padding:23px}.experience-heading{flex-direction:column;gap:7px}.experience-date{font-size:10px}.experience h3{font-size:17px}.experience-body>p:last-child:not(.organization){font-size:13px}.experience-icon{border-radius:12px;width:39px;height:39px;font-size:12px}.organization{margin-top:7px;font-size:12px}.service-note{font-size:11px}.project-card-copy{padding-inline:7px}.project-card-copy h3{font-size:23px}.project-summary{min-height:65px;font-size:12px}.contact-section{grid-template-columns:1fr;gap:30px;padding-bottom:65px}.contact-heading>p{max-width:none}.contact-panel{padding:25px}.contact-email>a{font-size:25px}.contact-bottom{font-size:12px}.site-footer{gap:20px}.gallery-controls{gap:6px}.icon-button{width:35px;height:35px;font-size:18px}}@media (width<=520px){.hero{grid-template-columns:1fr;gap:0;position:relative}.hero-copy{z-index:1;position:relative}.hero h1{max-width:100%;padding-right:0;font-size:43px;line-height:1.07}.hero-role{margin-top:14px;font-size:39px}.hero-description{max-width:100%;margin-top:21px;font-size:15px}.identity{display:none}.hero-socials{margin-top:24px}.hero-socials>span{font-size:10px;display:block}.experience{padding:22px 20px}.experience-icon{display:none}.project-card{flex-basis:85%}.project-card-copy{padding:19px 11px 12px}.project-summary{min-height:0;font-size:13px}.project-card-copy h3{font-size:26px}.tech-list li{font-size:9px}.project-detail-link{padding-top:22px}.contact-email>a{font-size:21px}.contact-panel{padding:23px}.contact-bottom{flex-direction:column;gap:18px}.contact-bottom>div{gap:25px}.section-heading h2{max-width:260px}.projects-section .section-heading{align-items:center}.gallery-controls{align-self:flex-start;margin-top:5px}.projects-section h2{font-size:35px}.site-footer{flex-wrap:wrap;gap:16px;padding-block:25px}.footer-name{flex-basis:calc(100% - 80px)}.site-footer>.back-top{margin-left:auto}}@media (width<=360px){.wrap{width:calc(100% - 36px)}.hero h1{font-size:37px}.hero-role{font-size:36px}.hero-socials>span{display:none}.button{padding-inline:12px;font-size:11px}.hero-actions{gap:8px}.contact-email>a{font-size:18px}.project-card{flex-basis:92%}.projects-section h2{font-size:31px}.gallery-controls{gap:4px}.icon-button{width:31px;height:31px}.contact-panel{padding:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.type-cursor{display:none}}.about-description{max-width:72ch;margin-top:30px}.about-description>p+p{margin-top:18px}html,body{overflow-x:clip}.project-card-link:focus-visible{outline-offset:-5px;border-radius:22px}
