:root{color-scheme:light;font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg: #f7f8f3;--surface: #ffffff;--surface-muted: #eef2eb;--text: #111713;--text-soft: #3f4a43;--text-muted: #6d766f;--line: #dce3dc;--line-strong: #b9c7bc;--accent: #0b6b4f;--accent-strong: #074834;--accent-soft: #d9eee6;--warm: #a66f2e;--nav-bg: rgba(247, 248, 243, .84);--shadow: none}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1310;--surface: #151c18;--surface-muted: #101612;--text: #eef4ef;--text-soft: #c5d0c8;--text-muted: #8f9b93;--line: #26332b;--line-strong: #3d5044;--accent: #62d9ae;--accent-strong: #a8f0d3;--accent-soft: #183b2e;--warm: #d7a55d;--nav-bg: rgba(14, 19, 16, .84);--shadow: none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;color:var(--text);background:linear-gradient(90deg,rgba(11,107,79,.08) 1px,transparent 1px),linear-gradient(180deg,rgba(11,107,79,.05),transparent 240px),var(--bg);background-size:72px 72px,100% 100%,auto;-webkit-tap-highlight-color:rgba(11,107,79,.16);touch-action:manipulation}a{color:inherit;text-decoration:none}a:hover{color:var(--accent-strong)}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button,p,h1,h2,h3,ul{margin:0}ul{padding-left:1.05rem}dl,dd{margin:0}h1,h2,h3{overflow-wrap:break-word;text-wrap:balance}p,li,span,strong,small,a,dt,dd{overflow-wrap:break-word}#root{width:100%}.app-shell{width:min(1120px,calc(100% - 40px - env(safe-area-inset-left) - env(safe-area-inset-right)));margin:0 auto;padding:calc(28px + env(safe-area-inset-top)) 0 calc(40px + env(safe-area-inset-bottom))}.skip-link{position:fixed;top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));z-index:20;padding:10px 12px;border-radius:8px;background:var(--accent-strong);color:#fff;font-weight:750;transform:translateY(calc(-100% - 24px));transition:transform .18s cubic-bezier(.16,1,.3,1)}.skip-link:focus-visible{color:#fff;transform:translateY(0)}.topbar{position:sticky;top:env(safe-area-inset-top);z-index:10;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 -12px 16px;padding:12px;border-radius:12px;background:var(--nav-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand-lockup,.nav-links,.hero-actions,.footer-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.pill-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.brand-lockup,.nav-links,.hero-copy,.project-card,.skill-card,.education-card,.footer-copy,.footer-actions,.timeline-card>div{min-width:0}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--accent-strong);font-weight:800}.brand{font-weight:700}.nav-links{color:var(--text-muted);font-size:.94rem}.nav-links a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:8px 10px;border-radius:8px;transition:background .18s cubic-bezier(.16,1,.3,1),color .18s cubic-bezier(.16,1,.3,1)}.nav-links a[aria-current=location]{color:var(--accent-strong);background:transparent}.nav-links a[aria-current=location]:after{position:absolute;right:10px;bottom:3px;left:10px;height:2px;border-radius:999px;background:var(--accent);content:""}.nav-links a:hover{color:var(--text);background:var(--surface-muted)}.theme-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-soft);cursor:pointer;transition:border-color .18s cubic-bezier(.16,1,.3,1),background .18s cubic-bezier(.16,1,.3,1),color .18s cubic-bezier(.16,1,.3,1)}.theme-toggle:hover{border-color:var(--line-strong);background:var(--surface-muted);color:var(--text)}.theme-toggle-track{position:relative;width:36px;height:20px;border-radius:999px;background:var(--surface-muted)}.theme-toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--accent);transition:transform .18s cubic-bezier(.16,1,.3,1)}:root[data-theme=dark] .theme-toggle-thumb{transform:translate(16px)}.theme-toggle-label{font-size:.86rem;font-weight:600}.hero{scroll-margin-top:84px;padding:34px 0;border-bottom:1px solid var(--line)}.reveal-enabled .hero,.reveal-enabled .section,.reveal-enabled .footer{opacity:0;transform:translateY(26px);transition:opacity .52s cubic-bezier(.16,1,.3,1),transform .52s cubic-bezier(.16,1,.3,1)}.reveal-enabled .hero.is-visible,.reveal-enabled .section.is-visible,.reveal-enabled .footer.is-visible{opacity:1;transform:translateY(0)}.hero-grid{display:grid;grid-template-columns:minmax(240px,.46fr) minmax(0,1fr);gap:clamp(28px,6vw,78px);align-items:center}.hero-copy{max-width:660px}.hero-portrait{margin:0;width:100%;max-width:380px}.hero-portrait img{display:block;width:100%;aspect-ratio:4 / 5;object-fit:cover;object-position:50% 30%;border-radius:12px;filter:saturate(.92) contrast(1.02)}.eyebrow,.section-label,.meta,.org{color:var(--accent);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:0}.hero h1,.section h2,.footer h2{font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-weight:800;line-height:1;letter-spacing:0}.hero h1{max-width:720px;margin-top:12px;font-size:clamp(2.6rem,5.8vw,4.35rem)}.hero-role{margin-top:12px;color:var(--accent);font-size:clamp(1.05rem,1.8vw,1.28rem);font-weight:750}.hero-tagline{max-width:520px;margin-top:14px;color:var(--text-soft);font-size:clamp(.98rem,1.45vw,1.08rem);line-height:1.5}.hero-actions{margin-top:24px}.proof-panel{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.proof-panel span{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#ffffff9e;color:var(--text-soft);font-size:.9rem;font-weight:650}:root[data-theme=dark] .proof-panel span{background:#151c18b8}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 16px;border-radius:8px;font-weight:750;transition:transform .18s cubic-bezier(.16,1,.3,1),background .18s cubic-bezier(.16,1,.3,1),border-color .18s cubic-bezier(.16,1,.3,1),color .18s cubic-bezier(.16,1,.3,1)}.button:hover{transform:translateY(-1px)}.button-primary:hover{color:#fff;background:var(--accent)}:root[data-theme=dark] .button-primary:hover{color:#07110c}.button-secondary:hover,.button-tertiary:hover{border-color:var(--accent);background:var(--surface-muted);color:var(--text)}.button-primary{color:#fff;background:var(--accent-strong)}:root[data-theme=dark] .button-primary{color:#07110c;background:var(--accent-strong)}.button-secondary,.button-tertiary{border:1px solid var(--line-strong);background:var(--surface)}.button-tertiary{color:var(--text-soft)}.button-icon{width:17px;height:17px;flex:0 0 auto}.section,.footer{scroll-margin-top:84px;padding:42px 0;border-bottom:1px solid var(--line)}.section-header{max-width:720px;margin-bottom:24px}.section h2,.footer h2{margin-top:8px;font-size:clamp(1.7rem,3vw,2.65rem);line-height:1.06}.impact-topline,.two-column,.skill-layout,.footer{display:grid;grid-template-columns:minmax(0,.58fr) minmax(0,1fr);gap:28px}.about-copy{display:grid;gap:12px;color:var(--text-soft);font-size:1.02rem;line-height:1.6}.muted-text,.timeline-card li,.project-card p,.education-card p,.plain-list{color:var(--text-soft)}.cards-grid,.extras-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cards-grid{grid-template-columns:1fr}.cards-grid.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card,.skill-card,.education-card,.panel-card,.timeline-card{border:1px solid var(--line);border-radius:8px;background:#ffffff94;box-shadow:var(--shadow)}:root[data-theme=dark] .project-card,:root[data-theme=dark] .skill-card,:root[data-theme=dark] .education-card,:root[data-theme=dark] .panel-card,:root[data-theme=dark] .timeline-card{background:#151c18c7}.project-card,.skill-card,.panel-card{padding:18px}.impact-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}.impact-card{display:grid;align-content:space-between;min-height:154px;padding:16px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#0b6b4f0d,#0b6b4f1c),#ffffffa8;color:var(--text)}:root[data-theme=dark] .impact-card{background:linear-gradient(180deg,#62d9ae0d,#62d9ae1a),#151c18b8}.impact-card-label{color:var(--accent);font-size:.82rem;font-weight:800;text-transform:uppercase}.impact-card h3{max-width:16ch;margin-top:22px;font-size:1rem}.impact-card p{margin-top:12px;color:var(--text-soft);font-size:.9rem;line-height:1.45}.timeline{display:grid;gap:14px}.timeline-card{display:grid;grid-template-columns:minmax(190px,.34fr) minmax(0,1fr);gap:22px;padding:20px 0;border-width:1px 0 0;border-radius:0;background:transparent}.timeline-meta{display:grid;align-content:start;gap:5px}.timeline-meta p{color:var(--accent);font-weight:750}.timeline-meta span{color:var(--text-muted)}.meta,.timeline-meta p,.timeline-meta span,.earlier-role small{font-variant-numeric:tabular-nums}.timeline-card h3,.project-card h3,.skill-card h3,.education-card h3{margin-bottom:10px;color:var(--text);font-size:1.08rem}.timeline-card h3 span,.org{color:var(--warm)}.timeline-card ul,.plain-list{display:grid;gap:8px}.earlier-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.earlier-role{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.earlier-role span{color:var(--accent);font-size:.82rem;font-weight:750}.earlier-role strong{font-size:.95rem}.earlier-role small{color:var(--text-muted)}.project-card,.skill-card,.education-card{display:grid;gap:8px}.project-card{padding:18px 0;border-width:1px 0 0;border-radius:0;background:transparent}.pill,.location-chip{display:inline-flex;align-items:center;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted);color:var(--text-soft);font-size:.92rem;font-weight:650}.stack{display:grid}.gap-sm{gap:10px}.gap-md{gap:14px}.education-card{grid-template-columns:minmax(0,1fr) auto;align-items:start;padding:18px}.list-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0;padding-bottom:0}.footer{align-items:center;border-bottom:0}.footer .button{min-height:40px;padding-inline:13px;font-size:.94rem;font-weight:700}.footer .button-primary{color:var(--text);border:1px solid var(--line-strong);background:var(--surface)}:root[data-theme=dark] .footer .button-primary{color:var(--text);background:var(--surface)}.footer-copy{display:grid;gap:10px}.contact-card,.contact-card-body,.contact-card-item,.contact-card-label,.contact-icon,.contact-link,.extras-section,.extras-header{display:none}@media(max-width:980px){.app-shell{width:min(100% - 28px - env(safe-area-inset-left) - env(safe-area-inset-right),1120px)}.hero-grid,.impact-topline,.two-column,.skill-layout,.footer,.timeline-card,.education-card{grid-template-columns:1fr}.cards-grid.compact-grid,.impact-board,.earlier-roles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.app-shell{width:min(100% - 20px - env(safe-area-inset-left) - env(safe-area-inset-right),1120px);padding-top:calc(18px + env(safe-area-inset-top))}.topbar{align-items:flex-start;flex-direction:column}.hero{padding-top:28px}.hero h1{font-size:clamp(2.45rem,12vw,3.7rem)}.hero-portrait{max-width:330px}.cards-grid.compact-grid,.impact-board,.earlier-roles{grid-template-columns:1fr}.section,.footer{padding:34px 0}.button{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.nav-links a,.theme-toggle,.theme-toggle-thumb,.button,.skip-link,.reveal-enabled .hero,.reveal-enabled .section,.reveal-enabled .footer{transition:none}.button:hover,.reveal-enabled .hero,.reveal-enabled .section,.reveal-enabled .footer{transform:none}.reveal-enabled .hero,.reveal-enabled .section,.reveal-enabled .footer{opacity:1}}
