:root{color-scheme:light;--bg: #ffffff;--ink: #111111;--ink-2: #444444;--muted: #666666;--faint: #a1a1aa;--line: #e4e4e7;--panel: #f6f6f7;--accent: #e8491d;--accent-tint: #fff1ec;--sans: "Space Grotesk", system-ui, sans-serif;--mono: "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--header: 64px;--gutter: 48px;--max: 1180px}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 24px)}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.5 var(--sans);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}h1,h2,p,dl,dd{margin:0}a{color:inherit}a:hover{color:var(--accent)}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent-tint);color:var(--ink)}.mono{font-family:var(--mono);font-size:12px;line-height:1.6}.muted{color:var(--muted)}.accent{color:var(--accent)}.text-button,.plain-button{padding:0;border:0;background:none}.text-button{text-decoration:underline;text-underline-offset:5px}.text-button:hover,.plain-button:hover{color:var(--accent)}.skip-link{position:fixed;top:12px;left:16px;z-index:100;padding:10px 16px;border-radius:6px;background:var(--ink);color:#fff;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:20;background:#ffffffeb;backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner{width:min(var(--max),100% - var(--gutter) * 2);height:var(--header);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--ink);color:#fff;font:500 14px var(--mono);text-decoration:none}.brand:hover{background:var(--accent);color:#fff}.header-nav{display:flex;align-items:center;gap:24px}.header-nav a,.header-nav button{text-decoration:none;color:var(--ink)}.header-nav a:hover,.header-nav button:hover{color:var(--accent)}.lang-toggle{padding:4px 8px;border:1px solid var(--line);border-radius:4px;background:none;font:inherit}.lang-toggle:hover{border-color:var(--accent)}.page{width:min(var(--max),100% - var(--gutter) * 2);margin-inline:auto}.layout{display:grid;grid-template-columns:420px minmax(0,1fr);gap:72px;align-items:start;padding-top:48px}.content{display:flex;flex-direction:column;min-width:0;padding-bottom:120px}.content>*+*{margin-top:140px}.content>.ledger+*{margin-top:24px}.content h2{font-size:clamp(30px,3.4vw,40px);font-weight:500;line-height:1.1;letter-spacing:-.03em}.content section,.content .case{scroll-margin-top:calc(var(--header) + 132px)}.ledger{position:sticky;top:var(--header);z-index:10;background:var(--bg)}.ledger:after{content:"";position:absolute;top:100%;left:0;right:0;height:28px;background:linear-gradient(var(--bg),transparent);pointer-events:none}.ledger-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;height:32px;border-bottom:1px solid var(--line);white-space:nowrap}.ledger-rows{margin:0;padding:0;list-style:none}.ledger-row{--v: 0;height:calc(var(--v) * 30px);opacity:var(--v);overflow:hidden;transform:translateY(calc((1 - var(--v)) * -8px))}.ledger-row a{display:flex;align-items:center;gap:12px;height:30px;border-bottom:1px solid var(--line);font-size:13px;text-decoration:none}.ledger-row a .mono{flex-shrink:0;color:var(--accent);font-size:11px}.ledger-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock{--t: 0;opacity:calc(1 - var(--t));transform:translateY(calc(var(--t) * -10px)) scale(calc(1 - var(--t) * .04));transform-origin:left top}.case-head{display:flex;flex-direction:column;gap:18px}.source{position:sticky;top:calc(var(--header) + 24px);display:flex;flex-direction:column;max-height:calc(100vh - var(--header) - 48px);max-height:calc(100dvh - var(--header) - 48px);overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--panel);font:400 12.5px/1.75 var(--mono)}.source-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0;padding:10px 14px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.source-path{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-scroll{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}.code{padding:12px 0;tab-size:2;white-space:pre-wrap;overflow-wrap:anywhere}.line{position:relative;min-height:1.75em;padding:0 14px 0 46px;color:var(--ink)}.line-number{position:absolute;left:0;width:34px;text-align:right;color:var(--faint);user-select:none}.line.is-active{background:var(--accent-tint);box-shadow:inset 3px 0 0 var(--accent)}.tk-string{color:var(--accent)}.tk-number{font-weight:500}.tk-keyword{color:var(--muted)}.tk-comment{color:var(--faint);font-style:italic}.tk-punct{color:#71717a}.hero{display:flex;flex-direction:column;gap:28px;padding-top:48px}.hero h1{font-size:clamp(44px,6vw,64px);font-weight:500;line-height:1.02;letter-spacing:-.03em}.lede{max-width:620px;font-size:clamp(19px,2.2vw,24px);line-height:1.4;color:var(--ink-2)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:24px;margin-top:8px;padding-top:24px;border-top:1px solid var(--line)}.stats div{display:flex;flex-direction:column;gap:4px}.stats dd{font-size:clamp(28px,3.2vw,36px);font-weight:500;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stats dt{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:28px;font-size:15px}.button{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:6px;background:var(--ink);color:#fff;font-weight:500;text-decoration:none}.button:hover{background:var(--accent);color:#fff}.work{display:flex;flex-direction:column;gap:120px}.case{display:flex;flex-direction:column;gap:18px}.meta{color:var(--muted)}.summary{max-width:600px;font-size:17px;line-height:1.6;color:var(--ink-2)}.points{max-width:600px;margin:0;padding-left:18px;font-size:15px;line-height:1.75;color:var(--ink-2)}.stack{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 0;padding:0;list-style:none;font-size:11px}.stack li{padding:5px 9px;border:1px solid var(--line);border-radius:4px;color:var(--muted)}.also,.experience,.contact{display:flex;flex-direction:column;gap:12px}.timeline{margin:12px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.timeline li{display:grid;grid-template-columns:170px minmax(0,1fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.timeline strong{display:block;font-size:17px;font-weight:500}.timeline .org{display:block;margin-top:2px;font-size:14px;color:var(--muted)}.timeline p{margin-top:8px;font-size:14px;color:var(--ink-2)}.education{display:flex;flex-direction:column;gap:4px;margin-top:12px;font-size:14px;color:var(--ink-2)}.also-list{margin:12px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.also-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px;padding:18px 0;border-bottom:1px solid var(--line)}.also-title{display:flex;flex-direction:column;gap:4px}.also-title strong{font-size:16px;font-weight:500}.also-list p{font-size:14px;line-height:1.6;color:var(--ink-2)}.also-link{margin-left:8px;color:var(--accent);text-decoration:none;white-space:nowrap}.also-link:hover{text-decoration:underline;text-underline-offset:4px}.links{display:flex;flex-wrap:wrap;align-items:center;gap:20px;font:400 12px var(--mono)}.links a{color:var(--accent);text-decoration:none}.links a:hover{text-decoration:underline;text-underline-offset:4px}.contact{gap:16px;padding-top:40px;border-top:1px solid var(--line)}.email{width:fit-content;font-size:clamp(22px,3vw,32px);font-weight:500;letter-spacing:-.02em;text-decoration:none}.contact .links{font-size:13px}.contact .text-button{font:400 13px var(--mono)}.site-footer{width:min(var(--max),100% - var(--gutter) * 2);margin-inline:auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;padding:24px 0 32px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.site-footer nav{display:flex;gap:24px}.site-footer a{text-decoration:none}.site-dialog{width:min(420px,100% - 32px);padding:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);box-shadow:0 24px 80px #0000002e}.site-dialog::backdrop{background:#1116;backdrop-filter:blur(4px)}.dialog-content{padding:16px}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.dialog-heading h2{font-size:15px;font-weight:500}.dialog-close{font:400 12px var(--mono);color:var(--muted)}.dialog-description{padding:14px 0;font-size:13px;color:var(--muted)}.cv-languages{display:flex;flex-direction:column;gap:8px}.cv-languages a{padding:12px 14px;border:1px solid var(--line);border-radius:6px;text-decoration:none}.cv-languages a:hover{border-color:var(--accent)}@media (max-width: 960px){.layout{grid-template-columns:1fr;gap:0;padding-top:24px}.source{display:none}.content{padding-bottom:80px}.content>*+*{margin-top:96px}.content>.ledger+*{margin-top:20px}.work{gap:80px}.timeline li,.also-list li{grid-template-columns:1fr;gap:6px}}@media (max-width: 640px){:root{--gutter: 16px}.hero{padding-top:24px;gap:22px}.stats{grid-template-columns:1fr;gap:16px}.header-nav{gap:16px}.ledger-label{font-size:12px}}@media (pointer: coarse){.header-nav a,.header-nav button,.links a,.site-footer a{min-height:44px;display:inline-flex;align-items:center}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.dock,.ledger-row{transform:none}}
