/* Preview candidate. Intro decoration never changes routes or publication data. */
.cinema-preview-note { position:fixed; z-index:1010; left:0; right:0; bottom:0; padding:5px 12px; background:#130f18ee; color:#d9c69f; text-align:center; font:10px/1.4 Arial,sans-serif; -webkit-text-stroke:0; text-shadow:none; }
.cinema-preview-note a { margin-left:14px; color:#fff0ce; -webkit-text-stroke:0; text-shadow:none; text-decoration:underline; }
.cinema-entry { position:fixed; inset:0; z-index:1000; background:#0f0d10; height:100vh; height:100svh; overflow:auto; color:#fff7eb; isolation:isolate; opacity:1; transition:opacity .65s ease; }
.cinema-stage,.cinema-shade { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.cinema-stage { z-index:-1; }
.cinema-poster,.cinema-film { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.cinema-film { position:absolute; inset:0; max-height:none; border:0; border-radius:0; opacity:0; transition:opacity .55s ease; }
.cinema-entry.is-playing .cinema-film,.cinema-entry.has-film .cinema-film { opacity:1; }
.cinema-shade { background:linear-gradient(0deg,#0f0b15ed,transparent 48%,transparent 70%,#0f0b1566); }
.cinema-petals { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.cinema-petal { --x:10%; --size:24px; --fall:12s; --delay:-2s; --drift:35px; --turn:22deg; position:absolute; left:var(--x); top:-42px; width:var(--size); height:calc(var(--size) * 1.15); opacity:0; animation:cinema-petal-fall var(--fall) var(--delay) linear infinite; }
.cinema-petal i { display:block; width:100%; height:100%; background:url('../cinema/rose-petal-pink.svg') center/contain no-repeat; filter:drop-shadow(0 3px 3px #2c071235); animation:cinema-petal-turn 4.8s var(--delay) ease-in-out infinite alternate; }
.cinema-petal:nth-child(even) i { background-image:url('../cinema/rose-petal-red.svg'); animation-duration:3.8s; }
.cinema-petal:nth-child(3n) { --size:16px; }.cinema-petal:nth-child(5n) { --size:31px; }
.cinema-petal:nth-child(1) { --x:4%; --delay:-3s; --fall:12s; --drift:38px; }
.cinema-petal:nth-child(2) { --x:13%; --delay:-9s; --fall:15s; --drift:-24px; --turn:-28deg; }
.cinema-petal:nth-child(3) { --x:25%; --delay:-6s; --fall:13s; --drift:42px; }
.cinema-petal:nth-child(4) { --x:83%; --delay:-2s; --fall:11s; --drift:-32px; --turn:75deg; }
.cinema-petal:nth-child(5) { --x:92%; --delay:-7s; --fall:14s; --drift:-40px; }
.cinema-petal:nth-child(6) { --x:6%; --delay:-10s; --fall:16s; --drift:16px; }
.cinema-petal:nth-child(7) { --x:74%; --delay:-4s; --fall:12.5s; --drift:37px; --turn:-50deg; }
.cinema-petal:nth-child(8) { --x:38%; --delay:-8s; --fall:14.5s; --drift:-30px; }
.cinema-petal:nth-child(9) { --x:62%; --delay:-12s; --fall:15.5s; --drift:24px; }
.cinema-petal:nth-child(10) { --x:18%; --delay:-1s; --fall:11.5s; --drift:-42px; --turn:50deg; }
.cinema-petal:nth-child(11) { --x:87%; --delay:-11s; --fall:14s; --drift:-17px; }
.cinema-petal:nth-child(12) { --x:47%; --delay:-5s; --fall:16s; --drift:36px; --turn:-75deg; }
.cinema-petal:nth-child(13) { --x:31%; --delay:-3.5s; --fall:14s; --drift:28px; }
.cinema-petal:nth-child(14) { --x:69%; --delay:-10s; --fall:12s; --drift:-34px; }
.cinema-petal:nth-child(15) { --x:96%; --delay:-13s; --fall:15s; --drift:-38px; --turn:65deg; }
.cinema-petal:nth-child(16) { --x:8%; --delay:-6.5s; --fall:13s; --drift:37px; }
.cinema-petal:nth-child(17) { --x:55%; --delay:-7s; --fall:15s; --drift:24px; }
.cinema-petal:nth-child(18) { --x:79%; --delay:-1.5s; --fall:13s; --drift:-28px; --turn:-50deg; }
.cinema-petal:nth-child(19) { --x:22%; --delay:-11.5s; --fall:16s; --drift:26px; }
.cinema-petal:nth-child(20) { --x:90%; --delay:-5s; --fall:12s; --drift:-46px; }
@keyframes cinema-petal-fall {
  0% { opacity:0; transform:translate3d(0,-20px,0); }
  8% { opacity:.85; }
  50% { transform:translate3d(var(--drift),50svh,0); }
  88% { opacity:.8; }
  100% { opacity:0; transform:translate3d(calc(var(--drift) * -.35),calc(100svh + 50px),0); }
}
@keyframes cinema-petal-turn { from { transform:rotate(var(--turn)) rotateY(-35deg) rotateX(15deg); } to { transform:rotate(calc(var(--turn) + 95deg)) rotateY(65deg) rotateX(-25deg); } }
.cinema-entry.petals-paused :is(.cinema-petal,.cinema-petal i) { animation-play-state:paused; }
.cinema-entry[data-static="true"] :is(.cinema-petals,.cinema-petals-toggle),.cinema-petals-toggle[hidden] { display:none; }
.cinema-topbar,.cinema-copy,.cinema-bottom { z-index:2; }.cinema-topbar { position:relative; }
.cinema-door-logo { position:absolute; z-index:1; top:10%; left:50%; width:min(540px,44vw); transform:translate(-50%,18px) scale(.95); opacity:0; transition:opacity 1s ease,transform 1.3s ease; pointer-events:none; filter:drop-shadow(0 4px 18px #25150999); }
.cinema-door-logo .brand-lockup { aspect-ratio:5.1; }
.cinema-door-logo .brand-lockup::after { display:none; }
.cinema-entry.doors-open .cinema-door-logo { opacity:1; transform:translate(-50%,0) scale(1); }
.cinema-entry :is(p,h1,button,a,span,small) { -webkit-text-stroke:0; text-shadow:none; }
.cinema-topbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 4%; }
.cinema-wordmark { text-decoration:none; font:600 19px/1.1 Arial,sans-serif; letter-spacing:.08em; color:#f5dcaa; white-space:nowrap; }
.cinema-wordmark span { color:#fffaf2; }.cinema-wordmark small { font-size:11px; letter-spacing:0; }
.cinema-tools { display:flex; align-items:center; gap:14px; }.cinema-enter-form { margin:0; }
.cinema-tools button { background:#17121794; border:1px solid #e4c59366; padding:10px 15px; min-height:44px; border-radius:100px; color:#fff9eb; font:12px/1.2 Arial,sans-serif; cursor:pointer; }
.cinema-skip span { margin-left:12px; color:#e8bf71; }.cinema-sound[hidden] { display:none; }
.cinema-copy { width:min(660px,85%); position:absolute; margin:0; left:50%; bottom:60px; transform:translateX(-50%); text-align:center; }
.cinema-eyebrow { font:10px/1.5 Arial,sans-serif; letter-spacing:.34em; color:#f2d5a1; margin:0 0 19px; }
.cinema-brand { font:500 12px/1.4 Arial,sans-serif; letter-spacing:.46em; color:#fff5de; margin:0 0 14px; }
.cinema-copy h1 { margin:0 0 22px; font:400 clamp(38px,4vw,64px)/1.05 Georgia,serif; letter-spacing:-.045em; color:#fff9ee; }
.cinema-tagline { margin:-8px auto 20px; color:#fff9ee; font:400 clamp(14px,1.5vw,18px)/1.5 Arial,sans-serif; }
.cinema-copy h1,.cinema-copy .cinema-eyebrow,.cinema-copy .cinema-tagline { transition:opacity .8s ease; }
.cinema-entry.is-playing:not(.in-hall) .cinema-copy :is(h1,.cinema-eyebrow,.cinema-tagline) { opacity:0; }
.cinema-copy h1 em { color:#eacb8f; font-weight:400; }
.cinema-enter { display:flex; align-items:center; justify-content:space-between; gap:48px; min-height:54px; min-width:248px; padding:15px 22px; border:1px solid #f3cd87; border-radius:4px; background:linear-gradient(110deg,#a6004c,#cf0066); color:#fff; font:500 14px/1.4 Arial,sans-serif; box-shadow:0 8px 35px #c200452b; cursor:pointer; }
.cinema-enter span { font-size:22px; color:#ffe3ae; }
.cinema-copy .cinema-enter { margin:0 auto; }
.cinema-copy #cinema-age { max-width:330px; color:#f1e5d8; font:11px/1.6 Arial,sans-serif; margin:14px auto 0; }
.cinema-error { max-width:350px; font:12px/1.5 Arial,sans-serif; color:#ffd2db; }
.cinema-bottom { position:absolute; bottom:25px; left:4%; right:4%; display:flex; justify-content:space-between; gap:20px; font:9px/1.5 Arial,sans-serif; letter-spacing:.18em; color:#e7d8c4; }
.cinema-progress { position:absolute; bottom:0; left:0; width:100%; height:2px; background:#ffffff19; }
.cinema-progress span { display:block; height:100%; width:100%; transform:scaleX(0); transform-origin:left; background:#e2ba73; }
.cinema-entry.is-playing .cinema-progress span { animation:cinema-progress 8s linear forwards; }
.cinema-entry.is-finished .cinema-progress span { transform:scaleX(1); }
.cinema-entry.is-exiting { opacity:0; pointer-events:none; }
.cinema-entry :is(a,button):focus-visible { outline:3px solid #f9dd9d; outline-offset:5px; }
body.welcome-open > .mirror-motion-switch { display:none; }
@keyframes cinema-progress { to { transform:scaleX(1); } }
/* Category links remain regular URLs with their existing city/search filters. */
.showcase-theme .showcase-categories { padding:18px 0 14px; background:#0c0b10e8; }
.showcase-theme .showcase-category-heading { margin-bottom:10px; align-items:center; }
.showcase-theme .showcase-category-heading h2 { font-size:19px; }.showcase-theme .showcase-category-heading .editorial-kicker { display:none; }
.showcase-theme .showcase-category-rail { display:flex; flex-wrap:wrap; gap:7px; overflow:visible; }
.showcase-theme .directory-category-nav .showcase-category-card { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; min-width:0; min-height:40px; height:auto; padding:9px 18px; border:1px solid #d5b26c45; border-radius:100px; background:#17141d; box-shadow:none; overflow:hidden; }
.showcase-theme .directory-category-nav .showcase-category-card::before,.showcase-theme .directory-category-nav .showcase-category-card::after,.showcase-theme .showcase-category-index,.showcase-theme .showcase-category-explore { display:none; }
.showcase-theme .directory-category-nav .showcase-category-card strong { position:static; margin:0; font:500 12px/1.3 Arial,sans-serif; letter-spacing:.03em; }
.showcase-theme .directory-category-nav .showcase-category-card[aria-current=page] { background:#bd0059; border-color:#e8bf70; }
.showcase-theme .directory-category-nav .showcase-category-card:hover { transform:none; border-color:#efca87; background:#38202e; }
.showcase-theme .directory-category-nav .showcase-category-card[aria-current=page]:hover { background:#bd0059; }
@media (max-width:759px) {
  .cinema-petal:nth-child(n+15) { display:none; }
  .cinema-topbar { padding:18px 18px; gap:10px; }.cinema-wordmark { font-size:13px; letter-spacing:.04em; }
  .cinema-tools { gap:6px; }.cinema-tools button { padding:10px 11px; font-size:10px; }.cinema-skip span { margin-left:5px; }
  .cinema-film,.cinema-poster { object-fit:cover; object-position:center; }
  .cinema-copy { margin:0; position:absolute; left:25px; right:25px; bottom:62px; width:auto; transform:none; }
  .cinema-copy h1 { font-size:clamp(36px,7.4vw,48px); margin-bottom:18px; }
  .cinema-door-logo { top:66px; bottom:auto; width:clamp(220px,52vw,340px); }
  .cinema-eyebrow { margin-bottom:12px; font-size:8px; }.cinema-brand { font-size:10px; margin-bottom:12px; }
  .cinema-shade { background:linear-gradient(0deg,#0d0a13eb 0%,#110d1690 23%,#110d1600 55%,#110d1655); }
  .cinema-enter { min-width:230px; min-height:52px; }.cinema-copy #cinema-age { max-width:300px; font-size:10px; }
  .cinema-bottom { bottom:18px; left:25px; right:25px; font-size:8px; letter-spacing:.08em; }
  .showcase-theme .directory-category-nav .showcase-category-card { min-height:40px; padding:9px 14px; }.showcase-theme .directory-category-nav .showcase-category-card strong { font-size:11px; }
  .showcase-theme .showcase-category-heading h2 { font-size:17px; }
}
@media (max-height:600px) and (min-width:760px) { .cinema-copy { bottom:42px; }.cinema-copy h1 { font-size:42px; margin-bottom:12px; }.cinema-eyebrow { margin-bottom:10px; }.cinema-door-logo { top:17%; width:400px; } }
@media (max-height:700px) and (max-width:759px) { .cinema-copy h1 { font-size:37px; margin-bottom:14px; }.cinema-eyebrow { display:none; }.cinema-copy { bottom:48px; }.cinema-copy #cinema-age { margin-top:9px; } }
/* Tall phones: keep all three figures inside a square safe area, with a soft
   Olympus backdrop instead of the former black bars embedded in the movie. */
@media (max-aspect-ratio:4/5) {
  .cinema-stage::before { content:""; position:absolute; inset:-32px; background:url('../cinema/olympus-poster.webp') center/cover; filter:blur(24px) brightness(.65); }
  .cinema-film,.cinema-poster { position:absolute; inset:auto 0; top:clamp(90px,17svh,150px); width:100%; height:100vw; object-fit:cover; object-position:center; mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 90%,transparent); }
  .cinema-door-logo { top:78px; bottom:auto; width:min(76vw,360px); }
  .cinema-copy h1 span { display:block; }
  .cinema-shade { background:linear-gradient(0deg,#130c13e6,transparent 52%,transparent 76%,#130c1344); }
}
@media (prefers-reduced-motion:reduce) { .cinema-entry,.cinema-film,.cinema-door-logo { transition:none; }.cinema-entry .cinema-progress span { animation:none!important; }.cinema-petals,.cinema-petals-toggle { display:none; }.cinema-petal,.cinema-petal i { animation:none; } }
