:root{--charcoal-900:#121417;--charcoal-800:#1a1d21;--charcoal-700:#24282b;--slate-100:#eceff1;--slate-400:#8a9199;--slate-600:#555c63;--paper:#fff;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-700:#10986c;--error:#ef4444;--emerald-a05:#10b9810d;--emerald-a10:#10b9811a;--emerald-a20:#10b98133;--emerald-a45:#10b98173;--slate-a90:#eceff1e6;--slate-400-a90:#8a9199e6;--charcoal-a97:#121417f7;--color-bg:var(--charcoal-900);--color-surface:var(--charcoal-800);--color-surface-hover:var(--charcoal-700);--color-input:var(--charcoal-800);--color-text:var(--slate-100);--color-text-soft:var(--slate-a90);--color-text-muted:var(--slate-400);--color-text-subtle:var(--slate-400-a90);--color-accent:var(--emerald-500);--color-accent-light:var(--emerald-400);--color-accent-muted:var(--emerald-700);--color-on-accent:var(--charcoal-900);--color-rule:var(--emerald-a20);--color-rule-strong:var(--emerald-a45);--color-grid:var(--emerald-a05);--color-focus:var(--emerald-400);--color-up:var(--emerald-500);--font-display:"Instrument Serif",Georgia,"Times New Roman",serif;--font-body:"Inter Tight",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--text-label:0.75rem;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:clamp(1.75rem,3vw,2.25rem);--text-3xl:clamp(2rem,4.5vw,3.25rem);--text-display:clamp(2.5rem,6vw,5.25rem);--tracking-label:0.14em;--leading-tight:1.08;--leading-normal:1.6;--leading-relaxed:1.7;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--container-max:1200px;--container-pad:clamp(20px,4vw,40px);--nav-height:64px;--radius-sm:2px;--radius-md:4px;--transition:0.2s ease}@media print{:root{--color-bg:var(--paper);--color-text:var(--charcoal-900);--color-text-soft:var(--charcoal-900);--color-text-muted:var(--slate-600);--color-text-subtle:var(--slate-600);--color-accent:var(--emerald-700);--color-rule:var(--emerald-a45)}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + var(--space-4))}body{-webkit-font-smoothing:antialiased;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);margin:0}h1,h2,h3,h4{text-wrap:balance;font-family:var(--font-display);font-weight:400;letter-spacing:-.01em;line-height:var(--leading-tight);margin:0}p{margin:0}img{display:block;max-width:100%}a{color:inherit}em{font-style:italic}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.container{margin:0 auto;max-width:var(--container-max);padding-inline:var(--container-pad);width:100%}.rule-top{border-top:1px solid var(--color-rule)}.page-content{padding-block:var(--space-8) var(--space-9)}.page-section{border-top:1px solid var(--color-rule);padding-block:var(--space-7)}.page-section:first-child{border-top:0;padding-top:0}.label{color:var(--color-text-subtle);display:block;font-family:var(--font-mono);font-size:var(--text-label);font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase}.label-accent{color:var(--color-accent)}.page-header{background:linear-gradient(var(--color-rule),var(--color-rule)) no-repeat bottom /calc(100% - var(--container-pad)*2) 1px;padding-block:var(--space-8) var(--space-7)}.page-header .label{margin-bottom:var(--space-4)}.page-header h1{font-size:var(--text-3xl);max-width:20ch}.page-header p{color:var(--color-text-muted);font-size:var(--text-md);margin-top:var(--space-4);max-width:62ch}.section-header{margin-bottom:var(--space-6)}.section-header h2{font-size:var(--text-2xl)}.section-header .label{margin-bottom:var(--space-3)}.primary-button,.secondary-button{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;gap:var(--space-2);justify-content:center;letter-spacing:.06em;min-height:44px;padding:var(--space-3) var(--space-5);text-decoration:none;text-transform:uppercase;transition:background-color var(--transition),color var(--transition),border-color var(--transition)}.primary-button{background-color:var(--color-accent);border:1px solid var(--color-accent);color:var(--color-on-accent)}.primary-button:hover{background-color:var(--color-accent-light);border-color:var(--color-accent-light)}.primary-button:disabled{cursor:not-allowed;opacity:.7}.secondary-button{background-color:initial;border:1px solid var(--color-rule-strong);color:var(--color-text)}.secondary-button:hover{border-color:var(--color-accent)}.button-row{display:flex;flex-wrap:wrap;gap:var(--space-3)}.text-link{align-items:center;border-bottom:1px solid var(--color-rule-strong);color:var(--color-text);display:inline-flex;font-family:var(--font-mono);font-size:var(--text-sm);gap:var(--space-2);letter-spacing:.04em;padding-bottom:2px;text-decoration:none;transition:border-color var(--transition)}.text-link:hover{border-color:var(--color-accent)}.arrow{display:inline-block;transition:transform var(--transition)}a:hover .arrow{transform:translateX(3px)}.chip-list{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0}.chip{border:1px solid var(--color-rule);border-radius:var(--radius-sm);color:var(--color-text-soft);display:inline-block;font-size:var(--text-xs);line-height:1.6;padding:3px var(--space-2)}.chip,.status-badge{font-family:var(--font-mono)}.status-badge{align-items:center;display:inline-flex;font-size:var(--text-label);font-weight:500;gap:var(--space-2);letter-spacing:var(--tracking-label);text-transform:uppercase}.status-badge,.status-light{color:var(--color-text)}.status-light.tone-up{color:var(--color-up)}.status-light.tone-live{color:var(--color-text)}.status-light.tone-muted{color:var(--color-text-muted)}.card{padding-top:var(--space-5)}.card,.cta-section{border-top:1px solid var(--color-rule)}.cta-section{padding-block:var(--space-8)}.cta-section h2{font-size:var(--text-3xl);margin-bottom:var(--space-6);max-width:18ch}.cta-section p{color:var(--color-text-muted);margin-bottom:var(--space-6);max-width:60ch}.cta-buttons{display:flex;flex-wrap:wrap;gap:var(--space-3)}@media (max-width:768px){.page-content{padding-block:var(--space-7) var(--space-8)}.page-header{padding-block:var(--space-7) var(--space-6)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.site-nav{background-color:var(--charcoal-a97);border-bottom:1px solid var(--color-rule);position:sticky;top:0;z-index:100}.site-nav-inner{align-items:center;display:flex;height:var(--nav-height);justify-content:space-between}.site-nav-name{color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-label);text-decoration:none;text-transform:uppercase}.site-nav-menu{align-items:center;display:flex;gap:var(--space-6);list-style:none;margin:0;padding:0}.site-nav-link{color:var(--color-text-muted);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;padding-block:var(--space-2);position:relative;text-decoration:none;transition:color var(--transition)}.site-nav-link:hover,.site-nav-link[aria-current=page]{color:var(--color-text)}.site-nav-link[aria-current=page]:after{background-color:var(--color-accent);bottom:0;content:"";height:1px;left:0;position:absolute;right:0}.site-nav-resume{align-items:center;border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-accent-light);display:inline-flex;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.08em;min-height:36px;padding:var(--space-1) var(--space-4);text-decoration:none;text-transform:uppercase;transition:background-color var(--transition),color var(--transition)}.site-nav-resume:hover{background-color:var(--color-accent);color:var(--color-on-accent)}.site-nav-toggle{background:#0000;border:0;cursor:pointer;display:none;flex-direction:column;gap:6px;height:44px;justify-content:center;margin-right:-10px;padding:10px;width:44px}.site-nav-toggle-bar{background-color:var(--color-text);display:block;height:1px;transition:transform var(--transition)}@media (max-width:720px){.site-nav-toggle{display:flex}.site-nav-toggle[aria-expanded=true] .site-nav-toggle-bar:nth-child(2){transform:translateY(3.5px) rotate(45deg)}.site-nav-toggle[aria-expanded=true] .site-nav-toggle-bar:nth-child(3){transform:translateY(-3.5px) rotate(-45deg)}.site-nav-menu{align-items:flex-start;background-color:var(--color-bg);border-bottom:1px solid var(--color-rule);display:none;flex-direction:column;gap:0;left:0;padding:var(--space-2) var(--container-pad) var(--space-5);position:absolute;right:0;top:100%}.site-nav-menu.is-open{display:flex}.site-nav-menu li{width:100%}.site-nav-link{display:block;font-size:var(--text-md);padding-block:var(--space-3)}.site-nav-link[aria-current=page]:after{right:auto;width:24px}.site-nav-resume{margin-top:var(--space-3)}}.site-footer{border-top:1px solid var(--color-rule)}.site-footer-inner{align-items:center;color:var(--color-text-subtle);display:flex;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--text-xs);gap:var(--space-4) var(--space-6);justify-content:space-between;letter-spacing:.08em;padding-block:var(--space-6);text-transform:uppercase}.site-footer-name{color:var(--color-text)}.site-footer-links{display:flex;gap:var(--space-5);list-style:none;margin:0;padding:0}.site-footer-links a{color:var(--color-text-muted);display:inline-block;padding-block:var(--space-2);text-decoration:none;transition:color var(--transition)}.site-footer-links a:hover{color:var(--color-accent-light)}.screenshot-frame{aspect-ratio:16/10;background-color:var(--color-surface);border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);margin:0;overflow:hidden;position:relative}.screenshot-frame img{height:100%;inset:0;object-fit:cover;object-position:top left;position:absolute;width:100%}.screenshot-frame.is-loading img{opacity:0}.screenshot-frame.is-loaded{aspect-ratio:auto;display:flex;justify-content:center;padding:var(--space-4)}.screenshot-frame.is-loaded img{border-radius:var(--radius-sm);height:auto;max-height:min(70vh,640px);max-width:100%;object-fit:contain;position:static;width:auto}.screenshot-placeholder{align-items:center;background-image:linear-gradient(var(--color-grid) 1px,#0000 1px),linear-gradient(90deg,var(--color-grid) 1px,#0000 1px);background-size:32px 32px;display:flex;flex-direction:column;gap:var(--space-2);inset:0;justify-content:center;padding:var(--space-4);position:absolute;text-align:center}.screenshot-label{color:var(--color-accent-muted);font-family:var(--font-display);font-size:var(--text-xl)}.screenshot-caption{color:var(--color-text-subtle);letter-spacing:.1em;text-transform:uppercase}.pipeline,.screenshot-caption{font-family:var(--font-mono);font-size:var(--text-xs)}.pipeline{align-items:stretch;display:flex;flex-wrap:wrap;gap:var(--space-2) 0;list-style:none;margin:0;padding:0}.pipeline li{align-items:center;display:flex}.pipeline li:not(:last-child):after{color:var(--color-accent);content:"→";padding-inline:var(--space-2)}.pipeline-index{color:var(--color-text-subtle);margin-right:var(--space-2)}.pipeline-step{color:var(--color-text);letter-spacing:.02em}.pipeline.is-featured{grid-gap:0;border-bottom:1px solid var(--color-rule-strong);border-top:1px solid var(--color-rule-strong);display:grid;gap:0;grid-template-columns:repeat(6,minmax(0,1fr))}.pipeline.is-featured li{align-items:flex-start;flex-direction:column;font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-5) var(--space-6) var(--space-5) var(--space-4);position:relative}.pipeline.is-featured li:not(:last-child):after{font-size:var(--text-md);padding:0;position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%)}.pipeline.is-featured .pipeline-step{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:0;line-height:1.15}@media (max-width:960px){.pipeline.is-featured{grid-template-columns:repeat(3,minmax(0,1fr))}.pipeline.is-featured li:nth-child(3):after{content:none}}@media (max-width:640px){.pipeline,.pipeline.is-featured{display:flex;flex-direction:column;gap:0}.pipeline li,.pipeline.is-featured li{align-items:flex-start;flex-direction:column;gap:0;padding:0}.pipeline-index{display:none}.pipeline li:not(:last-child):after,.pipeline.is-featured li:not(:last-child):after{content:"↓";font-size:var(--text-sm);padding:var(--space-1) 0;position:static;transform:none}.pipeline.is-featured{padding-block:var(--space-4)}}.ticket-stub{border:1px solid var(--color-rule-strong);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-4) var(--space-5) var(--space-4) var(--space-7);position:relative}.ticket-stub:before{border-left:1px dashed var(--color-accent);bottom:var(--space-2);content:"";left:var(--space-5);position:absolute;top:var(--space-2)}.ticket-stub-label{color:var(--color-text-subtle);display:block;letter-spacing:var(--tracking-label);margin-bottom:var(--space-3);text-transform:uppercase}.ticket-stub-steps{color:var(--color-text);display:flex;flex-wrap:wrap;gap:var(--space-2) 0;list-style:none;margin:0;padding:0}.ticket-stub-steps li:not(:last-child):after{color:var(--color-accent);content:"→";padding-inline:var(--space-2)}@media (max-width:640px){.ticket-stub-steps{flex-direction:column;gap:0}.ticket-stub-steps li:not(:last-child):after{content:"↓";display:block;padding:var(--space-1) 0}}.facts{grid-gap:var(--space-5);border-top:1px solid var(--color-rule);display:grid;gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding-top:var(--space-5)}.fact dt{margin-bottom:var(--space-2)}.fact dd{color:var(--color-text);font-family:var(--font-display);font-size:var(--text-lg);line-height:1.25;margin:0}@media (max-width:640px){.facts{gap:var(--space-4);grid-template-columns:1fr}}.flagship{grid-gap:var(--space-8);align-items:center;border-top:1px solid var(--color-rule);display:grid;gap:var(--space-8);grid-template-columns:minmax(0,5fr) minmax(0,6fr);padding-block:var(--space-8)}.flagship:first-child{border-top:0}.flagship.is-reversed .flagship-text{order:2}.flagship-text{align-items:flex-start;display:flex;flex-direction:column;gap:var(--space-5);min-width:0}.flagship-text>.status-badge{margin-top:calc(var(--space-3)*-1)}.flagship-title{font-size:var(--text-3xl)}.flagship-line{color:var(--color-text-muted);font-size:var(--text-md);max-width:52ch}.flagship-text .facts,.flagship-text .pipeline,.flagship-text .ticket-stub{align-self:stretch}.flagship-media{min-width:0}.flagship.is-condensed{gap:var(--space-7);padding-block:var(--space-7)}.flagship.is-condensed .flagship-title{font-size:var(--text-2xl)}.flagship.is-condensed .flagship-text{gap:var(--space-4)}@media (max-width:960px){.flagship,.flagship.is-condensed{gap:var(--space-6);grid-template-columns:1fr;padding-block:var(--space-7)}.flagship.is-reversed .flagship-text{order:0}}.hero{padding-block:var(--space-7) var(--space-6)}.hero-eyebrow{color:var(--color-accent);margin-bottom:var(--space-4)}.hero-headline{font-size:var(--text-display);letter-spacing:-.02em;line-height:1.02;max-width:28ch}.hero-headline em{color:var(--color-accent)}.hero-body{grid-gap:var(--space-4);display:grid;gap:var(--space-4);margin-top:var(--space-5);max-width:64ch}.hero-lede{color:var(--color-text-muted);font-size:var(--text-md);line-height:var(--leading-relaxed)}.hero-roles{color:var(--color-text);display:flex;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--text-xs);gap:var(--space-1) var(--space-3);letter-spacing:.06em;list-style:none;margin:0;padding:0;text-transform:uppercase}.hero-roles li{display:inline-flex;gap:var(--space-3)}.hero-roles li:not(:last-child):after{color:var(--color-accent);content:"·"}.ticker{background-color:var(--color-surface);border-bottom:1px solid var(--color-rule-strong);border-top:1px solid var(--color-rule-strong);overflow:hidden}.ticker-track{animation:ticker-scroll 48s linear infinite;display:flex;width:max-content}.ticker:hover .ticker-track{animation-play-state:paused}.ticker-group{display:flex;flex-shrink:0;list-style:none;margin:0;padding:0}.ticker-item{align-items:center;color:var(--color-text);display:inline-flex;font-family:var(--font-mono);font-size:var(--text-xs);gap:var(--space-2);letter-spacing:.08em;padding:var(--space-4) var(--space-7) var(--space-4) 0;text-transform:uppercase;white-space:nowrap}.ticker-item:first-child{padding-left:var(--space-7)}@keyframes ticker-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.ticker-track{animation:none;width:auto}.ticker-group{flex-shrink:1;flex-wrap:wrap;gap:0 var(--space-6);margin-inline:auto;max-width:var(--container-max);padding:var(--space-2) var(--container-pad)}.ticker-group[aria-hidden=true]{display:none}.ticker-item,.ticker-item:first-child{padding:var(--space-2) 0;white-space:normal}}.home-band{grid-gap:var(--space-5) var(--space-7);border-top:1px solid var(--color-rule);display:grid;gap:var(--space-5) var(--space-7);grid-template-columns:minmax(0,1fr) minmax(0,3fr);padding-block:var(--space-8)}.home-band>.label{padding-top:var(--space-2)}.also-row{grid-gap:var(--space-4);display:grid;gap:var(--space-4);justify-items:start}.also-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5)}.also-title{font-size:var(--text-2xl)}.also-line{color:var(--color-text-muted);max-width:60ch}.ship-steps{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}.ship-steps li{border-top:1px solid var(--color-rule-strong);padding-top:var(--space-4)}.ship-index{color:var(--color-text);display:block;font-family:var(--font-display);font-size:var(--text-xl);line-height:1.2;margin-bottom:var(--space-3)}.ship-steps p{color:var(--color-text-muted)}.ship-footnote{grid-column:2}.capabilities{grid-gap:0 var(--space-7);display:grid;gap:0 var(--space-7);grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.capability{border-bottom:1px solid var(--color-rule);padding-block:var(--space-4)}.capability dt{margin-bottom:var(--space-2)}.capability dd{color:var(--color-text-soft);margin:0}.credibility{border-bottom:1px solid var(--color-rule);border-top:1px solid var(--color-rule)}.credibility-list{display:flex;flex-wrap:wrap;list-style:none;margin-block:0}.credibility-list li{color:var(--color-text);flex:1 1 auto;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);padding:var(--space-5) var(--space-5);text-align:center;text-transform:uppercase}.credibility-list li+li{border-left:1px solid var(--color-rule-strong)}.home-cta{padding-block:var(--space-9)}.home-cta-heading{font-size:var(--text-3xl);margin-bottom:var(--space-6);max-width:16ch}@media (max-width:960px){.home-band{grid-template-columns:1fr;padding-block:var(--space-7)}.ship-footnote{grid-column:auto}}@media (max-width:720px){.hero{padding-block:var(--space-5)}.hero-eyebrow{margin-bottom:var(--space-3)}.hero-body{margin-top:var(--space-4)}.hero .button-row{gap:var(--space-2)}.hero .primary-button,.hero .secondary-button{padding-inline:var(--space-4)}.hero-lede{font-size:var(--text-base)}.capabilities,.ship-steps{grid-template-columns:1fr}.credibility-list{flex-direction:column}.credibility-list li{padding:var(--space-4) 0;text-align:left}.credibility-list li+li{border-left:0;border-top:1px solid var(--color-rule)}.home-cta{padding-block:var(--space-8)}}.work .page-header{background:none;padding-bottom:var(--space-6)}.work-row{grid-gap:var(--space-5) var(--space-7);border-top:1px solid var(--color-rule);display:grid;gap:var(--space-5) var(--space-7);grid-template-columns:minmax(0,1fr) minmax(0,3fr);padding-block:var(--space-7)}.work-row>.label{padding-top:var(--space-2)}.work-row-body{grid-gap:var(--space-4);display:grid;gap:var(--space-4);justify-items:start}.work-row-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5)}.work-row-title{font-size:var(--text-2xl)}.work-row-body p{color:var(--color-text-muted);max-width:60ch}.more-list{list-style:none;margin:0;padding:0}.more-list li{grid-gap:var(--space-2) var(--space-6);align-items:baseline;border-bottom:1px solid var(--color-rule);display:grid;gap:var(--space-2) var(--space-6);grid-template-columns:minmax(0,2fr) minmax(0,4fr) auto;padding-block:var(--space-4)}.more-list li:first-child{padding-top:0}.more-list h3{font-size:var(--text-xl)}.more-list p{color:var(--color-text-muted);font-size:var(--text-sm)}@media (max-width:960px){.work-row{grid-template-columns:1fr}}@media (max-width:720px){.more-list li{grid-template-columns:1fr;justify-items:start}}.case-header{align-items:flex-start;display:flex;flex-direction:column;gap:var(--space-4)}.case-header h1{max-width:22ch}.case-header p{margin-top:0}.back-link{text-decoration:none;transition:color var(--transition)}.back-link:hover{color:var(--color-accent-light)}.case-body{padding-bottom:var(--space-8)}.case-band{grid-gap:var(--space-4) var(--space-7);border-top:1px solid var(--color-rule);display:grid;gap:var(--space-4) var(--space-7);grid-template-columns:minmax(0,1fr) minmax(0,4fr);padding-block:var(--space-7)}.case-band.is-wide{grid-template-columns:1fr}.case-band:first-child{border-top:0}.case-band>.label{padding-top:var(--space-1)}.case-band-body{grid-gap:var(--space-5);display:grid;gap:var(--space-5);min-width:0}.case-lead{color:var(--color-text-soft);font-size:var(--text-md);line-height:var(--leading-relaxed);max-width:68ch}.architecture-note{color:var(--color-text-muted);font-size:var(--text-sm);max-width:68ch}.screenshot-gallery{grid-gap:var(--space-5);align-items:start;display:grid;gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr))}.stack-groups{grid-gap:0 var(--space-6);display:grid;gap:0 var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.stack-group{border-bottom:1px solid var(--color-rule);padding-block:var(--space-4)}.built-group h3,.stack-group h3{font-size:var(--text-xl);margin-bottom:var(--space-3)}.built-groups{grid-gap:var(--space-6);display:grid;gap:var(--space-6)}.built-list{grid-gap:0 var(--space-6);display:grid;gap:0 var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));list-style:none;margin:0;padding:0}.built-list li{grid-gap:var(--space-1);border-bottom:1px solid var(--color-rule);display:grid;gap:var(--space-1);padding-block:var(--space-3)}.built-title{color:var(--color-text);font-weight:600}.built-text{color:var(--color-text-muted);font-size:var(--text-sm)}.built-list.is-compact{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}.built-list.is-compact .built-text{color:var(--color-text-soft);font-family:var(--font-mono);font-size:var(--text-xs)}.results-list{list-style:none;margin:0;padding:0}.results-list li{border-bottom:1px solid var(--color-rule);color:var(--color-text);font-family:var(--font-display);font-size:var(--text-xl);line-height:1.3;padding-block:var(--space-3)}.results-note{color:var(--color-text-subtle);font-size:var(--text-sm)}.skill-detail-list{grid-gap:0 var(--space-6);display:grid;gap:0 var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));list-style:none;margin:0;padding:0}.skill-detail-list li{border-bottom:1px solid var(--color-rule);display:grid;padding-block:var(--space-3)}.skill-name{color:var(--color-text);font-weight:600}.skill-detail{color:var(--color-text-muted);font-size:var(--text-sm)}@media (max-width:960px){.case-band{grid-template-columns:1fr;padding-block:var(--space-6)}}@media (max-width:720px){.screenshot-gallery{grid-template-columns:1fr}}.contact-grid{grid-gap:var(--space-8);display:grid;gap:var(--space-8);grid-template-columns:minmax(0,2fr) minmax(0,3fr)}.contact-methods{margin-bottom:var(--space-6)}.contact-method{align-items:flex-start;border-bottom:1px solid var(--color-rule);display:flex;gap:var(--space-4);padding-block:var(--space-4)}.contact-icon{color:var(--color-text-muted);flex-shrink:0;height:20px;margin-top:2px;width:20px}.contact-icon svg,.contact-page .social-icon svg{height:100%;width:100%}.contact-details h3,.social-links h3{color:var(--color-text-subtle);font-family:var(--font-mono);font-size:var(--text-label);font-weight:500;letter-spacing:var(--tracking-label);margin-bottom:var(--space-1);text-transform:uppercase}.contact-details p{color:var(--color-text);overflow-wrap:anywhere}.contact-details .subtle-text{color:var(--color-text-subtle);font-size:var(--text-sm);margin-top:var(--space-1)}.social-links{margin-bottom:var(--space-6)}.social-links h3{margin-bottom:var(--space-3)}.social-icons{display:flex;gap:var(--space-3)}.contact-page .social-icon{align-items:center;border:1px solid var(--color-rule-strong);border-radius:var(--radius-sm);color:var(--color-text);display:flex;height:44px;justify-content:center;padding:11px;transition:border-color var(--transition);width:44px}.contact-page .social-icon:hover{border-color:var(--color-accent)}.contact-form-container .section-header h2{font-size:var(--text-2xl)}.contact-form{align-items:flex-start;display:flex;flex-direction:column}.form-group{align-self:stretch;margin-bottom:var(--space-5)}.form-group label{color:var(--color-text-muted);display:block;font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--tracking-label);margin-bottom:var(--space-2);text-transform:uppercase}.form-group input,.form-group textarea{background-color:var(--color-input);border:1px solid var(--color-rule-strong);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;padding:var(--space-3);transition:border-color var(--transition);width:100%}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-accent-light);box-shadow:0 0 0 1px var(--color-accent-light);outline:none}.form-group input.error,.form-group textarea.error{border-color:var(--error)}.error-message{color:var(--error);display:block;font-size:var(--text-sm);margin-top:var(--space-1)}.success-message{border-bottom:1px solid var(--color-rule-strong);border-top:1px solid var(--color-rule-strong);padding-block:var(--space-6)}.success-icon{color:var(--color-accent);height:28px;margin-bottom:var(--space-4);width:28px}.success-icon svg{height:100%;width:100%}.success-message h3{font-size:var(--text-2xl);margin-bottom:var(--space-2)}.success-message p{color:var(--color-text-muted)}.faq-grid{grid-gap:var(--space-6) var(--space-7);display:grid;gap:var(--space-6) var(--space-7);grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.faq-item h3{font-size:var(--text-xl);margin-bottom:var(--space-3)}.faq-item p{color:var(--color-text-muted)}@media (max-width:900px){.contact-grid{gap:var(--space-7);grid-template-columns:1fr}}.resume-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-5) var(--space-7);justify-content:space-between}.resume-header-main{grid-gap:var(--space-3);display:grid;gap:var(--space-3)}.resume-header-main .label{margin-bottom:0}.resume-header h1{margin-bottom:var(--space-1)}.resume-contact,.resume-roles{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);list-style:none;margin:0;padding:0}.resume-roles{color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.resume-contact{color:var(--color-text-muted);font-size:var(--text-sm)}.resume-contact li:not(:last-child):after,.resume-roles li:not(:last-child):after{color:var(--color-accent);content:"·";margin-left:var(--space-3)}.resume-bullets a,.resume-contact a{color:inherit;text-decoration-color:var(--color-rule-strong);text-underline-offset:3px}.resume-bullets a:hover,.resume-contact a:hover{text-decoration-color:var(--color-accent)}.resume-body{padding-bottom:var(--space-8)}.resume-band{grid-gap:var(--space-4) var(--space-7);border-top:1px solid var(--color-rule);display:grid;gap:var(--space-4) var(--space-7);grid-template-columns:minmax(0,1fr) minmax(0,4fr);padding-block:var(--space-7)}.resume-band:first-child{border-top:0}.resume-band>.label{padding-top:var(--space-1)}.resume-band-body{grid-gap:var(--space-5);display:grid;gap:var(--space-5);max-width:76ch;min-width:0}.resume-summary{color:var(--color-text-soft);font-size:var(--text-md);line-height:var(--leading-relaxed)}.resume-entry h3{font-size:var(--text-xl);line-height:1.25;margin-bottom:var(--space-3)}.resume-meta{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;white-space:nowrap}.resume-intro{color:var(--color-text-soft);margin-bottom:var(--space-3)}.resume-bullets{grid-gap:var(--space-2);display:grid;gap:var(--space-2);list-style:none;margin:0;padding:0}.resume-bullets li{color:var(--color-text-muted);padding-left:var(--space-5);position:relative}.resume-bullets li:before{color:var(--color-accent);content:"—";left:0;position:absolute}.resume-bullets strong{color:var(--color-text);font-weight:600}.resume-skills{grid-gap:var(--space-2);display:grid;gap:var(--space-2);margin:0}.resume-skills div{color:var(--color-text-muted)}.resume-skills dt{color:var(--color-text);display:inline;font-weight:600}.resume-skills dd{display:inline;margin:0}@media (max-width:960px){.resume-band{grid-template-columns:1fr;padding-block:var(--space-6)}}@media print{@page{size:letter;margin:.42in .5in}.resume-actions,.resume-header .label,.site-footer,.site-nav{display:none!important}body{font-size:8.75pt;line-height:1.34}.resume-body,.resume-header{max-width:none;padding-inline:0}.resume-header{background-size:100% 1px;padding-block:0 8pt}.resume-header h1{font-size:24pt}.resume-meta,.resume-roles{font-size:7.5pt}.resume-contact{font-size:9pt}.resume-band{break-inside:auto;gap:4pt;grid-template-columns:1fr;padding-block:6pt;page-break-inside:auto}.resume-band>.label{color:var(--color-text);font-size:7.5pt;padding-top:0}.resume-band-body{gap:7pt;max-width:none}.resume-summary{font-size:8.75pt;line-height:1.38}.resume-band-body{gap:6pt}.resume-entry h3{break-after:avoid;font-size:12pt;margin-bottom:2pt;page-break-after:avoid}.resume-bullets li{break-inside:avoid;page-break-inside:avoid}.resume-intro{margin-bottom:3pt}.resume-bullets,.resume-skills{gap:1.5pt}.resume-bullets li{padding-left:12pt}.resume-bullets a,.resume-contact a{text-decoration:none}}
/*# sourceMappingURL=main.b5d9eb3b.css.map*/