*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;background:#16150f;color-scheme:dark}html[data-theme=light]{background:#f6f3ea;color-scheme:light}body{margin:0;font-family:Space Grotesk,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}input,textarea{font-family:inherit}#ssr{max-width:62ch;margin:0 auto;padding:24px;color:#e8e4d9}html[data-theme=light] #ssr{color:#22201a}#ssr img{border-radius:6px;-o-object-fit:cover;object-fit:cover}.page{--bg: #16150f;--surface: #1d1c14;--border: #2c2a20;--border-strong: #3a382c;--text: #e8e4d9;--text-muted: #b5afa0;--text-dim: #9a9584;--placeholder: #6e6a5c;--accent: #b8c46a;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--pad-x: 6vw;--pad-y: 7vh;--label-col: 180px;--error: #c4756a;--icon-tile: #e8e4d9;--shimmer: 255, 255, 255;min-height:100vh;background:var(--bg);color:var(--text);overflow-x:hidden}:root[data-theme=light] .page{--bg: #f6f3ea;--surface: #fffdf6;--border: #dfdacb;--border-strong: #c8c2b0;--text: #22201a;--text-muted: #4f4b3f;--text-dim: #66624f;--placeholder: #7d7868;--accent: #5a6614;--error: #a33a2c;--icon-tile: #ffffff;--shimmer: 0, 0, 0}.page :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skeleton{background:linear-gradient(90deg,rgba(var(--shimmer),.04) 25%,rgba(var(--shimmer),.09),rgba(var(--shimmer),.04) 75%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:4px;flex-shrink:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:22px var(--pad-x);border-bottom:1px solid var(--border)}.nav__path{font-family:var(--mono);font-size:13px;letter-spacing:.02em}.nav__path-prefix{color:var(--accent)}.nav__links{display:flex;gap:24px;margin-left:auto;font-family:var(--mono);font-size:12.5px;text-transform:lowercase;color:var(--text-dim)}.nav__links a{transition:color .2s}.nav__links a:hover,.nav__link--cta{color:var(--accent)}.lang-switcher{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12.5px}.lang-btn{border:none;background:none;padding:0;color:var(--text-dim);font-family:inherit;font-size:inherit;cursor:pointer;transition:color .2s}.lang-btn:hover{color:var(--text)}.lang-btn--active{color:var(--accent)}.theme-toggle{margin:-8px 0 -8px 6px;width:30px;height:30px;display:inline-grid;place-items:center;padding:0;border:1px solid var(--border-strong);border-radius:4px;background:none;color:var(--text-dim);cursor:pointer;transition:color .2s,border-color .2s}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.hero{padding:9vh var(--pad-x) 8vh;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:5vw;align-items:center;border-bottom:1px solid var(--border)}.hero__main{min-width:0;max-width:62ch}.eyebrow{font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--accent);margin:0 0 26px}.typed__rest{visibility:hidden}.typed__cursor{display:inline-block;width:7px;height:1em;margin-right:-7px;vertical-align:-2px;background:var(--accent);animation:blink 1.15s steps(1) infinite}.hero__main h1{font-size:clamp(38px,5.6vw,68px);font-weight:700;line-height:1.06;letter-spacing:-.035em;margin:0 0 30px;text-wrap:pretty}.hero__body{font-size:17px;line-height:1.7;color:var(--text-muted);max-width:56ch;margin:0 0 18px;text-wrap:pretty}.hero__body:last-of-type{margin-bottom:38px}.hero__actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.hero__aside{min-width:0}.avatar{width:clamp(180px,22vw,260px);aspect-ratio:1;-o-object-fit:cover;object-fit:cover;-o-object-position:center 10%;object-position:center 10%;display:block;border-radius:6px}.hero__stats{margin-top:26px;display:flex;flex-wrap:wrap;gap:20px 28px}.hero__stat{border-left:2px solid var(--accent);padding-left:16px}.hero__stat-value{font-size:34px;font-weight:700;letter-spacing:-.03em;margin:0;line-height:1}.hero__stat-label{font-family:var(--mono);font-size:11.5px;color:var(--text-dim);margin:8px 0 0;max-width:200px;line-height:1.5}.btn{font-family:var(--mono);font-size:13px;border-radius:4px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:opacity .2s,border-color .2s,color .2s}.btn--primary{background:var(--accent);color:var(--bg);border:none;padding:13px 26px}.btn--primary:hover:not(:disabled){opacity:.88}.btn--primary:disabled{opacity:.45;cursor:not-allowed}.btn--ghost{border:1px solid var(--border-strong);background:none;padding:12px 26px;color:var(--text)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.section{padding:var(--pad-y) var(--pad-x);border-bottom:1px solid var(--border)}.section--split{display:flex;flex-wrap:wrap;gap:4vw}.section__label{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);font-weight:500;margin:0;flex:0 0 var(--label-col)}.section--stacked .section__label{margin-bottom:40px}.section__body{min-width:0;flex:1 1 340px}.work{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.work-card{border:1px solid var(--border);border-radius:8px;padding:28px;display:flex;flex-direction:column;gap:14px;min-width:0;transition:border-color .25s ease}.work-card:hover{border-color:var(--border-strong)}.work-card__index{font-family:var(--mono);font-size:11.5px;color:var(--accent)}.work-card h3{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0}.work-card__description{font-size:15.5px;line-height:1.65;color:var(--text-muted);margin:0;text-wrap:pretty}.work-card__outcome{font-family:var(--mono);font-size:12px;color:var(--accent);margin:auto 0 0;line-height:1.6}.work-card__tags{display:flex;gap:8px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:var(--text-dim)}.work-card__tag{border:1px solid var(--border-strong);border-radius:3px;padding:4px 9px}.work-card__links{display:flex;gap:16px;font-family:var(--mono);font-size:12px;color:var(--text-dim)}.work-card__links a{transition:color .2s}.work-card__links a:hover{color:var(--accent)}.education-timeline{border-left:1px solid var(--border-strong);padding-left:24px}.education__item{position:relative}.education__item:before{content:"";position:absolute;left:-29px;top:8px;width:9px;height:9px;border-radius:50%;background:var(--accent)}.education__head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:12px}.education__head h3{font-size:20px;font-weight:700;letter-spacing:-.02em;margin:0}.education__year{font-family:var(--mono);font-size:11.5px;color:var(--accent)}.education__meta{font-size:15.5px;line-height:1.7;color:var(--text-muted);margin:0 0 6px}.education__details{font-size:15.5px;line-height:1.7;color:var(--text-muted);margin:0;max-width:62ch;text-wrap:pretty}.education__item+.education__item{margin-top:32px}.stack{display:flex;flex-direction:column}.stack__row{display:flex;align-items:center;gap:18px;padding:15px 0;border-bottom:1px solid var(--border)}.stack__row:last-child{border-bottom:none}.stack__icon{width:28px;height:28px;padding:4px;box-sizing:border-box;-o-object-fit:contain;object-fit:contain;flex-shrink:0;background:var(--icon-tile);border-radius:4px}.stack__name{font-size:16px;font-weight:700;min-width:88px}.stack__description{font-size:15px;color:var(--text-muted);line-height:1.5}.contact{padding:var(--pad-y) var(--pad-x) 8vh;display:flex;flex-wrap:wrap;gap:4vw;border-bottom:none}.contact__intro{flex:0 0 var(--label-col)}.contact__intro .section__label{margin-bottom:16px}.contact__lede{font-size:15.5px;line-height:1.7;color:var(--text-muted);margin:0;max-width:32ch}.contact-form{min-width:0;flex:1 1 340px;display:grid;gap:20px;max-width:560px}.contact-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px}.contact-form__field{display:grid;gap:8px}.contact-form__field label{font-family:var(--mono);font-size:11.5px;color:var(--text-dim)}.contact-form__field input,.contact-form__field textarea{border:1px solid var(--border-strong);border-radius:5px;background:var(--surface);padding:12px 14px;font-size:15.5px;color:var(--text);outline:none;resize:vertical;transition:border-color .2s}.contact-form__field input:focus,.contact-form__field textarea:focus{border-color:var(--accent)}.contact-form__field input::-moz-placeholder,.contact-form__field textarea::-moz-placeholder{color:var(--placeholder)}.contact-form__field input::placeholder,.contact-form__field textarea::placeholder{color:var(--placeholder)}.contact-form__field input[aria-invalid=true],.contact-form__field textarea[aria-invalid=true]{border-color:var(--error)}.contact-form__field-error{font-family:var(--mono);font-size:11.5px;color:var(--error)}.contact-form__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.contact-form__submit{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.contact-form__status{font-family:var(--mono);font-size:12px;color:var(--text-dim);margin:0}.contact-form__status--error{color:var(--error)}.footer{border-top:1px solid var(--border);padding:26px var(--pad-x);padding-right:max(var(--pad-x),88px);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;color:var(--text-dim)}.footer p{margin:0}.footer__links{display:flex;gap:20px}.footer__links a{transition:color .2s}.footer__links a:hover{color:var(--accent)}.chat-widget{position:fixed;right:24px;bottom:24px;z-index:20;display:flex;flex-direction:column;align-items:flex-end;font-family:var(--mono)}.chat-widget.is-open{width:min(380px,calc(100vw - 32px));height:min(520px,calc(100dvh - 48px));background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;overflow:hidden}.chat-toggle{width:48px;height:48px;border:none;border-radius:6px;background:var(--accent);color:var(--bg);font-family:inherit;font-size:14px;font-weight:700;cursor:pointer}.is-open .chat-toggle{position:absolute;top:6px;right:6px;width:36px;height:36px;background:none;color:var(--text-dim);font-size:18px}.is-open .chat-toggle:hover{color:var(--text)}.chat-widget__header{flex-shrink:0;align-self:stretch;padding:15px 48px 15px 16px;border-bottom:1px solid var(--border);font-size:12.5px;color:var(--text)}.chat-widget__title{display:flex;align-items:center;gap:9px}.chat-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.chat-widget__body{flex:1;min-height:0;align-self:stretch;display:flex;flex-direction:column}.chat-widget__messages{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.chat-bubble{max-width:86%;padding:10px 12px;border-radius:6px;font-family:Space Grotesk,system-ui,sans-serif;font-size:14.5px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap}.chat-bubble--ai{align-self:flex-start;border:1px solid var(--border);color:var(--text-muted)}.chat-bubble--user{align-self:flex-end;background:var(--accent);color:var(--bg)}.typing-indicator span{animation:blink 1.15s steps(1) infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.chat-widget__input{flex-shrink:0;display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}.chat-widget__input input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--border-strong);border-radius:5px;background:var(--bg);color:var(--text);font-size:14px;outline:none}.chat-widget__input input:focus{border-color:var(--accent)}.chat-widget__input input::-moz-placeholder{color:var(--placeholder)}.chat-widget__input input::placeholder{color:var(--placeholder)}.chat-widget__input button{padding:0 14px;border:none;border-radius:5px;background:var(--accent);color:var(--bg);font-family:inherit;font-size:12.5px;font-weight:500;cursor:pointer}.chat-widget__input button:disabled{opacity:.45;cursor:not-allowed}.section__cmd,.nav__cursor{display:none}@keyframes blink{0%,48%{opacity:1}52%,to{opacity:0}}@media(max-width:720px){.page{--pad-y: 46px}.nav{padding:18px var(--pad-x) 0;gap:0 16px}.nav__path{order:0}.lang-switcher{order:1;margin-left:auto;gap:2px;font-size:13px}.lang-btn{min-width:32px;padding:14px 4px;margin-block:-14px;text-align:center}.nav__links{order:2;flex-basis:100%;margin-left:0;justify-content:space-between;gap:8px}.nav__links a{padding:13px 0}.nav__link--cta{box-shadow:inset 0 -2px 0 var(--accent)}.theme-toggle{position:relative;width:34px;height:34px;margin-left:2px}.theme-toggle:after{content:"";position:absolute;inset:-5px}.nav__cursor{display:inline-block;width:7px;height:14px;background:var(--accent);vertical-align:-2px;margin-left:3px;animation:blink 1.15s steps(1) infinite}.hero{position:relative;z-index:0;padding:46px var(--pad-x) 46px;gap:44px}.hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(232,228,217,.022) 0px,rgba(232,228,217,.022) 1px,transparent 1px,transparent 4px)}.hero__main h1{font-size:clamp(32px,8.2vw,38px);line-height:1.12;letter-spacing:-.03em;margin-bottom:24px}.hero__body{font-size:16px}.hero__body:last-of-type{margin-bottom:32px}.hero__actions .btn{flex:1;padding-left:12px;padding-right:12px}.hero__actions .btn--primary{padding-top:15px;padding-bottom:15px}.hero__actions .btn--ghost{padding-top:14px;padding-bottom:14px}.hero__actions .hero__resume{flex-basis:100%}.hero__aside{position:relative;margin-right:calc(-1 * var(--pad-x))}.avatar{width:100%;aspect-ratio:4 / 3;-o-object-position:center 10%;object-position:center 10%;border-radius:6px 0 0 6px}.avatar+.hero__stats{position:absolute;gap:14px 24px;left:calc(-1 * var(--pad-x));bottom:-18px;margin:0;background:var(--bg);padding:14px 20px 14px var(--pad-x)}.hero__stat-value{font-size:36px}.hero__stat-label{margin-top:6px}.section__label-text{display:none}.section__cmd{display:block}.section__cmd:before{content:"$ ";color:var(--accent)}.section__label,.contact__intro{flex:1 1 100%}.section__label{font-size:12.5px;letter-spacing:.02em;text-transform:none;font-weight:400}.section--stacked .section__label,.section--split .section__label{margin-bottom:26px}.section--split,.contact{gap:0}.work{grid-template-columns:1fr;gap:14px}.work-card{position:relative;overflow:hidden;padding:24px;gap:12px}.work-card__index{position:absolute;top:-10px;right:6px;font-size:64px;font-weight:500;color:#b8c46a12;line-height:1;pointer-events:none}.work-card h3{font-size:20px}.work-card__description{font-size:15px}.education__head{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:14px}.education__head h3{font-size:19px}.education__meta,.education__details{font-size:15px}.stack__row{flex-wrap:wrap;gap:10px 14px;padding:18px var(--pad-x);margin:0 calc(-1 * var(--pad-x))}.stack__row:last-child{padding-bottom:0}.stack__icon{width:40px;height:40px;padding:9px;border:1px solid var(--border);border-radius:6px}.stack__name{min-width:0;font-size:17px}.stack__description{flex-basis:100%;margin-left:54px;line-height:1.55}.contact{padding-bottom:52px}.contact__intro .section__label{margin-bottom:18px}.contact__lede{max-width:none;margin-bottom:26px}.contact-form{max-width:none;gap:18px}.contact-form__row{grid-template-columns:1fr;gap:18px}.contact-form__field input,.contact-form__field textarea{font-size:16px;padding:14px}.contact-form__submit .btn{width:100%;padding:16px 28px}.footer{flex-direction:column;align-items:flex-start;gap:14px;padding:24px var(--pad-x) 30px}.chat-widget{right:16px;bottom:16px}.chat-widget__input input{font-size:16px}}@media(prefers-reduced-motion:reduce){.nav__cursor,.typing-indicator span{animation:none}}
