@font-face{font-family:Gloock;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/gloock-latin.woff2) format("woff2")}@font-face{font-family:Spline Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/spline-sans-latin.woff2) format("woff2")}@font-face{font-family:Spline Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/spline-sans-latin.woff2) format("woff2")}:root{--bg: #ffffff;--ink: #000000;--line: #e0e0e0;--line-strong: #000000;--accent: #2b00ff;--serif: "Gloock", serif;--sans: "Spline Sans", sans-serif;--container: 1400px;--header-height: 80px}@media(prefers-color-scheme:dark){:root{--bg: #111111;--ink: #ffffff;--line: #333333;--line-strong: #ffffff}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background-color:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.2}a{color:inherit;text-decoration:none;cursor:pointer}::selection{background:var(--ink);color:var(--bg)}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 2rem}@media(max-width:768px){.container{padding:0 1.25rem}}.display-text{font-family:var(--serif);font-size:clamp(3rem,12vw,10rem);line-height:.9;letter-spacing:-.03em;font-weight:400;text-transform:lowercase}@media(max-width:768px){.display-text{font-size:clamp(3rem,15vw,5rem)}}.heading-l{font-family:var(--sans);font-size:clamp(1.5rem,3vw,2.5rem);font-weight:500;letter-spacing:-.02em}.heading-m{font-family:var(--sans);font-size:1.25rem;font-weight:500}.mono-label{font-family:var(--sans);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;color:var(--ink);opacity:.6}.grid-cols-2{display:grid;grid-template-columns:1fr 1fr}.grid-cols-3{display:grid;grid-template-columns:1fr 1fr 1fr}@media(max-width:900px){.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}}.site-header{position:fixed;top:0;left:0;width:100%;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;z-index:100;background-color:var(--bg);border-bottom:1px solid transparent;color:var(--ink);transition:border-bottom-color .4s ease}@media(max-width:768px){.site-header{padding:0 1.25rem;height:60px}}.site-header.scrolled{border-bottom-color:var(--line)}.brand{font-weight:700;font-size:1.5rem;letter-spacing:-.04em}.nav-links{display:flex;align-items:center;gap:2rem}@media(max-width:768px){.nav-links{gap:1rem;font-size:.8rem}.nav-links{gap:1.5rem}.nav-link{font-size:.85rem}}.nav-link{font-size:.9rem;font-weight:500;position:relative}.nav-link:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:currentColor;transition:width .3s ease}.nav-link:hover:after{width:100%}.hidden-mobile{display:flex;gap:2rem}@media(max-width:768px){.hidden-mobile{display:none}}.lang-toggle{background:transparent;border:1px solid var(--ink);color:var(--ink);padding:.4rem .75rem;font-size:.75rem;font-weight:600;letter-spacing:.05em;cursor:pointer;transition:background .2s ease,color .2s ease}.lang-toggle:hover{background:var(--ink);color:var(--bg)}.hero-section{min-height:100vh;padding-top:var(--header-height);display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid var(--line-strong)}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;width:100%}.hero-content{display:flex;flex-direction:column;gap:2rem}.hero-image-container{position:relative;aspect-ratio:3/4;overflow:hidden;max-height:80vh;mask-image:radial-gradient(ellipse at center,black 40%,transparent 95%);-webkit-mask-image:radial-gradient(ellipse at center,black 40%,transparent 95%)}.hero-image{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.1);transition:transform .6s cubic-bezier(.16,1,.3,1),filter .3s ease}.hero-image:hover{transform:scale(1.02);filter:grayscale(100%) contrast(1.15)}@media(max-width:900px){.hero-grid{grid-template-columns:1fr;padding-top:1rem;padding-bottom:2rem;gap:3rem}.hero-image-container{max-width:100%;margin:0;aspect-ratio:4/5}}.hero-intro{max-width:600px;font-size:1.5rem;line-height:1.4;font-weight:400}.section{border-bottom:1px solid var(--line)}.section-inner{padding:6rem 0;display:grid;grid-template-columns:300px 1fr;gap:2rem}@media(max-width:900px){.section-inner{grid-template-columns:1fr;padding:4rem 0}}.section-header{position:sticky;top:100px;height:fit-content}@media(max-width:900px){.section-header{position:static;margin-bottom:2rem}}.experience-list{display:flex;flex-direction:column}.experience-item{padding:2rem 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:1rem;transition:padding .3s ease,background .3s ease}.experience-item:first-child{border-top:none}.experience-item:hover{padding-left:2rem;padding-right:2rem;background:#0000000d}@media(prefers-color-scheme:dark){.experience-item:hover{background:#ffffff14}}.project-card{display:block;border:1px solid var(--line-strong);height:100%;padding:2rem;transition:transform .3s cubic-bezier(.25,1,.5,1),box-shadow .3s ease;background:var(--bg)}.project-card:hover{transform:translate(-5px,-5px);box-shadow:10px 10px 0 var(--ink)}.btn-primary{display:inline-block;background:var(--ink);color:var(--bg);padding:1rem 2rem;font-weight:500;border:1px solid var(--ink);transition:all .2s ease}.btn-primary:hover{background:var(--bg);color:var(--ink)}.btn-secondary{display:inline-block;background:transparent;color:var(--ink);padding:1rem 2rem;border:1px solid var(--ink);font-weight:500;transition:all .2s ease}.btn-secondary:hover{background:var(--ink);color:var(--bg)}.footer{padding:4rem 2rem;border-top:1px solid var(--line-strong);display:flex;justify-content:space-between;align-items:flex-end}@media(max-width:768px){.footer{flex-direction:column;align-items:flex-start;gap:3rem;padding:3rem 1.25rem}}.footer-link{font-size:5vw;font-family:var(--serif);line-height:1}@media(max-width:768px){.footer-link{font-size:3rem}}.footer-link:hover{font-style:italic}.mt-4{margin-top:2rem}.mb-2{margin-bottom:1rem}.flex-wrap{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{border:1px solid var(--line);padding:.5rem 1rem;font-size:.9rem;border-radius:0}.reveal{opacity:0;transform:translateY(20px)}.reveal.visible{animation:fadeUp .8s cubic-bezier(.16,1,.3,1) forwards}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
