:root{--paper: oklch(.972 .006 95);--paper-translucent: oklch(.972 .006 95 / .92);--card: oklch(.985 .004 95);--ink: oklch(.21 .012 95);--body: oklch(.32 .015 95);--muted: oklch(.36 .015 95);--meta: oklch(.45 .02 95);--meta-dim: oklch(.5 .02 95);--accent: oklch(.5 .13 145);--accent-hover: oklch(.52 .13 145);--accent-button-hover: oklch(.44 .13 145);--accent-bright: oklch(.72 .16 145);--accent-soft: oklch(.78 .05 145);--selection: oklch(.88 .12 145);--rule: oklch(.89 .008 95);--border-strong: oklch(.84 .012 95);--border-tag: oklch(.87 .01 95);--border-link: oklch(.85 .012 95);--font-sans: "Bricolage Grotesque", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: oklch(.17 .01 95);--paper-translucent: oklch(.17 .01 95 / .85);--card: oklch(.23 .012 95);--ink: oklch(.95 .006 95);--body: oklch(.82 .01 95);--muted: oklch(.75 .012 95);--meta: oklch(.65 .015 95);--meta-dim: oklch(.56 .015 95);--accent: oklch(.72 .14 145);--accent-hover: oklch(.76 .14 145);--accent-button-hover: oklch(.62 .14 145);--accent-bright: oklch(.78 .17 145);--accent-soft: oklch(.5 .09 145);--selection: oklch(.4 .1 145);--rule: oklch(.32 .012 95);--border-strong: oklch(.4 .015 95);--border-tag: oklch(.34 .012 95);--border-link: oklch(.36 .014 95);color-scheme:dark}}:root[data-theme=dark]{--paper: oklch(.17 .01 95);--paper-translucent: oklch(.17 .01 95 / .85);--card: oklch(.23 .012 95);--ink: oklch(.95 .006 95);--body: oklch(.82 .01 95);--muted: oklch(.75 .012 95);--meta: oklch(.65 .015 95);--meta-dim: oklch(.56 .015 95);--accent: oklch(.72 .14 145);--accent-hover: oklch(.76 .14 145);--accent-button-hover: oklch(.62 .14 145);--accent-bright: oklch(.78 .17 145);--accent-soft: oklch(.5 .09 145);--selection: oklch(.4 .1 145);--rule: oklch(.32 .012 95);--border-strong: oklch(.4 .015 95);--border-tag: oklch(.34 .012 95);--border-link: oklch(.36 .014 95);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--body);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}@media(prefers-reduced-motion:reduce){body{transition:none}}::selection{background:var(--selection)}a{color:inherit;text-decoration:none}a:hover{color:var(--accent-hover)}ul{margin:0;padding:0}h1,h2,h3,p{margin:0}.container{max-width:1140px;margin:0 auto;padding-left:clamp(20px,5vw,56px);padding-right:clamp(20px,5vw,56px);padding-bottom:140px}.site-header{position:sticky;top:0;z-index:9;background:var(--paper-translucent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:26px 0 22px;display:flex;justify-content:space-between;align-items:baseline;gap:24px}.site-header__home{font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}.site-header__nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:clamp(14px,2.4vw,30px);font-family:var(--font-mono);font-size:11.5px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--meta)}.theme-toggle{position:relative;display:inline-flex;align-items:center;width:40px;height:20px;padding:2px;flex-shrink:0;border:1px solid var(--border-strong);border-radius:999px;background:var(--card);cursor:pointer;transition:border-color .18s ease}.theme-toggle:hover{border-color:var(--ink)}.theme-toggle__knob{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--ink);color:var(--paper);transition:transform .18s ease,background-color .18s ease,color .18s ease}.theme-toggle[aria-checked=true] .theme-toggle__knob{transform:translate(20px)}.theme-toggle__icon{width:10px;height:10px}.section{margin-top:24px;border-top:1px solid var(--rule);padding-top:clamp(72px,9vw,110px)}.section__label{font-family:var(--font-mono);font-size:11.5px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--meta);margin-bottom:24px}.section__content{margin-top:clamp(36px,5vw,60px)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.hero{padding:clamp(70px,11vw,130px) 0 clamp(70px,9vw,110px);animation:rise .7s ease both}@media(prefers-reduced-motion:reduce){.hero{animation:none}}.hero__availability{display:flex;align-items:center;gap:10px;margin-bottom:clamp(28px,4vw,44px);font-family:var(--font-mono);font-size:11.5px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--meta)}.hero__dot{width:7px;height:7px;border-radius:50%;background:var(--accent-bright);flex-shrink:0}.hero__heading{font-family:var(--font-sans);font-size:clamp(38px,6.6vw,86px);font-weight:400;line-height:1;letter-spacing:-.032em;color:var(--ink);max-width:960px}.hero__heading-line{display:block}.hero__heading-line:after{content:"";display:none}.hero__heading.is-typing .hero__heading-line.is-active-line:after,.hero__heading.is-done .hero__heading-line.is-active-line:after{content:"";display:inline-block;width:.5ch;height:.82em;margin-left:2px;vertical-align:-.08em;background:var(--accent);animation:caret-blink 1s step-end infinite}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}@media(prefers-reduced-motion:reduce){.hero__heading-line:after{display:none!important}}.hero__subheading{margin-top:14px;font-family:var(--font-sans);font-size:clamp(22px,3vw,40px);font-weight:400;line-height:1.15;letter-spacing:-.02em;color:var(--muted);max-width:760px;text-wrap:balance;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}.hero__heading.is-done+.hero__subheading{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.hero__subheading{opacity:1;transform:none;transition:none}}.hero__paragraph{margin-top:clamp(30px,4vw,46px);font-size:clamp(17px,1.5vw,20px);font-weight:400;line-height:1.6;color:var(--muted);max-width:640px;text-wrap:pretty}.hero__buttons{margin-top:clamp(32px,4vw,46px);display:flex;flex-wrap:wrap;gap:10px}.button{display:inline-block;padding:12px 20px;border-radius:2px;font-family:var(--font-mono);font-size:12.5px;font-weight:400}.button--primary{background:var(--ink);color:var(--paper);transition:background .18s ease}.button--primary:hover{background:var(--accent-button-hover);color:var(--paper)}.button--secondary{background:transparent;color:var(--ink);border:1px solid var(--border-strong);transition:border-color .18s ease}.button--secondary:hover{border-color:var(--ink);color:var(--ink)}.entry-list{display:flex;flex-direction:column;gap:clamp(48px,6vw,76px)}#education .entry-list{gap:clamp(36px,4vw,52px)}.entry{display:grid;grid-template-columns:minmax(150px,.42fr) minmax(0,1fr);gap:clamp(16px,3vw,48px)}@media(max-width:420px){.entry{grid-template-columns:1fr}}.entry__company{font-size:clamp(22px,2.2vw,28px);font-weight:500;line-height:1.15;letter-spacing:-.02em;color:var(--ink)}.entry__title{font-size:clamp(19px,1.8vw,23px);font-weight:500;line-height:1.2;letter-spacing:-.018em;color:var(--ink)}.entry__role{margin-top:10px;font-family:var(--font-mono);font-size:11.5px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.entry__period{margin-top:8px;font-family:var(--font-mono);font-size:11.5px;font-weight:400;line-height:1.6;color:var(--meta-dim)}#education .entry__period{margin-top:9px}.entry__points{list-style:none;display:flex;flex-direction:column;gap:18px}#education .entry__points{gap:14px}.entry__point{display:grid;grid-template-columns:auto 1fr;gap:14px;font-size:16.5px;font-weight:400;line-height:1.6;color:var(--body)}.entry__point strong{font-weight:600;color:var(--ink)}.dot{border-radius:50%;flex-shrink:0}.dot--soft{width:5px;height:5px;margin-top:9px;background:var(--accent-soft)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(28px,4vw,44px)}.skill-group{display:flex;flex-direction:column;gap:20px}.skill-group__title{font-size:15px;font-weight:600;letter-spacing:-.005em;color:var(--ink)}.skill-tier__label{font-family:var(--font-mono);font-size:10.5px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--meta-dim);margin-bottom:10px}.skill-tier__tags{display:flex;flex-wrap:wrap;gap:7px}.skill-tag{font-family:var(--font-mono);font-size:12.5px;font-weight:400;padding:6px 11px;border:1px solid var(--border-tag);border-radius:2px;background:var(--card);color:var(--body)}.languages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(24px,4vw,48px)}.language{display:flex;flex-direction:column;gap:10px}.language__name{font-size:clamp(24px,2.4vw,32px);font-weight:500;letter-spacing:-.022em;color:var(--ink)}.language__description{font-size:16.5px;font-weight:400;line-height:1.6;color:var(--muted)}#contact{padding-top:clamp(44px,6vw,72px)}.contact{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;flex-wrap:wrap}.contact__heading{font-size:clamp(30px,4.4vw,58px);font-weight:400;line-height:1.05;letter-spacing:-.028em;color:var(--ink);max-width:640px;text-wrap:balance}.contact__note{margin-top:22px;font-size:17px;font-weight:400;color:var(--muted)}.contact__links{display:flex;flex-direction:column;gap:12px}.contact__links a{font-family:var(--font-mono);font-size:13px;font-weight:400;border-bottom:1px solid var(--border-link);padding-bottom:6px;color:var(--ink)}.contact__links a:hover{color:var(--accent-hover);border-bottom-color:var(--accent-hover)}
