:root {
  --ink: #160d08;
  --paper: #e8c67d;
  --bone: #f1dfb3;
  --blood: #8d1d14;
  --rust: #bd4c24;
  --sun: #d98c2b;
  --night: #100a08;
  --line: rgba(241, 223, 179, .22);
  --shadow: rgba(0,0,0,.45);
  --mx: 50vw;
  --my: 50vh;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--night); }
body {
  margin: 0;
  color: var(--bone);
  background: var(--night);
  font-family: "Oswald", Impact, sans-serif;
  overflow-x: hidden;
  cursor: crosshair;
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
::selection { background: var(--blood); color: var(--bone); }

.film-grain,
.film-scratches,
.vignette { position: fixed; inset: 0; pointer-events: none; z-index: 9996; }
.film-grain {
  opacity: .16;
  mix-blend-mode: screen;
  background-image:
    radial-gradient(rgba(255,255,255,.15) .6px, transparent .7px),
    radial-gradient(rgba(0,0,0,.35) .7px, transparent .8px);
  background-size: 5px 5px, 7px 7px;
  animation: grain .23s steps(2) infinite;
}
.film-scratches {
  opacity: .14;
  background:
    linear-gradient(90deg, transparent 0 15%, rgba(255,255,255,.3) 15.05%, transparent 15.1% 63%, rgba(255,255,255,.18) 63.04%, transparent 63.1%),
    linear-gradient(transparent 0 48%, rgba(255,255,255,.08) 48.2%, transparent 48.6%);
  animation: scratches 5.7s linear infinite;
}
.vignette { box-shadow: inset 0 0 180px 45px #000; opacity: .5; }
@keyframes grain { 0% { transform: translate(0,0) } 25% { transform: translate(-1.5%,1%) } 50% { transform: translate(1%,-1.3%) } 75% { transform: translate(1.4%,1%) } 100% { transform: translate(-1%, -1%) } }
@keyframes scratches { from { transform: translateX(-8vw) } to { transform: translateX(8vw) } }

.cursor-dot {
  width: 24px; height: 24px; border: 1px solid rgba(241,223,179,.6); border-radius: 50%;
  position: fixed; left: var(--mx); top: var(--my); transform: translate(-50%,-50%);
  z-index: 9998; pointer-events: none; mix-blend-mode: difference;
  transition: width .15s, height .15s, border-color .15s;
}
body.cursor-hot .cursor-dot { width: 42px; height: 42px; border-color: white; }

.gate {
  position: fixed; inset: 0; z-index: 10000; background: #090706;
  display: grid; place-items: center; padding: 24px;
  transition: opacity .8s ease, visibility .8s ease;
}
.gate::before {
  content: ""; position:absolute; inset:0;
  background: radial-gradient(circle at 50% 65%, #7a2613 0, #241008 32%, #090706 72%);
  opacity: .8;
}
.gate.is-gone { opacity: 0; visibility: hidden; }
.gate-card { position: relative; text-align: center; max-width: 780px; }
.gate .eyebrow { letter-spacing: .45em; font-size: .72rem; }
.gate h1 { margin: .15em 0; font-family: "Rye", Georgia, serif; font-size: clamp(4rem, 12vw, 9rem); line-height: .76; color: var(--paper); text-shadow: 6px 7px 0 #4a160f; }
.gate h1 span { font-size: .6em; color: var(--rust); }
.gate-copy { max-width: 560px; margin: 24px auto; font-family: "Special Elite", monospace; font-size: 1rem; line-height: 1.6; }
.gate-actions { display:flex; justify-content:center; gap: 12px; flex-wrap:wrap; }
.tiny { opacity:.55; font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; }

.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: 74px; display:flex; align-items:center; gap: 28px; padding: 0 28px;
  background: linear-gradient(#100a08e8, transparent);
  mix-blend-mode: normal;
}
.brand { display:flex; align-items:center; gap: 10px; text-decoration:none; margin-right:auto; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--paper); border-radius:50%; font-family:"Rye",serif; font-size:.8rem; }
.brand-type { font-weight:700; letter-spacing:.14em; font-size:.8rem; }
.nav { display:flex; gap: 22px; }
.nav a { text-decoration:none; font-size:.7rem; letter-spacing:.14em; opacity:.78; transition:.2s; }
.nav a:hover { opacity:1; }
.sound-toggle { border:1px solid var(--line); background:#140d09a8; color:var(--bone); padding:9px 11px; letter-spacing:.12em; font-size:.68rem; cursor:pointer; }

.btn {
  display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding: 0 18px;
  border:1px solid var(--bone); text-decoration:none; letter-spacing:.13em; font-size:.74rem; font-weight:600;
  cursor:pointer; transition: transform .15s ease, background .2s ease, color .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { background:var(--bone); color:var(--ink); }
.btn-ghost { background:rgba(16,10,8,.15); color:var(--bone); }

.hero {
  position:relative; min-height:100svh; display:grid; align-items:end; overflow:hidden; background:#6c1e13;
}
.hero-video,.hero-fallback,.hero-wash { position:absolute; inset:0; width:100%; height:100%; }
.hero-video { object-fit:cover; object-position:center center; filter: sepia(.76) saturate(.9) contrast(1.18) brightness(.74); opacity:.94; z-index:1; }
.hero-fallback {
  z-index:0; background:linear-gradient(#a3361e 0 35%, #d16a2e 58%, #26130d 58% 100%);
}
.sun { position:absolute; width:min(52vw,720px); aspect-ratio:1; border-radius:50%; background:#e6b44e; left:52%; top:8%; transform:translateX(-50%); opacity:.68; box-shadow:0 0 100px #e6b44e66; }
.mesa { position:absolute; bottom:29%; background:#1b0f0a; clip-path:polygon(0 100%, 9% 57%, 30% 52%, 38% 25%, 67% 21%, 73% 52%, 89% 58%, 100% 100%); }
.mesa-a { width:58%; height:22%; left:-6%; }
.mesa-b { width:49%; height:16%; right:-8%; transform:scaleX(-1); opacity:.84; }
.rider { position:absolute; left:68%; bottom:22%; width:150px; height:190px; transform:scale(.9); filter:drop-shadow(0 18px 6px #0008); }
.rider::before { content:""; position:absolute; left:50%; top:0; width:64px; height:120px; background:#0e0907; border-radius:50% 50% 16% 16%; transform:translateX(-50%); clip-path:polygon(35% 0,65% 0,70% 10%,93% 14%,96% 22%,65% 24%,72% 100%,31% 100%,37% 24%,3% 22%,7% 14%,31% 10%); }
.rider::after { content:""; position:absolute; left:0; bottom:0; width:150px; height:85px; background:#0e0907; border-radius:45% 55% 48% 52%; box-shadow:58px -20px 0 -33px #0e0907; }
.dust { position:absolute; border-radius:50%; border:2px solid #ebbd6c33; filter:blur(1px); animation:dust 9s linear infinite; }
.dust-a { width:420px; height:90px; bottom:19%; left:12%; }
.dust-b { width:320px; height:75px; bottom:16%; left:40%; animation-delay:-4s; }
@keyframes dust { 0% { transform:translateX(-12%) scale(.85); opacity:0 } 35%{opacity:.65} 100%{transform:translateX(80%) scale(1.3);opacity:0} }
.hero-wash { z-index:2; background:linear-gradient(90deg,rgba(10,7,5,.78) 0 24%, rgba(10,7,5,.22) 56%, rgba(10,7,5,.04)), linear-gradient(0deg,#100a08 0,transparent 28%); }
.hero-content { position:relative; z-index:3; width:min(1180px,calc(100% - 48px)); margin:0 auto; padding: 150px 0 11vh; }
.kicker { letter-spacing:.32em; font-size:.74rem; max-width:700px; }
.hero-title { margin:.1em 0; font-family:"Rye",Georgia,serif; font-size:clamp(5rem,14vw,12rem); line-height:.72; color:var(--paper); letter-spacing:-.04em; text-shadow:9px 10px 0 #5b1b12; }
.hero-title em { font-style:normal; color:var(--rust); font-size:.58em; letter-spacing:.02em; }
.hero-sub { font-family:"Special Elite",monospace; font-size:clamp(.95rem,2vw,1.15rem); max-width:680px; line-height:1.5; }
.hero-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; }
.hero-caption { position:absolute; z-index:4; right:18px; bottom:22px; writing-mode:vertical-rl; font-size:.6rem; letter-spacing:.18em; opacity:.62; }
.scroll-cue { position:absolute; z-index:4; bottom:28px; left:50%; text-decoration:none; font-size:2rem; opacity:.6; animation:bob 1.5s ease-in-out infinite; }
@keyframes bob { 50%{ transform:translateY(7px)} }

.marquee-strip { overflow:hidden; border-block:1px solid #000; background:var(--paper); color:var(--ink); transform:rotate(-1deg) scale(1.02); position:relative; z-index:4; }
.marquee-track { display:flex; gap:28px; width:max-content; padding:13px 0; animation:marquee 22s linear infinite; font-weight:700; letter-spacing:.12em; }
.marquee-track b { color:var(--blood); }
@keyframes marquee { to{ transform:translateX(-50%)} }

.chapter { min-height:92vh; position:relative; padding:120px max(7vw,28px); }
.legend { background:var(--bone); color:var(--ink); display:grid; grid-template-columns:.15fr 1fr 1.15fr; gap:5vw; align-items:center; }
.chapter-number { font-family:"Rye",serif; font-size:clamp(5rem,13vw,11rem); opacity:.09; align-self:start; }
.eyebrow { font-size:.72rem; letter-spacing:.28em; font-weight:700; }
.chapter h2,.section-heading h2 { margin:.18em 0 .35em; font-family:"Rye",Georgia,serif; font-size:clamp(3.2rem,8vw,7.5rem); line-height:.88; letter-spacing:-.03em; }
.lede { font-size:clamp(1.2rem,2.4vw,1.75rem); line-height:1.32; font-weight:500; }
.chapter-copy > p:not(.eyebrow):not(.lede) { font-family:"Special Elite",monospace; line-height:1.7; max-width:620px; }
.poster-stack { position:relative; height:min(72vw,670px); }
.mini-poster { position:absolute; width:58%; aspect-ratio:.69; padding:24px; border:9px solid currentColor; display:flex; flex-direction:column; justify-content:space-between; box-shadow:14px 20px 30px #0003; }
.mini-poster span { font-size:.7rem; letter-spacing:.2em; }
.mini-poster h3 { font-family:"Rye",serif; font-size:clamp(1.7rem,4vw,3.6rem); line-height:.92; margin:auto 0; }
.mini-poster p { font-size:.55rem; letter-spacing:.16em; }
.poster-red { background:#8f241a; color:#f1dca4; left:8%; top:4%; transform:rotate(-8deg); }
.poster-gold { background:#d3a24b; color:#1b110b; right:3%; top:16%; transform:rotate(7deg); }
.poster-ink { background:#17100c; color:#e6c678; left:18%; bottom:0; transform:rotate(-2deg); }

.quote-break { min-height:78vh; background:#0b0807; position:relative; display:grid; place-items:center; text-align:center; overflow:hidden; }
.quote { position:relative; z-index:2; font-family:"Special Elite",monospace; font-size:clamp(1.7rem,4vw,3.8rem); line-height:1.35; }
.quote span { color:var(--sun); }
.eyes { position:absolute; top:50%; width:42%; height:30%; transform:translateY(-50%); opacity:.55; filter:contrast(1.4); }
.eyes::before { content:""; position:absolute; inset:0; background:radial-gradient(ellipse at center, #d9aa64 0 4%, #3d1a11 5% 10%, transparent 11%), linear-gradient(170deg,transparent 0 41%,#d6a25c 42% 58%,transparent 59%); }
.eyes-left { left:-6%; clip-path:polygon(0 30%,100% 6%,84% 92%,8% 78%); }
.eyes-right { right:-6%; transform:translateY(-50%) scaleX(-1); clip-path:polygon(0 30%,100% 6%,84% 92%,8% 78%); }
.duel-trigger { position:absolute; z-index:3; bottom:12%; border:1px solid var(--paper); background:transparent; color:var(--paper); padding:12px 18px; letter-spacing:.2em; font-size:.68rem; cursor:pointer; }
.duel-line { position:absolute; left:50%; top:0; bottom:0; width:1px; background:linear-gradient(transparent,var(--blood),transparent); opacity:.3; }

.pictures { background:#b64322; color:#1a0e08; }
.section-heading { max-width:920px; margin-bottom:60px; }
.section-heading > p:not(.eyebrow) { max-width:630px; font-family:"Special Elite",monospace; line-height:1.65; }
.filmstrip { position:relative; background:#120d0a; padding:50px 4vw; margin-inline:max(-2vw,-20px); color:var(--bone); overflow:hidden; box-shadow:0 25px 60px #43160c88; }
.sprockets { position:absolute; left:0; right:0; height:18px; background:repeating-linear-gradient(90deg,#090604 0 15px,transparent 15px 31px); }
.sprockets-top { top:9px; } .sprockets-bottom { bottom:9px; }
.feature-frame { position:relative; aspect-ratio:2.39 / 1; min-height:0; background:#050403; border:1px solid #3b2a1e; overflow:hidden; }
.feature-video { width:100%; height:100%; object-fit:cover; display:block; background:#050403; }
.video-start-cover { position:absolute; inset:0; z-index:2; border:0; padding:0; cursor:pointer; display:grid; place-items:center; color:var(--paper); background:linear-gradient(0deg,rgba(6,4,3,.22),rgba(6,4,3,.04)); transition:opacity .28s ease, background .28s ease; }
.video-start-cover:hover { background:linear-gradient(0deg,rgba(6,4,3,.34),rgba(6,4,3,.08)); }
.video-start-cover.is-hidden { opacity:0; pointer-events:none; }
.video-start-cover.is-missing { background:radial-gradient(circle,#34140d 0,#0c0806 65%); }
.video-start-cover.is-missing::after { content:"FILM REEL NOT FOUND"; position:absolute; bottom:44%; font-family:"Special Elite",monospace; letter-spacing:.18em; font-size:.72rem; opacity:.72; }
.video-play-mark { width:96px; height:96px; border-radius:50%; border:2px solid currentColor; display:grid; place-items:center; padding-left:7px; font-size:2rem; background:#09060566; box-shadow:0 0 0 9px #09060525,0 12px 40px #0008; text-shadow:0 2px 10px #000; transition:transform .2s ease, background .2s ease; }
.video-start-cover:hover .video-play-mark { transform:scale(1.06); background:#09060588; }
.frame-caption { display:flex; justify-content:space-between; position:absolute; left:14px; right:14px; bottom:12px; font-size:.62rem; letter-spacing:.14em; opacity:.7; mix-blend-mode:difference; }
.film-thumbs { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#39271c; margin-top:2px; }
.film-thumb { border:0; background:#17100c; color:var(--bone); text-align:left; padding:18px; display:flex; justify-content:space-between; cursor:pointer; }
.film-thumb span { opacity:.45; }.film-thumb.active { background:#d09a43; color:#120d0a; }

.songs { min-height:100vh; padding:120px max(7vw,28px); background:#d3b06a; color:#17100c; }
.track-list { max-width:1100px; margin:0 auto; border-top:2px solid #17100c; }
.track-card { position:relative; display:grid; grid-template-columns:80px 1fr 110px; align-items:center; gap:18px; padding:30px 0; border-bottom:1px solid #17100c66; overflow:hidden; }
.track-card::before { content:""; position:absolute; inset:0; transform:translateX(-101%); background:#17100c; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.track-card:hover::before,.track-card.is-playing::before { transform:translateX(0); }
.track-card > * { position:relative; z-index:1; }
.track-card:hover,.track-card.is-playing { color:var(--bone); }
.track-no { font-family:"Rye",serif; font-size:1.8rem; }
.track-copy h3 { margin:0; font-family:"Rye",serif; font-size:clamp(1.4rem,3vw,2.8rem); }
.track-copy p { margin:.35em 0 0; font-family:"Special Elite",monospace; opacity:.72; }
.track-play { justify-self:end; border:1px solid currentColor; background:transparent; color:inherit; padding:10px 16px; cursor:pointer; letter-spacing:.14em; }
.track-progress { grid-column:2 / -1; height:2px; background:currentColor; opacity:.25; }
.track-progress i { display:block; height:100%; width:0%; background:currentColor; opacity:1; }
.media-note { max-width:900px; margin:34px auto 0; font-family:"Special Elite",monospace; line-height:1.6; }

.intermission { min-height:80vh; display:grid; place-items:center; text-align:center; background:radial-gradient(circle at center,#6f2117 0,#160d09 50%,#090605 100%); }
.intermission-card { border:1px solid #d9b87566; padding:60px clamp(24px,8vw,110px); box-shadow:0 0 0 12px #0a060588,0 0 0 13px #d9b87533; }
.intermission-card span { letter-spacing:.44em; font-size:.7rem; }
.intermission-card h2 { font-family:"Rye",serif; font-size:clamp(3rem,8vw,7rem); line-height:.9; color:#d8b46e; margin:.35em 0; }
.intermission-card p { font-family:"Special Elite",monospace; }

.credits {
  position:relative;
  min-height:100vh;
  height:100vh;
  padding:0;
  overflow:hidden;
  background:#050403;
  color:var(--paper);
  text-align:center;
}
.credits::before {
  content:"";
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(circle at 50% 45%,#21150d55 0,transparent 46%),linear-gradient(#0000,#0004);
}
.credits-stage { position:relative; z-index:1; width:100%; height:100%; overflow:hidden; }
.credits-roll-track {
  position:absolute;
  left:50%; top:0;
  width:min(860px,calc(100% - 38px));
  transform:translate(-50%,100vh);
  opacity:0;
  will-change:transform,opacity;
}
.credits.is-rolling .credits-roll-track { animation:movieCreditsRoll 39.6s linear forwards; }
@keyframes movieCreditsRoll {
  0% { transform:translate(-50%,100vh); opacity:0; }
  2.5% { opacity:1; }
  96% { opacity:1; }
  100% { transform:translate(-50%,calc(-100% - 18vh)); opacity:0; }
}
.credit-kicker { margin:0 0 24px; font:700 .66rem/1.4 Arial,sans-serif; letter-spacing:.48em; opacity:.6; }
.credit-main-title { font-family:"Rye",serif; font-size:clamp(3.4rem,8vw,7rem); margin:.1em 0 1.1em; color:var(--paper); }
.credit-block { margin:0 auto 105px; }
.credit-block h3 { margin:0 0 42px; font:700 .7rem/1 Arial,sans-serif; letter-spacing:.5em; opacity:.55; }
.credit-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px 32px; margin:0 auto; max-width:650px; text-align:left; }
.credit-grid span { opacity:.52; text-align:right; font-size:.72rem; letter-spacing:.17em; }
.credit-grid b { letter-spacing:.11em; font-size:.9rem; }
.credit-additional { margin-top:-18px; }
.credit-additional .credit-grid { max-width:700px; }
.credit-additional .credit-grid span { align-self:center; }
.credit-additional .credit-grid b { align-self:center; }
.credit-production { display:grid; gap:62px; }
.credit-production p { display:grid; gap:14px; margin:0; }
.credit-production span { opacity:.5; font-size:.65rem; letter-spacing:.4em; }
.credit-production b { font-family:"Rye",serif; font-size:clamp(1.8rem,4vw,3.2rem); letter-spacing:.08em; font-weight:400; }
.credit-ornament { margin:0 auto 105px; font-size:1.1rem; opacity:.4; }
.band-credit-block { margin-bottom:0; }
.credit-was { margin:0 0 52px; font-family:"Rye",serif; font-size:clamp(2.2rem,6vw,5rem); letter-spacing:.03em; }
.credit-was em { display:inline-block; font-style:normal; color:#b43b22; transform:rotate(-3deg); }
.band-credit-grid { margin-bottom:52px; }
.credit-small { opacity:.45; letter-spacing:.24em; font-size:.62rem; margin:0; }
.final-credit-card {
  position:absolute;
  z-index:2;
  left:50%; top:50%;
  width:min(920px,calc(100% - 42px));
  transform:translate(-50%,78vh);
  opacity:0;
  pointer-events:none;
  will-change:transform,opacity;
}
.credits.is-rolling .final-credit-card { animation:returnCardRise 10.5s 40.9s cubic-bezier(.22,.72,.16,1) forwards; }
@keyframes returnCardRise {
  0% { transform:translate(-50%,78vh); opacity:0; }
  14% { opacity:1; }
  54% { transform:translate(-50%,-50%); opacity:1; }
  100% { transform:translate(-50%,-55%); opacity:1; }
}
.final-credit-card p { margin:0 0 16px; font:700 .7rem/1 Arial,sans-serif; letter-spacing:.55em; opacity:.45; }
.final-credit-card h2 { margin:0; font-family:"Rye",serif; font-size:clamp(3.1rem,8.8vw,8rem); line-height:.9; color:var(--paper); }
.final-credit-card strong { display:block; margin-top:26px; font:700 clamp(.78rem,1.8vw,1.05rem)/1.3 Arial,sans-serif; letter-spacing:.5em; color:#c94c2d; opacity:0; transform:translateY(8px); }
.credits.riff-hit .final-credit-card strong { animation:returnLineHit .7s ease-out forwards; }
@keyframes returnLineHit { to { opacity:1; transform:translateY(0); text-shadow:0 0 24px #b43b2266; } }
.final-credit-card a { display:inline-block; margin-top:44px; color:inherit; text-decoration:none; font:700 .62rem/1 Arial,sans-serif; letter-spacing:.2em; opacity:.48; pointer-events:auto; }
.final-credit-card a:hover,.final-credit-card a:focus-visible { opacity:1; }

.now-playing { position:fixed; z-index:1001; left:22px; bottom:20px; display:flex; gap:10px; align-items:center; background:#0e0907d9; border:1px solid #e1bd7650; padding:10px 12px; backdrop-filter:blur(8px); transform:translateY(130%); transition:.35s; }
.now-playing.show { transform:translateY(0); }
.np-dot { width:8px; height:8px; border-radius:50%; background:#d24520; box-shadow:0 0 14px #d24520; }
.now-playing small { display:block; letter-spacing:.15em; opacity:.55; font-size:.55rem; }
.now-playing strong { display:block; letter-spacing:.08em; font-size:.72rem; margin-top:2px; }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease; }
.reveal.in { opacity:1; transform:none; }

.bullet-hole { position:fixed; width:34px; height:34px; border-radius:50%; pointer-events:none; z-index:9997; transform:translate(-50%,-50%) scale(.3); animation:hole .3s forwards; background:radial-gradient(circle,#020202 0 18%,#e6c990 20% 23%,#2a130d 26% 39%,transparent 41%); filter:drop-shadow(2px 2px 2px #000); }
@keyframes hole { to{ transform:translate(-50%,-50%) scale(1); } }
body.flash::after { content:""; position:fixed; inset:0; z-index:9995; background:#fff6d8; animation:flash .16s forwards; pointer-events:none; }
@keyframes flash { to{opacity:0} }

body.track-focus .track-card:not(.is-playing) { opacity:.27; filter:blur(.5px); }

@media (max-width: 850px) {
  .nav { display:none; }
  .site-header { padding:0 16px; }
  .brand-type { display:none; }
  .hero-content { width:min(100% - 30px,1180px); padding-bottom:14vh; }
  .hero-caption { display:none; }
  .legend { grid-template-columns:1fr; gap:20px; }
  .chapter-number { display:none; }
  .poster-stack { height:120vw; max-height:640px; margin-top:30px; }
  .film-thumbs { grid-template-columns:1fr; }
  .feature-frame { aspect-ratio:2.39 / 1; }
  .track-card { grid-template-columns:55px 1fr 80px; }
  .track-copy p { font-size:.82rem; }
  .cursor-dot { display:none; }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .film-grain,.film-scratches { display:none; }
}

/* --- Sunset Unlimited Poster Archive --- */
.poster-archive {
  position:relative;
  min-height:min(76vw,700px);
  perspective:1200px;
  isolation:isolate;
}
.archive-poster {
  position:absolute;
  width:54%;
  padding:0;
  border:0;
  background:#120b08;
  cursor:pointer;
  box-shadow:12px 18px 35px #2a120b45, 0 0 0 1px #2b160e55;
  transition:transform .32s cubic-bezier(.2,.75,.2,1), box-shadow .32s ease, filter .32s ease, z-index 0s;
  transform-origin:center;
}
.archive-poster::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,transparent 25%,#fff2cf20 48%,transparent 58%);
  transform:translateX(-130%);
  transition:transform .55s ease;
  mix-blend-mode:screen;
}
.archive-poster:hover::after,
.archive-poster:focus-visible::after { transform:translateX(130%); }
.archive-poster img { width:100%; height:auto; display:block; filter:saturate(.94) contrast(1.03); }
.archive-poster:hover,
.archive-poster:focus-visible {
  z-index:8;
  filter:saturate(1.06) contrast(1.04);
  box-shadow:18px 28px 55px #24100866,0 0 0 2px #d7a24e99;
  outline:none;
}
.archive-poster-1 { left:1%; top:3%; transform:rotate(-7deg); }
.archive-poster-2 { right:0; top:14%; transform:rotate(7deg); }
.archive-poster-3 { left:22%; bottom:1%; transform:rotate(-1.5deg); }
.archive-poster-1:hover,.archive-poster-1:focus-visible { transform:rotate(-3deg) translateY(-12px) scale(1.045); }
.archive-poster-2:hover,.archive-poster-2:focus-visible { transform:rotate(3deg) translateY(-12px) scale(1.045); }
.archive-poster-3:hover,.archive-poster-3:focus-visible { transform:rotate(1deg) translateY(-12px) scale(1.045); }
.poster-corner {
  position:absolute;
  right:8px;
  top:8px;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  background:#100a07db;
  border:1px solid #e4bf7777;
  color:#ead29f;
  font:700 .63rem/1 Arial,sans-serif;
  letter-spacing:.08em;
}
.archive-hint {
  position:absolute;
  right:0;
  bottom:-34px;
  margin:0;
  font:700 .58rem/1.3 Arial,sans-serif;
  letter-spacing:.2em;
  opacity:.45;
}

.poster-dialog {
  width:min(1120px,94vw);
  max-height:94vh;
  padding:0;
  border:1px solid #b98b4888;
  background:#0c0806;
  color:var(--bone);
  box-shadow:0 32px 120px #000c;
  overflow:hidden;
}
.poster-dialog::backdrop { background:#060402e8; backdrop-filter:blur(7px) sepia(.15); }
.poster-dialog[open] { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(260px,.62fr); }
.poster-dialog-stage {
  min-height:0;
  display:grid;
  place-items:center;
  padding:24px;
  overflow:auto;
  background:radial-gradient(circle at 50% 35%,#2b160d 0,#0b0705 72%);
}
.poster-dialog-stage img {
  display:block;
  max-width:100%;
  max-height:86vh;
  object-fit:contain;
  box-shadow:0 18px 65px #000a;
}
.poster-dialog-copy {
  align-self:center;
  padding:52px clamp(24px,4vw,52px);
  border-left:1px solid #d4aa6340;
}
.poster-dialog-copy h2 {
  margin:.18em 0 .28em;
  color:var(--paper);
  font-family:"Rye",Georgia,serif;
  font-size:clamp(2.2rem,5vw,4.8rem);
  line-height:.92;
}
.poster-dialog-copy > p:not(.eyebrow) {
  font-family:"Special Elite",monospace;
  font-size:1.08rem;
  line-height:1.55;
  color:#dfc99c;
  margin:0 0 32px;
}
.poster-dialog-close {
  position:absolute;
  z-index:4;
  top:12px;
  right:14px;
  width:42px;
  height:42px;
  border:1px solid #e2c98e88;
  background:#090604cc;
  color:#f0deb4;
  cursor:pointer;
  font-size:1.75rem;
  line-height:1;
}
.poster-dialog-play[hidden] { display:none; }
.track-card-archive { opacity:.7; }
.track-card-archive:hover::before { transform:translateX(-101%); }
.track-card-archive:hover { color:inherit; }
.track-play-disabled { opacity:.55; cursor:default; }

@media (max-width: 860px) {
  .poster-archive { min-height:125vw; max-height:760px; margin-top:36px; }
  .archive-poster { width:58%; }
  .archive-poster-1 { left:0; }
  .archive-poster-2 { right:0; top:17%; }
  .archive-poster-3 { left:19%; }
  .poster-dialog[open] { display:block; overflow:auto; }
  .poster-dialog-stage { padding:18px; }
  .poster-dialog-stage img { max-height:66vh; }
  .poster-dialog-copy { border-left:0; border-top:1px solid #d4aa6340; padding:28px 24px 34px; }
}

/* --- v8: Quick-draw standoff --- */
.duel-copy { position:relative; z-index:2; display:grid; place-items:center; padding:0 24px 90px; }
.duel-copy .quote { margin:.15em 0; }
.duel-status { margin:12px 0 0; min-height:1.5em; font-family:"Special Elite",monospace; font-size:.78rem; letter-spacing:.13em; text-transform:uppercase; color:#c9ad75; opacity:.76; }
.duel-trigger { min-width:190px; transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease; }
.quote-break.duel-waiting .duel-trigger { border-color:#c9ad75; color:#c9ad75; }
.quote-break.duel-draw .duel-trigger { background:#d2a04f; color:#150c07; border-color:#fff0ba; transform:scale(1.1); box-shadow:0 0 0 8px #d2a04f1d,0 0 32px #d2a04f7a; animation:drawPulse .3s steps(2,end) infinite; }
.quote-break.duel-draw .quote { transform:scale(1.08); }
.quote-break.duel-draw .quote span { color:#fff0bd; text-shadow:0 0 25px #d85a2a; }
.quote-break.duel-win .eyes-right { opacity:.12; transform:translateY(-25%) scaleX(-1) rotate(13deg); transition:transform .35s ease,opacity .35s ease; }
.quote-break.duel-win .quote span { color:#e6bb62; }
.quote-break.duel-loss .quote span,.quote-break.duel-false .quote span { color:#df5636; }
.quote-break.duel-loss::after,.quote-break.duel-false::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:radial-gradient(circle at center,transparent 28%,#8f1e1672 100%); animation:duelHit .48s ease-out both; }
.quote-break.duel-win::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:radial-gradient(circle at 78% 48%,#f6d58f3d 0 3%,transparent 19%); animation:duelHit .34s ease-out both; }
@keyframes drawPulse { 50% { filter:brightness(1.45); } }
@keyframes duelHit { from { opacity:1; } to { opacity:0; } }

/* --- v8: Film archive placeholders --- */
.video-start-cover.is-missing,.video-start-cover.is-loading { background:radial-gradient(circle at 50% 45%,#3b1d13 0,#140d09 54%,#080504 100%); cursor:default; }
.video-start-cover.is-missing::after { content:none; }
.video-pending-card { width:min(80%,720px); text-align:center; display:grid; gap:13px; padding:clamp(28px,5vw,58px); border:1px solid #d1ad6966; box-shadow:0 0 0 9px #090604aa,0 0 0 10px #d1ad6930; background:#0c0806b8; transform:rotate(-.5deg); }
.video-pending-card[hidden] { display:none!important; }
.video-pending-card small { font-size:.62rem; letter-spacing:.3em; color:#cba75f; }
.video-pending-card strong { font-family:"Rye",Georgia,serif; font-size:clamp(2.2rem,7vw,6.6rem); line-height:.88; color:#ead5a0; text-shadow:5px 5px 0 #5c2015; }
.video-pending-card em { font-style:normal; font-family:"Special Elite",monospace; font-size:.76rem; letter-spacing:.2em; color:#ba8d51; }
.video-start-cover.is-loading .video-pending-card { animation:filmThread .55s steps(2,end) infinite; }
@keyframes filmThread { 50% { opacity:.72; transform:rotate(.25deg) translateY(1px); } }
.film-thumb { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:12px; }
.film-thumb b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.film-thumb small { font-size:.52rem; letter-spacing:.14em; opacity:.48; text-align:right; }
.film-thumb.active small { opacity:.7; }

/* --- v8: Timed intermission --- */
.intermission-card { position:relative; overflow:hidden; }
.intermission-card strong { color:#f0d99f; }
.intermission-continue { margin-top:18px; }
.intermission-progress { width:min(440px,72vw); height:2px; margin:28px auto 0; background:#d8b46e2b; overflow:hidden; }
.intermission-progress i { display:block; width:0; height:100%; background:#d8b46e; box-shadow:0 0 10px #d8b46e; }
.intermission-card.is-resuming { animation:resumeFlicker .55s steps(2,end) both; }
@keyframes resumeFlicker { 0%,24%,52% { opacity:1; } 12%,38%,68% { opacity:.18; } 100% { opacity:0; transform:scale(1.025); } }

@media (max-width:850px) {
  .duel-copy { padding-bottom:110px; }
  .duel-status { font-size:.68rem; max-width:85vw; }
  .film-thumb { grid-template-columns:28px minmax(0,1fr); }
  .film-thumb small { grid-column:2; text-align:left; }
}


/* --- v9: Separate quick-draw target + two-gun feedback --- */
.duel-trigger:disabled { opacity:.42; cursor:default; transform:none!important; box-shadow:none!important; }
.duel-target {
  position:absolute; z-index:4; right:clamp(28px,11vw,180px); top:50%;
  width:clamp(112px,15vw,178px); aspect-ratio:1; transform:translateY(-50%);
  border:1px solid #c9ad756e; border-radius:50%; color:#d7bd82;
  background:radial-gradient(circle at center,#27130d 0 19%,#0d0806 20% 42%,#8b3a2044 43% 44%,#0a0706 45% 100%);
  box-shadow:0 0 0 8px #0a0706aa,0 0 0 9px #c9ad752d,0 18px 45px #0008;
  display:grid; place-items:center; cursor:crosshair; overflow:hidden;
  transition:opacity .18s ease,filter .18s ease,transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.duel-target:disabled { cursor:default; opacity:.34; filter:saturate(.65); }
.duel-reticle { position:absolute; inset:12%; border:1px solid #d7bd825c; border-radius:50%; }
.duel-reticle::before,.duel-reticle::after { content:""; position:absolute; background:#d7bd8252; }
.duel-reticle::before { left:50%; top:-16%; bottom:-16%; width:1px; transform:translateX(-50%); }
.duel-reticle::after { top:50%; left:-16%; right:-16%; height:1px; transform:translateY(-50%); }
.duel-reticle i { position:absolute; left:50%; top:50%; width:18%; aspect-ratio:1; border-radius:50%; border:1px solid #d7bd82a8; transform:translate(-50%,-50%); }
.duel-target-label { position:relative; z-index:2; margin-top:72%; font-family:"Special Elite",monospace; font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; text-shadow:0 2px 5px #000; }
.quote-break.duel-waiting .duel-target { opacity:.72; border-color:#c9ad75; }
.quote-break.duel-waiting .duel-target:not(:disabled):hover { transform:translateY(-50%) scale(1.025); }
.quote-break.duel-draw .duel-target { opacity:1; border-color:#ffe1a1; transform:translateY(-50%) scale(1.1); box-shadow:0 0 0 8px #d2a04f1d,0 0 0 9px #ffe1a155,0 0 52px #d85a2a8a; animation:targetPulse .22s steps(2,end) infinite; }
.quote-break.duel-draw .duel-target-label { color:#fff0bd; font-size:.68rem; }
.quote-break.duel-win .duel-target { opacity:.58; transform:translateY(-50%) rotate(6deg) scale(.96); }
.quote-break.duel-win .duel-reticle i { background:#090503; box-shadow:0 0 0 5px #7e2a1a99,0 0 18px #000; }
.quote-break.duel-loss .duel-target,.quote-break.duel-false .duel-target { opacity:.28; filter:grayscale(.7); }
@keyframes targetPulse { 50% { filter:brightness(1.5); } }

@media (max-width:800px) {
  .duel-copy { padding:0 20px 170px; }
  .duel-target { right:50%; top:auto; bottom:82px; width:108px; transform:translateX(50%); }
  .quote-break.duel-waiting .duel-target:not(:disabled):hover { transform:translateX(50%) scale(1.025); }
  .quote-break.duel-draw .duel-target { transform:translateX(50%) scale(1.08); }
  .quote-break.duel-win .duel-target { transform:translateX(50%) rotate(6deg) scale(.96); }
  .duel-trigger { bottom:26px; }
}

.quote-break.duel-draw .duel-trigger:disabled { background:transparent; color:#7e6b50; border-color:#65543f; animation:none; }

@media (max-width: 650px) {
  .credit-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:13px 18px; }
  .credit-grid span { font-size:.6rem; }
  .credit-grid b { font-size:.75rem; }
  .credit-block { margin-bottom:82px; }
  .credit-production { gap:48px; }
  .credit-ornament { margin-bottom:82px; }
  .final-credit-card strong { letter-spacing:.32em; }
}
@media (prefers-reduced-motion: reduce) {
  .credits { height:auto; min-height:100vh; overflow:visible; padding:100px 22px 90px; }
  .credits-stage { height:auto; overflow:visible; }
  .credits-roll-track,.final-credit-card { position:relative; left:auto; top:auto; width:min(800px,100%); margin:0 auto; transform:none !important; opacity:1 !important; animation:none !important; }
  .final-credit-card { margin-top:110px; }
  .final-credit-card strong { opacity:1; transform:none; animation:none !important; }
}

/* ========================================================================== */
/* v12 — Six-shooter hero, three-way standoff, revised two-film credits       */
/* ========================================================================== */

/* --- Six-shooter warning shots --- */
.warning-shot-control { display:flex; align-items:center; gap:12px; }
.warning-shot-control .btn { min-width:196px; }
.revolver-cylinder {
  --cylinder-turn:0deg;
  position:relative; flex:0 0 auto; width:70px; aspect-ratio:1; border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,#2a2119 0 16%,transparent 17%),
    radial-gradient(circle at 38% 30%,#c39b58 0,#5e4630 40%,#241a13 72%,#0d0907 100%);
  border:2px solid #d7b36f66;
  box-shadow:inset 0 0 0 5px #0b0706aa,inset 0 0 20px #000b,0 8px 18px #0007;
  transition:filter .18s ease,box-shadow .18s ease;
}
.revolver-cylinder::before {
  content:""; position:absolute; inset:9px; border-radius:50%;
  border:1px solid #e0bd7c24; box-shadow:inset 0 0 12px #0009;
}
.revolver-cylinder .chamber {
  position:absolute; width:13px; aspect-ratio:1; border-radius:50%; z-index:2;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,#e5c47d 0 28%,#9c7135 31% 57%,#24170f 61% 100%);
  border:1px solid #080504; box-shadow:inset 0 0 3px #fff4,0 1px 2px #000;
  transition:background .18s ease,filter .18s ease,opacity .18s ease;
}
.revolver-cylinder .chamber.spent {
  background:radial-gradient(circle,#090706 0 48%,#251c16 52% 72%,#090605 76% 100%);
  filter:saturate(.2); opacity:.78;
}
.chamber-1 { left:50%; top:16%; }
.chamber-2 { left:78%; top:33%; }
.chamber-3 { left:78%; top:67%; }
.chamber-4 { left:50%; top:84%; }
.chamber-5 { left:22%; top:67%; }
.chamber-6 { left:22%; top:33%; }
.revolver-cylinder b {
  position:absolute; z-index:3; left:50%; top:50%; transform:translate(-50%,-50%);
  font:700 .48rem/1 Arial,sans-serif; letter-spacing:.05em; color:#ead49d; text-shadow:0 1px 2px #000;
}
.revolver-cylinder.is-empty { filter:grayscale(.55) brightness(.68); box-shadow:inset 0 0 0 5px #0b0706aa,inset 0 0 20px #000b,0 0 0 1px #8d332766; }
.revolver-cylinder.reload-kick { animation:cylinderReload .42s cubic-bezier(.2,.8,.2,1); }
.revolver-cylinder.dry-click { animation:cylinderDry .11s steps(2,end); }
@keyframes cylinderReload { 45% { transform:rotate(50deg) scale(1.06); filter:brightness(1.25); } }
@keyframes cylinderDry { 50% { transform:translateX(2px) rotate(3deg); } }
.hero.warning-armed { cursor:crosshair; }
.hero.warning-armed a,.hero.warning-armed button,.hero.warning-armed .warning-shot-control { cursor:pointer; }
.hero.warning-empty { cursor:not-allowed; }

/* Anchored to the section that was actually shot, rather than the viewport. */
.bullet-hole {
  position:absolute; width:30px; height:30px; border-radius:50%; pointer-events:none; z-index:20;
  transform:translate(-50%,-50%) scale(.22) rotate(-4deg); animation:holeV12 .26s cubic-bezier(.18,.8,.2,1.25) forwards;
  background:
    radial-gradient(circle at 49% 51%,#020202 0 17%,#2c0f09 18% 25%,#d7b36f 27% 30%,#563120 32% 42%,transparent 44%),
    conic-gradient(from 16deg,#0000 0 9%,#17100c 10% 11%,#0000 12% 24%,#17100c 25% 26%,#0000 27% 100%);
  filter:drop-shadow(2px 3px 2px #000a);
}
.bullet-hole::before {
  content:""; position:absolute; inset:6px; border-radius:50%;
  box-shadow:0 0 0 1px #090605,0 0 8px #000;
}
.bullet-crack {
  --crack-angle:0deg; --crack-length:26px; --branch:10px;
  position:absolute; left:50%; top:50%; width:var(--crack-length); height:1px;
  transform-origin:0 50%; transform:rotate(var(--crack-angle));
  background:linear-gradient(90deg,#080504 0 62%,#08050488 80%,transparent);
  box-shadow:0 1px 0 #d6b57020;
}
.bullet-crack::after {
  content:""; position:absolute; left:55%; top:0; width:var(--branch); height:1px; background:#080504bb;
  transform-origin:0 50%; transform:rotate(24deg);
}
@keyframes holeV12 { 72% { transform:translate(-50%,-50%) scale(1.08) rotate(1deg); } 100% { transform:translate(-50%,-50%) scale(1) rotate(0); } }

/* --- Three-way standoff --- */
.quote-break {
  min-height:92vh;
  background:
    linear-gradient(180deg,#453649 0 22%,#74505a 38%,#b66e54 61%,#d59864 68%,#24150f 68.5% 100%);
  isolation:isolate;
}
.quote-break::before {
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(90deg,#0805048f 0,transparent 24%,transparent 76%,#0805048f 100%),linear-gradient(0deg,#090605c9 0,transparent 42%);
}
.duel-horizon { position:absolute; z-index:0; inset:0; overflow:hidden; pointer-events:none; }
.duel-horizon i { position:absolute; bottom:31%; height:15%; background:#2a1714; opacity:.68; clip-path:polygon(0 100%,8% 58%,26% 54%,38% 19%,66% 18%,76% 55%,91% 61%,100% 100%); }
.duel-horizon i:nth-child(1) { left:-8%; width:48%; }
.duel-horizon i:nth-child(2) { right:-10%; width:50%; transform:scaleX(-1); opacity:.58; }
.duel-horizon i:nth-child(3) { left:31%; width:38%; height:8%; opacity:.32; }
.duel-copy { position:relative; z-index:6; width:min(50vw,700px); margin:auto; padding:0 22px 130px; text-shadow:0 3px 18px #000; }
.duel-status { margin:16px auto 0; max-width:600px; font-family:"Special Elite",monospace; font-size:.76rem; letter-spacing:.08em; color:#f0dca8; opacity:.78; }

.outlaw {
  position:absolute; z-index:2; bottom:10%; width:clamp(124px,16vw,220px); height:58%;
  color:#090605; filter:drop-shadow(0 15px 8px #0008);
  transition:transform .38s cubic-bezier(.2,.7,.2,1),opacity .3s ease,filter .3s ease;
  transform-origin:50% 94%; pointer-events:none;
}
.outlaw-left { left:clamp(12px,5vw,80px); }
.outlaw-right { right:clamp(12px,5vw,80px); transform:scaleX(-1); }
.outlaw span { position:absolute; display:block; background:currentColor; }
.outlaw-head { left:42%; top:12%; width:17%; aspect-ratio:.78; border-radius:46% 46% 42% 42%; }
.outlaw-hat { left:30%; top:7%; width:42%; height:8%; border-radius:50%; transform:skewX(-9deg); }
.outlaw-hat::before { content:""; position:absolute; left:25%; bottom:30%; width:55%; height:125%; background:currentColor; clip-path:polygon(14% 100%,24% 8%,78% 0,90% 100%); }
.outlaw-body { left:30%; top:25%; width:44%; height:43%; clip-path:polygon(18% 0,82% 0,100% 100%,0 100%); }
.outlaw-arm { top:29%; width:12%; height:38%; border-radius:40%; transform-origin:50% 0; }
.outlaw-arm-a { left:24%; transform:rotate(9deg); }
.outlaw-arm-b { right:21%; transform:rotate(-12deg); }
.outlaw-legs { left:29%; bottom:0; width:47%; height:35%; background:linear-gradient(86deg,currentColor 0 42%,transparent 43% 56%,currentColor 57%); clip-path:polygon(0 0,100% 0,92% 100%,61% 100%,51% 22%,41% 100%,9% 100%); }
.outlaw.is-shot { opacity:.45; transform:rotate(19deg) translateY(11%) scale(.97); filter:drop-shadow(0 8px 4px #0007) grayscale(.8); }
.outlaw-right.is-shot { transform:scaleX(-1) rotate(19deg) translateY(11%) scale(.97); }
.outlaw.is-empty { animation:emptyGun .36s ease 1; opacity:.82; }
.outlaw.is-winner { filter:drop-shadow(0 0 16px #f0b85d80) drop-shadow(0 14px 8px #0008); }
.outlaw.is-doomed { filter:brightness(1.8) drop-shadow(0 0 18px #f2ca79); }
@keyframes emptyGun { 45% { transform:translateX(-5px) rotate(-2deg); } }

.duel-target {
  z-index:5; top:49%; width:clamp(94px,10vw,132px); opacity:.3;
  background:radial-gradient(circle at center,#25120d88 0 18%,#0d0806aa 20% 40%,#d59a4633 42% 43%,#0a0706aa 45% 100%);
  backdrop-filter:blur(1px);
}
.duel-target-left { left:clamp(70px,9vw,150px); right:auto; }
.duel-target-right { right:clamp(70px,9vw,150px); left:auto; }
.duel-target-name {
  position:absolute; top:-31px; left:50%; transform:translateX(-50%); width:180%;
  font:700 .56rem/1.1 Arial,sans-serif; letter-spacing:.2em; color:#e8d29d; text-align:center; text-shadow:0 2px 5px #000;
}
.duel-target-label { margin-top:70%; }
.quote-break.duel-waiting .duel-target { opacity:.62; }
.quote-break.duel-draw .duel-target { opacity:1; transform:translateY(-50%) scale(1.08); }
.quote-break.duel-win .duel-target { opacity:.48; transform:translateY(-50%) scale(.96); }
.quote-break.duel-loss .duel-target,.quote-break.duel-false .duel-target { opacity:.34; }
.quote-break.duel-win::after { background:radial-gradient(circle at center,#f6d58f2c 0 4%,transparent 26%); }

.duel-scoreboard {
  position:absolute; z-index:7; left:50%; bottom:12%; transform:translateX(-50%);
  width:min(660px,62vw); display:grid; grid-template-columns:repeat(3,1fr) auto; align-items:center;
  border:1px solid #e4c77d3d; background:#080504b8; box-shadow:0 12px 30px #0007; backdrop-filter:blur(5px);
}
.duel-scoreboard > div { padding:11px 18px; border-right:1px solid #e4c77d24; text-align:left; }
.duel-scoreboard small { display:block; font-size:.48rem; letter-spacing:.2em; color:#c5aa70; opacity:.62; }
.duel-scoreboard strong { display:block; margin-top:4px; font-family:"Special Elite",monospace; font-size:.8rem; color:#f0d89e; }
.duel-scoreboard button { align-self:stretch; border:0; border-left:1px solid #e4c77d24; background:transparent; color:#a89163; padding:0 14px; font-size:.48rem; letter-spacing:.13em; cursor:pointer; }
.duel-scoreboard button:hover { color:#f0d89e; background:#fff1; }
.duel-trigger { z-index:8; bottom:5%; background:#0b07069e; backdrop-filter:blur(4px); }
.duel-line { opacity:.13; }

/* --- Revised two-picture end credits --- */
.credit-film-title { margin:0 auto 42px; }
.credit-film-title small { display:block; font-size:.58rem; letter-spacing:.34em; opacity:.42; margin-bottom:14px; }
.credit-film-title h3 { margin:0; font-family:"Rye",serif; font-size:clamp(2.25rem,5.8vw,4.8rem); color:var(--paper); font-weight:400; }
.credit-film-divider { margin:0 auto 82px; opacity:.3; }
.credit-additional h3 { margin-bottom:38px; }
.credit-block { margin-bottom:80px; }
.credit-production { gap:48px; }
.credit-ornament { margin-bottom:78px; }
.credits.is-rolling .credits-roll-track { animation-duration:39.2s; }
.credits.is-rolling .final-credit-card { animation:returnCardRiseV12 6.8s 40.15s cubic-bezier(.22,.72,.16,1) forwards; }
@keyframes returnCardRiseV12 {
  0% { transform:translate(-50%,78vh); opacity:0; }
  15% { opacity:1; }
  46% { transform:translate(-50%,-48%); opacity:1; }
  100% { transform:translate(-50%,-54%); opacity:1; }
}

@media (max-width:900px) {
  .warning-shot-control { flex-basis:100%; }
  .revolver-cylinder { width:62px; }
  .duel-copy { width:min(58vw,560px); padding-bottom:190px; }
  .duel-target { width:98px; }
  .duel-target-left { left:36px; }
  .duel-target-right { right:36px; }
  .outlaw { width:132px; height:52%; bottom:13%; }
  .outlaw-left { left:6px; }
  .outlaw-right { right:6px; }
  .duel-scoreboard { width:min(680px,78vw); bottom:12%; }
}

@media (max-width:650px) {
  .hero-actions { align-items:flex-start; }
  .warning-shot-control { width:100%; gap:9px; }
  .warning-shot-control .btn { flex:1 1 auto; min-width:0; }
  .revolver-cylinder { width:58px; }

  .quote-break { min-height:900px; place-items:start center; }
  .duel-copy { width:100%; padding:95px 18px 0; }
  .quote { font-size:clamp(1.45rem,7vw,2.4rem); }
  .outlaw { width:112px; height:43%; bottom:20%; opacity:.95; }
  .outlaw-left { left:-2px; }
  .outlaw-right { right:-2px; }
  .duel-target { top:auto; bottom:245px; width:88px; transform:none; }
  .duel-target-left { left:24px; }
  .duel-target-right { right:24px; }
  .quote-break.duel-waiting .duel-target:not(:disabled):hover,
  .quote-break.duel-draw .duel-target,
  .quote-break.duel-win .duel-target { transform:none; }
  .duel-target-name { top:-25px; font-size:.48rem; width:155%; }
  .duel-scoreboard { bottom:92px; width:calc(100% - 28px); grid-template-columns:repeat(3,1fr); }
  .duel-scoreboard > div { padding:9px 8px; text-align:center; }
  .duel-scoreboard button { grid-column:1 / -1; border-left:0; border-top:1px solid #e4c77d24; padding:8px; }
  .duel-scoreboard small { font-size:.42rem; letter-spacing:.12em; }
  .duel-scoreboard strong { font-size:.68rem; }
  .duel-trigger { bottom:28px; }

  .credit-film-title { margin-bottom:32px; }
  .credit-film-divider { margin-bottom:62px; }
}

@media (prefers-reduced-motion: reduce) {
  .revolver-cylinder.reload-kick,.revolver-cylinder.dry-click,.outlaw.is-empty { animation:none!important; }
  .credits.is-rolling .credits-roll-track,.credits.is-rolling .final-credit-card { animation:none!important; }
}
