/* ═══════════════════════════════════════════════════
   PAGE 0 — LOGIN OVERLAY
═══════════════════════════════════════════════════ */

.login-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: var(--bg);
}

.login-error {
  font-size: 0.78rem;
  color: rgba(224, 80, 80, 0.85);
  font-style: italic;
}

/* ═══════════════════════════════════════════════════
   PAGE 1 — INTAKE
═══════════════════════════════════════════════════ */

.intake-wrap {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 1.5rem;
  position: relative;
}

/* Subtle grid texture */
.intake-wrap::before {
  content:'';
  position:fixed; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events:none;
  z-index:0;
}

.intake-inner {
  position:relative;
  z-index:1;
  width:100%;
  max-width:580px;
}

/* Logo */
.intake-logo {
  display:flex;
  align-items:center;
  gap:1rem;
  margin-bottom:3rem;
}
.logo-mark {
  width:52px;
  height:52px;
  object-fit:contain;
  display:block;
}
.logo-wordmark {
  font-family:'League Spartan',sans-serif;
  font-size:1.1rem;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--white);
}
.logo-wordmark span { color:var(--white); }

/* Intake heading */
.intake-eyebrow {
  font-family:'League Spartan',sans-serif;
  font-size:0.65rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--yellow);
  margin-bottom:0.6rem;
}
.intake-h1 {
  font-family:'League Spartan',sans-serif;
  font-size:2.4rem;
  font-weight:800;
  line-height:1.05;
  margin-bottom:0.5rem;
  color:var(--white);
}
.intake-sub {
  font-family:'Lato',sans-serif;
  font-size:0.9rem;
  color:var(--white70);
  line-height:1.7;
  margin-bottom:2.5rem;
}

/* Form fields */
.field-group {
  margin-bottom:1.4rem;
}
.field-label {
  font-family:'League Spartan',sans-serif;
  font-size:0.65rem;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--yellow);
  display:block;
  margin-bottom:0.5rem;
}
.field-input {
  width:100%;
  background:var(--white08);
  border:1px solid var(--white15);
  border-top:none; border-left:none; border-right:none;
  border-bottom:1px solid var(--white40);
  color:var(--white);
  font-family:'Lato',sans-serif;
  font-size:1.05rem;
  font-weight:300;
  padding:0.7rem 0.2rem;
  outline:none;
  transition:border-color 0.2s;
  background:transparent;
}
.field-input::placeholder { color:var(--white40); }
.field-input:focus { border-bottom-color:var(--yellow); }

/* Film type cards */
.film-type-label {
  font-family:'League Spartan',sans-serif;
  font-size:0.65rem;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--yellow);
  display:block;
  margin-bottom:0.8rem;
}
.film-types {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0.6rem;
}
.film-card {
  border:1px solid var(--white15);
  padding:1rem 1.2rem;
  cursor:pointer;
  transition:all 0.2s;
  position:relative;
  user-select:none;
}
.film-card:hover { border-color:var(--white40); background:var(--white08); }
.film-card.selected { border-color:var(--yellow); background:var(--yellow10); }
.film-card.locked { opacity:0.35; cursor:default; }
.film-card-title {
  font-family:'League Spartan',sans-serif;
  font-size:0.85rem;
  font-weight:600;
  letter-spacing:0.03em;
  margin-bottom:0.2rem;
}
.film-card-note {
  font-size:0.7rem;
  color:var(--white40);
}
.film-card.selected .film-card-title { color:var(--yellow); }
.film-card-badge {
  position:absolute;
  top:0.5rem; right:0.6rem;
  font-family:'League Spartan',sans-serif;
  font-size:0.5rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  background:var(--white08);
  color:var(--white40);
  padding:0.15rem 0.4rem;
}

/* CTA button */
.cta-row {
  margin-top:2rem;
  display:flex;
  align-items:center;
  gap:1rem;
}
.btn-cta {
  background:var(--yellow);
  color:var(--bg);
  border:none;
  font-family:'League Spartan',sans-serif;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.15em;
  text-transform:uppercase;
  padding:0.9rem 2rem;
  cursor:pointer;
  transition:opacity 0.2s, transform 0.15s;
  flex-shrink:0;
}
.btn-cta:hover { opacity:0.88; transform:translateY(-1px); }
.btn-cta:disabled { opacity:0.3; cursor:not-allowed; transform:none; }
.cta-hint {
  font-size:0.75rem;
  color:var(--white40);
  font-style:italic;
}
