/* Signal Check (@SignalCheckRae): Open Source section. Loaded only on /open-source/ pages, after style.css, so the
   shared stylesheet (and its hashed name) stays unchanged. Text only: no images, logos are the project name in text. */
.oss-meth{font-size:13px;color:var(--muted);margin:10px 0 0;max-width:860px}
.oss-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.oss-h .dot{flex:none}
/* trending strip */
.tr{position:relative;list-style:none;margin:14px 0 0;padding:2px 2px 10px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-color:var(--line2) transparent}
.tr li{position:relative;scroll-snap-align:start;border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 14px;background:linear-gradient(180deg,var(--card2),var(--bg2));display:flex;flex-direction:column;gap:6px;transition:border-color .25s,transform .25s}
.tr li:hover,.tr li:focus-within{border-color:var(--cy2);transform:translateY(-2px)}
.tr-rank{font:700 11px/1 var(--mono);color:var(--vi);letter-spacing:.06em;text-transform:uppercase}
.tr-name{font-weight:800;font-size:17px;line-height:1.25;word-break:break-word}
.tr-name a{color:var(--ink);text-decoration:none}.tr-name a:hover{color:var(--cy)}
.tr-owner{color:var(--muted);font-weight:600}
.tr-note{font-size:14px;color:var(--muted);margin:0;flex:1}
.meta{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0;padding:0;list-style:none;font-size:13px}
.meta li{border:1px solid var(--line2);border-radius:999px;padding:2px 9px;color:var(--ink);background:transparent}
.meta .b-flag{border-color:#8a6a1c;color:var(--warn)}
.meta .b-arch{border-color:#9b2c2c;color:#fca5a5}
.meta .b-quiet{border-color:#8a6a1c;color:var(--warn)}
/* category cards */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;list-style:none;margin:0;padding:0}
.cat-grid a{display:flex;flex-direction:column;gap:6px;height:100%;padding:18px;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(160deg,var(--card),var(--bg2));color:var(--ink);text-decoration:none;position:relative;overflow:hidden;transition:border-color .25s,transform .25s}
.cat-grid a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--cy2),var(--vi));transform:scaleX(0);transform-origin:left;transition:transform .35s}
.cat-grid a:hover,.cat-grid a:focus-visible{border-color:var(--line2);transform:translateY(-2px)}
.cat-grid a:hover::after,.cat-grid a:focus-visible::after{transform:scaleX(1)}
.cat-n{font:700 11px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--cy)}
.cat-t{font-weight:800;font-size:18px}
.cat-i{font-size:14px;color:var(--muted)}
/* project list */
.oss-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.oss-list>li{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--card)}
.oss-list>li:hover{border-color:var(--line2)}
.oss-name{font-weight:800;font-size:17px}
.oss-name a{color:var(--ink);text-decoration:none}.oss-name a:hover{color:var(--cy)}
.oss-repo{font:600 13px/1.3 var(--mono);color:var(--muted);margin-left:8px;word-break:break-all}
.oss-good{margin:4px 0 0;font-size:15px;color:var(--muted)}
.oss-cat h3{font-size:19px;margin:26px 0 10px}
.oss-cat h3 a{color:var(--ink);text-decoration:none}.oss-cat h3 a:hover{color:var(--cy)}
/* project page */
.facts{display:grid;grid-template-columns:max-content 1fr;gap:10px 18px;margin:0}
.facts dt{font-weight:700;color:var(--muted)}
.facts dd{margin:0}
.diff{display:inline-block;font:700 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--line2);border-radius:6px;padding:4px 7px;margin-right:8px}
.diff-easy{color:#86efac;border-color:#2f6b45}.diff-moderate{color:var(--cy);border-color:#1f5d68}.diff-advanced{color:#fca5a5;border-color:#7f2d2d}
.good{font-size:18px}
.flag{border:1px solid #6b5418;background:var(--warn-bg);border-radius:12px;padding:12px 14px;margin:12px 0 0}
.flag strong{color:var(--warn)}
.arch{border-color:#7f2d2d;background:#1f0b0b}.arch strong{color:#fca5a5}
.topics{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.topics li{font:600 12px/1 var(--mono);color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:5px 7px}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
@media (max-width:560px){
 .facts{grid-template-columns:1fr;gap:2px}
 .facts dd{margin-bottom:10px}
 .tr{grid-auto-columns:82%}
 .oss-repo{display:block;margin:2px 0 0}
}
@media (prefers-reduced-motion:reduce){.tr li,.cat-grid a,.cat-grid a::after{transition:none}.tr li:hover,.cat-grid a:hover{transform:none}}
