.project-card[data-astro-cid-y2vllrex]{border-radius:var(--radius-project);background:var(--color-card);min-width:0;overflow:hidden}.project-art[data-astro-cid-y2vllrex]{aspect-ratio:3/2}.menu-art[data-astro-cid-y2vllrex],.terminal-art[data-astro-cid-y2vllrex]{aspect-ratio:auto}.project-menu[data-astro-cid-y2vllrex]{width:100%;height:auto;display:block}.project-art[data-astro-cid-y2vllrex] figcaption[data-astro-cid-y2vllrex]{padding:calc(var(--spacing) * 3) calc(var(--spacing) * 5);font-size:var(--text-xs);color:var(--color-muted);background:var(--color-paper)}.project-card-copy[data-astro-cid-y2vllrex]{padding:calc(var(--spacing) * 6)}h3[data-astro-cid-y2vllrex]{font-size:var(--text-project);letter-spacing:-.03em;font-weight:700;line-height:1.2}h3[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 4);min-height:calc(var(--spacing) * 11);text-decoration:none;display:flex}h3[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]:hover{color:var(--color-brand)}h3[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex] svg[data-astro-cid-y2vllrex]{flex-shrink:0}.project-type[data-astro-cid-y2vllrex]{margin-top:calc(var(--spacing) * 2);font-size:var(--text-xs);color:var(--color-muted)}.project-card-copy[data-astro-cid-y2vllrex]>p[data-astro-cid-y2vllrex]:not(.project-type){margin-top:calc(var(--spacing) * 4);max-width:52ch;font-size:var(--text-base)}.project-card-copy[data-astro-cid-y2vllrex] .project-detail[data-astro-cid-y2vllrex]{padding-top:calc(var(--spacing) * 4);border-top:1px solid var(--color-line);color:var(--color-muted);font-size:var(--text-sm)}.project-card-dark[data-astro-cid-y2vllrex]{background:var(--color-terminal);color:var(--color-terminal-text)}.project-card-dark[data-astro-cid-y2vllrex] .project-type[data-astro-cid-y2vllrex],.project-card-dark[data-astro-cid-y2vllrex] .project-detail[data-astro-cid-y2vllrex]{color:var(--color-terminal-muted)}.project-card-dark[data-astro-cid-y2vllrex] .project-detail[data-astro-cid-y2vllrex]{border-color:var(--color-code-line)}.project-card-dark[data-astro-cid-y2vllrex] a[data-astro-cid-y2vllrex]:hover{color:var(--color-glow)}.project-card-dark[data-astro-cid-y2vllrex] [data-astro-cid-y2vllrex]:focus-visible{outline-color:var(--color-glow)}.terminal-art[data-astro-cid-y2vllrex]{background:var(--color-code-bg);flex-direction:column;display:flex}.terminal-window[data-astro-cid-y2vllrex]{aspect-ratio:3/2;flex-direction:column;display:flex}.terminal-toolbar[data-astro-cid-y2vllrex]{align-items:center;gap:calc(var(--spacing) * 2);padding:calc(var(--spacing) * 5);border-bottom:1px solid var(--color-code-line);display:flex}.terminal-toolbar[data-astro-cid-y2vllrex] i[data-astro-cid-y2vllrex]{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5);border-radius:var(--radius-pill);background:var(--color-window-red)}.terminal-toolbar[data-astro-cid-y2vllrex] i[data-astro-cid-y2vllrex]:nth-child(2){background:var(--color-window-yellow)}.terminal-toolbar[data-astro-cid-y2vllrex] i[data-astro-cid-y2vllrex]:nth-child(3){background:var(--color-window-green)}.terminal-toolbar[data-astro-cid-y2vllrex] span[data-astro-cid-y2vllrex]{margin-left:calc(var(--spacing) * 3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-terminal-muted)}.terminal-content[data-astro-cid-y2vllrex]{justify-content:center;gap:calc(var(--spacing) * 4);padding:calc(var(--spacing) * 7);font-size:var(--text-sm);flex-direction:column;flex:1;display:flex}code[data-astro-cid-y2vllrex]{font-family:var(--font-mono);font-size:var(--text-sm)}.terminal-prompt[data-astro-cid-y2vllrex]{color:var(--color-glow)}.terminal-blocked[data-astro-cid-y2vllrex]{color:var(--color-terminal-stop);font-size:var(--text-2xl);font-weight:600}.terminal-content[data-astro-cid-y2vllrex] p[data-astro-cid-y2vllrex]:not(.terminal-blocked){color:var(--color-terminal-muted)}.terminal-rule[data-astro-cid-y2vllrex]{margin-top:calc(var(--spacing) * 3);color:var(--color-terminal-muted);font-size:var(--text-xs)}.terminal-art[data-astro-cid-y2vllrex] figcaption[data-astro-cid-y2vllrex]{color:var(--color-terminal-muted);background:var(--color-code-bg)}@media (width>=40rem) and (width<=55rem){.terminal-content[data-astro-cid-y2vllrex]{gap:calc(var(--spacing) * 2);padding:calc(var(--spacing) * 4)}.terminal-content[data-astro-cid-y2vllrex] code[data-astro-cid-y2vllrex]{font-size:var(--text-xs)}}.portfolio-home .home-shell{width:100%;max-width:var(--container-portfolio);padding-inline:calc(var(--spacing) * 5);margin-inline:auto}.portfolio-home h1,.portfolio-home h2,.portfolio-home h3{letter-spacing:-.035em}.portfolio-home h2{font-size:var(--text-section);font-weight:800;line-height:1.1}.home-hero{gap:calc(var(--spacing) * 9);padding-block:calc(var(--spacing) * 10);display:grid}.hero-intro{align-self:center}.hero-intro h1{font-size:var(--text-hero);hyphens:none;font-weight:800;line-height:1.02}.hero-intro h1 span{color:var(--color-brand);display:block}.hero-lead{max-width:34ch;margin-top:calc(var(--spacing) * 6);font-size:var(--text-xl);line-height:1.5}.hero-actions{align-items:center;gap:calc(var(--spacing) * 4);margin-top:calc(var(--spacing) * 7);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.home-button{justify-content:center;align-items:center;gap:calc(var(--spacing) * 3);min-height:calc(var(--spacing) * 12);padding:calc(var(--spacing) * 3) calc(var(--spacing) * 5);background:var(--color-brand);color:var(--color-on-brand);border-radius:var(--radius-action);font-weight:600;text-decoration:none;display:inline-flex}.home-button:hover{background:var(--color-brand-deep)}.home-text-link{align-items:center;gap:calc(var(--spacing) * 2);min-height:calc(var(--spacing) * 11);text-underline-offset:.3em;text-decoration:underline;display:inline-flex}.home-text-link svg{flex-shrink:0}.home-text-link:hover{color:var(--color-brand)}.hero-role{margin-top:calc(var(--spacing) * 6);font-size:var(--text-sm);font-weight:500}.hero-stack{margin-top:calc(var(--spacing) * 2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted)}.hero-project{min-width:0}.hero-project-visual{border-radius:var(--radius-project);background:var(--color-project-sage);overflow:hidden}.figure-label{padding:calc(var(--spacing) * 4) calc(var(--spacing) * 5) 0;color:var(--color-brand-deep);font-size:var(--text-xs);font-weight:500}.hero-project-image{width:100%;height:auto;display:block}.featured-caption{justify-content:space-between;align-items:start;column-gap:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 4);flex-wrap:wrap;display:flex}.portfolio-home .featured-caption h2{font-size:var(--text-lg);letter-spacing:-.015em;font-weight:600;line-height:1.4}.featured-caption h2 a{text-decoration:none}.featured-caption h2 a:hover{color:var(--color-brand)}.featured-scope{margin-top:calc(var(--spacing) * 1);font-size:var(--text-xs);color:var(--color-muted)}.featured-read{font-size:var(--text-sm)}.figure-note{margin-top:calc(var(--spacing) * 2);color:var(--color-muted);font-size:var(--text-xs)}.home-section-heading{border-top:1px solid var(--color-project-rule);padding-top:calc(var(--spacing) * 7);margin-bottom:calc(var(--spacing) * 7)}.home-project-grid{gap:calc(var(--spacing) * 6);display:grid}.home-decision{gap:calc(var(--spacing) * 8);padding-block:calc(var(--spacing) * 10);border-bottom:1px solid var(--color-project-rule);display:grid}.home-decision h3{max-width:28ch;font-size:var(--text-project);font-weight:700;line-height:1.2}.home-decision p{max-width:58ch;margin-top:calc(var(--spacing) * 4);font-size:var(--text-base)}.home-decision .home-text-link{margin-top:calc(var(--spacing) * 3);font-size:var(--text-sm)}.home-decision aside{padding-left:calc(var(--spacing) * 5);border-left:1px solid var(--color-project-rule);align-self:start}.home-decision .decision-date{font-size:var(--text-xs);color:var(--color-muted);margin-top:0}.home-decision li{margin-top:calc(var(--spacing) * 4);font-size:var(--text-sm)}.home-about{padding-block:calc(var(--spacing) * 18)}.home-about-grid{gap:calc(var(--spacing) * 9);display:grid}.home-about figure{width:100%;max-width:calc(var(--spacing) * 85)}.home-portrait{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-project);width:100%;height:auto}.portrait-caption{align-items:center;gap:calc(var(--spacing) * 2);margin-top:calc(var(--spacing) * 3);color:var(--color-muted);font-size:var(--text-sm);display:flex}.portrait-caption span{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2);border-radius:var(--radius-pill);background:var(--color-available)}.about-copy{align-self:center}.about-copy .about-lead{max-width:32ch;margin-top:calc(var(--spacing) * 6);font-size:var(--text-2xl);font-weight:500;line-height:1.4}.about-copy>p{max-width:55ch;margin-top:calc(var(--spacing) * 5)}.about-copy .home-text-link{margin-top:calc(var(--spacing) * 5);font-size:var(--text-base)}.home-career{gap:calc(var(--spacing) * 10);margin-top:calc(var(--spacing) * 16);padding-top:calc(var(--spacing) * 12);border-top:1px solid var(--color-project-rule);display:grid}.home-career .career-heading{font-size:var(--text-section);font-weight:800;line-height:1.1}.career-intro>p{max-width:22ch;margin-top:calc(var(--spacing) * 5);font-size:var(--text-xl);line-height:1.45}.career-intro .career-range{align-items:center;gap:calc(var(--spacing) * 3);max-width:calc(var(--spacing) * 48);margin-top:calc(var(--spacing) * 7);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted);display:flex}.career-range span:nth-child(2){border-top:1px solid var(--color-project-rule);flex:1}.home-career li{grid-template-columns:calc(var(--spacing) * 12) minmax(0, 1fr);gap:calc(var(--spacing) * 5);padding-bottom:calc(var(--spacing) * 6);display:grid;position:relative}.home-career li:not(:last-child):before{content:"";top:calc(var(--spacing) * 12);bottom:0;left:calc(var(--spacing) * 6);border-left:1px solid var(--color-project-rule);position:absolute}.career-marker{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12);border-radius:var(--radius-pill);background:var(--color-project-sage);color:var(--color-brand);place-items:center;display:grid;position:relative}.home-career li:first-child .career-marker{background:var(--color-brand);color:var(--color-on-brand)}.career-station{min-width:0;padding-bottom:calc(var(--spacing) * 6);border-bottom:1px solid var(--color-project-rule)}.home-career li:last-child{padding-bottom:0}.home-career li:last-child .career-station{border-bottom:0;padding-bottom:0}.career-period{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted)}.home-career .career-station-heading{margin-top:calc(var(--spacing) * 2);font-size:var(--text-xl);font-weight:600;line-height:1.4}.home-career .career-station-heading span{margin-top:calc(var(--spacing) * 1);font-size:var(--text-sm);color:var(--color-muted);font-weight:400;display:block}.home-career .career-note{max-width:65ch;margin-top:calc(var(--spacing) * 3);font-size:var(--text-sm);color:var(--color-muted)}.home-workflow{padding-block:calc(var(--spacing) * 14);background:var(--color-brand-deep);color:var(--color-band-text)}.workflow-grid{align-items:center;gap:calc(var(--spacing) * 10);display:grid}.portfolio-home .home-workflow h2{max-width:15ch;color:var(--color-white)}.home-workflow p{max-width:57ch;margin-top:calc(var(--spacing) * 6);font-size:var(--text-base)}.home-workflow .home-text-link{margin-top:calc(var(--spacing) * 6);color:var(--color-white);font-size:var(--text-sm)}.home-workflow .home-text-link:hover{color:var(--color-glow)}.home-workflow :focus-visible{outline-color:var(--color-glow)}.workflow-illustration{border-radius:var(--radius-project);width:100%;height:auto}.workflow-visual figcaption{margin-top:calc(var(--spacing) * 3);font-size:var(--text-xs);color:var(--color-band-dim)}.review-evidence{margin-top:calc(var(--spacing) * 10);border-top:1px solid var(--color-band-dim);display:grid}.review-evidence>div{padding-block:calc(var(--spacing) * 5);border-bottom:1px solid color-mix(in srgb, var(--color-band-dim) 45%, transparent)}.review-evidence dt{align-items:center;gap:calc(var(--spacing) * 3);font-size:var(--text-xs);color:var(--color-band-dim);display:flex}.review-evidence dt span{font-family:var(--font-mono);color:var(--color-glow)}.review-evidence dd{margin-top:calc(var(--spacing) * 2);font-size:var(--text-base);color:var(--color-white)}.review-evidence code{font-size:var(--text-sm)}.home-contact{padding-top:calc(var(--spacing) * 18)}.contact-panel{align-items:start;gap:calc(var(--spacing) * 10);padding-top:calc(var(--spacing) * 10);border-top:1px solid var(--color-project-rule);display:grid}.contact-copy{min-width:0}.contact-copy h2{text-wrap:wrap;max-width:12ch}.contact-lead{max-width:38ch;margin-top:calc(var(--spacing) * 6);font-size:var(--text-xl)}.contact-person{align-items:center;gap:calc(var(--spacing) * 4);margin-top:calc(var(--spacing) * 8);display:flex}.contact-avatar{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14);border-radius:var(--radius-pill);object-fit:cover;object-position:center 35%;flex-shrink:0}.contact-name{font-size:var(--text-base);font-weight:600}.contact-location{margin-top:var(--spacing);font-size:var(--text-xs);color:var(--color-muted)}.contact-availability{align-items:center;gap:calc(var(--spacing) * 2);margin-top:var(--spacing);font-size:var(--text-xs);color:var(--color-muted);display:flex}.contact-availability span{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5);border-radius:var(--radius-pill);background:var(--color-available)}.contact-actions{min-width:0}.contact-primary{align-items:center;gap:calc(var(--spacing) * 4);padding:calc(var(--spacing) * 5);border-radius:var(--radius-action);background:var(--color-brand);color:var(--color-on-brand);text-decoration:none;display:flex}.contact-primary:hover{background:var(--color-brand-deep)}.contact-primary>svg{flex-shrink:0}.contact-primary>svg:last-child{margin-left:auto}.contact-primary-copy{gap:var(--spacing);min-width:0;font-size:var(--text-lg);font-weight:600;display:grid}.contact-primary-copy .contact-mail-address{font-size:var(--text-sm);font-weight:400}.contact-secondary{margin-top:calc(var(--spacing) * 3)}.contact-secondary li{border-bottom:1px solid var(--color-project-rule)}.contact-secondary a{justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 4);min-height:calc(var(--spacing) * 20);padding:calc(var(--spacing) * 4) calc(var(--spacing) * 5);text-decoration:none;display:flex}.contact-secondary a:hover{color:var(--color-brand)}.contact-secondary svg{flex-shrink:0}.contact-channel-copy{flex:1;min-width:0}.contact-channel-name{font-size:var(--text-base);font-weight:500;display:block}.contact-channel-detail{margin-top:var(--spacing);color:var(--color-muted);font-size:var(--text-xs);display:block}@media (width>=40rem){.portfolio-home .home-shell{padding-inline:calc(var(--spacing) * 10)}.home-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-about-grid{grid-template-columns:minmax(0,3fr) minmax(0,4fr)}.review-evidence{gap:calc(var(--spacing) * 8);grid-template-columns:repeat(3,minmax(0,1fr))}.review-evidence>div{border-bottom:0}}@media (width>=64rem){.home-hero{gap:calc(var(--spacing) * 10);padding-top:calc(var(--spacing) * 10);padding-bottom:calc(var(--spacing) * 10);grid-template-columns:minmax(0,5fr) minmax(0,8fr)}.hero-intro{padding-bottom:calc(var(--spacing) * 10)}.home-decision{gap:calc(var(--spacing) * 14);grid-template-columns:minmax(0,7fr) minmax(0,4fr)}.home-about{padding-block:calc(var(--spacing) * 24)}.home-about-grid{gap:calc(var(--spacing) * 20);grid-template-columns:minmax(0,4fr) minmax(0,7fr)}.home-career{gap:calc(var(--spacing) * 20);grid-template-columns:minmax(0,3fr) minmax(0,7fr)}.home-workflow{padding-block:calc(var(--spacing) * 20)}.workflow-grid{gap:calc(var(--spacing) * 12);grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.contact-panel{gap:calc(var(--spacing) * 20);padding-top:calc(var(--spacing) * 14);grid-template-columns:minmax(0,5fr) minmax(0,6fr)}}
