/* Festival Resources (/resources) — same visual language as the Showcase page:
   homepage header + footer (site.css), liquid-glass pill bar, dark rounded cards with hairline borders. */
.rs-page { background: var(--site-bg, #060608); }
/* position/z-index keep the page above the shared footer's 200px fade-in, so the last cards/CTA are never dimmed */
.rs-main { position: relative; z-index: 1; width: 100%; max-width: 1240px; margin: 0 auto; padding: calc(70px + clamp(40px, 6vw, 72px)) clamp(16px, 4vw, 40px) 80px; flex: 1; }
.rs-intro { text-align: center; max-width: 760px; margin: 0 auto; }
.rs-intro .section-heading { margin-bottom: 14px; }
.rs-lead { color: rgba(255,255,255,0.64); font-size: 1rem; line-height: 1.7; margin: 0 auto; max-width: 620px; }
.rs-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ===== Section bar — the navbar's liquid-glass pill ===== */
.rs-nav { display: flex; justify-content: center; margin: 36px auto 44px; max-width: 100%; }
.rs-tabs {
  display: flex; align-items: center; gap: 2px; max-width: 100%; padding: 5px; border-radius: 40px;
  background: linear-gradient(180deg, rgba(255,255,255,0.09) 0%, rgba(255,255,255,0.035) 100%);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), inset 0 -1px 0 rgba(255,255,255,0.03), 0 10px 30px rgba(0,0,0,0.35);
  backdrop-filter: var(--ios-blur); -webkit-backdrop-filter: var(--ios-blur);
  overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain;
}
.rs-tabs::-webkit-scrollbar { display: none; }
.rs-tab {
  flex: 0 0 auto; display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border-radius: 999px; white-space: nowrap;
  font-size: 0.68rem; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; text-decoration: none; color: rgba(255,255,255,0.7);
  transition: color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}
.rs-tab:hover { color: #fff; background: rgba(255,255,255,0.06); }
.rs-tab.is-active { color: #fff; background: rgba(255,255,255,0.12); box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 2px 10px rgba(0,0,0,0.25); }
.rs-tab:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* ===== Section header ===== */
.rs-pane { animation: rs-in 0.35s ease both; min-height: 420px; }
@keyframes rs-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.rs-pane-head { max-width: 760px; margin: 0 0 30px; }
.rs-pane-eyebrow { display: block; font-size: 0.62rem; font-weight: 700; letter-spacing: 3.6px; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 10px; }
.rs-pane-title { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: #fff; margin: 0 0 10px; line-height: 1.15; }
.rs-pane-desc { font-size: 0.98rem; line-height: 1.7; color: rgba(255,255,255,0.62); margin: 0; }

/* ===== Cards — Showcase card language (radius 18px, hairline border, quiet glass) ===== */
.rs-card {
  position: relative; list-style: none; margin: 0; padding: 26px 24px 26px;
  background: linear-gradient(180deg, rgba(255,255,255,0.045) 0%, rgba(255,255,255,0.015) 100%), #0d0d0f;
  border: 1px solid rgba(255,255,255,0.08); border-radius: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
  transition: border-color 0.3s ease, transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .rs-card:hover { border-color: rgba(255,255,255,0.22); transform: translateY(-3px); }
}
.rs-card-title { font-size: 1rem; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; color: #fff; margin: 0 0 8px; line-height: 1.35; }
.rs-card-text { font-size: 0.9rem; line-height: 1.7; color: rgba(255,255,255,0.64); margin: 0; }
.rs-card-text a { color: #fff; }

/* How To Submit — five step cards */
.rs-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; margin: 0; padding: 0; }
.rs-step-num { display: block; font-size: 2.6rem; font-weight: 700; line-height: 1; letter-spacing: -1px; color: rgba(255,255,255,0.9); margin-bottom: 22px; }
.rs-step .rs-card-title { font-size: 0.92rem; }

/* Guidelines — numbered cards */
.rs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; margin: 0; padding: 0; }
.rs-grid[hidden] { display: none; }
.rs-guide-num { display: block; font-size: 0.7rem; font-weight: 700; letter-spacing: 3px; color: rgba(255,255,255,0.42); margin-bottom: 14px; }

/* Updates — dated news cards */
.rs-updates { display: flex; flex-direction: column; gap: 14px; max-width: 900px; }
.rs-update { display: flex; gap: 26px; align-items: flex-start; }
.rs-upd-date { flex: 0 0 92px; display: flex; flex-direction: column; gap: 4px; padding-right: 22px; border-right: 1px solid rgba(255,255,255,0.08); }
.rs-upd-day { font-size: 2rem; font-weight: 700; line-height: 1; color: #fff; }
.rs-upd-month, .rs-upd-label { font-size: 0.64rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,0.55); line-height: 1.5; }
.rs-upd-body { flex: 1; min-width: 0; }
.rs-upd-badge { display: inline-block; margin-bottom: 10px; padding: 4px 10px; border-radius: 999px; font-size: 0.56rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,0.75); border: 1px solid rgba(255,255,255,0.18); }
.rs-upd-badge.is-important { color: #000; background: #fff; border-color: #fff; }

/* Jury */
.rs-jury { grid-template-columns: repeat(auto-fit, minmax(200px, 240px)); }
.rs-juror { text-align: center; }
.rs-juror-photo { width: 96px; height: 96px; margin: 0 auto 16px; border-radius: 50%; overflow: hidden; background: #070708; border: 1px solid rgba(255,255,255,0.1); }
.rs-juror-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.rs-note { max-width: 760px; padding: 26px 24px; border-radius: 18px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.02); }
.rs-note[hidden] { display: none; }
.rs-note p { font-size: 0.95rem; line-height: 1.7; color: rgba(255,255,255,0.7); margin: 0 0 16px; }
.rs-note p:last-child { margin: 0; }

/* Policies — readable article */
.rs-article { max-width: 820px; padding: 8px 32px; border-radius: 18px; border: 1px solid rgba(255,255,255,0.08); background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.01) 100%), #0b0b0d; }
.rs-article-sec { padding: 26px 0; }
.rs-article-sec + .rs-article-sec { border-top: 1px solid rgba(255,255,255,0.07); }
.rs-article-sec h2, .rs-article-sec h3 { font-size: 0.95rem; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; color: #fff; margin: 0 0 10px; }
.rs-article-sec p { font-size: 0.95rem; line-height: 1.8; color: rgba(255,255,255,0.68); margin: 0; }
.rs-article-sec a { color: #fff !important; }

/* FAQ — site accordion (site.css .faq-*), widened for the page */
#rsPane-faq .faq-list { max-width: 900px; }
#rsPane-faq .faq-item { border-radius: 16px; }

/* CTA + text links */
.rs-cta-row { display: flex; justify-content: center; margin-top: 36px; }
.rs-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 30px; border-radius: 999px;
  font-size: 0.74rem; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; text-decoration: none; color: #000; background: #fff;
  transition: background 0.25s ease;
}
.rs-cta span { display: inline-block; transition: transform 0.25s ease; }
.rs-cta:hover { background: #e8e8e8; }
.rs-cta:hover span { transform: translateX(3px); }
.rs-cta:focus-visible, .rs-link:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.rs-link {
  display: inline-flex; align-items: center; gap: 8px; font-size: 0.7rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: #fff; text-decoration: underline; text-underline-offset: 6px; text-decoration-color: rgba(255,255,255,0.35);
}
.rs-link:hover { text-decoration-color: #fff; }

@media (max-width: 768px) {
  .rs-main { padding-top: calc(60px + 36px); }
  .rs-nav { justify-content: flex-start; margin: 28px calc(-1 * clamp(16px, 4vw, 40px)) 32px; padding: 0 clamp(16px, 4vw, 40px); }
  .rs-tab { height: 36px; padding: 0 14px; font-size: 0.64rem; letter-spacing: 1.2px; }
  .rs-steps { grid-template-columns: 1fr 1fr; gap: 12px; }
  .rs-step-num { font-size: 2rem; margin-bottom: 14px; }
  .rs-card { padding: 20px 18px; }
  .rs-grid { grid-template-columns: 1fr; }
  .rs-jury { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-update { gap: 16px; }
  .rs-upd-date { flex-basis: 70px; padding-right: 14px; }
  .rs-upd-day { font-size: 1.6rem; }
  .rs-article { padding: 4px 20px; }
  .rs-cta { width: 100%; }
}
@media (max-width: 420px) {
  .rs-steps { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .rs-pane { animation: none; }
  .rs-card, .rs-cta span { transition: none; }
}

/* ===== One page per topic (pre-rendered) — grouped sections, facts, prose ===== */
.rs-group + .rs-group { margin-top: 52px; }
.rs-group-title { font-size: 0.72rem; font-weight: 700; letter-spacing: 3.2px; text-transform: uppercase; color: rgba(255,255,255,0.55); margin: 0 0 18px; }
.rs-group-lead { font-size: 0.95rem; line-height: 1.7; color: rgba(255,255,255,0.64); margin: 0 0 18px; max-width: 760px; }
.rs-facts { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); list-style: none; }
.rs-award-list { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rs-award-list li { padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.14); font-size: 0.7rem; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase; color: rgba(255,255,255,0.8); }
.rs-prose p + p { margin-top: 12px; }
.rs-prose a { color: #fff; }
.rs-more { margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 18px; }
.rs-center { justify-content: center; }
.rs-updated { font-size: 0.72rem; letter-spacing: 1.6px; text-transform: uppercase; color: rgba(255,255,255,0.45); margin: 0 0 16px; }
.rs-juror-role { font-size: 0.82rem; line-height: 1.5; color: rgba(255,255,255,0.6); margin: 0 0 10px; }
.rs-juror-bio { text-align: left; font-size: 0.86rem; }
#submission-rules { scroll-margin-top: 96px; }
