@font-face{font-family:Comfortaa;font-style:normal;font-weight:300;font-display:swap;src:url(../media/e3dfc854017cd189-s.07o01p01pl9vd.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Comfortaa;font-style:normal;font-weight:300;font-display:swap;src:url(../media/ca59e9eae7934b24-s.0mnjxgm0dflcj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Comfortaa;font-style:normal;font-weight:300;font-display:swap;src:url(../media/d4d7dfbfbdcfb829-s.0gq5x..r-ww79.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:300;font-display:swap;src:url(../media/60598ce2a46fbffb-s.06p0h2yk_ifjq.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Comfortaa;font-style:normal;font-weight:300;font-display:swap;src:url(../media/2a3a498894ba15cf-s.11iqgigq9aua8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:300;font-display:swap;src:url(../media/7f20430e44eb7422-s.p.0-3dheja74wss.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Comfortaa;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e3dfc854017cd189-s.07o01p01pl9vd.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Comfortaa;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ca59e9eae7934b24-s.0mnjxgm0dflcj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Comfortaa;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d4d7dfbfbdcfb829-s.0gq5x..r-ww79.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:400;font-display:swap;src:url(../media/60598ce2a46fbffb-s.06p0h2yk_ifjq.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Comfortaa;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2a3a498894ba15cf-s.11iqgigq9aua8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7f20430e44eb7422-s.p.0-3dheja74wss.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Comfortaa;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e3dfc854017cd189-s.07o01p01pl9vd.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Comfortaa;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ca59e9eae7934b24-s.0mnjxgm0dflcj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Comfortaa;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d4d7dfbfbdcfb829-s.0gq5x..r-ww79.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:500;font-display:swap;src:url(../media/60598ce2a46fbffb-s.06p0h2yk_ifjq.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Comfortaa;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2a3a498894ba15cf-s.11iqgigq9aua8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7f20430e44eb7422-s.p.0-3dheja74wss.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Comfortaa;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e3dfc854017cd189-s.07o01p01pl9vd.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Comfortaa;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ca59e9eae7934b24-s.0mnjxgm0dflcj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Comfortaa;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d4d7dfbfbdcfb829-s.0gq5x..r-ww79.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:600;font-display:swap;src:url(../media/60598ce2a46fbffb-s.06p0h2yk_ifjq.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Comfortaa;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2a3a498894ba15cf-s.11iqgigq9aua8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7f20430e44eb7422-s.p.0-3dheja74wss.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Comfortaa;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e3dfc854017cd189-s.07o01p01pl9vd.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Comfortaa;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ca59e9eae7934b24-s.0mnjxgm0dflcj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Comfortaa;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d4d7dfbfbdcfb829-s.0gq5x..r-ww79.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:700;font-display:swap;src:url(../media/60598ce2a46fbffb-s.06p0h2yk_ifjq.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Comfortaa;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2a3a498894ba15cf-s.11iqgigq9aua8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Comfortaa;font-style:normal;font-weight:700;font-display:swap;src:url(../media/7f20430e44eb7422-s.p.0-3dheja74wss.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Comfortaa Fallback;src:local(Arial);ascent-override:74.95%;descent-override:19.91%;line-gap-override:0.0%;size-adjust:117.54%}.comfortaa_d82362cb-module__ixZBiG__className{font-family:Comfortaa,Comfortaa Fallback;font-style:normal}.comfortaa_d82362cb-module__ixZBiG__variable{--font-comfortaa:"Comfortaa", "Comfortaa Fallback"}
.portfolio-root,.portfolio-root *{box-sizing:border-box;margin:0;padding:0}.portfolio-root{--color-page:#faf7f2;--color-surface:#fff;--color-surface-2:#f4efe6;--color-primary:#8ba888;--color-secondary:#e8b4b8;--color-accent:#4a5240;--color-text:#2a2a28;--color-text-muted:#6b6b66;--color-border:#ece7dc;--color-border-strong:#d7d0c1;--color-error:#b85a5a;--border-width:1px;--border-radius:24px;--border-radius-btn:12px;--border-radius-sm:8px;--border-radius-pill:999px;--shadow-sm:0 1px 2px #2a2a280a, 0 2px 8px #2a2a280a;--shadow-md:0 2px 4px #2a2a280d, 0 8px 24px #2a2a280f;--shadow-lg:0 4px 8px #2a2a280f, 0 16px 48px #2a2a2814;--max-width:1100px;--narrow-width:760px;--card-width:720px;--space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:6rem;--space-xxl:10rem;--font-display:var(--font-comfortaa), "Arial", sans-serif;--transition:cubic-bezier(.4, 0, .2, 1);font-family:var(--font-comfortaa), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;background:var(--color-page);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;min-height:100vh;font-weight:500;line-height:1.7;display:block}.portfolio-root.nav-open{overflow:hidden}.portfolio-root main{padding-top:6rem}.portfolio-root img{max-width:100%;height:auto;display:block}.portfolio-root a{color:inherit;text-decoration:none}.portfolio-root .container{width:min(100%, var(--max-width));margin:0 auto;padding:0 clamp(1.5rem,5vw,3rem)}.portfolio-root .container.narrow{width:min(100%, var(--narrow-width))}.portfolio-root .section{padding:var(--space-lg) 0;position:relative}.portfolio-root h1,.portfolio-root h2,.portfolio-root h3{font-family:var(--font-display);letter-spacing:-.01em;font-weight:700;line-height:1.2}.portfolio-root h1{font-size:clamp(2.25rem,5vw,3.75rem);line-height:1.15}.portfolio-root .section-indicator{z-index:1000;-webkit-backdrop-filter:saturate(180%)blur(12px);border-bottom:var(--border-width) solid var(--color-border);background:#faf7f2cc;justify-content:space-between;align-items:center;padding:1.25rem clamp(1.5rem,5vw,3rem);display:flex;position:fixed;top:0;left:0;right:0}.portfolio-root .logo-box{border-radius:var(--border-radius-btn);width:40px;height:40px;transition:transform .4s var(--transition);justify-content:center;align-items:center;display:flex}.portfolio-root .logo-box:hover{transform:rotate(12deg)}.portfolio-root .logo-img{width:28px;height:28px}.portfolio-root .nav-links{align-items:center;gap:.5rem;margin-left:auto;display:flex}.portfolio-root .nav-links-primary{align-items:center;gap:.25rem;display:flex}.portfolio-root .nav-toggle{border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-btn);cursor:pointer;width:40px;height:40px;transition:background .2s var(--transition);background:0 0;justify-content:center;align-items:center;display:none}.portfolio-root .nav-toggle:hover{background:var(--color-surface-2)}.portfolio-root .nav-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.portfolio-root .nav-toggle-bar{background:var(--color-text);width:18px;height:1.5px;transition:background .2s;position:relative}.portfolio-root .nav-toggle-bar:before,.portfolio-root .nav-toggle-bar:after{content:"";background:var(--color-text);width:18px;height:1.5px;transition:transform .2s,top .2s;position:absolute;left:0}.portfolio-root .nav-toggle-bar:before{top:-6px}.portfolio-root .nav-toggle-bar:after{top:6px}.portfolio-root .nav-toggle.is-active .nav-toggle-bar{background:0 0}.portfolio-root .nav-toggle.is-active .nav-toggle-bar:before{top:0;transform:rotate(45deg)}.portfolio-root .nav-toggle.is-active .nav-toggle-bar:after{top:0;transform:rotate(-45deg)}.portfolio-root .indicator-item{border-radius:var(--border-radius-btn);color:var(--color-text-muted);transition:color .2s var(--transition), background .2s var(--transition);padding:.5rem .9rem;font-size:.9rem;font-weight:600}.portfolio-root .indicator-item:hover{color:var(--color-text);background:var(--color-surface-2)}.portfolio-root .indicator-item.is-active{color:var(--color-accent);background:var(--color-surface-2)}@media (max-width:768px){.portfolio-root .section-indicator{padding:1rem 1.25rem}.portfolio-root .nav-toggle{margin-left:auto;display:inline-flex}.portfolio-root .nav-links{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;align-items:stretch;gap:.25rem;margin-left:0;padding:1rem;transition:opacity .2s,transform .2s;position:absolute;top:calc(100% + .5rem);left:1.25rem;right:1.25rem;transform:translateY(-8px)}.portfolio-root .nav-links-primary{flex-direction:column;align-items:stretch}.portfolio-root .nav-links .indicator-item{text-align:center;justify-content:center;width:100%}.portfolio-root .section-indicator.is-menu-open .nav-links{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}}.portfolio-root .hero{padding:var(--space-xl) 0 var(--space-lg)}.portfolio-root .hero-layout{justify-content:center;display:flex}.portfolio-root .hero-copy{max-width:var(--narrow-width);text-align:center}.portfolio-root .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-md);font-size:.8rem;font-weight:600;display:inline-block}.portfolio-root .hero h1{margin-bottom:var(--space-md)}.portfolio-root .lead{color:var(--color-text-muted);max-width:600px;margin:0 auto;font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.7}.portfolio-root .cta{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.portfolio-root .btn{border:var(--border-width) solid transparent;border-radius:var(--border-radius-pill);cursor:pointer;transition:transform .2s var(--transition), background .2s var(--transition), color .2s var(--transition);justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.6rem;font-family:inherit;font-size:.95rem;font-weight:600;display:inline-flex}.portfolio-root .btn.primary{background:var(--color-accent);color:var(--color-surface)}.portfolio-root .btn.primary:hover{background:var(--color-text);transform:translateY(-1px)}.portfolio-root .btn.ghost{border-color:var(--color-border-strong);color:var(--color-text);background:0 0}.portfolio-root .btn.ghost:hover{background:var(--color-surface-2);transform:translateY(-1px)}.portfolio-root .section-heading{margin-bottom:var(--space-lg);text-align:center}.portfolio-root .section-heading h2{margin-bottom:.75rem;font-size:clamp(1.75rem,3.2vw,2.4rem)}.portfolio-root .section-heading p{color:var(--color-text-muted);max-width:560px;margin:0 auto;font-size:1rem}.portfolio-root .experience-stack{max-width:var(--card-width);flex-direction:column;gap:1.25rem;margin:0 auto;display:flex}.portfolio-root .experience-card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);isolation:isolate;gap:1.25rem;padding:clamp(1.75rem,3vw,2.5rem);display:grid;position:relative}.portfolio-root .experience-card header{flex-direction:column;gap:.35rem;display:flex}.portfolio-root .experience-date{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);order:-1;font-size:.75rem;font-weight:600}.portfolio-root .experience-role{color:var(--color-text);font-size:1.15rem;font-weight:700}.portfolio-root .experience-summary{color:var(--color-text-muted);font-size:.95rem;line-height:1.65}.portfolio-root .experience-card ul{border-top:var(--border-width) solid var(--color-border);gap:.7rem;padding-top:.75rem;font-size:.95rem;list-style:none;display:grid}.portfolio-root .experience-card ul li{color:var(--color-text-muted);padding-left:1.4rem;line-height:1.65;position:relative}.portfolio-root .experience-card ul li:before{content:"";background:var(--color-primary);border-radius:1px;width:.5rem;height:1.5px;position:absolute;top:.7em;left:0}.portfolio-root .inline-link{color:var(--color-accent);border-bottom:1px solid var(--color-border-strong);transition:border-color .2s var(--transition), color .2s var(--transition);font-weight:600}.portfolio-root .inline-link:hover{color:var(--color-text);border-color:var(--color-accent)}.portfolio-root .skills-container{max-width:var(--card-width);gap:var(--space-md);flex-direction:column;margin:0 auto;display:flex}.portfolio-root .skill-category{flex-direction:column;align-items:center;gap:.9rem;display:flex}.portfolio-root .skill-category-title{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);align-items:center;gap:.5rem;font-family:inherit;font-size:.8rem;font-weight:600;display:flex}.portfolio-root .skill-icon{display:none}.portfolio-root .skill-tags{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.portfolio-root .skill-tag{background:var(--color-surface-2);border-radius:var(--border-radius-pill);color:var(--color-text);transition:background .2s var(--transition);padding:.45rem .9rem;font-size:.85rem;font-weight:500}.portfolio-root .skill-tag:hover{background:var(--color-surface);box-shadow:var(--shadow-sm)}.portfolio-root .education-card{max-width:var(--card-width);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);isolation:isolate;gap:1.25rem;margin:0 auto;padding:clamp(1.75rem,3vw,2.5rem);display:grid;position:relative}@property --border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.portfolio-root .experience-card:before,.portfolio-root .project-card:before,.portfolio-root .education-card:before{content:"";border-radius:inherit;background:conic-gradient(from var(--border-angle), transparent 0deg, transparent 240deg, var(--color-primary) 300deg, var(--color-accent) 330deg, transparent 360deg);-webkit-mask-composite:xor;opacity:0;transition:opacity .3s var(--transition);pointer-events:none;z-index:1;padding:1.5px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.portfolio-root .experience-card:hover:before,.portfolio-root .project-card:hover:before,.portfolio-root .education-card:hover:before{opacity:1;animation:3.5s linear infinite portfolio-rotate-border}@keyframes portfolio-rotate-border{to{--border-angle:360deg}}.portfolio-root .education-period{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.35rem;font-size:.8rem;font-weight:600}.portfolio-root .education-role{font-size:1.15rem;font-weight:700}.portfolio-root .education-card ul{border-top:var(--border-width) solid var(--color-border);gap:.7rem;padding-top:.75rem;font-size:.95rem;list-style:none;display:grid}.portfolio-root .education-card ul li{color:var(--color-text-muted);padding-left:1.4rem;line-height:1.65;position:relative}.portfolio-root .education-card ul li:before{content:"";background:var(--color-secondary);border-radius:1px;width:.5rem;height:1.5px;position:absolute;top:.7em;left:0}.portfolio-root .project-grid{gap:var(--space-md);grid-template-columns:1fr;display:grid}.portfolio-root .project-card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);opacity:0;transition:opacity .8s var(--transition), transform .8s var(--transition);animation-delay:var(--delay,0s);max-width:var(--card-width);isolation:isolate;gap:0;width:100%;margin:0 auto;display:grid;position:relative;overflow:hidden;transform:translateY(20px)}.portfolio-root .project-card.is-visible{opacity:1;transform:translateY(0)}.portfolio-root .project-media{background:var(--color-surface-2);border-bottom:var(--border-width) solid var(--color-border);justify-content:center;align-items:center;display:flex;overflow:hidden}.portfolio-root .project-media img{width:100%;height:auto;display:block}.portfolio-root .project-body{gap:.9rem;padding:clamp(1.5rem,3vw,2.25rem);display:grid}.portfolio-root .project-body h2{font-size:1.35rem;font-weight:700}.portfolio-root .project-title-link{color:inherit;transition:color .2s var(--transition), gap .2s var(--transition);align-items:center;gap:.4rem;display:inline-flex}.portfolio-root .project-title-link:before{content:"";z-index:2;position:absolute;inset:0}.portfolio-root .project-title-link:after{content:"→";color:var(--color-text-muted);transition:color .2s var(--transition), transform .2s var(--transition);font-size:.95rem}.portfolio-root .project-card:hover .project-title-link{color:var(--color-accent);gap:.65rem}.portfolio-root .project-card:hover .project-title-link:after{color:var(--color-accent);transform:translate(2px)}.portfolio-root .project-body p{color:var(--color-text-muted);font-size:.95rem;line-height:1.65}.portfolio-root .project-tags{flex-wrap:wrap;gap:.4rem;margin-top:.25rem;list-style:none;display:flex}.portfolio-root .project-tags li{color:var(--color-text-muted);background:var(--color-surface-2);border-radius:var(--border-radius-pill);padding:.3rem .7rem;font-size:.8rem;font-weight:500}.portfolio-root .muted{text-align:center;color:var(--color-text-muted)}.portfolio-root .site-footer{margin:var(--space-xl) auto 0;padding:var(--space-lg) 0 var(--space-md);border-top:var(--border-width) solid var(--color-border)}.portfolio-root .site-footer .container{color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;font-size:.9rem;display:flex}.portfolio-root .site-footer a{color:var(--color-text);transition:color .2s var(--transition);font-weight:600}.portfolio-root .site-footer a:hover{color:var(--color-accent)}.portfolio-root [data-animate]{opacity:0;transition:opacity .8s var(--transition), transform .8s var(--transition);transform:translateY(24px)}.portfolio-root [data-animate].is-visible{opacity:1;transform:translateY(0)}@media (max-width:768px){.portfolio-root main{padding-top:5rem}.portfolio-root .hero{padding:var(--space-lg) 0 var(--space-md)}.portfolio-root .section{padding:var(--space-md) 0}.portfolio-root .experience-card,.portfolio-root .education-card{padding:1.5rem}.portfolio-root .site-footer .container{text-align:center;justify-content:center}}@media (max-width:480px){.portfolio-root .cta{flex-direction:column;align-items:stretch}.portfolio-root .btn{width:100%}.portfolio-root .site-footer .container{flex-direction:column;gap:.5rem}}@media (prefers-reduced-motion:reduce){.portfolio-root *,.portfolio-root :before,.portfolio-root :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
