@font-face{font-family:'Cormorant Garamond';src:url('../../fonts/cormorant-garamond-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('../../fonts/cormorant-garamond-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('../../fonts/cormorant-garamond-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Great Vibes';src:url('../../fonts/great-vibes-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Jost';src:url('../../fonts/jost-300.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Jost';src:url('../../fonts/jost-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Jost';src:url('../../fonts/jost-500.woff2') format('woff2');font-weight:500;font-display:swap}
*{box-sizing:border-box}
:root{--ink:#241a1c;--cream:#fdf6ec;--paper:#fffdf7;--wine:#6e1423;--wine-soft:#f6e3e6;--gold:#c9970d;--gold-soft:#f7ead0;--char:#2b2320}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Jost',system-ui,sans-serif}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.on{opacity:1;transform:none}
/* Curtain intro */
.wtp-curtain{position:fixed;inset:0;z-index:50;overflow:hidden;background:#1c0f12}
.wtp-curtain-panel{position:absolute;top:0;bottom:0;width:52%;background:repeating-linear-gradient(90deg,#7a1f2b 0 46px,#5e1420 46px 92px);transition:transform 1s ease;box-shadow:inset 0 0 60px rgba(0,0,0,.5)}
.wtp-left{left:0}
.wtp-right{right:0}
.wtp-curtain.open .wtp-left{transform:translateX(-100%)}
.wtp-curtain.open .wtp-right{transform:translateX(100%)}
.wtp-curtain-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;color:#fdf6ec;width:min(560px,90vw);transition:opacity .5s ease}
.wtp-curtain.open .wtp-curtain-card{opacity:0;pointer-events:none}
.wtp-curtain-kicker{letter-spacing:.24em;font-size:12px;color:var(--gold)}
.wtp-curtain-names{font-family:'Great Vibes',cursive;font-size:54px;font-weight:400;margin:8px 0}
.wtp-curtain-date{font-family:'Cormorant Garamond',serif;font-size:22px}
.wtp-curtain-btn{background:var(--gold);color:#241a1c;border:0;border-radius:999px;padding:14px 30px;font-size:16px;font-family:inherit;cursor:pointer;font-weight:500}
.wtp-curtain-hint{font-size:13px;color:#d8bfae}
/* Marquee hero */
.wtp-hero{padding:56px 20px 20px;text-align:center}
.wtp-marquee{max-width:860px;margin:0 auto;background:var(--wine);color:#fdf6ec;border-radius:18px;padding:26px 20px;box-shadow:0 18px 40px rgba(110,20,35,.25)}
.wtp-bulbs{display:flex;justify-content:space-between;padding:2px 6px}
.wtp-bulbs span{width:11px;height:11px;border-radius:50%;background:#ffd97a;box-shadow:0 0 10px #ffd97a;animation:glow 1.6s infinite alternate}
.wtp-bulbs span:nth-child(even){animation-delay:.8s}
@keyframes glow{from{opacity:.55}to{opacity:1}}
.wtp-marquee-kicker{letter-spacing:.24em;font-size:12px;color:#f0c96a;margin:14px 0 6px}
.wtp-marquee-names{font-family:'Cormorant Garamond',serif;font-size:56px;line-height:1.05;margin:0;font-weight:600}
.wtp-amp{font-family:'Great Vibes',cursive;font-weight:400;color:#f0c96a}
.wtp-marquee-line{font-family:'Great Vibes',cursive;font-size:28px;color:#f0c96a;margin:8px 0 14px}
.wtp-playbill-strip{max-width:860px;margin:18px auto 0;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}
.wtp-playbill-strip span{background:var(--paper);border:1px solid #e8d5ae;border-radius:999px;padding:9px 18px;font-size:14px}
.wtp-strip-cta{background:var(--wine);color:#fff;text-decoration:none;border-radius:999px;padding:10px 22px;font-size:14px}
.wtp-quote{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:23px;color:#6b5148;max-width:640px;margin:26px auto 0}
/* Sections */
.wtp-section{max-width:960px;margin:0 auto;padding:44px 20px}
.wtp-kicker{text-align:center;letter-spacing:.26em;font-size:12px;color:var(--gold);font-weight:500;margin:0 0 8px}
.wtp-h2{text-align:center;font-family:'Cormorant Garamond',serif;font-size:38px;margin:0 0 28px;color:var(--wine)}
/* Lead roles */
.wtp-leads{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center}
.wtp-lead{text-align:center;background:var(--paper);border:1px solid #ecd9b8;border-radius:18px;padding:28px 20px}
.wtp-portrait{width:120px;height:120px;border-radius:50%;margin:0 auto;border:5px solid #fff;box-shadow:0 8px 22px rgba(0,0,0,.16);overflow:hidden;background:var(--wine-soft);display:flex;align-items:center;justify-content:center}
.wtp-portrait img{width:100%;height:100%;object-fit:cover}
.wtp-portrait-mono{font-family:'Great Vibes',cursive;font-size:56px;color:var(--wine)}
.wtp-role{letter-spacing:.22em;font-size:12px;color:var(--gold);margin:16px 0 4px}
.wtp-lead h3{font-family:'Cormorant Garamond',serif;font-size:30px;margin:0;color:var(--wine)}
.wtp-parents{color:#7a5c58;margin:6px 0 0}
.wtp-leads-amp{font-family:'Great Vibes',cursive;font-size:52px;color:var(--gold)}
.wtp-family-head{text-align:center;font-family:'Cormorant Garamond',serif;font-size:22px;color:#6b5148;margin-top:24px}
/* Theatre clock */
.wtp-clock-wrap{text-align:center}
.wtp-clock{max-width:520px;margin:0 auto}
.wtp-clock-face{position:relative;width:210px;height:210px;margin:0 auto;border-radius:50%;background:var(--paper);border:10px solid var(--wine);box-shadow:0 12px 28px rgba(0,0,0,.14)}
.wtp-hand{position:absolute;left:50%;bottom:50%;transform-origin:50% 100%;border-radius:4px;background:var(--wine)}
.wtp-hour{width:6px;height:58px;margin-left:-3px}
.wtp-minute{width:4px;height:82px;margin-left:-2px;background:#3a2a28}
.wtp-second{width:2px;height:90px;margin-left:-1px;background:var(--gold)}
.wtp-clock-pin{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--gold)}
.wtp-clock-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px}
.wtp-clock-nums strong{display:block;font-family:'Cormorant Garamond',serif;font-size:36px;color:var(--wine);line-height:1}
.wtp-clock-nums span{font-size:12px;letter-spacing:.18em;color:#8a6f6a}
.wtp-clock-done{font-family:'Cormorant Garamond',serif;font-size:26px;color:var(--wine)}
/* Programme */
.wtp-act{font-family:'Cormorant Garamond',serif;font-size:26px;color:var(--wine);border-bottom:2px solid var(--gold-soft);padding-bottom:8px;margin:30px 0 16px}
.wtp-scenes{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.wtp-scene{display:grid;grid-template-columns:64px 1fr;gap:16px;background:var(--paper);border:1px solid #ecd9b8;border-radius:14px;padding:16px 18px}
.wtp-scene-num{font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--gold);font-weight:600}
.wtp-scene-body h4{margin:0 0 4px;font-family:'Cormorant Garamond',serif;font-size:23px;color:var(--wine)}
.wtp-scene-body p{margin:2px 0;color:#5a4642}
.wtp-scene-when{font-weight:500;color:var(--gold)!important}
/* Filmstrip gallery */
.wtp-filmstrip{display:flex;gap:18px;overflow-x:auto;padding:18px 6px;background:#241a1c;border-radius:14px;scroll-snap-type:x mandatory}
.wtp-frame{flex:0 0 240px;margin:0;background:#fffdf7;border-radius:8px;padding:10px;scroll-snap-align:start}
.wtp-frame img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;background:var(--wine-soft);display:block}
.wtp-frame figcaption{font-family:'Cormorant Garamond',serif;font-size:18px;padding-top:8px;text-align:center;color:var(--wine)}
.wtp-hint{text-align:center;color:#8a6f6a;font-size:14px}
/* Seat sections */
.wtp-seats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.wtp-seat{background:var(--paper);border:1px solid #ecd9b8;border-radius:16px;padding:22px}
.wtp-seat-tag{display:inline-block;background:var(--wine);color:#fff;font-size:11px;letter-spacing:.2em;border-radius:999px;padding:5px 12px}
.wtp-seat h3{font-family:'Cormorant Garamond',serif;font-size:24px;color:var(--wine);margin:12px 0 8px}
.wtp-seat p{margin:6px 0;line-height:1.6;color:#5a4642}
/* Theatre card + box office */
.wtp-theatre-card{background:var(--wine);color:#fdf6ec;border-radius:20px;padding:32px;text-align:center}
.wtp-theatre-card h3{font-family:'Cormorant Garamond',serif;font-size:30px;margin:0 0 8px}
.wtp-theatre-card p{margin:4px 0;color:#e8d0c8}
.wtp-theatre-when{color:#f0c96a!important;font-weight:500}
.wtp-btn{display:inline-block;background:var(--gold);color:#241a1c;text-decoration:none;border-radius:999px;padding:13px 26px;font-size:15px;border:0;cursor:pointer;font-family:inherit;font-weight:500}
.wtp-btn-submit{width:100%}
.wtp-form{max-width:520px;margin:0 auto;background:var(--paper);border:1px solid #ecd9b8;border-radius:18px;padding:26px;display:grid;gap:14px}
.wtp-form label{font-weight:500;font-size:14px;display:grid;gap:6px}
.wtp-form input,.wtp-form select{font-family:inherit;font-size:15px;padding:12px;border:1px solid #e0c491;border-radius:10px;background:#fff}
.wtp-thanks{max-width:520px;margin:0 auto;background:var(--wine);color:#fff;border-radius:18px;padding:28px;text-align:center}
.wtp-thanks-big{font-family:'Great Vibes',cursive;font-size:40px;margin:0 0 6px}
.wtp-footer{text-align:center;padding:36px 20px 48px}
.wtp-foot-quote{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:22px;color:#7a5c58;max-width:640px;margin:0 auto 10px}
.wtp-foot-line{letter-spacing:.14em;font-size:13px;color:var(--gold)}
.wtp-foot-names{font-family:'Great Vibes',cursive;font-size:30px;margin:6px 0;color:var(--wine)}
.wtp-credit{font-size:13px;color:#9a7f7a}
.floating-music{position:fixed;right:16px;bottom:16px;z-index:40;width:48px;height:48px;border-radius:50%;border:0;background:var(--wine);color:#fff;font-size:22px;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.2)}
@media(max-width:700px){
  .wtp-marquee-names{font-size:40px}
  .wtp-curtain-names{font-size:42px}
  .wtp-leads{grid-template-columns:1fr}
  .wtp-leads-amp{transform:rotate(90deg)}
  .wtp-seats{grid-template-columns:1fr}
  .wtp-h2{font-size:30px}
}
