.hero[data-astro-cid-j7pv25f6]{text-align:center;padding:3rem 0 1.5rem}.hero[data-astro-cid-j7pv25f6] h1[data-astro-cid-j7pv25f6]{font-size:2rem;margin-bottom:.5rem}.hero[data-astro-cid-j7pv25f6] p[data-astro-cid-j7pv25f6]{color:var(--color-text-muted);margin-bottom:1.25rem}.search-bar[data-astro-cid-j7pv25f6]{max-width:480px;margin:0 auto}.search-bar[data-astro-cid-j7pv25f6] input[data-astro-cid-j7pv25f6]{width:100%;padding:.65rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:.95rem;font-family:inherit;outline:none;transition:border-color .15s}.search-bar[data-astro-cid-j7pv25f6] input[data-astro-cid-j7pv25f6]:focus{border-color:var(--color-accent)}.search-bar[data-astro-cid-j7pv25f6] input[data-astro-cid-j7pv25f6]::placeholder{color:var(--color-text-muted);opacity:.6}.gallery-status[data-astro-cid-j7pv25f6]{text-align:center;padding:4rem 0;color:var(--color-text-muted)}.error-text[data-astro-cid-j7pv25f6]{color:#f87171;margin-bottom:1rem}.gallery-grid[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:repeat(1,1fr);gap:1.5rem}@media(min-width:540px){.gallery-grid[data-astro-cid-j7pv25f6]{grid-template-columns:repeat(2,1fr)}}@media(min-width:860px){.gallery-grid[data-astro-cid-j7pv25f6]{grid-template-columns:repeat(3,1fr)}}@media(min-width:1100px){.gallery-grid[data-astro-cid-j7pv25f6]{grid-template-columns:repeat(4,1fr)}}.scroll-sentinel[data-astro-cid-j7pv25f6]{display:flex;justify-content:center;padding:2rem 0}.btn[data-astro-cid-j7pv25f6]{display:inline-block;padding:.6rem 1.5rem;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:.9rem;cursor:pointer;transition:background-color .15s ease}.btn[data-astro-cid-j7pv25f6]:hover{background:var(--color-primary-hover)}.btn[data-astro-cid-j7pv25f6]:disabled{opacity:.6;cursor:not-allowed}.spinner[data-astro-cid-j7pv25f6]{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;margin:0 auto 1rem;animation:spin .8s linear infinite}.spinner--small[data-astro-cid-j7pv25f6]{width:24px;height:24px;margin:0}@keyframes spin{to{transform:rotate(360deg)}}.build-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background-color .18s ease;color:var(--color-text);text-decoration:none}.build-card:hover{background:var(--color-surface-hover);border-color:var(--color-accent);transform:translateY(-4px);box-shadow:0 10px 30px #00000080,0 0 0 1px var(--color-glow),0 0 22px var(--color-glow);text-decoration:none}.build-card__thumbnail{position:relative;aspect-ratio:4 / 3;background:var(--color-bg);overflow:hidden}.build-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .35s ease,transform .5s ease}.build-card__img--peek{opacity:0;transform:scale(1.06)}.build-card:hover .build-card__img--iso{opacity:0}.build-card:hover .build-card__img--peek{opacity:1;transform:scale(1)}.build-card__overlay{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;gap:.3rem;padding:.5rem;background:linear-gradient(transparent,#080810d9);transform:translateY(100%);opacity:0;transition:transform .22s ease,opacity .22s ease}.build-card:hover .build-card__overlay{transform:translateY(0);opacity:1}.build-card__overlay .chip{font-family:var(--font-mono);font-size:.68rem;padding:.12rem .45rem;border-radius:4px;background:#00ff881f;border:1px solid rgba(0,255,136,.35);color:var(--color-text);backdrop-filter:blur(2px);white-space:nowrap}.build-card__overlay .chip--model{color:var(--color-primary);border-color:var(--color-primary)}.build-card__info{padding:.75rem 1rem}.build-card__name{font-size:1rem;font-weight:600;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.build-card__author{display:block;font-size:.8rem;color:var(--color-text-muted);margin-bottom:.25rem}.build-card__meta{display:flex;justify-content:space-between;font-size:.8rem;color:var(--color-text-muted)}
