/* Leicester — index.css (homepage + shared inner-page bits) */
.hero { padding: clamp(34px, 4.6vw, 66px) var(--gutter) clamp(28px, 3.6vw, 50px); }
.hero .tagline { display: flex; align-items: center; gap: 12px; }
.hero .tagline .rule { flex: 1; height: 1px; background: var(--hair); }
.hero .h1 { margin-top: 14px; max-width: 16ch; }
.hero__sub { display: block; font-family: var(--mono); font-weight: 400; font-size: clamp(12px, 1.2vw, 15px); letter-spacing: .06em; text-transform: uppercase; margin-top: 12px; }
.hero__sub .br { color: var(--red); }
.hero .lead { max-width: 58ch; margin-top: 16px; }
.hero__links { display: flex; gap: clamp(16px, 3vw, 34px); flex-wrap: wrap; margin-top: 24px; }
/* class listings — arrow links grid */
.listings { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px 22px; }
.listings a { font-family: var(--mono); font-size: 12.5px; letter-spacing: .05em; text-transform: uppercase; padding: 9px 2px; border-bottom: 1px solid var(--hair); }
.listings a::before { content: "↳ "; color: var(--red); }
.listings a:hover { border-color: var(--ink); }
.listings .note { font-family: var(--mono); font-size: 11px; color: var(--muted); align-self: center; text-transform: none; }
/* inner pages */
.ihero { padding: clamp(30px, 4vw, 56px) var(--gutter) clamp(24px, 3vw, 40px); }
.ihero .h1 { max-width: 22ch; margin-top: 14px; }
.ihero .lead { max-width: 60ch; margin-top: 14px; }
.crumbs { padding: 10px var(--gutter); display: flex; gap: 10px; flex-wrap: wrap; font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--red); }
.crumbs b { font-weight: 400; }
.crumbs b::before { content: "[ "; color: var(--red); }
.crumbs b::after { content: " ]"; color: var(--red); }
.crumbs span { color: var(--hair); }
@media (max-width: 900px) {
  .listings, .listings[style] { grid-template-columns: minmax(0,1fr) !important; }
  .hero .h1 { max-width: none; }
  .circle { width: min(340px, 92vw); padding: 24px; }
}
/* film-leader countdown — plays inside the hero screenband */
.leader { position: absolute; inset: 0; z-index: 4; background: #0b0b0a; display: flex; align-items: center; justify-content: center; pointer-events: none; animation: leaderOut .55s ease 2.6s forwards; }
.leader__frame { position: relative; width: min(300px, 52%); aspect-ratio: 1; border-radius: 50%; border: 2px solid rgba(255,255,255,.65); display: flex; align-items: center; justify-content: center; animation: leaderJitter .3s steps(2) 9; }
.leader__frame::before { content: ""; position: absolute; inset: 12%; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); }
.leader__frame::after { content: ""; position: absolute; inset: -1px; border-radius: 50%; background: conic-gradient(rgba(255,255,255,.16) 0 14deg, transparent 14deg 360deg); animation: leaderSweep .52s linear 5; }
.leader__cross-h, .leader__cross-v { position: absolute; background: rgba(255,255,255,.3); }
.leader__cross-h { left: -12%; right: -12%; top: 50%; height: 1px; }
.leader__cross-v { top: -12%; bottom: -12%; left: 50%; width: 1px; }
.leader__num { position: absolute; font-family: var(--sans); font-weight: 870; font-size: clamp(80px, 12vw, 150px); color: #fff; opacity: 0; line-height: 1; }
.leader__num:nth-child(4) { animation: leaderNum .52s steps(1) 0s 1; }
.leader__num:nth-child(5) { animation: leaderNum .52s steps(1) .52s 1; }
.leader__num:nth-child(6) { animation: leaderNum .52s steps(1) 1.04s 1; }
.leader__num:nth-child(7) { animation: leaderNum .52s steps(1) 1.56s 1; }
.leader__num:nth-child(8) { animation: leaderNum .52s steps(1) 2.08s 1; }
.leader__tag { position: absolute; bottom: clamp(14px, 3vw, 26px); left: 0; right: 0; text-align: center; color: rgba(255,255,255,.55); font-family: var(--mono); font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; }
@keyframes leaderNum { 0% { opacity: 1; } 92% { opacity: 1; } 100% { opacity: 0; } }
@keyframes leaderSweep { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes leaderJitter { 0%,100% { transform: translate(0,0); } 50% { transform: translate(.6px,-.8px); } }
@keyframes leaderOut { to { opacity: 0; visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .leader { display: none; } }
/* feature-presentation package — hero band only */
.screenband--feature::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: radial-gradient(ellipse at center, transparent 52%, rgba(5,5,5,.55) 100%); }
.screenband--feature::after { content: ""; position: absolute; inset: -20%; z-index: 2; pointer-events: none; opacity: .09; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E"); animation: grainJit .7s steps(4) infinite; }
@keyframes grainJit { 0% { transform: translate(0,0); } 25% { transform: translate(-3%,2%); } 50% { transform: translate(2%,-3%); } 75% { transform: translate(-2%,-2%); } 100% { transform: translate(3%,3%); } }
.letterbox { position: absolute; left: 0; right: 0; background: #0b0b0a; z-index: 3; pointer-events: none; }
.letterbox--top { top: 0; height: 50%; animation: lbTop 1s cubic-bezier(.7,0,.3,1) 2.7s forwards; }
.letterbox--bot { bottom: 0; height: 50%; animation: lbBot 1s cubic-bezier(.7,0,.3,1) 2.7s forwards; }
@keyframes lbTop { to { height: 6.5%; } }
@keyframes lbBot { to { height: 6.5%; } }
.screenband--feature > img { animation: reelDrift 16s ease-in-out infinite alternate, lampUp 1.3s steps(5) 2.7s both; }
@keyframes lampUp { 0% { filter: brightness(2.4) contrast(.7); } 30% { filter: brightness(.55); } 55% { filter: brightness(1.5) contrast(1.1); } 80% { filter: brightness(.85); } 100% { filter: none; } }
.screenband--feature .screenband__inner > *, .screenband--feature .screenband__corner { opacity: 0; animation: titleUp .7s ease forwards; }
.screenband--feature .screenband__inner > *:nth-child(1) { animation-delay: 3.15s; }
.screenband--feature .screenband__inner > *:nth-child(2) { animation-delay: 3.3s; }
.screenband--feature .screenband__inner > *:nth-child(3) { animation-delay: 3.5s; }
.screenband--feature .screenband__corner { animation-delay: 3.7s; }
@keyframes titleUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.cuedot { position: absolute; top: 9%; right: 3%; width: 14px; height: 14px; border-radius: 50%; background: rgba(255,255,255,.85); box-shadow: 0 0 10px rgba(255,255,255,.5); z-index: 3; opacity: 0; animation: cueBlink 9s steps(1) 4s infinite; pointer-events: none; }
@keyframes cueBlink { 0%, 96.5% { opacity: 0; } 97% { opacity: 1; } 99% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .screenband--feature::after, .cuedot { animation: none; display: none; }
  .letterbox--top, .letterbox--bot { height: 6.5%; animation: none; }
  .screenband--feature > img { animation: none; }
  .screenband--feature .screenband__inner > *, .screenband--feature .screenband__corner { opacity: 1; animation: none; }
}
/* circle badge — hover: ticket-dial spins, black screen rises, text inverts */
.circle { position: relative; overflow: hidden; }
.circle::before { content: ""; position: absolute; inset: 7px; border-radius: 50%; border: 1px dashed rgba(16,16,16,.38); z-index: 0; pointer-events: none; transition: border-color .4s; }
.circle::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: rgba(9,9,8,.92); transform: translateY(101%); transition: transform .55s cubic-bezier(.65,0,.35,1); z-index: 0; }
.circle > * { position: relative; z-index: 1; transition: color .4s .1s, border-color .4s .1s, background .4s .1s; }
@media (hover: hover) {
  .circle:hover::after { transform: translateY(0); }
  .circle:hover::before { border-color: rgba(255,255,255,.45); animation: dialSpin 14s linear infinite; }
  .circle:hover { border-color: #0a0a09; }
  .circle:hover .big { color: #fff; }
  .circle:hover .tag--dim { color: rgba(255,255,255,.6); }
  .circle:hover .body-m { color: rgba(255,255,255,.78); }
  .circle:hover .btn { border-color: #fff; color: #fff; }
  .circle:hover .btn:hover { background: var(--red); border-color: var(--red); }
}
@keyframes dialSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .circle::after { transition: none; }
  .circle:hover::before { animation: none; }
}
/* strip CTA → the form */
.stripcta { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; border: 1px solid var(--ink); background: #fdfdfb; padding: 15px 18px; margin-top: clamp(22px, 3vw, 38px); }
.stripcta p { font-weight: 740; text-transform: uppercase; font-size: clamp(13px, 1.3vw, 17px); }
.stripcta .tag--dim { display: block; text-transform: uppercase; font-weight: 400; margin-bottom: 3px; }
.stripcta .btn { flex-shrink: 0; }
/* inner screenband — shorter, no feature package */
.screenband--inner { min-height: clamp(280px, 38vw, 480px); }
