@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_e10f34;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_Fallback_e10f34;src:local("Arial");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:107.06%}.__className_e10f34{font-family:__Inter_e10f34,__Inter_Fallback_e10f34;font-style:normal}.__variable_e10f34{--font-inter:"__Inter_e10f34","__Inter_Fallback_e10f34"}@font-face{font-family:__Fraunces_acf54a;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Fraunces_acf54a;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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_acf54a;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Fraunces_acf54a;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Fraunces_acf54a;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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_acf54a;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Fraunces_acf54a;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Fraunces_acf54a;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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_acf54a;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Fraunces_acf54a;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Fraunces_acf54a;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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_acf54a;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Fraunces_Fallback_acf54a;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_acf54a{font-family:__Fraunces_acf54a,__Fraunces_Fallback_acf54a;font-style:normal}.__variable_acf54a{--font-display:"__Fraunces_acf54a","__Fraunces_Fallback_acf54a"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}:root{--color-bg:#fff;--color-bg-secondary:#fafafa;--color-bg-tertiary:#f5f5f5;--color-text:#1a1a1a;--color-text-muted:#555;--color-text-subtle:#666;--color-border:#e8e8e8;--color-accent:#1a1a1a;--font-body:var(--font-inter),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--space-2xl:6rem;--space-3xl:8rem;--space-section:clamp(6rem,12vw,10rem);--max-width:1200px;--content-padding:clamp(1.5rem,5vw,4rem);--content-max:680px;--transition-fast:150ms ease;--transition-base:300ms ease;--transition-slow:500ms ease;--transition-premium:600ms cubic-bezier(0.16,1,0.3,1)}body,html{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-weight:var(--weight-light);font-size:17px;line-height:1.7;min-height:100vh}body{overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-regular);line-height:1.15;letter-spacing:-.01em;color:var(--color-text)}h1{font-size:clamp(2rem,5vw,3rem)}.display-xl{font-size:clamp(3.5rem,12vw,8rem);letter-spacing:-.03em;line-height:1}.display-lg,.display-xl{font-family:var(--font-display);font-weight:var(--weight-regular)}.display-lg{font-size:clamp(2.5rem,7vw,5rem);letter-spacing:-.02em;line-height:1.1}.display-md{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.25rem);font-weight:var(--weight-regular);letter-spacing:-.01em}.text-lg{font-size:1.25rem;line-height:1.7;font-weight:var(--weight-light)}.text-body{font-size:1rem;line-height:1.8;color:var(--color-text-muted)}.text-small{font-size:.875rem;letter-spacing:.01em}.text-label,.text-small{color:var(--color-text-subtle)}.text-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;font-weight:var(--weight-medium)}a{color:inherit;text-decoration:none;transition:color var(--transition-fast);&:hover{color:var(--color-accent)}}.link-underline{position:relative;display:inline-block;&:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:currentColor;transition:width var(--transition-base)}&:hover:after{width:100%}}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--content-padding)}.section{padding:var(--space-section) 0}.section-full{min-height:100vh;display:flex;flex-direction:column;justify-content:center}.header{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--space-lg) 0;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow-anchor:none}.header-inner{display:flex;justify-content:space-between;align-items:center}.header-logo{font-family:var(--font-display);font-size:1.125rem;font-weight:var(--weight-regular);letter-spacing:.01em}.header-nav{display:flex;gap:var(--space-lg);& a{font-size:.9rem;font-weight:var(--weight-regular);color:var(--color-text-muted);transition:color var(--transition-fast);letter-spacing:.02em;&.active,&:hover{color:var(--color-text)}}}.hero{min-height:100vh;min-height:100dvh;display:flex;align-items:center;padding:var(--space-3xl) 0;position:relative}.hero-container{display:flex;justify-content:space-between;align-items:flex-end;width:100%;@media (max-width:768px){flex-direction:column;align-items:flex-start;justify-content:center;min-height:100%;padding-bottom:calc(var(--space-3xl) + 80px)}}.hero-content{max-width:700px}.hero-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--color-text-subtle);font-weight:var(--weight-medium)}.hero-label,.hero-name{margin-bottom:var(--space-lg)}.hero-name{font-family:var(--font-display);font-size:clamp(4rem,15vw,10rem);font-weight:var(--weight-regular);line-height:.9;letter-spacing:-.03em}.hero-tagline{font-size:.9rem;color:var(--color-text-subtle);letter-spacing:.05em}.scroll-indicator{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);background:none;border:none;padding:0;cursor:pointer;transition:opacity .3s ease;&:hover{opacity:.6}@media (max-width:768px){position:absolute;bottom:calc(var(--space-xl) + env(safe-area-inset-bottom, 0px));left:0;right:0;margin-left:auto;margin-bottom:0;margin-right:auto;margin-top:0;width:-moz-fit-content;width:fit-content}}.scroll-text{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--color-text-subtle);writing-mode:vertical-rl;text-orientation:mixed}.scroll-line{width:1px;height:60px;background:var(--color-border);position:relative;overflow:hidden}.scroll-dot{width:3px;height:3px;background:var(--color-text);border-radius:50%;position:absolute;left:-1px;animation:scrollDot 2s ease-in-out infinite}@keyframes scrollDot{0%,to{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.featured-section{padding:0}.featured-card{display:block;position:relative;width:100%;min-height:80vh;overflow:hidden}.featured-card-image{position:absolute;inset:0}.featured-image{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}.featured-card:hover .featured-image{transform:scale(1.03)}.featured-placeholder{width:100%;height:100%;background:var(--color-bg-tertiary)}.featured-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#0000 0,#0000 40%,#000000b3)}.featured-content{position:absolute;bottom:0;left:0;right:0;padding:var(--space-2xl) var(--content-padding);display:flex;align-items:flex-end;gap:var(--space-xl);color:#fff;@media (max-width:768px){flex-direction:column;align-items:flex-start;gap:var(--space-lg)}}.featured-number{font-family:var(--font-display);font-size:clamp(4rem,10vw,8rem);font-weight:var(--weight-regular);line-height:1;opacity:.3;letter-spacing:-.02em}.featured-info{flex:1 1}.featured-client{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;opacity:.7;margin-bottom:var(--space-sm)}.featured-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:var(--weight-regular);line-height:1.1;margin-bottom:var(--space-sm);letter-spacing:-.01em}.featured-description{font-size:1rem;opacity:.8;max-width:500px;line-height:1.6}.featured-cta{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;opacity:0;transform:translateY(10px);transition:all var(--transition-base);& svg{transition:transform var(--transition-fast)}}.featured-card:hover .featured-cta{opacity:1;transform:translateY(0)}.featured-card:hover .featured-cta svg{transform:translate(3px,-3px)}.projects-section{padding:var(--space-section) 0}.projects-header{margin-bottom:var(--space-xl);display:flex;justify-content:space-between;align-items:flex-end}.projects-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-lg);gap:var(--space-lg);@media (min-width:768px){grid-template-columns:repeat(2,1fr)}}.projects-grid-new{display:grid;grid-template-columns:1fr;grid-gap:var(--space-xl);gap:var(--space-xl);@media (min-width:768px){grid-template-columns:repeat(2,1fr);gap:var(--space-2xl) var(--space-xl)}}.home-cta{background:var(--color-bg);content-visibility:auto;contain-intrinsic-size:0 400px}.home-cta-inner{position:relative}.home-cta-line{height:1px;background:var(--color-border)}.home-cta-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl);padding:var(--space-3xl) 0;@media (max-width:768px){flex-direction:column;text-align:center;padding:var(--space-2xl) 0}}.home-cta-index{font-size:.75rem;letter-spacing:.1em;color:var(--color-text-subtle);flex-shrink:0;@media (max-width:768px){display:none}}.home-cta-headline{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:var(--weight-regular);letter-spacing:-.02em;line-height:1;flex-grow:1;text-align:center}.home-cta-qmark{font-style:italic;color:var(--color-text-muted)}.home-cta-link{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0;position:relative;padding:var(--space-sm) 0}.home-cta-link-text{font-family:var(--font-display);font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:var(--weight-regular);letter-spacing:-.01em;position:relative;&:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--color-text);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.16,1,.3,1)}}.home-cta-link:hover .home-cta-link-text:after{transform:scaleX(1);transform-origin:left}.home-cta-link-arrow{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--color-border);border-radius:50%;transition:all .4s cubic-bezier(.16,1,.3,1);& svg{transition:transform .4s cubic-bezier(.16,1,.3,1)}}.home-cta-link:hover .home-cta-link-arrow{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}.home-cta-link:hover .home-cta-link-arrow svg{transform:translate(2px,-2px)}.project-card-new{display:block;position:relative;cursor:pointer}.card-image-wrapper{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--color-bg-secondary)}.card-image{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1),filter .6s ease;will-change:transform}.project-card-new:hover .card-image{transform:scale(1.04);filter:brightness(.92)}.card-placeholder{width:100%;height:100%;background:var(--color-bg-tertiary)}.card-arrow{position:absolute;top:var(--space-md);right:var(--space-md);width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;opacity:0;transform:translate(10px,-10px) rotate(-45deg);transition:all .5s cubic-bezier(.16,1,.3,1);color:var(--color-text);box-shadow:0 4px 20px #0000001a}.project-card-new:hover .card-arrow{opacity:1;transform:translate(0) rotate(0deg)}.card-arrow svg{transition:transform .3s ease}.project-card-new:hover .card-arrow svg{transform:translate(2px,-2px)}.card-content{padding-top:var(--space-md)}.card-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:6px}.card-number{font-size:.8rem;color:var(--color-text-subtle);font-weight:var(--weight-medium)}.card-separator{color:var(--color-border);font-size:.8rem}.card-client{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-subtle)}.card-title{font-family:var(--font-display);font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:var(--weight-regular);color:var(--color-text);line-height:1.3;transition:color var(--transition-fast)}.card-line{position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--color-text);transition:width .6s cubic-bezier(.16,1,.3,1)}.project-card-new:hover .card-line{width:60px}.project-card-new:hover .card-title{color:var(--color-text)}.project-card{position:relative;display:block;overflow:hidden;background:var(--color-bg-secondary)}.project-card-image-wrapper{position:relative;aspect-ratio:16/10;overflow:hidden;& img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-premium)}.project-card:hover & img{transform:scale(1.02)}}.project-card-content{padding:var(--space-md) 0}.project-card-client{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-subtle);margin-bottom:var(--space-xs)}.project-card-title{font-family:var(--font-display);font-size:1.5rem;font-weight:var(--weight-regular);color:var(--color-text);margin-bottom:var(--space-xs);transition:color var(--transition-fast);.project-card:hover &{color:var(--color-text-muted)}}.project-card-description{font-size:.95rem;color:var(--color-text-muted);line-height:1.6}.project-card-overlay{position:absolute;inset:0;background:linear-gradient(0deg,#000c 0,#0000 50%);opacity:0;transition:opacity var(--transition-base);display:flex;flex-direction:column;justify-content:flex-end;padding:var(--space-lg);.project-card:hover &{opacity:1}}.project-card-category{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:#ffffffb3;margin-top:var(--space-xs)}.project-hero{padding-top:calc(var(--space-3xl) + 80px);padding-bottom:var(--space-xl);margin-bottom:var(--space-xl)}.project-meta{display:flex;flex-wrap:wrap;gap:var(--space-xl);margin-bottom:var(--space-lg)}.project-meta-item{& .text-label{margin-bottom:var(--space-xs)}& .text-body{color:var(--color-text);font-weight:var(--weight-regular)}}.project-title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4.5rem);font-weight:var(--weight-regular);margin-bottom:var(--space-md);letter-spacing:-.02em}.project-description{font-size:1.25rem;font-weight:var(--weight-light);color:var(--color-text-muted);max-width:var(--content-max);line-height:1.7}.project-link{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-lg);padding:var(--space-sm) var(--space-md);background-color:var(--color-text);color:var(--color-bg);font-family:var(--font-body);font-size:.875rem;font-weight:var(--weight-medium);letter-spacing:.02em;text-decoration:none;border-radius:2px;transition:all var(--transition-base);&:hover{background-color:var(--color-text-muted);transform:translateY(-2px)}& svg{transition:transform var(--transition-fast)}&:hover svg{transform:translate(2px,-2px)}}.project-cover{width:100%;max-width:1400px;margin:0 auto var(--space-section);padding:0 var(--content-padding);& img{width:100%;height:auto}}.project-content{max-width:100%;margin:0 auto;padding:0}.project-block{margin-bottom:var(--space-lg)}.project-block-text{max-width:720px;margin:0 auto;padding:0 var(--content-padding);font-size:1.125rem;line-height:1.9;color:var(--color-text-muted);margin-bottom:var(--space-xl);& p{margin-bottom:var(--space-md)}& b,& strong{font-weight:var(--weight-semibold);color:var(--color-text)}& em,& i{font-style:italic}& u{text-decoration:underline;text-underline-offset:3px}& h2{font-size:1.75rem;font-weight:var(--weight-semibold);margin:var(--space-xl) 0 var(--space-md);line-height:1.3}& h2,& h3{color:var(--color-text)}& h3{font-size:1.35rem;font-weight:var(--weight-medium);margin:var(--space-lg) 0 var(--space-sm);line-height:1.4}& ol,& ul{margin:var(--space-md) 0;padding-left:1.5em}& li{margin-bottom:.5em}& ul li{list-style-type:disc}& ol li{list-style-type:decimal}& a{color:var(--color-text);text-decoration:underline;text-underline-offset:3px;transition:opacity .2s}& a:hover{opacity:.7}& blockquote{border-left:3px solid var(--color-text-muted);padding-left:var(--space-md);margin:var(--space-lg) 0;font-style:italic;opacity:.9}& hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-xl) 0}}.project-block-image{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--content-padding);& img{width:100%;height:auto;display:block}}.project-block-caption{max-width:720px;margin:var(--space-sm) auto 0;padding:0 var(--content-padding);font-size:.875rem;color:var(--color-text-subtle);text-align:center;font-style:italic}.project-block-video{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--content-padding);& video{width:100%;height:auto;display:block}}.project-nav{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:var(--space-section) auto 0;padding:var(--space-2xl) var(--content-padding);border-top:1px solid var(--color-border);@media (max-width:768px){flex-direction:column;gap:var(--space-xl);text-align:center}}.project-nav-link{display:flex;flex-direction:column;gap:var(--space-xs);max-width:280px;@media (max-width:768px){max-width:100%;align-items:center}&:hover .project-nav-title{color:var(--color-text)}}.project-nav-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-subtle)}.project-nav-title{font-family:var(--font-display);font-size:1.25rem;font-weight:var(--weight-regular);color:var(--color-text-muted);transition:color var(--transition-fast)}.project-nav-center{font-size:.875rem;color:var(--color-text-subtle)}.about-hero{padding-top:calc(var(--space-3xl) + 80px);padding-bottom:var(--space-xl)}.about-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--color-text-subtle);margin-bottom:var(--space-md)}.about-intro-section{padding-bottom:var(--space-section)}.about-intro-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-2xl);gap:var(--space-2xl);@media (min-width:900px){grid-template-columns:2fr 1fr;gap:var(--space-3xl)}}.about-lead{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--weight-regular);line-height:1.5;color:var(--color-text);margin-bottom:var(--space-xl)}.about-paragraphs{font-size:1.05rem;line-height:1.9;color:var(--color-text-muted);& p{margin-bottom:var(--space-md)}}.about-intro-aside{display:flex;flex-direction:column;gap:var(--space-lg);@media (min-width:900px){padding-top:var(--space-lg)}}.about-status{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:.875rem;color:var(--color-text);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border-radius:100px;width:-moz-fit-content;width:fit-content}.about-status-dot{width:8px;height:8px;background:#22c55e;border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.about-location{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;color:var(--color-text-muted)}.about-clients-section,.about-education-section,.about-experience-section,.about-expertise-section,.about-tools-section{padding:var(--space-2xl) 0;border-top:1px solid var(--color-border)}.about-section-title{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:var(--weight-regular);margin-bottom:var(--space-xl);letter-spacing:-.02em}.about-expertise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1px;gap:1px;background:var(--color-border);border:1px solid var(--color-border)}.about-expertise-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);background:var(--color-bg)}.about-expertise-name{font-size:1rem;color:var(--color-text)}.about-expertise-level{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-subtle)}.about-tools-grid{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.about-tool{font-size:.875rem;color:var(--color-text);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:100px;transition:all var(--transition-fast);&:hover{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}}.about-timeline{display:flex;flex-direction:column}.about-timeline-item{display:grid;grid-template-columns:180px 1fr;grid-gap:var(--space-xl);gap:var(--space-xl);padding:var(--space-xl) 0;border-bottom:1px solid var(--color-border);@media (max-width:768px){grid-template-columns:1fr;gap:var(--space-md)}&:last-child{border-bottom:none}}.about-timeline-date{font-size:.875rem;color:var(--color-text-subtle);font-weight:var(--weight-medium)}.about-timeline-content{& h3{font-family:var(--font-display);font-size:1.25rem;font-weight:var(--weight-regular);margin-bottom:var(--space-xs)}& p{font-size:.95rem;color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-sm)}}.about-timeline-company{font-size:.875rem!important;color:var(--color-text-subtle)!important;margin-bottom:var(--space-sm)!important}.about-timeline-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm);& span{font-size:.75rem;color:var(--color-text-muted);padding:4px 12px;background:var(--color-bg-secondary);border-radius:100px}}.about-education-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:var(--space-xl);gap:var(--space-xl)}.about-education-item{display:flex;gap:var(--space-lg)}.about-education-year{font-family:var(--font-display);font-size:2.5rem;font-weight:var(--weight-regular);color:var(--color-text-subtle);line-height:1}.about-education-content{& h3{font-family:var(--font-display);font-size:1.125rem;font-weight:var(--weight-regular);margin-bottom:var(--space-xs)}& p{font-size:.9rem;color:var(--color-text-muted);line-height:1.5}}.about-education-desc{margin-top:var(--space-xs);font-size:.85rem!important;color:var(--color-text-subtle)!important}.about-clients-intro{font-size:1.05rem;color:var(--color-text-muted);margin-bottom:var(--space-xl)}.about-clients-grid{display:flex;flex-wrap:wrap;gap:var(--space-md) var(--space-xl)}.about-client{font-family:var(--font-display);font-size:clamp(1.25rem,2.5vw,1.5rem);color:var(--color-text-subtle);transition:color var(--transition-fast);&:hover{color:var(--color-text)}}.about-cta-section{padding:var(--space-section) 0;background:var(--color-bg-secondary);margin-top:var(--space-2xl)}.about-cta{text-align:center;max-width:600px;margin:0 auto}.about-cta-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:var(--weight-regular);margin-bottom:var(--space-md)}.about-cta-text{font-size:1.05rem;color:var(--color-text-muted);margin-bottom:var(--space-xl)}.about-cta-links{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg)}.about-cta-button{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--color-text);color:var(--color-bg);font-size:.875rem;font-weight:var(--weight-medium);letter-spacing:.02em;border-radius:2px;transition:all var(--transition-base);&:hover{background:var(--color-text-muted);transform:translateY(-2px)}}.about-social-links{display:flex;gap:var(--space-md)}.about-social-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted);transition:all var(--transition-fast);&:hover{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}}.contact-page{display:flex;flex-direction:column;min-height:100vh}.contact-hero{padding-top:calc(var(--space-3xl) + 80px);padding-bottom:var(--space-2xl);@media (max-width:768px){padding-top:calc(var(--space-2xl) + 60px);padding-bottom:var(--space-xl)}}.contact-hero-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-xl);gap:var(--space-xl);@media (min-width:900px){grid-template-columns:2fr 1fr;gap:var(--space-3xl);align-items:end}}.contact-hero-main{max-width:700px}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--color-text-subtle);margin-bottom:var(--space-md)}.contact-lead{font-size:clamp(1.1rem,2vw,1.25rem);color:var(--color-text-muted);line-height:1.8;margin-top:var(--space-xl)}.contact-hero-aside{display:flex;flex-direction:column;gap:var(--space-md);align-items:flex-start;@media (min-width:900px){align-items:flex-end}}.contact-status{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:.875rem;color:var(--color-text);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border-radius:100px}.contact-status-dot{width:8px;height:8px;background:#22c55e;border-radius:50%;animation:pulse 2s ease-in-out infinite}.contact-location{display:flex;align-items:center;gap:var(--space-xs);font-size:.875rem;color:var(--color-text-muted)}.contact-bio{padding:var(--space-2xl) 0;border-top:1px solid var(--color-border)}.contact-bio-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-2xl);gap:var(--space-2xl);@media (min-width:900px){grid-template-columns:1.5fr 1fr;gap:var(--space-3xl)}}.contact-bio-text{font-size:1.05rem;line-height:1.9;color:var(--color-text-muted);& p{margin-bottom:var(--space-md)}}.contact-section-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-subtle);margin-bottom:var(--space-md);font-family:var(--font-body);font-weight:var(--weight-medium)}.contact-bio-clients{position:relative;overflow:hidden;margin-top:var(--space-lg)}.contact-clients-marquee{position:relative;width:100%;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 10%,#000 90%,#0000);-webkit-mask-image:linear-gradient(90deg,#0000,#000 10%,#000 90%,#0000)}.contact-clients-track{display:flex;gap:var(--space-xl);width:max-content;animation:marquee 25s linear infinite;padding:var(--space-sm) 0}.contact-clients-marquee:hover .contact-clients-track{animation-play-state:paused}.contact-client-item{font-family:var(--font-display);font-size:clamp(1.25rem,3vw,1.75rem);font-weight:var(--weight-regular);color:var(--color-text-subtle);white-space:nowrap;transition:all var(--transition-base);cursor:default;position:relative;&:after{content:"·";margin-left:var(--space-xl);color:var(--color-border)}&:hover{color:var(--color-text);transform:translateY(-2px)}}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.contact-skills{padding:var(--space-2xl) 0;border-top:1px solid var(--color-border)}.contact-skills-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-2xl);gap:var(--space-2xl);@media (min-width:768px){grid-template-columns:2fr 1fr;gap:var(--space-3xl);align-items:start}>div:last-child{@media (min-width:768px){position:sticky;top:calc(var(--space-lg) * 2 + 2rem)}}}.expertise-accordion{display:flex;flex-direction:column}.expertise-accordion-item{border-bottom:1px solid var(--color-border)}.expertise-accordion-header{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md) 0;background:none;border:none;cursor:pointer;text-align:left;transition:var(--transition-base);&:hover{.expertise-accordion-number{color:var(--color-text)}}}.expertise-accordion-number{font-family:var(--font-display);font-size:1.25rem;font-weight:var(--weight-regular);color:var(--color-text-subtle);min-width:2rem;transition:var(--transition-base)}.expertise-accordion-title{flex:1 1;font-size:1.1rem;font-weight:var(--weight-medium);color:var(--color-text)}.expertise-accordion-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color-text-muted);transition:var(--transition-base)}.expertise-accordion-icon svg{transition:transform var(--transition-base)}.expertise-accordion-item.is-open .expertise-accordion-icon svg{transform:rotate(45deg)}.expertise-accordion-item.is-open .expertise-accordion-number{color:var(--color-text)}.expertise-accordion-content{max-height:0;overflow:hidden;transition:max-height var(--transition-base),padding var(--transition-base)}.expertise-accordion-item.is-open .expertise-accordion-content{max-height:200px;padding-bottom:var(--space-md)}.expertise-accordion-content p{padding-left:calc(2rem + var(--space-md));font-size:.95rem;line-height:1.7;color:var(--color-text-muted)}.contact-tools-inline{font-family:var(--font-display);font-size:1.1rem;line-height:1.9;color:var(--color-text-muted);font-weight:var(--weight-regular)}.contact-tools-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.contact-tool{font-size:.875rem;color:var(--color-text);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:100px;transition:all var(--transition-base);cursor:default;position:relative;overflow:hidden;&:before{content:"";position:absolute;inset:0;background:var(--color-text);transform:translateY(100%);transition:transform var(--transition-base);z-index:-1}&:hover{color:var(--color-bg);border-color:var(--color-text);transform:translateY(-3px);box-shadow:0 6px 20px #0000001a}&:hover:before{transform:translateY(0)}}.contact-stats{padding:var(--space-2xl) 0;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);display:none}.contact-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-xl);gap:var(--space-xl);text-align:center;@media (min-width:768px){grid-template-columns:repeat(4,1fr);gap:var(--space-2xl)}}.contact-stat-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);position:relative;@media (min-width:768px){&:not(:last-child):after{content:"";position:absolute;right:calc(var(--space-2xl) / -2);top:50%;transform:translateY(-50%);width:1px;height:60%;background:linear-gradient(to bottom,#0000,var(--color-border) 20%,var(--color-border) 80%,#0000)}}}.contact-stat-number{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:var(--weight-regular);color:var(--color-text);line-height:1;letter-spacing:-.03em}.contact-stat-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-subtle)}.contact-experience{padding:var(--space-2xl) 0;border-top:1px solid var(--color-border)}.contact-section-title{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:var(--weight-regular);margin-bottom:var(--space-xl);letter-spacing:-.02em}.contact-timeline{display:flex;flex-direction:column;position:relative;&:before{content:"";position:absolute;left:195px;top:var(--space-xl);bottom:var(--space-xl);width:1px;background:linear-gradient(to bottom,#0000,var(--color-border) 10%,var(--color-border) 90%,#0000);@media (max-width:768px){display:none}}}.contact-timeline-item{display:grid;grid-template-columns:1fr;grid-gap:var(--space-md);gap:var(--space-md);padding:var(--space-lg) 0;position:relative;@media (min-width:768px){grid-template-columns:180px 1fr;gap:var(--space-xl);padding-left:20px}&:before{content:"";position:absolute;left:191px;top:calc(var(--space-lg) + var(--space-md) + 4px);width:9px;height:9px;background:var(--color-bg);border:2px solid var(--color-text-subtle);border-radius:50%;transition:all var(--transition-base);z-index:1;@media (max-width:768px){display:none}}&:hover:before{background:var(--color-text);border-color:var(--color-text)}&:hover .contact-timeline-content{background:var(--color-bg-secondary);border-color:#0000}&:hover .contact-timeline-date{color:var(--color-text)}&:last-child{border-bottom:none}}.contact-timeline-date{font-size:.875rem;color:var(--color-text-subtle);font-weight:var(--weight-medium);transition:color var(--transition-base);@media (min-width:768px){padding-top:var(--space-md)}}.contact-timeline-content{padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);transition:background var(--transition-base),border-color var(--transition-base);& h3{font-family:var(--font-display);font-size:1.25rem;font-weight:var(--weight-regular);margin-bottom:var(--space-xs)}& p{font-size:.95rem;color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-sm)}}.contact-timeline-company{font-size:.875rem!important;color:var(--color-text-subtle)!important}.contact-timeline-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm);& span{font-size:.75rem;color:var(--color-text-muted);padding:4px 12px;background:var(--color-bg-secondary);border-radius:100px;transition:all var(--transition-fast);cursor:default;&:hover{background:var(--color-text);color:var(--color-bg)}}}.contact-education{padding:var(--space-2xl) 0;border-top:1px solid var(--color-border)}.contact-education-grid{display:flex;flex-direction:column;gap:0}.contact-education-item{display:grid;grid-template-columns:120px 1fr;grid-template-rows:auto auto;grid-gap:var(--space-xs) var(--space-xl);gap:var(--space-xs) var(--space-xl);padding:var(--space-lg) 0;border-bottom:1px solid var(--color-border);transition:all var(--transition-base);@media (max-width:600px){grid-template-columns:1fr;gap:var(--space-xs)}&:first-child{padding-top:0}&:last-child{border-bottom:none;padding-bottom:0}&:hover .contact-education-year{color:var(--color-text)}}.contact-education-year{grid-row:1/3;font-size:1rem;color:var(--color-text-subtle);transition:color var(--transition-base);padding-top:.15em;@media (max-width:600px){grid-row:auto;font-size:.85rem;margin-bottom:var(--space-xs)}}.contact-education-title,.contact-education-year{font-family:var(--font-display);font-weight:var(--weight-regular)}.contact-education-title{font-size:1.25rem;color:var(--color-text);line-height:1.35;margin:0;@media (max-width:480px){font-size:1.1rem}}.contact-education-institution{font-size:.9rem;color:var(--color-text-muted);line-height:1.5;margin:0;@media (max-width:480px){font-size:.85rem}}.contact-cta{padding:var(--space-section) 0;background:var(--color-bg-secondary);margin-top:var(--space-2xl)}.contact-cta-content{max-width:600px;margin:0 auto;text-align:center}.contact-cta-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:var(--weight-regular);margin-bottom:var(--space-md)}.contact-cta-text{font-size:1.05rem;color:var(--color-text-muted);margin-bottom:var(--space-xl);line-height:1.7}.contact-email-link{display:inline-block;font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2.25rem);font-weight:var(--weight-regular);color:var(--color-text);position:relative;letter-spacing:-.01em;transition:color var(--transition-fast);margin-bottom:var(--space-xl);&:after{content:"";position:absolute;bottom:-4px;left:0;width:100%;height:2px;background:var(--color-text);transform:scaleX(0);transform-origin:right;transition:transform var(--transition-base)}&:hover{color:var(--color-text-muted)}&:hover:after{transform:scaleX(1);transform-origin:left}}.contact-socials{gap:var(--space-md);margin-bottom:var(--space-2xl)}.contact-social,.contact-socials{display:flex;justify-content:center}.contact-social{align-items:center;width:48px;height:48px;border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted);transition:all var(--transition-fast);&:hover{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}}.contact-info-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xl)}.contact-info-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.contact-info-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-subtle)}.contact-info-value{font-size:.95rem;color:var(--color-text)}.footer{padding:var(--space-xl) 0;border-top:1px solid var(--color-border);margin-top:auto}.footer-inner{display:flex;justify-content:space-between;align-items:center;@media (max-width:768px){flex-direction:column;gap:var(--space-sm);text-align:center}}.footer-text{font-size:.8rem;color:var(--color-text-subtle);letter-spacing:.03em}@keyframes fadeUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .8s ease forwards}.animate-fade-up{animation:fadeUp 1s cubic-bezier(.16,1,.3,1) forwards}.animate-scale-in{animation:scaleIn .8s ease forwards}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.reveal,[class*=animate-]{opacity:0}.reveal{transform:translateY(30px);transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1);&.visible{opacity:1;transform:translateY(0)}}.link-hover{position:relative;display:inline-block;&:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.16,1,.3,1)}&:hover:after{transform:scaleX(1);transform-origin:left}}.btn-press{transition:transform .2s ease,box-shadow .2s ease;&:hover{transform:translateY(-2px)}&:active{transform:translateY(0) scale(.98)}}.icon-hover-rotate{transition:transform .4s cubic-bezier(.16,1,.3,1);&:hover{transform:rotate(45deg)}}.hover-lift{transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease;&:hover{transform:translateY(-4px);box-shadow:0 20px 40px #0000001a}}.magnetic{transition:transform .3s cubic-bezier(.16,1,.3,1)}.header-nav a{position:relative;&:after{content:"";position:absolute;bottom:-4px;left:0;width:100%;height:1px;background:var(--color-text);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.16,1,.3,1)}&.active:after,&:hover:after{transform:scaleX(1);transform-origin:left}}.home-cta-link{transition:gap .4s cubic-bezier(.16,1,.3,1);&:hover{gap:var(--space-lg)}&:hover .home-cta-link-arrow{transform:translate(4px,-4px)}}.home-cta-link-arrow{transition:transform .4s cubic-bezier(.16,1,.3,1)}.footer a{position:relative;&:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s cubic-bezier(.16,1,.3,1)}&:hover:after{transform:scaleX(1);transform-origin:left}}.contact-social-link{transition:color .3s ease,transform .3s cubic-bezier(.16,1,.3,1);&:hover{transform:translateY(-2px)}&:hover svg{transform:scale(1.1)}svg{transition:transform .3s cubic-bezier(.16,1,.3,1)}}.legal-page{padding-top:calc(var(--space-3xl) + 80px);padding-bottom:var(--space-section);min-height:100vh}.legal-title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:var(--weight-regular);margin-bottom:var(--space-2xl);letter-spacing:-.02em}.legal-content{max-width:800px}.legal-section{margin-bottom:var(--space-2xl)}.legal-section h2{font-family:var(--font-display);font-size:1.5rem;font-weight:var(--weight-regular);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.legal-section h3{font-family:var(--font-body);font-size:1rem;font-weight:var(--weight-semibold);margin-top:var(--space-lg);margin-bottom:var(--space-sm);color:var(--color-text)}.legal-section p{font-size:1rem;line-height:1.8;color:var(--color-text-muted);margin-bottom:var(--space-md)}.legal-section ul{margin:var(--space-md) 0;padding-left:1.5em}.legal-section li{font-size:1rem;line-height:1.8;color:var(--color-text-muted);margin-bottom:.5em;list-style-type:disc}.legal-section a{color:var(--color-text);text-decoration:underline;text-underline-offset:3px}.legal-section a:hover{opacity:.7}.legal-update{font-size:.875rem;color:var(--color-text-subtle);margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border);max-width:800px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-lg);color:var(--color-text-muted)}@supports (padding-top:env(safe-area-inset-top)){.header{padding-top:max(var(--space-lg),env(safe-area-inset-top))}.footer{padding-bottom:max(var(--space-xl),env(safe-area-inset-bottom))}}@media (pointer:coarse){.about-skill,.contact-social-link,.header-nav a,.project-nav-link{min-height:44px;display:inline-flex;align-items:center}}.contact-social-link,.header-nav a,.project-card{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html{-webkit-overflow-scrolling:touch}@media screen and (max-width:768px){input,select,textarea{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.maintenance-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:var(--space-xl)}.maintenance-content{text-align:center;max-width:500px}.maintenance-logo{font-size:1.25rem;letter-spacing:.01em;margin-bottom:var(--space-3xl)}.maintenance-logo,.maintenance-title{font-family:var(--font-display);font-weight:var(--weight-regular);color:var(--color-text)}.maintenance-title{font-size:clamp(2.5rem,8vw,4rem);letter-spacing:-.02em;line-height:1.1;margin-bottom:var(--space-lg)}.maintenance-text{font-size:1.1rem;line-height:1.7;color:var(--color-text-muted);margin-bottom:var(--space-2xl)}.maintenance-contact{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg)}.maintenance-email{font-family:var(--font-display);font-size:1.25rem;color:var(--color-text);position:relative;&:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--color-text);transform:scaleX(0);transform-origin:right;transition:transform var(--transition-base)}&:hover:after{transform:scaleX(1);transform-origin:left}}.maintenance-socials{display:flex;gap:var(--space-md);& a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted);transition:all var(--transition-fast);&:hover{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}}}.password-protect{min-height:100vh;min-height:100dvh;padding:var(--space-xl);padding-top:calc(var(--space-3xl) + 80px);background:var(--color-bg);position:relative;overflow:hidden}.password-protect,.password-protect-bg{display:flex;align-items:center;justify-content:center}.password-protect-bg{position:absolute;inset:0;pointer-events:none;z-index:1}.password-protect-bg-text{font-family:var(--font-display);font-size:clamp(6rem,18vw,14rem);font-weight:var(--weight-regular);color:var(--color-bg-tertiary);line-height:1;letter-spacing:.05em;-webkit-user-select:none;user-select:none;white-space:nowrap;opacity:.5}.password-protect-card{max-width:420px;width:100%;text-align:center;position:relative;z-index:2}.password-protect-icon{width:72px;height:72px;margin:0 auto var(--space-lg);display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted);transition:all .4s cubic-bezier(.16,1,.3,1)}.password-protect-icon-loading{border-color:#0000;background:#0000}.password-protect-title{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:var(--weight-regular);letter-spacing:-.02em;margin-bottom:var(--space-xs);color:var(--color-text)}.password-protect-subtitle{font-family:var(--font-display);font-size:1.125rem;font-style:italic;color:var(--color-text-muted);margin-bottom:var(--space-lg)}.password-protect-text{font-size:.95rem;color:var(--color-text-subtle);line-height:1.7;margin-bottom:var(--space-xl)}.password-protect-form{display:flex;flex-direction:column;gap:var(--space-md)}.password-protect-input-wrapper{position:relative}.password-protect-input{width:100%;padding:var(--space-md) var(--space-lg);padding-left:calc(var(--space-lg) + 28px);font-size:1rem;font-family:var(--font-body);border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg);color:var(--color-text);transition:all .3s cubic-bezier(.16,1,.3,1);&:focus{outline:none;border-color:var(--color-text);box-shadow:0 0 0 3px #0000000d}&::placeholder{color:var(--color-text-subtle)}}.password-protect-input-error{border-color:#dc2626;&:focus{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}}.password-protect-input-icon{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-subtle);pointer-events:none}.password-protect-error,.password-protect-input-icon{display:flex;align-items:center;justify-content:center}.password-protect-error{gap:var(--space-xs);font-size:.9rem;color:#dc2626;padding:var(--space-sm) var(--space-md);background:#dc262614;border-radius:8px}.password-protect-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);font-size:1rem;font-family:var(--font-body);font-weight:var(--weight-medium);background:var(--color-text);color:var(--color-bg);border:none;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);&:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #00000026}&:active:not(:disabled){transform:translateY(0)}&:disabled{opacity:.5;cursor:not-allowed}& svg{flex-shrink:0}}.password-protect-button-spinner{display:inline-flex}.password-protect-back{display:inline-flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xl);font-size:.9rem;color:var(--color-text-subtle);text-decoration:none;transition:all .3s cubic-bezier(.16,1,.3,1);&:hover{color:var(--color-text)}& svg{transition:transform .3s cubic-bezier(.16,1,.3,1)}&:hover svg{transform:translateX(-4px)}}@media (max-width:640px){.password-protect{padding:var(--space-lg);padding-top:calc(var(--space-xl) + 60px)}.password-protect-bg-text{font-size:clamp(4rem,25vw,8rem)}.password-protect-icon{width:64px;height:64px}.password-protect-card{max-width:100%}}.not-found-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);padding-top:calc(var(--space-3xl) + 80px);position:relative;overflow:hidden}.not-found-content{text-align:center;max-width:500px;position:relative;z-index:2}.not-found-label{display:inline-block;font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--color-text-subtle);margin-bottom:var(--space-lg);font-weight:var(--weight-medium)}.not-found-title{font-family:var(--font-display);font-size:clamp(2.5rem,8vw,4rem);font-weight:var(--weight-regular);letter-spacing:-.02em;line-height:1.1;margin-bottom:var(--space-md);color:var(--color-text)}.not-found-description{font-size:1.1rem;line-height:1.7;color:var(--color-text-muted);margin-bottom:var(--space-xl)}.not-found-cta{display:inline-flex;align-items:center;gap:var(--space-md);transition:gap .4s cubic-bezier(.16,1,.3,1);&:hover{gap:var(--space-lg)}}.not-found-cta-text{font-family:var(--font-display);font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:var(--weight-regular);letter-spacing:-.01em;position:relative;&:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--color-text);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.16,1,.3,1)}}.not-found-cta:hover .not-found-cta-text:after{transform:scaleX(1);transform-origin:left}.not-found-cta-arrow{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--color-border);border-radius:50%;transition:all .4s cubic-bezier(.16,1,.3,1);& svg{transition:transform .4s cubic-bezier(.16,1,.3,1)}}.not-found-cta:hover .not-found-cta-arrow{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}.not-found-cta:hover .not-found-cta-arrow svg{transform:translate(-2px,-2px)}.not-found-decoration{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}.not-found-number{font-family:var(--font-display);font-size:clamp(15rem,40vw,30rem);font-weight:var(--weight-regular);color:var(--color-bg-tertiary);line-height:1;letter-spacing:-.05em;-webkit-user-select:none;user-select:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleInSpring{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes rotateIn{0%{opacity:0;transform:scale(0) rotate(-180deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}@keyframes shake{0%,to{transform:translateX(0)}10%,50%,90%{transform:translateX(-10px)}30%,70%{transform:translateX(10px)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes scaleX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes collapse{0%{opacity:1;max-height:200px}to{opacity:0;max-height:0}}.animate-hidden{opacity:0}.animate-fade-in{animation:fadeIn var(--animation-duration,.6s) var(--animation-easing,cubic-bezier(.16,1,.3,1)) var(--animation-delay,0s) forwards}.animate-fade-in-up{animation:fadeInUp var(--animation-duration,.6s) var(--animation-easing,cubic-bezier(.16,1,.3,1)) var(--animation-delay,0s) forwards}.animate-fade-in-down{animation:fadeInDown var(--animation-duration,.6s) var(--animation-easing,cubic-bezier(.16,1,.3,1)) var(--animation-delay,0s) forwards}.animate-fade-in-left{animation:fadeInLeft var(--animation-duration,.6s) var(--animation-easing,cubic-bezier(.16,1,.3,1)) var(--animation-delay,0s) forwards}.animate-fade-in-right{animation:fadeInRight var(--animation-duration,.6s) var(--animation-easing,cubic-bezier(.16,1,.3,1)) var(--animation-delay,0s) forwards}.animate-scale-in{animation:scaleIn var(--animation-duration,.4s) var(--animation-easing,cubic-bezier(.16,1,.3,1)) var(--animation-delay,0s) forwards}.animate-scale-in-spring{animation:scaleInSpring var(--animation-duration,.5s) cubic-bezier(.34,1.56,.64,1) var(--animation-delay,0s) forwards}.animate-rotate-in{animation:rotateIn var(--animation-duration,.5s) cubic-bezier(.34,1.56,.64,1) var(--animation-delay,0s) forwards}.animate-shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97) forwards}.animate-spin{animation:spin 1s linear infinite}.animate-scale-x-left{transform-origin:left}.animate-scale-x-left,.animate-scale-x-right{animation:scaleX var(--animation-duration,.6s) var(--animation-easing,cubic-bezier(.16,1,.3,1)) var(--animation-delay,0s) forwards}.animate-scale-x-right{transform-origin:right}.animate-slide-up{animation:slideUp var(--animation-duration,.4s) cubic-bezier(.34,1.56,.64,1) var(--animation-delay,0s) forwards}.stagger-1{--animation-delay:0.1s}.stagger-2{--animation-delay:0.2s}.stagger-3{--animation-delay:0.3s}.stagger-4{--animation-delay:0.4s}.stagger-5{--animation-delay:0.5s}.stagger-6{--animation-delay:0.6s}.stagger-7{--animation-delay:0.7s}.stagger-8{--animation-delay:0.8s}.stagger-9{--animation-delay:0.9s}.stagger-10{--animation-delay:1.0s}.hero-stagger-1{--animation-delay:0.2s}.hero-stagger-2{--animation-delay:0.35s}.hero-stagger-3{--animation-delay:0.5s}.hero-stagger-4{--animation-delay:0.65s}.hero-stagger-5{--animation-delay:0.8s}.cta-stagger-1{--animation-delay:0.15s}.cta-stagger-2{--animation-delay:0.3s}.cta-stagger-3{--animation-delay:0.45s}.cta-stagger-4{--animation-delay:0.6s}.duration-300{--animation-duration:0.3s}.duration-400{--animation-duration:0.4s}.duration-500{--animation-duration:0.5s}.duration-600{--animation-duration:0.6s}.duration-700{--animation-duration:0.7s}.duration-800{--animation-duration:0.8s}.duration-1000{--animation-duration:1s}.ease-smooth{--animation-easing:cubic-bezier(0.16,1,0.3,1)}.ease-spring{--animation-easing:cubic-bezier(0.34,1.56,0.64,1)}.ease-bounce{--animation-easing:cubic-bezier(0.68,-0.55,0.265,1.55)}.hover-scale{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.hover-scale:hover{transform:scale(1.02)}.hover-scale:active{transform:scale(.98)}.hover-lift{transition:transform .2s cubic-bezier(.16,1,.3,1)}.hover-lift:hover{transform:translateY(-2px)}.hover-slide-left{transition:transform .2s cubic-bezier(.16,1,.3,1)}.hover-slide-left:hover{transform:translateX(-4px)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.animate-hidden{opacity:1}}