.Header_header__z1DZP{-webkit-user-select:none;-moz-user-select:none;user-select:none}.Header_logoImage__AxiRX{-webkit-user-drag:none}.Header_header__z1DZP{--logo-width:20rem;--logo-height:5rem;--nav-padding-x:var(--space-2rem);--nav-padding-y:var(--space-0-5rem);padding:var(--space-2rem) 0 var(--space-2rem)}.Header_content__Z20O4{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3rem)}.Header_left__qrbfU{display:flex;flex-direction:column;gap:var(--space-1rem);flex-shrink:0}.Header_logo__nMWzR{position:relative;display:inline-block;width:var(--logo-width);height:var(--logo-height)}.Header_logo__nMWzR:hover .Header_logoImage__AxiRX{filter:brightness(var(--brightness-hover))}.Header_logoImage__AxiRX{object-fit:contain;filter:brightness(var(--brightness-subtle));transition:filter var(--transition-normal)}.Header_navigation__fLsxU{display:flex;align-items:center;justify-content:flex-end;flex:1 1}.Header_navList__fASUh{display:flex;gap:var(--space-2-5rem);list-style:none;background:var(--card-bg);border:var(--border-width-thin) solid var(--color-border)}.Header_navLink__qcAjk,.Header_navList__fASUh{padding:var(--nav-padding-y) var(--nav-padding-x);border-radius:var(--radius-full)}.Header_navLink__qcAjk{display:inline-block;margin-bottom:var(--space-2px);color:var(--color-text-secondary);text-decoration:none;font-size:var(--text-lg);font-weight:var(--font-medium);white-space:nowrap;position:relative;transition:color var(--transition-fast)}.Header_navLink__qcAjk:after{content:"";position:absolute;bottom:var(--space-2px);left:var(--nav-padding-x);right:var(--nav-padding-x);height:var(--underline-height);background:var(--color-brand-blue-bright);transform:scaleX(0);transition:transform var(--transition-normal)}.Header_navLink__qcAjk:hover:after{transform:scaleX(1)}.Header_navLink__qcAjk.Header_active__rbtD5{color:var(--color-brand-blue-bright)}.Header_navLink__qcAjk.Header_active__rbtD5:after{transform:scaleX(1)}@media (max-width:768px){.Header_header__z1DZP{--logo-width:15rem;--logo-height:3.75rem;--nav-padding-x:var(--space-8px);padding:var(--space-1rem) 0 var(--space-2rem) 0}.Header_content__Z20O4{gap:var(--space-1rem)}.Header_left__qrbfU{align-items:flex-start}.Header_navList__fASUh{gap:var(--space-1rem);padding:var(--space-3px) var(--space-1rem)}.Header_navLink__qcAjk{font-size:calc(var(--text-base) * var(--mobile-text-multiplier));padding:var(--space-3px) var(--space-8px)}}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/82ef96de0e8f4d8c-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:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/a6ecd16fa044d500-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bd82c78e5b7b3fe9-s.woff2) format("woff2");unicode-range:u+0900-097f,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:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c32c8052c071fc42-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/6f22fce21a7c433c-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:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1d8a05b60287ae6c-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:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/77c207b095007c34-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:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1755441e3a2fa970-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:Noto Sans Fallback;src:local("Arial");ascent-override:100.54%;descent-override:27.56%;line-gap-override:0.00%;size-adjust:106.33%}.__className_c85df0{font-family:Noto Sans,Noto Sans Fallback;font-style:normal}.__variable_c85df0{--font-sans:"Noto Sans","Noto Sans Fallback"}@font-face{font-family:"Noto Serif";font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b800e61c24d781c-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:"Noto Serif";font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/dcd0d8c94b74be53-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Noto Serif";font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/435d7d3c1b2ff02f-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:"Noto Serif";font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/ba6607e4cc7979de-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:"Noto Serif";font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3ba05cde04a1b013-s.woff2) format("woff2");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-family:"Noto Serif";font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/d4548b25969cca89-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:"Noto Serif";font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/f1c328b8a9761933-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:"Noto Serif";font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/30d74baa196fe88a-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:"Noto Serif Fallback";src:local("Times New Roman");ascent-override:90.29%;descent-override:24.75%;line-gap-override:0.00%;size-adjust:118.40%}.__className_d4b326{font-family:"Noto Serif","Noto Serif Fallback";font-style:normal}.__variable_d4b326{--font-serif:"Noto Serif","Noto Serif Fallback"}.Footer_footer__yUjxG{--text-size:calc(var(--text-base) * var(--multiplier-sm));--copyright-size:calc(var(--text-base) * var(--multiplier-xs));--nav-spacing:var(--space-2-5rem);--icon-spacing:var(--space-3rem);margin-top:auto;padding:var(--space-1-5rem) 0;border-top:var(--border-width-thin) solid var(--border-subtle)}.Footer_content__QcD74{display:flex;align-items:center;justify-content:space-between;position:relative}.Footer_nav__fZrVf{display:flex;gap:var(--nav-spacing);flex:1 0}.Footer_navLink__3cyoR{color:var(--color-text-muted);font-size:var(--text-size);text-decoration:none;transition:color var(--transition-fast)}.Footer_navLink__3cyoR:hover{color:var(--color-text-hover)}.Footer_copyright__m8i3P{color:var(--color-text-muted);font-size:var(--copyright-size);text-align:center;letter-spacing:var(--letter-spacing-tight);position:absolute;left:50%;transform:translateX(-50%)}.Footer_social__AK_xy{display:flex;gap:var(--icon-spacing);flex:1 0;justify-content:flex-end}.Footer_socialLink__wh62_{display:flex;align-items:center}.Footer_icon__3ljeT{width:var(--icon-size-md);height:var(--icon-size-md);filter:grayscale(1)}.Footer_socialLink__wh62_:hover .Footer_icon__3ljeT{filter:grayscale(0)}.Footer_socialLink__wh62_:nth-child(2) .Footer_icon__3ljeT{filter:brightness(.6)}.Footer_socialLink__wh62_:nth-child(2):hover .Footer_icon__3ljeT{filter:brightness(1)}@media (max-width:768px){.Footer_footer__yUjxG{--text-size:calc(var(--text-base) * var(--multiplier-sm) * var(--mobile-text-multiplier));--copyright-size:calc(var(--text-base) * var(--multiplier-xs) * var(--mobile-text-multiplier));--nav-spacing:var(--space-1-5rem);--icon-spacing:var(--space-2rem);padding:var(--space-1rem) 0}.Footer_content__QcD74{flex-direction:column;gap:var(--space-1rem)}.Footer_nav__fZrVf{justify-content:center;flex:none}.Footer_copyright__m8i3P{position:static;transform:none;margin:var(--space-0-5rem) 0;order:3}.Footer_social__AK_xy{justify-content:center;flex:none}.Footer_icon__3ljeT{width:calc(var(--icon-size-md) * .8);height:calc(var(--icon-size-md) * .8)}}:root{--color-background:#0f172a;--color-text-primary:rgba(250,250,250,0.95);--color-text-secondary:rgba(250,250,250,0.8);--color-text-hover:rgba(250,250,250,0.9);--color-text-muted:rgba(156,163,175,1);--color-border:rgba(255,255,255,0.25);--border-subtle:rgba(255,255,255,0.1);--color-brand-blue:#0055aa;--color-brand-blue-bright:#2d7bd6;--card-bg:rgba(0,0,0,0.15);--card-bg-hover:rgba(0,0,0,0.25);--font-sans-fallback:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--font-serif-fallback:Georgia,Cambria,"Times New Roman",Times,serif;--multiplier-xs:0.75;--multiplier-sm:0.875;--multiplier-md:0.9;--multiplier-lg:1.125;--multiplier-xl:1.25;--multiplier-2xl:2.25;--text-base:1.6rem;--text-lg:1.8rem;--text-h1:calc(var(--text-base) * var(--multiplier-2xl));--text-h2:calc(var(--text-base) * var(--multiplier-xl));--font-normal:400;--font-medium:500;--line-height-none:1;--line-height-tight:1.2;--line-height-snug:1.3;--line-height-normal:1.4;--line-height-relaxed:1.6;--letter-spacing-tight:0.02em;--letter-spacing-normal:0.05em;--space-0-5rem:0.5rem;--space-1rem:1rem;--space-1-5rem:1.5rem;--space-2rem:2rem;--space-2-5rem:2.5rem;--space-3rem:3rem;--space-3-5rem:3.5rem;--space-4rem:4rem;--space-4-5rem:4.5rem;--space-5rem:5rem;--space-5-5rem:5.5rem;--space-6rem:6rem;--space-10rem:10rem;--space-2px:2px;--space-3px:3px;--space-4px:4px;--space-5px:5px;--space-6px:6px;--space-7px:7px;--space-8px:8px;--space-10px:10px;--space-15px:15px;--container-max:128rem;--content-max-width:80ch;--image-max-width:800px;--underline-height:2px;--icon-size-md:3rem;--icon-size-lg:5rem;--grid-cols-2:repeat(2,1fr);--grid-cols-3:repeat(3,1fr);--grid-gap-md:var(--space-2rem);--grid-min-height:18rem;--border-width-thin:1px;--border-width-medium:1.5px;--border-width-thick:2px;--radius-sm:6px;--radius-md:15px;--radius-full:9999px;--blur-xs:4px;--blur-sm:8px;--blur-md:10px;--blur-lg:15px;--shadow-sm:0 2px 8px rgba(0,0,0,0.2);--shadow-md:0 4px 15px rgba(0,0,0,0.4);--shadow-glow-sm:0 0 10px;--transition-fast:150ms ease;--transition-normal:200ms ease;--transition-slow:300ms ease;--animation-pulse:3s;--animation-slow:5s;--hover-lift:-2px;--opacity-medium:0.7;--opacity-high:0.9;--brightness-subtle:1.1;--brightness-hover:1.6;--mobile-text-multiplier:0.9}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{font-size:62.5%}body{color:var(--color-text-primary);background-color:var(--color-background);font-family:var(--font-sans),var(--font-sans-fallback);font-size:var(--text-base);min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1 1;padding:var(--space-2rem) 0}.main-content a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}.main-content a:visited{color:inherit}.main-content a:hover{color:var(--color-brand-blue-bright)}.main-content h1{font-family:var(--font-serif),var(--font-serif-fallback);font-size:var(--text-h1);margin-bottom:var(--space-2-5rem)}.main-content h1,.main-content h2{line-height:var(--line-height-tight);font-weight:var(--font-medium)}.main-content h2{font-size:var(--text-h2);margin-bottom:var(--space-1rem)}.main-content p{line-height:var(--line-height-relaxed);margin-bottom:var(--space-1-5rem)}.main-content p:last-child{margin-bottom:0}.main-content ol,.main-content ul{margin-bottom:var(--space-1rem);padding-left:var(--space-2rem)}.main-content li{line-height:var(--line-height-relaxed);margin-bottom:var(--space-0-5rem)}.main-content li:last-child{margin-bottom:0}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-2rem)}.projectsGrid{display:grid;grid-template-columns:var(--grid-cols-3);grid-gap:var(--grid-gap-md);gap:var(--grid-gap-md);grid-auto-rows:minmax(var(--grid-min-height),auto);margin-top:var(--space-2rem);margin-bottom:var(--space-2rem)}@media (max-width:768px){.container{padding:0 var(--space-1-5rem)}.main-content{padding:var(--space-1-5rem) 0}.main-content h1{font-size:calc(var(--text-h1) * var(--mobile-text-multiplier));margin-bottom:var(--space-2rem)}.main-content h2{font-size:calc(var(--text-h2) * var(--mobile-text-multiplier))}.main-content li,.main-content p{font-size:calc(var(--text-base) * var(--mobile-text-multiplier))}.projectsGrid{grid-template-columns:1fr;gap:var(--space-1-5rem)}}