*,*:before,*:after{box-sizing:border-box}body{margin:0}:root{--bg: #f5f2ec;--bg-elev: #efeae0;--ink: #1a1815;--ink-2: #2a2620;--muted: #7a736a;--line: rgba(26,24,21,.12);--line-strong: rgba(26,24,21,.22);--accent: oklch(.62 .16 45);--accent-soft: oklch(.62 .16 45 / .13);--accent-ink: oklch(.42 .13 45);--grain: rgba(26,24,21,.025);--serif: "Instrument Serif", "Cormorant Garamond", Georgia, serif;--sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", sans-serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--max: 1320px;--gutter: clamp(20px, 4vw, 64px);--pad-y: clamp(80px, 12vw, 160px);--t-fast: .18s cubic-bezier(.2,.7,.2,1);--t-base: .36s cubic-bezier(.2,.7,.2,1)}html[data-theme=dark]{--bg: #0e0d0c;--bg-elev: #1a1816;--ink: #f1ece2;--ink-2: #e2dcd0;--muted: #8a8275;--line: rgba(241,236,226,.13);--line-strong: rgba(241,236,226,.25);--accent: oklch(.74 .16 45);--accent-soft: oklch(.74 .16 45 / .13);--accent-ink: oklch(.86 .14 45);--grain: rgba(241,236,226,.03)}html[data-density=compact]{--pad-y: clamp(56px, 8vw, 110px)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:-.005em;transition:background-color var(--t-base),color var(--t-base);overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1000;background-image:radial-gradient(circle at 25% 30%,var(--grain) .5px,transparent 1px),radial-gradient(circle at 75% 70%,var(--grain) .5px,transparent 1px);background-size:3px 3px,5px 5px;opacity:.6;mix-blend-mode:multiply}html[data-theme=dark] body:before{mix-blend-mode:screen}::selection{background:var(--accent-soft);color:var(--accent-ink)}.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}.mono{font-family:var(--mono);font-feature-settings:"ss01" on}.eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:18px;height:1px;background:currentColor;opacity:.7}.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.02em}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font:500 14px/1 var(--sans);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:transform var(--t-fast),background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.btn:hover{transform:translateY(-1px);border-color:var(--ink)}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}html[data-theme=dark] .btn.primary:hover{color:var(--bg)}.btn .arrow{width:14px;height:14px;transition:transform var(--t-fast)}.btn:hover .arrow{transform:translate(3px)}.section{padding:var(--pad-y) 0;position:relative}.section+.section{border-top:1px solid var(--line)}.section-head{display:grid;grid-template-columns:200px 1fr;gap:48px;align-items:baseline;margin-bottom:clamp(40px,6vw,80px)}@media(max-width:720px){.section-head{grid-template-columns:1fr;gap:16px}}.section-num{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase}.section-title{font-family:var(--serif);font-weight:400;font-size:clamp(40px,6vw,76px);line-height:.95;letter-spacing:-.025em;margin:0;text-wrap:balance}.section-title em{font-style:italic;color:var(--accent-ink)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}.reveal[data-delay="1"]{transition-delay:80ms}.reveal[data-delay="2"]{transition-delay:.16s}.reveal[data-delay="3"]{transition-delay:.24s}.reveal[data-delay="4"]{transition-delay:.32s}.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in oklab,var(--bg) 78%,transparent);border-bottom:1px solid var(--line)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand-mark{width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;font:600 11px/1 var(--mono);letter-spacing:.02em}.brand-name{font:500 13px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase}.nav-links{display:flex;gap:28px;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.nav-links a{color:var(--muted);text-decoration:none;transition:color var(--t-fast)}.nav-links a:hover{color:var(--ink)}.nav-actions{display:flex;gap:10px;align-items:center}.icon-btn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;transition:border-color var(--t-fast),transform var(--t-fast),background-color var(--t-fast)}.icon-btn:hover{border-color:var(--ink);transform:translateY(-1px)}.icon-btn svg{width:15px;height:15px}.theme-toggle .sun{display:none}html[data-theme=dark] .theme-toggle .sun{display:block}html[data-theme=dark] .theme-toggle .moon{display:none}@media(max-width:720px){.nav-links{display:none}}.hero{padding:clamp(56px,8vw,110px) 0 clamp(64px,9vw,130px);position:relative}.hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(32px,5vw,80px);align-items:end}@media(max-width:900px){.hero-grid{grid-template-columns:1fr}}.hero-eyebrow{margin-bottom:36px;display:flex;gap:14px;flex-wrap:wrap}.hero-eyebrow .tag{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-strong);font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}.hero-eyebrow .tag .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.hero-name{font-family:var(--serif);font-weight:400;font-size:clamp(72px,13vw,200px);line-height:.88;letter-spacing:-.035em;margin:0 0 24px;text-wrap:balance}.hero-name .amp{font-style:italic;color:var(--accent-ink)}.hero-role{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.4vw,32px);color:var(--muted);line-height:1.25;margin:0 0 36px;max-width:580px}.hero-role b{font-weight:400;font-style:normal;font-family:var(--sans);color:var(--ink)}.hero-meta{display:flex;flex-wrap:wrap;gap:18px 28px;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:36px}.hero-meta a{color:var(--muted);text-decoration:none;transition:color var(--t-fast)}.hero-meta a:hover{color:var(--ink)}.hero-meta .sep{opacity:.4}.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}.hero-side{display:flex;flex-direction:column;gap:24px;align-items:flex-end}@media(max-width:900px){.hero-side{align-items:flex-start}}.now-card{width:100%;max-width:360px;padding:18px 20px;border:1px solid var(--line);border-radius:6px;background:var(--bg-elev)}.now-card .now-head{display:flex;align-items:center;gap:10px;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);position:relative}.live-dot:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:1px solid var(--accent);animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%{transform:scale(.6);opacity:1}to{transform:scale(1.6);opacity:0}}.now-card p{margin:0;font-family:var(--serif);font-size:19px;line-height:1.3;color:var(--ink)}.hero-cue{margin-top:80px;display:flex;align-items:center;justify-content:space-between;gap:24px;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.hero-cue .rule{flex:1;height:1px;background:var(--line)}.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(40px,6vw,100px);align-items:start}@media(max-width:900px){.about-grid{grid-template-columns:1fr}}.about-lede{font-family:var(--serif);font-size:clamp(28px,3.4vw,44px);line-height:1.18;letter-spacing:-.018em;color:var(--ink);margin:0 0 32px;text-wrap:pretty}.about-lede em{color:var(--accent-ink);font-style:italic}.about-body{font-size:17px;line-height:1.65;color:var(--ink-2);max-width:56ch;margin:0}.about-body+.about-body{margin-top:16px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.stat{padding:28px 24px 24px;border:1px solid var(--line);border-radius:6px;background:var(--bg-elev);position:relative;overflow:hidden}.stat .num{font-family:var(--serif);font-size:clamp(48px,6vw,76px);line-height:1;letter-spacing:-.03em;color:var(--ink);display:flex;align-items:baseline;gap:4px}.stat .num .unit{font-family:var(--sans);font-size:.36em;font-weight:500;color:var(--muted);letter-spacing:0}.stat .label{margin-top:16px;font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.stat:after{content:"";position:absolute;top:0;right:0;width:28px;height:28px;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.featured-project{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(40px,6vw,80px);align-items:start;padding:48px;border:1px solid var(--line);border-radius:8px;background:var(--bg-elev);position:relative;overflow:hidden}.featured-project:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 100% 0%,var(--accent-soft) 0%,transparent 60%);pointer-events:none}@media(max-width:900px){.featured-project{grid-template-columns:1fr;padding:32px 24px}}.fp-label{display:inline-flex;align-items:center;gap:10px;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}.fp-live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);position:relative;flex-shrink:0}.fp-live-dot:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:1px solid var(--accent);animation:pulse 2.4s ease-out infinite}.fp-title{font-family:var(--serif);font-weight:400;font-size:clamp(44px,6vw,80px);line-height:.92;letter-spacing:-.03em;margin:0 0 20px}.fp-tagline{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2vw,24px);line-height:1.3;color:var(--muted);margin:0 0 20px;max-width:52ch}.fp-body{font-size:16px;line-height:1.65;color:var(--ink-2);max-width:56ch;margin:0 0 32px}.fp-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.app-store-badge{display:inline-block;border-radius:7px;transition:opacity var(--t-fast),transform var(--t-fast);flex-shrink:0}.app-store-badge img{display:block}.app-store-badge:hover{opacity:.82;transform:translateY(-1px)}html[data-theme=dark] .app-store-badge img{filter:invert(1)}.fp-meta{display:flex;flex-direction:column;gap:28px;padding-top:4px}.fp-stack-group{display:flex;flex-direction:column;gap:10px}.fp-stack-label{font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.fp-stack-tags{display:flex;flex-wrap:wrap;gap:6px}.fp-stack-tags span{font:500 12px/1 var(--mono);padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);background:var(--bg);letter-spacing:.01em;transition:border-color var(--t-fast),color var(--t-fast)}.fp-stack-tags span:hover{border-color:var(--ink);color:var(--ink)}.highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden}@media(max-width:900px){.highlights{grid-template-columns:1fr}}.highlight{background:var(--bg);padding:36px 32px;display:flex;flex-direction:column;gap:18px;min-height:240px;transition:background-color var(--t-fast)}.highlight:hover{background:var(--bg-elev)}.highlight .h-num{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}.highlight h3{margin:0;font-family:var(--serif);font-size:28px;line-height:1.15;letter-spacing:-.02em;font-weight:400}.highlight h3 .metric{display:inline-block;color:var(--accent-ink);font-style:italic}.highlight p{margin:0;color:var(--ink-2);font-size:15px;line-height:1.6}.timeline{position:relative;padding-left:0}.role{display:grid;grid-template-columns:200px 1fr;gap:48px;padding:40px 0;border-top:1px solid var(--line);position:relative}.role:last-child{border-bottom:1px solid var(--line)}@media(max-width:720px){.role{grid-template-columns:1fr;gap:14px;padding:32px 0}}.role-dates{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;position:relative;padding-top:4px}.role-dates .dur{display:block;margin-top:6px;color:var(--accent-ink);font-size:10px}.role-body{max-width:760px}.role-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-bottom:6px}.role-title{font-family:var(--serif);font-size:clamp(28px,3vw,38px);line-height:1.1;letter-spacing:-.02em;margin:0;font-weight:400}.role-company{font-family:var(--sans);font-size:16px;color:var(--muted)}.role-company .at{opacity:.5;margin:0 4px}.role-company b{font-weight:500;color:var(--ink-2)}.role-loc{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:8px;margin-bottom:18px}.role-bullets{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}.role-bullets li{position:relative;padding-left:22px;font-size:15.5px;line-height:1.6;color:var(--ink-2)}.role-bullets li:before{content:"";position:absolute;left:0;top:10px;width:12px;height:1px;background:var(--accent)}.role-bullets li b{color:var(--ink);font-weight:500;background:var(--accent-soft);padding:1px 5px;border-radius:3px;font-variant-numeric:tabular-nums}.skills{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden}@media(max-width:720px){.skills{grid-template-columns:1fr}}.skill-cat{background:var(--bg);padding:28px 28px 32px;display:flex;flex-direction:column;gap:16px}.skill-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.skill-head h4{margin:0;font-family:var(--serif);font-size:22px;font-weight:400;letter-spacing:-.015em}.skill-head .level{font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.skill-bar{height:3px;background:var(--line);border-radius:999px;overflow:hidden}.skill-bar .fill{display:block;height:100%;background:var(--accent);width:0;transition:width 1.4s cubic-bezier(.2,.7,.2,1);border-radius:999px}.skill-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.skill-tags span{font:500 12px/1 var(--mono);padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);letter-spacing:.01em;transition:border-color var(--t-fast),color var(--t-fast)}.skill-tags span:hover{border-color:var(--ink);color:var(--ink)}.cases{display:flex;flex-direction:column;gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.case{background:var(--bg);display:grid;grid-template-columns:80px 1.2fr 1fr 240px;gap:40px;padding:40px 0;align-items:start;transition:background-color var(--t-fast)}.case:hover{background:var(--bg-elev)}@media(max-width:1000px){.case{grid-template-columns:60px 1fr;gap:20px 24px}.case .case-outcome,.case .case-meta{grid-column:1 / -1;padding-left:80px}.case .case-meta{padding-left:80px}}@media(max-width:720px){.case{grid-template-columns:1fr;padding-left:0}.case .case-outcome,.case .case-meta{padding-left:0}}.case-num{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--muted);padding-top:6px}.case-title{font-family:var(--serif);font-size:clamp(28px,3vw,38px);line-height:1.1;letter-spacing:-.02em;margin:0 0 12px;font-weight:400}.case-body{color:var(--ink-2);font-size:16px;line-height:1.6;margin:0;max-width:52ch}.case-outcome{display:flex;flex-direction:column;gap:14px}.case-outcome .o{display:flex;gap:12px;align-items:baseline}.case-outcome .o .v{font-family:var(--serif);font-size:30px;line-height:1;letter-spacing:-.02em;color:var(--accent-ink);min-width:100px}.case-outcome .o .k{font:500 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.case-meta{display:flex;flex-direction:column;gap:8px;font:500 11px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.case-meta .ml{color:var(--ink-2)}.philosophy{padding:clamp(80px,12vw,160px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 20% 0%,var(--accent-soft) 0%,transparent 50%),var(--bg);position:relative}.philosophy .quote-mark{font-family:var(--serif);font-style:italic;font-size:clamp(80px,14vw,200px);line-height:.8;color:var(--accent-ink);display:block;margin-bottom:-20px}.philosophy blockquote{margin:0;font-family:var(--serif);font-size:clamp(32px,4.4vw,64px);line-height:1.08;letter-spacing:-.025em;max-width:22ch;text-wrap:balance}.philosophy blockquote em{color:var(--accent-ink);font-style:italic}.philosophy .attrib{margin-top:36px;font:500 12px/1.6 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.philosophy .principles{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:1000px}@media(max-width:900px){.philosophy .principles{grid-template-columns:1fr}}.principle h5{margin:0 0 10px;font-family:var(--serif);font-style:italic;font-size:22px;font-weight:400;letter-spacing:-.01em}.principle p{margin:0;color:var(--ink-2);font-size:15px;line-height:1.6}.principle .n{display:inline-block;font:500 10px/1 var(--mono);letter-spacing:.14em;color:var(--accent-ink);margin-bottom:12px;padding:4px 8px;border:1px solid var(--accent);border-radius:999px}.edu-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(40px,6vw,80px);align-items:start}@media(max-width:900px){.edu-grid{grid-template-columns:1fr}}.edu-card{padding:32px;border:1px solid var(--line);border-radius:6px;background:var(--bg-elev)}.edu-card .edu-degree{font-family:var(--serif);font-size:26px;line-height:1.2;letter-spacing:-.015em;margin:0 0 6px}.edu-card .edu-school{font:500 14px/1.4 var(--sans);color:var(--ink-2);margin:0 0 14px}.edu-card .edu-meta{display:flex;gap:14px;flex-wrap:wrap;font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.edu-card .edu-meta .badge{background:var(--accent-soft);color:var(--accent-ink);padding:5px 9px;border-radius:999px}.certs-head{font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}.certs{display:flex;flex-wrap:wrap;gap:8px}.certs span{font:500 13px/1 var(--sans);padding:10px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);background:var(--bg);transition:border-color var(--t-fast),color var(--t-fast),transform var(--t-fast)}.certs span:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-1px)}.langs{margin-top:40px;display:flex;flex-wrap:wrap;gap:32px;font-size:14px}.langs .lang{display:flex;flex-direction:column;gap:4px}.langs .lang .name{font:500 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.langs .lang .level{font-family:var(--serif);font-size:22px;letter-spacing:-.01em}.contact{padding:clamp(100px,14vw,180px) 0;text-align:left;border-top:1px solid var(--line)}.contact h2{font-family:var(--serif);font-weight:400;font-size:clamp(56px,10vw,156px);line-height:.92;letter-spacing:-.035em;margin:0 0 32px;text-wrap:balance}.contact h2 em{font-style:italic;color:var(--accent-ink)}.contact p{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);line-height:1.3;color:var(--muted);margin:0 0 48px;max-width:28ch}.contact-actions{display:flex;gap:12px;flex-wrap:wrap}.footer{border-top:1px solid var(--line);margin-top:80px;padding:32px 0 40px;display:grid;gap:14px}.footer-row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.footer-row a{color:var(--muted);text-decoration:none;transition:color var(--t-fast)}.footer-row a:hover{color:var(--ink)}.footer-row .dots{display:inline-flex;align-items:center;gap:6px}.footer-row .dots .d{width:4px;height:4px;border-radius:50%;background:var(--muted)}@media print{body{background:#fff!important;color:#000!important;font-size:11pt}.nav,.tweaks,.hero-cue,.photo-slot{display:none!important}body:before{display:none}.section{padding:18pt 0;page-break-inside:avoid}.hero{padding:0 0 18pt}.hero-name{font-size:36pt}.reveal{opacity:1!important;transform:none!important}.skill-bar .fill{width:var(--print-w, 80%)!important}}
