:root{--color-black:#000;--color-white:#fff;--color-surface:#f6f6f4;--color-line:#e0e0e0;--color-muted:#666;--color-muted-dark:#a3a3a3;--color-error:#a40000;--container:1400px;--nav-offset:88px;--pad-x:clamp(1.25rem,4vw,3rem);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.76,0,0.24,1);--font:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:88px;scroll-padding-top:var(--nav-offset)}html.intro-active{overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;background:var(--color-white);color:#000;color:var(--color-black);font-family:Archivo,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-family:var(--font);overflow-x:hidden}img,video{max-width:100%}button,input,textarea{font-family:inherit}::selection{background:#000;background:var(--color-black);color:#fff;color:var(--color-white)}.app{overflow-x:hidden;overflow-x:clip}#main:focus{outline:none}:focus-visible{outline:3px solid #000;outline:3px solid var(--color-black);outline-offset:3px}.on-dark :focus-visible{outline-color:#fff;outline-color:var(--color-white)}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.skip-link{background:#000;background:var(--color-black);color:#fff;color:var(--color-white);font-weight:600;left:.75rem;padding:.75rem 1.25rem;position:fixed;text-decoration:none;top:.75rem;transform:translateY(-200%);z-index:2000}.skip-link:focus{transform:translateY(0)}section[id]{scroll-margin-top:88px;scroll-margin-top:var(--nav-offset)}.container{margin:0 auto;max-width:1400px;max-width:var(--container)}.section{padding:clamp(5rem,10vw,9rem) clamp(1.25rem,4vw,3rem);padding:clamp(5rem,10vw,9rem) var(--pad-x)}.section-header{grid-gap:1rem 3rem;align-items:end;display:grid;gap:1rem 3rem;grid-template-columns:1fr auto;margin-bottom:clamp(3rem,6vw,5rem)}.section-title{font-size:clamp(2.75rem,7.5vw,6.5rem);font-stretch:112%;font-weight:800;letter-spacing:-.035em;line-height:.95}.section-subtitle{color:#666;color:var(--color-muted);font-size:1.1rem;line-height:1.5;max-width:28ch;padding-bottom:.6rem;text-align:right}.section-rule{background:currentColor;grid-column:1/-1;height:3px;transform-origin:left center}.mask{overflow:hidden;padding-bottom:.08em}.mask,.mask-inner{display:block}.reveal-armed .section-header .mask-inner{transform:translateY(105%);transition:transform .9s cubic-bezier(.16,1,.3,1);transition:transform .9s var(--ease-out)}.reveal-armed .section-header .section-subtitle{opacity:0;transition:opacity .8s ease .3s}.reveal-armed .section-header .section-rule{transform:scaleX(0);transition:transform 1.1s cubic-bezier(.76,0,.24,1) .15s;transition:transform 1.1s var(--ease-in-out) .15s}.reveal-armed .section-header.is-visible .mask-inner,.reveal-armed .section-header.is-visible .section-rule{transform:none}.reveal-armed .section-header.is-visible .section-subtitle{opacity:1}.on-dark .section-subtitle{color:#a3a3a3;color:var(--color-muted-dark)}@media (max-width:768px){.section-header{grid-template-columns:1fr}.section-subtitle{padding-bottom:0;text-align:left}}.btn{align-items:center;border:2px solid #000;border:2px solid var(--color-black);cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.6rem;isolation:isolate;justify-content:center;letter-spacing:.02em;overflow:hidden;padding:1.1rem 2.4rem;position:relative;text-decoration:none;transition:color .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1);transition:color .45s var(--ease-out),transform .45s var(--ease-out)}.btn:before{content:"";inset:0;position:absolute;transform:scaleY(0);transform-origin:bottom;transition:transform .45s cubic-bezier(.16,1,.3,1);transition:transform .45s var(--ease-out);z-index:-1}.btn:hover:before{transform:scaleY(1)}.btn:hover{transform:translateY(-3px)}.btn-primary{background:#000;background:var(--color-black);color:#fff;color:var(--color-white)}.btn-primary:before{background:#fff;background:var(--color-white)}.btn-primary:hover,.btn-secondary{color:#000;color:var(--color-black)}.btn-secondary{background:#fff;background:var(--color-white)}.btn-secondary:before{background:#000;background:var(--color-black)}.btn-secondary:hover{color:#fff;color:var(--color-white)}.btn:disabled{cursor:progress;opacity:.7;transform:none}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none}.tech-tag{background:#fff;background:var(--color-white);border:1px solid #000;border:1px solid var(--color-black);color:#000;color:var(--color-black);display:inline-block;font-size:.8rem;font-weight:600;letter-spacing:.02em;padding:.4rem .85rem}.reveal{transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:0ms;transition-delay:var(--reveal-delay,0ms)}.reveal-armed .reveal:not(.is-visible){opacity:0}.reveal-armed .reveal--up:not(.is-visible){transform:translateY(60px)}.reveal-armed .reveal--left:not(.is-visible){transform:translateX(-60px)}.reveal-armed .reveal--right:not(.is-visible){transform:translateX(60px)}.reveal-armed .reveal--scale:not(.is-visible){transform:scale(.94)}@keyframes site-fade-in-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}@keyframes site-fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in-up{animation:site-fade-in-up .9s cubic-bezier(.16,1,.3,1) forwards;animation:site-fade-in-up .9s var(--ease-out) forwards;opacity:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-armed .reveal:not(.is-visible),.reveal-armed .section-header .mask-inner,.reveal-armed .section-header .section-rule{transform:none!important}.animate-fade-in-up{animation-name:site-fade-in}.btn:hover{transform:none}}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #0000001a;left:0;position:fixed;right:0;top:4px;transition:background .3s ease,box-shadow .3s ease,transform .45s var(--ease-out);z-index:1000}.navbar.is-hidden{transform:translateY(calc(-100% - 4px))}.navbar:focus-within{transform:none}.navbar.scrolled{background:#fffffffa;box-shadow:0 2px 20px #0000000d}.navbar-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:var(--container);padding:1.1rem 3rem}.navbar-logo{align-items:center;color:var(--color-black);display:inline-flex;font-size:1.1rem;font-stretch:110%;font-weight:700;gap:.75rem;letter-spacing:.01em;text-decoration:none;transition:opacity .3s ease}.navbar-mono{background:var(--color-black);color:var(--color-white);display:grid;font-size:.95rem;font-weight:800;height:36px;place-items:center;transition:transform .45s var(--ease-out);width:36px}.navbar-logo:hover .navbar-mono{transform:rotate(-90deg)}.navbar-menu.desktop{align-items:center;display:none;gap:2.5rem}.nav-link{color:var(--color-muted);font-size:.95rem;font-weight:500;letter-spacing:.02em;position:relative;text-decoration:none;transition:color .3s ease}.nav-link:after{background:var(--color-black);bottom:-5px;content:"";height:2px;left:0;position:absolute;transition:width .3s ease;width:0}.nav-link.is-active,.nav-link:hover{color:var(--color-black)}.nav-link.is-active:after,.nav-link:hover:after{width:100%}.cv-download{align-items:center;background:var(--color-black);border-radius:4px;color:#fff;display:inline-flex;font-size:.95rem;font-weight:500;gap:.5rem;letter-spacing:.02em;padding:.6rem 1.2rem;text-decoration:none;transition:background .3s ease,transform .3s ease,box-shadow .3s ease}.cv-download:hover{background:#333;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.menu-toggle{align-items:center;background:none;border:none;color:var(--color-black);cursor:pointer;display:flex;justify-content:center;padding:.5rem}.navbar-menu.mobile{background:#fffffffa;border-top:1px solid #0000001a;padding:1.5rem 0}.navbar-menu.mobile .nav-link{display:block;font-size:1.2rem;padding:1rem 1.5rem}.navbar-menu.mobile .nav-link:after{display:none}.navbar-menu.mobile .nav-link.is-active{border-left:3px solid var(--color-black)}.navbar-menu.mobile .nav-link:hover{background:#0000000d}.navbar-menu.mobile .cv-download{display:flex;justify-content:center;margin:1rem 1.5rem 0}@media (min-width:768px){.navbar-menu.desktop{display:flex}.menu-toggle,.navbar-menu.mobile{display:none}}@media (max-width:1024px) and (min-width:768px){.navbar-container{padding:1.25rem 2rem}.navbar-menu.desktop{gap:1.5rem}}@media (max-width:767px){.navbar-container{padding:1rem 1.5rem}}.intro{align-items:center;background:var(--color-black);color:var(--color-white);display:flex;inset:0;justify-content:center;padding:1.5rem;position:fixed;transition:transform .7s var(--ease-in-out);z-index:10000}.intro.stage-3{transform:translateY(-100%)}.intro-content{text-align:center;transition:transform .7s var(--ease-in-out),opacity .5s ease}.intro.stage-3 .intro-content{opacity:0;transform:translateY(40%)}.intro-mono{display:flex;gap:.75rem;justify-content:center;margin-bottom:2.25rem}.intro-mono span{background:var(--color-white);color:var(--color-black);display:grid;font-size:2.4rem;font-stretch:120%;font-weight:800;height:72px;opacity:0;place-items:center;transform:translateY(-120px);transition:transform .7s cubic-bezier(.34,1.56,.64,1),opacity .3s ease;width:72px}.intro-mono span:nth-child(2){transition-delay:.12s}.intro:not(.stage-0) .intro-mono span{opacity:1;transform:none}.intro-mask{display:block;overflow:hidden}.intro-mask>span{display:block;transform:translateY(110%);transition:transform .8s var(--ease-out)}.intro-name{font-size:clamp(2.5rem,9vw,7.5rem);font-stretch:115%;font-weight:800;letter-spacing:-.035em;line-height:1}.intro-role{color:var(--color-muted-dark);font-size:clamp(.85rem,2vw,1.15rem);letter-spacing:.18em;margin-top:1.25rem;text-transform:uppercase}.intro-role .intro-mask>span{transition-delay:.15s}.intro.stage-2 .intro-mask>span,.intro.stage-3 .intro-mask>span{transform:none}.intro-progress{animation:intro-progress 1.9s linear forwards;background:var(--color-white);bottom:0;height:3px;left:0;position:absolute;transform:scaleX(0);transform-origin:left;width:100%}@keyframes intro-progress{to{transform:scaleX(1)}}.intro-skip{background:#0000;border:2px solid var(--color-white);bottom:1.5rem;color:var(--color-white);cursor:pointer;font-size:.9rem;font-weight:600;padding:.6rem 1.2rem;position:absolute;right:1.5rem;transition:background .3s ease,color .3s ease}.intro-skip:hover{background:var(--color-white);color:var(--color-black)}.intro-skip:focus-visible{outline-color:var(--color-white)}@media (prefers-reduced-motion:reduce){.intro,.intro-content{transition:opacity .5s ease}.intro.stage-3{opacity:0;transform:none}.intro.stage-3 .intro-content{transform:none}.intro-mask>span,.intro-mono span{transform:none;transition:opacity .5s ease}.intro-mask>span{opacity:0}.intro.stage-2 .intro-mask>span,.intro.stage-3 .intro-mask>span{opacity:1}}.scroll-progress-container{background:var(--color-line);height:4px;left:0;position:fixed;right:0;top:0;z-index:1001}.scroll-progress-bar{background:linear-gradient(90deg,#000,#666);height:100%;transform:scaleX(0);transform-origin:left center;will-change:transform}.footer{background:var(--color-black);border-top:1px solid #333;color:var(--color-muted-dark);padding:2rem var(--pad-x)}.footer-container{display:flex;flex-wrap:wrap;font-size:.9rem;gap:1rem;justify-content:space-between;margin:0 auto;max-width:var(--container)}.footer a{color:var(--color-white);font-weight:600;text-decoration:none}.footer a:hover{text-decoration:underline}.home-section{align-items:center;background:var(--color-white);display:flex;isolation:isolate;min-height:100vh;min-height:100svh;overflow:hidden;padding:7.5rem var(--pad-x) 5rem;position:relative}.intro-active .home-section,.intro-active .home-section *{animation-play-state:paused!important}.route-graph{height:100%;inset:0;-webkit-mask-image:linear-gradient(100deg,#00000040,#00000059 40%,#000 75%);mask-image:linear-gradient(100deg,#00000040,#00000059 40%,#000 75%);pointer-events:none;position:absolute;width:100%;z-index:-1}.route-edges path{fill:none;stroke:#d4d4d4;stroke-width:1.25;stroke-dasharray:1;stroke-dashoffset:1;animation:route-draw 1.2s var(--ease-out) forwards;animation-delay:var(--d)}.route-main{fill:none;stroke:#bdbdbd;stroke-width:3;stroke-dasharray:1;stroke-dashoffset:1;animation:route-draw 2.2s var(--ease-in-out) 1.1s forwards}.route-nodes circle{fill:var(--color-white);stroke:#c4c4c4;stroke-width:2;animation:route-pop .5s var(--ease-out) forwards;animation-delay:var(--d);transform:scale(0);transform-box:fill-box;transform-origin:center}.route-nodes circle.is-stop{fill:#c4c4c4}.route-vehicle{fill:#9a9a9a}@keyframes route-draw{to{stroke-dashoffset:0}}@keyframes route-pop{to{transform:scale(1)}}.home-container{margin:0 auto;max-width:var(--container);width:100%}.home-grid{grid-column-gap:4rem;grid-row-gap:2.5rem;align-items:end;column-gap:4rem;display:grid;grid-template-areas:"text image" "lower image";grid-template-columns:1.3fr 1fr;row-gap:2.5rem}.home-text{grid-area:text}.home-image-wrapper{align-self:center;grid-area:image}.home-lower{align-self:start;grid-area:lower}.greeting{margin-bottom:1.25rem;min-height:2.2rem}.greeting-text{color:var(--color-muted);font-size:clamp(1.05rem,1.6vw,1.35rem);font-weight:500;letter-spacing:.04em}.cursor{animation:home-blink 1s steps(1) infinite;color:var(--color-black);display:inline-block;font-weight:300;margin-left:2px}@keyframes home-blink{50%{opacity:0}}.home-title{color:var(--color-black);font-size:clamp(3.4rem,11.5vw,11.5rem);font-stretch:118%;font-weight:900;letter-spacing:-.045em;line-height:.88;max-width:calc(100vw - var(--pad-x)*2);position:relative;width:max-content;z-index:2}@supports (mix-blend-mode:difference){.home-title{color:var(--color-white);mix-blend-mode:difference}}.name-word{display:block;white-space:nowrap}.name-letter{animation:home-letter-in .8s var(--ease-out) forwards;animation-delay:calc(.15s + var(--i)*45ms);display:inline-block;opacity:0;transform:translateY(.6em) rotate(6deg)}@keyframes home-letter-in{to{opacity:1;transform:none}}.home-subtitle{color:var(--color-black);font-size:clamp(1.15rem,2.2vw,1.75rem);font-weight:500;line-height:1.3;margin-top:1.75rem}.home-description{color:var(--color-muted);font-size:1.1rem;line-height:1.75;margin-bottom:2.25rem;max-width:54ch}.home-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.home-social{display:flex;gap:.75rem;margin-left:.5rem}.social-icon{background:var(--color-white);border:2px solid var(--color-black);color:var(--color-black);display:grid;height:52px;isolation:isolate;overflow:hidden;place-items:center;position:relative;transition:color .35s var(--ease-out),transform .35s var(--ease-out);width:52px}.social-icon:before{background:var(--color-black);content:"";inset:0;position:absolute;transform:translateY(101%);transition:transform .35s var(--ease-out);z-index:-1}.social-icon:hover{color:var(--color-white);transform:translateY(-3px)}.social-icon:hover:before{transform:none}.home-image{max-width:480px;position:relative;width:100%}@media (min-width:1200px){.home-image{margin-left:-5rem}}.parallax{translate:0 0;translate:0 var(--parallax-y,0)}.image-frame{aspect-ratio:4/5;position:relative}.image-border{animation:site-fade-in .6s ease 1.3s forwards;border:2px solid var(--color-black);inset:0;opacity:0;position:absolute;transform:translate(18px,18px);transition:transform .5s var(--ease-out)}.image-clip{animation:home-unveil 1.1s var(--ease-in-out) .35s forwards;background:var(--color-surface);border:3px solid var(--color-black);clip-path:inset(100% 0 0 0);inset:0;overflow:hidden;position:absolute}@keyframes home-unveil{to{clip-path:inset(0 0 0 0)}}.home-photo{animation:home-photo-settle 1.6s var(--ease-out) .35s forwards;display:block;height:100%;object-fit:cover;transform:scale(1.12);width:100%}@keyframes home-photo-settle{to{transform:scale(1)}}.image-frame:hover .image-border{transform:translate(10px,10px)}.scroll-down{bottom:0;display:flex;height:72px;justify-content:center;left:50%;position:absolute;transform:translateX(-50%);width:44px}.scroll-line{animation:home-scroll-line 2.2s var(--ease-in-out) infinite;background:var(--color-black);height:100%;transform-origin:top;width:2px}@keyframes home-scroll-line{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}@media (max-width:1199px){.home-grid{column-gap:2.5rem}.home-image{margin-left:auto}}@media (max-width:968px){.home-section{padding-top:7rem}.home-grid{grid-template-areas:"text" "image" "lower";grid-template-columns:1fr;row-gap:3rem}.home-title{font-size:clamp(3.2rem,16vw,7rem)}.home-image{margin:0 auto 0 0;max-width:280px}.image-border{transform:translate(12px,12px)}.route-graph{-webkit-mask-image:linear-gradient(180deg,#00000080,#00000040);mask-image:linear-gradient(180deg,#00000080,#00000040)}.scroll-down{display:none}}@media (max-width:480px){.home-actions .btn{flex:1 1 100%}.home-social{margin:.5rem 0 0}}@media (prefers-reduced-motion:reduce){.name-letter{animation-name:site-fade-in;transform:none}.home-photo{animation:none;transform:none}.image-clip{animation-name:site-fade-in;clip-path:none;opacity:0}.scroll-line{animation:none}.image-border{transition:none}}.highlights{background:var(--color-black);color:var(--color-white);padding:0 var(--pad-x)}.highlights-list{display:grid;grid-template-columns:repeat(4,1fr);list-style:none}.highlight{border-left:1px solid #333;display:flex;flex-direction:column;gap:.75rem;padding:clamp(2.5rem,5vw,4rem) 2rem;transition:opacity .8s ease,transform .8s var(--ease-out);transition-delay:0ms;transition-delay:var(--reveal-delay,0ms)}.highlight:first-child{border-left:none;padding-left:0}.reveal-armed .highlight:not(.is-visible){opacity:0;transform:translateY(30px)}.highlight-value{font-feature-settings:"tnum";align-items:flex-end;display:flex;font-size:clamp(3rem,6vw,5.25rem);font-stretch:115%;font-variant-numeric:tabular-nums;font-weight:900;letter-spacing:-.04em;line-height:.9;min-height:calc(clamp(3rem, 6vw, 5.25rem)*.9)}.highlight-value--text{font-size:clamp(2.25rem,3.8vw,3.75rem);line-height:1.05;overflow-wrap:anywhere}.highlight-label{color:var(--color-muted-dark);font-size:.95rem;line-height:1.5;max-width:24ch}.marquee{align-items:center;border-top:1px solid #333;display:flex;gap:2rem;margin:0 auto;max-width:var(--container);overflow:hidden;padding:1.5rem 0}.marquee-label{color:var(--color-muted-dark);flex-shrink:0;font-size:.9rem}.marquee-viewport{flex:1 1;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6%,#000 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6%,#000 94%,#0000);min-width:0;overflow:hidden}.marquee-track{animation:marquee 32s linear infinite;display:flex;width:max-content}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-row{display:flex;flex-shrink:0;list-style:none}.marquee-row li{align-items:center;display:flex;font-size:clamp(1.1rem,2vw,1.5rem);font-stretch:110%;font-weight:700;gap:2rem;padding-right:2rem;white-space:nowrap}.marquee-row li:after{background:var(--color-white);content:"";height:8px;width:8px}@keyframes marquee{to{transform:translateX(-50%)}}@media (max-width:1024px){.highlights-list{grid-template-columns:repeat(2,1fr)}.highlight:nth-child(odd){border-left:none;padding-left:0}.highlight:nth-child(n+3){border-top:1px solid #333}}@media (max-width:600px){.marquee{align-items:stretch;flex-direction:column;gap:.75rem}}@media (max-width:480px){.highlights-list{grid-template-columns:1fr}.highlight{border-left:none;padding:2rem 0}.highlight+.highlight{border-top:1px solid #333}}@media (prefers-reduced-motion:reduce){.reveal-armed .highlight:not(.is-visible){transform:none}.marquee-viewport{-webkit-mask-image:none;mask-image:none}.marquee-track{animation:none;display:block;width:auto}.marquee-row{flex-shrink:1;flex-wrap:wrap;row-gap:.5rem}.marquee-row li:last-child:after,.marquee-row[aria-hidden]{display:none}}.about-section{background:var(--color-white)}.about-content{grid-gap:5rem;display:grid;gap:5rem;grid-template-columns:1fr 1fr}.about-text-section,.skills-section{display:flex;flex-direction:column;gap:2rem;min-width:0}.about-heading{color:var(--color-black);font-size:1.75rem;font-stretch:108%;font-weight:800;margin-bottom:1rem;padding-bottom:1rem;position:relative}.about-heading:after{background:var(--color-black);bottom:0;content:"";height:3px;left:0;position:absolute;width:60px}.about-text{display:flex;flex-direction:column;gap:1.5rem}.about-paragraph:first-child{color:var(--color-black);font-size:1.35rem;line-height:1.6}.about-paragraph{color:var(--color-muted);font-size:1.05rem;line-height:1.8;max-width:70ch}.toolkit{margin-top:clamp(4rem,8vw,6rem)}.toolkit-groups{grid-gap:2.5rem 2rem;display:grid;gap:2.5rem 2rem;grid-template-columns:repeat(3,1fr);padding-top:1rem}.toolkit-group-title{color:var(--color-muted);font-size:.95rem;font-weight:700;margin-bottom:1rem}.technologies-grid{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none}.tech-item-wrap{position:relative}.tech-item{background:var(--color-white);border:2px solid var(--color-black);color:var(--color-black);cursor:help;font:inherit;font-size:.9rem;font-weight:600;padding:.7rem 1rem;text-align:left;transition:background .3s ease,color .3s ease,transform .3s ease;width:auto}.tech-tooltip{background:var(--color-black);border-radius:6px;bottom:100%;box-shadow:0 4px 12px #00000026;color:var(--color-white);font-size:.8rem;left:50%;line-height:1.4;opacity:0;padding:.75rem 1rem;pointer-events:none;position:absolute;text-align:center;transform:translateX(-50%) translateY(-10px);transition:opacity .3s ease,transform .3s ease,visibility .3s;visibility:hidden;width:200px;z-index:10}.tech-tooltip:after{border:6px solid #0000;border-top:6px solid var(--color-black);content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.tech-item:focus-visible,.tech-item:hover{background:var(--color-black);color:var(--color-white);transform:translateY(-3px)}.tech-item-wrap:hover .tech-tooltip,.tech-item:focus+.tech-tooltip{opacity:1;transform:translateX(-50%) translateY(-5px);visibility:visible}.skills-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(2,1fr);list-style:none}.skill-card{background:var(--color-white);border:2px solid var(--color-black);isolation:isolate;overflow:hidden;padding:2.25rem;position:relative;transition:opacity .9s var(--ease-out),transform .9s var(--ease-out),color .45s var(--ease-out);transition-delay:0ms,0ms,0ms;transition-delay:var(--reveal-delay,0ms),var(--reveal-delay,0ms),0ms}.skill-card:before{background:var(--color-black);content:"";inset:0;position:absolute;transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease-out);z-index:-1}.skill-card:hover{color:var(--color-white)}.skill-card:hover:before{transform:scaleY(1)}.skill-card:hover .skill-icon,.skill-card:hover .skill-title{color:var(--color-white)}.skill-card:hover .skill-description{color:var(--color-muted-dark)}.skill-icon{color:var(--color-black);margin-bottom:1.5rem;transition:color .45s var(--ease-out),transform .45s var(--ease-out)}.skill-card:hover .skill-icon{transform:translateY(-4px)}.skill-title{color:var(--color-black);font-size:1.3rem;font-weight:800;margin-bottom:.75rem}.skill-description{color:var(--color-muted);font-size:.95rem;line-height:1.7;transition:color .45s var(--ease-out)}@media (max-width:1024px) and (min-width:969px){.about-content{gap:3rem}.skill-card{padding:2rem}}@media (max-width:968px){.about-content{gap:4rem;grid-template-columns:1fr}.toolkit-groups{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.skills-grid{gap:1.5rem;grid-template-columns:1fr}.skill-card{padding:2rem}.tech-tooltip{width:170px}}@media (max-width:480px){.toolkit-groups{grid-template-columns:1fr}}.projects-section{background:var(--color-surface)}.filter-buttons{display:flex;flex-wrap:wrap;gap:.25rem 1.75rem;margin-bottom:clamp(3rem,6vw,5rem)}.filter-btn{background:none;border:none;color:var(--color-muted);cursor:pointer;font-size:1.05rem;font-weight:600;padding:.4rem 0;position:relative;transition:color .3s ease}.filter-btn:after{background:var(--color-black);bottom:0;content:"";height:2px;left:0;position:absolute;right:0;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}.filter-btn.active,.filter-btn:hover{color:var(--color-black)}.filter-btn.active:after,.filter-btn:hover:after{transform:scaleX(1);transform-origin:left}.filter-count{font-size:.7em;font-weight:600;margin-left:.2rem}.featured-badge,.grade-badge{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.06em;padding:.35rem .8rem}.grade-badge{background:var(--color-white);color:var(--color-black)}.featured-badge,.grade-badge{border:2px solid var(--color-black)}.featured-badge{background:var(--color-black);color:var(--color-white)}.project-img{display:block;height:100%;object-fit:cover;width:100%}.project-img-placeholder{align-items:center;background:repeating-linear-gradient(-45deg,#0000 0 18px,#0000000d 18px 19px),#ececea;color:var(--color-black);display:flex;height:100%;justify-content:center;width:100%}.case-list{display:flex;flex-direction:column;gap:clamp(4rem,9vw,8rem);list-style:none}.case{grid-gap:clamp(2rem,5vw,5rem);align-items:center;display:grid;gap:clamp(2rem,5vw,5rem);grid-template-columns:1.15fr 1fr}.case--flipped .case-media{order:2}.case-media{position:relative}.case-media:after{border:2px solid var(--color-black);content:"";inset:0;pointer-events:none;position:absolute;transform:translate(16px,16px);transition:transform .5s var(--ease-out);z-index:0}.case--flipped .case-media:after{transform:translate(-16px,16px)}.case-media-btn{aspect-ratio:16/10;background:var(--color-white);border:3px solid var(--color-black);cursor:pointer;display:block;overflow:hidden;padding:0;position:relative;width:100%;z-index:1}.case-media-btn .project-img,.case-media-btn .project-img-placeholder{transition:transform .9s var(--ease-out),filter 1.2s ease}.reveal-armed .case-media-btn:not(.in-color) .project-img{filter:grayscale(1)}.case-media-hint{background:var(--color-black);bottom:1rem;color:var(--color-white);font-size:.85rem;font-weight:600;left:1rem;padding:.6rem 1rem;position:absolute;transform:translateY(calc(100% + 1rem));transition:transform .5s var(--ease-out)}.case:hover .case-media-btn .project-img,.case:hover .case-media-btn .project-img-placeholder{transform:scale(1.05)}.case:hover .case-media-hint{transform:none}.case:hover .case-media:after{transform:translate(8px,8px)}.case--flipped:hover .case-media:after{transform:translate(-8px,8px)}.case-meta{display:flex;gap:.5rem;margin-bottom:1.25rem}.case-title{font-size:clamp(1.75rem,3.2vw,2.75rem);font-stretch:108%;font-weight:800;letter-spacing:-.025em;line-height:1.05;margin-bottom:1.25rem}.case-description{color:var(--color-muted);font-size:1.05rem;line-height:1.7;margin-bottom:1.75rem;max-width:52ch}.case-highlight{align-items:baseline;border-bottom:1px solid var(--color-line);border-top:2px solid var(--color-black);display:flex;gap:1rem;margin-bottom:1.75rem;padding:1rem 0}.case-highlight-value{font-size:clamp(2.25rem,4vw,3.25rem);font-stretch:115%;font-weight:900;letter-spacing:-.04em;line-height:1}.case-highlight-label{color:var(--color-muted);font-size:.95rem;line-height:1.45}.case-tech{margin-bottom:2rem}.projects-subheading{border-bottom:2px solid var(--color-black);font-size:clamp(1.5rem,2.5vw,2rem);font-stretch:108%;font-weight:800;margin:clamp(5rem,10vw,8rem) 0 2rem;padding-bottom:1rem}.projects-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));list-style:none}.project-card{background:var(--color-white);border:2px solid var(--color-black);display:flex;flex-direction:column;transition:opacity .9s var(--ease-out),transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}.project-card:hover{box-shadow:6px 6px 0 var(--color-black);transform:translate(-6px,-6px)}.project-image{aspect-ratio:16/9;border-bottom:2px solid var(--color-black);overflow:hidden;position:relative}.project-image .project-img{transition:filter 1.2s ease,transform .8s var(--ease-out)}.reveal-armed .project-image:not(.in-color) .project-img{filter:grayscale(1)}.project-card:hover .project-img{transform:scale(1.04)}.project-grade{left:.75rem;position:absolute;top:.75rem}.project-content{display:flex;flex:1 1;flex-direction:column;padding:1.75rem}.project-title{font-size:1.3rem;font-weight:800;line-height:1.2;margin-bottom:.75rem}.project-highlight{color:var(--color-muted);font-size:.95rem;margin-bottom:.75rem}.project-highlight strong{color:var(--color-black);font-size:1.15rem;font-weight:900}.project-description{color:var(--color-muted);font-size:.95rem;line-height:1.65;margin-bottom:1.25rem}.project-tech{margin-bottom:1.75rem}.project-details-btn{align-self:flex-start;background:none;border:none;color:var(--color-black);cursor:pointer;font-size:1rem;font-weight:700;margin-top:auto;padding:.3rem 0;position:relative}.project-details-line{background:var(--color-black);bottom:0;height:2px;left:0;position:absolute;right:0;transform-origin:left;transition:transform .45s var(--ease-out)}.project-details-btn:hover .project-details-line{transform:scaleX(.35)}.project-modal{align-items:center;animation:projects-backdrop-in .3s ease;background:#000000e6;display:flex;inset:0;justify-content:center;padding:2rem;position:fixed;z-index:9999}@keyframes projects-backdrop-in{0%{opacity:0}to{opacity:1}}.modal-content{animation:projects-modal-in .4s var(--ease-out);background:var(--color-white);border:3px solid var(--color-black);max-height:90vh;max-width:900px;overflow-y:auto;overscroll-behavior:contain;position:relative;width:100%}@keyframes projects-modal-in{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.modal-close{align-items:center;background:var(--color-black);border:2px solid var(--color-black);color:var(--color-white);cursor:pointer;display:flex;height:50px;justify-content:center;position:absolute;right:1.5rem;top:1.5rem;transition:background .3s ease,color .3s ease,transform .3s ease;width:50px;z-index:10}.modal-close:hover{background:var(--color-white);color:var(--color-black);transform:rotate(90deg)}.modal-header{background:var(--color-surface);border-bottom:2px solid var(--color-line);padding:3rem}.modal-header h2{color:var(--color-black);font-size:2rem;font-weight:700;line-height:1.3;margin-bottom:1.5rem;padding-right:60px}.modal-body{padding:3rem}.modal-section+.modal-section{margin-top:3rem}.modal-section h3{border-bottom:2px solid var(--color-black);color:var(--color-black);font-size:1.5rem;font-weight:700;margin-bottom:1rem;padding-bottom:.5rem}.modal-section p{color:var(--color-muted);font-size:1rem;line-height:1.8}.modal-quotes{display:flex;flex-direction:column;gap:1.5rem}.modal-quote{background:var(--color-surface);border-left:4px solid var(--color-black);padding:1.5rem 1.75rem}.modal-quote blockquote p{color:var(--color-black);font-size:1.15rem;font-weight:600;line-height:1.55}.modal-section .modal-quote-translation{font-size:.95rem;font-style:italic;line-height:1.6;margin-top:.6rem}.modal-quote figcaption{font-size:.9rem;font-weight:700;margin-top:.9rem}.modal-gallery{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));margin-top:1.5rem}.modal-image,.modal-video{border:2px solid var(--color-line);height:auto;width:100%}.modal-videos{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}.modal-content::-webkit-scrollbar{width:10px}.modal-content::-webkit-scrollbar-track{background:#f5f5f5}.modal-content::-webkit-scrollbar-thumb{background:var(--color-black);border:2px solid #f5f5f5}.modal-pdfs{display:flex;flex-direction:column;gap:2rem;margin-top:1.5rem}.pdf-item{background:var(--color-surface);border:2px solid var(--color-line)}.pdf-header{background:var(--color-white);justify-content:space-between;padding:1.5rem}.pdf-header,.pdf-info{align-items:center;display:flex;gap:1rem}.pdf-name{color:var(--color-black);font-size:1rem;font-weight:600}.pdf-actions{display:flex;flex-shrink:0;gap:.75rem}.pdf-btn{align-items:center;background:var(--color-black);border:2px solid var(--color-black);color:var(--color-white);display:inline-flex;font-size:.9rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;text-decoration:none;transition:background .3s ease,color .3s ease}.pdf-btn--ghost,.pdf-btn:hover{background:var(--color-white);color:var(--color-black)}.pdf-btn--ghost:hover{background:var(--color-black);color:var(--color-white)}.pdf-viewer{background:var(--color-white);border-top:2px solid var(--color-line);height:600px}.pdf-iframe{border:none;height:100%;width:100%}@media (max-width:968px){.case{grid-template-columns:1fr}.case--flipped .case-media{order:0}.case--flipped .case-media:after,.case-media:after{transform:translate(10px,10px)}}@media (max-width:768px){.project-modal{padding:.75rem}.modal-content{max-height:95vh}.modal-body,.modal-header{padding:2rem 1.5rem}.modal-header h2{font-size:1.5rem;padding-right:50px}.modal-section h3{font-size:1.25rem}.modal-close{height:40px;right:1rem;top:1rem;width:40px}.pdf-header{align-items:stretch;flex-direction:column}.pdf-actions .pdf-btn{flex:1 1;justify-content:center}}@media (prefers-reduced-motion:reduce){.case-media-btn .project-img,.case-media-btn .project-img-placeholder,.project-card,.project-image .project-img{transform:none!important}}.experience-section{--tl-gutter:2.5rem;--tl-dot:16px;background:var(--color-white)}.timeline-wrapper{grid-gap:5rem;display:grid;gap:5rem;grid-template-columns:1fr 1fr}.timeline-column{min-width:0}.timeline-header{border-bottom:3px solid var(--color-black);gap:1.5rem;margin-bottom:3rem;padding-bottom:1.5rem}.header-icon,.timeline-header{align-items:center;display:flex}.header-icon{background:var(--color-black);border-radius:50%;color:var(--color-white);flex-shrink:0;height:60px;justify-content:center;width:60px}.timeline-header h3{color:var(--color-black);font-size:1.8rem;font-stretch:108%;font-weight:800}.timeline{list-style:none;padding-left:var(--tl-gutter);position:relative}.timeline:before{background:linear-gradient(to bottom,#000 0,var(--color-line) 100%);bottom:0;content:"";left:0;position:absolute;top:0;transform-origin:top;transition:transform 1.6s var(--ease-in-out);width:3px}.reveal-armed .timeline-column:not(.is-visible) .timeline:before{transform:scaleY(0)}.timeline-item{padding-left:var(--tl-gutter);position:relative}.timeline-item+.timeline-item{margin-top:3.5rem}.timeline-dot{background:var(--color-white);border:4px solid var(--color-black);border-radius:50%;height:var(--tl-dot);left:calc(var(--tl-gutter)*-1 + 1.5px - var(--tl-dot)/2);position:absolute;top:0;transition:transform .3s ease,background .3s ease;width:var(--tl-dot);z-index:2}.timeline-item:hover .timeline-dot{background:var(--color-black);transform:scale(1.3)}.timeline-content{background:var(--color-surface);border:2px solid var(--color-line);padding:2rem;position:relative;transition:transform .4s var(--ease-out),border-color .4s var(--ease-out),box-shadow .4s var(--ease-out)}.timeline-item:hover .timeline-content{border-color:var(--color-black);box-shadow:-6px 6px 0 var(--color-black);transform:translateX(6px)}.timeline-content.is-draft{border-color:var(--color-black);border-style:dashed}.draft-badge{border:2px dashed var(--color-black);display:inline-block;font-size:.8rem;font-weight:700;margin-bottom:1rem;padding:.3rem .75rem}.timeline-header-info{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:1rem}.timeline-chip{align-items:center;background:var(--color-black);color:var(--color-white);display:inline-flex;font-size:.85rem;font-weight:600;gap:.5rem;letter-spacing:.05em;padding:.4rem 1rem}.timeline-title{color:var(--color-black);font-size:1.4rem;font-weight:700;line-height:1.3;margin-bottom:.5rem}.timeline-company{color:var(--color-muted);font-size:1.05rem;font-weight:600;margin-bottom:1rem}.timeline-description{color:var(--color-muted);font-size:.95rem;line-height:1.7}.timeline-achievements{list-style:none;margin-top:1.5rem}.timeline-achievements li{color:var(--color-muted);font-size:.9rem;line-height:1.6;margin-bottom:.75rem;padding-left:1.5rem;position:relative}.timeline-achievements li:before{color:var(--color-black);content:"▹";font-size:1.2rem;font-weight:700;left:0;position:absolute;top:-.1em}@media (max-width:968px){.timeline-wrapper{gap:4rem;grid-template-columns:1fr}}@media (max-width:768px){.experience-section{--tl-gutter:1.5rem;--tl-dot:14px}.timeline-content{padding:1.5rem}}@media (max-width:480px){.experience-section{--tl-gutter:1rem}.timeline-content{padding:1.25rem}.timeline-header h3{font-size:1.5rem}}@media (prefers-reduced-motion:reduce){.timeline:before{transition:none}.reveal-armed .timeline-column:not(.is-visible) .timeline:before,.timeline-item:hover .timeline-content{transform:none}}.contact-section{background:var(--color-black);color:var(--color-white)}.contact-content{grid-gap:clamp(3rem,6vw,6rem);display:grid;gap:clamp(3rem,6vw,6rem);grid-template-columns:1fr 1.3fr}.contact-info{display:flex;flex-direction:column;gap:2.5rem;min-width:0}.contact-info-title{font-size:clamp(1.75rem,3vw,2.5rem);font-stretch:108%;font-weight:800;letter-spacing:-.02em;line-height:1.1}.contact-info-text{color:var(--color-muted-dark);font-size:1.05rem;line-height:1.8}.contact-detail h4,.social-title{color:var(--color-muted-dark);font-size:.95rem;font-weight:600;margin-bottom:.75rem}.contact-email{color:var(--color-white);display:inline-block;font-size:clamp(1.15rem,2.2vw,1.6rem);font-weight:700;overflow-wrap:anywhere;position:relative;text-decoration:none}.contact-email:after{background:var(--color-white);bottom:-4px;content:"";height:2px;left:0;position:absolute;right:0;transform-origin:right;transition:transform .45s var(--ease-out)}.contact-email:hover:after{transform:scaleX(0)}.social-links{display:flex;gap:.75rem}.social-link{border:2px solid var(--color-white);color:var(--color-white);display:grid;height:52px;isolation:isolate;overflow:hidden;place-items:center;position:relative;transition:color .35s var(--ease-out),transform .35s var(--ease-out);width:52px}.social-link:before{background:var(--color-white);content:"";inset:0;position:absolute;transform:translateY(101%);transition:transform .35s var(--ease-out);z-index:-1}.social-link:hover{color:var(--color-black);transform:translateY(-3px)}.social-link:hover:before{transform:none}.contact-form-wrap{min-width:0}.contact-form,.form-success{display:flex;flex-direction:column;gap:2rem}.form-success{align-items:flex-start;border:2px solid var(--color-white);padding:2.5rem}.form-success h3{font-size:1.8rem;font-weight:800}.form-success p{color:var(--color-muted-dark);line-height:1.7}.hp-field{height:1px;left:-10000px;overflow:hidden;position:absolute;width:1px}.form-row{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column;gap:.5rem;min-width:0;position:relative}.form-group label{color:var(--color-muted-dark);font-size:.9rem;font-weight:600;transition:color .3s ease}.form-group:focus-within label{color:var(--color-white)}.form-group input,.form-group textarea{background:#0000;border:none;border-bottom:2px solid #555;border-radius:0;color:var(--color-white);font-size:1.1rem;padding:.75rem 0;transition:border-color .3s ease;width:100%}.form-group input::placeholder,.form-group textarea::placeholder{color:#8a8a8a}.form-group input:focus-visible,.form-group textarea:focus-visible{border-bottom-color:var(--color-white);outline:none}.form-group textarea{min-height:140px;resize:vertical}.form-error{background:#2a0000;border:2px solid #ff8a8a;color:#ffd2d2;font-size:.95rem;line-height:1.6;padding:1rem}.form-error a{color:inherit;font-weight:700}.submit-btn{align-self:flex-start;background:var(--color-white);border-color:var(--color-white);color:var(--color-black)}.submit-btn:before{background:var(--color-black)}.submit-btn:hover{color:var(--color-white)}@media (max-width:968px){.contact-content{grid-template-columns:1fr}}@media (max-width:600px){.form-row{grid-template-columns:1fr}.submit-btn{align-self:stretch}}
/*# sourceMappingURL=main.a6b85e71.css.map*/