.software-page,.software-project-page{gap:0}.software-hero{grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr);align-items:end;gap:clamp(32px,7vw,96px);padding:clamp(52px,8vw,104px) 0 clamp(42px,7vw,80px);display:grid}.software-hero h1,.software-announcement-card--index h2,.software-empty-state h2,.software-project-hero h1,.software-project-content h2,.software-project-content h3{color:var(--ink);font-family:var(--font-serif);text-wrap:balance;margin:0;font-weight:540}.software-hero h1{letter-spacing:-.035em;font-size:clamp(3.4rem,7.8vw,7rem);line-height:.88}.software-hero>p{max-width:32rem;color:var(--article-ink);margin:0 0 .35rem;font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.68}.software-announcements{border-top:1px solid var(--line-strong)}.software-project-list{display:grid}.software-announcement-card--index{border-bottom:1px solid var(--line-strong);grid-template-columns:minmax(0,1.12fr) minmax(19rem,.88fr);align-items:center;gap:clamp(36px,6vw,78px);padding:clamp(48px,7vw,84px) 0;display:grid}.software-announcement-card--index:nth-child(2n){grid-template-columns:minmax(19rem,.88fr) minmax(0,1.12fr)}.software-announcement-card--index:nth-child(2n) .software-announcement-card__visual{order:2}.software-announcement-card--index:nth-child(2n) .software-announcement-card__body{order:1}.software-announcement-card--index .software-announcement-card__body{align-content:center;gap:18px;display:grid}.software-announcement-card--index .software-announcement-card__meta,.software-project-hero__meta,.software-project-section-label,.software-project-artifact figcaption,.software-project-facts dt{color:var(--ink-soft);letter-spacing:.065em;text-transform:uppercase;font-family:SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.7rem;line-height:1.5}.software-announcement-card--index .software-announcement-card__meta{flex-wrap:wrap;gap:8px 16px;display:flex}.software-announcement-card--index .software-announcement-card__meta span+span:before{content:"·";color:var(--line-strong);margin-right:16px}.software-announcement-card--index h2{letter-spacing:-.03em;max-width:13ch;font-size:clamp(2.5rem,4.9vw,4.8rem);line-height:.92}.software-announcement-card--index h2 a{color:inherit;text-decoration:none}.software-announcement-card--index h2 a:hover,.software-announcement-card--index h2 a:focus-visible{color:var(--accent-strong)}.software-announcement-card__summary{max-width:38rem;color:var(--article-ink);margin:0;font-size:clamp(1.02rem,1.35vw,1.13rem);line-height:1.67}.software-announcement-card--index .tag-list{margin:2px 0 0}.software-announcement-card__actions,.software-project-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.software-project-link,.software-project-action{border:1px solid var(--line-strong);min-height:44px;color:var(--accent-strong);justify-content:center;align-items:center;padding:.65rem .88rem;font-size:.86rem;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.software-project-link--primary,.software-project-action--primary{border-color:var(--accent-strong);background:var(--accent-strong);color:var(--page-bg-soft)}.software-project-link:hover,.software-project-link:focus-visible,.software-project-action:hover,.software-project-action:focus-visible{border-color:var(--accent-strong);color:var(--ink)}.software-project-link--primary:hover,.software-project-link--primary:focus-visible,.software-project-action--primary:hover,.software-project-action--primary:focus-visible{color:var(--page-bg-soft)}.software-project-artifact{gap:10px;width:100%;margin:0;display:grid}.software-project-artifact__image-frame,.software-project-artifact__terminal{border:1px solid var(--line-strong);background:#0e1513;overflow:hidden}.software-project-artifact__image-frame{line-height:0}.software-project-artifact__image{width:100%;height:auto;display:block}.software-project-artifact__image--dark,html[data-theme=dark] .software-project-artifact__image--light{display:none}html[data-theme=dark] .software-project-artifact__image--dark{display:block}.software-project-artifact--compact .software-project-artifact__terminal{aspect-ratio:16/10}.software-project-artifact__terminal{color:#dce9df;align-content:center;gap:clamp(18px,3vw,34px);min-height:27rem;padding:clamp(26px,5vw,58px);display:grid}.software-project-artifact--compact .software-project-artifact__terminal{min-height:0}.software-project-artifact__terminal p,.software-project-artifact__terminal pre{margin:0}.software-project-artifact__terminal p{color:#d5b46c;font-family:SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:clamp(.75rem,1.3vw,.92rem)}.software-project-artifact__terminal pre{color:#c9d8ce;white-space:pre-wrap;font-family:SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:clamp(.72rem,1.25vw,.9rem);line-height:2;overflow:auto}.software-project-artifact figcaption{letter-spacing:.025em;text-transform:none;margin:0}.software-empty-state{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);padding:clamp(44px,7vw,82px) 0}.software-empty-state h2{font-size:clamp(2rem,4vw,3.5rem)}.software-announcement-card--home{align-content:start;gap:13px;min-width:0;display:grid;position:relative}.software-announcement-card__overlay{z-index:1;position:absolute;inset:0}.software-announcement-card__overlay:focus-visible{outline:2px solid var(--accent-strong);outline-offset:5px}.software-announcement-card--home .software-announcement-card__media{border:1px solid var(--line);background:color-mix(in srgb, var(--paper-muted) 78%, var(--page-bg) 22%);width:100%;margin:0;overflow:hidden}.software-announcement-card--home .software-announcement-card__media .media-figure__frame,.software-announcement-card--home .software-announcement-card__media .software-project-artifact__image-frame,.software-announcement-card--home .software-announcement-card__media--fallback{aspect-ratio:16/9;background:color-mix(in srgb, var(--paper-muted) 78%, var(--page-bg) 22%);width:100%;min-height:0;position:relative;overflow:hidden}.software-announcement-card--home .software-announcement-card__media--project{border-color:var(--line-strong)}.software-announcement-card--home .software-announcement-card__media--project .software-project-artifact{gap:0}.software-announcement-card--home .software-announcement-card__media--project .software-project-artifact__image-frame{border:0}.software-announcement-card--home .software-announcement-card__media--project .software-project-artifact figcaption{display:none}.software-announcement-card--home .software-announcement-card__media .media-figure__image,.software-announcement-card--home .software-announcement-card__media .software-project-artifact__image{object-fit:cover;height:100%;transition:transform .22s}.software-announcement-card--home:hover .software-announcement-card__media .media-figure__image,.software-announcement-card--home:hover .software-announcement-card__media .software-project-artifact__image{transform:scale(1.012)}.software-announcement-card__media--fallback .root-visual{width:100%;height:100%;position:absolute;inset:0}.software-announcement-card--home .software-announcement-card__body{align-content:start;gap:10px;display:grid}.software-announcement-card--home .software-announcement-card__meta{color:var(--ink-soft);letter-spacing:.055em;text-transform:uppercase;flex-wrap:wrap;gap:5px 10px;font-family:SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.66rem;line-height:1.5;display:flex}.software-announcement-card--home .software-announcement-card__meta span:before{content:"·";margin-right:10px}.software-announcement-card--home h3{color:var(--ink);font-family:var(--font-serif);text-wrap:balance;margin:0;font-size:clamp(1.6rem,2.7vw,2.15rem);font-weight:540;line-height:1}.software-announcement-card--home h3 a,.software-announcement-card--home .software-announcement-card__read{z-index:2;position:relative}.software-announcement-card--home h3 a{color:var(--ink);text-decoration:none}.software-announcement-card--home h3 a:hover,.software-announcement-card--home h3 a:focus-visible{color:var(--accent-strong)}.software-announcement-card--home .software-announcement-card__body>p{color:var(--ink-soft);margin:0;font-size:.93rem;line-height:1.58}.software-announcement-card--home .software-announcement-card__read{justify-self:start;margin-top:2px}.software-project-hero{border-bottom:1px solid var(--line-strong);grid-template-columns:minmax(0,1.45fr) minmax(17rem,.55fr);align-items:end;gap:clamp(44px,8vw,112px);padding:clamp(42px,7vw,86px) 0 clamp(40px,6vw,72px);display:grid}.software-project-hero__copy{gap:20px;display:grid}.software-project-hero__meta{flex-wrap:wrap;gap:8px 16px;display:flex}.software-project-hero__meta a{color:var(--accent-strong)}.software-project-hero h1{letter-spacing:-.035em;max-width:14ch;font-size:clamp(3.2rem,7.2vw,7.2rem);line-height:.88}.software-project-hero__copy>p{max-width:48rem;color:var(--article-ink);text-wrap:pretty;margin:0;font-size:clamp(1.08rem,1.65vw,1.3rem);line-height:1.65}.software-project-hero .tag-list{margin:2px 0 0}.software-project-actions{margin-top:4px}.software-project-facts{border-top:1px solid var(--line-strong);gap:0;margin:0;display:grid}.software-project-facts>div{border-bottom:1px solid var(--line);gap:6px;padding:15px 0;display:grid}.software-project-facts dd{color:var(--article-ink);margin:0;font-size:.94rem;line-height:1.55}.software-project-showcase{border-bottom:1px solid var(--line-strong);padding:clamp(40px,6vw,72px) 0}.software-project-showcase .software-project-artifact{max-width:78rem;margin:0 auto}.software-project-reading-stage,.software-project-content{display:grid}.software-project-reading-rail{min-width:0}@media (min-width:1101px){.software-project-reading-stage:has(.reading-rail){grid-template-columns:minmax(0,1fr) minmax(12rem,15rem);gap:clamp(36px,5vw,72px)}.software-project-reading-rail{padding-top:clamp(48px,7vw,84px)}}.software-project-overview,.software-project-capabilities,.software-project-decisions,.software-project-note,.software-project-links{border-bottom:1px solid var(--line-strong);padding:clamp(48px,7vw,84px) 0}.software-project-overview{grid-template-columns:minmax(13rem,.55fr) minmax(0,1.45fr);gap:clamp(36px,7vw,96px);display:grid}.software-project-section-label{margin:0 0 20px}.software-project-content h2{letter-spacing:-.03em;font-size:clamp(2.35rem,4.8vw,4.8rem);line-height:.92}.software-project-content h2,.software-project-content h3{scroll-margin-top:110px}.software-project-overview>div{gap:18px;max-width:50rem;display:grid}.software-project-overview>div p{color:var(--article-ink);margin:0;font-size:clamp(1rem,1.35vw,1.12rem);line-height:1.78}.software-project-capabilities{grid-template-columns:minmax(13rem,.55fr) minmax(0,1.45fr);gap:clamp(36px,7vw,96px);display:grid}.software-project-decisions{gap:clamp(28px,4vw,48px);display:grid}.software-project-decisions>header{max-width:12ch}.software-project-capabilities ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,4vw,52px);margin:0;padding:0;list-style:none;display:grid}.software-project-capabilities li{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);gap:14px;padding:22px 0;display:grid}.software-project-capabilities li>span{color:var(--clay);padding-top:.2rem;font-family:SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.68rem}.software-project-capabilities li>div{gap:7px;display:grid}.software-project-content h3{font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.05}.software-project-capabilities p{color:var(--ink-soft);margin:0;line-height:1.65}.software-project-decisions ol{margin:0;padding:0;list-style:none;display:grid}.software-project-decisions li{border-top:1px solid var(--line);grid-template-columns:minmax(13rem,.55fr) minmax(0,1.45fr);gap:clamp(36px,7vw,96px);padding:24px 0;display:grid}.software-project-decisions li>span{color:var(--clay);letter-spacing:.055em;text-transform:uppercase;padding-top:.24rem;font-family:SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.68rem;line-height:1.5}.software-project-decisions li>div{gap:9px;display:grid}.software-project-decisions p{color:var(--ink-soft);margin:0;line-height:1.7}.software-project-note .article-body{max-width:48rem;margin:0 auto}.software-project-note .article-body>:first-child{margin-top:0}.software-project-note .article-body>:last-child{margin-bottom:0}.software-project-links{gap:clamp(28px,4vw,48px);display:grid}.software-project-links h2{max-width:16ch}.software-project-links ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.software-project-links a{border-top:1px solid var(--line-strong);height:100%;color:var(--ink);align-content:start;gap:8px;padding:18px 0;text-decoration:none;display:grid}.software-project-links a:hover strong,.software-project-links a:focus-visible strong{color:var(--accent-strong)}.software-project-links strong{font-family:var(--font-serif);font-size:1.35rem;font-weight:560;line-height:1.05}.software-project-links span{color:var(--ink-soft);font-size:.86rem;line-height:1.55}@media (max-width:900px){.software-announcement-card--index,.software-announcement-card--index:nth-child(2n),.software-project-hero,.software-project-overview,.software-project-capabilities,.software-project-decisions,.software-project-links{grid-template-columns:1fr}.software-announcement-card--index:nth-child(2n) .software-announcement-card__visual,.software-announcement-card--index:nth-child(2n) .software-announcement-card__body{order:initial}.software-project-hero{align-items:start}.software-project-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.software-project-facts>div:nth-child(odd){padding-right:18px}.software-project-facts>div:nth-child(2n){border-left:1px solid var(--line);padding-left:18px}.software-project-overview,.software-project-capabilities,.software-project-decisions,.software-project-links{gap:34px}}@media (max-width:700px){.software-hero{grid-template-columns:1fr;gap:22px;padding-top:30px}.software-hero h1{font-size:clamp(3.2rem,17vw,5rem)}.software-announcement-card--index{gap:22px;padding:34px 0}.software-announcement-card--index h2{font-size:clamp(2.6rem,13vw,4rem)}.software-announcement-card--index .software-announcement-card__body{gap:14px}.software-project-artifact--compact .software-project-artifact__terminal{aspect-ratio:auto}.software-project-artifact__terminal{min-height:22rem;padding:22px}.software-project-hero{gap:28px;padding:22px 0 34px}.software-project-hero__copy{gap:16px}.software-project-hero h1{font-size:clamp(2.8rem,13.5vw,4.2rem);line-height:.92}.software-project-hero__copy>p{font-size:1.05rem;line-height:1.58}.software-project-capabilities ol,.software-project-links ul{grid-template-columns:1fr}.software-project-decisions li{grid-template-columns:1fr;gap:8px}.software-project-facts>div{gap:5px;padding-block:12px}.software-project-facts>div:nth-child(odd){padding-right:12px}.software-project-facts>div:nth-child(2n){padding-left:12px}.software-project-facts dd{font-size:.88rem;line-height:1.45}.software-project-content h2{font-size:clamp(2.45rem,13vw,4rem)}}
