@font-face{font-family:Rubik;src:url('assets/Rubik-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Rubik;src:url('assets/Rubik-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--black:#120b0d;--dark:#1c0e12;--wine:#4a0e20;--wine-deep:#2d0b17;--cream:#f8efe5;--gold:#d9b87c;--muted:#c8b9b2;--line:rgba(230,205,179,.23)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:var(--cream);font:400 1rem/1.58 Rubik,Arial,sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-weight:700}
.shell{width:min(100%,1500px);margin:0 auto;padding-inline:clamp(1.25rem,5vw,5.5rem)}
.section{padding-block:clamp(5.5rem,10vw,10rem)}
.overline{display:flex;align-items:center;gap:1rem;margin-bottom:2.2rem;font-size:.78rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--gold)}
.overline-gold{color:var(--gold)}
.overline-rule{display:inline-block;width:2rem;height:1px;background:currentColor;flex:none}
h2{font-size:clamp(3rem,6vw,6.6rem);line-height:.97;letter-spacing:-.065em;text-transform:uppercase;text-wrap:balance}
h2 em,h1 em{font-style:normal;color:var(--gold)}
.action{display:inline-flex;min-height:3.8rem;padding:1rem 1.5rem;align-items:center;justify-content:space-between;gap:2rem;border:1px solid transparent;font-size:.9rem;font-weight:700;line-height:1.25;letter-spacing:.015em;transition:background .2s,color .2s,transform .2s,border-color .2s}
.action:hover{transform:translateY(-2px)}
.action span{font-size:1.3rem;font-weight:400;line-height:1}
.action-light{background:var(--gold);color:#1c1012}
.action-light:hover{background:#f0d5a4}
.action-outline{color:var(--cream);border-color:rgba(217,184,124,.7)}
.action-outline:hover{background:var(--gold);color:var(--black)}
.action-dark{background:var(--gold);color:var(--black)}
.action-dark:hover{background:#f0d5a4}
.site-header{position:absolute;inset:0 0 auto;z-index:5;color:#fff}
.header-inner{min-height:8.3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid rgba(255,255,255,.3)}
.brand-logo{width:6.5rem;height:6.1rem;object-fit:contain;flex:none}
.header-edition{margin-right:auto;text-transform:uppercase;letter-spacing:.18em;font-size:.76rem;line-height:1.65;color:#ead8c3}
.header-call{min-height:3.3rem;display:inline-flex;align-items:center;gap:.7rem;padding:.75rem 1.1rem;border:1px solid rgba(217,184,124,.8);font-size:.9rem;font-weight:700;white-space:nowrap;transition:background .2s,color .2s}
.header-call:hover{background:var(--gold);color:var(--black)}
.call-icon,.call-arrow{color:var(--gold)}
.call-icon{font-size:1.1rem}
.call-arrow{margin-left:1rem;font-size:1.2rem;font-weight:400}
.header-call:hover .call-icon,.header-call:hover .call-arrow{color:var(--black)}
.hero{position:relative;isolation:isolate;min-height:clamp(760px,100svh,1000px);color:#fff;overflow:hidden;display:flex;flex-direction:column;justify-content:end}
.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.hero-photo{object-fit:cover;object-position:center center}
.hero-shade{background:linear-gradient(90deg,rgba(15,7,9,.9) 0%,rgba(25,8,13,.7) 34%,rgba(27,9,13,.26) 72%,rgba(24,4,9,.15)),linear-gradient(0deg,rgba(22,3,10,.86),transparent 32%,rgba(11,3,6,.35) 100%)}
.hero-main{width:100%;display:flex;align-items:end;justify-content:space-between;gap:3rem;padding-top:13rem;padding-bottom:10rem}
.hero-copy{max-width:72rem}
.hero h1{font-size:clamp(5rem,8.7vw,9.5rem);line-height:.84;letter-spacing:-.085em;text-transform:uppercase;text-wrap:balance;text-shadow:0 6px 30px rgba(0,0,0,.25)}
.hero h1 em{display:block;margin-left:clamp(1.7rem,8vw,9rem)}
.hero-description{max-width:39rem;margin:2.8rem 0 2.2rem;font-size:clamp(1.13rem,1.65vw,1.45rem);line-height:1.48;text-wrap:pretty}
.hero-side{writing-mode:vertical-rl;letter-spacing:.19em;text-transform:uppercase;font-size:.76rem;white-space:nowrap;color:#f4e5d0}
.hero-side span{color:var(--gold);margin-inline:.5rem}
.hero-ribbon{width:100%;display:grid;grid-template-columns:1fr .72fr 1fr;gap:0;border-top:1px solid rgba(217,184,124,.55);padding-block:1.5rem 1.7rem;background:rgba(34,6,15,.7);backdrop-filter:blur(14px)}
.hero-ribbon>div{display:flex;flex-direction:column;gap:.25rem}
.hero-ribbon>div+div{border-left:1px solid rgba(217,184,124,.38);padding-left:clamp(1.5rem,4vw,4rem)}
.hero-ribbon span{font-size:.74rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--gold)}
.hero-ribbon strong{font-weight:400;font-size:clamp(.97rem,1.3vw,1.13rem)}
.concept-note{position:absolute;right:clamp(1.25rem,5vw,5.5rem);bottom:7.6rem;font-size:.74rem;color:rgba(255,255,255,.8)}
.story{background:radial-gradient(circle at 78% 30%,#38201c 0%,#201014 50%,#170d0f 100%)}
.story-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.8fr);gap:clamp(3.5rem,9vw,11rem);align-items:center}
.story-lead{font-size:clamp(1.12rem,1.7vw,1.42rem);line-height:1.6;max-width:39rem;margin:2.8rem 0 3rem;color:#e4d5c9}
.story-stats{display:flex;gap:clamp(3rem,7vw,8rem);border-top:1px solid var(--line);padding-top:1.5rem}
.story-stats div{display:flex;flex-direction:column}
.story-stats strong{font-size:clamp(3rem,5vw,5.3rem);font-weight:700;line-height:1;letter-spacing:-.07em;color:var(--gold)}
.story-stats span{font-size:.88rem;color:var(--muted);margin-top:.5rem}
.address{font-size:.94rem;font-weight:700;margin-top:3rem;color:#e9d9ca}
.story-visual{justify-self:end;width:min(100%,470px)}
.story-visual img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;border:1px solid rgba(217,184,124,.6);box-shadow:1.15rem 1.15rem 0 #4d1023}
.story-visual figcaption{margin-top:1.9rem;color:var(--muted);font-size:.76rem}
.program{background:#120b0d;color:var(--cream)}
.section-top{display:flex;align-items:end;justify-content:space-between;gap:4rem;margin-bottom:4.5rem}
.section-top>p{max-width:23rem;color:#d7c6b8;font-size:1.08rem}
.program-chapter{display:flex;align-items:baseline;gap:1.5rem;margin-bottom:1.2rem;color:var(--gold)}
.program-chapter span{min-width:12rem;font-size:.77rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.program-chapter strong{font-size:clamp(1.45rem,2.2vw,2.1rem);font-weight:700;letter-spacing:-.045em;line-height:1.15;text-transform:uppercase}
.program-list{padding:0;margin:0 0 3.4rem;list-style:none;border-top:1px solid var(--line)}
.program-list-last{margin-bottom:2.8rem}
.program-list li{display:grid;grid-template-columns:minmax(12rem,.6fr) minmax(0,1.6fr) 2.5rem;align-items:baseline;gap:2rem;padding:1.55rem 0;border-bottom:1px solid var(--line)}
.program-time{font-size:clamp(1.45rem,2.25vw,2.1rem);font-weight:700;letter-spacing:-.06em;color:var(--gold);white-space:nowrap}
.program-time small{font-size:.68em;font-weight:400;letter-spacing:-.05em}
.program-list h3{font-size:clamp(1.35rem,2.15vw,2.05rem);line-height:1.16;letter-spacing:-.045em;margin-bottom:.5rem}
.program-list p{max-width:42rem;color:#c9b9ad;font-size:1rem;line-height:1.6}
.program-no{justify-self:end;font-size:.78rem;color:#9b7069}
.cast{background:radial-gradient(circle at 20% 24%,#63152b 0%,#461020 48%,#2b0b17 100%)}
.cast-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.93fr);gap:clamp(3rem,9vw,10rem)}
.cast-intro{max-width:34rem;margin:2.7rem 0 3rem;color:#f0ded3;font-size:1.16rem;line-height:1.6}
.cast-music{display:flex;flex-direction:column;gap:.5rem;max-width:29rem;border-top:1px solid var(--line);padding-top:1.3rem}
.cast-music span{color:var(--gold);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em}
.cast-music strong{font-size:1.45rem;font-weight:700;line-height:1.28;letter-spacing:-.04em}
.cast-list{border-top:1px solid var(--line)}
.cast-list>article{display:grid;grid-template-columns:minmax(7rem,.48fr) minmax(0,1fr);gap:1.5rem;align-items:start;padding:1.7rem 0;border-bottom:1px solid var(--line)}
.cast-list span{font-size:.77rem;line-height:1.45;letter-spacing:.08em;color:var(--gold);text-transform:uppercase}
.cast-list h3{font-size:clamp(1.55rem,2vw,1.95rem);line-height:1.16;letter-spacing:-.05em;margin-bottom:.65rem}
.cast-list p{color:#eedbd0;font-size:1rem;line-height:1.6}
.dates{background:#1a0c11}
.dates-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:4rem}
.dates-heading>p{max-width:24rem;font-size:1.08rem;color:#d8c4b8}
.date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.date-grid a{position:relative;min-height:10.2rem;padding:1.2rem 1.4rem;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;gap:.1rem;background:#37131f;border:1px solid rgba(217,184,124,.28);transition:background .2s,color .2s,transform .2s,border-color .2s}
.date-grid a:hover{background:#661a32;border-color:var(--gold);transform:translateY(-3px)}
.date-grid span{grid-column:1;text-transform:uppercase;font-size:.75rem;font-weight:700;letter-spacing:.17em;color:var(--gold)}
.date-grid strong{grid-column:1;grid-row:2;align-self:end;font-weight:700;font-size:4rem;line-height:.95;letter-spacing:-.07em}
.date-grid small{grid-column:1;grid-row:3;font-size:.84rem}
.date-grid b{grid-column:2;grid-row:1/4;align-self:end;font-size:1.3rem;font-weight:400;color:var(--gold)}
.dates-note{margin-top:1.2rem;font-size:.85rem;color:var(--muted)}
.price{background:#10090c;color:var(--cream)}
.price-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.87fr);gap:clamp(3rem,10vw,11rem);align-items:center}
.price-intro>p:last-child{max-width:34rem;font-size:1.15rem;color:#d7c2b7;margin-top:2.6rem}
.price-ticket{background:linear-gradient(150deg,#5b1930,#34101c);color:var(--cream);padding:clamp(1.5rem,4vw,3.5rem);border:1px solid rgba(217,184,124,.62);box-shadow:1.2rem 1.2rem 0 #2f0c19}
.ticket-top{display:flex;justify-content:space-between;gap:1rem;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.ticket-number{font-size:clamp(4.6rem,7.2vw,8rem);font-weight:700;line-height:1.15;letter-spacing:-.09em;white-space:nowrap;margin:1rem 0 0;color:var(--cream)}
.ticket-number span{font-size:.62em;color:var(--gold)}
.ticket-caption{font-size:.87rem;margin-bottom:2.5rem;color:#e3d1c6}
.ticket-breakdown{border-top:1px solid var(--line);margin-bottom:2rem}
.ticket-breakdown>div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding:.9rem 0}
.ticket-breakdown strong{font-weight:700;white-space:nowrap;color:var(--gold)}
.ticket-breakdown span{color:#e5d6ce}
.price-ticket .action{width:100%}
.final-call{background:radial-gradient(circle at 50% 12%,#781d37 0%,#4e1124 45%,#260912 100%);color:#fff;text-align:center}
.final-call .overline{justify-content:center}
.final-call h2{font-size:clamp(3.8rem,8.5vw,9rem)}
.final-call>div>p:not(.overline){font-size:clamp(1.1rem,1.7vw,1.36rem);max-width:39rem;margin:2.5rem auto 1.8rem;color:#f3e5da}
.final-number{display:inline-flex;align-items:baseline;gap:1.5rem;border-bottom:1px solid rgba(217,184,124,.8);padding-bottom:.3rem;font-size:clamp(2rem,4.5vw,4.7rem);font-weight:700;letter-spacing:-.065em;line-height:1.2;transition:color .2s}
.final-number:hover{color:var(--gold)}
.final-number span{font-size:.5em;font-weight:400;color:var(--gold)}
.final-meta{display:flex;justify-content:space-between;gap:2rem;border-top:1px solid var(--line);padding-top:1.2rem;margin-top:6rem;text-align:left;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;color:#eedfd4}
.site-footer{background:var(--black);color:#e4d3ba}
.footer-inner{min-height:10rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;font-size:.83rem}
.footer-inner img{width:5.2rem;height:5.2rem;object-fit:contain}
.footer-inner a{border-bottom:1px solid currentColor;padding-bottom:.15rem}
.mobile-call{display:none}
@media(max-width:900px){
  .hero-main{padding-bottom:9rem}
  .story-grid,.cast-layout,.price-layout{gap:3rem}
  .section-top,.dates-heading{align-items:start}
  .program-list li{grid-template-columns:minmax(10rem,.6fr) minmax(0,1.6fr) 1.5rem;gap:1.25rem}
}
@media(max-width:700px){
  .shell{padding-inline:1.25rem}
  .section{padding-block:5.3rem}
  .header-inner{min-height:6.3rem;gap:1rem}
  .brand-logo{width:4.55rem;height:4.5rem}
  .header-edition{display:none}
  .header-call{margin-left:auto;font-size:.82rem;min-height:3rem;padding:.55rem .75rem}
  .call-icon{display:none}
  .call-arrow{margin-left:.25rem}
  .hero{min-height:49rem;min-height:max(49rem,100svh)}
  .hero-photo{object-position:55% center}
  .hero-shade{background:linear-gradient(0deg,rgba(22,3,10,.96) 0%,rgba(25,5,12,.78) 44%,rgba(19,5,7,.4) 100%)}
  .hero-main{display:block;padding-top:10rem;padding-bottom:13rem}
  .hero h1{font-size:clamp(2.9rem,12.5vw,5rem);letter-spacing:-.075em}
  .hero h1 em{margin-left:1.2rem}
  .hero-description{font-size:1.07rem;margin:1.8rem 0}
  .hero-side{display:none}
  .hero-ribbon{grid-template-columns:1fr 1fr;gap:.7rem .8rem;padding-block:1rem 1.2rem}
  .hero-ribbon>div+div{border:0;padding:0}
  .hero-ribbon>div:last-child{grid-column:1/3;border-top:1px solid rgba(217,184,124,.35);padding-top:.65rem}
  .hero-ribbon span{font-size:.72rem}
  .hero-ribbon strong{font-size:.9rem}
  .concept-note{display:none}
  h2{font-size:clamp(2.8rem,10vw,5rem)}
  .overline{font-size:.75rem}
  .story-grid,.cast-layout,.price-layout{grid-template-columns:1fr}
  .story-lead{margin:2rem 0}
  .story-visual{justify-self:center;width:min(100%,27rem)}
  .story-stats{gap:3rem}
  .section-top,.dates-heading{display:block;margin-bottom:2.5rem}
  .section-top>p,.dates-heading>p{margin-top:1.8rem;font-size:1.02rem}
  .program-chapter{display:block;margin-bottom:1rem}
  .program-chapter span{display:block;margin-bottom:.35rem}
  .program-list li{grid-template-columns:1fr 2rem;gap:.35rem 1rem;padding:1.4rem 0}
  .program-time{grid-column:1;font-size:1.5rem}
  .program-list li>div{grid-column:1;grid-row:2}
  .program-no{grid-column:2;grid-row:1}
  .program-list h3{font-size:1.42rem}
  .program-list p{font-size:1rem}
  .cast-intro{margin:1.8rem 0 2rem;font-size:1.08rem}
  .cast-music{margin-bottom:2.4rem}
  .cast-list>article{grid-template-columns:1fr;gap:.35rem;padding:1.25rem 0}
  .date-grid{gap:.4rem}
  .date-grid a{min-height:8rem;padding:.8rem}
  .date-grid strong{font-size:3rem}
  .ticket-number{font-size:clamp(4.2rem,12.5vw,7rem)}
  .price-ticket{margin-right:.7rem}
  .final-call{padding-bottom:6rem}
  .final-call h2{font-size:clamp(3.7rem,12vw,6.5rem)}
  .final-meta{display:block;margin-top:4rem}
  .final-meta span{display:block;margin:.4rem 0}
  .footer-inner{min-height:12rem;padding-bottom:5rem}
  .footer-inner span{display:none}
  .mobile-call{position:fixed;z-index:20;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.9rem;padding:.9rem calc(1.25rem + env(safe-area-inset-right)) calc(.9rem + env(safe-area-inset-bottom)) calc(1.25rem + env(safe-area-inset-left));background:var(--gold);color:var(--black);box-shadow:0 -8px 30px rgba(0,0,0,.35);font-size:.94rem;font-weight:700}
}
@media(max-width:390px){
  .hero h1{font-size:clamp(2.6rem,12vw,3.1rem)}
  .hero-main{padding-bottom:15rem}
  .hero-description{font-size:1rem}
  .date-grid a{min-height:7.2rem;padding:.65rem}
  .date-grid strong{font-size:2.6rem}
  .date-grid small{font-size:.75rem}
  .ticket-top{font-size:.7rem}
  .ticket-number{font-size:3.9rem}
  .final-number{font-size:1.7rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.action,.header-call,.date-grid a,.final-number{transition:none}}
