.software-content{color-scheme:dark;--paper:#c7c7c2;--ink:#151615;--muted:#858681;--line:#363733;--accent:#d7efad;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
.software-content *{box-sizing:border-box}
.software-content{margin:0;background:var(--bg);color:var(--paper)}
.software-content a{color:inherit;text-decoration:none}
.software-content a:focus-visible,.software-content summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.software-content .skip{position:absolute;top:-60px;left:20px;background:var(--accent);color:var(--ink);padding:12px;z-index:5}
.software-content .skip:focus{top:12px}
.software-content .topbar,.software-content .footer{max-width:1320px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:28px 48px;font-size:16px;letter-spacing:2px;text-transform:uppercase}
.software-content .brand-small{font-weight:700;letter-spacing:1px}
.software-content .topbar span{color:var(--muted)}
.software-content .frame{max-width:1224px;margin:28px auto 0;min-height:690px;border:1px solid #555650;border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr}
.software-content .intro{background:var(--paper);color:var(--ink);padding:62px 48px;display:flex;flex-direction:column}
.software-content .eyebrow{font-size:17px;letter-spacing:2px;text-transform:uppercase;display:flex;align-items:center;gap:8px}
.software-content .dot{height:6px;width:6px;border-radius:50%;background:currentColor;display:inline-block}
.software-content .intro h1{font-size:clamp(71px,calc(7.7vw + 5px),117px);font-weight:500;letter-spacing:-8px;line-height:1;margin:47px 0 24px}
.software-content .intro h1 em{font-family:Georgia,serif;font-weight:400}
.software-content .intro h2{font-size:28px;line-height:1.3;letter-spacing:-.6px;font-weight:400;margin:0 0 15px}
.software-content .intro p{max-width:340px;color:#565752;font-size:19px;line-height:1.8;margin:0}
.software-content .counts{display:flex;gap:62px;margin-top:65px}
.software-content .count strong{font-size:43px;font-weight:400;letter-spacing:-2px}
.software-content .count span{display:block;font-size:18px;margin-top:8px;color:#565752}
.software-content .intro-bottom{margin-top:auto;padding-top:65px;font-size:17px;letter-spacing:1px;display:flex;justify-content:space-between}
.software-content .collection{padding:44px 38px;background:var(--bg);border-left:1px solid #555650}
.software-content .collection-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:35px}
.software-content .collection-head h2{font-size:18px;font-weight:400;letter-spacing:2px;text-transform:uppercase;margin:0}
.software-content .collection-head span{font-family:monospace;color:var(--muted);font-size:17px}
.software-content .filters{display:flex;gap:5px;margin-bottom:28px;flex-wrap:wrap}
.software-content .filters label{cursor:pointer;font-size:18px;padding:8px 13px;border:1px solid var(--line);border-radius:20px;color:#999a94}
.software-content .filter-input{position:absolute;opacity:0;width:1px;height:1px}
.software-content #all:checked~.filters label[for=all],.software-content #contributor:checked~.filters label[for=contributor],.software-content #consultant:checked~.filters label[for=consultant]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.software-content .filter-input:focus-visible~.filters{outline:2px solid var(--accent);outline-offset:4px}
.software-content #contributor:checked~.grid .consultant,.software-content #consultant:checked~.grid .contributor{display:none}
.software-content .grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.software-content .card{border:1px solid #41423d;border-radius:12px;padding:20px 17px;min-height:143px;display:flex;flex-direction:column;transition:background .18s,border-color .18s,transform .18s}
.software-content .card:hover{background:var(--soft);border-color:#9ba78c;transform:translateY(-3px)}
.software-content .card-top{display:flex;justify-content:space-between;font-family:monospace;font-size:17px;color:#a4a69e;margin-bottom:22px}
.software-content .arrow{color:var(--paper);font-size:22px}
.software-content .card h3{font-size:22px;letter-spacing:-.4px;font-weight:400;margin:0 0 6px}
.software-content .card p{font-size:18px;color:#b0b1aa;margin:0;line-height:1.5}
.software-content .status{margin-top:13px;font-size:17px;color:#a4a69e;display:flex;align-items:center;gap:6px}
.software-content .consultant .status .dot{background:var(--accent)}
.software-content .collection-note{font-size:17px;color:var(--muted);margin-top:26px;line-height:1.6}
.software-content .footer{font-size:14px;letter-spacing:1px;padding-top:28px;padding-bottom:30px}
.software-content .footer a:hover{text-decoration:underline}
.software-content .detail{max-width:760px;margin:65px auto;padding:40px}
.software-content .detail h1{font-size:61px;letter-spacing:-3px}
.software-content .detail p{line-height:1.9;color:#aaa}
.software-content .back{font-size:17px}
.software-content .visit{display:inline-block;background:var(--paper);color:var(--ink);padding:13px 20px;border-radius:8px;margin-top:20px}
@media(min-width:1400px){.software-content .frame{margin-top:55px}
}
@media(max-width:1000px){.software-content .frame{margin:20px 24px;min-height:650px}
.software-content .intro{padding:48px 30px}
.software-content .intro h1{letter-spacing:-5px}
.software-content .collection{padding:36px 25px}
.software-content .grid{gap:12px}
.software-content .card{padding:17px 13px}
.software-content .counts{gap:40px}
}
@media(max-width:700px){.software-content .topbar,.software-content .footer{padding:24px}
.software-content .topbar span{font-size:14px}
.software-content .frame{grid-template-columns:1fr;margin:10px 18px;border-radius:20px}
.software-content .intro{padding:38px 30px}
.software-content .intro h1{font-size:91px;margin:34px 0 24px;letter-spacing:-6px}
.software-content .intro h2{font-size:27px}
.software-content .counts{margin-top:30px}
.software-content .intro-bottom{padding-top:40px}
.software-content .collection{border-left:0;border-top:1px solid #555650;padding:32px 25px}
.software-content .footer{font-size:13px;gap:20px}
.software-content .detail{margin:20px auto;padding:28px}
.software-content .detail h1{font-size:47px}
}
@media(prefers-reduced-motion:reduce){.software-content .card{transition:none}
.software-content .card:hover{transform:none}
}
.software-content.directory-page{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
.software-content.directory-page .topbar,.software-content.directory-page .footer{display:none}
.software-content.directory-page .frame{width:calc(100% - 160px);max-width:none;height:calc(100% - 160px);flex:1;min-height:0;margin:80px;border:1px solid #555650;border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.software-content.directory-page .intro{min-width:0;min-height:0;padding:clamp(24px,4vh,62px) 48px}
.software-content.directory-page .intro h1{margin-top:clamp(20px,5vh,47px)}
.software-content.directory-page .counts{margin-top:clamp(20px,6vh,65px)}
.software-content.directory-page .intro-bottom{padding-top:20px}
.software-content .collection{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#555650 var(--bg);scrollbar-gutter:stable}
.software-content .collection:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}
.software-content .search-control{margin-bottom:18px}
.software-content .search-control label{display:block;font-size:18px;margin-bottom:9px;color:var(--paper)}
.software-content .search-control input{width:100%;border:1px solid #555650;border-radius:9px;padding:12px 14px;background:var(--panel);color:var(--paper);font:inherit;font-size:20px}
.software-content .search-control input::placeholder{color:#999a94}
.software-content .search-control input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.software-content .search-results,.software-content .search-empty{font-size:18px;line-height:1.6;color:#aaa}
.software-content .search-results{margin:9px 0 0}
.software-content [hidden],.software-content .card[hidden]{display:none!important}
@media(max-width:1000px){.software-content.directory-page .intro{padding:28px 30px}
.software-content.directory-page .frame{margin:80px}
}
@media(max-width:700px){.software-content.directory-page .topbar{padding:16px 20px}
.software-content.directory-page .topbar>span{max-width:180px;text-align:right;line-height:1.5;letter-spacing:1px}
.software-content.directory-page .frame{width:calc(100% - 20px);height:calc(100% - 20px);margin:10px;border-radius:14px;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}
.software-content.directory-page .intro{padding:18px 25px}
.software-content.directory-page .intro .eyebrow{font-size:16px;letter-spacing:1px}
.software-content.directory-page .intro h1{font-size:63px;letter-spacing:-4px;margin:12px 0}
.software-content.directory-page .intro h2{font-size:20px;margin-bottom:8px}
.software-content.directory-page .intro p{font-size:18px;line-height:1.5}
.software-content.directory-page .counts{margin-top:14px;gap:35px}
.software-content.directory-page .count strong{font-size:31px}
.software-content.directory-page .count span{font-size:17px;margin-top:3px}
.software-content.directory-page .intro-bottom{display:none}
.software-content.directory-page .collection{padding:22px 20px}
.software-content.directory-page .collection-head{margin-bottom:18px}
.software-content.directory-page .footer{padding:16px 20px}
}
@media(max-height:650px) and (min-width:701px){.software-content.directory-page .topbar,.software-content.directory-page .footer{padding-top:14px;padding-bottom:14px}
.software-content.directory-page .intro{padding:22px 30px}
.software-content.directory-page .intro h1{font-size:75px;margin:20px 0}
.software-content.directory-page .intro h2{font-size:23px}
.software-content.directory-page .intro p{font-size:19px;line-height:1.5}
.software-content.directory-page .counts{margin-top:20px}
.software-content.directory-page .count strong{font-size:33px}
}
.software-content .services{margin-top:28px;padding-top:20px;border-top:1px solid #a6a7a0}
.software-content.directory-page .services h2{font-size:18px;font-weight:500;letter-spacing:0;margin:0 0 14px}
.software-content .services ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}
.software-content .services li{font-size:17px;line-height:1.4;color:#454640}
@media(max-width:700px){.software-content.directory-page .frame{grid-template-rows:auto minmax(0,1fr)}
.software-content.directory-page .intro{padding:16px 25px}
.software-content .services{margin-top:16px;padding-top:12px}
.software-content.directory-page .services h2{font-size:17px;margin-bottom:10px}
.software-content .services ul{gap:6px 14px}
.software-content .services li{font-size:15px}
.software-content.directory-page .intro .eyebrow{font-size:12px}
.software-content.directory-page .intro h1{margin:8px 0}
.software-content.directory-page .intro h2{margin-bottom:6px}
.software-content.directory-page .intro p{font-size:16px}
.software-content.directory-page .counts{margin-top:10px}
}
@media(max-height:800px) and (min-width:701px){.software-content.directory-page .intro{padding:20px 30px}
.software-content.directory-page .intro h1{margin:14px 0;font-size:75px}
.software-content.directory-page .counts{margin-top:16px}
.software-content .services{margin-top:18px;padding-top:14px}
.software-content .services ul{gap:6px 14px}
.software-content.directory-page .intro-bottom{padding-top:12px;font-size:14px}
}
.software-content .software-home{position:absolute;top:22px;left:28px;z-index:2;border:1px solid var(--line);border-radius:20px;padding:6px 13px;color:var(--paper);font-size:12px;line-height:1.4;background:var(--bg)}
.software-content .software-home:hover{border-color:var(--muted);background:#1b1d18}
@media(max-width:700px){.software-content .software-home{top:12px;left:20px}
.software-content.directory-page .frame{margin-top:52px;height:calc(100% - 62px)}
}
.software-content .project-filters button{font:inherit;font-size:18px;padding:8px 13px;border:1px solid var(--line);border-radius:20px;color:#999a94;background:transparent;cursor:pointer}
.software-content .project-filters button[aria-pressed=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.software-content .project-filters button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.software-content .project-card h2{font-size:22px;letter-spacing:-.4px;font-weight:400;margin:0 0 9px}

/* Let the shared header and footer participate in ordinary document scrolling. */
.software-shell{padding-top:28px}
.software-actions{display:flex;align-items:center;gap:20px;margin:0 0 24px}
.software-actions .software-home{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:11px 24px;border:1px solid #676d5f;border-radius:28px;font-size:17px;color:var(--text);background:var(--panel)}
.software-actions .software-home:hover{background:var(--soft);border-color:var(--muted)}
.software-actions .people-link{font-size:15px;color:var(--muted)}
.software-content.directory-page{height:auto;display:block;overflow:visible;padding:0}
.software-content.directory-page .frame{width:100%;max-width:none;height:auto;min-height:690px;margin:0;border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.software-content.directory-page .collection{overflow:visible}
.software-content .view-projects{display:inline-flex;align-self:flex-start;align-items:center;gap:18px;margin-top:25px;padding:11px 20px;border:1px solid var(--bg);border-radius:26px;background:var(--bg);color:#fff;font-size:17px;line-height:1.4}
.software-content .view-projects:hover{background:var(--soft);border-color:var(--soft);color:#fff}
.software-content .projects-panel{padding:36px;border:0;border-radius:0;background:var(--bg);max-width:1120px;min-height:420px;margin:0 auto}
.software-content .projects-panel .collection-head h1{font:normal 20px/1.4 Arial,Helvetica,sans-serif;letter-spacing:2px;text-transform:uppercase;margin:0}
.software-content .project-card .status{margin-top:auto;padding-top:18px}
.software-content .projects-empty{border:1px dashed #41423d;border-radius:12px;padding:32px 22px;color:var(--muted);font-size:17px;line-height:1.7}
.software-content .projects-empty h2{font-size:20px;font-weight:400;color:var(--paper);margin:0 0 8px}
.software-content .projects-empty p{margin:0}
@media(max-width:1000px){.software-content.directory-page .frame{min-height:0}}
@media(max-width:700px){.software-shell{padding-top:20px}.software-content.directory-page .frame{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;margin:0;width:100%;height:auto}.software-content.directory-page .intro{padding:28px 24px}.software-content.directory-page .collection{padding:28px 24px}.software-content .projects-panel{padding:24px 18px}.software-content .projects-panel .grid{grid-template-columns:minmax(0,1fr)}.software-actions .software-home{font-size:17px;padding:12px 23px}.software-content .view-projects{margin-top:20px}}
