:root{
  --paper:#f2ede2; --paper2:#e9e2d0; --ink:#171310; --ink2:#2c241d;
  --red:#b33122; --red2:#8f2418; --muted:#6d6151; --line:#c9bda4;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Manrope',Arial,sans-serif;background:var(--paper);color:var(--ink);line-height:1.65;overflow-x:hidden}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px}
a{color:var(--red)}
img{max-width:100%}
/* ===== NAV ===== */
nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(242,237,226,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:2px solid var(--ink)}
nav .wrap{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding-top:11px;padding-bottom:11px}
nav .brand{margin-right:auto;font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:18px;color:var(--ink);text-decoration:none}
nav .brand i{font-style:normal;color:var(--red)}
nav a.nl{color:var(--ink2);text-decoration:none;font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:8px 16px;transition:.2s}
nav a.nl:hover{color:var(--red)}
nav a.nl.on{background:var(--ink);color:var(--paper)}
/* ===== HERO ===== */
.hero{min-height:100vh;display:flex;flex-wrap:wrap;align-items:center;gap:60px;padding:140px 0 80px}
.hero-photo{flex:0 1 420px;max-width:100%}
.hero-photo img{width:100%;display:block;border:2px solid var(--ink);box-shadow:14px 14px 0 var(--red)}
.hero-text{flex:1.15;min-width:320px}
.kicker{display:flex;align-items:center;gap:12px;color:var(--ink);letter-spacing:.42em;text-transform:uppercase;font-family:'Oswald',sans-serif;font-weight:500;font-size:14px;margin-bottom:24px}
.kicker::before{content:"";width:14px;height:14px;background:var(--red);flex:0 0 auto}
h1{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(56px,8.6vw,118px);line-height:.98;color:var(--ink);letter-spacing:.015em}
h1 .red{color:var(--red)}
.program-line{margin-top:22px;font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.18em;font-size:clamp(15px,1.8vw,20px);color:var(--ink)}
.program-line b{color:var(--red);font-weight:600}
.bio-teaser{margin-top:16px;font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:18px;color:var(--ink2);max-width:52ch}
.date-venue{margin-top:30px;font-size:18px;line-height:2;color:var(--ink2)}
.date-venue b{color:var(--ink);font-weight:800;letter-spacing:.04em}
.cta-row{margin-top:36px;display:flex;flex-wrap:wrap;gap:16px}
.btn{display:inline-block;background:var(--red);color:#fdf6ea;text-decoration:none;padding:17px 38px;font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:16px;border:2px solid var(--red);transition:.2s}
.btn:hover{background:var(--red2);border-color:var(--red2)}
.btn.ghost{background:transparent;border:2px solid var(--ink);color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.hero-poster{flex:.85;min-width:300px;display:flex;justify-content:center}
.hero-poster .card{width:min(400px,86vw)}
.hero-poster img{width:100%;display:block;border:2px solid var(--ink);box-shadow:14px 14px 0 rgba(23,19,16,.9)}
/* ===== TICKER ===== */
.ticker{background:var(--ink);overflow:hidden;padding:15px 0}
.ticker .track{display:flex;white-space:nowrap;animation:tick 24s linear infinite;width:max-content}
.ticker span{font-family:'Oswald',sans-serif;font-weight:500;font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--paper);padding:0 28px}
.ticker i{font-style:normal;color:var(--red)}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* ===== SECTIONS ===== */
section{padding:88px 0}
.sec-label{display:flex;align-items:center;gap:12px;color:var(--ink);letter-spacing:.4em;text-transform:uppercase;font-family:'Oswald',sans-serif;font-weight:500;font-size:14px;margin-bottom:20px}
.sec-label::before{content:"";width:12px;height:12px;background:var(--red);flex:0 0 auto}
h2{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(30px,4.6vw,54px);color:var(--ink);margin-bottom:26px;line-height:1.04;letter-spacing:.01em}
h2 em{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;text-transform:none;color:var(--red);letter-spacing:0}
h3{font-family:'Oswald',sans-serif}
p{max-width:70ch;color:var(--ink2)}
.lead{font-size:20px;line-height:1.75}
.split{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.split .txt{flex:1;min-width:300px}
.split .pic{flex:0 0 380px;max-width:100%}
.split .pic img{width:100%;display:block;border:2px solid var(--ink);box-shadow:12px 12px 0 var(--red)}
.wide-pic{margin-top:28px}
.wide-pic img{width:100%;display:block;border:2px solid var(--ink);box-shadow:12px 12px 0 var(--red)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:10px}
.fact{background:var(--paper2);border:2px solid var(--ink);padding:24px 26px;transition:.2s}
.fact:hover{box-shadow:8px 8px 0 var(--ink);transform:translate(-2px,-2px)}
.fact h3{color:var(--red);font-size:20px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.fact p{font-size:16px}
.poster-show{text-align:center}
.poster-show img{width:min(430px,86vw);border:2px solid var(--ink);box-shadow:16px 16px 0 var(--red);transition:.25s}
.poster-show img:hover{transform:translate(-3px,-3px);box-shadow:20px 20px 0 var(--red)}
.note{margin-top:24px;padding:18px 24px;background:var(--paper2);border-left:5px solid var(--red);font-size:17px;color:var(--ink2);max-width:70ch}
ul.ticks{list-style:none;margin:10px 0 0}
ul.ticks li{padding:10px 0 10px 36px;position:relative;max-width:72ch;color:var(--ink2)}
ul.ticks li::before{content:"—";position:absolute;left:0;color:var(--red);font-weight:700}
.center{text-align:center}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.gallery img{width:100%;height:auto;display:block;border:2px solid var(--ink);transition:.2s;cursor:zoom-in}
.gallery img:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--red)}
.cred{color:var(--muted);font-size:14px;font-style:italic;margin-top:16px}
.lightbox{position:fixed;inset:0;background:rgba(15,12,10,.95);display:flex;align-items:center;justify-content:center;z-index:100;cursor:zoom-out;padding:30px}
.lightbox img{max-width:92%;max-height:92%;border:2px solid var(--paper)}
.cta-final{text-align:center;padding:110px 0}
.cta-final h2{margin-bottom:14px}
.cta-final p{margin:0 auto 34px}
footer{background:var(--ink);color:var(--paper);padding:38px 0 48px;text-align:center;font-family:'Oswald',sans-serif;font-size:14px;letter-spacing:.22em;text-transform:uppercase}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal.vis{opacity:1;transform:none}
.star{width:54px;height:54px;fill:var(--red);flex:0 0 auto}
@media(max-width:820px){
  .hero{gap:40px;padding-top:110px}
  .hero-poster{order:-1}
  .hero-poster .card{width:min(300px,80vw)}
  section{padding:64px 0}
  nav .brand{font-size:15px}
  nav a.nl{font-size:12px;padding:7px 9px;letter-spacing:.04em}
}
