:root{--font-display:"Fraunces", Georgia, serif;--font-body:"Sora", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:clamp(.9375rem, .9rem + .2vw, 1.0625rem);--text-lg:clamp(1.125rem, 1rem + .5vw, 1.375rem);--text-xl:clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);--text-hero:clamp(2.75rem, 1.8rem + 5vw, 6rem);--container:68rem;--gutter:clamp(1.25rem, 4vw, 3rem);--section-gap:clamp(5rem, 12vw, 9rem);--radius:14px;--ease-out:cubic-bezier(.22, 1, .36, 1)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fbf9f4;--paper-raised:#fff;--ink:#191712;--ink-2:#5f5b50;--line:#19171221;--line-soft:#19171212;--accent:#2438e0;--accent-ink:#fff;--accent-soft:#2438e014;--grain-opacity:.35}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#131210;--paper-raised:#1c1a17;--ink:#f0ede4;--ink-2:#9b968a;--line:#f0ede429;--line-soft:#f0ede414;--accent:#8d9bff;--accent-ink:#10122b;--accent-soft:#8d9bff1a;--grain-opacity:.25}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{min-width:320px;min-height:100vh;font-family:var(--font-body);font-size:var(--text-base);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.65;transition:background .35s,color .35s}body:after{content:"";pointer-events:none;z-index:1000;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.06'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:calc(var(--section-gap) / 2)}.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:.75rem;margin-bottom:clamp(1.5rem,4vw,2.5rem);font-weight:500;display:flex}.eyebrow .num{color:var(--accent)}.eyebrow:after{content:"";background:var(--line);flex:1;height:1px}.section-heading{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.01em;max-width:34ch;margin-bottom:clamp(1.5rem,4vw,2.5rem);font-weight:500;line-height:1.15}.section-heading em{color:var(--accent);font-style:italic}.btn{font-size:var(--text-sm);letter-spacing:.01em;transition:transform .25s var(--ease-out), background .25s, color .25s, border-color .25s;border:1px solid #0000;border-radius:999px;align-items:center;gap:.5rem;padding:.8rem 1.5rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--accent);color:var(--accent-ink)}.btn-outline{border-color:var(--line);color:var(--ink)}.btn-outline:hover{border-color:var(--ink)}.chip{border:1px solid var(--line);font-size:var(--text-sm);color:var(--ink);background:0 0;border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .9rem;transition:border-color .25s,background .25s;display:inline-flex}.chip:hover{border-color:var(--accent);background:var(--accent-soft)}.chip.featured:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}.navbar{z-index:100;border-bottom:1px solid #0000;transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;position:fixed;top:0;left:0;right:0}.navbar.scrolled{background:color-mix(in srgb, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line-soft)}.navbar-inner{justify-content:space-between;align-items:center;gap:1rem;height:4rem;display:flex}.wordmark{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:-.02em;font-weight:500}.wordmark-accent{color:var(--accent)}.nav-desktop{gap:.25rem;display:none}.nav-link{font-size:var(--text-sm);color:var(--ink-2);padding:.5rem .85rem;transition:color .25s;position:relative}.nav-link:hover,.nav-link.active{color:var(--ink)}.nav-underline{background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:.2rem;left:.85rem;right:.85rem}.nav-actions{align-items:center;gap:.25rem;display:flex}.icon-btn{width:2.4rem;height:2.4rem;color:var(--ink);transition:background .25s, transform .25s var(--ease-out);border-radius:50%;place-items:center;font-size:1.15rem;display:grid}.icon-btn:hover{background:var(--accent-soft);transform:rotate(12deg)}.nav-mobile{min-height:calc(100dvh - 4rem);padding:1.5rem var(--gutter) 3rem;background:var(--paper);border-top:1px solid var(--line-soft);flex-direction:column;display:flex;position:fixed;inset:4rem 0 auto}.nav-mobile-link{border-bottom:1px solid var(--line-soft);font-family:var(--font-display);text-align:left;color:var(--ink);align-items:baseline;gap:1rem;padding:1.1rem 0;font-size:clamp(1.5rem,6vw,2rem);display:flex}.nav-mobile-link.active{color:var(--accent);font-style:italic}.nav-mobile-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-2)}@media (width>=900px){.nav-desktop{display:flex}.menu-btn,.nav-mobile{display:none}}.hero{align-items:center;min-height:100svh;padding-block:7rem 4rem;display:flex;position:relative;overflow:clip}.hero:before{content:"";background:radial-gradient(circle, var(--accent-soft), transparent 65%);pointer-events:none;border-radius:50%;width:70vmin;height:70vmin;position:absolute;top:-20%;right:-25%}.hero-inner{position:relative}.hero-eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:clamp(1.5rem,4vw,2.5rem);display:flex}.dot-sep{background:var(--line);border-radius:50%;width:4px;height:4px}.available{color:var(--ink);align-items:center;gap:.45rem;display:inline-flex}.available:before{content:"";background:#2fa860;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #2fa8602e}.hero-name{font-family:var(--font-display);font-size:var(--text-hero);letter-spacing:-.025em;margin-bottom:clamp(1.25rem,3.5vw,2rem);font-weight:500;line-height:.98}.hero-name-row{color:var(--accent);align-items:center;gap:clamp(.75rem,2.5vw,1.5rem);font-style:italic;display:flex}.hero-photo{object-fit:cover;border:1px solid var(--line);filter:saturate(.9);border-radius:999px;width:clamp(3.25rem,9vw,5.5rem);height:clamp(3.25rem,9vw,5.5rem)}.hero-role{font-size:var(--text-lg);max-width:30ch;margin-bottom:1.25rem;font-weight:500;line-height:1.4}.hero-role em{font-family:var(--font-display);color:var(--accent);font-size:1.08em;font-style:italic}.hero-description{max-width:58ch;color:var(--ink-2);margin-bottom:clamp(1.75rem,4vw,2.5rem)}.hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:clamp(2.5rem,6vw,4rem);display:flex}.hero-social{gap:.25rem;margin-left:.25rem;display:flex}.hero-social .icon-btn{border:1px solid var(--line);width:2.6rem;height:2.6rem;transition:border-color .25s, color .25s, transform .25s var(--ease-out);border-radius:50%;place-items:center;font-size:1.1rem;display:grid}.hero-social .icon-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.hero-stats{border-top:1px solid var(--line-soft);grid-template-columns:repeat(3,1fr);gap:1rem;max-width:34rem;padding-top:1.5rem;display:grid}.stat dd{font-family:var(--font-display);order:-1;margin-bottom:.4rem;font-size:clamp(1.75rem,4.5vw,2.5rem);font-weight:500;line-height:1}.stat dt{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;color:var(--ink-2)}.stat{flex-direction:column;display:flex}.scroll-hint{border:1px solid var(--line);width:2.6rem;height:2.6rem;color:var(--ink-2);border-radius:50%;place-items:center;animation:2.4s ease-in-out infinite hint-bob;display:grid;position:absolute;bottom:1.5rem;left:50%;translate:-50%}.scroll-hint:hover{color:var(--accent);border-color:var(--accent)}@keyframes hint-bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media (width<=480px){.scroll-hint{display:none}}.about-grid{gap:clamp(2.5rem,6vw,4rem);display:grid}.about-bio p{max-width:60ch;color:var(--ink-2);margin-bottom:1.1rem}.about-bio strong{color:var(--ink);font-weight:600}.accent-em{font-family:var(--font-display);color:var(--accent);font-style:italic}.about-facts{border-top:1px solid var(--line-soft);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.25rem 2rem;margin-top:2rem;padding-top:1.75rem;display:grid}.fact dt{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.3rem}.fact dd{font-size:var(--text-sm);font-weight:500}.ai-title{font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:1.25rem;font-weight:500}.ai-card{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--paper-raised);transition:border-color .3s, transform .3s var(--ease-out);gap:1rem;margin-bottom:.75rem;padding:1.25rem;display:flex}.ai-card:hover{border-color:var(--accent);transform:translateY(-2px)}.ai-icon{color:var(--accent);flex-shrink:0;margin-top:.15rem;font-size:1.5rem}.ai-card h4{font-size:var(--text-base);flex-wrap:wrap;align-items:baseline;gap:.6rem;margin-bottom:.25rem;font-weight:600;display:flex}.ai-role{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;color:var(--accent);font-weight:400}.ai-card p{font-size:var(--text-sm);color:var(--ink-2)}.ai-note{font-family:var(--font-display);font-style:italic;font-size:var(--text-base);color:var(--ink-2);border-left:2px solid var(--accent);margin-top:.75rem;padding-left:1rem}@media (width>=900px){.about-grid{grid-template-columns:1.25fr 1fr;align-items:start}}.projects-list{border-top:1px solid var(--line)}.project-row{border-bottom:1px solid var(--line);gap:.75rem;padding-block:clamp(1.5rem,4vw,2.25rem);transition:background .3s;display:grid}.project-row:hover{background:linear-gradient(90deg, var(--accent-soft), transparent 70%)}.project-meta{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.9rem;display:flex}.project-year{color:var(--accent)}.project-category{color:var(--ink-2)}.project-title{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.01em;margin-bottom:.5rem;font-weight:500;transition:color .25s}.project-row:hover .project-title{color:var(--accent);font-style:italic}.project-description{max-width:62ch;font-size:var(--text-sm);color:var(--ink-2);margin-bottom:.9rem}.project-tags{flex-wrap:wrap;gap:.4rem;list-style:none;display:flex}.project-tags li{border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-2);border-radius:999px;padding:.25rem .7rem}.projects-note{font-size:var(--text-sm);color:var(--ink-2);margin-top:1.5rem;font-style:italic}@media (width>=760px){.project-row{grid-template-columns:11rem 1fr;gap:2rem}.project-meta{flex-direction:column;align-items:flex-start;gap:.35rem;padding-top:.3rem}}.skills-grid{gap:clamp(2rem,5vw,3rem);display:grid}.skill-group{border-top:1px solid var(--line);padding-top:1.5rem}.skill-group-title{font-family:var(--font-display);font-size:var(--text-lg);align-items:baseline;gap:.75rem;margin-bottom:.4rem;font-weight:500;display:flex}.skill-group-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent)}.skill-group-note{font-size:var(--text-sm);color:var(--ink-2);margin-bottom:1.1rem}.skill-chips{flex-wrap:wrap;gap:.5rem;list-style:none;display:flex}.skills-legend{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;color:var(--ink-2);align-items:center;gap:.5rem;margin-top:2rem;display:flex}.legend-dot{background:var(--accent);border-radius:50%;width:6px;height:6px}@media (width>=760px){.skills-grid{grid-template-columns:repeat(2,1fr)}}.timeline{border-top:1px solid var(--line);margin-bottom:clamp(3rem,7vw,4.5rem)}.timeline-item{border-bottom:1px solid var(--line);gap:.6rem;padding-block:clamp(1.5rem,4vw,2.25rem);display:grid}.timeline-period{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:.75rem;display:flex}.current-badge{background:var(--accent);color:var(--accent-ink);letter-spacing:.1em;border-radius:999px;padding:.2rem .65rem;font-size:.65rem}.timeline-role{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.01em;font-weight:500}.timeline-item.current .timeline-role{color:var(--accent)}.timeline-company{font-size:var(--text-sm);margin-bottom:.75rem;font-weight:500}.timeline-highlights{gap:.45rem;max-width:62ch;list-style:none;display:grid}.timeline-highlights li{font-size:var(--text-sm);color:var(--ink-2);padding-left:1.25rem;position:relative}.timeline-highlights li:before{content:"";background:var(--accent);opacity:.7;border-radius:50%;width:6px;height:6px;position:absolute;top:.55em;left:0}.edu-grid{gap:clamp(2rem,5vw,3rem);display:grid}.edu-title{font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:1.1rem;font-weight:500}.edu-list{gap:1rem;list-style:none;display:grid}.edu-list li{border-left:2px solid var(--line);flex-direction:column;gap:.15rem;padding-left:1rem;transition:border-color .3s;display:flex}.edu-list li:hover{border-color:var(--accent)}.edu-degree{font-size:var(--text-sm);font-weight:600}.edu-meta{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--ink-2)}.cert-list{flex-wrap:wrap;gap:.5rem;list-style:none;display:flex}@media (width>=760px){.timeline-item{grid-template-columns:11rem 1fr;gap:2rem}.timeline-period{flex-direction:column;align-items:flex-start;gap:.5rem;padding-top:.35rem}.edu-grid{grid-template-columns:1fr 1fr}}.contact-heading{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:1.25rem;font-size:clamp(2rem,1.4rem + 3.5vw,3.75rem);font-weight:500;line-height:1.12}.contact-heading em{color:var(--accent);font-style:italic}.contact-sub{max-width:52ch;color:var(--ink-2);margin-bottom:clamp(2rem,5vw,3rem)}.contact-email-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:clamp(2rem,5vw,3rem);display:flex}.contact-email{font-family:var(--font-mono);border-bottom:2px solid var(--line);overflow-wrap:anywhere;align-items:center;gap:.6rem;padding-bottom:.2rem;font-size:clamp(1rem,.8rem + 1vw,1.35rem);font-weight:500;transition:border-color .25s,color .25s;display:inline-flex}.contact-email svg{color:var(--accent);flex-shrink:0}.contact-email:hover{color:var(--accent);border-color:var(--accent)}.copy-btn{padding:.55rem 1.1rem}.contact-channels{gap:.75rem;display:grid}.channel-card{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--paper-raised);transition:border-color .3s, transform .3s var(--ease-out);grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:grid}.channel-card:hover{border-color:var(--accent);transform:translateY(-2px)}.channel-icon{color:var(--accent);font-size:1.35rem}.channel-label{font-weight:600;font-size:var(--text-sm)}.channel-value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-2);text-align:right}@media (width>=760px){.contact-channels{grid-template-columns:repeat(3,1fr)}.channel-card{grid-template-rows:auto auto;grid-template-columns:auto 1fr}.channel-icon{grid-row:span 2}.channel-value{text-align:left;grid-column:2}}.app{position:relative;overflow-x:clip}main{flex-direction:column;display:flex}.footer{border-top:1px solid var(--line-soft);margin-top:calc(var(--section-gap) / 2)}.footer-content{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;color:var(--ink-2);text-align:center;flex-direction:column;justify-content:space-between;align-items:center;gap:.5rem;padding-block:2rem;display:flex}.footer-stack a{color:var(--ink);border-bottom:1px solid var(--line)}.footer-stack a:hover{color:var(--accent);border-color:var(--accent)}@media (width>=640px){.footer-content{text-align:left;flex-direction:row}}
