:root{--bg: #ececea;--surface: #ffffff;--surface-muted: #f4f4f2;--text: #121212;--text-muted: #5c5c58;--line: #dcdcd8;--accent: #ffd426;--accent-text: #121212;--mail: #7a5c00;--focus: #2457ff;--radius-lg: 28px;--radius-md: 20px;--radius-pill: 999px;--shadow: 0 1px 2px rgb(0 0 0 / .04), 0 8px 24px rgb(0 0 0 / .06);--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif: "Instrument Serif", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--max: 1080px;--header-h: 76px;color-scheme:light}:root[data-theme=dark]{--bg: #0e0e0e;--surface: #191919;--surface-muted: #222220;--text: #f2f2ef;--text-muted: #a4a49e;--line: #2e2e2c;--accent: #ffd426;--accent-text: #121212;--mail: var(--accent);--focus: #8aa8ff;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 8px 24px rgb(0 0 0 / .35);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}h1,h2,h3,p{margin:0}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.skip-link{position:absolute;left:16px;top:-48px;z-index:100;padding:10px 16px;border-radius:var(--radius-pill);background:var(--text);color:var(--bg);text-decoration:none}.skip-link:focus{top:16px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.header{position:sticky;top:0;z-index:50;display:flex;justify-content:center;padding:14px 16px;pointer-events:none}.header__bar{display:flex;align-items:center;gap:8px;pointer-events:auto}.pill-group{display:flex;align-items:center;gap:2px;padding:5px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px)}.brand{display:grid;place-items:center;min-width:46px;height:46px;padding:0 14px;font-weight:700;letter-spacing:-.02em;white-space:nowrap;text-decoration:none}.nav{display:flex;gap:2px;margin:0;padding:0;list-style:none}.nav a,.toggle{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:0;border-radius:var(--radius-pill);background:transparent;font-size:15px;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .15s ease}.nav a:hover,.toggle:hover{background:var(--surface-muted)}.nav a[aria-current],.brand[aria-current]{background:var(--text);color:var(--bg)}.toggle{padding:0 10px;font-size:13px;font-weight:600;letter-spacing:.04em}.toggle svg{width:18px;height:18px}.contact-button{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--accent);color:var(--accent-text);box-shadow:var(--shadow);transition:transform .15s ease}.contact-button:hover{transform:scale(1.06)}.contact-button svg{width:20px;height:20px}main{width:min(100% - 32px,var(--max));margin:0 auto}.section{padding:72px 0}.section__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:28px;padding-bottom:14px;border-bottom:1px solid var(--line)}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.section__title{font-family:var(--font-serif);font-weight:400;font-size:clamp(36px,5vw,52px);line-height:1;letter-spacing:-.01em}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.chip{padding:4px 10px;border-radius:var(--radius-pill);background:var(--surface-muted);border:1px solid var(--line);font-size:13px}.chip--square{border-radius:6px;background:transparent}.frame{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--surface-muted)}.icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;color:var(--text);transition:background-color .15s ease}.icon-button:hover{background:var(--surface-muted)}.icon-button svg{width:20px;height:20px}.button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 18px;border:1px solid var(--text);border-radius:var(--radius-pill);background:var(--text);color:var(--bg);font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:opacity .15s ease}.button:hover{opacity:.86}.button--ghost{background:transparent;color:var(--text);border-color:var(--line)}.button--float{background:var(--surface);color:var(--text);border-color:var(--line);box-shadow:var(--shadow)}.button:disabled{background:transparent;color:var(--text-muted);border:1px dashed var(--line);cursor:not-allowed;opacity:1}.arrow{width:14px;height:14px}.hero{display:flex;flex-direction:column;align-items:center;gap:18px;padding:96px 0 72px;text-align:center}.avatar{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);font-size:28px;font-weight:700;letter-spacing:-.03em}.hero__name{font-size:15px;color:var(--text-muted)}.hero__title{max-width:14ch;font-family:var(--font-serif);font-weight:400;font-size:clamp(52px,9vw,104px);line-height:.95;letter-spacing:-.02em}.hero__lead{max-width:36ch;font-size:16px;color:var(--text-muted)}.hero .chips{justify-content:center}.hero .chip{font-size:14px;padding:6px 14px;background:var(--surface)}.close{display:flex;flex-direction:column;align-items:center;gap:28px;width:min(100% - 32px,var(--max));margin:8px auto 48px;text-align:center}.close__title{font-family:var(--font-serif);font-weight:400;font-size:clamp(36px,5vw,52px);line-height:1;letter-spacing:-.01em}.close__portrait{width:196px;height:196px;border-radius:50%;object-fit:cover}.close__statement{max-width:37em;font-size:14px;line-height:1.55;color:var(--text-muted);white-space:pre-line}.close__statement strong{font-weight:700;color:var(--text)}.close__contact{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:8px}.close__mail{color:var(--mail);text-decoration:none}.close__contact .links{margin:0;justify-content:center}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}.project{position:relative;display:flex;flex-direction:column;overflow:hidden}.project__image{border-bottom:1px solid var(--line)}.project__open{position:absolute;top:16px;right:16px;padding:0;background:var(--surface);box-shadow:var(--shadow);opacity:0;pointer-events:none}.project:hover .project__open,.project:focus-within .project__open{opacity:1;pointer-events:auto}.project:hover .project__open:disabled,.project:focus-within .project__open:disabled{opacity:.45;cursor:default}.project__body{display:flex;flex:1;flex-direction:column;gap:16px;padding:28px}.corner{position:absolute;top:16px;right:16px;margin:0}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.project__top{display:flex;justify-content:space-between;align-items:baseline}.project__index{font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums}.project__name{font-size:28px;font-weight:600;letter-spacing:-.02em}.project__summary{color:var(--text-muted)}.project__summary--pending{font-style:italic}.links{display:flex;flex-wrap:wrap;gap:8px;margin:auto 0 0;padding:0;list-style:none}.work{margin:0;padding:0;list-style:none}.job{display:grid;grid-template-columns:200px 1fr auto;gap:24px;padding:24px 4px;border-bottom:1px solid var(--line)}.education__mark{padding:56px 4px 0;font-size:16px;color:var(--text-muted)}.job__org{font-size:20px;font-weight:600;letter-spacing:-.01em}.job__role{font-size:17px}.job__summary{margin-top:6px;max-width:60ch;color:var(--text-muted)}.job__period{font-size:14px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.section__lead{max-width:62ch;margin:0 0 32px;font-size:16px;line-height:1.55;color:var(--text-muted);white-space:pre-line}.section__lead p+p{margin-top:8px}.blocks{display:grid;gap:16px;margin:0;padding:0;list-style:none}.block{position:relative;display:flex;flex-direction:column;gap:20px;padding:28px}.block__info{display:flex;flex-direction:column;gap:8px;max-width:62ch}.block:has(>.corner) .block__title{display:flex;align-items:center;min-height:48px;padding-right:240px}.block__title{font-size:24px;font-weight:600;letter-spacing:-.02em}.block__desc{font-size:16px;color:var(--text-muted);white-space:pre-line}.items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}.item{display:flex;flex-direction:column;gap:8px;width:100%;height:100%;min-height:220px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-muted);text-align:left}.item__image{width:calc(100% + 40px);margin:-20px -20px 8px;border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:1px solid var(--line);background:#fff}button.item{cursor:pointer;font:inherit;color:inherit;transition:transform .15s ease,border-color .15s ease}button.item:hover{transform:translateY(-2px);border-color:var(--text-muted)}.item--placeholder{justify-content:center;align-items:center;border-style:dashed;background:transparent;color:var(--text-muted);text-align:center}.item--photo{min-height:0;padding:0;overflow:hidden}.item--photo .item__image{width:100%;margin:0;border:0;border-radius:inherit}.item__kicker{font-size:12px;color:var(--text-muted)}.item__title{font-size:18px;font-weight:600;letter-spacing:-.01em}.dialog{width:min(100% - 32px,680px);max-height:min(100% - 32px,80vh);padding:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:0 24px 80px #00000040;overflow:auto}.dialog::backdrop{background:#00000059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog__body{display:flex;flex-direction:column;gap:14px;padding:32px}.dialog__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dialog__title{font-family:var(--font-serif);font-weight:400;font-size:36px;line-height:1.05}.dialog__close{flex:none;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface-muted);cursor:pointer}.dialog__text{color:var(--text);font-size:16px;line-height:1.65}.dialog__text p{white-space:pre-line}.dialog__text p+p{margin-top:14px}.dialog__body>.button{align-self:flex-start}@media(max-width:860px){.header{padding:10px 12px}.header__bar{flex-wrap:wrap;justify-content:center}.header__nav-group{order:3;width:100%;justify-content:center;overflow-x:auto;scrollbar-width:none}.projects{grid-template-columns:1fr}.job{grid-template-columns:1fr;gap:4px}.job__period{order:-1}.block:has(>.corner) .block__title{min-height:0;padding-right:0;display:block}.block{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:start}.block__info{grid-column:1;grid-row:1}.items{grid-column:1 / -1;grid-row:2}.block>.corner{position:static;grid-column:2;grid-row:1}}@media(max-width:520px){:root{--header-h: 120px}.nav a{padding:0 11px;font-size:14px}.section{padding:48px 0}.hero{padding:56px 0 40px}.close__portrait{width:160px;height:160px}.project__body,.block{padding:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
