@layer tokens{:root{color-scheme:dark;--cyan:#67e8f9;--lime:#c4f269;--orange:#f6b56c;--ink:#07111f;--ink-deep:#040a13;--surface:#0d1d30;--surface-raised:#112943;--surface-soft:#112943a3;--line:#bad5e72b;--line-strong:#67e8f98c;--text:#f4f8fb;--muted:#a8bbcc;--surface-overlay:#040a13d6;--surface-sunken:#040a1340;--surface-tint-cyan:#67e8f914;--surface-tint-cyan-strong:#67e8f929;--surface-tint-lime:#c4f2690f;--surface-tint-orange:#f6b56c0f;--border-cyan-soft:#67e8f966;--border-lime-soft:#c4f26959;--border-orange-soft:#f6b56c4d;--accent-contrast:var(--ink);--fs-3xs:.62rem;--fs-2xs:.68rem;--fs-xs:.74rem;--fs-sm:.82rem;--fs-base:1rem;--fs-md:clamp(1rem, 1.45vw, 1.2rem);--fs-lg:clamp(1.2rem, 2.4vw, 1.55rem);--fs-xl:clamp(1.8rem, 4vw, 2.8rem);--fs-2xl:clamp(2rem, 4.5vw, 4.1rem);--fs-3xl:clamp(2.8rem, 4.8vw, 5.2rem);--fs-display:clamp(3rem, 8vw, 7.25rem);--fs-h3-sm:1.1rem;--fs-h3:1.35rem;--fs-h3-lg:1.55rem;--measure:44rem;--measure-wide:68ch;--header-height:5.5rem;--anchor-offset:calc(var(--header-height) + var(--space-md));--space-3xs:.25rem;--space-2xs:.4rem;--space-xs:.55rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.25rem;--space-2xl:3.5rem;--space-3xl:clamp(4rem, 8vw, 6.5rem);--radius-xs:.4rem;--radius-sm:.55rem;--radius-md:.75rem;--radius-lg:1.25rem;--radius-pill:999px;--elevation-1:0 16px 60px #0000001f;--elevation-2:0 24px 80px #00000038;--elevation-3:0 28px 100px #00000047;--dur-fast:.12s;--dur-base:.18s;--dur-slow:.3s;--ease-standard:ease;--ease-emphasized:cubic-bezier(.2, .8, .2, 1);--focus-ring-color:var(--lime);--focus-ring-width:3px;--focus-ring-offset:3px;--glow-cyan:#67e8f91f;--glow-lime:#c4f2690f;--grid-line:#bad5e70d;--ring-lime:#c4f2691f;--ring-lime-strong:#c4f2698c;--tooltip-shadow:0 10px 25px #00000040;--surface-scrim:#040a139e;--plate-neutral:#ffffffeb;--artwork-grid:#a8bbcc2e;--artwork-wash-a:#67e8f924;--artwork-wash-b:#c4f2690f;--max:1180px}:root[data-theme=light]{color-scheme:light;--ink:#eef3f8;--ink-deep:#e2eaf2;--surface:#fff;--surface-raised:#fff;--surface-soft:#ffffffd1;--line:#0d1d3029;--line-strong:#0d6e8280;--text:#0b1b2d;--muted:#3a4a5c;--cyan:#0e7490;--lime:#3f6a0c;--orange:#b45309;--accent-contrast:#fff;--surface-overlay:#ffffffe6;--surface-sunken:#0d1d300d;--surface-tint-cyan:#0e749014;--surface-tint-cyan-strong:#0e749024;--surface-tint-lime:#4d7c0f14;--surface-tint-orange:#b4530914;--border-cyan-soft:#0e749066;--border-lime-soft:#4d7c0f59;--border-orange-soft:#b453094d;--elevation-1:0 16px 40px #0d1d3014;--elevation-2:0 24px 60px #0d1d301f;--elevation-3:0 28px 80px #0d1d3029;--glow-cyan:#0e74901a;--glow-lime:#4d7c0f12;--grid-line:#0d1d3012;--ring-lime:#4d7c0f24;--ring-lime-strong:#4d7c0f73;--tooltip-shadow:0 10px 25px #0d1d302e;--surface-scrim:#0d1d3073;--plate-neutral:#fff}}@layer base{@view-transition{navigation:auto}*{box-sizing:border-box}html{scroll-behavior:auto}body{background:var(--ink);color:var(--text);min-width:320px;margin:0;font-family:Manrope,Manrope Fallback,ui-sans-serif,system-ui,sans-serif;line-height:1.65}body:before{background:radial-gradient(circle at 82% 3%, var(--glow-cyan), transparent 31rem), radial-gradient(circle at 7% 36%, var(--glow-lime), transparent 28rem);content:"";pointer-events:none;z-index:-2;position:fixed;inset:0}.hero,.page-hero{isolation:isolate;position:relative}.hero:before,.page-hero:before{background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);content:"";opacity:.5;pointer-events:none;z-index:-1;background-size:3.25rem 3.25rem;position:absolute;inset:0;mask-image:radial-gradient(circle at 78% 18%,#000,#0000 70%)}img{max-width:100%;display:block}a{color:inherit}button{cursor:pointer;font:inherit}::selection{background:var(--cyan);color:var(--ink)}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:4px}a:focus-visible,button:focus-visible,.filter-button:focus-visible,.skill-tab:focus-visible,[role=tab]:focus-visible,.card-link:focus-visible,.credential-badge:focus-visible,.credential-more:focus-visible,.card[href]:focus-visible{border-radius:var(--radius-sm);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}body.nav-locked{overflow:hidden}.container{width:min(calc(100% - 2.25rem), var(--max));margin-inline:auto}.skip-link{background:var(--cyan);border-radius:var(--radius-pill);color:var(--accent-contrast);padding:var(--space-xs) var(--space-sm);transition:transform var(--dur-slow) var(--ease-standard);z-index:99;position:fixed;top:.8rem;left:.8rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:30;position:sticky;top:0}.header-inner{align-items:center;gap:var(--space-md);justify-content:space-between;min-height:5.5rem;display:flex}.brand{color:var(--text);flex:none;width:9.9rem;line-height:0;text-decoration:none;display:inline-flex}.brand svg{width:100%;height:auto}.site-nav{flex:none;align-items:center;gap:.3rem;display:flex}.site-nav a{border-radius:var(--radius-md);color:var(--muted);font-size:var(--fs-sm);transition:color var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard), border-color var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);white-space:nowrap;border:1px solid #0000;align-items:center;gap:.48rem;padding:.72rem .76rem;font-weight:700;text-decoration:none;display:inline-flex}.site-nav a .icon{color:var(--cyan);font-size:var(--fs-xs);text-align:center;width:1rem}.site-nav a:hover,.site-nav a.is-current{background:var(--surface-tint-cyan);border-color:var(--line);color:var(--text);transform:translateY(-1px)}.site-nav .nav-contact{background:var(--cyan);color:var(--accent-contrast);border-color:#0000;margin-left:.6rem}.site-nav .nav-contact .icon{color:var(--accent-contrast)}.site-nav .nav-contact:hover{background:var(--lime);color:var(--accent-contrast)}.header-controls{flex:none;align-items:center;gap:.4rem;display:flex}.nav-toggle{border:1px solid var(--line);border-radius:var(--radius-md);height:2.8rem;padding:var(--space-xs);background:0 0;width:2.8rem;display:none}.nav-toggle span{background:var(--text);height:2px;margin:4px 0;display:block}.nav-toggle:focus-visible{border-color:var(--cyan);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.theme-toggle{border:1px solid var(--line);border-radius:var(--radius-md);color:var(--muted);font-size:var(--fs-sm);min-height:2.6rem;transition:color var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard), border-color var(--dur-base) var(--ease-standard);white-space:nowrap;background:0 0;align-items:center;gap:.48rem;padding:.55rem .7rem;font-weight:700;display:inline-flex}.theme-toggle .icon{color:var(--cyan);font-size:.9rem}.theme-toggle:hover{background:var(--surface-tint-cyan);border-color:var(--line-strong);color:var(--text)}.theme-toggle[hidden]{display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon{fill:currentColor;vertical-align:-.125em;width:1em;height:1em;line-height:1;display:inline-block}.icon-sprite{width:0;height:0;position:absolute;overflow:hidden}.profile-social{border:1px solid var(--line);border-radius:var(--radius-md);color:var(--muted);font-size:var(--fs-base);min-width:44px;height:2.75rem;min-height:44px;transition:color var(--dur-base) var(--ease-standard), border-color var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);place-items:center;width:2.75rem;text-decoration:none;display:inline-grid;position:relative}.profile-social:hover,.profile-social:focus-visible{background:var(--cyan);border-color:var(--cyan);color:var(--accent-contrast);transform:translateY(-2px)}.profile-social:after{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-xs);box-shadow:var(--tooltip-shadow);color:var(--text);content:attr(data-tooltip);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-3xs);opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);white-space:nowrap;z-index:4;padding:.35rem .5rem;font-weight:500;position:absolute;bottom:calc(100% + .55rem);left:50%;transform:translate(-50%,.25rem)}.profile-social:hover:after,.profile-social:focus-visible:after{opacity:1;transform:translate(-50%)}.profile-social-name{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (hover:none){.profile-social{grid-auto-flow:column;gap:.5rem;width:auto;padding-inline:.7rem}.profile-social:after{content:none}.profile-social-name{clip:auto;font-size:var(--fs-2xs);width:auto;height:auto;margin:0;font-weight:700;position:static;overflow:visible}}.profile-links{padding:var(--space-xs);flex-wrap:wrap;gap:.55rem;display:flex}main{overflow-x:clip}.section{padding:6.5rem 0}.section--tight{padding-top:2.25rem}.section--line{border-top:1px solid var(--line)}.section-heading{max-width:45rem;margin-bottom:2.8rem}.section-kicker,.eyebrow{color:var(--cyan);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-xs);letter-spacing:.14em;margin:0 0 var(--space-md);text-transform:uppercase;align-items:center;gap:.65rem;display:flex}.section-kicker:before,.eyebrow:before{background:var(--cyan);content:"";width:2rem;height:1px}.status-dot{background:var(--lime);box-shadow:0 0 0 .3rem var(--ring-lime);border-radius:50%;width:.5rem;height:.5rem}h1,h2,h3{color:var(--text);letter-spacing:-.05em;margin:0;line-height:1.08}h1{font-size:var(--fs-display)}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-h3);letter-spacing:-.035em}p{color:var(--muted);margin:0}.lede{font-size:var(--fs-md);max-width:var(--measure)}.section-heading h2+.lede,.section-heading h2+p,.section-heading h1+.lede{margin-top:var(--space-md)}.mono{color:var(--cyan);font-family:DM Mono,DM Mono Fallback,monospace}.data-note{color:var(--muted);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-sm);margin-top:var(--space-md)}.hero{padding:clamp(3.5rem,6vw,5.5rem) 0 3.5rem}.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(20rem,.85fr);align-items:center;gap:clamp(2.5rem,7vw,7rem);display:grid}.hero h1{font-size:var(--fs-3xl);max-width:15ch;margin-bottom:1.15rem}.hero h1 em{color:var(--cyan);font-style:normal}.hero-copy .lede{margin-bottom:var(--space-xl)}.hero-actions{margin:var(--space-xl) 0 2.4rem;flex-wrap:wrap;gap:.7rem;display:flex}.button{background:var(--cyan);border-radius:var(--radius-md);color:var(--accent-contrast);min-height:3.1rem;padding:var(--space-sm) 1.05rem;transition:transform var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard);border:1px solid #0000;justify-content:center;align-items:center;gap:.6rem;font-weight:800;text-decoration:none;display:inline-flex}.button:hover{background:var(--lime);transform:translateY(-2px)}.button--ghost{border-color:var(--line-strong);color:var(--text);background:0 0}.button--ghost:hover{background:var(--surface-tint-cyan-strong)}.hero-facts{border-top:1px solid var(--line);gap:var(--space-md);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:1.4rem 0 0;list-style:none;display:grid}.hero-facts strong{color:var(--text);font-size:1.45rem;display:block}.hero-facts span{color:var(--muted);font-size:var(--fs-2xs);display:block}.hero-fact-link{border-radius:var(--radius-sm);color:inherit;transition:color var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);text-decoration:none;display:block}.hero-fact-link:hover,.hero-fact-link:focus-visible{color:var(--text);transform:translateY(-2px)}.hero-fact-link:hover span,.hero-fact-link:focus-visible span{color:var(--lime)}.hero-fact-link span .icon{font-size:var(--fs-3xs);opacity:.7}.profile-panel{background:var(--surface-raised);border:1px solid var(--line-strong);box-shadow:var(--elevation-3);border-radius:1.65rem;padding:.7rem;position:relative}.profile-panel:before{border:1px solid var(--ring-lime-strong);content:"";border-radius:50%;width:5rem;height:5rem;position:absolute;top:-1.4rem;right:1.8rem}.profile-image{aspect-ratio:1;background:var(--surface-raised);border-radius:1.15rem;overflow:hidden}.profile-image img{object-fit:cover;object-position:center top;width:100%;height:100%}.profile-meta{gap:var(--space-md);padding:1.25rem .55rem var(--space-xs);justify-content:space-between;display:flex}.profile-meta strong{margin-bottom:var(--space-3xs);font-size:1.1rem;display:block}.profile-meta span{color:var(--muted);font-size:var(--fs-sm)}.profile-tag{border:1px solid var(--border-lime-soft);border-radius:var(--radius-pill);color:var(--lime);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-2xs);align-self:start;padding:.35rem .55rem}.journey{gap:var(--space-2xl);grid-template-columns:13rem 1fr;display:grid}.journey-rail{align-self:start;gap:.6rem;display:grid;position:sticky;top:8rem}.journey-rail a{border-left:1px solid var(--line);color:var(--muted);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-2xs);min-height:2.4rem;transition:background var(--dur-base) var(--ease-standard), color var(--dur-base) var(--ease-standard);align-items:center;gap:.65rem;padding:.55rem .65rem;text-decoration:none;display:flex}.journey-rail a span{color:var(--cyan)}.journey-rail a:hover,.journey-rail a.is-active{background:var(--surface-tint-lime);border-left-color:var(--lime);color:var(--text)}.journey-content{min-width:0}.cards{gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.card{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);transition:border-color var(--dur-base) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);padding:1.45rem}}@layer components{.skills-explorer{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);gap:var(--space-md);padding:var(--space-md);grid-template-columns:minmax(13rem,.34fr) minmax(0,1fr);display:grid}.skills-tabs{align-content:start;gap:.35rem;display:grid}.skill-tab{border-radius:var(--radius-md);color:var(--muted);text-align:left;min-height:2.8rem;transition:color var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard), border-color var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);background:0 0;border:1px solid #0000;align-items:center;gap:.7rem;padding:.65rem .75rem;font-size:.78rem;font-weight:700;display:flex}.skill-tab>.icon:first-child{color:var(--cyan);text-align:center;width:1.1rem}.skill-tab:hover{border-color:var(--line);color:var(--text);transform:translate(2px)}.skill-tab.is-active{background:var(--surface-tint-cyan-strong);border-color:var(--line-strong);color:var(--text);transform:translate(2px)}.skill-tab.is-active>.icon:first-child{color:var(--lime)}.skill-tab-arrow{color:var(--muted);opacity:0;transition:opacity var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard), color var(--dur-base) var(--ease-standard);margin-left:auto;font-size:.62rem;transform:translate(-.25rem)}.skill-tab:hover .skill-tab-arrow,.skill-tab:focus-visible .skill-tab-arrow{opacity:.7;transform:translate(0)}.skill-tab.is-active .skill-tab-arrow{color:var(--lime);opacity:1;transform:translate(0)}.skills-panels{min-width:0}.skills-panel{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);min-height:100%;padding:var(--space-lg)}.skills-panel[hidden]{display:none}.skills-panel-heading{align-items:center;gap:.85rem;margin-bottom:1.3rem;display:flex}.skills-panel-heading .section-kicker{margin-bottom:.3rem}.skills-panel-heading h3{font-size:var(--fs-h3-lg)}.skill-panel-icon{background:var(--surface-tint-cyan);border:1px solid var(--line-strong);border-radius:var(--radius-md);color:var(--cyan);place-items:center;width:3rem;height:3rem;font-size:1.1rem;display:grid}.skill-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.skill-list li{background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);padding:.48rem .62rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.7rem}.skill-list li:hover{border-color:var(--line-strong);color:var(--text)}.card--interactive:hover,.card--interactive:focus-within{border-color:var(--line-strong);box-shadow:var(--elevation-2);transform:translateY(-3px)}.card--interactive:active{box-shadow:var(--elevation-1);transform:translateY(-1px)}.card[aria-disabled=true],.card--static{cursor:default;opacity:.85}.card-label{color:var(--cyan);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-2xs);letter-spacing:.04em;margin-bottom:var(--space-sm);text-transform:uppercase;display:block}.card h3{margin-bottom:.7rem}.card p{font-size:.9rem}.card-link{color:var(--cyan);font-size:var(--fs-sm);margin-top:var(--space-md);align-items:center;min-height:2.5rem;font-weight:800;text-decoration:none;display:inline-flex}.card-link:hover{color:var(--lime)}.impact{grid-template-columns:.85fr 1.15fr;align-items:start;gap:4rem;display:grid}.impact-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.impact-item{background:var(--surface-tint-cyan);border-left:2px solid var(--cyan);padding:1.2rem}.impact-item strong{color:var(--text);letter-spacing:-.07em;font-size:clamp(1.8rem,4vw,2.8rem);display:block}.impact-item span{color:var(--muted);font-size:.8rem}.section-head-row{align-items:end;gap:var(--space-xl);justify-content:space-between;margin-bottom:2.8rem;display:flex}@media (width<=1000px){.section-head-row{display:block}.section-head-row .section-heading{margin-bottom:var(--space-lg)}.head-row-actions{margin-top:var(--space-md)}}@media (width<=1080px){.cards,.intent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.head-row-actions{flex-wrap:wrap;gap:.6rem;display:flex}.section-head-row .section-heading{margin-bottom:0}.featured-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;display:grid}.featured-grid .card:first-child,.featured-grid .card:nth-child(2){grid-column:span 6}.featured-grid .card:nth-child(n+3){grid-column:span 4}.project-meta{flex-wrap:wrap;gap:.45rem;margin-top:1.2rem;display:flex}.project-meta span{border:1px solid var(--line);border-radius:var(--radius-xs);color:var(--muted);padding:.3rem .5rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.65rem}.status{color:var(--lime);align-items:center;gap:.4rem;margin-top:1rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.68rem;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:.4rem;height:.4rem}.teaching-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.teaching-card{flex-direction:column;gap:1rem;min-height:14rem;display:flex}.teaching-card img{object-fit:contain;width:2rem;height:2rem}.teaching-card a{color:var(--cyan);font-size:var(--fs-sm);align-items:center;min-height:2.5rem;margin-top:auto;font-weight:800;text-decoration:none;display:inline-flex}.logo-cloud{flex-wrap:wrap;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.logo-pill{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--muted);font-size:var(--fs-sm);align-items:center;gap:.55rem;min-height:3.05rem;padding:.7rem .8rem;display:inline-flex}.logo-pill img{object-fit:contain}.page-hero{border-bottom:1px solid var(--line);padding:4.75rem 0 3.25rem}.page-hero h1{max-width:16ch;margin-bottom:1.3rem;font-size:clamp(2.9rem,6vw,5.7rem)}.page-hero-meta{flex-wrap:wrap;gap:.55rem;margin:1.8rem 0 0;padding:0;list-style:none;display:flex}.page-hero-meta span{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);padding:.45rem .65rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.68rem}.timeline{gap:.85rem;margin:0;padding:0;list-style:none;display:grid;position:relative}.timeline:before{background:var(--line-strong);content:"";width:1px;position:absolute;top:.7rem;bottom:.7rem;left:.52rem}.timeline-item{grid-template-columns:1.1rem 1fr;gap:1.2rem;display:grid;position:relative}.timeline-dot{background:var(--cyan);border:3px solid var(--ink);box-shadow:0 0 0 1px var(--cyan);z-index:1;border-radius:50%;width:1.1rem;height:1.1rem;margin-top:1.55rem}.timeline-item:first-child .timeline-dot{background:var(--lime);box-shadow:0 0 0 1px var(--lime), 0 0 0 .3rem var(--ring-lime)}.timeline-card{background:var(--surface-raised);padding:1.35rem 1.5rem}.timeline-card p,.timeline-card .timeline-context{max-width:var(--measure-wide)}.timeline-card header{justify-content:space-between;gap:1rem;margin-bottom:.7rem;display:flex}.timeline-card h2,.timeline-card h3{font-size:var(--fs-h3);letter-spacing:-.03em}.timeline-card time{color:var(--cyan);text-align:right;white-space:nowrap;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.7rem}.company{color:var(--lime);margin-top:.3rem;font-size:.83rem;font-weight:800;display:block}.cert-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.filter-bar{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.filter-button{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);background:0 0;padding:.55rem .7rem;font-size:.76rem}.filter-button:hover,.filter-button.is-active{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}.filter-count{color:currentColor;font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-2xs)}.filter-status{color:var(--muted);margin:-.6rem 0 1.2rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.72rem}.repo-empty{background:var(--surface-soft);border:1px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--muted);text-align:center;margin-top:1.2rem;padding:1.4rem 1.6rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.82rem}.repo-empty[hidden]{display:none}.repo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.repo-kind{color:var(--lime);font-family:DM Mono,DM Mono Fallback,monospace;font-size:.68rem}.contact-panel{background:linear-gradient(120deg, var(--surface-tint-cyan-strong), var(--surface-tint-lime));border:1px solid var(--line-strong);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:2rem;padding:2rem;display:flex}.contact-panel h2{max-width:15ch;font-size:clamp(1.8rem,4vw,3.1rem)}.contact-actions{flex-wrap:wrap;gap:.7rem;display:flex}.site-footer{border-top:1px solid var(--line);padding:2.5rem 0}.footer-inner{justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer-inner strong,.footer-inner span{display:block}.footer-inner span{color:var(--muted);font-size:.75rem}.footer-inner nav{flex-wrap:wrap;gap:.8rem;display:flex}.footer-inner a{color:var(--muted);font-size:var(--fs-sm);align-items:center;min-height:1.75rem;text-decoration:none;display:inline-flex}.footer-inner a:hover{color:var(--cyan)}.footer-links{flex:1;justify-content:center}.footer-links a{font-weight:700}.footer-social{font-size:1rem}@media (width>=901px) and (width<=1024px){.hero{padding-top:clamp(2.5rem,4vw,3.5rem)}.hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(16rem,.65fr);gap:clamp(1.75rem,4vw,3rem)}.hero h1{font-size:clamp(2.6rem,4.2vw,3.8rem)}.hero-facts{gap:.6rem}}.theme-toggle-label,.command-open-label{display:none}@media (width<=1320px){.header-inner{gap:1.25rem}.site-nav a{padding-inline:.62rem}}@media (width<=1199px){.nav-toggle{display:block}.site-nav{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--elevation-3);flex-direction:column;align-items:stretch;padding:.65rem;display:none;position:absolute;top:calc(100% + 1px);left:.75rem;right:.75rem}.site-nav.is-open{display:flex}.site-nav a{font-size:var(--fs-sm);justify-content:space-between;padding:.8rem}.site-nav .nav-contact{margin:.35rem 0 0}}@media (width<=900px){.site-nav a{padding-inline:.55rem;font-size:.75rem}.hero-grid,.impact{grid-template-columns:1fr;gap:3rem}.hero h1{max-width:13ch}.profile-panel{max-width:31rem}.journey{grid-template-columns:1fr;gap:1.5rem}.journey-rail{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;gap:.5rem;padding-bottom:.35rem;display:flex;position:static;overflow-x:auto}.journey-rail a{border:1px solid var(--line);border-left:1px solid var(--line);border-radius:var(--radius-sm);scroll-snap-align:start;flex:none;min-width:max-content}.featured-grid .card:nth-child(n){grid-column:span 6}.teaching-grid,.cert-grid,.course-grid,.repo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.container{width:min(calc(100% - 1.5rem), var(--max))}.header-inner{min-height:4.7rem}.brand{width:12rem}.skill-list li{font-size:.66rem}.hero{padding-top:2.6rem}.hero h1{max-width:16ch;font-size:clamp(2.1rem,10.5vw,3.3rem)}.hero-copy .lede{margin-bottom:var(--space-lg)}.hero-actions{margin:var(--space-lg) 0 var(--space-lg)}.hero-facts{grid-template-columns:repeat(2,1fr)}.section,.page-hero{padding-block:4rem}.cards,.featured-grid,.teaching-grid,.cert-grid,.repo-grid,.course-grid{grid-template-columns:1fr}.featured-grid .card:nth-child(n){grid-column:auto}.timeline-card header{display:block}.timeline-card time{text-align:left;margin-top:.5rem;display:block}.contact-panel,.footer-inner{flex-direction:column;align-items:flex-start}.section-head-row{display:block}.section-head-row .button{margin-top:1rem}}@media (width<=720px){.skills-explorer{grid-template-columns:1fr}.skills-tabs{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;gap:.4rem;padding-bottom:.3rem;display:flex;overflow-x:auto}.skill-tab{scroll-snap-align:start;flex:none;min-width:max-content}.skill-tab-arrow{display:none}.skills-panel{padding:1.15rem}.page-hero-meta span{overflow-wrap:anywhere;min-width:0;max-width:100%}}@media (width<=460px){.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}}@media (width<=560px){.command-open-kbd{display:none}}@media (width<=420px){.brand{width:8.75rem}.header-controls{gap:.3rem}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}html{scroll-behavior:auto!important}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.button:hover,.site-nav a:hover,.site-nav a.is-current,.profile-social:hover,.profile-social:focus-visible,.credential-badge:hover{transform:none!important}}.footer-legal{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.4rem;padding-top:1.1rem;display:flex}.footer-copy{color:var(--muted);margin:0;font-size:.78rem}.footer-top{color:var(--muted);font-size:var(--fs-sm);min-height:1.75rem;transition:color var(--dur-base) var(--ease-standard);align-items:center;gap:.4rem;font-weight:700;text-decoration:none;display:inline-flex}.footer-top:hover,.footer-top:focus-visible{color:var(--cyan)}@media (width<=560px){.footer-legal{flex-direction:column;align-items:flex-start}}@media print{body{color:#000;background:#fff}body:before,body:after,.hero:before,.page-hero:before,.site-header,.nav-toggle,.skip-link,.footer-top,.filter-bar,.hero-actions,.contact-actions,.command-palette,.command-open,.theme-toggle,.scroll-progress,.codeblock-copy{display:none!important}a{color:#000;text-decoration:underline}a[href^=http]:after{content:" (" attr(href) ")";word-break:break-all;font-size:.75em}.card,.timeline-card,.skills-panel,.codeblock,.evidence-figure{box-shadow:none;background:#fff;border:1px solid #999}.codeblock-pre,.codeblock-pre .tok-comment,.codeblock-pre .tok-key,.codeblock-pre .tok-string,.codeblock-pre .tok-number{color:#000}.section{padding-block:1rem}}.breadcrumb{margin:0 0 1rem}.breadcrumb ol{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.45rem;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}.breadcrumb li{align-items:center;gap:.45rem;display:inline-flex}.breadcrumb li+li:before{color:var(--line-strong);content:"/"}.breadcrumb a{color:var(--muted);transition:color var(--dur-base) var(--ease-standard);text-decoration:none}.breadcrumb a:hover,.breadcrumb a:focus-visible{color:var(--cyan)}.breadcrumb [aria-current=page]{color:var(--text);font-weight:700}.footer-links a.is-current{color:var(--cyan);font-weight:700}.footer-links a{transition:color var(--dur-base) var(--ease-standard)}section[id],article[id],:target{scroll-margin-top:var(--anchor-offset)}.profile-name{color:var(--text);letter-spacing:-.03em;margin-bottom:var(--space-3xs);font-size:1.1rem;font-weight:800;text-decoration:none;display:block}.profile-name:hover,.profile-name:focus-visible{color:var(--cyan);text-underline-offset:.25em;text-decoration:underline}.profile-meta>div>span{display:block}.hero .eyebrow{max-width:48rem}.hero h1{max-width:17ch}.teaching-card img[src*=openwebinars]{object-fit:contain;object-position:left center;width:8.8rem;height:2.75rem}.teaching-card a,.card-link{text-underline-offset:.22em}.teaching-card a:hover,.teaching-card a:focus-visible{text-decoration:underline}.course-summary{background:var(--surface-tint-lime);border:1px solid var(--border-lime-soft);border-radius:var(--radius-md);flex-wrap:wrap;align-items:baseline;gap:.8rem;margin-bottom:1.4rem;padding:1.2rem 1.4rem;display:flex}.course-summary strong{color:var(--lime);letter-spacing:-.04em;font-size:clamp(1.35rem,3vw,1.75rem)}.course-summary span{color:var(--muted);font-size:.8rem}.course-grid{align-items:stretch;gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.course-grid .course-card:last-child:nth-child(3n+1){grid-column:2}.course-card{flex-direction:column;min-height:100%;padding:0;display:flex;overflow:hidden}.course-visual{background:linear-gradient(135deg, var(--artwork-wash-a), var(--artwork-wash-b));border-bottom:1px solid var(--line);min-height:10.8rem;position:relative;overflow:hidden}.course-visual svg{width:100%;height:100%;min-height:10.8rem;display:block}.course-access{background:var(--lime);border:1px solid var(--ring-lime-strong);border-radius:var(--radius-pill);color:var(--ink);text-transform:uppercase;padding:.35rem .55rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.62rem;font-weight:800;position:absolute;top:.85rem;right:.85rem}.course-card-body{flex-direction:column;flex:1;padding:1.35rem;display:flex}.course-card-body .card-label{min-height:auto;margin-bottom:1rem}.course-card-body h3{font-size:var(--fs-h3-sm)}.course-card-body p{margin-top:.75rem}.course-access-label{border:1px solid var(--line);border-radius:var(--radius-xs);color:var(--muted);align-self:flex-start;margin-top:auto;padding:.3rem .48rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.64rem;display:inline-flex}.course-access-label.is-free{background:var(--surface-tint-lime);border-color:var(--border-lime-soft);color:var(--lime)}.course-card .card-link{margin-top:var(--space-sm)}.about-quick-links{flex-wrap:wrap;gap:.65rem;margin-top:1.7rem;display:flex}.about-layout{grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr);align-items:start;gap:1rem;display:grid}.about-story{gap:1rem;display:grid}.about-story .section-kicker,.about-stack-card .section-kicker,.about-credentials-card .section-kicker{margin-bottom:0}.about-story h2{font-size:clamp(2rem,4vw,3.4rem)}.about-story h3{margin-top:.7rem}.about-results{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.about-results li{background:var(--surface-tint-cyan);border-left:2px solid var(--cyan);color:var(--muted);padding:.8rem .9rem}.about-results strong{color:var(--text)}.about-aside{gap:1rem;display:grid}.about-stack-card h2{margin-bottom:1.1rem;font-size:clamp(1.7rem,3vw,2.5rem)}.about-links{flex-wrap:wrap;gap:.7rem;display:flex}.about-links .card-link{margin-top:0}@media (width<=900px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-layout{grid-template-columns:1fr}}@media (width<=680px){.course-grid{grid-template-columns:1fr}.about-quick-links{display:grid}.about-quick-links .button{width:100%}.teaching-card img[src*=openwebinars]{width:10rem}}.logo-cloud-wrap{margin-top:1.5rem}.intent-section{border-top:1px solid var(--line)}.intent-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.intent-card{flex-direction:column;min-height:14rem;display:flex}.intent-card .card-link{margin-top:auto}.intent-icon{background:var(--surface-tint-cyan);border:1px solid var(--line-strong);border-radius:var(--radius-md);color:var(--cyan);place-items:center;width:3rem;height:3rem;margin-bottom:1rem;display:grid}.impact-cards .card{flex-direction:column;display:flex}.impact-cards .card-link{margin-top:auto}.skill-summary{color:var(--text);max-width:48rem;margin-bottom:1rem;font-size:1rem}.skill-evidence{background:var(--surface-tint-lime);border-left:2px solid var(--lime);margin-bottom:1.2rem;padding:1rem}.skill-evidence>span{color:var(--lime);text-transform:uppercase;align-items:center;gap:.45rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.68rem;font-weight:500;display:inline-flex}.skill-evidence p{margin-top:.35rem}.skills-panel .card-link{margin-top:1.3rem}.page-hero-meta li{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);padding:.45rem .65rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.68rem}.project-case{scroll-margin-top:var(--anchor-offset);flex-direction:column;display:flex}.project-case-head{gap:.65rem;display:grid}.project-case-tagline{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin:0;display:flex}.project-case-tagline .project-theme:before{color:var(--line-strong);content:"·";margin-right:.5rem}.project-case-head h3{font-size:var(--fs-h3-lg);margin:.2rem 0 0}.project-theme{color:var(--cyan);font-family:DM Mono,DM Mono Fallback,monospace;font-size:.66rem}.project-case-story{gap:.65rem;margin:1.25rem 0 0;display:grid}.project-case-story div{border-top:1px solid var(--line);grid-template-columns:6.4rem 1fr;gap:.8rem;padding-top:.65rem;display:grid}.project-case-story dt{color:var(--lime);text-transform:uppercase;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.65rem}.project-case-story dd{color:var(--muted);margin:0;font-size:.82rem}.project-facts{flex-wrap:wrap;gap:.4rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.project-facts li{background:var(--surface-tint-cyan);border-radius:var(--radius-xs);color:var(--text);padding:.25rem .45rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.61rem}.project-case .project-bottom{margin-top:auto}.project-case--featured{background:linear-gradient(145deg, var(--surface-tint-cyan-strong), var(--surface-soft))}.teaching-metrics{flex-wrap:wrap;gap:.35rem;margin:.35rem 0 .55rem;display:flex}.teaching-metrics strong,.teaching-metric{border:1px solid var(--border-lime-soft);border-radius:var(--radius-xs);color:var(--lime);padding:.24rem .4rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.66rem;display:inline-flex}.course-path-step{color:var(--cyan);font-family:DM Mono,DM Mono Fallback,monospace;font-size:.62rem;font-weight:500;position:absolute;top:.85rem;left:.85rem}.course-visual-base{fill:#0a1b2d}.course-grid-line{fill:none;stroke:var(--artwork-grid);stroke-width:1px}.course-gradient-start{stop-color:#67e8f9}.course-gradient-end{stop-color:#c4f269}.course-mountain{opacity:.18}.course-orbit{fill:none;opacity:.75;stroke:#67e8f9;stroke-width:2px}.course-orbit--inner{stroke:#c4f269}.course-code-lines{fill:none;opacity:.55;stroke:#a8bbcc;stroke-linecap:round;stroke-width:3px}.course-visual--fundamentos .course-gradient-start,.course-visual--comparativa .course-gradient-end{stop-color:#f6b56c}.course-visual--gin .course-gradient-end{stop-color:#38bdf8}.course-visual--echo .course-gradient-end{stop-color:#a78bfa}.course-visual--fiber .course-gradient-end{stop-color:#f472b6}.course-visual--gorilla .course-gradient-end{stop-color:#fb923c}.course-visual--revel .course-gradient-end{stop-color:#4ade80}.course-outcome{background:var(--surface-tint-cyan);border-left:2px solid var(--cyan);gap:.25rem;margin-top:1rem;padding:.75rem;display:grid}.course-outcome strong{color:var(--text);font-size:.72rem}.course-outcome span{color:var(--muted);font-size:.78rem}.openwebinars-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.compact-course{align-items:start;gap:var(--space-md);grid-template-columns:7rem 1fr;display:grid}.compact-course>img{object-fit:contain;object-position:left center;width:6.5rem;height:2.2rem}.compact-course h3{font-size:var(--fs-h3-sm)}.cert-grid--badges{grid-template-columns:repeat(3,minmax(0,1fr))}.cert-grid--badges:not(.cert-grid--summary){grid-template-columns:minmax(0,1fr)}.cert-grid--badges:not(.cert-grid--summary) .credential-badges{grid-template-columns:repeat(auto-fit,minmax(min(100%,21rem),1fr))}.cert-provider{flex-direction:column;min-width:0;display:flex}.cert-provider-head{align-items:center;gap:.85rem;margin-bottom:1rem;display:flex}.cert-provider-id{min-width:0}.cert-provider-head .card-label{min-height:0;margin:0 0 .2rem}.cert-provider-id h3{font-size:var(--fs-h3);letter-spacing:-.03em;margin:0;line-height:1.1}.cert-provider-count{color:var(--muted);margin:.2rem 0 0;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.62rem}.cert-provider-logo{background:var(--plate-neutral);border:1px solid var(--line);border-radius:var(--radius-md);flex:none;place-items:center;width:4rem;height:4rem;display:grid}.cert-provider-logo img{object-fit:contain;max-width:2.8rem;max-height:2.8rem}.credential-badges{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.credential-badge{background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-md);min-height:4.2rem;transition:border-color var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.75rem;text-decoration:none;display:grid}.credential-badge:hover,.credential-badge:focus-visible{background:var(--surface-tint-cyan);border-color:var(--cyan)}@media (hover:hover){.credential-badge:hover{transform:translateY(-1px)}}.credential-code{background:var(--cyan);border-radius:var(--radius-sm);color:var(--accent-contrast);hyphens:none;text-align:center;place-items:center;width:4.6rem;min-height:2.4rem;padding:.35rem .4rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.63rem;font-weight:500;display:grid}.credential-copy{min-width:0}.credential-copy strong,.credential-copy small{overflow-wrap:anywhere;display:block}.credential-copy strong{color:var(--text);font-size:.78rem;line-height:1.35}.credential-copy small{color:var(--muted);margin-top:.2rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.62rem;line-height:1.45}.credential-verify{color:var(--lime);letter-spacing:.04em;text-transform:uppercase;flex:none;align-items:center;gap:.35rem;min-height:1.75rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.6rem;display:inline-flex}.credential-verify .icon{color:var(--lime);font-size:.85rem}.credential-badge:hover .credential-verify,.credential-badge:focus-visible .credential-verify{text-underline-offset:.2em;text-decoration:underline}.cert-provider--summary .credential-badge{min-height:3.6rem}.credential-more{color:var(--cyan);align-items:center;gap:.4rem;min-height:1.75rem;margin-top:.85rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.68rem;text-decoration:none;display:inline-flex}.credential-more:after{content:"";border-top:1.5px solid;border-right:1.5px solid;width:.5rem;height:.5rem;transform:rotate(45deg)}.credential-more:hover,.credential-more:focus-visible{text-underline-offset:.2em;text-decoration:underline}.learning-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.learning-summary .card>strong{color:var(--lime);margin-bottom:.35rem;font-size:clamp(1.8rem,4vw,3rem);display:block}.card-actions{flex-wrap:wrap;gap:.8rem;display:flex}.timeline-card .timeline-context{background:var(--surface-tint-cyan);border-radius:var(--radius-sm);font-size:var(--fs-sm);gap:.45rem;margin-top:.8rem;padding:.65rem .75rem;display:flex}.timeline-context .icon{color:var(--cyan);margin-top:.25rem}.timeline-links{flex-wrap:wrap;gap:.75rem;display:flex}.about-portrait{aspect-ratio:16/8;border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin:-1.45rem -1.45rem .5rem;display:block;overflow:hidden}.about-portrait img{object-fit:cover;object-position:center 28%;width:100%;height:100%}.about-results a{color:var(--cyan)}.stack-groups{gap:.55rem;display:grid}.stack-groups details{background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-md)}.stack-groups summary{color:var(--text);cursor:pointer;padding:.7rem .8rem;font-weight:700}.stack-groups ul{flex-wrap:wrap;gap:.4rem;margin:0;padding:0 .8rem .8rem;list-style:none;display:flex}.stack-groups li{border:1px solid var(--line);border-radius:var(--radius-xs);color:var(--muted);padding:.3rem .45rem;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.62rem}.contact-panel--spaced{margin-top:1rem}.error-hero{align-items:center;min-height:65vh;display:grid}@media (width<=1199px){html:not(.js) .header-inner{flex-direction:column;align-items:flex-start;padding-block:.8rem}html:not(.js) .nav-toggle{display:none}html:not(.js) .site-nav{box-shadow:none;width:100%;display:flex;position:static}}@media (width<=680px){.intent-grid,.learning-summary,.openwebinars-grid,.cert-grid--badges{grid-template-columns:1fr}.project-case-story div{grid-template-columns:1fr;gap:.25rem}.credential-badge{grid-template-columns:auto 1fr}.credential-badge>.icon{display:none}.credential-verify{grid-column:2;margin-top:.15rem}}@media (width>=681px) and (width<=1000px){.intent-grid,.learning-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cert-grid--badges{grid-template-columns:1fr}}@media (prefers-contrast:more){:root{--line:#f4f8fb6b;--line-strong:#67e8f9;--muted:#d6e1e9}.card,.logo-pill,.skill-tab,.credential-badge{box-shadow:none}}@media (forced-colors:active){*{forced-color-adjust:auto}.status-dot,.timeline-dot{border:1px solid canvastext}.button,.filter-button.is-active,.credential-code{border:2px solid buttontext}.course-visual{display:none}}@media (width<=900px){.page-hero{padding:4rem 0 3rem}.page-hero h1{font-size:clamp(2.7rem,9vw,4.6rem)}.course-grid .course-card:last-child:nth-child(3n+1){grid-column:auto}}@media (width<=680px){.page-hero h1{font-size:clamp(2.65rem,13vw,4.25rem)}.compact-course{grid-template-columns:1fr}}.contact-panel,.project-case--featured{background:var(--surface-raised)}.course-visual-copy{background:var(--ink);border-radius:var(--radius-xs);color:var(--text);gap:.25rem;padding:.45rem .6rem;display:grid;position:absolute;bottom:1.7rem;left:1.6rem}.course-visual-copy strong{font-size:2rem;line-height:1}.course-visual-copy span{color:#d6e1e9;font-family:DM Mono,DM Mono Fallback,monospace;font-size:.65rem}.course-path-step{background:var(--ink);border-radius:var(--radius-xs);padding:.28rem .42rem}.footer-social a{border-radius:var(--radius-md);border:1px solid #0000;place-items:center;width:2.75rem;height:2.75rem;display:grid}.footer-social a:hover,.footer-social a:focus-visible{background:var(--surface-raised);border-color:var(--line-strong)}.section--line{contain-intrinsic-size:auto 640px;content-visibility:auto}.logo-pill img{aspect-ratio:1;object-fit:contain;width:1.75rem;height:1.75rem}.teaching-card img{aspect-ratio:1}@media (width<=1200px){.cert-grid--badges{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}}:root[data-theme=light] .skills-explorer,:root[data-theme=light] .skills-panel{background:var(--surface)}:root[data-theme=light] .skill-list li,:root[data-theme=light] .credential-badge{background:var(--surface-sunken);color:var(--text)}:root[data-theme=light] .skill-list li{color:var(--text)}:root[data-theme=light] .logo-pill{background:var(--surface-sunken);color:var(--text)}:root[data-theme=light] .logo-pill span{color:var(--text)}:root[data-theme=light] .credential-copy small{color:var(--muted)}:root[data-theme=light] .credential-verify,:root[data-theme=light] .credential-verify .icon{color:var(--lime)}:root[data-theme=light] .site-nav a.is-current,:root[data-theme=light] .site-nav a:hover{background:var(--surface-tint-cyan-strong);color:var(--text)}:root[data-theme=light] .filter-button.is-active,:root[data-theme=light] .filter-button:hover,:root[data-theme=light] .course-access{color:var(--accent-contrast)}:root[data-theme=light] .course-visual-copy,:root[data-theme=light] .course-path-step{color:#f4f8fb;background:#0a1b2d}:root[data-theme=light] .course-visual-copy span{color:#d6e1e9}:root[data-theme=light] .site-header{background:#fff}:root[data-theme=light] .site-nav a:not(.nav-contact),:root[data-theme=light] .theme-toggle,:root[data-theme=light] .theme-toggle-label{color:#1f2d3d}:root[data-theme=light] .site-nav a.is-current{background:var(--surface-tint-cyan-strong);color:#0b1b2d}.hero-facts strong,.impact-item strong,.learning-summary .card>strong,.course-summary strong,.credential-code,.credential-copy small,.teaching-metrics strong,.teaching-metric{font-variant-numeric:tabular-nums}@supports (border-top-color:color-mix(in srgb, red, blue)){.section--line{border-top-color:color-mix(in srgb, var(--cyan) 22%, transparent)}.timeline-card header{border-bottom:1px solid color-mix(in srgb, var(--line-strong) 40%, transparent)}}@supports (backdrop-filter:blur(1px)){.site-header{backdrop-filter:blur(18px);background:var(--surface-overlay)}}@media (prefers-reduced-transparency:reduce){.site-header{backdrop-filter:none;background:var(--surface)}.skills-explorer,.skills-panel,.card,.credential-badge,.logo-pill,.profile-panel,.contact-panel{background:var(--surface-raised)}}.guide-swatches{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.guide-swatch{gap:.4rem;display:grid}.guide-swatch code{color:var(--muted);font-size:var(--fs-2xs)}.guide-swatch-chip{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;height:3.5rem;display:block}.swatch--cyan{background:var(--cyan)}.swatch--lime{background:var(--lime)}.swatch--orange{background:var(--orange)}.swatch--text{background:var(--text)}.swatch--muted{background:var(--muted)}.swatch--surface{background:var(--surface)}.swatch--surface-raised{background:var(--surface-raised)}.swatch--ink{background:var(--ink)}.guide-type-list{gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.guide-type-list li{flex-wrap:wrap;align-items:baseline;gap:.8rem;display:flex}.guide-type-list code{color:var(--muted);font-size:var(--fs-2xs)}.guide-type{color:var(--text);font-weight:700;line-height:1.1}.tsample--display{font-size:var(--fs-display)}.tsample--3xl{font-size:var(--fs-3xl)}.tsample--2xl{font-size:var(--fs-2xl)}.tsample--xl{font-size:var(--fs-xl)}.tsample--lg{font-size:var(--fs-lg)}.tsample--md{font-size:var(--fs-md)}.tsample--base{font-size:var(--fs-base)}.guide-space-list,.guide-radius-list,.guide-elevation-list{gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.guide-space-list li,.guide-radius-list li,.guide-elevation-list li{align-items:center;gap:1rem;display:flex}.guide-space-list code,.guide-radius-list code,.guide-elevation-list code{color:var(--muted);font-size:var(--fs-2xs)}.guide-space-bar{background:var(--cyan);border-radius:var(--radius-xs);height:1rem}.guide-space-bar--3xs{width:var(--space-3xs)}.guide-space-bar--2xs{width:var(--space-2xs)}.guide-space-bar--xs{width:var(--space-xs)}.guide-space-bar--sm{width:var(--space-sm)}.guide-space-bar--md{width:var(--space-md)}.guide-space-bar--lg{width:var(--space-lg)}.guide-space-bar--xl{width:var(--space-xl)}.guide-space-bar--2xl{width:var(--space-2xl)}.guide-radius-box{background:var(--surface-raised);border:1px solid var(--line-strong);width:3rem;height:3rem}.guide-radius-box--xs{border-radius:var(--radius-xs)}.guide-radius-box--sm{border-radius:var(--radius-sm)}.guide-radius-box--md{border-radius:var(--radius-md)}.guide-radius-box--lg{border-radius:var(--radius-lg)}.guide-radius-box--pill{border-radius:var(--radius-pill)}.guide-elevation-box{background:var(--surface-raised);border-radius:var(--radius-md);width:6rem;height:3rem}.guide-elevation-box--1{box-shadow:var(--elevation-1)}.guide-elevation-box--2{box-shadow:var(--elevation-2)}.guide-elevation-box--3{box-shadow:var(--elevation-3)}.guide-components{flex-wrap:wrap;gap:.8rem;margin-bottom:1.6rem;display:flex}.guide-cards-sample{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width<=680px){.guide-cards-sample{grid-template-columns:1fr}}.scroll-progress{z-index:40;background:0 0;height:3px;position:fixed;top:0;left:0;right:0}.scroll-progress[hidden]{display:none}.scroll-progress-bar{background:linear-gradient(90deg, var(--cyan), var(--lime));transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}@media (prefers-reduced-motion:no-preference){.scroll-progress-bar{transition:transform var(--dur-fast) linear}}.command-open{border:1px solid var(--line);border-radius:var(--radius-md);color:var(--muted);font-size:var(--fs-sm);min-height:2.6rem;transition:border-color var(--dur-base) var(--ease-standard), color var(--dur-base) var(--ease-standard);white-space:nowrap;background:0 0;align-items:center;gap:.45rem;padding:.55rem .7rem;font-weight:700;display:inline-flex}.command-open .icon{color:var(--cyan)}.command-open:hover{border-color:var(--line-strong);color:var(--text)}.command-open[hidden]{display:none}.command-open-kbd{border:1px solid var(--line);border-radius:var(--radius-xs);color:var(--muted);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-3xs);padding:.1rem .3rem}.command-palette{background:var(--surface-scrim);z-index:60;justify-content:center;align-items:flex-start;padding:12vh 1rem 1rem;display:flex;position:fixed;inset:0}.command-palette[hidden]{display:none}.command-panel{background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--elevation-3);width:100%;max-width:34rem;padding:1rem;overflow:hidden}.command-input{background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--text);font-size:var(--fs-base);width:100%;padding:.75rem .85rem}.command-input:focus-visible{border-color:var(--line-strong);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}.command-list{gap:.25rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.command-item{border-radius:var(--radius-sm);color:var(--text);padding:.65rem .75rem;font-weight:700;text-decoration:none;display:block}.command-item[hidden]{display:none}.command-item:hover,.command-item:focus-visible{background:var(--surface-tint-cyan-strong);color:var(--text)}.command-empty{color:var(--muted);margin:1rem 0 0;padding:.65rem .75rem}.command-empty[hidden]{display:none}.codeblock{border:1px solid var(--line);border-radius:var(--radius-md);margin:0;overflow:hidden}.codeblock-caption{background:var(--surface-sunken);border-bottom:1px solid var(--line);color:var(--muted);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-2xs);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.6rem .85rem;display:flex}.codeblock-lang{background:var(--surface-tint-cyan-strong);border-radius:var(--radius-xs);color:var(--cyan);text-transform:uppercase;padding:.1rem .4rem}.codeblock-source{color:var(--cyan);align-items:center;min-height:1.75rem;margin-left:auto;text-decoration:none;display:inline-flex}.codeblock-source:hover,.codeblock-source:focus-visible{text-decoration:underline}.codeblock-body{position:relative}.codeblock-copy{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-xs);color:var(--muted);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-3xs);align-items:center;gap:.3rem;padding:.25rem .45rem;display:inline-flex;position:absolute;top:.6rem;right:.6rem}.codeblock-copy:hover,.codeblock-copy:focus-visible{border-color:var(--line-strong);color:var(--text)}.codeblock-copy[data-copied=true]{border-color:var(--border-lime-soft);color:var(--lime)}.codeblock-copy[hidden]{display:none}.codeblock-pre{color:var(--text);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-xs);margin:0;padding:1rem 1.1rem;line-height:1.7;overflow-x:auto}.codeblock-pre .tok-comment{color:var(--muted);font-style:italic}.codeblock-pre .tok-key{color:var(--cyan)}.codeblock-pre .tok-string{color:var(--lime)}.codeblock-pre .tok-number{color:var(--orange)}.evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.evidence-figure{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.evidence-figure svg{width:100%;height:auto;display:block}.evidence-figcaption{color:var(--muted);font-size:var(--fs-xs);padding:.85rem 1rem}.delivery-chain{gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.delivery-chain li{border-left:2px solid var(--cyan);grid-template-columns:1.4rem 1fr;align-items:baseline;gap:.5rem;padding:.45rem .75rem;display:grid}.delivery-chain li strong{color:var(--text)}.delivery-chain li>span:last-child{max-width:var(--measure-wide)}.delivery-chain-step{color:var(--lime);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-2xs)}.diagram-base{fill:var(--surface-sunken)}.diagram-node{fill:var(--surface-raised);stroke:var(--line-strong);stroke-width:1.5px}.diagram-node-label{fill:var(--text);font-family:DM Mono,DM Mono Fallback,monospace;font-size:11px}.diagram-edge{fill:none;stroke:var(--cyan);stroke-width:1.5px}.diagram-accent{fill:none;stroke:var(--lime);stroke-dasharray:4 3;stroke-width:1.5px}@media (width<=820px){.evidence-grid{grid-template-columns:1fr}}:root[data-theme=light] .codeblock-lang,:root[data-theme=light] .codeblock-source{color:#0b5566}.github-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.github-stats li{border:1px solid var(--line);border-radius:var(--radius-md);padding:1rem 1.2rem}.github-stats strong{color:var(--text);font-size:var(--fs-xl);font-variant-numeric:tabular-nums;letter-spacing:-.04em;display:block}.github-stats span{color:var(--muted);font-size:var(--fs-xs)}@media (width<=680px){.github-stats{grid-template-columns:1fr}}.hero-role{color:var(--muted);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-xs);margin:0 0 var(--space-sm);align-items:center;gap:.5rem;display:inline-flex}.hero-role strong{color:var(--text)}.hero-role .icon{color:var(--cyan)}.methodology-strip{margin-top:var(--space-lg)}.methodology-label{color:var(--muted);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-2xs);letter-spacing:.12em;margin:0 0 var(--space-sm);text-transform:uppercase}.methodology-chips{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.methodology-chips li{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--text);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-2xs);padding:.35rem .7rem}.writing-band{margin-top:var(--space-2xl)}.writing-topics{margin:0 0 var(--space-lg);flex-wrap:wrap;gap:.5rem;padding:0;list-style:none;display:flex}.writing-topics li{border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--muted);font-size:var(--fs-2xs);padding:.3rem .65rem}.writing-grid{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.writing-card-head{justify-content:space-between;align-items:baseline;gap:.65rem;display:flex}.writing-card-head h4{margin:0}.writing-metric{color:var(--cyan);margin:var(--space-xs) 0 0;font-family:DM Mono,DM Mono Fallback,monospace;display:block}.value-grid{gap:var(--space-md);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.value-card{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);height:100%;transition:border-color var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);flex-direction:column;gap:.3rem;padding:1.45rem;text-decoration:none;display:flex}.value-card:hover,.value-card:focus-visible{border-color:var(--lime);transform:translateY(-2px)}.value-metric{color:var(--lime);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-2xl);display:block}.value-label{color:var(--text);font-weight:700;display:block}.value-detail{color:var(--muted);font-size:var(--fs-sm);display:block}@media (width<=900px){.value-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.writing-grid{grid-template-columns:1fr}}@media (width<=520px){.value-grid{grid-template-columns:1fr}}.journey-rail--floating{display:none}@media (width>=1180px){.journey-rail--floating{z-index:20;place-items:center end;gap:.85rem;display:grid;position:fixed;top:50%;right:1.1rem;transform:translateY(-50%)}.journey-rail--floating a{color:var(--muted);border:0;justify-content:flex-end;align-items:center;gap:.5rem;min-height:0;padding:0;text-decoration:none;display:inline-flex}.journey-rail--floating .journey-dot{background:var(--line-strong);border-radius:var(--radius-pill);height:10px;transition:background var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);width:10px}.journey-rail--floating a:hover .journey-dot,.journey-rail--floating a:focus-visible .journey-dot,.journey-rail--floating a.is-active .journey-dot{background:var(--lime);transform:scale(1.35)}.journey-rail--floating .journey-text{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-xs);box-shadow:var(--tooltip-shadow);color:var(--text);font-family:DM Mono,DM Mono Fallback,monospace;font-size:var(--fs-3xs);opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);white-space:nowrap;padding:.2rem .5rem;transform:translate(.25rem)}.journey-rail--floating a:hover .journey-text,.journey-rail--floating a:focus-visible .journey-text,.journey-rail--floating a.is-active .journey-text{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.journey-rail--floating .journey-dot,.journey-rail--floating .journey-text{transition:none}}}@font-face{font-display:swap;font-family:Manrope;font-style:normal;font-weight:400 800;src:url(/fonts/manrope-latin.woff2)format("woff2")}@font-face{ascent-override:98.9%;descent-override:29.7%;font-family:Manrope Fallback;line-gap-override:0%;size-adjust:108.75%;src:local(Arial)}@font-face{font-display:optional;font-family:DM Mono;font-style:normal;font-weight:400;src:url(/fonts/dm-mono-400-latin.woff2)format("woff2")}@font-face{font-display:optional;font-family:DM Mono;font-style:normal;font-weight:500;src:url(/fonts/dm-mono-500-latin.woff2)format("woff2")}@font-face{ascent-override:90%;descent-override:22%;font-family:DM Mono Fallback;line-gap-override:0%;size-adjust:102%;src:local(Courier New)}
