:root{--color-bg: #f7f8fa;--color-surface: #ffffff;--color-surface-muted: #eef2f7;--color-border: #d0d7e2;--color-border-strong: #a8b4c8;--color-text: #1a2332;--color-text-muted: #4a5568;--color-text-inverse: #ffffff;--color-brand: #1e4d8c;--color-brand-hover: #163a6b;--color-brand-soft: #e8f0fa;--color-brand-focus: #2563eb;--color-link: #1e4d8c;--color-link-hover: #163a6b;--color-info-bg: #e8f0fa;--color-info-border: #8bb0d9;--color-success: #1b6b3a;--color-danger: #9b1c1c;--layout-max-width: 76rem;--layout-gutter: clamp(1rem, 3vw, 1.75rem);--site-header-min-height: 3.75rem;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-md: 1.125rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--fs-2xl: 1.875rem;--fs-3xl: 2.25rem;--lh-tight: 1.25;--lh-body: 1.6;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--space-10: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgb(26 35 50 / .06);--shadow-md: 0 4px 12px rgb(26 35 50 / .08);--focus-ring: 0 0 0 3px rgb(37 99 235 / .35);--motion-fast: .15s ease;--motion-med: .25s ease;--z-sticky: 100;--z-dropdown: 200;--z-overlay: 300;--z-modal: 400}@media(prefers-reduced-motion:reduce){:root{--motion-fast: .01ms;--motion-med: .01ms}}*,*:before,*:after{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}html{color-scheme:light;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}img,picture,video,svg{display:block;max-width:100%;height:auto}a{color:var(--color-link);text-underline-offset:.15em}a:hover{color:var(--color-link-hover)}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}h1,h2,h3,h4{line-height:var(--lh-tight);color:var(--color-text);font-weight:650}h1{font-size:clamp(var(--fs-2xl),3vw,var(--fs-3xl));margin:0 0 var(--space-4)}h2{font-size:var(--fs-xl);margin:var(--space-6) 0 var(--space-3)}h3{font-size:var(--fs-lg);margin:var(--space-5) 0 var(--space-2)}h4{font-size:var(--fs-md);margin:var(--space-4) 0 var(--space-2)}p{margin:0 0 var(--space-3)}ul,ol{margin:0 0 var(--space-3);padding-left:1.25rem}.site-page{--menu-width: 0px;--main-width: 1fr;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans)}.site-page[view=mobile]{--menu-width: auto}.site-page::part(header){background:#f7f8faf2;backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);padding-inline:0;justify-content:center}.site-page::part(footer){background:var(--color-surface);border-top:1px solid var(--color-border);padding-inline:0;justify-content:center}.site-page::part(main-content){padding-inline:0}.site-header-bar,.site-main,.site-footer__inner{width:100%;max-width:var(--layout-max-width);margin-inline:auto;padding-inline:var(--layout-gutter);box-sizing:border-box}.site-header-bar{min-height:var(--site-header-min-height);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-2);flex:1 1 auto;padding:var(--space-2) var(--layout-gutter)}.site-logo{font-weight:700;font-size:var(--fs-md);color:var(--color-brand);text-decoration:none;white-space:nowrap}.site-logo:hover{color:var(--color-brand-hover)}.site-nav-brand{margin:0;padding:var(--space-3) var(--space-4)}.site-nav{display:flex;flex-direction:column;gap:var(--space-1)}.site-nav--header{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end}.site-page[view=mobile] .site-nav--header{display:none}.site-page[view=desktop]{--menu-width: 0px}.site-nav a{display:block;padding:var(--space-2) var(--space-3);text-decoration:none;color:var(--color-text);border-radius:var(--radius-sm);font-weight:500}.site-nav a:hover{background:var(--color-brand-soft);color:var(--color-brand)}.site-nav a[aria-current=page]{background:var(--color-brand);color:var(--color-text-inverse)}.nav-dropdown{display:block}.site-nav--header .nav-dropdown{display:inline-flex;align-items:center}.nav-dropdown__trigger{font:inherit;font-weight:600;color:var(--color-text-muted);--wa-form-control-border-color: transparent;--wa-form-control-background-color: transparent}.nav-dropdown__trigger:hover,.nav-dropdown__trigger.is-active{color:var(--color-brand)}.nav-dropdown__trigger.is-active{background:var(--color-brand-soft)}.nav-dropdown wa-dropdown-item[data-current],.nav-dropdown wa-dropdown-item[aria-current=page]{font-weight:650;color:var(--color-brand)}.site-main{padding-block:var(--space-6) var(--space-10)}.site-footer{width:100%}.site-footer__inner{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);justify-content:space-between;align-items:center;color:var(--color-text-muted);font-size:var(--fs-sm);padding-block:var(--space-5)}.site-footer a{color:var(--color-link);text-decoration:none;font-weight:500}.site-footer a:hover{text-decoration:underline}.page-hero{margin:0 0 var(--space-5);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.page-hero picture,.page-hero img{width:100%;height:auto;object-fit:contain;aspect-ratio:16 / 9;background:var(--color-surface-muted)}.page-title{margin-top:0}.lead{font-size:var(--fs-md);color:var(--color-text-muted);max-width:50rem}.card-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5);margin:var(--space-5) 0}@media(min-width:40rem){.card-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:64rem){.card-grid{grid-template-columns:repeat(3,1fr)}}.card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}a.card:hover{border-color:var(--color-brand);box-shadow:var(--shadow-md);color:inherit}.card__media{aspect-ratio:16 / 9;background:var(--color-surface-muted);overflow:hidden}.card__media picture,.card__media img{width:100%;height:100%}.card__media img{object-fit:cover}.card__body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);flex:1}.card__title{margin:0;font-size:var(--fs-lg);color:var(--color-brand)}.card__text{margin:0;color:var(--color-text-muted);font-size:var(--fs-sm);flex:1}.section-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-5);box-shadow:var(--shadow-sm)}.section-card>:first-child{margin-top:0}.bullet-list{margin:0;padding-left:1.2rem}.bullet-list li{margin-bottom:var(--space-2)}.callout{background:var(--color-info-bg);border:1px solid var(--color-info-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-4);color:var(--color-text)}.callout p:last-child{margin-bottom:0}.meta{color:var(--color-text-muted);font-size:var(--fs-sm)}.role{font-weight:600;margin:0 0 var(--space-2)}details.resume-details{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);background:var(--color-surface-muted)}details.resume-details>summary{cursor:pointer;font-weight:650;color:var(--color-brand)}details.resume-details[open]{background:var(--color-surface)}.ext-link{display:inline-flex;align-items:center;gap:.2em;margin-left:.25em;font-size:.85em;text-decoration:none;vertical-align:middle}.ext-link:after{content:"\2197";font-size:.85em}.prose a.ext-link{font-size:inherit;margin-left:0;text-decoration:underline;text-underline-offset:.15em}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-5);align-items:center}.filter-bar__label{font-weight:600;font-size:var(--fs-sm);color:var(--color-text-muted);margin-right:var(--space-1)}.filter-chip{appearance:none;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font:inherit;font-size:var(--fs-sm);cursor:pointer}.filter-chip:hover{border-color:var(--color-brand);color:var(--color-brand)}.filter-chip[aria-pressed=true]{background:var(--color-brand);border-color:var(--color-brand);color:var(--color-text-inverse)}.rec-list{display:grid;gap:var(--space-4)}.rec-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-sm)}.rec-card[hidden]{display:none}.rec-card__title{margin:0 0 var(--space-2);font-size:var(--fs-lg)}.rec-card__meta{font-size:var(--fs-sm);color:var(--color-text-muted);margin-bottom:var(--space-2)}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-1);margin:0 0 var(--space-3);padding:0;list-style:none}.tag{display:inline-block;background:var(--color-brand-soft);color:var(--color-brand);border-radius:var(--radius-pill);padding:.15rem .6rem;font-size:var(--fs-xs);font-weight:600}.comp-tabs{--indicator-color: var(--color-brand);--track-color: var(--color-border);margin-top:var(--space-2)}.comp-tabs::part(body){padding:var(--space-3) 0}.comp-tabs .bullet-list{margin-top:0}@media(max-width:47.99rem){.comp-tabs{min-width:0}}.about-layout{display:grid;gap:var(--space-6);align-items:start}@media(min-width:48rem){.about-layout{grid-template-columns:minmax(12rem,16rem) 1fr}}.portrait{width:min(100%,16rem);aspect-ratio:3 / 4;border-radius:50%;object-fit:cover;border:3px solid var(--color-brand-soft);margin:0 auto}.prose :where(h2){scroll-margin-top:calc(var(--header-height, var(--site-header-min-height)) + 1rem)}.prose :where(ul){margin-bottom:var(--space-4)}.empty-state{padding:var(--space-5);text-align:center;color:var(--color-text-muted);border:1px dashed var(--color-border);border-radius:var(--radius-md)}
