:root{--bg: #ffffff;--paper: #fbfaf8;--ink: #1c1a17;--ink-soft: #5d5648;--ink-faint: #948c7a;--accent: #b4502b;--accent-soft: #d98a5f;--line: #e9e5dd;--font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-eyebrow: "Instrument Serif", "Times New Roman", serif;--content-width: 760px;--gutter: 24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit}p{margin:0 0 1em}.page{position:relative}main{display:block}.logo{position:fixed;top:20px;left:20px;width:64px;height:64px;z-index:100;pointer-events:none}.logo__svg{width:100%;height:100%}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.ambient__blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.28;will-change:transform}.ambient__blob--1{width:480px;height:480px;top:-120px;left:-100px;background:#b4502b;animation:drift-1 34s ease-in-out infinite}.ambient__blob--2{width:420px;height:420px;top:40%;right:-140px;background:#3a5ba0;animation:drift-2 40s ease-in-out infinite}.ambient__blob--3{width:380px;height:380px;bottom:-140px;left:30%;background:#2f6f4e;animation:drift-3 30s ease-in-out infinite}@keyframes drift-1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,80px) scale(1.1)}}@keyframes drift-2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-70px,40px) scale(.95)}}@keyframes drift-3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(50px,-60px) scale(1.08)}}.section{max-width:var(--content-width);margin:0 auto;padding:96px var(--gutter);min-height:100vh;display:flex;flex-direction:column;justify-content:center;opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.25,.46,.45,.94),transform .8s cubic-bezier(.25,.46,.45,.94);position:relative;width:100%}.section.is-visible{opacity:1;transform:translateY(0)}@media (max-width: 640px){.section{padding:64px var(--gutter);min-height:auto}}.section-label{margin-bottom:40px;text-align:center}.section-label__eyebrow{display:flex;align-items:center;gap:16px;margin:0 0 18px}.section-label__rule{flex:1;height:1px;background:var(--line)}.section-label__eyebrow-text{font-family:var(--font-eyebrow);font-style:italic;font-size:22px;white-space:nowrap;color:var(--ink-soft)}.section-label__title{font-family:var(--font-display);font-weight:700;font-size:clamp(26px,3.4vw,36px);letter-spacing:-.01em;margin:0;color:var(--ink)}.contact .section-label__eyebrow-text,.contact .section-label__title{color:inherit}.contact .section-label__rule{background:#ffffff2e}.hero{max-width:var(--content-width);margin:0 auto;min-height:100vh;padding:120px var(--gutter) 88px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:48px}.hero__intro>*{opacity:0;animation:hero-in .7s ease forwards}.hero__intro>*:nth-child(1){animation-delay:.05s}.hero__intro>*:nth-child(2){animation-delay:.15s}.hero__intro>*:nth-child(3){animation-delay:.25s}.hero__intro>*:nth-child(4){animation-delay:.35s}.hero__intro>*:nth-child(5){animation-delay:.45s}@keyframes hero-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.greeting{display:flex;align-items:center;gap:6px;font-size:clamp(24px,4.2vw,48px);font-weight:600;color:var(--ink-soft);margin:0 0 28px;line-height:1}.greeting__wave{font-size:clamp(32px,5.6vw,60px);display:inline-block;animation:wave 2.2s ease-in-out infinite;transform-origin:70% 70%;flex-shrink:0}@keyframes wave{0%,60%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.greeting__word{font-weight:800;color:var(--accent);display:inline-block;min-width:clamp(60px,8vw,120px);animation:greeting-in .5s ease}@keyframes greeting-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.hero__name{font-family:var(--font-display);font-weight:800;font-size:clamp(48px,9.2vw,96px);line-height:.95;letter-spacing:-.03em;margin:0 0 32px;color:var(--ink);display:flex;flex-direction:column}.hero__name-line{display:block}.hero__name-line--accent{color:var(--accent)}.hero__tagline{font-family:var(--font-display);font-size:clamp(20px,2.6vw,26px);font-weight:400;line-height:1.4;margin:0 0 20px;color:var(--ink)}.hero__tagline em{font-style:normal;color:var(--accent)}.hero__sub{color:var(--ink-soft);max-width:52ch;font-size:16px}.hero__actions{margin-top:28px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.hero__link{text-decoration:none;font-size:15px;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px;transition:color .2s ease,border-color .2s ease}.hero__link:hover{color:var(--accent);border-color:var(--accent)}.get-in-touch-btn{position:fixed;top:24px;right:24px;z-index:100;padding:10px 20px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-family:var(--font-body);font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s ease}.get-in-touch-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.hero__photo-wrap{width:200px;height:200px;border-radius:50%;overflow:hidden;border:1px solid var(--line);background:var(--paper);flex-shrink:0;box-shadow:0 20px 40px -24px #b4502b59;opacity:0;animation:hero-in .7s ease forwards .2s}.hero__photo{width:100%;height:100%;object-fit:cover;transform:scale(2.5);transform-origin:6% 9%}@media (max-width: 640px){.hero{grid-template-columns:1fr;padding-top:88px;text-align:left;min-height:auto}.hero__photo-wrap{order:-1;width:140px;height:140px}}.location-badge{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-soft)}.location-badge__icon{width:15px;height:15px;color:var(--accent);flex-shrink:0}.location-badge--sm{font-size:12.5px;color:var(--ink-faint)}.location-badge--sm .location-badge__icon{width:13px;height:13px}.stack{max-width:none;width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;padding-left:var(--gutter);padding-right:var(--gutter);background:transparent;transition:background-color .9s ease,opacity .7s ease,transform .7s ease}.stack.is-visible{background:#eeece5}.stack-scene{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(220px,340px) minmax(300px,420px) minmax(220px,340px);align-items:center;justify-content:center;gap:24px;padding:56px 0}.stack-scene__center{text-align:center}.stack-scene__desc{max-width:40ch;margin:4px auto 0;color:var(--ink-soft);font-size:16px}.stack-scene__pills{display:flex;flex-wrap:wrap;gap:14px;align-content:center}.stack-scene__pills--left{justify-content:flex-end}.stack-scene__pills--right{justify-content:flex-start}.tool-pill{display:flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:7px 16px 7px 7px;box-shadow:0 14px 28px -14px #1c1a1747;animation:float-pill 4s ease-in-out infinite;animation-delay:var(--pill-delay, 0s);transition:transform .2s ease,box-shadow .2s ease}.tool-pill:nth-child(3n){animation-duration:4.6s}.tool-pill:nth-child(4n){animation-duration:3.4s}.tool-pill:hover{transform:translateY(-4px) scale(1.06);box-shadow:0 18px 32px -14px #1c1a1752;animation-play-state:paused;z-index:1}@keyframes float-pill{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.tool-pill__icon{width:30px;height:30px;border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center;flex-shrink:0}.tool-pill__label{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap}@media (max-width: 900px){.stack-scene{grid-template-columns:1fr;padding:40px 0;gap:32px}.stack-scene__pills{justify-content:center}.stack-scene__pills--left{order:2}.stack-scene__pills--right{order:3}}@media (prefers-reduced-motion: reduce){.tool-pill{animation:none}}.experience{max-width:1040px}.exp-flow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0 4px}.exp-flow__item{display:flex;align-items:center;gap:0}.exp-flow__connector{color:var(--card-connector, #c94b32);width:68px;flex-shrink:0;display:flex;align-items:center}.connector{width:100%;height:auto;overflow:visible}.connector--flip{transform:scaleY(-1)}.connector__path{stroke-dasharray:110;stroke-dashoffset:110;transition:stroke-dashoffset .9s ease .4s}.connector__dot{opacity:0;transition:opacity .3s ease 1.1s}.section.is-visible .connector__path{stroke-dashoffset:0}.section.is-visible .connector__dot{opacity:1}.exp-card{position:relative;width:272px;border:1px solid var(--line);border-radius:18px;padding:30px 26px 26px;background:var(--paper);box-shadow:0 24px 40px -30px #1c1a1759;transform:rotate(var(--rotate, 0deg)) translateY(14px);opacity:0;transition:transform .5s ease,box-shadow .3s ease,opacity .5s ease}.section.is-visible .exp-card{opacity:1;transform:rotate(var(--rotate, 0deg))}.exp-flow__item:nth-child(1) .exp-card{transition-delay:.05s}.exp-flow__item:nth-child(2) .exp-card{transition-delay:.15s}.exp-flow__item:nth-child(3) .exp-card{transition-delay:.25s}.exp-flow__item:nth-child(4) .exp-card{transition-delay:.35s}.exp-flow__item:nth-child(5) .exp-card{transition-delay:.45s}.exp-card:hover{transform:rotate(0) translateY(-6px) scale(1.04);box-shadow:0 26px 44px -24px var(--card-accent, var(--accent));z-index:2}.exp-card__number{position:absolute;top:-14px;left:-14px;width:32px;height:32px;border-radius:50%;background:var(--card-accent, var(--accent));color:#fff;font-family:var(--font-display);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 16px -6px var(--card-accent, var(--accent))}.exp-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.exp-card__period{font-size:12.5px;color:var(--ink);font-weight:600;margin:0}.exp-card__role{font-family:var(--font-display);font-weight:500;font-size:17px;margin:0 0 8px;color:var(--ink)}.exp-card__at{color:var(--card-accent, var(--accent));font-style:normal;font-weight:500}.exp-card__blurb{color:var(--ink-soft);font-size:14px;margin:0 0 12px}.exp-card__highlight{font-size:12.5px;color:var(--card-accent, var(--accent));font-weight:600;margin:0 0 12px}.exp-card__tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.exp-card__tags li{font-size:11.5px;color:var(--card-accent, var(--ink-faint));border:1px solid var(--card-accent, var(--line));opacity:.85;border-radius:999px;padding:3px 10px}@media (max-width: 860px){.exp-flow{flex-direction:column;align-items:center}.exp-flow__item{flex-direction:column}.exp-flow__connector{width:32px;height:40px;transform:rotate(90deg)}.exp-card{transform:rotate(0) translateY(14px)}.section.is-visible .exp-card{transform:rotate(0)}.exp-card:hover{transform:translateY(-4px) scale(1.02)}}.contact{max-width:none;width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;padding-left:var(--gutter);padding-right:var(--gutter);background:var(--bg);color:var(--ink);transition:background-color .9s ease,color .9s ease,opacity .7s ease,transform .7s ease}.contact.is-visible{background:#0a0a0a;color:#f4f2ee}.contact__inner{max-width:var(--content-width);margin:0 auto;width:100%;text-align:center}.contact__body{max-width:56ch;margin-left:auto;margin-right:auto;color:var(--ink-soft);font-size:17px;transition:color .9s ease}.contact.is-visible .contact__body{color:#a8a49c}.contact__links{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.contact__link{display:flex;align-items:center;gap:10px;padding:10px 18px 10px 12px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);background:var(--paper);transition:color .2s ease,border-color .2s ease,background .4s ease,transform .2s ease,box-shadow .2s ease}.contact.is-visible .contact__link{border-color:#ffffff24;background:#ffffff0d;color:#f4f2ee}.contact__link:hover{border-color:var(--link-color);transform:translateY(-3px);box-shadow:0 14px 24px -16px var(--link-color)}.contact__link-icon{width:26px;height:26px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--link-color)}.contact__link-label{font-size:14.5px;font-weight:500}.footer{margin-top:72px}.footer p{font-size:13px;color:var(--ink-faint);margin:0;transition:color .9s ease}.contact.is-visible .footer p{color:#6f6b63}@media (max-width: 640px){.contact{padding-top:64px;padding-bottom:64px}}.version-toggle{position:fixed;top:20px;right:20px;z-index:20;display:inline-flex;align-items:center;gap:2px;padding:4px;border-radius:999px;border:1px solid var(--line);background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 14px -8px #14141426}.version-toggle__option{padding:6px 16px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--ink-faint);text-decoration:none;transition:color .2s ease,background .2s ease}.version-toggle__option--active{background:var(--ink);color:#fff}.version-toggle__option:not(.version-toggle__option--active):hover{color:var(--accent)}@media (max-width: 640px){.version-toggle{top:auto;bottom:16px;right:16px;left:16px;justify-content:center}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.section.is-visible>*{animation:fadeInUp .8s cubic-bezier(.25,.46,.45,.94) forwards}.section.is-visible>*:nth-child(1){animation-delay:.1s}.section.is-visible>*:nth-child(2){animation-delay:.2s}.section.is-visible>*:nth-child(3){animation-delay:.3s}.section.is-visible>*:nth-child(4){animation-delay:.4s}.section.is-visible>*:nth-child(5){animation-delay:.5s}.section{transition:all .8s cubic-bezier(.25,.46,.45,.94)}.hero{animation:fadeInDown 1s ease-out forwards}.stack,.contact{background-transition:background-color .8s ease}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.ambient__blob,.greeting__wave,.greeting__word,.hero__intro>*,.hero__photo-wrap{animation:none!important;opacity:1!important;transform:none!important}.section{opacity:1;transform:none;transition:none}.exp-card{opacity:1;transform:rotate(var(--rotate, 0deg))}.connector__path{stroke-dashoffset:0;transition:none}.connector__dot{opacity:1;transition:none}}
