@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap");:root{--primary:#9fe870;--primary-active:#cdffad;--primary-neutral:#c5edab;--primary-pale:#e2f6d5;--on-primary:#0e0f0c;--canvas:#fff;--canvas-soft:#e8ebe6;--ink:#0e0f0c;--ink-deep:#163300;--body:#454745;--mute:#868685;--positive:#2ead4b;--positive-deep:#054d28;--accent-orange:#ffc091;--accent-cyan:#38c8ff;--hairline:rgba(14,15,12,.12);--hairline-soft:rgba(14,15,12,.08);--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-pill:9999px;--xs:4px;--sm:8px;--md:12px;--lg:16px;--xl:24px;--2xl:32px;--3xl:48px;--section:88px;--font:"Inter",-apple-system,BlinkMacSystemFont,system-ui,"Segoe UI",sans-serif;--font-display:"Manrope","Inter",system-ui,sans-serif;--maxw:1200px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}body{background:var(--canvas);color:var(--ink);font-family:var(--font);font-weight:400;font-size:16px;line-height:1.5;font-feature-settings:"calt";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--primary);color:var(--ink)}.band{padding:var(--section) 0}.band--sage{background:var(--canvas-soft)}.band--white{background:var(--canvas)}.band--ink{background:var(--ink);color:var(--primary)}.inner{max-width:var(--maxw);margin:0 auto;padding:0 24px}.inner--narrow{max-width:820px}.center{text-align:center}.eyebrow{display:inline-block;background:var(--primary-pale);color:var(--ink-deep);font-size:14px;font-weight:600;border-radius:var(--r-pill);padding:5px 14px;margin-bottom:20px}.band--ink .eyebrow{background:hsla(97,72%,67%,.16);color:var(--primary)}.t-mega{font-size:clamp(46px,8.5vw,104px);line-height:.92}.t-hero,.t-mega{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em}.t-hero{font-size:clamp(40px,6.5vw,76px);line-height:.95}.t-h2{font-family:var(--font-display);font-weight:800;font-size:clamp(30px,4.4vw,46px);line-height:1.02}.t-display-sm,.t-h2{letter-spacing:-.02em}.t-display-sm{font-family:var(--font);font-weight:600;font-size:clamp(22px,2.6vw,30px);line-height:1.2}.t-lead{font-size:20px;color:var(--body)}.t-body,.t-lead{font-weight:400;line-height:1.5}.t-body{font-size:16px}.t-body-strong{font-weight:600}.t-sm{font-size:14px;line-height:1.43}.muted{color:var(--mute)}.body-c{color:var(--body)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-size:16px;font-weight:600;line-height:1.5;padding:12px 24px;border:none;border-radius:var(--r-xl);cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease;white-space:nowrap}.btn,.btn:hover{text-decoration:none}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 22px hsla(97,72%,67%,.55)}.btn-secondary{color:var(--ink)}.band--white .btn-secondary,.btn-secondary{background:var(--canvas-soft)}.btn-secondary:hover{transform:translateY(-1px);background:#dde1da}.btn-tertiary{background:var(--canvas);color:var(--ink);border:1px solid var(--ink)}.btn-tertiary:hover{transform:translateY(-1px);background:var(--canvas-soft)}.band--ink .btn-tertiary,.contact-card .btn-tertiary{background:transparent;color:var(--primary);border-color:var(--primary)}.contact-card .btn-tertiary:hover{background:hsla(97,72%,67%,.12)}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:60;height:68px;background:hsla(0,0%,100%,.86);-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--hairline-soft)}.nav-inner{max-width:var(--maxw);margin:0 auto;height:100%;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.nav-logo{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.03em;color:var(--ink)}.nav-links{display:flex;gap:26px}.nav-links a{font-size:14px;font-weight:600;color:var(--ink)}.nav-links a:hover{color:var(--ink-deep);text-decoration:none}.nav-right{display:flex;align-items:center;gap:10px}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:48px;gap:48px;align-items:center}.hero-left .avail{margin-bottom:22px}.hero-left .role{margin-top:22px}.hero-left .tagline{margin-top:16px;max-width:42ch}.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.hero-meta{margin-top:24px;font-size:14px;color:var(--body)}.hero-meta a:hover{color:var(--ink-deep)}.snapshot{background:var(--canvas);border:1px solid var(--ink);border-radius:var(--r-xl);padding:24px}.snapshot .snap-head{font-size:14px;font-weight:600;color:var(--mute);margin-bottom:8px}.snap-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--hairline-soft)}.snap-row:last-of-type{border-bottom:none}.snap-row .left{display:flex;align-items:center;gap:10px;color:var(--body);font-size:15px}.snap-row .dot{width:22px;height:22px;border-radius:var(--r-pill);flex:none;display:grid;place-items:center;font-size:11px}.snap-row .val{font-weight:600;font-size:16px;text-align:right}.snapshot .btn{width:100%;margin-top:18px}.stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}.stat{background:var(--canvas-soft);border-radius:var(--r-xl);padding:28px 24px}.stat .val{font-family:var(--font-display);font-weight:800;font-size:clamp(36px,4.5vw,52px);line-height:1;letter-spacing:-.02em}.stat .lbl{margin-top:12px;font-size:14px;color:var(--body)}.about-body{max-width:760px}.about-body p{font-size:clamp(20px,2.2vw,26px);font-weight:400;line-height:1.4;letter-spacing:-.01em;color:var(--ink);margin-bottom:18px}.about-body p+p{color:var(--body)}.leveling{margin-top:36px;max-width:760px}.leveling h3{font-size:14px;font-weight:600;color:var(--mute);margin-bottom:14px}.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{font-size:14px;font-weight:600;color:var(--ink-deep);background:var(--primary-pale);border-radius:var(--r-pill);padding:8px 16px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-top:8px}.skill-card{background:var(--canvas-soft);border-radius:var(--r-xl);padding:24px}.skill-card .label{font-family:var(--font-display);font-weight:800;font-size:20px;letter-spacing:-.01em;margin-bottom:14px}.skill-card .items{display:flex;flex-wrap:wrap;gap:8px}.skill-card .items span{font-size:14px;font-weight:500;color:var(--ink);background:var(--canvas);border-radius:var(--r-sm);padding:6px 11px}.exp{max-width:900px}.exp-item{display:grid;grid-template-columns:220px 1fr;grid-gap:40px;gap:40px;padding:32px 0;border-top:1px solid var(--hairline)}.exp-item:first-child{border-top:none;padding-top:0}.exp-meta .period{font-size:14px;color:var(--body)}.exp-meta .company{font-family:var(--font-display);font-weight:800;font-size:18px;margin-top:6px}.exp-meta .loc{font-size:13px;color:var(--mute);margin-top:4px}.exp-body h3{font-size:22px;font-weight:600;letter-spacing:-.01em;margin-bottom:14px}.exp-body ul{list-style:none}.exp-body li{position:relative;padding-left:22px;margin-bottom:10px;color:var(--body)}.exp-body li:before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:var(--r-pill);background:var(--primary)}.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px;margin-top:8px}.card{background:var(--canvas-soft);border-radius:var(--r-xl);padding:28px;flex-direction:column;min-height:220px}.card,.card .ptop{display:flex;gap:14px}.card .ptop{align-items:baseline;justify-content:space-between}.card h3{font-family:var(--font-display);font-weight:800;font-size:26px;letter-spacing:-.01em}.card .ptag{font-size:12px;font-weight:600;color:var(--ink-deep);background:var(--primary-pale);border-radius:var(--r-pill);padding:4px 10px;white-space:nowrap}.card .blurb{color:var(--body);flex:1 1}.card .stack{font-size:13px;color:var(--mute)}.card .plinks{display:flex;gap:18px;font-size:15px;font-weight:600}.card .plinks a{color:var(--ink-deep)}.card .plinks a:hover{text-decoration:underline}.card--dark{background:var(--ink)}.card--dark,.card--dark .ptag,.card--dark h3{color:var(--primary)}.card--dark .ptag{background:hsla(97,72%,67%,.16)}.card--dark .blurb{color:hsla(0,0%,100%,.86)}.card--dark .stack{color:hsla(0,0%,100%,.6)}.card--dark .plinks a{color:var(--primary)}.lc-wrap{max-width:900px;margin:0 auto;display:grid;grid-template-columns:280px 1fr;grid-gap:56px;gap:56px;align-items:center}.lc-total .big{font-family:var(--font-display);font-weight:800;font-size:clamp(72px,10vw,104px);line-height:1;letter-spacing:-.02em;color:var(--primary)}.lc-total .lbl{margin-top:10px;font-size:14px;color:hsla(0,0%,100%,.72)}.lc-bars{display:flex;flex-direction:column;gap:22px}.lc-bar .row{display:flex;justify-content:space-between;font-size:14px;margin-bottom:9px;color:#fff}.lc-bar .row .n{color:hsla(0,0%,100%,.66)}.lc-track{height:8px;background:hsla(0,0%,100%,.12);overflow:hidden}.lc-fill,.lc-track{border-radius:var(--r-pill)}.lc-fill{height:100%}.lc-extra{max-width:900px;margin:48px auto 0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.lc-extra .box{background:hsla(0,0%,100%,.06);border-radius:var(--r-xl);padding:26px;text-align:center}.lc-extra .v{font-family:var(--font-display);font-weight:800;font-size:30px;color:var(--primary)}.lc-extra .l{margin-top:6px;font-size:13px;color:hsla(0,0%,100%,.7)}.lc-focus{max-width:900px;margin:28px auto 0;font-size:15px;color:hsla(0,0%,100%,.72);text-align:center}.lc-focus .dot{color:var(--primary);padding:0 8px}.contact-card{max-width:920px;margin:0 auto;background:var(--ink);border-radius:var(--r-xl);padding:64px 40px;text-align:center}.contact-card,.contact-card h2{color:var(--primary)}.contact-card .sub{margin:16px auto 0;max-width:44ch;color:hsla(0,0%,100%,.84)}.contact-cta{gap:12px;margin-top:32px}.contact-cta,.contact-social{display:flex;justify-content:center;flex-wrap:wrap}.contact-social{gap:22px;margin-top:26px;font-size:15px;font-weight:600}.contact-social a{color:var(--primary)}.contact-social a:hover{text-decoration:underline}.footer{background:var(--ink);color:var(--canvas-soft);padding:56px 0 44px}.footer-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr;grid-gap:40px;gap:40px}.footer-cols .brand{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.03em;color:#fff}.footer-cols h4{font-size:13px;font-weight:600;color:#fff;margin-bottom:14px}.footer-cols ul{list-style:none}.footer-cols li{margin-bottom:11px}.footer-cols li,.footer-cols li a{font-size:14px;color:hsla(96,11%,91%,.72)}.footer-cols li a:hover{color:var(--primary);text-decoration:none}.footer-legal{margin-top:44px;padding-top:22px;border-top:1px solid hsla(0,0%,100%,.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;color:hsla(96,11%,91%,.56)}.btn{will-change:transform}.card,.chip,.lc-extra .box,.skill-card,.stat{transition:transform .26s cubic-bezier(.16,1,.3,1),box-shadow .26s ease,background .26s ease}.skill-card:hover,.stat:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(14,15,12,.1)}.card:not(.card--dark):hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(14,15,12,.12)}.card--dark:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(14,15,12,.4)}.lc-extra .box:hover{transform:translateY(-4px);background:hsla(0,0%,100%,.1)}.chip:hover{transform:translateY(-2px);background:var(--primary-neutral)}.nav-logo{transition:opacity .2s ease}.nav-logo:hover{opacity:.7}.stat .val{transition:transform .3s cubic-bezier(.16,1,.3,1)}.stat:hover .val{transform:translateY(-2px)}@keyframes heroIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.hero-left>*{animation:heroIn .8s cubic-bezier(.16,1,.3,1) both}.hero-left>:first-child{animation-delay:0s}.hero-left>:nth-child(2){animation-delay:.08s}.hero-left>:nth-child(3){animation-delay:.16s}.hero-left>:nth-child(4){animation-delay:.24s}.hero-left>:nth-child(5){animation-delay:.32s}.snapshot{animation:heroIn .9s cubic-bezier(.16,1,.3,1) .2s both}.reveal-ready .reveal{opacity:0}.reveal-ready .reveal.in-view{opacity:1;animation:revealIn .7s cubic-bezier(.16,1,.3,1) backwards}@keyframes revealIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-left>*,.reveal-ready .reveal,.snapshot{animation:none!important}.reveal-ready .reveal{opacity:1!important;transform:none!important}}@media (max-width:1023px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:860px){:root{--section:56px}.nav-links{display:none}.hero-grid{grid-template-columns:1fr;gap:32px}.stats{grid-template-columns:repeat(2,1fr)}.exp-item,.proj-grid,.skills-grid{grid-template-columns:1fr}.exp-item{gap:14px}.lc-wrap{gap:28px;text-align:center}.lc-extra,.lc-wrap{grid-template-columns:1fr}.footer-cols{grid-template-columns:1fr 1fr}}@media (max-width:480px){.footer-cols,.stats{grid-template-columns:1fr}.contact-card{padding:44px 22px}}@media print{.contact-cta,.hero-cta,.nav,.no-print{display:none!important}body{color:#000!important;font-size:11px}.band,body{background:#fff!important}.band{padding:14px 0}.band--ink,.card--dark,.contact-card{background:#fff!important;color:#000!important;border:1px solid #ccc}.band--ink *,.card--dark *,.contact-card *,.lc-extra .v,.lc-total .big{color:#000!important}.card,.skill-card,.stat{border:1px solid #ddd}}