/* Tools realm: repository-style project cards and project detail pages */
.repo-section{padding:64px 0 24px}
.repo-section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px;padding-bottom:16px;border-bottom:2px solid var(--text)}
.repo-section-head h2{margin:.2em 0 0;font:900 clamp(1.6rem,3vw,2.4rem)/1.1 var(--display);letter-spacing:-.03em}
.repo-count{display:inline-flex;align-items:center;min-height:24px;padding:2px 9px;border:1px solid var(--border);border-radius:999px;font:800 .68rem/1 var(--display);color:var(--muted);background:color-mix(in srgb,var(--surface) 80%,transparent)}
.repo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,500px),1fr));gap:24px}

.repo-card{position:relative;display:grid;gap:14px;align-content:start;padding:22px 22px 18px;border:2px solid var(--text);background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(12px);box-shadow:6px 6px 0 var(--shadow-color);transition:transform 160ms steps(3,end),box-shadow 160ms steps(3,end)}
.repo-card:hover,.repo-card:focus-within{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--shadow-color)}
.repo-card-head{display:flex;align-items:center;gap:14px;min-width:0}
.repo-logo{flex:none;width:52px;height:52px;border:2px solid var(--text);border-radius:6px;background:#f7f9fc;object-fit:cover;box-shadow:3px 3px 0 var(--accent)}
.repo-title{min-width:0;margin:0;font:800 1.08rem/1.3 var(--display);overflow-wrap:anywhere}
.repo-title a{text-decoration:none}
.repo-title a::after{content:"";position:absolute;inset:0;z-index:1}
.repo-title strong{color:var(--accent)}
.repo-card:hover .repo-title strong{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.repo-owner{font-weight:600;color:var(--muted)}
.repo-visibility{display:inline-flex;align-items:center;flex:none;margin-left:auto;min-height:24px;padding:2px 10px;border:1px solid var(--border);border-radius:999px;font:700 .66rem/1 var(--display);letter-spacing:.02em;color:var(--muted);white-space:nowrap;vertical-align:middle}
.repo-desc{margin:0;color:var(--muted);font-size:.95rem;line-height:1.7}
.repo-topics{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.repo-topics li{padding:2px 10px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font:700 .68rem/1.7 var(--display)}
.repo-meta{display:flex;flex-wrap:wrap;gap:6px 20px;font:700 .72rem/1.5 var(--display);color:var(--muted)}
.lang-dot{display:inline-block;width:10px;height:10px;margin-right:7px;border:1px solid color-mix(in srgb,var(--text) 40%,transparent);background:var(--dot);vertical-align:-1px}
.repo-actions{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:12px;padding-top:16px;border-top:1px dashed var(--border)}
.repo-button{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 15px;border:2px solid var(--text);border-radius:4px;background:var(--surface);color:var(--text);font:800 .74rem/1 var(--display);text-decoration:none;white-space:nowrap;box-shadow:3px 3px 0 var(--shadow-color)}
.repo-button:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--shadow-color)}
.repo-button.primary{background:var(--brand);color:#f7f9fc;box-shadow:3px 3px 0 var(--accent)}
.repo-button.primary:hover{box-shadow:5px 5px 0 var(--accent)}

/* Detail page */
.repo-hero{padding:40px 0 0;border-bottom:2px solid var(--border);background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(12px)}
.repo-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:700 .8rem/1.4 var(--display);color:var(--muted)}
.repo-breadcrumb a{color:var(--accent);text-decoration:none}
.repo-breadcrumb a:hover{text-decoration:underline}
.repo-breadcrumb strong{color:var(--text)}
.repo-hero-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;margin:24px 0 30px}
.repo-logo-lg{width:76px;height:76px;box-shadow:4px 4px 0 var(--accent)}
.repo-hero-copy h1{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0;font:900 clamp(2rem,5vw,3.2rem)/1.05 var(--display);letter-spacing:-.04em}
.repo-hero-copy h1 .repo-visibility{margin-left:0;letter-spacing:.02em}
.repo-hero-copy p{max-width:62ch;margin:.6em 0 0;color:var(--muted)}
.repo-hero-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}
.repo-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.repo-tabs a{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 16px;border-bottom:3px solid transparent;font:800 .78rem/1 var(--display);text-decoration:none;white-space:nowrap;color:var(--muted)}
.repo-tabs a:hover{color:var(--text);border-bottom-color:var(--border)}
.repo-tabs a[aria-current=page]{color:var(--text);border-bottom-color:var(--secondary)}
.repo-tabs a span{padding:2px 7px;border-radius:999px;background:var(--surface-alt);font-size:.66rem}

.repo-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:36px;align-items:start;padding:36px 0 100px}
.repo-main{min-width:0;display:grid;gap:18px}
.repo-commit-bar{display:flex;align-items:center;gap:10px;min-width:0;padding:12px 16px;border:2px solid var(--text);background:color-mix(in srgb,var(--surface-alt) 90%,transparent);font:600 .78rem/1.4 var(--display)}
.repo-commit-bar img{flex:none;width:28px;height:28px;border:2px solid var(--text);border-radius:4px;object-fit:cover}
.repo-commit-message{flex:1;min-width:0;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.repo-commit-bar time{flex:none;color:var(--muted)}
.repo-readme{border:2px solid var(--text);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:6px 6px 0 var(--shadow-color)}
.repo-readme-head{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:2px solid var(--text);background:var(--surface-alt);font:800 .78rem/1 var(--display)}
.repo-readme-body{max-width:none;padding:8px clamp(18px,4vw,40px) 36px}
.repo-readme-body>h1:first-child{margin:.9em 0 .5em;padding-bottom:.35em;border-bottom:1px solid var(--border);font:900 clamp(1.8rem,4vw,2.4rem)/1.15 var(--body)}
.repo-readme-body h2{padding-bottom:.3em;border-bottom:1px solid var(--border);font-size:1.45rem}
.repo-readme-body li{margin:.35em 0}
.repo-readme-body table{display:block;overflow-x:auto}
.repo-readme-body blockquote{border-left-color:var(--accent);font-size:1rem}

.repo-sidebar{display:grid;gap:0;padding:20px;border:2px solid var(--border);background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(12px)}
.repo-sidebar section:last-child{border-bottom:0;padding-bottom:0}
.repo-sidebar section{padding:20px 0;border-bottom:1px solid var(--border)}
.repo-sidebar section:first-child{padding-top:0}
.repo-sidebar h2{display:flex;align-items:center;gap:8px;margin:0 0 12px;font:900 .9rem/1 var(--display)}
.repo-sidebar p{margin:0 0 12px;font-size:.92rem;line-height:1.65}
.repo-sidebar-link{display:inline-block;margin-bottom:14px;font:700 .78rem/1.4 var(--display);color:var(--accent);text-decoration:none;overflow-wrap:anywhere}
.repo-sidebar-link:hover{text-decoration:underline}
.repo-facts{display:grid;gap:8px;margin:16px 0 0;font-size:.84rem}
.repo-facts div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px}
.repo-facts dt{font:800 .68rem/1.9 var(--display);color:var(--muted)}
.repo-facts dd{margin:0;overflow-wrap:anywhere}
.repo-releases{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.repo-release-head{display:flex;align-items:center;gap:8px;font:800 .9rem/1.3 var(--display)}
.repo-latest{padding:2px 8px;border:1px solid #2e9e5b;border-radius:999px;color:#2e9e5b;font:800 .62rem/1.4 var(--display)}
.repo-releases time{font:700 .7rem/1.6 var(--display);color:var(--muted)}
.repo-releases p{margin:4px 0 0;font-size:.85rem;color:var(--muted)}
.repo-stack{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0;padding:0;list-style:none;font:700 .74rem/1.6 var(--display)}

@media(max-width:1024px){.repo-layout{grid-template-columns:1fr}
}
@media(max-width:768px){.repo-hero,.repo-card,.repo-sidebar{backdrop-filter:none}
.repo-hero-main{grid-template-columns:auto minmax(0,1fr);align-items:start}
.repo-hero-actions{grid-column:1 / -1;justify-content:flex-start}
.repo-logo-lg{width:60px;height:60px}
.repo-commit-bar time{display:none}
.repo-card-head{flex-wrap:wrap}
.repo-card .repo-visibility{margin-left:66px}
}
@media(max-width:430px){.repo-button{flex:1;justify-content:center}
.repo-card{padding:18px}
}
@media(prefers-reduced-motion:reduce){.repo-card,.repo-card:hover,.repo-button:hover{transition:none;transform:none}}

.repo-gallery{border:2px solid var(--text);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:6px 6px 0 var(--shadow-color)}
.repo-gallery-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(min(100%,520px),78%);gap:18px;overflow-x:auto;padding:18px;scroll-snap-type:x mandatory}
.repo-gallery figure{margin:0;scroll-snap-align:start}
.repo-gallery img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top left;border:2px solid var(--text);background:var(--surface-alt)}
.repo-gallery figcaption{margin-top:10px;font:700 .74rem/1.5 var(--display);color:var(--muted)}
