@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:200;src:url(/_astro/poppins-devanagari-200-normal.Cd2cBuw-.woff2)format("woff2"),url(/_astro/poppins-devanagari-200-normal.xi-_ae4H.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:200;src:url(/_astro/poppins-latin-ext-200-normal.C8LeRBwY.woff2)format("woff2"),url(/_astro/poppins-latin-ext-200-normal.BnXTLz5G.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:Poppins;font-style:normal;font-display:swap;font-weight:200;src:url(/_astro/poppins-latin-200-normal.B8tqA5oA.woff2)format("woff2"),url(/_astro/poppins-latin-200-normal.BxK-3Qw6.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:Poppins;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/poppins-devanagari-300-normal.D7nrgzLr.woff2)format("woff2"),url(/_astro/poppins-devanagari-300-normal.5EpgE5P1.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/poppins-latin-ext-300-normal.Cirz0Guu.woff2)format("woff2"),url(/_astro/poppins-latin-ext-300-normal.nf6F73WS.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:Poppins;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/poppins-latin-300-normal.Dku2WoCh.woff2)format("woff2"),url(/_astro/poppins-latin-300-normal.DCNuMXUj.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:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/poppins-devanagari-400-normal.CJDn6rn8.woff2)format("woff2"),url(/_astro/poppins-devanagari-400-normal.CqVvlrh5.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/poppins-latin-ext-400-normal.by3JarPu.woff2)format("woff2"),url(/_astro/poppins-latin-ext-400-normal.DaBSavcJ.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:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/poppins-latin-400-normal.cpxAROuN.woff2)format("woff2"),url(/_astro/poppins-latin-400-normal.BOb3E3N0.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:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/poppins-devanagari-500-normal.BIdkeU1p.woff2)format("woff2"),url(/_astro/poppins-devanagari-500-normal.DMPDjHtT.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/poppins-latin-ext-500-normal.CK-6C4Hw.woff2)format("woff2"),url(/_astro/poppins-latin-ext-500-normal.CgAe2rWW.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:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/poppins-latin-500-normal.C8OXljZJ.woff2)format("woff2"),url(/_astro/poppins-latin-500-normal.DGXqpDMm.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:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/poppins-devanagari-600-normal.STEjXBNN.woff2)format("woff2"),url(/_astro/poppins-devanagari-600-normal.ClASKHrr.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/poppins-latin-ext-600-normal.CAhIAdZj.woff2)format("woff2"),url(/_astro/poppins-latin-ext-600-normal.Df5ffKXP.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:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/poppins-latin-600-normal.zEkxB9Mr.woff2)format("woff2"),url(/_astro/poppins-latin-600-normal.BJdTmd5m.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:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/poppins-devanagari-700-normal.O-jipLrW.woff2)format("woff2"),url(/_astro/poppins-devanagari-700-normal.fHs-vx92.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/poppins-latin-ext-700-normal.cby-RkWa.woff2)format("woff2"),url(/_astro/poppins-latin-ext-700-normal.DctTR6Tg.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:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/poppins-latin-700-normal.Qrb0O0WB.woff2)format("woff2"),url(/_astro/poppins-latin-700-normal.BVuQR_eA.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:Sora;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/sora-latin-ext-500-normal.B5KKQIFO.woff2)format("woff2"),url(/_astro/sora-latin-ext-500-normal.DwxUJRqY.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:Sora;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/sora-latin-500-normal.01eiPEn0.woff2)format("woff2"),url(/_astro/sora-latin-500-normal.w58xtEt9.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:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/sora-latin-ext-600-normal.Cue1zdhl.woff2)format("woff2"),url(/_astro/sora-latin-ext-600-normal.DLOJK0Ta.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:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/sora-latin-600-normal.Cdg4DaK0.woff2)format("woff2"),url(/_astro/sora-latin-600-normal.1_7fyUAY.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:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/sora-latin-ext-700-normal.DM0oy5s8.woff2)format("woff2"),url(/_astro/sora-latin-ext-700-normal.Oc7uZIYt.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:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/sora-latin-700-normal.9waGdLWo.woff2)format("woff2"),url(/_astro/sora-latin-700-normal.BKPfQAnC.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:Sora;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/sora-latin-ext-800-normal.YDFYE6t9.woff2)format("woff2"),url(/_astro/sora-latin-ext-800-normal.BvAfeed7.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:Sora;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/sora-latin-800-normal.2tKLL3qT.woff2)format("woff2"),url(/_astro/sora-latin-800-normal.c3Huklug.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{--background:#111;--bg-opaque:#12121240;--background-light:#232323;--background-dark:#080808;--text:#ebecf3;--brand:#3b82f6;--text-xs:1.6rem;--text-sm:1.8rem;--text-md:2.2rem;--text-lg:3.6rem;--text-xl:5.6rem;--text-2xl:9.6rem;--navbar-height:calc(45px + 3.6rem);--font-body:"Poppins", "Arial", sans-serif;--font-heading:"Sora", "Arial", sans-serif;font-size:62.5%}:root[data-theme=light]{--background:#fff;--bg-opaque:#ffffffb3;--background-light:#eef2f9;--background-dark:#e2e8f5;--text:#0f172a;--brand:#1d4ed8}*{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--brand);color:#ebecf3}body,html{scroll-behavior:auto;max-width:100%;font-size:var(--text-sm)}body{color:var(--text);background:var(--background);font-family:var(--font-body);-webkit-font-smoothing:antialiased;transition:background-color .25s,color .25s}a{color:inherit;text-decoration:none}li{list-style:none}button,input[type=reset],input[type=submit]{color:inherit;font:inherit;cursor:pointer;outline:inherit;background:0 0;border:none;padding:0}.section-wrapper{z-index:10;max-width:1280px;margin:auto;padding:9.6rem;position:relative;overflow:hidden}@media (width<=768px){.section-wrapper{padding:7rem 3rem}}@media (width<=480px){.section-wrapper{max-width:360px;font-size:var(--text-xs);padding:3rem 1.5rem}}@media (width<=310px){.section-wrapper{max-width:270px}}.chip{cursor:default;font-family:var(--font-heading);font-size:var(--text-xs);background:var(--background-light);opacity:.6;border-radius:999px;padding:.2rem .8rem;transition:all .2s}.chip:hover{opacity:1}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background-color:var(--background-dark)}::-webkit-scrollbar-thumb{background-color:var(--background-light);opacity:.5}::-webkit-scrollbar-thumb:hover{background-color:var(--brand)}.blur{filter:blur(5px)}.blur,.remove-blur{transition:filter .3s ease-in}.remove-blur{filter:blur()}.navbar{height:var(--navbar-height);z-index:20;background:var(--bg-opaque);backdrop-filter:blur(12px);font-size:var(--text-md);justify-content:space-between;align-items:center;padding:0 3.6rem;font-weight:700;display:flex;position:sticky;top:0}@media (width<=768px){.navbar{padding:0 2.4rem}}@media (width<=360px){.navbar{padding:0 1.2rem}}.navbar-buttons,.navbar-buttons-full{align-items:center;gap:1.6rem;display:flex}.navbar-buttons>a{height:46px}.navbar-left{align-items:center;gap:2.4rem;min-width:0;display:flex}.navbar-logo{font-family:var(--font-heading);font-size:var(--text-md);flex-shrink:0;font-weight:800;line-height:1}.navbar-logo span{color:var(--brand)}.navbar-links{font-size:var(--text-sm);align-items:center;gap:.8rem;font-weight:500;display:flex;overflow:hidden}.navbar-link{opacity:.6;white-space:nowrap;transition:all .2s}.navbar-link:hover,.navbar-link.selected{opacity:1;color:var(--brand)}.navbar-divider{opacity:.25;font-weight:300}@media (width<=900px){.navbar-links,.navbar-buttons-full{display:none}}.navbar-mobile-menu{display:none}@media (width<=900px){.navbar-mobile-menu{top:var(--navbar-height);z-index:19;background:var(--background);border-bottom:1px solid var(--background-light);opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;gap:.4rem;padding:1.2rem 2.4rem 2.4rem;transition:opacity .2s,transform .2s,visibility .2s;display:flex;position:fixed;left:0;right:0;transform:translateY(-8px)}.navbar-mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}}.navbar-mobile-link{font-size:var(--text-md);opacity:.7;border-bottom:1px solid var(--background-light);padding:1.2rem 0;font-weight:600;transition:all .2s}.navbar-mobile-link:last-child{border-bottom:none}.navbar-mobile-link:hover,.navbar-mobile-link.selected{opacity:1;color:var(--brand)}.navbar-mobile-extra{align-items:center;gap:1.2rem;margin-top:1.6rem;display:flex}.navbar-mobile-socials{justify-content:flex-start;margin-top:1.6rem;padding-top:0}.navbar-switch{z-index:20;color:var(--brand);margin-left:1.6rem;font-size:1.5rem;font-weight:500;transition:all .2s}.navbar-switch:hover{color:inherit}.navbar-outline-btn{cursor:pointer;border:none;border:1px solid var(--brand);color:var(--brand);font-size:var(--text-sm);z-index:20;background:0 0;border-radius:4px;outline:none;align-items:center;gap:1rem;padding:1rem 2rem;font-weight:600;transition:color .2s;display:flex;position:relative;overflow:hidden}.navbar-outline-btn:before{content:"";z-index:-1;background:var(--brand);width:100%;height:100%;transition:left .2s,top .2s;position:absolute;top:-100%;left:-100%}.navbar-outline-btn:hover{color:var(--text)}.navbar-outline-btn:hover:before{top:0;left:0}@media (width<=480px){.navbar-outline-btn{padding:.5rem}.navbar-outline-btn:not(.theme-toggle-btn):not(.navbar-menu-btn) svg{display:none}}@media (width<=360px){.navbar-outline-btn{font-size:var(--text-xs);padding:.3rem}}.navbar-cv-btn{background:var(--brand);border-color:var(--brand);color:#fff}.navbar-cv-btn:before{display:none}.navbar-cv-btn:hover{color:#fff;opacity:.85}.navbar-menu-btn,.menu-icon-close,.navbar-menu-btn.open .menu-icon-open{display:none}.navbar-menu-btn.open .menu-icon-close{display:inline-flex}@media (width<=900px){.navbar-menu-btn{padding:1rem;display:inline-flex}}.theme-toggle-btn{padding:1rem}.theme-toggle-btn .theme-icon-moon,:root[data-theme=light] .theme-toggle-btn .theme-icon-sun{display:none}:root[data-theme=light] .theme-toggle-btn .theme-icon-moon{display:inline-flex}.fade-up{opacity:0;animation:.5s forwards fadeUp;transform:translateY(-30px)}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.socials{justify-content:center;gap:1.6rem;padding-top:10px;display:flex}.socials a{z-index:20;opacity:.5;transition:all .2s;display:inline-flex}.socials a:hover{color:var(--brand);opacity:1}@media (width<=360px){.socials{gap:1.2rem}}.hero{min-height:calc(100vh - var(--navbar-height));flex-direction:column;justify-content:center;margin-top:0;margin-bottom:0;padding-top:4rem;padding-bottom:4rem;display:flex;position:relative}.hero p{opacity:1;font-weight:400}.hero a{color:var(--brand);opacity:1;font-weight:500;transition:all .2s}.hero a:hover{opacity:.9;font-weight:500}@media (width<=1100px){.hero{margin-top:0;margin-bottom:0;padding-top:2rem;padding-bottom:2rem}}@media (width<=480px){.hero{padding-top:1rem;padding-bottom:1rem}}.hero-copy-wrapper{z-index:10;width:fit-content;margin:4.8rem 0;position:relative}.hero-title{font-family:var(--font-heading);font-size:var(--text-2xl);letter-spacing:-.02em;font-weight:800;line-height:1.1}.hero-title span{color:var(--brand)}@media (width<=768px){.hero-title{font-size:var(--text-xl)}}@media (width<=360px){.hero-title{font-size:var(--text-lg)}}.hero-subtitle{font-size:var(--text-lg);margin-top:1.6rem;font-weight:200;line-height:1.1}.hero-subtitle span{color:var(--brand);font-weight:700}@media (width<=360px){.hero-subtitle{font-size:var(--text-md)}}.hero-about-copy{max-width:700px;margin:2.4rem 0;font-weight:200}.hero-grid{flex-flow:row;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}@media (width<=1100px){.hero-grid{flex-flow:column-reverse wrap;align-items:center}.hero-copy-wrapper{text-align:center;flex-direction:column;align-items:center;width:100%;display:flex}.hero-about-copy{margin-left:auto;margin-right:auto}}.hero-breakline{display:static}@media (width<=800px){.hero-breakline{display:none}}.hero-contact-btn{cursor:pointer;z-index:20;background:var(--brand);color:#fff;font-size:var(--text-sm);border:none;border-radius:4px;outline:none;padding:1.2rem 2.4rem;font-weight:500;transition:opacity .2s;overflow:hidden}.hero-contact-btn:hover{opacity:.8}.hero-scroll-cue{z-index:10;color:var(--text);opacity:.55;font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.6rem;font-weight:500;transition:opacity .2s;display:flex;position:absolute;bottom:2.4rem;left:50%;transform:translate(-50%)}.hero-scroll-cue:hover{opacity:1}.hero-scroll-cue svg{animation:1.8s ease-in-out infinite hero-scroll-bounce}@keyframes hero-scroll-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media (width<=480px){.hero-scroll-cue{font-size:1.2rem;bottom:1.2rem}}.reveal-line{width:fit-content;position:relative;overflow:hidden}.reveal-line .reveal-line-inner{opacity:0;animation:.6s forwards lineUp;transform:translateY(75px)}@keyframes lineUp{to{opacity:1;transform:translateY(0)}}.reveal-line .reveal-curtain{background:var(--brand);z-index:20;transform-origin:0;animation:.6s forwards curtainAway;position:absolute;inset:4px 0;transform:scaleX(1)}@keyframes curtainAway{to{transform:scaleX(0)}}.hero-portrait{z-index:5;aspect-ratio:4/5;opacity:0;flex-shrink:0;width:clamp(200px,24vw,300px);animation:.6s .5s forwards portraitIn;position:relative;transform:scale(.94)}@keyframes portraitIn{to{opacity:1;transform:scale(1)}}.hero-portrait-frame{background:var(--background-light);clip-path:polygon(24px 0,calc(100% - 24px) 0,100% 24px,100% calc(100% - 24px),calc(100% - 24px) 100%,24px 100%,0 calc(100% - 24px),0 24px);width:100%;height:100%;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.hero-portrait-frame img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.hero-portrait:hover .hero-portrait-frame img{transform:scale(1.08)}.hero-portrait-bracket{border:2px solid var(--brand);pointer-events:none;opacity:0;width:26px;height:26px;transition:transform .3s,opacity .3s;animation:.5s .7s forwards bracketIn;position:absolute}@keyframes bracketIn{to{opacity:1}}.bracket-tl{border-bottom:none;border-right:none;top:-12px;left:-12px}.bracket-tr{border-bottom:none;border-left:none;top:-12px;right:-12px}.bracket-bl{border-top:none;border-right:none;bottom:-12px;left:-12px}.bracket-br{border-top:none;border-left:none;bottom:-12px;right:-12px}.hero-portrait:hover .bracket-tl{transform:translate(-5px,-5px)}.hero-portrait:hover .bracket-tr{transform:translate(5px,-5px)}.hero-portrait:hover .bracket-bl{transform:translate(-5px,5px)}.hero-portrait:hover .bracket-br{transform:translate(5px,5px)}@media (width<=1100px){.hero-portrait{width:clamp(180px,45vw,240px);margin:0 auto 2.4rem}}.section-header{align-items:center;gap:2.4rem;margin-bottom:2.4rem;display:flex}.section-header-title{font-family:var(--font-heading);font-size:var(--text-xl);text-align:end;white-space:nowrap;letter-spacing:-.02em;font-weight:800}.section-header-title span{color:var(--brand)}@media (width<=768px){.section-header-title{font-size:var(--text-lg)}}@media (width<=360px){.section-header-title{font-size:var(--text-md)}}.section-header-line{background:var(--text);opacity:.3;width:100%;height:1px}.stats{position:relative}.stats-column h4{align-items:center;margin-bottom:2.4rem;display:flex}.stats-column h4 span{font-family:var(--font-heading);font-size:var(--text-md);margin-left:.8rem;font-weight:700;position:relative}.stats-grid{flex-wrap:wrap;gap:1.2rem;margin-bottom:4.8rem;display:flex}.about{grid-template-columns:1fr 300px;gap:2.4rem;display:grid}@media (width<=900px){.about{grid-template-columns:1fr}}.about-text{margin-bottom:2.4rem;font-weight:200}.about-text span{font-weight:600}@media (width<=480px){.about-text{text-align:left}}.about-links{align-items:center;gap:1.6rem;display:flex}.about-links-text{font-size:var(--text-sm);color:var(--brand);align-items:center;gap:.8rem;font-weight:500;display:flex}.about-links-arrow{transform:rotate(90deg)}.about-links .socials{padding-top:0}.projects{grid-template-columns:1fr 1fr;gap:3.2rem;display:grid}@media (width<=768px){.projects{grid-template-columns:1fr}}.project-image{cursor:pointer;aspect-ratio:17/9;background:var(--background-light);border-radius:.8rem;position:relative;overflow:hidden}.project-image img{border-radius:.4rem;width:100%;height:auto;transition:all .25s;position:absolute;bottom:30px;left:50%;translate:-50% 20%}.project-copy{margin:1.6rem 0}.project-title{align-items:center;gap:1.2rem;display:flex}.project-title h4{font-family:var(--font-heading);font-weight:700;font-size:var(--text-md);flex-shrink:0;max-width:calc(100% - 150px)}.project-title a{opacity:.75;transition:opacity .25s;display:inline-flex}.project-title a:hover{opacity:1}.project-title-line{background:var(--text);opacity:.3;width:100%;height:1px}.project-description{font-weight:200}.project-description span{font-size:var(--text-xs);color:var(--brand);cursor:pointer;opacity:1;margin-top:1rem;font-weight:400;transition:all .2s;display:inline-block}@media (width<=768px){.project-description span{opacity:1}}.project-description span:hover{opacity:.8}.project-tech{font-family:var(--font-heading);font-size:var(--text-xs);color:var(--brand);flex-wrap:wrap;gap:1.2rem;margin:.8rem 0;display:flex}.link-to-gallery{justify-content:center;padding-top:2rem;padding-bottom:2rem;display:flex}.link-to-gallery a{font-size:var(--text-md);opacity:.8;justify-content:center;align-items:center;gap:1.25rem;padding-right:3.25rem;transition:opacity .2s;display:flex}.link-to-gallery a:hover{opacity:1}.link-to-gallery a svg{animation:1.2s ease-in-out infinite point}@keyframes point{0%{transform:translate(0)}20%{transform:translate(5px)}40%{transform:translate(0)}60%{transform:translate(5px)}80%{transform:translate(0)}to{transform:translate(0)}}.modal{z-index:99;background:var(--bg-opaque);backdrop-filter:blur(12px);cursor:pointer;opacity:0;visibility:hidden;place-items:center;height:100%;padding:2rem 1.2rem;transition:opacity .25s,visibility .25s;display:grid;position:fixed;top:0;left:0;right:0;overflow-y:scroll}.modal.open{opacity:1;visibility:visible}.modal-card{background:var(--background-light);cursor:auto;border-radius:1.2rem;width:100%;max-width:700px;height:fit-content;transition:transform .3s;position:relative;transform:translateY(40px);box-shadow:0 5px 15px #0000001a}.modal.open .modal-card{transform:translateY(0)}.modal-image{border-radius:1.2rem 1.2rem 0 0;width:100%;height:auto}.modal-content{padding:2.4rem}.modal-content h4{font-family:var(--font-heading);font-weight:700;font-size:var(--text-lg)}.modal-tech{font-family:var(--font-heading);font-size:var(--text-xs);color:var(--brand);flex-wrap:wrap;gap:1.2rem;margin:.2rem 0 2.4rem;display:flex}.modal-supplied-content{font-size:var(--text-xs);flex-direction:column;gap:1.2rem;font-weight:300;display:flex}.modal-footer{margin-top:2.4rem}.modal-links-text{font-family:var(--font-heading);font-weight:700;font-size:var(--text-md);margin-bottom:.8rem}.modal-links-text span{color:var(--brand)}.modal-space-between{flex-direction:row;justify-content:space-between;display:flex}.modal-links{align-items:center;gap:1.5rem;display:flex}.modal-links a{font-size:var(--text-xs);color:var(--brand);opacity:1;align-items:center;gap:.4rem;font-weight:400;transition:all .2s;display:flex}.modal-links a:hover{opacity:.8}.modal-close-btn{z-index:999;opacity:.7;width:3.25rem;height:3.25rem;color:var(--text);background-color:var(--background-light);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:2.5rem;display:inline-flex;position:absolute;top:.5rem;left:50%;transform:translate(-50%)}.modal-close-btn svg{opacity:.7;transition:all .2s}@media (width<=768px){.modal-close-btn svg{opacity:1}}.modal-close-btn:hover svg{opacity:1;scale:1.025}.gallery-wrapper{max-width:1280px;margin:auto;padding:2rem 2.5rem}@media (width<=768px){.gallery-wrapper{padding:6.5rem 1rem}}.gallery-go-back-btn{transition:all .2s;display:inline-flex;position:absolute;top:5rem;left:5rem}.gallery-go-back-btn svg{opacity:.5;transition:all .2s}.gallery-go-back-btn:hover svg{opacity:1}@media (width<=768px){.gallery-go-back-btn{left:50%;transform:translate(-50%,-50%)}}.gallery-items{grid-template-columns:1fr 1fr;gap:3.2rem;max-width:900px;margin:2rem auto;display:grid}.gallery-empty{opacity:.6;text-align:center;padding:4rem 0}.gallery-disclaimer{border:1px dashed var(--brand);text-align:center;max-width:900px;font-size:var(--text-xs);opacity:.75;border-radius:.8rem;margin:0 auto 2rem;padding:1.2rem 1.6rem;font-weight:200}@media (width<=768px){.gallery-items{grid-template-columns:1fr 1fr;padding:0 2rem}}@media (width<=480px){.gallery-items{grid-template-columns:1fr;padding:0 1rem}}.gallery-item-cover{aspect-ratio:16/9;background:var(--background-light);cursor:pointer;border-radius:.8rem;width:100%;position:relative;overflow:hidden}.gallery-item-cover img{border-radius:.4rem;width:100%;height:auto;transition:all .25s;position:absolute;bottom:30px;left:50%;translate:-50% 20%}@media (width<=768px){.gallery-item-cover img{width:85%;height:90%}}.gallery-item-copy{margin:1.6rem 0}.gallery-item-title{align-items:center;gap:1.2rem;display:flex}.gallery-item-title h4{cursor:default;font-family:var(--font-heading);font-weight:700;font-size:var(--text-sm);opacity:.75;flex-shrink:0;max-width:calc(100% - 150px);transition:all .2s}.gallery-item-title h4:hover{opacity:1}.gallery-item-title a{opacity:.75;transition:opacity .25s;display:inline-flex}.gallery-item-title a:hover{opacity:1}.gallery-item-title-line{background:var(--text);opacity:.3;width:100%;height:1px}.gallery-item-tech{cursor:default;font-family:var(--font-heading);font-size:var(--text-xs);color:var(--brand);opacity:.9;flex-wrap:wrap;gap:1.2rem;margin:.5rem 0;transition:all .2s;display:flex}.gallery-item-tech:hover{opacity:1}.gallery-go-up-btn{-webkit-backdrop-filter:blur(25px);color:var(--text);cursor:pointer;z-index:40;opacity:0;visibility:hidden;background-color:#ffffff1a;border:none;border-radius:5px;padding:.6rem;transition:opacity .2s,transform .2s,visibility .2s;display:inline-flex;position:fixed;bottom:3rem;right:3rem}.gallery-go-up-btn.visible{opacity:1;visibility:visible}.gallery-go-up-btn svg{opacity:.5;transition:all .2s}.gallery-go-up-btn:hover{transform:translateY(-.25rem)}.gallery-go-up-btn:hover svg{opacity:1}@media (width<=768px){.gallery-go-up-btn{bottom:1rem;right:1rem}}.experience-item{border-bottom:1px solid var(--background-light);margin-bottom:2.4rem;padding:0 1.2rem 2.4rem}@media (width<=480px){.experience-item{padding:0 0 2.4rem}}.experience-heading{justify-content:space-between;align-items:center;margin-bottom:1.2rem;display:flex}@media (width<=600px){.experience-heading{flex-direction:column;align-items:start}}.experience-title{font-family:var(--font-heading);font-size:var(--text-md);font-weight:700}.experience-position{color:var(--brand);font-weight:700}.experience-description{margin-bottom:1.8rem;font-weight:200}.experience-tech{flex-wrap:wrap;gap:1.2rem;display:flex}.badges{margin-top:2.4rem}.badges-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.8rem 1.6rem;margin-bottom:2.4rem;display:flex}.badges-profile{color:var(--brand);align-items:center;gap:.5rem;font-weight:500;transition:opacity .2s;display:inline-flex}.badges-profile:hover{opacity:.8}.badges-note{max-width:52ch;font-weight:200;font-size:var(--text-xs);opacity:.8}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.6rem;display:grid}@media (width<=380px){.badge-grid{grid-template-columns:1fr}}.badge-card a,.badge-card .badge-static{border:1px solid var(--background-light);border-radius:1.2rem;gap:1.6rem;height:100%;padding:1.6rem;transition:transform .2s,border-color .2s,background-color .2s;display:flex}.badge-card a:hover,.badge-card a:focus-visible{border-color:var(--brand);background:var(--background-light);transform:translateY(-4px)}.badge-static{cursor:default}.badge-img{object-fit:contain;flex-shrink:0;width:72px;height:72px}.badge-img-fallback{color:var(--brand);justify-content:center;align-items:center;display:flex}.badge-body{flex-direction:column;gap:.2rem;min-width:0;display:flex}.badge-name{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:700;line-height:1.25}.badge-meta{opacity:.7;font-size:1.3rem;font-weight:200}.badge-desc{font-size:var(--text-xs);opacity:.9;margin-top:.6rem;font-weight:200;line-height:1.45}.badge-verify{color:var(--brand);font-size:var(--text-xs);align-items:center;gap:.4rem;margin-top:1rem;font-weight:500;display:inline-flex}@media (prefers-reduced-motion:reduce){.badge-card a:hover,.badge-card a:focus-visible{transform:none}}.contact-wrapper{border-radius:1.2rem;max-width:700px;margin:auto}.contact-title{font-family:var(--font-heading);font-size:var(--text-2xl);text-align:center;letter-spacing:-.02em;font-weight:800;line-height:1}.contact-title span{color:var(--brand)}@media (width<=768px){.contact-title{font-size:var(--text-xl)}}@media (width<=360px){.contact-title{font-size:var(--text-lg)}}.contact-copy{text-align:center;margin:2.4rem 0;font-weight:200}.contact-copy a{color:var(--brand);opacity:1;border-bottom:1.5px solid var(--background);font-weight:400;transition:all .2s}.contact-copy a:hover{border-bottom:1.5px solid var(--brand)}.contact-links{margin-bottom:1rem}.contact-link{width:fit-content;font-size:var(--text-md);justify-content:center;align-items:center;gap:.8rem;margin:auto auto .5rem;font-weight:500;transition:all .2s;display:flex}.contact-link:hover{color:var(--brand)}@media (width<=480px){.contact-link{font-size:var(--text-sm)}}.footer{background:var(--bg-opaque);flex-wrap:wrap;justify-content:space-between;gap:1rem;width:100%;padding:2rem;display:flex}.footer p{font-size:var(--text-xs);opacity:.5}.footer ul{gap:2rem;display:flex}.footer li{font-size:var(--text-xs);opacity:.5;transition:all .2s}.footer li:hover{opacity:1}@media (width<=768px){.footer{justify-content:center;align-items:center}}.legal{flex-direction:column;gap:2rem;max-width:1280px;margin:auto;padding:9.6rem;display:flex;overflow:hidden}.legal h2{font-family:var(--font-heading);font-size:var(--text-lg);margin-top:4rem;font-weight:700}.legal h1{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:800}.legal h1 span,.legal h2 span{color:var(--brand)}@media (width<=768px){.legal h2{font-size:var(--text-md)}}.legal p,.legal li{font-weight:200}.legal ul{flex-direction:column;gap:.8rem;padding-left:2.4rem;list-style:outside;display:flex}.legal a{color:var(--brand);transition:all .2s}.legal a:hover{color:var(--brand);opacity:.8}@media (width<=768px){.legal{padding:7rem 3rem}}@media (width<=480px){.legal{max-width:360px;font-size:var(--text-xs);padding:3rem 1.5rem}}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(60px)}.reveal.reveal-visible{opacity:1;transform:translateY(0)}.reveal-line.scroll-reveal .reveal-line-inner,.reveal-line.scroll-reveal .reveal-curtain{opacity:0;animation:none;transform:translateY(75px)}.reveal-line.scroll-reveal .reveal-curtain{transform-origin:0;transform:scaleX(1)}.reveal-line.scroll-reveal.reveal-visible .reveal-line-inner{animation:.6s forwards lineUp}.reveal-line.scroll-reveal.reveal-visible .reveal-curtain{animation:.6s forwards curtainAway}@media (prefers-reduced-motion:reduce){.reveal,.reveal-line .reveal-line-inner,.fade-up,.hero-portrait,.hero-portrait-bracket{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}.reveal-line .reveal-curtain{transition:none!important;animation:none!important;transform:scaleX(0)!important}}body.cursor-none,body.cursor-none *{cursor:none!important}.cursor-dot,.cursor-follow{pointer-events:none;z-index:9999;opacity:0;will-change:transform;border-radius:50%;transition:opacity .2s,width .2s,height .2s,background-color .2s;position:fixed;top:0;left:0}.cursor-dot{background:var(--brand);width:8px;height:8px}.cursor-follow{border:1.5px solid var(--brand);background:color-mix(in srgb, var(--brand) 10%, transparent);width:36px;height:36px}.cursor-dot.cursor-active,.cursor-follow.cursor-active{opacity:1}.cursor-follow.cursor-hover{background:color-mix(in srgb, var(--brand) 16%, transparent);width:56px;height:56px}@media (width<=768px),(pointer:coarse){.cursor-dot,.cursor-follow{display:none}}
