/* dumpgang shared styles — theme-agnostic; each site template sets the
   palette vars (--bg, --accent, …) and owns .hero background + h1 treatment. */
* { box-sizing: border-box; margin: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg); color: var(--cream);
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  min-height: 100vh;
}
.hero { position: relative; padding: 3.2rem 1rem 3rem; text-align: center; }
.hero::after { /* faint film grain */
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.22;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero > * { position: relative; z-index: 1; }
.subtitle {
  margin-top: clamp(1.2rem, 3vw, 2rem); color: var(--hero-sub, #fff); font-weight: 800;
  font-size: clamp(.9rem, 2.8vw, 1.35rem); letter-spacing: .3em;
  text-transform: uppercase; text-indent: .3em;
}
/* press-quote star row */
.stars {
  display: flex; justify-content: center; gap: clamp(1rem, 4vw, 2.8rem);
  margin-top: 1.4rem; align-items: flex-start; flex-wrap: wrap;
}
.stars .col { text-align: center; }
.stars .s { color: var(--star, #d92c1f); font-size: clamp(1rem, 2.6vw, 1.4rem); letter-spacing: .12em; }
.stars .quote {
  color: var(--hero-quote, #fff); font-weight: 800; text-transform: uppercase;
  font-size: clamp(.8rem, 2.4vw, 1.05rem); max-width: 34ch;
}
.stars .src { color: var(--hero-src, #ffffffd9); font-size: .72rem; margin-top: .25rem; font-weight: 400; }
.searchbar { display: flex; max-width: 620px; margin: 1.8rem auto 0; gap: .55rem; }
input[type=search] {
  flex: 1; padding: .85rem 1.15rem; font-size: 1.05rem; border-radius: 14px;
  border: 1px solid #ffffff88; background: #ffffffe8; color: #1c2a38;
  outline: none; transition: box-shadow .15s;
}
input[type=search]::placeholder { color: #5b6b7a; }
input[type=search]:focus { box-shadow: 0 0 0 3px var(--focus, #d92c1f55); }
button {
  padding: .85rem 1.3rem; font-size: 1rem; border-radius: 14px; border: none;
  background: var(--accent); color: var(--accent-ink, #fff); font-weight: 800; cursor: pointer;
  transition: transform .08s, background .15s;
}
button:hover { background: var(--accent-dark); }
button:active { transform: scale(.97); }
button.ghost { background: #ffffff14; color: var(--cream); backdrop-filter: blur(8px); }
button.ghost:hover { background: #ffffff22; }
button.sky { background: #ffffff2b; border: 1px solid #ffffff55; padding: .85rem 1rem; color:#fff; }
button.sky:hover { background: #ffffff45; }
.chips { margin-top: 1rem; display:flex; gap:.45rem; justify-content:center; flex-wrap:wrap; }
.chip {
  font-size:.8rem; padding:.35rem .8rem; border-radius:999px; cursor:pointer;
  background:#ffffff2b; border:1px solid #ffffff55; color:#fff; transition: all .15s;
}
.chip:hover { background:#ffffff45; border-color:#fff; }
#status { text-align: center; color: var(--muted); padding: 1.2rem; min-height: 3.4rem; }
#results {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.1rem; padding: 0 1.4rem 3rem; max-width: 1240px; margin: 0 auto;
}
.card {
  background: var(--panel-solid); border-radius: 16px; overflow: hidden;
  cursor: pointer; border: 1px solid var(--line);
  transition: transform .14s, border-color .14s, box-shadow .14s;
}
.card:hover { transform: translateY(-3px); border-color: var(--accent); box-shadow: 0 14px 34px #00000073; }
.card img { width: 100%; display: block; aspect-ratio: 16/9; object-fit: cover; background: #000; }
.card .q {
  padding: .65rem .8rem .25rem; font-size: .88rem; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.card .ep {
  margin: .5rem .8rem .8rem; font-size: .68rem; letter-spacing: .09em;
  text-transform: uppercase; color: var(--cream); opacity:.85;
  border-left: 3px solid var(--accent); padding-left: .5rem;
}
.skel { pointer-events:none; }
.skel .shimmer {
  aspect-ratio:16/9; background: linear-gradient(100deg,#20231a 40%,#2a2e21 50%,#20231a 60%);
  background-size: 200% 100%; animation: sh 1.1s infinite linear;
}
@keyframes sh { to { background-position: -200% 0; } }
#editor {
  position: fixed; inset: 0; background: #0a0b0866; display: none;
  align-items: center; justify-content: center; padding: 1rem; z-index: 10;
  backdrop-filter: blur(2px);
}
#editor.open { display: flex; }
.panel {
  background: var(--panel); border: 1px solid var(--line); backdrop-filter: blur(18px);
  border-radius: 20px; max-width: 780px; width: 100%; padding: 1.1rem;
  max-height: 96vh; overflow-y: auto; animation: pop .18s ease-out;
}
@keyframes pop { from { transform: scale(.96); opacity: 0; } }
.panel img { width: 100%; border-radius: 12px; background: #000; min-height: 180px; }
.epname {
  color: var(--cream); opacity:.8; font-size: .72rem; margin-top: .6rem;
  text-transform: uppercase; letter-spacing: .09em;
  border-left: 3px solid var(--accent); padding-left: .5rem;
}
.panel textarea {
  width: 100%; margin-top: .65rem; padding: .65rem .85rem; font-size: 1rem;
  border-radius: 12px; border: 1px solid var(--line); background: var(--bg);
  color: var(--cream); resize: vertical; min-height: 4.2rem; font-family: inherit;
}
.panel textarea:focus { border-color: var(--accent); outline: none; }
.row { display: flex; gap: .5rem; margin-top: .7rem; flex-wrap: wrap; align-items: center; }
.row .spacer { flex: 1; }
footer { text-align:center; color:var(--muted); font-size:.75rem; padding:2.2rem 1rem; }
footer b { color:var(--cream); text-transform:uppercase; letter-spacing:.06em; }
@media (prefers-reduced-motion: reduce) {
  *, .skel .shimmer { animation: none !important; transition: none !important; }
}
