@font-face{font-family:Inter;src:url('/assets/fonts/Inter-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('/assets/fonts/Inter-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url('/assets/fonts/Inter-Semibold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Playfair;src:url('/assets/fonts/Playfair-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--ink:#14231d;--forest:#244b39;--paper:#f4f1ee;--panel:#18362b;--muted:#bacabd;--line:#59715e;color-scheme:light;scrollbar-gutter:stable}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--ink);font:400 1.125rem/1.56 Inter,Arial,sans-serif;min-width:20rem}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Playfair,Georgia,serif;font-weight:400}h1{font-size:2.75rem;line-height:3.5rem}h2{font-size:2rem;line-height:2.625rem}p{overflow-wrap:break-word}button:focus-visible,a:focus-visible{outline:0.1875rem solid #9edcb5;outline-offset:0.3125rem}button:disabled{cursor:default}.shell{width:min(60rem,calc(100% - 4rem));margin:auto;padding:3rem 0}.site-background{position:absolute;inset:0 0 auto;min-height:100vh;height:var(--page-height,177.875rem);z-index:-1;background:url('/assets/background-cv.png') center top/cover no-repeat;pointer-events:none}body[data-page="projects"] .site-background{background-image:url('/assets/background-projects.png')}.site-header{display:flex;gap:1.5rem;align-items:center;margin-bottom:2.5rem;min-height:3.25rem}.segmented{display:flex;position:relative;isolation:isolate;align-items:center;padding:0.25rem;border-radius:1.5rem;touch-action:pan-y}.segmented>a,.segmented>button{position:relative;z-index:1;background:none;border:0;white-space:nowrap}.page-switch{gap:0.5rem}.page-switch>a{font:400 1.75rem/2.25rem Playfair,Georgia,serif;padding:0.25rem 0.75rem}.language-switch{gap:0.1875rem;border-radius:1.25rem}.language-switch>button{font-size:0.875rem;font-weight:600;line-height:1.375rem;padding:0.5625rem 0.6875rem;min-height:2.5rem;color:var(--forest)}.glass-selector{position:absolute;left:0;top:0.25rem;height:calc(100% - 0.5rem);width:var(--selector-width,3.25rem);transform:translateX(var(--selector-x,0.25rem));border-radius:1.125rem;background:linear-gradient(145deg,#ffffffb5,#f4f1ee4d 46%,#ffffff80);border:0.0625rem solid #ffffffb5;box-shadow:inset 0 0.0625rem 0.0625rem #fff,inset 0 -0.0625rem 0.125rem #ffffff70,0 0.25rem 1rem #14231d19;backdrop-filter:blur(0.75rem) saturate(1.55);-webkit-backdrop-filter:blur(0.75rem) saturate(1.55);transition:transform .48s cubic-bezier(.22,1.35,.36,1),width .48s cubic-bezier(.22,1.35,.36,1),background .2s;pointer-events:none}.segmented.is-dragging .glass-selector{transition:none;scale:1.04 1.08;background-color:#ffffff38}.language-switch .glass-selector{border-radius:0.9375rem}.language-switch [aria-pressed="true"]{color:var(--ink)}
.glass{--mx:50%;--my:40%;--rx:0deg;--ry:0deg;position:relative;isolation:isolate;border-radius:1.25rem;border:0.0625rem solid #f4f1ee45;background:linear-gradient(135deg,#2640358c,#162e249c);color:var(--paper);box-shadow:inset 0 0.0625rem 0 #ffffff16,0 0.5rem 1.5rem #0a221310;backdrop-filter:blur(1.375rem) saturate(1.15);-webkit-backdrop-filter:blur(1.375rem) saturate(1.15);transition:box-shadow .3s,border-color .3s,transform .3s;transform:perspective(75rem) rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d}.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 30rem 17.5rem at var(--mx) var(--my),#ffffff28,transparent 75%);opacity:0;transition:opacity .35s}.glass::after{content:"";position:absolute;inset:0;border-radius:inherit;border:0.0625rem solid transparent;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 15rem 8.125rem at var(--mx) var(--my),#ffffff88,transparent 85%) border-box;mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity .35s}.glass-light{background:linear-gradient(135deg,#d8cfc36e,#cbbfaa55);color:var(--ink);border-color:#ffffff7a}.glass-light p{color:var(--forest)}.glass-light .summary{color:var(--ink)}.interactive{cursor:pointer}.interactive:focus-visible{outline:none}.interactive:focus-visible h2,.interactive:focus-visible h3{text-decoration:underline;text-underline-offset:.2em}.interactive:focus-visible::before{opacity:.7}.glass.light-education{background:#d9d7c54a}
@media(hover:hover) and (pointer:fine){.glass:hover{border-color:#f4f1ee9c;box-shadow:inset 0 0.0625rem 0.0625rem #ffffff45,inset 0 -0.0625rem 0.0625rem #ffffff12,0 0.875rem 2.375rem #071b2229}.glass:hover::before,.glass:hover::after{opacity:1}.interactive:hover{backdrop-filter:url('#glass-refraction') blur(1.25rem) saturate(1.35);-webkit-backdrop-filter:blur(1.25rem) saturate(1.35)}.button:hover{background:#ffffff24;box-shadow:inset 0 0.0625rem 0 #ffffff88,0 0.1875rem 0.75rem #0001}.button.primary:hover{background:#315d46}}
.about{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:2rem;padding:2.5rem;min-height:41.625rem}.portrait{display:block;width:15rem;height:15rem;object-fit:cover;border-radius:1rem}.language-levels{margin-top:1.5rem;font-size:1rem;line-height:1.625rem}.label{font-family:Inter,Arial,sans-serif;font-size:1rem;line-height:1.5rem;font-weight:600}.language-levels p{margin-top:0.5rem;color:var(--forest)}.about-copy{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;min-width:0}.profession{font-size:1.25rem;font-weight:500;line-height:1.75rem}.summary{line-height:1.75rem}.skills p{font-size:1rem;line-height:1.625rem;margin-top:0.5rem}.actions{display:flex;gap:0.75rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;border:0.0625rem solid var(--line);border-radius:0.75rem;padding:0.75rem 1.25rem;font:500 1.0625rem/1.5rem Inter,sans-serif;background:transparent;color:var(--forest);transition:background .2s,box-shadow .2s}.button.primary{background:var(--forest);color:var(--paper);border-color:var(--forest)}.email{font-size:1rem;line-height:1.625rem;color:var(--forest)}.email:hover{text-decoration:underline}.experience{margin-top:2.5rem}.section-title{display:inline-block;padding:1rem;border-radius:0.75rem;margin-bottom:1.5rem}.experience-list,.project-list{display:grid;gap:1.25rem}.experience-card{padding:2.25rem;min-height:16rem;display:flex;flex-direction:column;gap:1rem}.company-period{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start}.company-period h3{font-size:1.625rem;line-height:2.125rem;max-width:44rem}.period{min-width:8.125rem;text-align:right;color:var(--muted);font-size:1rem;line-height:1.625rem}.role{font-size:1.25rem;line-height:1.75rem;font-weight:500}.experience-card>p:last-child{line-height:1.75rem}.extra-grid{display:grid;grid-template-columns:22.5rem minmax(0,1fr);gap:1.5rem;margin-top:2.5rem}.extra-grid>section{padding:2rem;min-height:22.5rem;display:flex;flex-direction:column;gap:1rem}.extra-grid .university{font-size:1.25rem;font-weight:500;line-height:1.75rem}.extra-grid h2{font-size:1.75rem;line-height:2.25rem}.extra-grid>section:first-child h2{font-size:2rem;line-height:2.625rem}.muted{color:var(--muted)}footer{text-align:center;color:var(--muted);font-size:0.875rem;line-height:1.375rem;margin-top:2.5rem;padding:1rem}.projects-intro{padding:2.5rem;min-height:11.125rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:2.5rem}.projects-intro h1{letter-spacing:-0.09625rem}.projects-intro p{margin-top:0.75rem}.intro-count{font-size:0.875rem;color:var(--forest);white-space:nowrap}.project-card{display:grid;grid-template-columns:25rem minmax(0,1fr);gap:1.5rem;align-items:center;padding:2.5rem;min-height:30rem}.project-copy{padding:0.25rem 0}.project-number{display:flex;align-items:center;gap:0.625rem;font-size:0.875rem;line-height:1.25rem;margin-bottom:0.875rem}.project-number::after{content:"";width:2.125rem;height:0.0625rem;background:currentColor;opacity:.5}.project-card h2{letter-spacing:-0.05rem;margin-bottom:0.875rem}.project-type{font-size:1rem;line-height:1.5rem;font-weight:500;margin-bottom:1.125rem}.project-description{line-height:1.75rem;margin-bottom:1.375rem}.tags{display:flex;flex-wrap:wrap;gap:0.875rem;list-style:none;padding:0;margin:0 0 1.5rem;font-size:0.875rem;line-height:1.25rem}.tags li{padding-bottom:0.1875rem;border-bottom:0.0625rem solid currentColor;opacity:.88}.project-card .button:not(.primary),dialog .button{color:var(--paper);border-color:#f4f1ee9c;background:#f4f1ee1f}.project-visual{width:100%;height:auto;object-fit:contain;display:block;pointer-events:none}.project-card:nth-child(3) .project-visual{aspect-ratio:456/258.323}.project-card:nth-child(2) .project-visual{aspect-ratio:456/290}.project-card:first-child .project-visual{aspect-ratio:456/272}
dialog{border:0;outline:none;border-radius:1.25rem;width:min(60rem,calc(100% - 2.5rem));padding:0;max-height:calc(100dvh - 4rem);color:var(--paper);background:#18362be8;box-shadow:0 2rem 6.25rem #0007;overscroll-behavior:contain;backdrop-filter:blur(1.75rem);-webkit-backdrop-filter:blur(1.75rem);scrollbar-width:thin;scrollbar-color:#bacabd66 transparent}dialog::backdrop{background:linear-gradient(#1222198c,#09160dd9);backdrop-filter:blur(0.5rem);-webkit-backdrop-filter:blur(0.5rem)}dialog[open]{animation:dialog-in .3s cubic-bezier(.2,.8,.2,1)}dialog[open]::backdrop{animation:shade-in .25s}.dialog-surface{position:relative;padding:3rem}.close-button{position:sticky;top:1rem;float:right;z-index:2;width:2.5rem;height:2.5rem;margin:-1.75rem -1.75rem 0 0.5rem;display:grid;place-items:center;border:0;border-radius:50%;background:#f4f1ee21;backdrop-filter:blur(0.75rem);color:var(--paper);padding:0}.close-button svg{display:block;width:1rem;height:1rem}.close-button:hover{background:#f4f1ee3b}.close-button:focus-visible{outline:none;background:#f4f1ee50}.close-button:focus-visible svg{color:#a4e0bc}.dialog-heading{padding-right:2.25rem;margin-bottom:2rem}.dialog-heading h2{font-size:2.25rem;line-height:2.875rem;margin-bottom:0.75rem;overflow-wrap:break-word}.dialog-heading .subtitle{font-size:1.3125rem;line-height:1.875rem}.dialog-heading .field{font-size:1rem;font-weight:600;line-height:1.5rem;margin-top:0.75rem}.dialog-heading.has-link{display:flex;justify-content:space-between;gap:1.5rem;align-items:center}.detail-section{margin-top:2rem;display:flex;flex-direction:column;gap:1rem}.detail-section h3{font:600 1rem/1.5rem Inter,sans-serif}.detail-section a{text-decoration:underline;text-underline-offset:0.25rem;overflow-wrap:anywhere}.model-viewport{aspect-ratio:2/1;width:100%;margin:2rem 0;display:grid;place-items:center;overflow:hidden}.model-viewport img{display:block;width:100%;height:100%;object-fit:contain;min-height:0}.loading,.noscript{padding:2rem;border-radius:1.25rem;background:#f4f1eecc}.skip-link{position:fixed;top:-6.25rem;left:1rem;z-index:10;background:var(--paper);padding:0.625rem 1rem;border-radius:0.75rem}.skip-link:focus{top:1rem}.filter-definitions{position:absolute;pointer-events:none}.page-content{animation:page-in .35s ease-out}.load-error{background:var(--paper);padding:2rem;border-radius:1.25rem}body:has(dialog[open]){overflow:hidden}
@keyframes dialog-in{from{opacity:0;transform:translateY(1.125rem) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shade-in{from{opacity:0}to{opacity:1}}@keyframes page-in{from{opacity:0;transform:translateY(0.5rem)}to{opacity:1;transform:translateY(0)}}
@media screen and (min-width:721px){:root{font-size:clamp(12px,1.111111vw,16px)}}
@media(min-width:1500px){.site-background{background-size:100% auto}}
@media(max-width:720px){.shell{width:calc(100% - 32px);padding:24px 0}.site-header{gap:10px;justify-content:space-between;margin-bottom:24px}.page-switch{gap:0}.page-switch>a{font-size:23px;line-height:30px;padding:8px 10px}.language-switch{gap:0;padding:3px}.language-switch>button{padding:8px;min-width:34px;font-size:12px}.glass-selector{border-radius:16px}.about{grid-template-columns:1fr;padding:24px;gap:24px;min-height:0}.about-side{display:flex;align-items:center;gap:24px}.portrait{width:124px;height:148px;flex-shrink:0;object-position:center}.language-levels{margin:0;font-size:13px;line-height:22px}.language-levels .label{font-size:14px}.about-copy{gap:16px}h1{font-size:34px;line-height:43px}.profession{font-size:18px;line-height:27px}.summary{font-size:16px;line-height:26px}.skills p{font-size:14px;line-height:24px}.button{font-size:14px;line-height:22px;padding:10px 14px}.actions{gap:8px}.experience{margin-top:28px}.section-title{padding:12px 16px;margin-bottom:20px;font-size:28px;line-height:36px}.experience-card{padding:24px;gap:14px;min-height:0}.company-period{flex-direction:column;gap:8px}.company-period h3{font-size:25px;line-height:33px;max-width:100%}.period{font-size:14px;line-height:22px;min-width:0;text-align:left}.role{font-size:17px;line-height:26px}.experience-card>p:last-child{font-size:16px;line-height:26px}.extra-grid{grid-template-columns:1fr;margin-top:28px;gap:20px}.extra-grid>section{padding:24px;min-height:0}.extra-grid p{font-size:16px;line-height:26px}footer{margin-top:24px;font-size:11px;line-height:18px;padding:12px 0}.projects-intro{padding:24px;min-height:0;margin-bottom:24px;align-items:flex-start}.projects-intro h1{font-size:34px;line-height:43px;letter-spacing:-1px}.projects-intro p{font-size:16px;line-height:26px}.intro-count{font-size:11px;margin-top:12px}.project-card{grid-template-columns:1fr;padding:24px;gap:20px;min-height:0}.project-card h2{font-size:30px;line-height:39px}.project-type{font-size:14px;line-height:23px}.project-description{font-size:16px;line-height:26px}.project-visual{max-height:240px}.project-card .tags{gap:12px;font-size:12px}.project-card .button{padding:11px 20px}.project-card .project-copy{grid-row:2}.project-card .project-visual{grid-row:1}.project-number{margin-bottom:10px}dialog{width:calc(100% - 24px);max-height:calc(100dvh - 32px)}.dialog-surface{padding:28px 24px}.close-button{margin:-14px -12px 0 6px;top:8px;width:36px;height:36px}.dialog-heading h2{font-size:29px;line-height:38px}.dialog-heading .subtitle{font-size:18px;line-height:27px}.dialog-heading .field{font-size:14px;line-height:23px}.dialog-heading.has-link{display:block}.dialog-heading .button{margin-top:20px}.detail-section{margin-top:24px;gap:12px}.detail-section p{font-size:16px;line-height:26px}.model-viewport{margin:24px 0;aspect-ratio:1.5}.site-background{background-size:auto 100%;background-position:50% top}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.glass{transform:none!important}.interactive:hover{backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}}
@supports not (backdrop-filter:blur(1px)){.glass{background:#18362bf0}.glass-light{background:#ded5c9f5}.light-education{background:#5d6a5df5}.glass-selector{background:#f4f1eecc}dialog{background:var(--panel)}}
@media print{body{background:white;color:#14231d;font-size:12px}.site-background,.site-header,.actions,.email,footer,.filter-definitions,dialog,.skip-link{display:none!important}.shell{padding:0;width:100%}.glass{background:transparent!important;color:#14231d!important;box-shadow:none;backdrop-filter:none;border:0;transform:none}.glass p,.muted,.period{color:#14231d!important}.about{padding:0;grid-template-columns:140px 1fr;gap:24px;min-height:0}.portrait{width:140px;height:140px}.about h1{font-size:30px;line-height:38px}.about p{font-size:12px;line-height:18px}.skills p{font-size:11px;line-height:16px}.experience{margin-top:24px}.experience-card{padding:16px 0;min-height:0;break-inside:avoid;border-bottom:1px solid #ddd}.experience-card>p:last-child,.role{font-size:12px;line-height:18px}.company-period h3{font-size:20px;line-height:26px}.period{font-size:12px}.section-title{font-size:25px;padding:0;margin-bottom:8px;background:none}.extra-grid{margin-top:20px}.extra-grid>section{padding:0;min-height:0}.extra-grid p{font-size:12px;line-height:18px}.extra-grid h2{font-size:22px;line-height:28px}}
.segmented{user-select:none;-webkit-user-select:none}
.experience-list,.project-list{grid-template-columns:minmax(0,1fr)}
.glass{min-width:0}
h1,h2,h3{overflow-wrap:anywhere}
.footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem 1.5rem;margin-bottom:.75rem}.footer-links a{text-decoration:underline;text-underline-offset:.25em}.footer-links a:hover{color:var(--paper)}.footer-links [aria-current="page"]{text-decoration-thickness:2px}
