:root{color-scheme:light dark;--font-sans: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;--font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace;--bg-light: #fafafa;--bg-dark: #0c0c0e;--bg: var(--bg-light);--surface-light: #ffffff;--surface-dark: #141417;--surface: var(--surface-light);--surface-subtle-light: #f4f4f5;--surface-subtle-dark: #1c1c20;--surface-subtle: var(--surface-subtle-light);--surface-muted-light: #e4e4e7;--surface-muted-dark: #27272a;--surface-muted: var(--surface-muted-light);--border-light: #e4e4e7;--border-dark: #27272a;--border: var(--border-light);--border-subtle-light: #f4f4f5;--border-subtle-dark: #1f1f23;--border-subtle: var(--border-subtle-light);--text-light: #18181b;--text-dark: #fafafa;--text: var(--text-light);--text-body-light: #27272a;--text-body-dark: #e4e4e7;--text-body: var(--text-body-light);--text-muted-light: #52525b;--text-muted-dark: #a1a1aa;--text-muted: var(--text-muted-light);--text-subtle-light: #71717a;--text-subtle-dark: #a1a1aa;--text-subtle: var(--text-subtle-light);--accent-light: #18181b;--accent-dark: #f4f4f5;--accent: var(--accent-light);--accent-hover-light: #27272a;--accent-hover-dark: #ffffff;--accent-hover: var(--accent-hover-light);--on-accent-light: #fafafa;--on-accent-dark: #0c0c0e;--on-accent: var(--on-accent-light);--accent-shadow-light: rgba(24, 24, 27, 0.14);--accent-shadow-dark: rgba(0, 0, 0, 0.35);--accent-shadow: var(--accent-shadow-light);--logo-bg-white: #ffffff;--logo-bg-black: #000000;--shadow-sm-light: 0 4px 14px rgba(0, 0, 0, 0.04);--shadow-sm-dark: 0 4px 14px rgba(0, 0, 0, 0.4);--shadow-sm: var(--shadow-sm-light);--shadow-md-light: 0 8px 24px rgba(0, 0, 0, 0.08);--shadow-md-dark: 0 8px 24px rgba(0, 0, 0, 0.5);--shadow-md: var(--shadow-md-light);--shadow-accent: 0 4px 12px var(--accent-shadow);--nav-bg-light: rgba(255, 255, 255, 0.85);--nav-bg-dark: rgba(20, 20, 23, 0.85);--nav-bg: var(--nav-bg-light);--nav-border-light: rgba(0, 0, 0, 0.08);--nav-border-dark: rgba(255, 255, 255, 0.08);--nav-border: var(--nav-border-light);--nav-shadow-light: 0 4px 20px rgba(0, 0, 0, 0.06);--nav-shadow-dark: 0 4px 20px rgba(0, 0, 0, 0.45);--nav-shadow: var(--nav-shadow-light);--nav-text-light: #3f3f46;--nav-text-dark: #d4d4d8;--nav-text: var(--nav-text-light);--code-bg: #18181b;--code-text: #fafafa;--code-inline-bg-light: #f4f4f5;--code-inline-bg-dark: #27272a;--code-inline-bg: var(--code-inline-bg-light);--code-inline-text-light: #18181b;--code-inline-text-dark: #e4e4e7;--code-inline-text: var(--code-inline-text-light);--scrollbar-track-light: #f4f4f5;--scrollbar-track-dark: #1c1c20;--scrollbar-track: var(--scrollbar-track-light);--scrollbar-thumb-light: #a1a1aa;--scrollbar-thumb-dark: #52525b;--scrollbar-thumb: var(--scrollbar-thumb-light);accent-color:var(--accent);scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-pill: 9999px;--ease: cubic-bezier(0.4, 0, 0.2, 1);--speed-fast: 0.2s;--speed: 0.25s;--transition-interactive:
    background-color var(--speed) var(--ease), color var(--speed) var(--ease),
    border-color var(--speed) var(--ease), box-shadow var(--speed) var(--ease),
    transform var(--speed) var(--ease);--transition-card:
    border-color var(--speed) var(--ease), box-shadow var(--speed) var(--ease),
    transform var(--speed) var(--ease);--max-content-width: 800px}@supports (color: light-dark(white, black)){:root{--bg: light-dark(var(--bg-light), var(--bg-dark));--surface: light-dark(var(--surface-light), var(--surface-dark));--surface-subtle: light-dark(var(--surface-subtle-light), var(--surface-subtle-dark));--surface-muted: light-dark(var(--surface-muted-light), var(--surface-muted-dark));--border: light-dark(var(--border-light), var(--border-dark));--border-subtle: light-dark(var(--border-subtle-light), var(--border-subtle-dark));--text: light-dark(var(--text-light), var(--text-dark));--text-body: light-dark(var(--text-body-light), var(--text-body-dark));--text-muted: light-dark(var(--text-muted-light), var(--text-muted-dark));--text-subtle: light-dark(var(--text-subtle-light), var(--text-subtle-dark));--accent: light-dark(var(--accent-light), var(--accent-dark));--accent-hover: light-dark(var(--accent-hover-light), var(--accent-hover-dark));--on-accent: light-dark(var(--on-accent-light), var(--on-accent-dark));--accent-shadow: light-dark(var(--accent-shadow-light), var(--accent-shadow-dark));--shadow-sm: light-dark(var(--shadow-sm-light), var(--shadow-sm-dark));--shadow-md: light-dark(var(--shadow-md-light), var(--shadow-md-dark));--nav-bg: light-dark(var(--nav-bg-light), var(--nav-bg-dark));--nav-border: light-dark(var(--nav-border-light), var(--nav-border-dark));--nav-shadow: light-dark(var(--nav-shadow-light), var(--nav-shadow-dark));--nav-text: light-dark(var(--nav-text-light), var(--nav-text-dark));--code-inline-bg: light-dark(var(--code-inline-bg-light), var(--code-inline-bg-dark));--code-inline-text: light-dark(var(--code-inline-text-light), var(--code-inline-text-dark));--scrollbar-track: light-dark(var(--scrollbar-track-light), var(--scrollbar-track-dark));--scrollbar-thumb: light-dark(var(--scrollbar-thumb-light), var(--scrollbar-thumb-dark))}}@media (prefers-color-scheme: dark){:root{--bg: var(--bg-dark);--surface: var(--surface-dark);--surface-subtle: var(--surface-subtle-dark);--surface-muted: var(--surface-muted-dark);--border: var(--border-dark);--border-subtle: var(--border-subtle-dark);--text: var(--text-dark);--text-body: var(--text-body-dark);--text-muted: var(--text-muted-dark);--text-subtle: var(--text-subtle-dark);--accent: var(--accent-dark);--accent-hover: var(--accent-hover-dark);--on-accent: var(--on-accent-dark);--accent-shadow: var(--accent-shadow-dark);--shadow-sm: var(--shadow-sm-dark);--shadow-md: var(--shadow-md-dark);--nav-bg: var(--nav-bg-dark);--nav-border: var(--nav-border-dark);--nav-shadow: var(--nav-shadow-dark);--nav-text: var(--nav-text-dark);--code-inline-bg: var(--code-inline-bg-dark);--code-inline-text: var(--code-inline-text-dark);--scrollbar-track: var(--scrollbar-track-dark);--scrollbar-thumb: var(--scrollbar-thumb-dark)}}@supports not (scrollbar-color: auto){*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-xs)}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}}html{box-sizing:border-box;block-size:100%;background-color:var(--bg);scrollbar-gutter:stable}*,*::before,*::after{box-sizing:inherit}body{font-family:var(--font-sans);font-size:1rem;line-height:1.6;margin:0;padding:0;background-color:var(--bg);color:var(--text);min-block-size:100%;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,video{display:block;max-inline-size:100%;block-size:auto}svg{max-inline-size:100%;block-size:auto}a{color:var(--accent)}h1,h2,h3,h4,h5,h6{color:var(--text);text-wrap:balance}p,blockquote,li{text-wrap:pretty}h2{font-size:1.35rem;font-weight:700;margin:1.2rem 0 0.6rem}code,kbd,samp,pre{font-family:var(--font-mono)}.visually-hidden:where(:not(:focus-within, :active)){position:absolute !important;clip-path:inset(50%) !important;overflow:hidden !important;inline-size:1px !important;block-size:1px !important;margin:-1px !important;padding:0 !important;border:0 !important;white-space:nowrap !important}.skip-link{position:fixed;inset-block-start:1rem;inset-inline-start:1rem;z-index:10000;padding:0.6rem 1.25rem;background:var(--surface);color:var(--text);border:2px solid var(--accent);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-weight:600;text-decoration:none}.skip-link:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}@media (forced-colors: active){:focus-visible{outline:2px solid Highlight;outline-offset:2px}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}@media (prefers-reduced-motion: no-preference) and (pointer: fine){@view-transition{navigation:auto}}@media print{.skip-link,.top-nav,.contacts-buttons{display:none !important}body{background:#fff !important;color:#000 !important}a{color:#000 !important;text-decoration:underline}}.w{max-inline-size:var(--max-content-width);margin-inline:auto;padding-inline:1.5rem;padding-block:2rem 4rem}.w-wide{--max-content-width: 880px}.page-heading h1{font-size:clamp(1.75rem, calc(1.25rem + 2vw), 2.25rem);font-weight:800;margin:0 0 0.35rem}.page-heading .page-heading-description{color:var(--text-muted);font-size:0.95rem;text-wrap:pretty}.top-nav{position:sticky;inset-block-start:1rem;z-index:1000;display:flex;justify-content:center;margin-block-end:2.5rem}@media (max-width: 380px){.top-nav{inset-block-start:0.6rem;margin-block-end:1.75rem}}.nav-container{display:inline-flex;gap:0.5rem;padding:0.4rem;border-radius:var(--radius-pill);background:var(--nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--nav-border);box-shadow:var(--nav-shadow)}@media (max-width: 600px){.nav-container{gap:0.25rem;padding:0.35rem}}@media (max-width: 380px){.nav-container{gap:0.15rem;padding:0.25rem}}@media (forced-colors: active){.nav-container{border:1px solid ButtonBorder}}.nav-button{padding:0.5rem 1.25rem;min-block-size:40px;border-radius:var(--radius-pill);font-weight:600;font-size:0.95rem;text-decoration:none;color:var(--nav-text);display:inline-flex;align-items:center;justify-content:center;transition:var(--transition-interactive)}@media (pointer: coarse){.nav-button{min-block-size:44px;padding-inline:1rem}}@media (max-width: 600px){.nav-button{padding:0.45rem 0.85rem;font-size:0.88rem}}@media (max-width: 380px){.nav-button{padding:0.35rem 0.65rem;font-size:0.82rem;min-block-size:38px}}.nav-button:hover{background:var(--accent);color:var(--on-accent);border-color:transparent;box-shadow:var(--shadow-accent);transform:translateY(-1px);text-decoration:none}.nav-button.active{background:var(--accent);color:var(--on-accent);border-color:transparent;box-shadow:var(--shadow-accent)}@media (forced-colors: active){.nav-button.active{background:Highlight;color:HighlightText;outline:2px solid Highlight}}.site-footer{margin-block-start:4rem;padding-block-start:2rem;border-block-start:1px solid var(--border);font-size:0.85rem;color:var(--text-subtle);text-align:center}.site-footer p{margin:0}.site-footer .footer-note{margin-block-start:0.4rem;max-inline-size:46ch;margin-inline:auto;line-height:1.5;text-wrap:pretty}.hero{display:flex;flex-direction:column;align-items:center;text-align:center;margin-block-end:1.5rem}.hero .hero-avatar{inline-size:120px;block-size:120px;border-radius:50%;overflow:hidden;margin-block-end:1.25rem;border:2px solid var(--border);background:var(--surface-muted)}.hero .profile-img{inline-size:100%;block-size:100%;object-fit:cover;display:block}.hero .hero-content h1{font-size:clamp(1.75rem, calc(1.25rem + 2vw), 2.25rem);font-weight:700;margin:0 0 0.5rem;text-wrap:balance}.hero .hero-subtitle{font-size:1.05rem;color:var(--text-muted);line-height:1.5;text-wrap:balance}.contacts-buttons{display:flex;align-items:center;justify-content:center;gap:0.85rem;margin-block:1.25rem 0.5rem}.contact-icon-button{display:inline-flex;align-items:center;justify-content:center;inline-size:44px;block-size:44px;min-inline-size:44px;min-block-size:44px;border-radius:50%;border:1px solid var(--border);background:var(--surface-subtle);color:var(--text-body);text-decoration:none;transition:var(--transition-interactive)}.contact-icon-button:hover{background:var(--accent);color:var(--on-accent);border-color:transparent;box-shadow:var(--shadow-accent);transform:translateY(-2px);text-decoration:none}.contact-icon-button svg{inline-size:20px;block-size:20px}@media (forced-colors: active){.contact-icon-button{border:1px solid ButtonBorder}.contact-icon-button:hover{background:Highlight;color:HighlightText;outline:2px solid Highlight}}.about .about-text{color:var(--text-muted);font-size:0.98rem;line-height:1.7}.about .about-text p{margin:0;text-wrap:pretty}.about .about-text a{color:var(--text);font-weight:500;text-decoration:underline;text-underline-offset:2px}.about .about-text a:hover{color:var(--accent-hover)}.row-list{display:flex;flex-direction:column;gap:0.75rem;container-type:inline-size}.row-item{display:flex;align-items:center;gap:1rem;padding:0.85rem 1rem;block-size:4.5rem;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border-subtle);transition:var(--transition-card)}.row-item:hover{border-color:var(--border);box-shadow:var(--shadow-sm);transform:translateX(2px)}@media (forced-colors: active){.row-item{border:1px solid ButtonBorder}}.row-item .row-logo{inline-size:42px;block-size:42px;min-inline-size:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);overflow:hidden}.row-item .row-logo.logo-bg-white,.row-item .row-logo.logo-bg-black{padding:4px}.row-item .row-logo.logo-bg-white{background-color:var(--logo-bg-white)}.row-item .row-logo.logo-bg-black{background-color:var(--logo-bg-black)}.row-item .row-logo img{inline-size:100%;block-size:100%;object-fit:contain}.row-item .logo-badge{inline-size:100%;block-size:100%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;color:var(--on-accent);background:var(--accent)}.row-item .row-main{flex:1;min-inline-size:0;display:flex;flex-direction:column;justify-content:center}.row-item .row-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:0.98rem;font-weight:600;margin:0}.row-item .row-title a{color:var(--text);text-decoration:none}.row-item .row-title a:hover{text-decoration:underline;text-underline-offset:2px}.row-item .row-description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:0.85rem;color:var(--text-muted);margin:0.15rem 0 0}.row-item .row-period{margin-inline-start:auto;font-size:0.82rem;color:var(--text-subtle);font-weight:500;text-align:end;white-space:nowrap}@media (max-width: 600px){.row-item{display:grid;grid-template-columns:42px 1fr;grid-template-areas:'logo main' 'logo period';column-gap:0.85rem;row-gap:0.2rem;align-items:start;block-size:auto;min-block-size:4.5rem}.row-item .row-logo{grid-area:logo;align-self:center}.row-item .row-main{grid-area:main}.row-item .row-period{grid-area:period;margin-inline-start:0;text-align:start;white-space:normal}.row-item .row-title,.row-item .row-description{white-space:normal;overflow:visible;text-overflow:clip}}@container (max-width: 560px){.row-item{display:grid;grid-template-columns:42px 1fr;grid-template-areas:'logo main' 'logo period';column-gap:0.85rem;row-gap:0.2rem;align-items:start;block-size:auto;min-block-size:4.5rem}.row-item .row-logo{grid-area:logo;align-self:center}.row-item .row-main{grid-area:main}.row-item .row-period{grid-area:period;margin-inline-start:0;text-align:start;white-space:normal}.row-item .row-title,.row-item .row-description{white-space:normal;overflow:visible;text-overflow:clip}}.skills{content-visibility:auto;contain-intrinsic-size:auto 120px}.skills-badges{display:flex;flex-wrap:wrap;gap:0.6rem}.skill-badge{padding:0.4rem 0.9rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-subtle);font-size:0.85rem;font-weight:500;color:var(--text-body);transition:var(--transition-interactive)}.skill-badge:hover{border-color:var(--accent);color:var(--accent);background:var(--surface);transform:translateY(-1px)}@media (forced-colors: active){.skill-badge{border:1px solid ButtonBorder}}.projects{content-visibility:auto;contain-intrinsic-size:auto 600px}.projects-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:1.25rem}@media (max-width: 600px){.projects-grid{grid-template-columns:1fr;gap:0.75rem}}.project-card-link{display:block;text-decoration:none;color:inherit;container-type:inline-size}.project-card-link:hover{text-decoration:none}.project-card-link:hover .project-card{transform:translate(0, -3px);box-shadow:var(--shadow-md)}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;block-size:100%;transition:var(--transition-card)}@media (forced-colors: active){.project-card{border:1px solid ButtonBorder}}.project-card .project-banner{inline-size:100%;aspect-ratio:900 / 640;background:var(--surface-subtle);display:flex;align-items:center;justify-content:center;overflow:hidden}.project-card .project-banner img{inline-size:100%;block-size:100%;object-fit:cover}.project-card .project-banner img.is-contained{object-fit:contain;padding:1.5rem}.project-card .project-banner-placeholder{color:var(--text-muted);font-weight:700;font-size:1.1rem}.project-card .project-body{padding:0.9rem 1rem;display:flex;flex-direction:column;flex:1;justify-content:space-between}.project-card .project-title{font-size:1rem;font-weight:700;margin:0 0 0.35rem;text-wrap:balance}.project-card .project-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden;font-size:0.84rem;color:var(--text-muted);margin:0;line-height:1.4;text-wrap:pretty}.project-card .project-tags{display:flex;flex-wrap:wrap;gap:0.35rem;margin-block-start:0.5rem}.project-card .project-tag{font-size:0.72rem;font-weight:600;padding:0.15rem 0.5rem;border-radius:var(--radius-xs);background:var(--surface-muted);color:var(--text-muted)}@media (max-width: 600px){.project-card{flex-direction:row;min-block-size:88px}.project-card .project-banner{inline-size:88px;min-inline-size:88px;aspect-ratio:auto;align-self:stretch;border-inline-end:1px solid var(--border-subtle)}.project-card .project-banner img,.project-card .project-banner img.is-contained{object-fit:contain;padding:0.6rem}.project-card .project-body{padding:0.7rem 0.85rem;justify-content:center}.project-card .project-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}}@container (max-width: 360px){.project-card{flex-direction:row;min-block-size:88px}.project-card .project-banner{inline-size:88px;min-inline-size:88px;aspect-ratio:auto;align-self:stretch;border-inline-end:1px solid var(--border-subtle)}.project-card .project-banner img,.project-card .project-banner img.is-contained{object-fit:contain;padding:0.6rem}.project-card .project-body{padding:0.7rem 0.85rem;justify-content:center}.project-card .project-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}}.year-group-title{margin-block-start:2rem;color:var(--text-subtle)}.post-cards-list{display:flex;flex-direction:column;gap:0.85rem;margin-block-start:1.5rem;container-type:inline-size}.post-card-link{display:block;text-decoration:none;color:inherit}.post-card-link:nth-child(n+5){content-visibility:auto;contain-intrinsic-size:auto 100px}.post-card-link:hover{text-decoration:none}.post-card-link:hover .post-card-item{border-color:var(--accent);transform:translate(3px, 0);box-shadow:var(--shadow-md)}.post-card-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:none;display:flex;align-items:center;gap:1.25rem;padding:1rem 1.25rem;transition:var(--transition-card)}@media (forced-colors: active){.post-card-item{border:1px solid ButtonBorder}}.post-card-item .post-card-main{flex:1;min-inline-size:0}.post-card-item .post-card-title{font-size:1.05rem;font-weight:700;margin:0 0 0.25rem;text-wrap:balance}.post-card-item .post-card-summary{font-size:0.88rem;color:var(--text-muted);margin:0;line-height:1.45;text-wrap:pretty}.post-card-item .post-card-meta{margin-inline-start:auto;font-size:0.82rem;color:var(--text-subtle);font-weight:600;white-space:nowrap;text-align:end}@media (max-width: 600px){.post-card-item{flex-direction:column;align-items:flex-start;gap:0.5rem}.post-card-item .post-card-meta{margin-inline-start:0}}@container (max-width: 520px){.post-card-item{flex-direction:column;align-items:flex-start;gap:0.5rem}.post-card-item .post-card-meta{margin-inline-start:0}}.single-post .post-header{margin-block-end:1.5rem}.single-post .single-post-title{font-size:clamp(1.85rem, calc(1.4rem + 2vw), 2.5rem);font-weight:800;margin:0 0 0.35rem;line-height:1.3;text-wrap:balance}.single-post .single-post-meta{display:flex;align-items:center;gap:0.5rem;font-size:0.88rem;color:var(--text-muted)}.single-post .post-toc{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:0.85rem 1.25rem;margin-block-end:1.75rem}@media (forced-colors: active){.single-post .post-toc{border:1px solid ButtonBorder}}.single-post .post-toc details::details-content{interpolate-size:allow-keywords;overflow:clip;contain:layout}.single-post .post-toc details:not([open])::details-content{block-size:0}@media (prefers-reduced-motion: no-preference){.single-post .post-toc details::details-content{transition:block-size 0.25s ease-in-out, content-visibility 0.25s ease-in-out;transition-behavior:allow-discrete}}.single-post .post-toc details summary{font-weight:700;font-size:0.95rem;color:var(--text);cursor:pointer;user-select:none;list-style:none;display:flex;align-items:center;gap:0.5ch}.single-post .post-toc details summary::-webkit-details-marker{display:none}.single-post .post-toc details summary::before{content:"";display:inline-block;inline-size:0.45rem;block-size:0.45rem;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;transform:rotate(-45deg);transition:transform 0.2s ease;margin-inline-end:0.35rem}.single-post .post-toc details[open]>summary::before{transform:rotate(45deg)}.single-post .post-toc ul{margin-block:0.5rem 0;margin-inline:1rem 0;padding:0}.single-post .post-toc li{margin-block:0.35rem;font-size:0.9rem;text-wrap:pretty}.single-post .post-toc a{color:var(--accent);text-decoration:none}.single-post .post-toc a:hover{text-decoration:underline}.post-content{font-size:1.02rem;line-height:1.75;color:var(--text-body)}.post-content p{margin-block:0 1.25rem;text-wrap:pretty}.post-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.post-content a:hover{color:var(--accent-hover)}.post-content h2{margin-block:2rem 0.75rem;font-size:1.45rem;line-height:1.35;text-wrap:balance}.post-content h3{margin-block:1.6rem 0.6rem;font-size:1.2rem;line-height:1.4;text-wrap:balance}.post-content h4{margin-block:1.35rem 0.5rem;font-size:1.05rem;text-wrap:balance}.post-content ul,.post-content ol{margin-block:0.5rem 1.25rem;margin-inline-start:1.5rem;padding:0}.post-content ul li,.post-content ol li{margin-block-end:0.35rem;line-height:1.65;text-wrap:pretty}.post-content blockquote{margin-block:1.5rem;padding-block:0.75rem;padding-inline:1.15rem;border-inline-start:4px solid var(--accent);background:var(--surface-subtle);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-muted);font-style:italic;text-wrap:pretty}.post-content blockquote p:last-child{margin-block-end:0}@media (forced-colors: active){.post-content blockquote{border-inline-start:4px solid CanvasText}}.post-content hr{margin-block:2.25rem;border:none;border-block-start:1px solid var(--border)}.post-content table{margin-block:1.5rem;border-collapse:collapse;inline-size:100%;font-size:0.92rem}.post-content table th,.post-content table td{border:1px solid var(--border);padding:0.5rem 0.75rem;text-align:start}.post-content table th{background:var(--surface-subtle);font-weight:600;color:var(--text);text-wrap:balance}.post-content pre{background:var(--code-bg);color:var(--code-text);padding:1.25rem;border-radius:var(--radius-md);overflow-x:auto;font-size:0.9rem;margin-block:1.5rem;line-height:1.5;tab-size:4;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--code-bg)}.post-content code{font-size:0.9em;background:var(--code-inline-bg);color:var(--code-inline-text);padding:0.15rem 0.4rem;border-radius:var(--radius-xs)}.post-content pre code{background:transparent;color:inherit;padding:0}.post-content figure{margin-block:1.5rem}.post-content img{display:block;margin-block:1.5rem;margin-inline:auto;border-radius:var(--radius-sm)}.post-content figure img{margin-block-end:0.5rem}.post-content figcaption{text-align:center;font-size:0.85rem;color:var(--text-subtle);text-wrap:balance}.post-content details{margin-block:1.25rem;padding:0.75rem 1rem;background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}.post-content details::details-content{interpolate-size:allow-keywords;overflow:clip;contain:layout}.post-content details:not([open])::details-content{block-size:0}@media (prefers-reduced-motion: no-preference){.post-content details::details-content{transition:block-size 0.25s ease-in-out, content-visibility 0.25s ease-in-out;transition-behavior:allow-discrete}}.post-content details summary{cursor:pointer;font-weight:600;color:var(--text);user-select:none;list-style:none;display:flex;align-items:center;gap:0.5ch}.post-content details summary::-webkit-details-marker{display:none}.post-content details summary::before{content:"";display:inline-block;inline-size:0.45rem;block-size:0.45rem;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;transform:rotate(-45deg);transition:transform 0.2s ease;margin-inline-end:0.35rem}.post-content details[open]>summary::before{transform:rotate(45deg)}.papers-feed,.publications-feed{display:flex;flex-direction:column;gap:2rem;margin-block-start:1.75rem}.paper-year-group:not(:first-child),.publication-year-group:not(:first-child){content-visibility:auto;contain-intrinsic-size:auto 300px}.paper-year,.publication-year{font-size:1.25rem;font-weight:700;color:var(--text);margin:0 0 0.85rem;padding-block-end:0.35rem;border-block-end:1px solid var(--border);text-wrap:balance}.paper-list,.publication-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem}.paper-item,.publication-item{margin:0}.paper-item .paper-title,.paper-item .publication-title,.publication-item .paper-title,.publication-item .publication-title{font-size:1.02rem;font-weight:700;color:var(--text);margin:0 0 0.2rem;line-height:1.45;text-wrap:balance}.paper-item .paper-title a,.paper-item .publication-title a,.publication-item .paper-title a,.publication-item .publication-title a{color:var(--text);text-decoration:none}.paper-item .paper-title a:hover,.paper-item .publication-title a:hover,.publication-item .paper-title a:hover,.publication-item .publication-title a:hover{text-decoration:underline;text-underline-offset:2px}.paper-item .paper-authors,.paper-item .publication-authors,.publication-item .paper-authors,.publication-item .publication-authors{font-size:0.9rem;font-style:italic;color:var(--text-muted);margin:0 0 0.2rem;line-height:1.45;text-wrap:pretty}.paper-item .paper-venue,.paper-item .publication-venue,.publication-item .paper-venue,.publication-item .publication-venue{font-size:0.88rem;color:var(--text-subtle);margin:0 0 0.2rem;line-height:1.45;text-wrap:pretty}.paper-item .paper-actions,.paper-item .publication-actions,.publication-item .paper-actions,.publication-item .publication-actions{display:flex;flex-wrap:wrap;gap:0.5rem;margin-block-start:0.5rem}.paper-badge,.publication-badge{display:inline-flex;align-items:center;justify-content:center;gap:0.35rem;padding:0.32rem 0.75rem;min-block-size:28px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-subtle);color:var(--text-body);font-size:0.8rem;font-weight:600;line-height:1;text-decoration:none;transition:var(--transition-interactive)}@media (pointer: coarse){.paper-badge,.publication-badge{min-block-size:44px;padding-inline:1rem}}.paper-badge svg,.publication-badge svg{inline-size:14px;block-size:14px;flex-shrink:0}.paper-badge:hover,.publication-badge:hover{background:var(--accent);color:var(--on-accent);border-color:transparent;box-shadow:var(--shadow-accent);transform:translateY(-1px);text-decoration:none}@media (forced-colors: active){.paper-badge,.publication-badge{border:1px solid ButtonBorder}.paper-badge:hover,.publication-badge:hover{background:Highlight;color:HighlightText;outline:2px solid Highlight}}.paper-empty,.publication-empty{margin-block-start:2rem;color:var(--text-muted)}.photo-feed{display:flex;flex-direction:column;gap:3.5rem;margin-block-start:2rem}.photo-item{margin:0}.photo-item:not(:first-child){content-visibility:auto;contain-intrinsic-size:auto 600px}.photo-frame{display:block;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-muted);transition:var(--transition-card)}.photo-frame img{display:block;inline-size:100%;block-size:auto}a.photo-frame:hover{transform:translate(0, -2px);box-shadow:var(--shadow-md)}a.photo-frame:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-lg)}@media (forced-colors: active){a.photo-frame{border:1px solid ButtonBorder}}.photo-meta{margin-block-start:0.75rem;font-size:0.85rem;color:var(--text-subtle);line-height:1.5;text-wrap:balance}.photo-sep{margin-inline:0.45rem}.photo-empty{margin-block-start:2rem;color:var(--text-muted)}@media (prefers-reduced-motion: reduce){a.photo-frame:hover{transform:none}}.error-404-container{display:flex;flex-direction:column;align-items:center;text-align:center;padding-block:3rem;padding-inline:1rem}.error-404-container .pixel-art-wrapper{inline-size:280px;max-inline-size:100%;margin-block-end:2rem}.error-404-container .pixel-art-img{inline-size:100%;block-size:auto;display:block}.error-404-container .error-title{font-size:clamp(1.75rem, calc(1.25rem + 2vw), 2.5rem);font-weight:800;margin:0 0 0.75rem;text-wrap:balance}
