*{box-sizing:border-box}
:root{
  --bg:#fbf8f3;
  --surface:#ffffff;
  --text:#172033;
  --muted:#737b89;
  --line:#e7e2da;
  --accent:#ff6b0b;
  --accent-soft:#fff1e7;
  --shadow:0 12px 30px rgba(24,31,46,.08);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
body{margin:0;background:var(--bg);color:var(--text)}
button,input,select{font:inherit}
button{cursor:pointer}
.topbar{
  position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);border-bottom:1px solid #eee7de
}
.nav-shell{
  width:min(1240px,calc(100% - 36px));height:70px;margin:auto;display:grid;
  grid-template-columns:auto 1fr auto;gap:24px;align-items:center
}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--text)}
.brand-mark{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,#ff9e2a,#ff5a00);color:#fff;font-weight:900;
  box-shadow:inset 0 0 0 5px rgba(255,255,255,.28),0 4px 12px rgba(255,107,11,.22)
}
.brand-copy{display:flex;flex-direction:column;line-height:1.05}
.brand-copy strong{font-size:18px}
.brand-copy em{font-style:normal;color:var(--accent)}
.brand-copy small{font-size:10px;color:#9299a4;margin-top:4px}
.main-nav{
  justify-self:center;display:flex;align-items:center;gap:4px;background:#fff;
  border:1px solid #ebe5dc;border-radius:999px;padding:5px 8px;box-shadow:0 2px 8px rgba(31,41,55,.04)
}
.nav-item{
  border:0;background:transparent;border-radius:999px;padding:10px 22px;
  color:#505968;font-weight:700;font-size:13px
}
.nav-item.active{color:var(--accent);background:#fff7f1}
.nav-item.disabled{opacity:.42;cursor:not-allowed}
.top-actions{display:flex;justify-content:flex-end}
.beta-badge{
  font-size:11px;font-weight:900;color:#14608f;border:1px solid #b6d8ec;
  background:#edf8ff;border-radius:999px;padding:8px 11px
}

.hero{
  position:relative;overflow:hidden;min-height:410px;border-bottom:1px solid #eee6db;
  background:
    radial-gradient(circle at 7% 23%,rgba(255,176,74,.22) 0 22px,transparent 56px),
    radial-gradient(circle at 96% 31%,rgba(255,176,74,.15) 0 17px,transparent 48px),
    linear-gradient(180deg,#fffdfa,#fbf7f0)
}
.hero:before,.hero:after{
  content:"";position:absolute;left:-8%;right:-8%;height:170px;border-radius:50%;
  border-top:1px solid rgba(255,139,38,.17);transform:rotate(-5deg)
}
.hero:before{top:150px}
.hero:after{top:195px;transform:rotate(5deg)}
.hero-inner{
  position:relative;z-index:2;width:min(950px,calc(100% - 36px));margin:auto;
  text-align:center;padding:95px 0 42px
}
.hero h1{font-size:42px;line-height:1.1;letter-spacing:-.035em;margin:0;font-weight:850}
.hero h1 span{color:var(--accent)}
.hero p{color:#666f7e;margin:16px 0 0;font-size:15px}
.search-row{
  margin:30px auto 0;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;
  background:#fff;border:1px solid #ece5dc;border-radius:18px;padding:8px 9px 8px 18px;
  box-shadow:0 12px 34px rgba(44,46,56,.08)
}
.search-icon{font-size:28px;color:#9aa2ad;transform:rotate(-18deg);line-height:1}
.search-row input{border:0;outline:0;font-size:15px;color:var(--text);min-width:0}
.search-row input::placeholder{color:#a0a6af}
.search-row button{
  border:0;background:var(--accent);color:#fff;font-weight:800;border-radius:12px;
  padding:13px 32px;box-shadow:0 7px 16px rgba(255,107,11,.22)
}
.search-row button:disabled{opacity:.55;cursor:wait}
.filter-row{display:flex;justify-content:center;gap:12px;margin-top:18px}
.filter-card{
  width:190px;display:flex;align-items:center;gap:11px;text-align:left;background:#fff;
  border:1px solid #e6dfd6;border-radius:14px;padding:10px 13px;box-shadow:0 5px 15px rgba(32,37,48,.04)
}
.filter-icon{color:var(--accent);font-size:19px}
.filter-copy{display:flex;flex-direction:column;min-width:0;flex:1}
.filter-copy small{font-size:10px;font-weight:800;color:#a0a6b1;letter-spacing:.05em}
.filter-copy select{
  border:0;outline:0;background:transparent;color:#273143;font-weight:750;padding:1px 0 0;
  width:100%;appearance:auto
}
.popular-row{
  display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;
  margin-top:20px;font-size:12px;color:#687180
}
.popular-row strong{margin-right:3px}
.popular-chip{
  border:1px solid #e6e0d8;background:#fff;color:#5b6572;border-radius:999px;
  padding:6px 11px;font-size:12px
}
.popular-chip:hover{border-color:#ffbd8e;color:var(--accent)}
.status{
  display:inline-flex;margin-top:16px;padding:7px 11px;border-radius:999px;
  background:#f6f3ee;color:#767d87;font-size:12px
}
.status.error{background:#fff0f0;color:#b42318}
.status.success{background:#eef9f1;color:#24754a}

.content-shell{width:min(1240px,calc(100% - 36px));margin:34px auto 70px}
.empty-state{
  min-height:280px;border:1px dashed #ded8cf;border-radius:22px;background:rgba(255,255,255,.35);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px
}
.spark{
  width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-size:30px;
  color:var(--accent);background:radial-gradient(circle,#fff 0 28%,#fff0df 70%,transparent 72%);
  box-shadow:0 7px 28px rgba(255,124,25,.12)
}
.empty-state h2{margin:16px 0 0;font-size:20px}
.empty-state p{max-width:480px;color:#7b838e;line-height:1.6;margin:10px 0 0}
.hidden{display:none!important}

.results-section{padding-top:4px}
.results-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}
.section-kicker{margin:0 0 5px;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.1em}
.results-top h2{margin:0;font-size:27px}
.results-top p{margin:6px 0 0;color:#7b838e;font-size:13px}
.local-sort{
  display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e7e1d8;
  border-radius:15px;padding:10px 12px;margin-bottom:18px;box-shadow:0 5px 15px rgba(28,34,45,.03)
}
.local-sort>span{font-size:12px;font-weight:800;color:#6d7581;margin-right:2px}
.local-sort-btn{
  border:1px solid #e7e1d8;background:#fff;color:#5b6572;border-radius:999px;padding:7px 11px;
  font-size:12px;font-weight:750
}
.local-sort-btn.active{background:#fff1e7;border-color:#ffbf93;color:var(--accent)}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.card{
  background:#fff;border:1px solid #e8e2da;border-radius:17px;overflow:hidden;
  box-shadow:0 8px 24px rgba(28,34,45,.05);transition:.18s ease
}
.card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(28,34,45,.09)}
.thumb-wrap{aspect-ratio:4/3;background:#eeeae4;overflow:hidden}
.thumb{width:100%;height:100%;display:block;object-fit:cover}
.card-body{padding:14px}
.title{
  font-weight:800;line-height:1.35;font-size:14px;margin:0 0 9px;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.creator{font-size:11px;color:#7b8491;margin:0 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stats{display:flex;gap:9px;flex-wrap:wrap;font-size:11px;color:#596270}
.download-stat{display:inline-flex;gap:3px;align-items:baseline;flex-wrap:wrap}
.monthly-rate{color:var(--accent);font-weight:900;white-space:nowrap}
.card a{
  display:inline-block;margin-top:12px;font-size:11px;font-weight:800;color:#222c3b;text-decoration:none
}
.card a:hover{color:var(--accent)}
.empty{grid-column:1/-1;padding:40px;text-align:center;color:#7b838e}

@media(max-width:1080px){
  .nav-shell{grid-template-columns:auto 1fr}
  .top-actions{display:none}
  .main-nav{justify-self:end;overflow:auto;max-width:100%}
  .nav-item{padding:9px 14px;white-space:nowrap}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .nav-shell{height:auto;padding:12px 0;grid-template-columns:1fr}
  .main-nav{justify-self:stretch;justify-content:flex-start}
  .hero-inner{padding-top:58px}
  .hero h1{font-size:34px}
  .filter-row{flex-direction:column;align-items:center}
  .filter-card{width:min(100%,420px)}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .nav-shell,.hero-inner,.content-shell{width:min(100% - 20px,1240px)}
  .search-row{grid-template-columns:auto 1fr}
  .search-row button{grid-column:1/-1}
  .popular-row{justify-content:flex-start}
  .grid{grid-template-columns:1fr}
}
