@font-face{font-family:Roboto;src:url(/fonts/Roboto-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--color-brand: #3f5170;--color-brand-strong: #2f3e57;--color-accent: #3a5fc8;--color-accent-hover: #2b4796;--color-text: #1f2330;--color-text-muted: #5b6172;--color-bg: #f6f7f9;--color-surface: #ffffff;--color-border: #e6e8ee;--shadow-sm: 0 1px 2px rgba(31, 35, 48, .06), 0 1px 3px rgba(31, 35, 48, .08);--shadow-md: 0 4px 12px rgba(31, 35, 48, .08), 0 2px 4px rgba(31, 35, 48, .05);--radius: 14px;--radius-sm: 10px;--container: 880px;--space-section: clamp(2rem, 5vw, 3.25rem);--font-base: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-h1: clamp(1.9rem, 5vw, 2.5rem);--fs-h2: clamp(1.4rem, 3.5vw, 1.75rem);--fs-h3: 1.15rem;--fs-body: 1.0625rem;--fs-small: .85rem}:root[data-theme=dark]{--color-brand: #8aa0c4;--color-brand-strong: #aab9d6;--color-accent: #8ba6f0;--color-accent-hover: #a7bdf7;--color-text: #e7e9ee;--color-text-muted: #b3bccd;--color-bg: #0f1320;--color-surface: #181d2b;--color-border: #2a3142;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 14px rgba(0, 0, 0, .45)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-base);font-size:var(--fs-body);line-height:1.6;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover);text-decoration:underline}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:4px}h1,h2,h3{line-height:1.2;color:var(--color-text);font-weight:700}.page{width:100%;max-width:var(--container);margin-inline:auto;padding:clamp(1rem,4vw,2rem) clamp(1rem,4vw,1.5rem) 3rem;display:flex;flex-direction:column;gap:var(--space-section)}.section{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:clamp(1.5rem,4vw,2.25rem);scroll-margin-top:1.5rem}.section__title{font-size:var(--fs-h2);text-align:center;margin-bottom:1.5rem;color:var(--color-brand-strong)}.section__intro{text-align:center;color:var(--color-text-muted);max-width:60ch;margin:-.75rem auto 1.75rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:1.5rem;transition:transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.hero{position:relative;overflow:hidden;text-align:center;padding-top:0}.hero__cover{height:150px;background:linear-gradient(135deg,var(--color-brand) 0%,var(--color-brand-strong) 100%);margin:calc(-1*clamp(1.5rem,4vw,2.25rem)) calc(-1*clamp(1.5rem,4vw,2.25rem)) 0}.hero__avatar{width:150px;height:150px;filter:grayscale(.5);border-radius:50%;object-fit:cover;border:5px solid var(--color-surface);margin:-90px auto 0;box-shadow:var(--shadow-md)}.hero__name{font-size:var(--fs-h1);color:var(--color-brand-strong);margin-top:1rem}.hero__roles{font-size:1.05rem;color:var(--color-text-muted);margin-top:.55rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;line-height:1.4}.hero__role{max-width:34ch}.hero__brandlogo{display:block;width:110px;margin:1.25rem auto 0}.hero__brandlogo svg{display:block;width:100%;height:auto}.hero__uni{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;margin-top:1.25rem;padding:.6rem 1.15rem;border-radius:999px;background-color:var(--color-brand);color:#fff;font-size:.9rem;line-height:1;max-width:100%;white-space:nowrap}.hero__uni-text{font-size:.8rem;font-weight:400;letter-spacing:.01em}.hero__uni-logo{height:15px;width:auto;max-width:95px;display:block;flex:none;filter:brightness(0) invert(1);transform:scale(1.3) translateY(-2px);transform-origin:center}:root[data-theme=dark] .hero__uni-logo{filter:none}.hero__uni:hover{background-color:var(--color-brand-strong);color:#fff;text-decoration:none}:root[data-theme=dark] .hero__uni,:root[data-theme=dark] .hero__uni:hover{color:var(--color-bg)}.social{display:flex;gap:.85rem;justify-content:center;margin-top:1.25rem}.social a{display:inline-flex;transition:transform .18s ease}.social a:hover{transform:scale(1.12)}.social img{height:30px;width:auto;filter:grayscale(.5)}.service{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.service__title{font-size:var(--fs-h3);font-weight:500;color:var(--color-brand-strong);min-height:3em;display:flex;align-items:center}.service__logos{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:center;justify-content:center;margin-top:auto}.service__logos img{height:56px;width:auto;filter:grayscale(.4)}.service__logos .svg-icon{display:inline-flex;color:var(--color-text);filter:grayscale(.4)}.service__logos .svg-icon svg{height:42px;width:auto}.project__title{font-size:var(--fs-h3);color:var(--color-brand-strong);margin-bottom:.5rem}.project__tag{display:inline-block;font-size:var(--fs-small);color:var(--color-brand);background:color-mix(in srgb,var(--color-brand) 12%,transparent);border-radius:999px;padding:.15rem .7rem;margin-bottom:.75rem}.project__text{color:var(--color-text);hyphens:auto;-webkit-hyphens:auto}.project__image{display:block;justify-self:center;opacity:.9;max-width:75%;height:auto;margin-top:1.1rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.course__note{margin-top:.65rem;font-size:.9rem;font-style:italic;color:var(--color-text-muted)}.research__focus{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.75rem}.research__focus li{list-style:none;font-size:var(--fs-small);border:1px solid color-mix(in srgb,var(--color-brand) 30%,var(--color-border));border-radius:999px;padding:.25rem .8rem;color:var(--color-brand-strong);background:color-mix(in srgb,var(--color-brand) 9%,transparent)}.talks-wrap{display:flex;flex-direction:column;gap:2.25rem}.talks__subhead{font-size:1.05rem;font-weight:700;color:var(--color-brand-strong);margin-bottom:1.1rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-border)}.talks{display:flex;flex-direction:column;gap:1rem}.talk{display:grid;grid-template-columns:48px 1fr;gap:.25rem 1rem;align-items:start;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.talk:last-of-type{border-bottom:none}.talk__icon{grid-row:span 2;width:48px;height:48px;object-fit:contain;border-radius:10px}.talk__icon:not(.talk__icon--academic){filter:grayscale(.6)}.talk__icon--academic{display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--color-brand) 14%,transparent);color:var(--color-brand-strong)}.talk__icon--academic svg{width:26px;height:26px}.talk__kind{font-size:var(--fs-small);color:var(--color-brand);background:color-mix(in srgb,var(--color-brand) 12%,transparent);border-radius:999px;padding:.1rem .6rem}.talk__meta{grid-column:2;font-size:.92rem;font-weight:500;color:var(--color-brand-strong)}.talk__text--note{font-size:.82rem;color:color-mix(in srgb,var(--color-text-muted) 70%,transparent);font-style:italic}.talk__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}.talk__title{font-size:1.1rem;font-weight:500;color:var(--color-brand-strong)}.talk__when{font-size:var(--fs-small);color:var(--color-text-muted)}.talk__text{grid-column:2;color:var(--color-text)}.talk__link{grid-column:2;font-size:.95rem;margin-top:.25rem}.talk[hidden]{display:none}.more-button{margin-top:.5rem;align-self:center;background:var(--color-surface);color:var(--color-accent);border:1px solid var(--color-border);border-radius:999px;padding:.55rem 1.5rem;font-family:inherit;font-size:.95rem;cursor:pointer;transition:background .15s ease,border-color .15s ease}.more-button:hover{background:var(--color-bg);border-color:var(--color-accent)}.about p{text-align:justify;hyphens:auto;-webkit-hyphens:auto}.about p+p{margin-top:1rem}.contact{display:flex;flex-direction:column;gap:.65rem;max-width:30rem;margin-inline:auto}.contact__row{display:flex;flex-wrap:wrap;gap:.5rem}.contact__label{min-width:5rem;font-weight:500;color:var(--color-text-muted)}.footer{text-align:center;color:var(--color-text-muted);font-size:.95rem;padding-top:.5rem;padding-bottom:.5rem}.footer a{color:var(--color-text-muted)}.footer a:hover{color:var(--color-accent)}.legal h1{font-size:var(--fs-h1);color:var(--color-brand-strong);margin-bottom:1rem}.legal h2{font-size:var(--fs-h2);margin:1.5rem 0 .5rem;color:var(--color-brand-strong)}.legal h3{font-size:var(--fs-h3);margin:1rem 0 .25rem}.legal p{margin-bottom:.5rem}.legal ul{margin:.5rem 0 .5rem 1.25rem}.legal li{margin-bottom:.35rem}.legal .back{display:inline-block;margin-bottom:1.5rem}.section-nav{position:fixed;top:50%;right:clamp(.5rem,1.6vw,1.1rem);transform:translateY(-50%);z-index:20;opacity:.5;transition:opacity .25s ease}.section-nav:hover,.section-nav:focus-within{opacity:1}.section-nav ul{list-style:none;margin:0;display:flex;flex-direction:column;gap:.8rem;padding:.85rem .75rem;border:1px solid var(--color-border);border-radius:16px;background:color-mix(in srgb,var(--color-surface) 78%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-sm)}.section-nav a{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:.55rem;text-decoration:none}.section-nav__dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--color-border);transition:background .2s ease,transform .2s ease}.section-nav a:hover .section-nav__dot{background:var(--color-text-muted)}.section-nav a.is-active .section-nav__dot{background:var(--color-brand);transform:scale(1.45)}.section-nav__label{font-size:.8rem;color:var(--color-text-muted);white-space:nowrap;max-width:0;overflow:hidden;opacity:0;transform:translate(6px);transition:max-width .25s ease,opacity .2s ease,transform .25s ease}.section-nav:hover .section-nav__label,.section-nav:focus-within .section-nav__label{max-width:9rem;opacity:1;transform:translate(0)}.section-nav a.is-active .section-nav__label{color:var(--color-brand-strong);font-weight:500}.section-nav a:focus-visible{outline-offset:4px}@media(max-width:940px){.section-nav{display:none}}@media(prefers-reduced-motion:reduce){.section-nav,.section-nav *{transition:none}}.theme-toggle{position:fixed;top:clamp(.75rem,2vw,1.25rem);right:clamp(.75rem,2vw,1.25rem);z-index:10;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-brand-strong);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,color .15s ease}.theme-toggle:hover{transform:scale(1.08);box-shadow:var(--shadow-md);color:var(--color-accent)}.theme-toggle svg{width:20px;height:20px}.theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}@media(prefers-reduced-motion:reduce){.theme-toggle{transition:none}}@media(max-width:560px){.hero__uni{gap:.65rem;padding:.55rem .95rem;font-size:.9rem}.hero__uni-logo{height:14px}}
