@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg: #fff7f1;--ink: #2b2e4a;--muted: #635a67;--accent: #e78895;--accent-strong: #c56e7b;--accent-warm: #bed1cf;--accent-gradient-start: #d97786;--surface: rgba(255, 247, 241, .86);--surface-solid: rgba(255, 247, 241, .9);--surface-overlay: rgba(255, 255, 255, .46);--surface-raised: rgba(255, 242, 229, .78);--surface-block: rgba(255, 242, 229, .72);--surface-highlight: rgba(255, 245, 239, .95);--surface-chip: rgba(190, 209, 207, .18);--surface-chip-strong: rgba(190, 209, 207, .22);--surface-chip-hover: rgba(190, 209, 207, .28);--surface-chip-interactive: rgba(190, 209, 207, .3);--surface-chip-interactive-hover: rgba(190, 209, 207, .42);--surface-code: rgba(190, 209, 207, .22);--surface-success: rgba(190, 209, 207, .34);--surface-error: rgba(231, 136, 149, .16);--surface-form-field: rgba(255, 253, 249, .92);--line: rgba(43, 46, 74, .1);--line-subtle: rgba(43, 46, 74, .07);--line-soft: rgba(43, 46, 74, .08);--line-strong: rgba(43, 46, 74, .12);--chip-border: rgba(190, 209, 207, .56);--chip-border-strong: rgba(190, 209, 207, .72);--success-border: rgba(190, 209, 207, .8);--error-border: rgba(231, 136, 149, .34);--success-ink: #355f57;--error-ink: #8f4d5a;--accent-outline: rgba(197, 110, 123, .14);--accent-outline-strong: rgba(197, 110, 123, .26);--accent-border-strong: rgba(197, 110, 123, .3);--focus-outline: rgba(217, 119, 134, .18);--focus-border: rgba(197, 110, 123, .42);--shadow: 0 24px 64px rgba(95, 82, 103, .1);--shadow-accent-soft: 0 18px 32px rgba(217, 119, 134, .22);--shadow-accent-hover: 0 16px 28px rgba(217, 119, 134, .12);--shadow-accent: 0 24px 56px rgba(197, 110, 123, .18);--radius: 28px;--radius-card: 24px;--radius-md: 20px;--radius-sm: 18px;--radius-xs: 16px;--radius-pill: 999px;--space-2xs: .35rem;--space-xs: .5rem;--space-sm: .7rem;--space-md: .8rem;--space-lg: 1rem;--space-xl: 1.15rem;--space-2xl: 1.4rem;--duration-fast: .18s;--duration-slow: .42s;--duration-rise: .7s;--ease-standard: ease;--transition-interactive: background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);--transition-lift: transform var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);--transition-lift-bordered: transform var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);--transition-card: border-color var(--duration-slow) var(--ease-standard), box-shadow var(--duration-slow) var(--ease-standard);--transition-fade: opacity var(--duration-slow) var(--ease-standard);--anchor-offset: 3.5rem;--header-height: 4.5rem;--page-fill-offset: 11rem;--content-width: min(1120px, calc(100% - 2rem) );--font-body: "Inter", "Segoe UI", sans-serif;--font-display: var(--font-body)}@media(max-width:720px){:root{--anchor-offset: 3.25rem}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--anchor-offset);background:radial-gradient(circle at top left,rgba(231,136,149,.2),transparent 28%),radial-gradient(circle at top right,rgba(190,209,207,.22),transparent 26%),radial-gradient(circle at 50% 100%,rgba(255,228,201,.55),transparent 42%),linear-gradient(180deg,#fffdf9 0%,var(--bg) 38%,#ffeede 100%);color:var(--ink)}body{margin:0;font-family:var(--font-body);color:var(--ink);background:linear-gradient(180deg,#ffffff6b,#fff0),linear-gradient(180deg,#e7889508,#bed1cf05),linear-gradient(180deg,#fffdf9 0%,var(--bg) 100%)}img{display:block;max-width:100%}a{color:inherit}::selection{background:#e788953d}.skip-link{position:absolute;left:var(--space-lg);top:-3rem;z-index:20;padding:.75rem var(--space-lg);border-radius:var(--radius-pill);background:var(--ink);color:#fff}.skip-link:focus{top:var(--space-lg)}.motion-rise{animation:rise var(--duration-rise) var(--ease-standard) both}.motion-rise:nth-child(2){animation-delay:70ms}.motion-rise:nth-child(3){animation-delay:.14s}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.site-shell{width:var(--content-width);margin:0 auto}.topbar{position:sticky;top:0;z-index:10;backdrop-filter:blur(16px);background:#fff7f1d6;border-bottom:1px solid var(--line-subtle)}.topbar-inner{width:var(--content-width);margin:0 auto;min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.menu-toggle{display:none}.brand{justify-self:start;width:fit-content;font-family:var(--font-display);font-size:1.1rem;font-weight:700;letter-spacing:.02em;text-decoration:none}.nav-links{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.nav-links a{padding:.55rem .9rem;border-radius:var(--radius-pill);color:var(--muted);text-decoration:none;transition:var(--transition-interactive)}.nav-links a:hover,.nav-links a:focus-visible{color:var(--ink);background:var(--surface-chip-hover);transform:translateY(-1px)}.page{padding:2.5rem 0 4rem}.page-fill{min-height:calc(100vh - var(--header-height))}.page-fill .site-shell{min-height:calc(100vh - var(--page-fill-offset));display:flex;flex-direction:column}.section-card{scroll-margin-top:var(--anchor-offset);margin-top:1.4rem;padding:clamp(1.25rem,2vw,1.7rem);border-radius:var(--radius)}.section-head{display:grid;gap:var(--space-xs);margin-bottom:1.4rem}.section-kicker{color:var(--accent);font-size:.84rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.section-title{margin:0;font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.6rem);line-height:1;letter-spacing:-.04em;color:var(--ink)}.section-intro{margin:0;max-width:60ch;color:var(--muted);line-height:1.8}.timeline,.publication-list,.certificate-list,.project-grid,.education-grid,.post-grid{display:grid;gap:var(--space-lg)}.project-grid,.post-grid,.education-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer{padding:2rem 0 0;color:var(--muted);text-align:center}.footer p{margin:0}.page-fill .footer{margin-top:auto}.archive-header{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--space-lg);margin-bottom:1.2rem}.back-link{display:inline-flex;align-self:flex-start;align-items:center;gap:.4rem;margin-bottom:var(--space-lg);text-decoration:none}.back-link:not(.button){color:var(--muted)}@media(max-width:960px){.project-grid,.post-grid,.education-grid{grid-template-columns:1fr}}@media(max-width:720px){.page{padding-top:1.5rem}.topbar{background:#fff7f1ad;backdrop-filter:blur(18px) saturate(1.16)}.topbar:has(.nav-links[data-open=true]){background:#fff7f185}.topbar-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-md);padding:.8rem 0}.menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;min-height:2.6rem;padding:0;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-chip-strong);color:var(--ink);font:inherit;font-weight:700;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.menu-toggle:hover,.menu-toggle:focus-visible{background:var(--surface-chip-hover)}.menu-toggle[aria-expanded=true]{border-color:var(--accent-outline-strong);background:#ffffff57}.menu-toggle-icon{display:grid;gap:.22rem}.menu-toggle-icon span{width:1rem;height:2px;border-radius:var(--radius-pill);background:currentColor;transition:opacity var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.menu-toggle[aria-expanded=true] .menu-toggle-icon span:first-child{transform:translateY(.38rem) rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-toggle-icon span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .menu-toggle-icon span:last-child{transform:translateY(-.38rem) rotate(-45deg)}.nav-links{display:grid;grid-column:1 / -1;gap:var(--space-xs);width:100%;max-height:0;padding:0;overflow:hidden;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;opacity:0;pointer-events:none;transform:translateY(-.35rem);transition:max-height var(--duration-slow) var(--ease-standard),padding var(--duration-slow) var(--ease-standard),opacity var(--duration-fast) var(--ease-standard),transform var(--duration-slow) var(--ease-standard),background-color var(--duration-slow) var(--ease-standard),border-color var(--duration-slow) var(--ease-standard)}.nav-links[data-open=true]{max-height:18rem;padding:var(--space-xs);border-color:var(--line-soft);background:#ffffff47;backdrop-filter:blur(18px) saturate(1.14);opacity:1;pointer-events:auto;transform:translateY(0)}.nav-links a{width:100%;padding:.75rem .9rem}}:is(.hero-panel,.hero-aside,.section-card,.post-card,.timeline-item,.project-card,.publication-card,.certificate-card,.contact-card,.education-card,.not-found-card,.aside-card){background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(12px)}.timeline-item,.publication-card,.certificate-card,.project-card,.education-card,.post-card{border-radius:var(--radius-card);padding:1.1rem}.chip-list,.tag-list,.cta-row,.meta-list,.skills-list,.contact-links{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.inline-links{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-md)}.chip,.tag{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .9rem;border-radius:var(--radius-pill);background:var(--surface-chip);border:1px solid var(--chip-border);color:var(--ink);text-decoration:none}.cta-row{margin-top:1.6rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;padding:.8rem 1.15rem;border-radius:var(--radius-pill);border:1px solid transparent;font-weight:700;text-decoration:none;transition:var(--transition-lift)}.button:hover,.button:focus-visible{transform:translateY(-2px)}.button-primary{background:linear-gradient(135deg,var(--accent-gradient-start),var(--accent-strong));color:#fff;box-shadow:var(--shadow-accent-soft)}.button-secondary{background:var(--surface-chip-strong);color:var(--ink);border-color:var(--line)}:is(.timeline-item,.publication-card,.certificate-card,.project-card,.post-card) header{display:grid;gap:.45rem}.title-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem .75rem}.entry-title,.card-title{margin:0;font-size:1.15rem;color:var(--ink)}.entry-title a,.card-title a,.education-card strong a,.footer a{text-decoration:none}.entry-title a:hover,.entry-title a:focus-visible,.card-title a:hover,.card-title a:focus-visible,.education-card strong a:hover,.education-card strong a:focus-visible,.inline-link:hover,.inline-link:focus-visible,.footer a:hover,.footer a:focus-visible,.brand:hover,.brand:focus-visible{color:var(--accent)}.entry-period,.card-meta{color:var(--muted)}:is(.timeline-item,.publication-card,.certificate-card,.project-card,.post-card,.education-card,.contact-card) p{color:var(--muted);line-height:1.75}.timeline-item strong{color:var(--ink)}.inline-link{color:var(--accent-strong);font-weight:700;text-decoration:none}.hero{display:grid;grid-template-columns:minmax(0,1.56fr) minmax(280px,.84fr);gap:1.25rem;align-items:stretch;margin-bottom:1.5rem}.hero-panel{position:relative;overflow:hidden;border-radius:calc(var(--radius) + 6px);padding:clamp(1.5rem,2vw,2.5rem)}.hero-panel:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(231,136,149,.16),transparent 32%),linear-gradient(135deg,rgba(190,209,207,.18),transparent 45%);pointer-events:none}.hero-content{position:relative;z-index:1}.hero-heading{display:grid;justify-items:start;gap:var(--space-sm)}.eyebrow{display:inline-flex;align-items:center;gap:.55rem;padding:.5rem .8rem;border-radius:var(--radius-pill);background:#ffffffb8;border:1px solid var(--line-soft);color:var(--muted);font-size:.88rem;letter-spacing:.04em;text-transform:uppercase}.eyebrow:before{content:"";width:.55rem;height:.55rem;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--accent),var(--accent-warm))}.display{margin:0 0 .75rem;max-width:12ch;color:var(--ink);font-family:var(--font-display);font-size:clamp(2.6rem,7vw,4.9rem);font-weight:600;line-height:.94;letter-spacing:-.04em;text-wrap:balance}.hero-role{margin:0;color:var(--accent-strong);font-size:1rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lead{max-width:56ch;color:var(--muted);font-size:1.08rem;line-height:1.8}.hero-stats{margin-top:1.5rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.stat-card{padding:var(--space-lg);border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--line)}.stat-link{text-decoration:none;transition:var(--transition-lift-bordered)}.stat-link:hover,.stat-link:focus-visible{transform:translateY(-2px);border-color:var(--accent-outline-strong);box-shadow:var(--shadow-accent-hover);background:var(--surface-highlight)}.stat-value{display:block;font-family:var(--font-display);font-size:2rem;line-height:1}.stat-label{display:block;margin-top:var(--space-2xs);color:var(--muted);font-size:.92rem}.hero-aside{display:grid;gap:.85rem;height:100%;align-content:start;border-radius:calc(var(--radius) + 2px);padding:var(--space-lg)}.portrait{overflow:hidden;aspect-ratio:1 / 1;border-radius:var(--radius-card);background:linear-gradient(180deg,#e7889533,#bed1cf2e)}.portrait img{width:100%;height:100%;object-fit:cover}.aside-card{align-self:start;padding:var(--space-lg);border-radius:var(--radius-card)}.aside-card h2,.aside-card h3{margin:0 0 .55rem;font-size:1rem}.aside-card p{margin:0;color:var(--muted);line-height:1.7}.aside-meta-list{margin:.9rem 0 0;display:grid;gap:.55rem}.aside-meta-list div{display:grid;grid-template-columns:5.25rem minmax(0,1fr);gap:.6rem;align-items:baseline}.aside-meta-list dt{color:var(--accent-strong);font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.aside-meta-list dd{margin:0;color:var(--muted)}.aside-chip-list{display:flex;flex-wrap:wrap;gap:.6rem}.aside-chip-list .chip{background:var(--surface-chip-strong)}.aside-card .aside-note{margin-top:1.2rem;font-size:.95rem}@media(max-width:960px){.hero{grid-template-columns:1fr}}@media(max-width:720px){.hero-stats{grid-template-columns:1fr}.display{max-width:none}}.project-card{position:relative;overflow:hidden;scroll-margin-top:calc(var(--anchor-offset) + 1rem);padding:1.35rem;transition:var(--transition-card)}.project-card>*{position:relative;z-index:1}.project-card:before{content:"";position:absolute;inset:0;z-index:0;border-radius:var(--radius-card);background:linear-gradient(135deg,#e7889524,#bed1cf24),var(--surface);opacity:0;transition:var(--transition-fade);pointer-events:none}.project-card:after{content:"";position:absolute;inset:0;z-index:2;border-radius:var(--radius-card);box-shadow:inset 0 0 0 1px var(--accent-outline);opacity:0;transition:var(--transition-fade);pointer-events:none}.project-card header{margin-bottom:1.15rem}.case-study-context{margin:0;max-width:58ch}.metric-row{display:flex;flex-wrap:wrap;gap:var(--space-md)}.metric-card{display:inline-grid;gap:.2rem;width:fit-content;padding:.85rem var(--space-lg);border-radius:22px;background:linear-gradient(135deg,#e7889524,#ffe4c9b8),var(--surface-solid);border:1px solid rgba(231,136,149,.22)}.metric-value{color:var(--ink);font-family:var(--font-display);font-size:1.7rem;line-height:.95}.metric-label{color:var(--muted);font-size:.84rem;line-height:1.35}.case-study-grid{display:grid;gap:var(--space-lg)}.case-study-block{padding:1.05rem 1.1rem;border-radius:var(--radius-md);background:var(--surface-block);border:1px solid var(--line-soft)}.case-study-label{margin:0 0 var(--space-2xs);color:var(--accent);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.case-study-block p{margin:0}.project-card .tag-list{margin-top:.75rem;gap:.85rem}.project-card .tag,.project-card .chip{padding:.62rem var(--space-lg)}.project-card.is-highlighted{border-color:var(--accent-border-strong);box-shadow:var(--shadow-accent)}.project-card.is-highlighted:before,.project-card.is-highlighted:after{opacity:1}.education-card h3{margin:0 0 var(--space-2xs)}.education-card ul{margin:var(--space-md) 0 0;padding-left:1.1rem;color:var(--muted);line-height:1.7}.contact-card{scroll-margin-top:var(--anchor-offset);margin-top:1.4rem;display:grid;gap:var(--space-lg);border-radius:var(--radius);padding:clamp(1.4rem,2vw,1.8rem);background:linear-gradient(135deg,#e788951f,#bed1cf2e),var(--surface-solid)}.contact-head{display:grid;gap:.4rem}.contact-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:1.35rem;align-items:start}.contact-copy{display:grid;gap:var(--space-lg)}.contact-card h2{margin:0 0 var(--space-xs);color:var(--ink);font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.5rem);letter-spacing:-.04em}.contact-card p{margin:0}.contact-caption{max-width:52ch}.contact-form{display:grid;gap:.95rem;padding:var(--space-xl);border-radius:var(--radius-card);background:var(--surface-overlay);border:1px solid var(--line-soft)}.form-field{display:grid;gap:.45rem}.form-field span{color:var(--accent-strong);font-size:.86rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.form-field input,.form-field textarea{width:100%;padding:.95rem var(--space-lg);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-form-field);color:var(--ink);font:inherit;resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:#635a67d1}.form-field input:focus,.form-field textarea:focus{outline:2px solid var(--focus-outline);border-color:var(--focus-border)}.contact-form .button{justify-self:start}.contact-form .button:disabled{cursor:not-allowed;opacity:.55;transform:none}.contact-form-meta{color:var(--accent-strong);font-size:.95rem}.contact-form-meta.is-success,.contact-form-meta.is-error{display:inline-flex;align-items:center;width:fit-content;max-width:100%;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-xs);border:1px solid transparent;line-height:1.55}.contact-form-meta.is-success{color:var(--success-ink);background:var(--surface-success);border-color:var(--success-border)}.contact-form-meta.is-error{color:var(--error-ink);background:var(--surface-error);border-color:var(--error-border)}.contact-form-meta code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.contact-form-meta-muted{color:var(--muted)}.page-teaser{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:1.1rem 1.15rem;border-radius:var(--radius-card);background:linear-gradient(135deg,#bed1cf38,#fff2e5d6),var(--surface-solid);border:1px solid var(--line)}.certificate-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-lg);align-items:start}.certificate-logo{width:3.6rem;height:3.6rem;object-fit:contain;border-radius:var(--radius-xs);background:var(--surface-highlight);border:1px solid var(--line-soft);padding:.5rem}.certificate-content{display:grid;gap:var(--space-md);min-width:0}.certificate-issuer{margin:0;font-weight:700}.certificate-card .chip-list{gap:var(--space-sm)}.prose{color:var(--ink);line-height:1.85}.prose>:first-child{margin-top:0}.prose h2,.prose h3{margin-top:2.2rem;margin-bottom:var(--space-md);font-family:var(--font-display);letter-spacing:-.03em}.prose p,.prose li{color:var(--muted)}.prose a{color:var(--accent-strong)}.prose code{padding:.16rem .4rem;border-radius:.45rem;background:var(--surface-code);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.prose pre{padding:var(--space-lg);border-radius:var(--radius-sm);overflow-x:auto}.prose blockquote{margin:1.6rem 0;padding-left:var(--space-lg);border-left:3px solid rgba(231,136,149,.42)}.not-found-wrap{min-height:62vh;display:grid;place-items:center}.not-found-card{width:min(560px,100%);padding:2rem;border-radius:30px;text-align:center}.not-found-card .cta-row{justify-content:center}.not-found-code{margin:0 0 .6rem;font-family:var(--font-display);font-size:clamp(3rem,10vw,5rem);line-height:.9}@media(max-width:960px){.contact-layout{grid-template-columns:1fr}}
