@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,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}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;--color-bg: #0a0c0e;--color-bg-elevated: #0f1216;--color-surface: rgba(15, 18, 22, .72);--color-text: #ede8e0;--color-text-muted: rgba(237, 232, 224, .62);--color-line: rgba(237, 232, 224, .12);--color-line-strong: rgba(237, 232, 224, .22);--color-glow: rgba(237, 232, 224, .14);--ease-smooth: cubic-bezier(.16, 1, .3, 1);--ease-alive: cubic-bezier(.22, 1, .36, 1);--ease-nav: cubic-bezier(.4, 0, .2, 1);--dur-reveal: .78s;--content-max: 1280px;--pad-x: clamp(1rem, 4.5vw, 2.5rem);--minimap-w: 64px;--minimap-h: clamp(112px, 17vh, 156px);--minimap-gap: 8px;--pad-y-section: clamp(3.5rem, 9vw, 6.5rem);--readable-line-height: 1.72;--heading-line-height: 1.28;font-weight:400;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{display:none}.scroll-progress-line{position:fixed;top:0;left:0;right:0;height:2px;z-index:10001;pointer-events:none;transform-origin:left center;background:linear-gradient(90deg,#ede8e047,#ede8e0b8);transition:transform .08s linear;will-change:transform}@media(prefers-reduced-motion:reduce){.scroll-progress-line{transition:none}}.page-minimap{display:none!important}.page-minimap-track{position:relative;width:100%;height:100%;border-radius:4px;background:#0a0c0ef0;border:1px solid var(--color-line);overflow:hidden;cursor:pointer;touch-action:none}.page-minimap-canvas-wrap{position:absolute;inset:0;overflow:hidden;border-radius:inherit;background:var(--color-bg)}.page-minimap-canvas{display:block;width:100%;height:100%}.page-minimap-canvas-loading{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(110deg,transparent 40%,rgba(237,232,224,.06) 50%,transparent 60%);background-size:200% 100%;animation:minimap-shimmer 1.1s ease-in-out infinite}@keyframes minimap-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.page-minimap-canvas-loading{animation:none;opacity:.25}}.page-minimap-viewport{position:absolute;left:1px;right:1px;width:auto;z-index:2;box-sizing:border-box;border:1px solid rgba(237,232,224,.55);border-radius:2px;background:#ede8e01a;pointer-events:auto;cursor:grab}.page-minimap-viewport:active{cursor:grabbing}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.Nav:after{transition-duration:.01ms!important}.reveal#education>*,.reveal#professionalExperience>*,.reveal#projects.active .ProjectRow,.reveal#projects:not(.active) .ProjectRow{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}.openingLayout h1,.openingLayout>p{animation:none!important;opacity:1!important;transform:none!important}.Nav{transition:none!important}.Nav:hover,.Nav:focus-visible{transform:none!important}}.slide-in,.slide-out{z-index:999;position:fixed;top:0;left:0;width:100%;height:100vh;background-color:var(--color-bg);transform-origin:bottom;pointer-events:none}.slide-out{transform-origin:top}.reveal{margin:0 0 var(--pad-y-section);padding-block:clamp(1.5rem,3vw,2rem) clamp(2rem,4vw,3rem);opacity:0;transition:opacity var(--dur-reveal) var(--ease-alive);will-change:opacity}.reveal.active{opacity:1;will-change:auto}@media(prefers-reduced-motion:no-preference){.reveal#education>*,.reveal#professionalExperience>*{opacity:0;transform:translate3d(0,18px,0);transition:opacity .72s var(--ease-alive),transform .72s var(--ease-alive)}.reveal#education.active>*,.reveal#professionalExperience.active>*{opacity:1;transform:translateZ(0)}.reveal#education.active>*:nth-child(1),.reveal#professionalExperience.active>*:nth-child(1){transition-delay:.05s}.reveal#education.active>*:nth-child(2),.reveal#professionalExperience.active>*:nth-child(2){transition-delay:.11s}.reveal#education.active>*:nth-child(3),.reveal#professionalExperience.active>*:nth-child(3){transition-delay:.17s}.reveal#education.active>*:nth-child(4),.reveal#professionalExperience.active>*:nth-child(4){transition-delay:.23s}.reveal#education.active>*:nth-child(5),.reveal#professionalExperience.active>*:nth-child(5){transition-delay:.29s}.reveal#education.active>*:nth-child(6),.reveal#professionalExperience.active>*:nth-child(6){transition-delay:.35s}.reveal#education.active>*:nth-child(7),.reveal#professionalExperience.active>*:nth-child(7){transition-delay:.41s}.reveal#education.active>*:nth-child(8),.reveal#professionalExperience.active>*:nth-child(8){transition-delay:.47s}#projects.reveal:not(.active) .ProjectRow{opacity:0;transform:translate3d(0,20px,0)}#projects.reveal.active .ProjectRow{opacity:1;transform:translateZ(0);transition:opacity .62s var(--ease-alive),transform .62s var(--ease-alive)}#projects.reveal.active .ProjectRow:nth-child(1){transition-delay:.07s}#projects.reveal.active .ProjectRow:nth-child(2){transition-delay:.13s}#projects.reveal.active .ProjectRow:nth-child(3){transition-delay:.19s}#projects.reveal.active .ProjectRow:nth-child(4){transition-delay:.25s}#projects.reveal.active .ProjectRow:nth-child(5){transition-delay:.31s}#projects.reveal.active .ProjectRow:nth-child(6){transition-delay:.37s}#projects.reveal.active .ProjectRow:nth-child(7){transition-delay:.43s}#projects.reveal.active .ProjectRow:nth-child(8){transition-delay:.49s}}h1,h2{color:var(--color-text);line-height:var(--heading-line-height);letter-spacing:-.03em}h1{font-weight:500;font-size:clamp(1.5rem,3.5vw,2rem);margin:0 0 .5rem}h2{font-weight:400;font-size:clamp(1.125rem,2.2vw,1.35rem);margin:0 0 1rem;color:var(--color-text-muted)}body{margin:0}#root{max-width:var(--content-max);margin:0 auto;padding:var(--pad-x);padding-top:clamp(1.25rem,3vw,2rem);padding-bottom:clamp(3rem,10vw,5rem);text-align:left;box-sizing:border-box}body>div{box-sizing:border-box}.Nav{z-index:999;display:block;width:fit-content;position:sticky;margin-left:auto;margin-bottom:1rem;padding:.2rem 0;color:var(--color-text);text-decoration:none;font-weight:500;letter-spacing:-.028em;font-size:clamp(1.15rem,2.65vw,1.55rem);line-height:var(--heading-line-height);transition:color .4s var(--ease-alive),transform .45s var(--ease-alive)}.Nav:after{content:"";position:absolute;bottom:0;left:0;height:1px;width:0%;background:linear-gradient(90deg,transparent,rgba(237,232,224,.55) 15%,rgba(237,232,224,.95));transition:width .42s var(--ease-smooth),opacity .35s var(--ease-nav)}.Nav:hover:after{width:100%}@media(hover:hover)and (prefers-reduced-motion:no-preference){.Nav:hover,.Nav:focus-visible{color:#ede8e0fa;transform:translate(-6px)}}.openingLayout{margin:0;padding:0;width:100vh;height:100vh}.openingLayout h1{font-weight:400}@media(prefers-reduced-motion:no-preference){.openingLayout h1{animation:opening-fade-up .88s var(--ease-alive) .06s both}.openingLayout>p{animation:opening-fade-up .88s var(--ease-alive) .2s both}}@keyframes opening-fade-up{0%{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:translateZ(0)}}.loading{width:0%;height:100%;animation:loading 2s ease forwards}@keyframes loading{0%{width:0%}to{width:100%}}h1.school,.school{margin-top:clamp(2rem,6vw,3.5rem);margin-bottom:.85rem;font-weight:500;font-size:clamp(1.625rem,3.8vw,2.125rem);letter-spacing:-.032em;color:var(--color-text);line-height:var(--heading-line-height)}#education>h1.school:first-of-type{margin-top:.5rem}.container-img-text{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.25rem,3.5vw,2.25rem);align-items:start}.container-img-text img{object-fit:contain;width:100%;max-width:min(100%,474px);border-radius:4px;transition:transform .7s var(--ease-alive)}@media(prefers-reduced-motion:no-preference){.container-img-text--half-visible img{transform:scale(1.025)}}.container-img-text>div{max-width:56ch}.container-img-text p,.container-img-text li,.TextDescription,.ProjectDetails p{color:var(--color-text-muted);line-height:var(--readable-line-height);font-size:1rem}.container-img-text p{text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin:0 0 1rem}.container-img-text ul{margin:.5rem 0 1.1rem;padding-left:1.2rem}.container-img-text ul.glass-list{list-style:none;margin:0;padding:0}.container-img-text ul.glass-list--dense:not(.glass-list--course-grid){display:flex;flex-direction:column;margin:.45rem 0 .95rem;padding:.15rem 0 .1rem .85rem;border-left:1px solid var(--color-line)}.container-img-text ul.glass-list--dense:not(.glass-list--course-grid) li.glass-list-item{margin:0;padding:.55rem 0;border:none;border-radius:0;border-bottom:1px solid var(--color-line);background:transparent;font-size:.9375rem;line-height:1.48;-webkit-hyphens:auto;hyphens:auto;color:var(--color-text-muted);transition:color .3s var(--ease-smooth)}.container-img-text ul.glass-list--dense:not(.glass-list--course-grid) li.glass-list-item:last-child{border-bottom:none;padding-bottom:0}.container-img-text ul.glass-list--dense:not(.glass-list--course-grid) li.glass-list-item:first-child{padding-top:0}.container-img-text ul.glass-list--dense.glass-list--course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;row-gap:.35rem;margin:.45rem 0 .95rem;padding:.2rem 0 .15rem .85rem;border-left:1px solid var(--color-line)}@media(max-width:520px){.container-img-text ul.glass-list--dense.glass-list--course-grid{grid-template-columns:1fr}}.container-img-text ul.glass-list--dense.glass-list--course-grid li.glass-list-item{margin:0;position:relative;padding:.15rem 0 .15rem .55rem;border:none;border-radius:0;background:transparent;font-size:.875rem;line-height:1.42;letter-spacing:-.01em;-webkit-hyphens:auto;hyphens:auto;color:var(--color-text-muted);transition:color .3s var(--ease-smooth)}.container-img-text ul.glass-list--dense.glass-list--course-grid li.glass-list-item:before{content:"/";position:absolute;left:0;top:.08em;font-weight:500;font-size:.92em;line-height:inherit;color:#ede8e047;pointer-events:none}.container-img-text ul.glass-list--compact li.glass-list-item,.TechStack li{margin:0;padding:.32rem .55rem;border:1px solid var(--color-line);border-radius:999px;background:linear-gradient(135deg,#ede8e00f,#0f12166b 55%,#0a0c0e8c);box-shadow:0 1px #ede8e00a inset,0 8px 28px #00000038;backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);transition:color .35s var(--ease-smooth),border-color .35s var(--ease-smooth),transform .4s var(--ease-smooth),box-shadow .35s var(--ease-smooth)}.container-img-text ul.glass-list--compact{display:flex;flex-direction:row;flex-wrap:wrap;gap:.45rem;margin:.4rem 0 1rem;padding:.2rem 0 0}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.container-img-text ul.glass-list--compact li.glass-list-item,.TechStack li{background:var(--color-bg-elevated);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}}@media(hover:hover)and (prefers-reduced-motion:no-preference){.container-img-text ul.glass-list--dense li.glass-list-item:hover{color:var(--color-text)}.container-img-text ul.glass-list--compact li.glass-list-item:hover{color:var(--color-text);border-color:var(--color-line-strong);transform:translateY(-2px);box-shadow:0 1px #ede8e012 inset,0 12px 36px #0000004d}}@media(prefers-reduced-motion:reduce){.container-img-text ul.glass-list--compact li.glass-list-item:hover{transform:none;box-shadow:0 1px #ede8e00a inset,0 8px 28px #00000038}}.container-img-text span:not(.visually-hidden){display:inline-block;margin-top:.5rem;margin-bottom:.35rem;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}@media(max-width:1215px){.container-img-text{grid-template-columns:1fr}}.grid{display:grid;gap:clamp(1.25rem,3vw,2rem)}.ProjectRow{display:flex;flex-wrap:wrap;align-items:flex-start;gap:clamp(1rem,2.5vw,1.75rem)}.project-card-link{display:block;max-width:min(100%,750px);text-decoration:none;color:inherit;border-radius:4px}.card{position:relative;text-align:center;max-width:750px;width:100%;aspect-ratio:750 / 405;border-radius:4px;overflow:hidden;background:var(--color-bg-elevated)}.card:before{visibility:hidden;box-sizing:border-box;z-index:2;content:"";position:absolute;top:0;left:0;width:0;height:0;border-radius:4px 0 0;border-top:1px solid var(--color-text);border-left:1px solid var(--color-text);pointer-events:none;transition:width .48s var(--ease-alive),height .48s var(--ease-alive),visibility .48s var(--ease-alive),border-radius .48s var(--ease-alive)}.card:after{visibility:hidden;box-sizing:border-box;z-index:2;content:"";position:absolute;bottom:0;right:0;width:0;height:0;border-radius:0 0 4px;border-right:1px solid var(--color-text);border-bottom:1px solid var(--color-text);pointer-events:none;transition:width .48s var(--ease-alive),height .48s var(--ease-alive),visibility .48s var(--ease-alive),border-radius .48s var(--ease-alive)}.card img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center;display:block;transform:scale(1);transition:transform .72s var(--ease-alive)}@media(prefers-reduced-motion:no-preference){.ProjectRow:hover .card:before,.ProjectRow:focus-within .card:before{visibility:visible;width:100%;height:100%;border-radius:4px 4px 0;transition:width .48s var(--ease-alive),height .48s var(--ease-alive),visibility .48s var(--ease-alive),border-radius .48s var(--ease-alive)}.ProjectRow:hover .card:after,.ProjectRow:focus-within .card:after{visibility:visible;width:100%;height:100%;border-radius:0 4px 4px;transition:width .48s var(--ease-alive),height .48s var(--ease-alive),visibility .48s var(--ease-alive),border-radius .48s var(--ease-alive)}.ProjectRow:hover .card,.ProjectRow:focus-within .card{filter:drop-shadow(0 18px 36px rgba(0,0,0,.35))}.ProjectRow:hover .card img,.ProjectRow:focus-within .card img{transform:scale(1.05)}}.TechStack{list-style:none;margin:0;padding:.35rem 0 0;display:flex;flex-wrap:wrap;gap:.45rem;max-width:240px;opacity:0;transform:translate(-14px);pointer-events:none;transition:opacity .45s var(--ease-smooth),transform .5s var(--ease-smooth)}@media(hover:hover)and (pointer:fine){.ProjectRow:hover .TechStack,.ProjectRow:focus-within .TechStack{opacity:1;transform:translate(0);pointer-events:auto}}@media(hover:none),(pointer:coarse){.TechStack{opacity:1;transform:none;pointer-events:auto}}@media(prefers-reduced-motion:no-preference){.ProjectRow:hover .TechStack li,.ProjectRow:focus-within .TechStack li{color:var(--color-text);border-color:var(--color-line-strong);transform:translateY(-2px);box-shadow:0 1px #ede8e012 inset,0 12px 36px #0000004d}}.ProjectDetails>span{display:block;margin-top:clamp(2.5rem,6vw,4rem)}.icon{align-items:center;display:flex;gap:1rem;flex-wrap:wrap}.icon img{max-width:90px}.icon span{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:500;letter-spacing:-.03em;line-height:var(--heading-line-height)}.SpriteIcon{display:flex;gap:clamp(1.25rem,3vw,2rem);align-items:center;flex-wrap:wrap}.SpriteIcon img{max-width:140px;border-radius:3px}.LevelIcon{display:flex;text-align:justify;flex-wrap:wrap;gap:clamp(2rem,5vw,3rem)}.LevelIcon>div{flex:1 1 400px}.LevelIcon img{width:100%;height:auto;border-radius:3px}.TextDescription{max-width:65ch;text-align:justify}@media(prefers-reduced-motion:reduce){.loading{animation:none;width:100%}.ProjectRow:hover .card img,.ProjectRow:focus-within .card img,.ProjectRow:hover .TechStack li,.ProjectRow:focus-within .TechStack li{transform:none}.container-img-text--half-visible img{transform:none!important}.card:before,.card:after{display:none}.TechStack{opacity:1;transform:none;pointer-events:auto;transition:none}}
