:root{--max-width:1100px;--border-radius:12px;--font-mono:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--fs-xl:clamp(2rem, 5vw, 2.5rem);--fs-lg:clamp(1.25rem, 3vw, 1.5rem);--fs-md:clamp(1rem, 2vw, 1.125rem);--fs-sm:clamp(0.875rem, 1.5vw, 1rem);--code-background:oklch(from var(--accentColor) l 0.1 h);--code-foreground:oklch(from var(--accentColor) calc(l + 0.6) 0.1 h)!important;--mainColor:oklch(20% 0.05 270);--subColor:oklch(55% 0.03 270);--footerColor:oklch(55% 0.03 270);--sepiaBackground:oklch(93% 0.075 70);--sepiaText:oklch(0% 0 0);--accentColor:oklch(25% 0.2 305);--quoteBg:oklch(95% 0.04 80 / 0.3);--quoteMarkColor:oklch(35% 0.07 50 / 0.15);--citationColor:oklch(35% 0.07 50 / 0.7);--profileBorderColor:oklch(35% 0.07 50 / 0.2);--heartColor:oklch(60% 0.18 29);--transition-time:0.4s}[data-theme=dark]{--sepiaBackground:oklch(20% 0.01 270);--sepiaText:oklch(93% 0.075 80);--subColor:oklch(75% 0.01 270);--footerColor:oklch(75% 0.01 270);--quoteBg:oklch(35% 0.01 270 / 0.4);--quoteMarkColor:oklch(93% 0.075 80 / 0.1);--citationColor:oklch(93% 0.075 80 / 0.6);--profileBorderColor:oklch(45% 0.05 250);--accentColor:oklch(65% 0.18 250);--heartColor:oklch(75% 0.18 29)}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;background-color:var(--sepiaBackground)}body{color:var(--sepiaText);padding:2rem 6rem;max-width:var(--max-width);margin:0 auto;font-family:var(--font-mono)}@media screen and (max-width:768px){body{padding:2rem}}@media screen and (max-width:360px){body{padding:1.5rem 1rem}}.greeting{display:block;margin-bottom:16px;font-size:var(--fs-lg);color:var(--sepiaText)}.wave{display:inline-block;animation:wave-animation 2.5s ease-in-out 20;transform-origin:70% 70%;animation-delay:1s;animation-fill-mode:forwards}@keyframes wave-animation{0%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%{transform:rotate(0)}100%{transform:rotate(0)}}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}main{display:flex;flex-direction:column;line-height:1.5}header{margin:0 0 128px;padding:0}@media screen and (max-width:768px){header{margin:0 0 64px}}nav{display:flex;gap:16px;color:var(--accentColor);font-size:var(--fs-lg)}nav a:hover{color:var(--code-foreground)}.home h1{margin:16px 0;font-size:var(--fs-xl)}.home h2{font-weight:300;color:var(--sepiaText);font-size:var(--fs-lg);line-height:1.4}.home p{font-size:var(--fs-md);margin:80px 0 0;color:var(--sepiaText);line-height:1.5}.home-wrapper{display:grid;grid-template-columns:1fr 150px;gap:32px;align-items:center;overflow:hidden}.home-content{min-width:0;overflow:hidden}.home-content>span:not(.greeting){display:block;margin-bottom:16px;font-size:var(--fs-sm)}.home-picture{width:150px;height:150px;border-radius:50%;overflow:hidden;border:3px solid var(--profileBorderColor);box-shadow:0 3px 10px rgba(0,0,0,.1);position:relative;background-color:#8fc3e9}.home-picture img{position:absolute;width:100%;height:auto;top:60%;left:50%;transform:translate(-50%,-50%) scale(1.3);min-height:100%}.cv-link{margin:24px 0}.cv-link a{display:inline-block;font-size:var(--fs-md);font-weight:500;color:var(--accentColor);padding:4px clamp(20px,5vw,32px);border:2px solid var(--accentColor);border-radius:4px;transition:all .3s ease;min-width:120px;text-align:center}@media screen and (max-width:480px){.cv-link{display:flex;justify-content:center}.cv-link a{display:block;max-width:200px}}.cv-link a:hover{background-color:var(--accentColor);color:var(--sepiaBackground);text-decoration:none}footer{margin-top:64px;font-size:13px;display:flex;gap:32px;color:var(--footerColor);justify-content:flex-end;width:100%;flex-wrap:nowrap;white-space:nowrap}.footer-text{white-space:nowrap;display:flex;align-items:center;justify-content:flex-end;gap:4px}.heart{color:var(--heartColor);display:inline-block;margin:0;font-size:12px;animation:heartbeat 1.5s ease-in-out infinite;line-height:1;vertical-align:middle}@keyframes heartbeat{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}@media screen and (max-width:768px){.home-wrapper{grid-template-columns:1fr;gap:15px}.home-picture{justify-self:center;margin:10px auto 0}footer{margin-top:40px;font-size:12px;justify-content:center}.footer-text{justify-content:center}.home-content{display:flex;flex-direction:column;align-items:center;text-align:center}.home-wrapper{justify-items:center}.home-picture{justify-self:center;margin:5px auto 0}.greeting,.home h1,.home h2{text-align:center;width:100%}.cv-link{display:flex;justify-content:center;width:100%}}footer ul{display:none}.typewriter-container{position:relative;display:inline-block;white-space:nowrap;width:0;animation:typewriter-expand-smooth 4s linear 1s forwards;vertical-align:bottom;overflow:hidden;max-width:fit-content}@keyframes typewriter-expand-smooth{from{width:0}to{width:100%}}.typewriter-container::after{content:'';position:absolute;top:0;bottom:0;right:-2px;width:3px;background-color:var(--sepiaText);animation:cursor-color-change-hold 4s linear 1s forwards,cursor-rewind .5s linear 3.2s 1 forwards,blink-after 1.5s steps(2) 5s 2,hide-cursor .1s ease 8s forwards}@keyframes cursor-color-change-hold{0%,7.1%{background-color:var(--sepiaText)}22.8%,7.2%{background-color:var(--accentColor)}100%,22.9%{background-color:var(--sepiaText)}}@keyframes blink-after{0%{opacity:1}50%{opacity:0}100%{opacity:1}}@keyframes hide-cursor{from{opacity:1;width:3px}to{opacity:0;width:0}}@keyframes cursor-rewind{0%{right:-2px;opacity:1}90%{right:100%;opacity:1}100%{right:100%;opacity:1}}.highlighted-developer{background:var(--code-background);color:var(--code-foreground);font-weight:400;padding:.1em .4em;border-radius:4px;transition:color var(--transition-time),background-color var(--transition-time)}.vintage-quote{position:relative;margin:70px auto 30px;max-width:800px;padding:clamp(30px,5vw,40px) clamp(25px,8vw,60px);background-color:var(--quoteBg);border-left:4px solid var(--accentColor);box-shadow:0 2px 15px rgba(95,75,50,.1);border-radius:2px}@media screen and (max-width:768px){.vintage-quote{margin:40px auto 30px}}@media screen and (max-width:480px){.vintage-quote{margin:30px auto 25px}}@media screen and (max-width:375px){.vintage-quote{margin:20px auto 20px}}.vintage-quote::before{content:'"';position:absolute;top:-30px;left:20px;font-size:120px;font-family:Neuton,serif;color:var(--quoteMarkColor);z-index:-1}.vintage-quote p{margin:0 0 15px 0;font-size:clamp(18px, 4vw, 24px);line-height:1.6;font-style:italic;font-family:Neuton,serif;color:var(--sepiaText);text-align:justify}.vintage-quote cite{display:block;font-size:16px;margin-top:10px;text-align:right;font-style:normal;font-family:Charter,'Bitstream Charter','Sitka Text',Cambria,serif;color:var(--citationColor)}.theme-switch-container{position:fixed;top:20px;right:20px;z-index:999;display:flex;align-items:center;padding:5px;border-radius:30px;background-color:oklch(93% .075 70 / .7);backdrop-filter:blur(5px);box-shadow:0 2px 10px rgba(0,0,0,.1);transition:background-color var(--transition-time)}[data-theme=dark] .theme-switch-container{background-color:oklch(28.5% .032 264 / .7)}.theme-switch{display:inline-block;height:24px;position:relative;width:48px}.theme-switch input{display:none}.slider{background-color:oklch(35% .07 50 / .2);bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s;border-radius:34px}.slider:before{background-color:#fff;bottom:4px;content:"";height:16px;left:4px;position:absolute;transition:.4s;width:16px;border-radius:50%}input:checked+.slider{background-color:var(--accentColor)}input:checked+.slider:before{transform:translateX(24px)}.theme-switch-container .icon{margin:0 8px;font-size:18px;color:var(--sepiaText)}.cv-link a,.greeting,.heart,.highlighted-developer,.home h1,.home h2,.home p,.typewriter-container::after,.vintage-quote,.vintage-quote cite,.vintage-quote p,.vintage-quote::before,a,body,footer{transition:color var(--transition-time),background-color var(--transition-time),border-color var(--transition-time),box-shadow var(--transition-time)}@media screen and (max-width:480px){.home h1{font-size:32px;margin:12px 0}.home h2{font-size:16px;line-height:1.5}.greeting{font-size:18px}.typewriter-container{font-size:15px;letter-spacing:-.2px}}@media screen and (max-width:360px){.home h1{font-size:28px}.home h2{font-size:14px}.typewriter-container{font-size:13px;letter-spacing:-.3px}}@media screen and (max-width:375px){.home h2{font-size:13px;letter-spacing:-.3px}.typewriter-container{font-size:12px;letter-spacing:-.5px}.typewriter-container::after{width:2px;right:-1px}.typewriter-container{animation:typewriter-expand-smooth 2.8s linear 1s forwards}}@media screen and (max-width:320px){.home h2{font-size:11px;letter-spacing:-.5px}.typewriter-container{font-size:10px;letter-spacing:-.7px}}@media screen and (min-width:481px) and (max-width:768px){.home h2{font-size:18px}.typewriter-container{font-size:17px}}@media screen and (max-width:480px){.typewriter-container{animation:typewriter-expand-smooth 3.5s linear 1s forwards}}@media screen and (max-width:360px){footer{font-size:11px}.footer-text{gap:3px}}@media (max-width:900px){.typewriter-dash{display:none}.typewriter-dot{display:inline}}@media (min-width:901px){.typewriter-dot{display:none}}@media (max-width:900px){nav{font-size:var(--fs-sm)}.typewriter-dash{display:none}.typewriter-rest{display:block;margin-top:.2em;width:0;overflow:hidden;white-space:nowrap;animation:typewriter-second-appear 3.2s steps(40,end) 3.2s forwards}nav{font-size:12px}.typewriter-container{display:block;line-height:1.2;opacity:0;animation:typewriter-container-fadein 0s linear 1s forwards,typewriter-expand-smooth 4s linear 1s forwards}.typewriter-container::after{display:none!important}}@keyframes typewriter-container-fadein{to{opacity:1}}@media (min-width:901px){.typewriter-rest{display:inline;margin-top:0;width:auto;animation:none}.typewriter-container::after{display:block;animation:cursor-color-change-hold 4s linear 1s forwards,blink-after 1.5s steps(2) 5s 2,hide-cursor .1s ease 8s forwards}}@keyframes typewriter-second-appear{from{width:0}to{width:100%}}