:root{--font-display: "Fraunces", Georgia, "Times New Roman", ui-serif, serif;--font-body: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "Cascadia Code", "JetBrains Mono", Menlo, Consolas, monospace;--step--2: .75rem;--step--1: .875rem;--step-0: 1.0625rem;--step-1: 1.25rem;--step-2: 1.5rem;--step-3: 1.9375rem;--step-4: 2.4375rem;--step-hero: clamp(3rem, 8vw, 5.5rem);--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-s: 1rem;--space-m: 1.5rem;--space-l: 2.25rem;--space-xl: 3.5rem;--space-2xl: 5.5rem;--space-3xl: 7.5rem;--bg: #faf9f6;--surface: #f4f2ea;--surface-2: #ece9df;--text: #1a1815;--text-muted: #575049;--text-subtle: #7c746b;--border: #e6e2d6;--border-strong: #d6d0c1;--accent: #2545d3;--accent-hover: #1c34a6;--accent-soft: #eaeefc;--accent-line: #cdd6f7;--accent-ring: rgba(37, 69, 211, .4);--amber: #b26b12;--amber-soft: #f0e2c8;--dark-bg: #16130f;--dark-surface: #211c16;--dark-text: #f3efe6;--dark-muted: #b3aa9c;--dark-border: rgba(243, 239, 230, .14);--radius-s: 6px;--radius-m: 8px;--radius-l: 10px;--measure: 66ch;--container: 72rem;--container-narrow: 54rem}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--step-0);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;line-height:1.1;color:var(--text);margin:0;letter-spacing:-.015em}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}img,svg{max-width:100%;display:block}ul{margin:0;padding:0}::selection{background:var(--accent);color:#fff}:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px;border-radius:3px}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--space-m)}.section{padding-block:var(--space-2xl)}.section--tight{padding-block:var(--space-xl)}.section+.section{border-top:1px solid var(--border)}.section__head{margin-bottom:var(--space-l)}.section__eyebrow{display:flex;align-items:center;gap:var(--space-s);padding-bottom:var(--space-s);margin-bottom:var(--space-m);border-bottom:1px solid var(--border-strong)}.section__index{font-family:var(--font-mono);font-size:var(--step--1);font-weight:500;color:var(--amber);font-variant-numeric:tabular-nums;letter-spacing:.02em}.section__kicker{font-family:var(--font-body);font-size:var(--step--2);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--text-subtle)}.section__kicker:before{content:"— ";color:var(--border-strong)}.eyebrow{font-family:var(--font-body);font-size:var(--step--1);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 var(--space-2xs)}.section__title{font-size:var(--step-4);font-weight:600;letter-spacing:-.02em}.section__lead{color:var(--text-muted);max-width:var(--measure);margin-top:var(--space-xs);font-size:var(--step-1);line-height:1.5}.js-reveal .reveal{opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .45s ease;will-change:opacity,transform}.js-reveal .reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.js-reveal .reveal{opacity:1;transform:none;transition:none}}.skip-link{position:absolute;left:var(--space-s);top:-100px;z-index:100;background:var(--accent);color:#fff;padding:.6rem 1rem;border-radius:var(--radius-s);font-weight:600;transition:top .15s ease}.skip-link:focus{top:var(--space-s);color:#fff;text-decoration:none}.site-header{position:sticky;top:0;z-index:50;background:#faf9f6b8;backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s ease,background .2s ease}.site-header.is-scrolled{background:#faf9f6db;border-bottom-color:var(--border)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-m);min-height:4rem}.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:600;font-size:var(--step-1);color:var(--text);letter-spacing:-.01em}.brand:hover{color:var(--text)}.brand__mark{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:var(--radius-s);background:var(--accent);color:#fff;font-size:.8rem;font-family:var(--font-body);font-weight:700;letter-spacing:.02em}.nav{display:flex;align-items:center;gap:var(--space-m)}.nav a{color:var(--text-muted);font-size:var(--step--1);font-weight:500;letter-spacing:.01em}.nav a:hover{color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-body);font-size:var(--step-0);font-weight:500;line-height:1;padding:.8rem 1.35rem;border-radius:var(--radius-s);border:1px solid transparent;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}.btn:hover{text-decoration:none}.btn--primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px #2545d340}.btn--primary:hover{background:var(--accent-hover);color:#fff;transform:translateY(-1px);box-shadow:0 6px 18px #2545d338}.btn--ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.icon-links{display:flex;align-items:center;gap:var(--space-2xs)}.icon-link{display:inline-grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:var(--radius-s);border:1px solid var(--border-strong);background:transparent;color:var(--text-muted);transition:color .15s ease,border-color .15s ease,background .15s ease}.icon-link:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.icon-link svg{width:1.15rem;height:1.15rem}.hero{position:relative;overflow:hidden;padding-block:clamp(3.5rem,2rem + 7vw,7rem) var(--space-2xl)}.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(26,24,21,.06) 1px,transparent 1.4px);background-size:24px 24px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 78%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 78%);pointer-events:none;z-index:0}.hero:after{content:"";position:absolute;top:-8%;left:8%;width:min(560px,80vw);height:min(560px,80vw);background:radial-gradient(circle at center,rgba(37,69,211,.16),rgba(37,69,211,.05) 42%,transparent 68%);pointer-events:none;z-index:0}.hero .container{position:relative;z-index:1}.hero__available{display:inline-flex;align-items:center;gap:.55rem;font-size:var(--step--1);font-weight:500;color:var(--text-muted);background:#faf9f6b3;border:1px solid var(--border-strong);padding:.4rem .9rem;border-radius:999px;margin-bottom:var(--space-l)}.hero__available .dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.hero__name{font-size:var(--step-hero);font-weight:600;letter-spacing:-.03em;line-height:.98;max-width:14ch}.hero__lead{font-size:clamp(1.2rem,1rem + .85vw,1.5rem);line-height:1.45;color:var(--text);max-width:40ch;margin-top:var(--space-l)}.hero__lead .accent{color:var(--accent);font-weight:500}.hero__sub{color:var(--text-muted);max-width:56ch;margin-top:var(--space-s)}.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-s);margin-top:var(--space-l)}.stats{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong)}.stat{padding:var(--space-m) var(--space-m) var(--space-m) 0;border-left:1px solid var(--border);padding-left:var(--space-m)}.stat:first-child{border-left:none;padding-left:0}.stat__num{font-family:var(--font-display);font-optical-sizing:auto;font-size:var(--step-4);font-weight:600;line-height:1;color:var(--accent);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat__label{margin-top:var(--space-xs);font-size:var(--step--1);color:var(--text-muted);line-height:1.4}.stat__tag{display:block;margin-top:var(--space-2xs);font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle)}.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-m)}.work-grid .card:last-child{grid-column:1 / -1}.card{display:flex;flex-direction:column;background:#fffdf9;border:1px solid var(--border);border-radius:var(--radius-l);padding:var(--space-l);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 30px -12px #1a18152e}.card__top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2xs) var(--space-s);margin-bottom:var(--space-s)}.card__title{font-size:var(--step-2);font-weight:600}.card__badge{flex-shrink:0;font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle);background:var(--surface);border:1px solid var(--border);padding:.3rem .6rem;border-radius:999px;white-space:nowrap}.card__problem{color:var(--text-muted);margin-bottom:var(--space-s)}.card__outcome{font-weight:500;color:var(--text);margin-bottom:var(--space-s)}.card__outcome .accent{color:var(--accent);font-weight:600}.card__bullets{list-style:none;display:flex;flex-direction:column;gap:var(--space-2xs);margin-bottom:var(--space-m)}.card__bullets li{position:relative;padding-left:1.3rem;font-size:var(--step--1);color:var(--text-muted);line-height:1.55}.card__bullets li:before{content:"";position:absolute;left:.15rem;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}.chip{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.02em;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-s);padding:.28rem .6rem}.feature{position:relative;overflow:hidden;background:var(--dark-bg);color:var(--dark-text);padding-block:var(--space-2xl);border-top:1px solid var(--dark-border);border-bottom:1px solid var(--dark-border)}.feature:before{content:"";position:absolute;top:-20%;right:-5%;width:min(640px,90vw);height:min(640px,90vw);background:radial-gradient(circle at center,rgba(37,69,211,.32),rgba(37,69,211,.08) 40%,transparent 66%);pointer-events:none;z-index:0}.feature .container{position:relative;z-index:1}.feature__eyebrow{display:flex;align-items:center;gap:var(--space-s);padding-bottom:var(--space-s);margin-bottom:var(--space-l);border-bottom:1px solid var(--dark-border)}.feature__index{font-family:var(--font-mono);font-size:var(--step--1);color:var(--amber);font-variant-numeric:tabular-nums}.feature__kicker{font-family:var(--font-body);font-size:var(--step--2);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--dark-muted)}.feature__badge{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#f4dcb0;background:#b26b1224;border:1px solid rgba(178,107,18,.4);padding:.4rem .85rem;border-radius:999px;margin-bottom:var(--space-m)}.feature__badge .dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px #b26b1240,0 0 12px 2px #e0962db3}.feature__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);align-items:start}.feature__title{font-size:var(--step-hero);font-weight:600;line-height:.98;letter-spacing:-.03em;color:var(--dark-text);margin-bottom:var(--space-m)}.feature__problem{color:var(--dark-muted);font-size:var(--step-1);line-height:1.5;margin-bottom:var(--space-m);max-width:44ch}.feature__outcome{font-size:var(--step-1);font-weight:500;color:var(--dark-text);line-height:1.5;max-width:46ch}.feature__outcome .accent{color:#8ea2f2;font-weight:600}.feature__bullets{list-style:none;display:flex;flex-direction:column;gap:var(--space-s);margin-bottom:var(--space-l)}.feature__bullets li{position:relative;padding-left:1.4rem;color:var(--dark-muted);font-size:var(--step--1);line-height:1.55}.feature__bullets li:before{content:"";position:absolute;left:.15rem;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px 1px #2545d3cc}.feature .chips{margin-top:0}.feature .chip{color:var(--dark-muted);background:var(--dark-surface);border-color:var(--dark-border)}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-m)}.mini{display:flex;flex-direction:column;background:transparent;border:1px solid var(--border);border-radius:var(--radius-l);padding:var(--space-l);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.mini:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 30px -12px #1a181529}.mini__title{font-size:var(--step-1);font-weight:600;margin-bottom:var(--space-2xs)}.mini__meta{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:var(--space-s)}.mini__body{font-size:var(--step--1);color:var(--text-muted)}.mini__body .accent{color:var(--accent);font-weight:600}.about__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-xl);align-items:start}.prose{max-width:var(--measure);font-size:var(--step-0)}.prose p+p{margin-top:var(--space-s)}.about__facts{list-style:none;display:flex;flex-direction:column;gap:0}.about__facts li{display:grid;grid-template-columns:auto 1fr;gap:.75rem;padding-block:var(--space-s);border-bottom:1px solid var(--border);font-size:var(--step--1)}.about__facts li:first-child{padding-top:0}.about__facts dt,.about__facts .k{font-family:var(--font-mono);font-weight:500;color:var(--amber);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;padding-top:.25rem}.about__facts .v{color:var(--text)}.site-footer{border-top:1px solid var(--border);background:var(--surface);padding-block:var(--space-xl)}.site-footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-m)}.site-footer__tagline{font-weight:500;color:var(--text);max-width:40ch}.site-footer__note{font-size:var(--step--1);color:var(--text-subtle);margin-top:var(--space-3xs)}.resume-hero{padding-block:var(--space-xl) var(--space-l)}.resume-hero__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-m)}.resume-hero .section__title{font-size:var(--step-4);margin-top:var(--space-2xs)}.resume-hero__contact{color:var(--text-muted);font-size:var(--step--1);margin-top:var(--space-2xs)}.resume-hero__contact a{color:var(--text-muted);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px}.resume-hero__contact a:hover{color:var(--accent);text-decoration-color:var(--accent)}.updated{font-size:var(--step--1);color:var(--text-subtle);margin-top:var(--space-xs)}.resume-section{padding-block:var(--space-l);border-top:1px solid var(--border)}.resume-section__title{font-family:var(--font-mono);font-size:var(--step--1);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);margin-bottom:var(--space-m)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--space-m)}.skills-grid dt{font-family:var(--font-mono);font-weight:500;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:var(--space-2xs)}.skills-grid dd{margin:0;color:var(--text);font-size:var(--step--1)}.timeline{display:flex;flex-direction:column;gap:var(--space-l)}.job__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem}.job__title{font-size:var(--step-1);font-weight:600}.job__title span{color:var(--accent)}.job__dates{font-family:var(--font-mono);font-size:var(--step--1);color:var(--text-subtle);font-variant-numeric:tabular-nums}.job__meta{color:var(--text-muted);font-size:var(--step--1);margin-top:var(--space-3xs)}.job__list{list-style:none;margin-top:var(--space-s);display:flex;flex-direction:column;gap:var(--space-2xs);max-width:var(--measure)}.job__list li{position:relative;padding-left:1.25rem;color:var(--text-muted);font-size:var(--step--1)}.job__list li:before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--accent)}.subrole{margin-top:var(--space-m);padding-top:var(--space-s);padding-left:var(--space-m);border-left:2px solid var(--accent-line)}.subrole:first-of-type{margin-top:var(--space-s)}.edu-item+.edu-item,.cert-list{margin-top:var(--space-s)}.cert-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--space-2xs) var(--space-m)}.cert-list li{position:relative;padding-left:1.25rem;color:var(--text-muted);font-size:var(--step--1)}.cert-list li:before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--accent)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:60rem){.work-grid{grid-template-columns:1fr}.work-grid .card:last-child{grid-column:auto}.mini-grid{grid-template-columns:1fr}.about__grid,.feature__grid{grid-template-columns:1fr;gap:var(--space-l)}}@media(max-width:40rem){:root{--space-2xl: 3.75rem;--space-xl: 2.75rem}.stats{grid-template-columns:repeat(2,1fr);border:none}.stat{padding:var(--space-s) 0;border-left:none;border-top:1px solid var(--border)}.stat:first-child{border-top:none}.stat__num{font-size:var(--step-3)}.nav{gap:var(--space-s)}.brand__label{display:none}.card,.mini{padding:var(--space-m)}.hero__actions .btn{flex:1 1 auto;justify-content:center}.section__title{font-size:var(--step-3)}}
