:root {
    --color-bg: #F5F0E8; --color-text: #2C2520; --color-text-secondary: #5A5550;
    --color-accent: #8B3A2F; --color-accent-light: #C4705E; --color-divider: #DDD8D2;
    --color-card-bg: #FFFFFF; --color-dark: #2A2725;
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Manrope', sans-serif;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { font-family:var(--font-display); background:var(--color-bg); color:var(--color-text); line-height:1.6; font-size:1.12rem; -webkit-font-smoothing:antialiased; overflow-x:hidden; padding-bottom:110px; }
  a { color:inherit; text-decoration:none; }
  nav { position:sticky; top:0; z-index:100; background:rgba(245,240,232,0.92); backdrop-filter:blur(12px); border-bottom:1px solid var(--color-divider); padding:0 clamp(1.5rem,5vw,4rem); }
  .nav-inner { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; height:64px; }
  .nav-name { font-family:var(--font-display); font-size:1.35rem; font-weight:600; letter-spacing:0.03em; }
  .nav-links { display:flex; gap:2rem; list-style:none; font-size:0.8rem; font-family:var(--font-body); font-weight:600; letter-spacing:0.1em; text-transform:uppercase; }
  .nav-links a { color:var(--color-text-secondary); transition:color 0.2s; position:relative; }
  .nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1.5px; background:var(--color-accent); transition:width 0.3s; }
  .nav-links a:hover { color:var(--color-text); }
  .nav-links a:hover::after { width:100%; }
  .nav-links .active { color:var(--color-text); }
  .nav-links .active::after { width:100%; }
  .nav-dropdown { position:relative; }
  .nav-dropdown-menu { display:none; position:absolute; top:100%; padding-top:12px; left:50%; transform:translateX(-50%); background:var(--color-card-bg); border:1px solid var(--color-divider); border-radius:8px; padding:0.6rem 0; min-width:200px; box-shadow:0 8px 30px rgba(0,0,0,0.08); z-index:200; }
  .nav-dropdown:hover .nav-dropdown-menu { display:block; }
  .nav-dropdown-menu a { display:block; padding:0.45rem 1.2rem; font-size:0.75rem; letter-spacing:0.06em; text-transform:none; font-weight:500; white-space:nowrap; }
  .nav-dropdown-menu a:hover { background:#F5F2EE; }
  .nav-dropdown-menu a::after { display:none; }
  .hamburger { display:none; background:none; border:none; cursor:pointer; }
  .hamburger svg { width:26px; height:26px; stroke:var(--color-text); }
  .back-link { max-width:1200px; margin:0 auto; padding:1rem clamp(1.5rem,5vw,4rem) 0; }
  .back-link a { font-family:var(--font-body); font-size:0.75rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--color-text-secondary); transition:color 0.2s; }
  .back-link a:hover { color:var(--color-accent); }
  .back-link a span { margin-right:0.4rem; }
  .show-header { max-width:1200px; margin:0 auto; padding:clamp(1.5rem,3vw,2rem) clamp(1.5rem,5vw,4rem); display:grid; grid-template-columns:250px 1fr; gap:clamp(2rem,4vw,3rem); align-items:start; }
  .poster-wrap { position:relative; cursor:pointer; }
  .poster-wrap img { width:100%; border-radius:4px; box-shadow:0 8px 30px rgba(0,0,0,0.15); display:block; transition:transform 0.3s ease; }
  .poster-wrap:hover img { transform:scale(1.02); }
  .poster-hint { font-family:var(--font-body); font-size:0.6rem; color:var(--color-text-secondary); text-align:center; margin-top:0.4rem; opacity:0.6; }
  .poster-lightbox { display:none; position:fixed; inset:0; z-index:500; background:rgba(0,0,0,0.85); align-items:center; justify-content:center; cursor:pointer; backdrop-filter:blur(6px); }
  .poster-lightbox.open { display:flex; }
  .poster-lightbox img { max-height:90vh; max-width:90vw; border-radius:6px; box-shadow:0 12px 60px rgba(0,0,0,0.4); }
  .lightbox-close { position:absolute; top:1.5rem; right:1.5rem; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,0.15); border:1px solid rgba(255,255,255,0.2); color:#fff; font-size:1.2rem; display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .show-title-line { font-family:var(--font-display); font-size:clamp(1.8rem,3.5vw,2.6rem); font-weight:500; line-height:1.15; }
  .show-playwright { font-family:var(--font-display); font-size:clamp(1.35rem,2.6vw,1.95rem); font-weight:500; color:var(--color-text-secondary); margin-top:0.15rem; }
  .show-venue-line { font-family:var(--font-body); font-size:0.85rem; font-weight:600; letter-spacing:0.04em; color:var(--color-accent); margin-top:0.6rem; }
  .credits { margin-top:1.2rem; display:flex; flex-wrap:wrap; gap:0.2rem 0; border-top:1px solid var(--color-divider); padding-top:0.9rem; }
  .credit-item { font-size:1rem; line-height:1.6; }
  .credit-item::after { content:'\00a0\00a0\b7\00a0\00a0'; color:var(--color-accent-light); font-weight:400; }
  .credit-item:last-child::after { content:''; }
  .credit-role { font-family:var(--font-body); font-size:0.7rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--color-text-secondary); }
  .cast { margin-top:0.8rem; border-top:1px solid var(--color-divider); padding-top:0.8rem; }
  .cast-label { font-family:var(--font-body); font-size:0.7rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--color-text-secondary); margin-bottom:0.15rem; }
  .cast-names { font-size:1rem; line-height:1.7; }
  .cast-name::after { content:'\00a0\00a0\b7\00a0\00a0'; color:var(--color-accent-light); font-weight:400; }
  .cast-name:last-child::after { content:''; }
  .gallery-section { max-width:1200px; margin:0 auto; padding:0 clamp(1.5rem,5vw,4rem) clamp(2rem,3vw,2.5rem); }
  .gallery-wrap { display:grid; grid-template-columns:1fr 72px; gap:0.7rem; align-items:start; }
  .gallery-viewer { position:relative; border-radius:8px; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,0.12), 0 1px 3px rgba(0,0,0,0.08); line-height:0; font-size:0; padding:0; margin:0; }
  .gallery-viewer img { width:100%; display:none; vertical-align:top; padding:0; margin:0; border:0; }
  .gallery-viewer img.active { display:block; position:relative; z-index:1; }
  .gallery-viewer img.fade-out { display:block; position:absolute; top:0; left:0; z-index:2; opacity:0; transition:opacity 0.45s ease; }
  .gallery-nav { position:absolute; top:50%; transform:translateY(-50%); width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,0.15); border:1px solid rgba(255,255,255,0.2); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1.1rem; transition:background 0.2s; backdrop-filter:blur(4px); z-index:5; }
  .gallery-nav:hover { background:rgba(255,255,255,0.3); }
  .gallery-nav--prev { left:0.7rem; }
  .gallery-nav--next { right:0.7rem; }
  .gallery-caption { position:absolute; bottom:0; right:0; left:auto; padding:0.5rem 0.8rem; background:linear-gradient(to left, rgba(0,0,0,0.5), transparent); font-family:var(--font-body); font-size:0.65rem; font-weight:500; color:rgba(255,255,255,0.75); z-index:4; pointer-events:none; text-align:right; }
  .gallery-counter { position:absolute; bottom:0.7rem; left:0.7rem; font-family:var(--font-body); font-size:0.6rem; font-weight:600; color:rgba(255,255,255,0.9); text-shadow: 0 1px 3px rgba(0,0,0,0.8), 0 0 6px rgba(0,0,0,0.5); z-index:5; }
  .gallery-thumbstrip-v { display:flex; flex-direction:column; gap:0.45rem; overflow-y:auto; max-height:100%; scrollbar-width:thin; scrollbar-color:var(--color-divider) transparent; }
  .gallery-thumb { width:72px; height:48px; border-radius:3px; overflow:hidden; cursor:pointer; flex-shrink:0; border:2px solid transparent; transition:border-color 0.2s, opacity 0.2s; opacity:0.45; }
  .gallery-thumb.active { border-color:var(--color-accent); opacity:1; }
  .gallery-thumb:hover { opacity:0.8; }
  .gallery-thumb img { width:100%; height:100%; object-fit:cover; }
  .photo-credit { font-family:var(--font-body); font-size:0.65rem; color:var(--color-text-secondary); margin-top:0.4rem; grid-column:1 / -1; }
  .filmstrip { position:fixed; bottom:0; left:0; right:0; z-index:90; background:var(--color-dark); border-top:1px solid rgba(255,255,255,0.08); transform:translateY(100%); transition:transform 0.4s ease; }
  .filmstrip.visible { transform:translateY(0); }
  .filmstrip-wrap { position:relative; max-width:1200px; margin:0 auto; height:110px; }
  .filmstrip-inner { display:flex; align-items:center; height:110px; padding:0 clamp(1rem,3vw,2rem); gap:0.5rem; overflow-x:auto; scrollbar-width:none; cursor:grab; }
  .filmstrip-inner.dragging { cursor:grabbing; scroll-behavior:auto; }
  .filmstrip-inner.dragging a { pointer-events:none; }
  .filmstrip-inner::-webkit-scrollbar { display:none; }
  .filmstrip-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:95; width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.15); color:rgba(255,255,255,0.8); font-size:1.1rem; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:opacity 0.25s, background 0.2s; backdrop-filter:blur(4px); }
  .filmstrip-arrow:hover { background:rgba(255,255,255,0.22); }
  .filmstrip-arrow.hidden { opacity:0; pointer-events:none; }
  .filmstrip-arrow--left { left:0.4rem; }
  .filmstrip-arrow--right { right:0.4rem; }
  .filmstrip-fade { position:absolute; top:0; bottom:0; width:40px; pointer-events:none; z-index:92; transition:opacity 0.25s; }
  .filmstrip-fade.hidden { opacity:0; }
  .filmstrip-fade--left { left:0; background:linear-gradient(to right, var(--color-dark), transparent); }
  .filmstrip-fade--right { right:0; background:linear-gradient(to left, var(--color-dark), transparent); }
  .filmstrip-item { flex-shrink:0; position:relative; width:145px; height:92px; border-radius:4px; overflow:hidden; cursor:pointer; transition:transform 0.2s, box-shadow 0.2s; border:2px solid transparent; display:block; }
  .filmstrip-item:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,0.3); }
  .filmstrip-item.current { border-color:var(--color-accent); }
  .filmstrip-item img { width:100%; height:100%; object-fit:cover; display:block; }
  .filmstrip-item .filmstrip-label { position:absolute; bottom:0; left:0; right:0; padding:0.25rem 0.4rem; background:linear-gradient(to top, rgba(0,0,0,0.85), transparent); font-family:var(--font-body); font-size:0.58rem; font-weight:600; color:rgba(255,255,255,0.85); letter-spacing:0.03em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.3; }
  .filmstrip-item.current .filmstrip-label { color:var(--color-accent-light); }
  footer { border-top:1px solid var(--color-divider); padding:1.25rem clamp(1.5rem,5vw,4rem); text-align:center; font-size:0.78rem; font-family:var(--font-body); color:var(--color-text-secondary); }
  @media (max-width:900px) {
    .show-header { grid-template-columns:180px 1fr; gap:1.5rem; }
    .nav-links { display:none; }
    .nav-links.open { display:flex; flex-direction:column; position:absolute; top:64px; left:0; right:0; background:var(--color-bg); padding:1rem clamp(1.5rem,5vw,4rem); border-bottom:1px solid var(--color-divider); gap:1rem; z-index:99; }
    .hamburger { display:block; }
  }
  @media (max-width:600px) {
    .show-header { grid-template-columns:1fr; text-align:center; }
    .poster-wrap { max-width:200px; margin:0 auto; }
    .credits { justify-content:center; }
    .gallery-wrap { grid-template-columns:1fr; }
    .gallery-thumbstrip-v { flex-direction:row; overflow-x:auto; overflow-y:hidden; max-height:none; }
    .gallery-thumb { width:60px; height:40px; }
    .filmstrip-inner { height:80px; }
    .filmstrip-wrap { height:80px; }
    .filmstrip-item { width:100px; height:64px; }
    .filmstrip-arrow { width:30px; height:30px; font-size:0.9rem; }
    .filmstrip-fade { width:28px; }
    body { padding-bottom:80px; }
  }
  /* Gallery + Quotes row layout */
  .gallery-quotes-row { max-width:1200px; margin:0 auto; padding:0 clamp(1.5rem,5vw,4rem) clamp(2rem,3vw,2.5rem); display:grid; grid-template-columns:1fr 320px; gap:2rem; align-items:start; }
  .quotes-panel { display:flex; flex-direction:column; gap:0; }
  .quote-cards { display:flex; flex-direction:column; gap:0.75rem; }
  .quote-card { background:var(--color-card-bg); border-radius:8px; padding:1.2rem 1.3rem; box-shadow:0 1px 4px rgba(0,0,0,0.06); border:1px solid var(--color-divider); }
  .quote-card blockquote { font-family:var(--font-display); font-size:1.05rem; line-height:1.55; color:var(--color-text); font-style:italic; }
  .quote-card .play-title { font-style:italic; }
  .quote-card cite { display:block; font-family:var(--font-body); font-size:0.65rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--color-accent); margin-top:0.5rem; font-style:normal; }
  .quote-card cite a { color:var(--color-accent); transition:color 0.2s; }
  .quote-card cite a:hover { color:var(--color-accent-light); }
  .premiere-badge { display:inline-block; font-family:var(--font-body); font-size:0.6rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--color-accent); border:1px solid var(--color-accent); border-radius:3px; padding:0.15rem 0.5rem; margin-left:0.5rem; vertical-align:middle; }
  @media (max-width:900px) {
    .gallery-quotes-row { grid-template-columns:1fr; }
  }

  .quote-card { transition:box-shadow 0.2s, transform 0.2s; }
  .quote-card:hover { box-shadow:0 4px 16px rgba(0,0,0,0.12); transform:translateY(-2px); }
  .quote-card:hover blockquote { color:var(--color-text); }
  .quote-card:hover cite { color:var(--color-accent-light); }
