@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/montserrat-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/montserrat-latin-700-normal.woff2) format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:900;src:url(/fonts/montserrat-latin-900-normal.woff2) format("woff2")}@font-face{font-family:Montserrat Fallback;font-weight:600;src:local("Arial Bold"),local("Arial-BoldMT"),local("Roboto Bold"),local("Roboto-Bold"),local("Liberation Sans Bold");size-adjust:107.8%;ascent-override:90%;descent-override:23.2%;line-gap-override:0%}@font-face{font-family:Montserrat Fallback;font-weight:700;src:local("Arial Bold"),local("Arial-BoldMT"),local("Roboto Bold"),local("Roboto-Bold"),local("Liberation Sans Bold");size-adjust:109.5%;ascent-override:88.6%;descent-override:22.8%;line-gap-override:0%}@font-face{font-family:Montserrat Fallback;font-weight:900;src:local("Arial Bold"),local("Arial-BoldMT"),local("Roboto Bold"),local("Roboto-Bold"),local("Liberation Sans Bold");size-adjust:114.3%;ascent-override:84.9%;descent-override:21.9%;line-gap-override:0%}:root{--color-bg: #0f0f13;--color-bg-ds: #15151d;--color-surface: #1a1a20;--color-surface-translucent: rgb(26 26 32 / 40%);--color-header-bg: rgb(15 15 19 / 80%);--color-glass: rgb(255 255 255 / 3%);--color-card-glow: rgb(255 0 110 / 12%);--color-overlay: rgb(255 255 255 / 5%);--color-overlay-subtle: rgb(255 255 255 / 2%);--color-border-subtle: rgb(255 255 255 / 5%);--color-border: rgb(255 255 255 / 10%);--color-border-strong: rgb(255 255 255 / 20%);--color-text: #fff;--color-text-white: rgb(255 255 255 / 90%);--color-body: rgb(255 255 255 / 80%);--color-text-muted: #a1a1aa;--color-text-inverse: #0f0f13;--color-accent-pink: #ff006e;--color-accent-pink-text: #ff2d87;--color-accent-violet: #8338ec;--color-accent-text-from: #f05;--color-accent-text-to: #8530ff;--color-accent-violet-text: #a78bfa;--color-accent-cyan: #22d3ee;--color-accent-green: #06d6a0;--color-accent-green-soft: rgb(6 214 160 / 10%);--color-accent-green-border: rgb(6 214 160 / 20%);--color-accent-pink-soft: rgb(255 0 110 / 10%);--color-accent-pink-border: rgb(255 0 110 / 20%);--color-accent-violet-soft: rgb(131 56 236 / 10%);--color-accent-violet-border: rgb(131 56 236 / 20%);--color-media-overlay: rgb(131 56 236 / 20%);--gradient-accent: linear-gradient(90deg, var(--color-accent-pink), var(--color-accent-violet));--gradient-button: linear-gradient(90deg, #e0005c, var(--color-accent-violet));--gradient-text: linear-gradient( 90deg, var(--color-accent-text-from), var(--color-accent-text-to) );--glow-violet: rgb(131 56 236 / 10%);--glow-pink: rgb(255 0 110 / 5%);--gradient-ambient: radial-gradient(ellipse 1810px 4290px at 0 0, var(--glow-violet), transparent 50%), radial-gradient(ellipse 1810px 4290px at 100% 100%, var(--glow-pink), transparent 50%);--gradient-hero-aura: radial-gradient( circle farthest-corner, rgb(112 0 255 / 30%) 0%, rgb(184 0 170 / 20%) 35%, rgb(255 0 85 / 10%) 70%, transparent 100% );--gradient-media-fade: linear-gradient(to top, rgb(15 15 19 / 80%), rgb(15 15 19 / 0%) 50%);--gradient-main: linear-gradient(105deg, #f51115 7%, #f5119a 35%, #842fc0 64%, #1c40cf 93%);--tag-blue-bg: rgb(37 99 235 / 20%);--tag-blue-border: rgb(37 99 235 / 30%);--tag-blue-text: #60a5fa;--tag-red-bg: rgb(220 38 38 / 20%);--tag-red-border: rgb(220 38 38 / 30%);--tag-red-text: #f87171;--tag-sky-bg: rgb(96 165 250 / 20%);--tag-sky-border: rgb(96 165 250 / 30%);--tag-sky-text: #93c5fd;--tag-pink-bg: rgb(219 39 119 / 20%);--tag-pink-border: rgb(219 39 119 / 30%);--tag-pink-text: #f472b6;--tag-green-bg: rgb(22 163 74 / 20%);--tag-green-border: rgb(22 163 74 / 30%);--tag-green-text: #4ade80;--tag-violet-bg: rgb(131 56 236 / 20%);--tag-violet-border: rgb(131 56 236 / 30%);--tag-violet-text: var(--color-accent-violet-text);--tag-neutral-bg: var(--color-overlay);--tag-neutral-border: var(--color-border);--tag-neutral-text: var(--color-text-muted);--skill-blue-bg: rgb(59 130 246 / 10%);--skill-blue-icon: #60a5fa;--skill-white-bg: rgb(255 255 255 / 10%);--skill-white-icon: var(--color-text);--skill-indigo-bg: rgb(37 99 235 / 10%);--skill-indigo-icon: #3b82f6;--skill-cyan-bg: rgb(6 182 212 / 10%);--skill-cyan-icon: var(--color-accent-cyan);--skill-green-bg: rgb(34 197 94 / 10%);--skill-green-icon: #22c55e;--skill-pink-bg: rgb(236 72 153 / 10%);--skill-pink-icon: var(--color-accent-pink);--skill-sky-bg: rgb(96 165 250 / 10%);--skill-sky-icon: #60a5fa;--skill-orange-bg: rgb(249 115 22 / 10%);--skill-orange-icon: #fb923c;--skill-rose-bg: rgb(255 0 110 / 5%);--skill-rose-icon: var(--color-accent-pink);--skill-violet-bg: rgb(131 56 236 / 5%);--skill-violet-icon: var(--color-accent-violet);--font-family-base: "Montserrat", "Montserrat Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-black: 900;--font-size-display-xl: clamp(5rem, 3.5rem + 7vw, 9rem);--font-size-display-l: clamp(2.25rem, 1.6rem + 2.6vw, 3.5625rem);--font-size-display-m: clamp(1.875rem, 1.4rem + 2vw, 2.8125rem);--font-size-display-s: clamp(1.75rem, 1.45rem + 1.2vw, 2.25rem);--font-size-headline-l: clamp(1.625rem, 1.4rem + .9vw, 2rem);--font-size-headline-m: clamp(1.375rem, 1.2rem + .7vw, 1.75rem);--font-size-headline-s: 1.5rem;--font-size-body-l: 1rem;--font-size-body-m: .875rem;--font-size-body-s: .75rem;--font-size-label-l: .875rem;--font-size-label-m: .75rem;--font-size-label-s: .6875rem;--line-height-none: 1;--line-height-tight: 1.05;--line-height-heading: 1.1;--line-height-body: 1.5;--space-0-5: .125rem;--space-1: .25rem;--space-1-5: .375rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-18: 4.5rem;--space-20: 5rem;--space-24: 6rem;--container-max: 80rem;--container-gutter: var(--space-6);--header-height: 5rem;--section-padding-y: clamp(var(--space-12), 6vw, var(--space-16));--tag-padding-inline: .5625rem;--header-cv-padding-block: .59375rem;--size-px: 1px;--size-logo: 2.5rem;--logo-cutout: 2px;--size-hero-art: min(var(--measure-md), 66dvh);--size-skill-icon-md: 5rem;--size-skill-icon-sm: 4rem;--size-timeline-marker-inline: 3rem;--size-timeline-marker-block: 2.41rem;--size-institution-logo: 3.5rem;--size-portrait-sm: 16rem;--size-portrait-lg: 24rem;--size-cta-halo: 20rem;--measure-xs: 28rem;--measure-sm: 32rem;--measure-md: 36rem;--measure-lg: 42rem;--icon-size-default: 1em;--icon-size-xs: .625rem;--icon-size-sm: .9375rem;--icon-size-md: 1.125rem;--icon-size-base: 1rem;--icon-size-lg: 1.25rem;--icon-size-tile: 1.5rem;--icon-size-xl: 1.875rem;--mask-opaque: rgb(0 0 0 / 100%);--mask-half: rgb(0 0 0 / 50%);--mask-faint: rgb(0 0 0 / 20%);--mask-clear: rgb(0 0 0 / 0%);--border-width-thin: 1px;--border-width-thick: 2px;--underline-offset: .25em;--radius-xs: .25rem;--radius-sm: .375rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-featured: 2rem;--radius-skill: 2.5rem;--radius-2xl: 3rem;--radius-pill: 9999px;--blur-header: 6px;--blur-glass: 5px;--blur-glow: 32px;--blur-aura: 40px;--blur-cta: 50px;--blur-timeline-marker: 20px;--shadow-glass-hover: 0 24px 48px -24px rgb(131 56 236 / 35%);--focus-ring-color: var(--color-accent-pink);--focus-ring: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--focus-ring-color);--opacity-disabled: .6;--opacity-cta-halo: .1;--opacity-portrait-aura: .25;--opacity-timeline-idle: .4;--duration-fast: .15s;--duration-base: .25s;--duration-page: .32s;--ease-out: cubic-bezier(.22, 1, .36, 1);--lift-button: -1px;--lift-card: -2px;--nudge-icon: var(--space-1);--size-card-glow: 260px;--distance-reveal: var(--space-16);--scale-reveal: .94;--scale-timeline-idle: .88;--z-header: 100;--z-menu: 90}@media(min-width:1024px){:root{--container-gutter: var(--space-8)}}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-base: 0ms;--duration-page: 0ms}}*,*:before,*:after{box-sizing:border-box;background-origin:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:var(--header-height)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{min-height:100dvh;-webkit-font-smoothing:antialiased}img,picture,svg,video{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background-color:transparent;background-image:none;border:0;padding:0}a{color:inherit;text-decoration:none}ul[role=list],ol[role=list]{list-style:none;padding:0}p,h1,h2,h3,h4{overflow-wrap:break-word}body{font-family:var(--font-family-base);font-size:var(--font-size-body-l);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body);color:var(--color-text-muted);background-color:var(--color-bg)}h1,h2,h3,h4{font-weight:var(--font-weight-black);line-height:var(--line-height-heading);color:var(--color-text)}.text-display-l{font-size:var(--font-size-display-l);font-weight:var(--font-weight-black);line-height:var(--line-height-tight)}.text-display-m{font-size:var(--font-size-display-m);font-weight:var(--font-weight-black);line-height:var(--line-height-tight)}.text-display-s{font-size:var(--font-size-display-s);font-weight:var(--font-weight-black);line-height:var(--line-height-heading)}.text-headline-l{font-size:var(--font-size-headline-l);font-weight:var(--font-weight-black);line-height:var(--line-height-heading)}.text-headline-s{font-size:var(--font-size-headline-s);font-weight:var(--font-weight-black);line-height:var(--line-height-heading)}.text-body-l{font-size:var(--font-size-body-l);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body)}.text-body-m{font-size:var(--font-size-body-m);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body)}.text-label-l{font-size:var(--font-size-label-l);font-weight:var(--font-weight-bold);line-height:var(--line-height-body)}.text-label-m{font-size:var(--font-size-label-m);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body)}.text-label-s{font-size:var(--font-size-label-s);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body)}.text-gradient{background-image:var(--gradient-text);background-clip:text;-webkit-background-clip:text;color:transparent}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:var(--duration-page);animation-timing-function:var(--ease-out)}:root:active-view-transition-type(project-detail) .cover-transition{view-transition-name:var(--cover-transition-name)}.button app-icon{transition:translate var(--duration-base) var(--ease-out)}@media(hover:hover){.button:hover app-icon{translate:var(--nudge-icon) 0}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: view()){.reveal{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 80%}.reveal:nth-child(3n+2){animation-range:entry 10% entry 90%}.reveal:nth-child(3n){animation-range:entry 20% entry 100%}}}@keyframes reveal{0%{opacity:0;translate:0 var(--distance-reveal);scale:var(--scale-reveal)}}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-xs)}::selection{background-color:var(--color-accent-violet);color:var(--color-text)}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-gutter)}.visually-hidden{position:absolute;width:var(--size-px);height:var(--size-px);padding:0;margin:calc(-1 * var(--size-px));overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;top:var(--space-2);left:var(--space-2);z-index:calc(var(--z-header) + 1);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background-color:var(--color-text);color:var(--color-text-inverse);font-weight:var(--font-weight-bold);transform:translateY(-200%)}.skip-link:focus-visible{transform:none}
