:root{--bg: #faf8f5;--surface: #f2efe9;--text: #17150f;--muted: #6d685e;--line: #e4dfd5;--accent: #f9d021;--accent-ink: #8a6500;--accent-text: #17150f;--logo-bg: transparent;--logo-front: #17150f;--logo-depth: #a8a399;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--wrap: 1080px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0b0d1a;--surface: #13162a;--text: #ecebe6;--muted: #9796a5;--line: #23263d;--accent: #f9d021;--accent-ink: #f9d021;--accent-text: #0b0d1a;--logo-bg: #0b0d1a;--logo-front: #f9d021;--logo-depth: #8a6500;color-scheme:dark}}:root[data-theme=dark]{--bg: #0b0d1a;--surface: #13162a;--text: #ecebe6;--muted: #9796a5;--line: #23263d;--accent: #f9d021;--accent-ink: #f9d021;--accent-text: #0b0d1a;--logo-bg: #0b0d1a;--logo-front: #f9d021;--logo-depth: #8a6500;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .25s,color .25s}a{color:inherit;text-decoration:none}svg{width:1em;height:1em;flex-shrink:0}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px;border-radius:4px}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}.mono{font-size:.82rem;font-weight:500;font-variant-numeric:tabular-nums}.eyebrow,.skill-row dt,.job-note,.area-tag{letter-spacing:.06em}.muted{color:var(--muted)}.header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner{height:64px;display:flex;align-items:center;justify-content:space-between}.logo{display:inline-flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em;font-size:1rem}.logo svg{display:block;width:32px;height:32px;image-rendering:auto;transition:transform .3s ease-out}.logo:hover svg{transform:rotate(-12deg) scale(1.06)}.nav{display:flex;align-items:center;gap:28px;font-size:.95rem}.nav a{color:var(--muted);transition:color .15s}.nav a:hover{color:var(--text)}.icon-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text);font-size:18px;cursor:pointer;transition:border-color .15s}.icon-btn:hover{border-color:var(--muted)}.hero{padding:clamp(72px,14vh,160px) 0 clamp(72px,12vh,128px)}.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 28px;color:var(--muted);text-transform:uppercase}.dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}.hero h1{margin:0;max-width:20ch;font-size:clamp(2rem,4.8vw,3.5rem);line-height:1.04;letter-spacing:-.035em;font-weight:600;text-wrap:balance}.hero-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:44px}.btn{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 20px;border:1px solid var(--line);border-radius:999px;font-weight:500;font-size:.95rem;transition:border-color .15s,transform .15s,background-color .15s}.btn:hover{border-color:var(--muted);transform:translateY(-1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 88%,var(--text))}.section{display:grid;grid-template-columns:220px 1fr;gap:32px;padding:72px 0;border-top:1px solid var(--line)}.section-label{margin:0;display:flex;align-items:baseline;gap:12px;font-size:1rem;font-weight:600;position:sticky;top:96px;align-self:start}.section-label .mono{color:var(--accent-ink)}.lead{margin:0 0 20px;max-width:60ch;font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.55;letter-spacing:-.01em}.skills{margin:44px 0 0}.skill-row{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:14px 0;border-top:1px dashed var(--line)}.skill-row dt{color:var(--muted);padding-top:5px;text-transform:uppercase}.skill-row dd{margin:0;display:flex;flex-wrap:wrap;gap:8px}.chip{padding:3px 12px;border-radius:999px;background:var(--surface);font-size:.9rem}.projects{list-style:none;margin:0;padding:0}.project{display:grid;grid-template-columns:40px 1fr auto 24px;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.projects li:first-child .project{padding-top:0}.project-num{color:var(--muted)}.project-main{display:flex;flex-direction:column;gap:2px}.project-title{font-size:1.2rem;font-weight:600;letter-spacing:-.015em;transition:color .15s}.project-text{color:var(--muted);font-size:.95rem}.project-tags{color:var(--muted);white-space:nowrap}.project-arrow{display:inline-grid;font-size:22px;color:var(--muted);transition:transform .2s ease-out,color .15s}.project:hover .project-title,.project:hover .project-arrow{color:var(--accent-ink)}.project:hover .project-arrow,.big-link:hover .project-arrow{transform:translate(3px,-3px)}.big-link{display:inline-flex;align-items:center;gap:12px;margin-top:8px;font-size:clamp(1.15rem,2.8vw,1.75rem);font-weight:600;letter-spacing:-.03em;border-bottom:2px solid var(--accent);padding-bottom:4px;overflow-wrap:anywhere}.big-link .project-arrow{color:var(--accent-ink);font-size:.8em}.footer{display:flex;align-items:center;justify-content:space-between;padding-top:32px;padding-bottom:48px;border-top:1px solid var(--line);color:var(--muted)}.footer-links{display:flex;gap:18px;font-size:20px}.footer-links a{display:inline-grid;transition:color .15s}.footer-links a:hover{color:var(--accent-ink)}@media(max-width:760px){.wrap{padding-left:16px;padding-right:16px}.footer{padding-top:28px;padding-bottom:calc(40px + env(safe-area-inset-bottom))}.nav{gap:18px}.nav a{display:none}.section{grid-template-columns:1fr;gap:24px;padding:56px 0}.section-label{position:static}.skill-row{grid-template-columns:1fr;gap:8px}.project{grid-template-columns:1fr 24px;gap:12px}.project-num,.project-tags{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.experience{list-style:none;margin:0;padding:0}.job{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.job:first-child{padding-top:0}.job-meta{display:flex;flex-direction:column;gap:2px;padding-top:4px;color:var(--muted)}.job-title{margin:0 0 6px;font-size:1.2rem;font-weight:600;letter-spacing:-.015em}.job-company{color:var(--accent-ink)}a.job-company:hover{text-decoration:underline;text-underline-offset:3px}.job-text{margin:0;max-width:60ch;color:var(--muted)}@media(max-width:760px){.job{grid-template-columns:1fr;gap:8px}.job-meta{flex-direction:row;gap:12px}}.job-note{margin:-2px 0 10px;color:var(--accent-ink);text-transform:uppercase}.job-highlights{margin:0;padding-left:1.1em;max-width:62ch;color:var(--muted)}.job-highlights li+li{margin-top:4px}.job-highlights li::marker{color:var(--line)}.job-stack{margin:12px 0 0;color:var(--muted)}.earlier{margin-top:8px;border-bottom:1px solid var(--line)}.earlier summary{display:flex;justify-content:space-between;align-items:center;padding:18px 0;cursor:pointer;list-style:none;font-weight:500}.earlier summary::-webkit-details-marker{display:none}.earlier-icon{font-size:1.4rem;line-height:1;color:var(--muted);transition:transform .2s}.earlier[open] .earlier-icon{transform:rotate(45deg)}.earlier ul,.education{list-style:none;margin:0;padding:0 0 18px}.earlier li,.education li{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:8px 0}.earlier li .mono,.education li .mono{padding-top:3px}.education{padding:0}.education li{padding:0 0 18px}.edu-detail{display:block;color:var(--muted);font-size:.95rem}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:36px 0 0}.stat{display:flex;flex-direction:column;gap:2px;padding:18px 20px;border-radius:14px;background:var(--surface)}.stat-value{font-size:1.9rem;font-weight:600;letter-spacing:-.03em;line-height:1.1}.stat-label{color:var(--muted)}@media(max-width:760px){.earlier li,.education li{grid-template-columns:1fr;gap:2px}.stats{grid-template-columns:1fr 1fr 1fr;gap:8px}.stat{padding:14px}.stat-value{font-size:1.4rem}}.job-summary{margin:0 0 20px;max-width:62ch;font-size:1.05rem}.areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.area{padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .15s}.area:hover{border-color:color-mix(in srgb,var(--accent) 80%,var(--line))}.area-featured{grid-column:1 / -1;border-color:color-mix(in srgb,var(--accent) 75%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.area-tag{color:var(--accent-ink);text-transform:uppercase;font-size:.7rem}.area-title{margin:4px 0 6px;font-size:1.05rem;font-weight:600;letter-spacing:-.01em}.area-text{margin:0;color:var(--muted);font-size:.93rem;line-height:1.55}.job-featured{padding-bottom:32px}@media(max-width:760px){.areas{grid-template-columns:1fr}}.edu-grade{display:block;margin:4px 0 2px;color:var(--accent-ink)}.project{position:relative}.stretched:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.project-demo{position:relative;z-index:1;align-self:flex-start;margin-top:6px;color:var(--accent-ink)}.project-demo:hover{text-decoration:underline;text-underline-offset:3px}.logo-bg{fill:var(--logo-bg)}.logo-depth{fill:none;stroke:var(--logo-depth)}.logo-depth-fill{fill:var(--logo-depth);stroke:var(--logo-depth)}.logo-front{fill:none;stroke:var(--logo-front)}
