:root{
  --ink:#0F1720;
  --surface:#182430;
  --surface-2:#1F2E3C;
  --line:rgba(245,247,250,0.08);
  --text:#F5F7FA;
  --muted:#8B97A6;
  --amber:#F2B807;
  --coral:#FF6B5B;
  --radius:14px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}

/* NAV */
.topnav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  max-width:1280px;
  margin:0 auto;
  padding:20px 24px;
}
.topnav .logo{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:18px;
  letter-spacing:-0.01em;
  text-decoration:none;
}
.topnav .logo span{color:var(--coral);}
.topnav .catlinks{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
}
.topnav .catlinks a{
  text-decoration:none;
  color:var(--muted);
  padding:6px 10px;
  border-radius:20px;
  border:1px solid var(--line);
  transition:color .15s, border-color .15s;
  white-space:nowrap;
}
.topnav .catlinks a:hover, .topnav .catlinks a.active{
  color:var(--text);
  border-color:var(--amber);
}

/* HERO */
.hero{
  padding:44px 24px 36px;
  max-width:980px;
  margin:0 auto;
  text-align:center;
}
.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--amber);
  margin-bottom:16px;
}
h1{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:clamp(28px,5vw,48px);
  line-height:1.08;
  margin:0 0 14px;
  letter-spacing:-0.01em;
}
h1 span{color:var(--coral);}
.sub{
  color:var(--muted);
  font-size:16px;
  max-width:520px;
  margin:0 auto 32px;
  line-height:1.5;
}

/* SEARCH */
.scanner{
  position:relative;
  max-width:560px;
  margin:0 auto;
  display:flex;
  align-items:center;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  padding:6px 6px 6px 20px;
  transition:border-color .2s, box-shadow .2s;
}
.scanner:focus-within{
  border-color:var(--amber);
  box-shadow:0 0 0 4px rgba(242,184,7,0.12);
}
.scanner-icon{ width:18px;height:18px;flex-shrink:0;margin-right:12px;color:var(--muted); }
.scanner input{
  flex:1; background:transparent; border:none; outline:none; color:var(--text);
  font-family:'JetBrains Mono',monospace; font-size:15px; letter-spacing:0.03em; padding:14px 0;
}
.scanner input::placeholder{color:var(--muted); font-family:'Inter',sans-serif; letter-spacing:normal;}
.scanner button{
  background:var(--amber); color:#1A1400; border:none;
  font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:14px;
  padding:12px 22px; border-radius:8px; cursor:pointer; transition:filter .15s, transform .1s;
}
.scanner button:hover{filter:brightness(1.08);}
.scanner button:active{transform:scale(0.97);}

.status-row{
  max-width:560px; margin:14px auto 0; display:flex; justify-content:space-between;
  font-size:12.5px; color:var(--muted); font-family:'JetBrains Mono',monospace;
}
.status-row #resultCount{color:var(--text);}
#clearWrap{cursor:pointer;}

/* GRID */
.grid-wrap{ max-width:1280px; margin:0 auto; padding:20px 20px 100px; }
.grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px; }
.card{
  display:block; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; text-decoration:none;
  transition:transform .18s ease, border-color .18s ease;
}
.card:hover{ transform:translateY(-3px); border-color:rgba(255,107,91,0.5); }
.card .thumb{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; background:var(--surface-2); }
.card .meta{ padding:10px 12px 12px; }
.card .code{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--amber); letter-spacing:0.04em; }
.card .name{
  font-size:13px; color:var(--text); margin-top:4px; line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

.empty{ text-align:center; padding:80px 20px; color:var(--muted); }
.empty strong{ color:var(--text); font-family:'Space Grotesk',sans-serif; }

#sentinel{ height:1px; }
.loading-row{ text-align:center; padding:24px; color:var(--muted); font-family:'JetBrains Mono',monospace; font-size:12px; }

footer{
  text-align:center; padding:32px 20px 48px; color:var(--muted); font-size:12px; border-top:1px solid var(--line);
}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important; scroll-behavior:auto !important;}
}
