@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=IBM+Plex+Serif:wght@500;600&family=Manrope:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;700&display=swap";:root{color-scheme:light;--bg:#f4f7fa;--bg-start:#fbfdff;--bg-end:#edf2f6;--bg-strong:#e3ebf2;--surface:#fff;--surface-strong:#fff;--line:#172b3a29;--line-strong:#172b3a52;--text:#172b3a;--muted:#5a6d7e;--mint:#f6f9fc;--clay:#f2f6fa;--sand:#fff;--ink:#102235;--accent:#246da8;--accent-strong:#174c78;--blue-soft:#eef5fb;--chip-bg:#246da814;--header-bg:#fbfdffe6;--grid-line:#172b3a0e;--on-dark:#edf6ff;--resume-preview-bg:#e7edf3;--shadow:0 1px 0 #172b3a14;--radius-lg:6px;--radius-md:4px;--radius-sm:3px;--container:min(1120px, calc(100vw - 2rem))}:root[data-theme=dark]{color-scheme:dark;--bg:#07111d;--bg-start:#0d1b2a;--bg-end:#050c14;--bg-strong:#102235;--surface:#0f1b2a;--surface-strong:#111f30;--line:#a8d8ff29;--line-strong:#a8d8ff57;--text:#e7f2fb;--muted:#9cb3c8;--mint:#0d1b2a;--clay:#102235;--sand:#0f1b2a;--ink:#050c14;--accent:#7ebcf2;--accent-strong:#a8d8ff;--blue-soft:#10263a;--chip-bg:#7ebcf21f;--header-bg:#07111de6;--grid-line:#a8d8ff0e;--on-dark:#edf6ff;--resume-preview-bg:#0f1b2a;--shadow:0 1px 0 #a8d8ff14}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--text);background:linear-gradient(180deg, var(--bg-start) 0%, var(--bg) 34%, var(--bg-end) 100%);margin:0;font-family:Manrope,sans-serif;line-height:1.6}body:before{content:"";pointer-events:none;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:32px 32px;position:fixed;inset:0;mask-image:linear-gradient(#00000057,#0000 82%)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}code{border-radius:var(--radius-sm);background:var(--chip-bg);padding:.1rem .4rem;font-size:.94em}.site-shell{position:relative}.container,.page-shell{width:var(--container);margin:0 auto}.page-shell{padding:1.75rem 0 4rem}.site-header{z-index:20;backdrop-filter:blur(18px);background:var(--header-bg);border-bottom:1px solid var(--line);position:sticky;top:0}.nav-row,.footer-row,.button-row,.resume-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.nav-row{min-height:4.5rem}.wordmark{align-items:center;gap:.9rem;display:inline-flex}.wordmark-mark,.hero-badge{aspect-ratio:1;border-radius:var(--radius-md);background:var(--accent-strong);color:#f7fbff;box-shadow:none;place-items:center;font-family:Space Grotesk,sans-serif;display:grid}.wordmark-mark{width:3rem;font-size:1rem}.wordmark-copy{gap:.1rem;display:grid}.wordmark-copy strong,.site-nav a,.button,.chip-link{font-weight:700}.wordmark-copy small,.project-meta,.eyebrow,.site-footer,.text-link{color:var(--muted)}.site-nav{flex-wrap:wrap;gap:.5rem;display:flex}.theme-toggle{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);min-height:3rem;color:var(--text);cursor:pointer;font:inherit;box-shadow:var(--shadow);align-items:center;gap:.65rem;padding:.45rem .55rem;font-weight:800;display:inline-flex}.theme-toggle-track{border:1px solid var(--line-strong);background:var(--bg-strong);border-radius:999px;width:2.55rem;height:1.35rem;position:relative}.theme-toggle-thumb{aspect-ratio:1;background:var(--accent);border-radius:999px;width:.95rem;transition:transform .18s,background-color .18s;position:absolute;top:50%;left:.16rem;transform:translateY(-50%)}:root[data-theme=dark] .theme-toggle-thumb{background:var(--accent-strong);transform:translate(1.18rem,-50%)}.theme-toggle-copy{text-align:left;gap:.05rem;line-height:1;display:grid}.theme-toggle-kicker{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.62rem;font-weight:800}.theme-toggle-copy strong{font-size:.86rem}.nav-link{border-radius:var(--radius-sm);padding:.72rem 1rem;transition:background-color .16s,color .16s,transform .16s}.nav-link:hover,.nav-link.active{background:var(--chip-bg);color:var(--accent-strong);transform:translateY(-1px)}.hero,.home-hero,.about-hero,.resume-hero,.about-layout,.two-column,.section-heading{gap:1.5rem;display:grid}.hero{grid-template-columns:1.4fr .9fr;align-items:center;padding:2rem 0 1rem}.home-hero,.about-hero,.resume-hero{align-items:stretch;padding:2rem 0 1rem}.home-hero{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr)}.about-hero{grid-template-columns:minmax(0,1fr) minmax(18rem,.46fr)}.resume-hero{grid-template-columns:minmax(0,1fr) minmax(16rem,.38fr);align-items:end}.hero-copy,.home-hero-copy,.hero-panel,.home-hero-visual,.profile-card,.resume-summary-panel,.bento-box,.surface-card,.project-card,.project-detail-hero,.resume-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.hero-copy,.home-hero-copy,.hero-panel,.home-hero-visual,.profile-card,.resume-summary-panel,.bento-box,.surface-card,.project-detail-hero,.resume-card{padding:clamp(1.25rem,2vw,1.65rem)}.hero-copy,.home-hero-copy{background:var(--surface-strong)}.home-hero-copy{align-content:center;gap:1rem;min-height:28rem;display:grid}.hero-panel{text-align:center;background:var(--ink);color:var(--on-dark);align-content:center;justify-items:center;gap:1rem;display:grid}.hero-panel .hero-panel-label,.hero-panel .eyebrow{color:#edf6ffb8}.hero-badge{background:#ffffff1f;border:1px solid #fff3;width:clamp(4rem,12vw,5.2rem);font-size:1.5rem}.profile-image{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-lg);border:1px solid #ffffff2e;width:min(100%,18rem)}.home-hero-visual,.profile-card,.resume-summary-panel{gap:1rem;display:grid}.home-hero-visual{background:var(--ink);color:var(--on-dark);grid-template-rows:minmax(0,1fr) auto}.hero-portrait{object-fit:cover;object-position:center top;border-radius:var(--radius-md);border:1px solid #ffffff2e;width:100%;height:100%;min-height:18rem}.hero-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.hero-stat-grid div,.resume-summary-panel,.empty-feature{border:1px solid var(--line);border-radius:var(--radius-md)}.hero-stat-grid div{background:#ffffff14;border-color:#ffffff29;gap:.15rem;padding:.9rem;display:grid}.hero-stat-grid span,.home-strip span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:800}.home-hero-visual .hero-stat-grid span{color:#edf6ffad}.hero-stat-grid strong{font-family:Space Grotesk,sans-serif;font-size:1.2rem}h1,h2,h3{letter-spacing:0;margin:0;font-family:Space Grotesk,sans-serif;font-weight:700;line-height:1.05}h1{max-width:11ch;font-size:clamp(2.9rem,7vw,5.2rem)}h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}h3{font-size:clamp(1.2rem,2.6vw,1.55rem)}p{margin:0}.lede{max-width:60ch;color:var(--muted);font-size:1.02rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;margin-bottom:.65rem;font-size:.82rem}.button-row,.button-cluster,.tag-list{flex-wrap:wrap;display:flex}.button-row,.resume-actions,.button-cluster{gap:.85rem}.button-row{align-items:center;margin-top:1.4rem}.button,.chip-link{border-radius:var(--radius-sm);border:1px solid #0000;justify-content:center;align-items:center;min-height:2.75rem;padding:.68rem .95rem;transition:transform .16s,background-color .16s,border-color .16s;display:inline-flex}.button{background:var(--accent);color:#f7fbff}.button:hover,.chip-link:hover{transform:translateY(-1px)}.button-ghost,.chip-link,.text-link{color:var(--accent-strong);background:0 0}.button-ghost,.chip-link{border-color:var(--line-strong)}.text-link{font-weight:700}.bento-grid,.project-grid{gap:1.25rem;display:grid}.bento-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:1rem 0 2rem}.home-bento{margin-top:1.25rem}.bento-box{gap:.75rem;min-height:100%;display:grid}.bento-box.sand{background:var(--sand)}.bento-box.mint{background:var(--mint)}.bento-box.clay{background:var(--clay)}.bento-box.ink{background:var(--ink);color:var(--on-dark)}.bento-box.blue{background:var(--blue-soft)}.stack-list,.tag-list{margin:0;padding:0;list-style:none}.stack-list{gap:.85rem;display:grid}.stack-list li{padding-left:1rem;position:relative}.stack-list li:before{content:"";background:var(--accent);border-radius:999px;width:.38rem;height:.38rem;position:absolute;top:.72rem;left:0}.section-heading{grid-template-columns:1fr auto;align-items:end;margin:1.8rem 0 .9rem}.section-heading-spaced{margin-top:3rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{gap:1rem;padding:1.2rem;transition:transform .18s,border-color .18s,background-color .18s;display:grid}.project-card:hover{border-color:var(--line-strong);background:var(--surface-strong);transform:translateY(-2px)}.project-card-top{gap:.45rem;display:grid}.project-meta{flex-wrap:wrap;gap:.8rem;font-size:.9rem;display:flex}.project-summary{color:var(--muted)}.tag-list{gap:.55rem}.tag-list li{border-radius:var(--radius-sm);background:var(--chip-bg);padding:.42rem .72rem;font-size:.9rem}.page-intro,.project-detail{gap:1rem;display:grid}.page-intro{padding:2rem 0 1rem}.page-intro.narrow{max-width:52rem}.home-strip{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);flex-wrap:wrap;gap:.75rem;margin:1rem 0 0;padding:.9rem;display:flex}.home-strip span{border-radius:var(--radius-sm);background:var(--chip-bg);padding:.5rem .7rem}.two-column{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem}.about-layout{grid-template-columns:minmax(0,1.3fr) minmax(16rem,.7fr);margin-top:1rem}.about-story-main{grid-row:span 2}.profile-card{background:var(--surface);align-content:space-between}.profile-card-image{aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:var(--radius-md);border:1px solid var(--line);width:100%}.profile-card-copy{gap:.7rem;display:grid}.surface-card,.resume-card,.project-detail-hero{background:var(--surface)}.empty-feature{grid-template-columns:minmax(0,.72fr) minmax(0,1fr);align-items:center;gap:1rem;display:grid}.compact-card{gap:.75rem;display:grid}.compact-card p,.about-story p{color:var(--muted)}.prose-block{gap:1rem;display:grid}.prose-block p+p{margin-top:1rem}.project-detail{padding-top:2.5rem}.project-detail-hero{gap:1rem;display:grid}.resume-card{gap:1.5rem;display:grid}.resume-summary-panel{background:var(--ink);min-height:11rem;color:var(--on-dark);border-color:var(--ink);align-content:end}.resume-summary-panel .resume-version-kicker,.resume-summary-panel span:last-child{color:#edf6ffb8}.resume-summary-panel strong{font-family:Space Grotesk,sans-serif;font-size:1.35rem;line-height:1.1}.resume-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;display:grid}.resume-version-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);gap:.2rem;padding:.9rem;display:grid}.resume-version-kicker{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:800}.resume-preview-shell{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--resume-preview-bg);justify-content:center;padding:clamp(1rem,3vw,2rem);display:flex;overflow:auto}.resume-frame{background:var(--surface-strong);border:0;border-radius:2px;flex:none;width:min(100%,8.5in);max-width:8.5in;height:11in;min-height:11in;margin:0 auto;box-shadow:0 0 0 1px #172b3a1f,0 18px 40px #172b3a2e}.style-nav-lab,.style-lab-grid,.theme-pair-grid{gap:1rem;display:grid}.style-nav-lab{grid-template-columns:repeat(3,minmax(0,1fr));margin:1.5rem 0}.style-nav{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-strong);justify-content:space-between;align-items:center;gap:1rem;min-height:4.5rem;padding:1rem;display:flex}.style-nav nav{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.style-nav span{padding:.42rem .65rem;font-size:.85rem}.style-nav-block{color:#f6fbff;background:#0d2b4c}.style-nav-block span{background:#ffffff1a;border-radius:6px}.style-nav-block .active{color:#0d2b4c;background:#ffcb05}.style-nav-line{box-shadow:none;background:0 0;border-inline:0;border-radius:0}.style-nav-line span{border-bottom:2px solid #1f5f9938}.style-lab-grid,.theme-pair-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:1rem 0 2rem}.theme-pair{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);gap:1rem;padding:1rem;display:grid}.theme-pair-swatches{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.theme-pair-card{border-radius:var(--radius-md);gap:.5rem;min-height:10rem;padding:1rem;display:grid}.theme-pair-card span{letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:800}.theme-pair.blueprint .light{color:#102a43;background:#f8fbff}.theme-pair.blueprint .dark{color:#dcebf8;background:#102235}.theme-pair.maize .light{color:#00274c;background:#fff;border:2px solid #ffcb05}.theme-pair.maize .dark{color:#ffcb05;background:#00274c}.theme-pair.lab .light{color:#263442;background:#fbfaf6;font-family:IBM Plex Serif,serif}.theme-pair.lab .dark{color:#f4efe4;background:#151b22;font-family:IBM Plex Serif,serif}.theme-pair.systems .light{color:#172b3a;background:#fff;border:1px solid #172b3a33;border-radius:2px}.theme-pair.systems .dark{color:#a8d8ff;background:#07111d;border:1px solid #a8d8ff47;border-radius:2px}.style-sample{border:1px solid var(--line);border-radius:var(--radius-lg);min-height:23rem;box-shadow:var(--shadow);gap:1rem;padding:1.4rem;display:grid}.style-sample-top,.style-sample-actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.style-sample-top p,.style-sample-top span{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}.style-sample h2{max-width:13ch}.style-sample ul{flex-wrap:wrap;align-self:end;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.style-sample li,.style-sample-actions span{border:1px solid;border-radius:7px;padding:.42rem .65rem;font-size:.85rem}.style-sample.blueprint{color:light-dark(#102a43,#dcebf8);background:light-dark(#f8fbff,#102235)}.style-sample.blueprint h2{font-family:Space Grotesk,sans-serif}.style-sample.maize{color:#f7fbff;background:#00274c;border-radius:8px}.style-sample.maize .style-sample-actions span:first-child,.style-sample.maize li{color:#ffcb05;border-color:#ffcb05}.style-sample.lab{color:light-dark(#263442,#f4efe4);background:light-dark(#fbfaf6,#151b22);border-radius:18px;font-family:IBM Plex Serif,serif}.style-sample.workshop{color:#edf3f8;background:#1d2630;border-radius:4px}.style-sample.workshop h2{text-transform:uppercase;font-family:Space Grotesk,sans-serif}.style-sample.systems{background:var(--surface);color:var(--text);box-shadow:none;border-radius:2px}.style-sample.systems .style-sample-top,.style-sample.systems .style-sample-actions{border-block:1px solid var(--line);padding-block:.65rem}.style-sample.personal{background:linear-gradient(var(--personal-overlay-start), var(--personal-overlay-end)), url(/images/Headshot-W26.png) center / cover;color:var(--personal-text);border-radius:24px}:root{--personal-overlay-start:#ffffffd1;--personal-overlay-end:#ffffffe6;--personal-text:#13283f}:root[data-theme=dark]{--personal-overlay-start:#0a1420c7;--personal-overlay-end:#0a1420e6;--personal-text:#edf6ff}.site-footer{padding:0 0 2rem}.footer-row{border-top:1px solid var(--line);padding-top:1.5rem;font-size:.95rem}.hero-copy,.home-hero-copy,.hero-panel,.home-hero-visual,.profile-card,.resume-summary-panel,.bento-box,.project-card,.surface-card,.project-detail-hero,.resume-card{animation:.54s both rise-in}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.hero,.home-hero,.about-hero,.resume-hero,.about-layout,.two-column,.section-heading,.bento-grid,.project-grid,.style-nav-lab,.style-lab-grid,.theme-pair-grid,.theme-pair-swatches,.resume-toolbar{grid-template-columns:1fr}.home-hero-copy{min-height:auto}.empty-feature{grid-template-columns:1fr}.nav-row,.footer-row,.resume-actions{flex-direction:column;align-items:flex-start}.site-nav{width:100%}.theme-toggle{justify-content:center;width:100%}.resume-frame{height:95vh;min-height:95vh}}@media (width<=640px){.page-shell{padding-top:1.2rem}.hero{padding-top:1.5rem}.hero-copy,.home-hero-copy,.hero-panel,.home-hero-visual,.profile-card,.resume-summary-panel,.bento-box,.surface-card,.project-card,.project-detail-hero,.resume-card{border-radius:var(--radius-lg);padding:1.3rem}h1{font-size:clamp(2.4rem,13vw,3.6rem)}.button,.chip-link,.nav-link,.button-row{width:100%}}
