:root{--bg: #fafaf7;--bg-soft: #f3f3ee;--surface: #ffffff;--surface-2: #f7f7f2;--text: #0b0d0c;--text-dim: #5a5f5b;--text-faint: #8c928d;--border: #e7e7e0;--border-strong: #d8d8cf;--accent: oklch(68% .17 158);--accent-soft: oklch(94% .06 158);--accent-ink: oklch(32% .08 158);--shadow-sm: 0 1px 2px rgba(10, 13, 12, .04), 0 2px 6px rgba(10, 13, 12, .03);--shadow-md: 0 2px 6px rgba(10, 13, 12, .05), 0 12px 28px -12px rgba(10, 13, 12, .1);--shadow-lg: 0 8px 24px -8px rgba(10, 13, 12, .12), 0 24px 48px -20px rgba(10, 13, 12, .14);--radius-sm: 10px;--radius: 16px;--radius-lg: 22px;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--display: "Inter Tight", Inter, system-ui, -apple-system, sans-serif;--sans: Inter, system-ui, -apple-system, sans-serif}[data-theme=dark]{--bg: #0b0d0c;--bg-soft: #0f1210;--surface: #15181600;--surface: #141715;--surface-2: #1b1f1c;--text: #f2f3ee;--text-dim: #a8ada7;--text-faint: #6b706a;--border: #23272400;--border: #232724;--border-strong: #2e332f;--accent: oklch(78% .19 158);--accent-soft: oklch(28% .08 158);--accent-ink: oklch(88% .15 158);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25), 0 2px 6px rgba(0, 0, 0, .2);--shadow-md: 0 2px 6px rgba(0, 0, 0, .3), 0 12px 28px -12px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 24px -8px rgba(0, 0, 0, .5), 0 24px 48px -20px rgba(0, 0, 0, .55)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:16px;line-height:1.55;letter-spacing:-.005em;transition:background-color .4s ease,color .4s ease;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}::selection{background:var(--accent);color:#061209}.cursor-glow{position:fixed;pointer-events:none;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle at center,#00d9891a,#00d98900 60%);background:radial-gradient(circle at center,color(xyz 0.287 0.516 0.313 / 0.102),color(xyz 0.287 0.516 0.313 / 0) 60%);transform:translate(-50%,-50%);z-index:0;transition:opacity .3s ease;mix-blend-mode:normal;opacity:0}[data-theme=dark] .cursor-glow{background:radial-gradient(circle at center,#00d9891f,#00d98900 60%);background:radial-gradient(circle at center,color(xyz 0.287 0.516 0.313 / 0.122),color(xyz 0.287 0.516 0.313 / 0) 60%)}body.cursor-ready .cursor-glow{opacity:1}@media (max-width: 900px){.cursor-glow{display:none}}.page{position:relative;z-index:1;max-width:960px;margin:0 auto;padding:0 32px 160px}@media (max-width: 720px){.page{padding:0 20px 100px}}.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:18px 0;background:color-mix(in oklch,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s ease}.nav.scrolled{border-bottom-color:var(--border)}.nav-brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:-.01em}.nav-brand .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in oklch,var(--accent) 25%,transparent);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px color-mix(in oklch,var(--accent) 25%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in oklch,var(--accent) 10%,transparent)}}.nav-links{display:flex;gap:4px;font-size:13.5px;color:var(--text-dim)}.nav-links a{padding:8px 12px;border-radius:999px;transition:color .2s ease,background-color .2s ease}.nav-links a:hover{color:var(--text);background:var(--surface-2)}.nav-links a.active{color:var(--text)}.nav-right{display:flex;align-items:center;gap:10px}.theme-toggle{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.theme-toggle:hover{background:var(--surface-2);border-color:var(--border-strong)}.theme-toggle:active{transform:scale(.94)}.theme-toggle svg{width:16px;height:16px;color:var(--text-dim)}@media (max-width: 720px){.nav-links{display:none}}.hero{padding:96px 0 80px;position:relative}.hero-kicker{display:inline-flex;align-items:center;gap:10px;padding:6px 12px 6px 8px;border:1px solid var(--border);border-radius:999px;font-size:12.5px;color:var(--text-dim);background:var(--surface);margin-bottom:28px}.hero-kicker .live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in oklch,var(--accent) 22%,transparent);animation:pulse 2.4s ease-in-out infinite}.hero-kicker .sep{width:1px;height:11px;background:var(--border-strong)}.hero-kicker .loc{color:var(--text);font-weight:500}.hero-kicker .time{font-family:var(--mono);font-size:12px;color:var(--text-dim)}.hero h1{font-family:var(--display);font-size:clamp(40px,7vw,72px);line-height:1.02;letter-spacing:-.035em;font-weight:600;margin:0 0 20px;text-wrap:pretty}.hero h1 .accent{color:var(--accent-ink)}[data-theme=dark] .hero h1 .accent{color:var(--accent)}.hero .typed-wrap{font-family:var(--display);font-size:clamp(20px,2.6vw,26px);font-weight:500;color:var(--text-dim);letter-spacing:-.015em;margin:0 0 28px;min-height:1.4em}.hero .typed{color:var(--text)}.hero .caret{display:inline-block;width:2px;height:1em;background:var(--accent);vertical-align:text-bottom;margin-left:3px;animation:blink 1.05s steps(2,end) infinite}@keyframes blink{50%{opacity:0}}.hero-lede{font-size:17px;line-height:1.65;color:var(--text-dim);max-width:640px;margin:0 0 40px;text-wrap:pretty}.hero-lede strong{color:var(--text);font-weight:600}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;font-size:14px;font-weight:500;border:1px solid var(--border);background:var(--surface);color:var(--text);transition:background-color .2s ease,border-color .2s ease,transform .15s ease}.btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn.primary:hover{background:var(--text);opacity:.9}.btn svg{width:14px;height:14px}.hero-meta{display:flex;gap:28px;margin-top:56px;padding-top:28px;border-top:1px solid var(--border);flex-wrap:wrap}.hero-meta .item{display:flex;flex-direction:column;gap:4px}.hero-meta .k{font-size:12px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.hero-meta .v{font-size:14.5px;color:var(--text);font-weight:500}.hero-meta .v .mono{font-family:var(--mono);font-size:13px}section.block{padding:80px 0;position:relative}.section-head{display:flex;align-items:baseline;gap:16px;margin-bottom:40px}.section-head .num{font-family:var(--mono);font-size:12px;color:var(--accent-ink);font-weight:500}[data-theme=dark] .section-head .num{color:var(--accent)}.section-head h2{font-family:var(--display);font-size:clamp(28px,4vw,38px);line-height:1.1;letter-spacing:-.025em;font-weight:600;margin:0}.section-head .tail{flex:1;height:1px;background:var(--border);margin-top:.7em}.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px}@media (max-width: 780px){.about-grid{grid-template-columns:1fr;gap:32px}}.about-grid p{font-size:17px;line-height:1.7;color:var(--text);margin:0 0 18px;text-wrap:pretty}.about-grid p.dim{color:var(--text-dim);font-size:16px}.about-grid .hl{background:linear-gradient(180deg,transparent 62%,color-mix(in oklch,var(--accent) 45%,transparent) 62%);padding:0 2px}.capabilities{display:flex;flex-direction:column;gap:10px}.cap{padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.cap:hover{border-color:var(--border-strong);transform:translateY(-2px)}.cap .cap-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.cap .cap-head .icn{width:22px;height:22px;border-radius:6px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center}[data-theme=dark] .cap .cap-head .icn{color:var(--accent)}.cap .cap-head .icn svg{width:13px;height:13px}.cap .cap-head h4{font-family:var(--display);font-size:15px;font-weight:600;margin:0;letter-spacing:-.01em}.cap p{font-size:14px;line-height:1.6;color:var(--text-dim);margin:0;padding-left:32px}.timeline{display:flex;flex-direction:column;gap:0}.job{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:28px 0;border-top:1px solid var(--border);position:relative}.job:last-child{border-bottom:1px solid var(--border)}@media (max-width: 720px){.job{grid-template-columns:1fr;gap:8px}}.job .when{font-family:var(--mono);font-size:13px;color:var(--text-dim);padding-top:2px}.job .when .status{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:11px;font-weight:500;color:var(--accent-ink);padding:2px 8px;border-radius:999px;background:var(--accent-soft);margin-top:6px}[data-theme=dark] .job .when .status{color:var(--accent)}.job .when .status .d{width:6px;height:6px;border-radius:50%;background:var(--accent)}.job-body h3{font-family:var(--display);font-size:20px;font-weight:600;margin:0 0 4px;letter-spacing:-.015em}.job-body .role{font-size:14px;color:var(--text-dim);margin:0 0 14px}.job-body ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.job-body li{font-size:14.5px;line-height:1.6;color:var(--text);padding-left:18px;position:relative}.job-body li:before{content:"";position:absolute;left:2px;top:.72em;width:6px;height:1px;background:var(--text-faint)}.job-body li .hl{color:var(--accent-ink);font-weight:600}[data-theme=dark] .job-body li .hl{color:var(--accent)}.job-body .metrics{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.metric-chip{font-family:var(--mono);font-size:12px;padding:5px 10px;border-radius:999px;background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.metric-chip b{color:var(--accent-ink);font-weight:600}[data-theme=dark] .metric-chip b{color:var(--accent)}.projects{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 780px){.projects{grid-template-columns:1fr}}.proj{position:relative;padding:28px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden;transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease;cursor:default;display:flex;flex-direction:column;min-height:320px}.proj:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(600px circle at var(--mx, 50%) var(--my, 50%),color-mix(in oklch,var(--accent) 14%,transparent),transparent 40%);opacity:0;transition:opacity .3s ease;pointer-events:none}.proj:hover{border-color:color-mix(in oklch,var(--accent) 55%,var(--border));transform:translateY(-3px);box-shadow:var(--shadow-md)}.proj:hover:before{opacity:1}.proj-num{font-family:var(--mono);font-size:11px;color:var(--text-faint);letter-spacing:.05em;margin-bottom:14px}.proj h3{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-.018em;margin:0 0 10px;line-height:1.15}.proj .summary{font-size:14.5px;line-height:1.6;color:var(--text-dim);margin:0 0 18px;text-wrap:pretty}.proj .highlights{list-style:none;padding:0;margin:0 0 auto;display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--text);max-height:0;overflow:hidden;opacity:0;transition:max-height .45s ease,opacity .35s ease,margin .35s ease}.proj:hover .highlights,.proj.open .highlights{max-height:280px;opacity:1;margin-bottom:18px}.proj .highlights li{padding-left:14px;position:relative;line-height:1.55}.proj .highlights li:before{content:"";position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.proj .highlights li b{color:var(--accent-ink);font-weight:600}[data-theme=dark] .proj .highlights li b{color:var(--accent)}.proj .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px;padding-top:18px;border-top:1px dashed var(--border)}.tag{font-family:var(--mono);font-size:11.5px;padding:3px 9px;border-radius:6px;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}.tag.primary{color:var(--accent-ink);background:var(--accent-soft);border-color:color-mix(in oklch,var(--accent) 30%,transparent)}[data-theme=dark] .tag.primary{color:var(--accent)}.stack{display:flex;flex-direction:column;gap:20px}.stack-row{display:grid;grid-template-columns:140px 1fr;gap:24px;padding:20px 0;border-top:1px solid var(--border);align-items:start}.stack-row:last-child{border-bottom:1px solid var(--border)}@media (max-width: 680px){.stack-row{grid-template-columns:1fr;gap:10px}}.stack-row .label{font-family:var(--display);font-size:14px;font-weight:600;color:var(--text);letter-spacing:-.005em}.stack-row .label .num{font-family:var(--mono);font-weight:400;font-size:11px;color:var(--text-faint);margin-left:6px}.stack-row .chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:13px;padding:5px 11px;border-radius:999px;background:var(--surface);color:var(--text);border:1px solid var(--border);transition:border-color .2s ease,background-color .2s ease,color .2s ease}.chip:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}[data-theme=dark] .chip:hover{color:var(--accent)}.decisions{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 780px){.decisions{grid-template-columns:1fr}}.decision{padding:24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);position:relative;transition:border-color .25s ease,transform .25s ease}.decision:hover{border-color:var(--border-strong);transform:translateY(-2px)}.decision .num{font-family:var(--mono);font-size:11px;color:var(--text-faint);letter-spacing:.05em}.decision h4{font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:-.01em;margin:6px 0 10px;line-height:1.25}.decision h4 .accent{color:var(--accent-ink)}[data-theme=dark] .decision h4 .accent{color:var(--accent)}.decision p{font-size:14px;line-height:1.6;color:var(--text-dim);margin:0;text-wrap:pretty}.certs-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 680px){.certs-grid{grid-template-columns:1fr}}.cert{padding:20px 22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:18px}.cert .left .t{font-family:var(--display);font-size:15px;font-weight:600;margin:0 0 3px}.cert .left .s{font-size:13px;color:var(--text-dim);margin:0}.cert .right{font-family:var(--mono);font-size:13px;color:var(--text);white-space:nowrap}.cert .right b{color:var(--accent-ink)}[data-theme=dark] .cert .right b{color:var(--accent)}.global-card{margin-top:18px;padding:24px 28px;border-radius:var(--radius-lg);border:1px solid var(--border);background:radial-gradient(500px 200px at 90% 0%,color-mix(in oklch,var(--accent) 12%,transparent),transparent 60%),var(--surface);position:relative;overflow:hidden}.global-card .eyebrow{font-family:var(--mono);font-size:11px;color:var(--accent-ink);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px}[data-theme=dark] .global-card .eyebrow{color:var(--accent)}.global-card h3{font-family:var(--display);font-size:20px;font-weight:600;letter-spacing:-.015em;margin:0 0 10px}.global-card p{font-size:14.5px;line-height:1.6;color:var(--text-dim);margin:0;max-width:620px}.blog-empty{padding:56px 32px;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;background:var(--surface)}.blog-empty h4{font-family:var(--display);font-size:18px;font-weight:600;margin:0 0 8px}.blog-empty p{font-size:14px;color:var(--text-dim);margin:0 0 18px}.blog-empty .btn{margin:0 auto}.contact-card{padding:48px 40px;border-radius:var(--radius-lg);background:radial-gradient(700px 300px at 10% 10%,color-mix(in oklch,var(--accent) 10%,transparent),transparent 60%),var(--surface);border:1px solid var(--border);text-align:center}.contact-card h3{font-family:var(--display);font-size:clamp(24px,3.5vw,34px);font-weight:600;letter-spacing:-.025em;margin:0 0 12px;line-height:1.15}.contact-card p{font-size:16px;color:var(--text-dim);max-width:520px;margin:0 auto 28px;line-height:1.6}.contact-links{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}footer.foot{margin-top:80px;padding-top:28px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--text-faint);font-family:var(--mono);flex-wrap:wrap;gap:10px}.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:translateY(0)}.reveal.delay-1{transition-delay:.08s}.reveal.delay-2{transition-delay:.16s}.reveal.delay-3{transition-delay:.24s}.reveal.delay-4{transition-delay:.32s}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}.hero .caret{animation:none}}
