/* Base and shared components */
:root {
  color-scheme:dark;
  --ink:#030c13;
  --ice:#d9edf9;
  --paper:#f6f7f9;
  --muted:#b2bdcd;
  --line:#203441;
  --sans:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;
  --serif:Didot,"Bodoni MT","Times New Roman",serif;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:94px;
}

body {
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}

body.modal-open {
  overflow:hidden;
}

button,a {
  -webkit-tap-highlight-color:transparent;
}

a {
  color:inherit;
  text-decoration:none;
}

button {
  font:inherit;
  cursor:pointer;
}

img {
  display:block;
  max-width:100%;
  height:auto;
}

button,dialog {
  color:inherit;
}

h1,h2,h3,p,blockquote {
  margin:0;
}

button:focus-visible,a:focus-visible {
  outline:3px solid #6fbce8;
  outline-offset:6px;
}

::selection {
  background:#b5d8ee;
  color:var(--ink);
}

.container {
  width:min(1280px,91%);
  margin-inline:auto;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.svg-defs {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}

.icon {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0;
}

.skip-link {
  position:fixed;
  left:16px;
  top:12px;
  z-index:100;
  background:white;
  color:var(--ink);
  padding:14px;
  transform:translateY(-180%);
}

.skip-link:focus {
  transform:translateY(0);
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  min-height:58px;
  padding:15px 36px;
  border-radius:50px;
  border:1px solid transparent;
  font-size:15px;
  font-weight:600;
  letter-spacing:.075em;
  white-space:nowrap;
  transition:background .2s,box-shadow .2s,transform .2s;
}

.button:hover {
  transform:translateY(-2px);
}

.button-light {
  background:#f7fbff;
  color:#07111c;
  border-color:#d4e9f6;
  box-shadow:0 0 24px #87cfff26;
}

.button-light:hover {
  background:#dceef9;
  box-shadow:0 0 28px #87cfff40;
}

.button-dark {
  background:#03111c;
  color:white;
  border-color:#7bb7d5;
  box-shadow:0 0 10px #4faddb5c;
  min-width:360px;
}

.button-dark:hover {
  background:#10293a;
}

.button-outline {
  border-color:#c3d5e4;
  background:#020b1233;
  min-height:42px;
  padding:11px 26px;
  font-size:11px;
}

.button-outline:hover {
  background:#e2f1fa;
  color:var(--ink);
}

.fine-rule {
  display:block;
  width:76px;
  height:1px;
  margin:24px auto;
  background:#a8c4d6;
}

.section-light {
  background:var(--paper);
  color:#0c1520;
  color-scheme:light;
}

.eyebrow {
  font-size:14px;
  letter-spacing:.24em;
  font-weight:400;
}

/* Header */
.site-header {
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:20;
  display:flex;
  align-items:center;
  gap:34px;
  min-height:78px;
  padding:12px 3.2%;
  transition:background .25s,box-shadow .25s;
}

.site-header.scrolled,.site-header.menu-open {
  background:#030c13ee;
  backdrop-filter:blur(14px);
  box-shadow:0 1px 0 #c3d5e41a;
}

.wordmark {
  font-size:15px;
  letter-spacing:.34em;
  white-space:nowrap;
  font-weight:400;
}

.navigation {
  display:flex;
  gap:27px;
  align-items:center;
  margin-left:auto;
}

.navigation a {
  font-size:10px;
  letter-spacing:.1em;
  font-weight:600;
  padding-block:12px;
  transition:color .2s;
}

.navigation a:hover {
  color:#97cdec;
}

.menu-toggle {
  display:none;
  border:0;
  background:none;
  width:44px;
  height:44px;
  padding:10px;
}

.menu-toggle span {
  display:block;
  height:1px;
  background:white;
  width:24px;
  margin:6px 0;
  transition:transform .2s;
}

/* Hero: photographic composition follows the supplied reference. */
.hero {
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-height:640px;
  height:min(900px,100svh);
  overflow:hidden;
  background:#030b12;
}

.hero-picture {
  position:absolute;
  inset:0;
  z-index:-2;
}

.hero-picture img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:40% center;
}

.hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,#02081066,transparent 20%),linear-gradient(90deg,transparent 40%,#020a124d 55%,#020a121a);
}

.hero-content {
  width:47%;
  margin-right:3%;
  padding:88px 0 34px;
  text-align:center;
}

.hero-announcement {
  display:inline-block;
  margin-bottom:16px;
  padding:8px 18px;
  border-radius:999px;
  background:var(--ice);
  color:var(--ink);
  font-size:clamp(11px,1.1vw,14px);
  font-weight:700;
  letter-spacing:.16em;
  line-height:1.4;
  text-transform:uppercase;
}

.artist-logo {
  width:100%;
  margin:0 auto 24px;
}

.hero h1 {
  line-height:1;
}

.show-title-logo {
  width:100%;
  height:auto;
  margin-inline:auto;
}

.cast {
  font-size:clamp(15px,1.7vw,24px);
  font-weight:500;
  letter-spacing:.25em;
  line-height:1.5;
  margin-top:24px;
  color:#e0eaf5;
}

.hero .button {
  min-width:320px;
}

.hero-venue {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  font-size:10px;
  letter-spacing:.2em;
  color:#b9cddd;
  margin-top:20px;
}

.hero-venue-logos {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  max-width:100%;
}

.hero-venue img {
  width:clamp(140px,14vw,180px);
  min-width:0;
  height:auto;
  object-fit:contain;
}

.hero-venue img:last-child {
  width:clamp(114px,11.4vw,147px);
}

/* Featured press endorsement immediately after the hero. */
.press-endorsement {
  padding:42px 0;
  background:#edf3f6;
  color:#102532;
  border-block:1px solid #cbd9e1;
}

.press-endorsement-quote {
  max-width:980px;
  margin-inline:auto;
  text-align:center;
}

.press-endorsement-quote>p {
  font:400 clamp(29px,3.4vw,48px)/1.18 var(--serif);
  text-wrap:balance;
}

.press-endorsement-quote>p span {
  color:#315b73;
}

.press-endorsement-source {
  margin-top:20px;
}

.press-endorsement-source cite {
  display:block;
  font-size:clamp(17px,1.7vw,21px);
  font-weight:600;
  font-style:normal;
  letter-spacing:.03em;
  line-height:1.2;
}

/* Opening statement. */
.dream {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:72px 0;
  text-align:center;
  background:radial-gradient(ellipse at center,#153044 0%,#07141f 55%,#030c13 100%);
  border-block:1px solid #beddf01a;
}

.dream::before,.dream::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:1px;
  height:150%;
  top:-25%;
  background:linear-gradient(transparent,#b9e3ff45,transparent);
  transform:rotate(25deg);
}

.dream::before {
  left:15%;
}

.dream::after {
  right:15%;
}

.dream h2 {
  margin:25px auto;
  max-width:1000px;
  font:400 clamp(32px,4.5vw,66px)/1.2 var(--serif);
  letter-spacing:.015em;
  text-wrap:balance;
  color:#f1f6fb;
}

.dream h2 span {
  color:#b9dcf3;
  font-style:italic;
}

.dream-rule {
  display:block;
  width:65px;
  height:1px;
  margin-inline:auto;
  background:linear-gradient(90deg,transparent,#a7cee7,transparent);
}

@media(max-width:700px) {
  .press-endorsement {
    padding:30px 0;
    text-align:center;
  }
  .press-endorsement-quote>p {
    max-width:480px;
    margin-inline:auto;
  }
  .dream {
    padding:42px 0;
  }
  .dream h2 {
    font-size:clamp(29px,7.8vw,48px);
    margin-block:22px;
  }
  .dream::before {
    left:5%;
  }
  .dream::after {
    right:5%;
  }
}

/* Show and trailer */
.show {
  padding:42px 0;
}

.show-grid {
  display:grid;
  grid-template-columns:1.06fr 1fr;
  align-items:center;
  gap:6%;
}

.show-copy .eyebrow {
  color:#37435b;
  margin-bottom:17px;
}

.show-copy h2 {
  font-size:clamp(19px,2.05vw,29px);
  font-weight:500;
  letter-spacing:.12em;
  line-height:1.25;
  margin-bottom:20px;
}

.show-copy>p:not(.eyebrow) {
  font-size:clamp(15px,1.55vw,20px);
  line-height:1.48;
  margin-top:14px;
  font-weight:400;
}

.show-copy strong {
  font-weight:600;
}

.trailer {
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:1.65;
  border:1px solid #43525e;
  border-radius:8px;
  overflow:hidden;
  padding:0;
  background:var(--ink);
}

.trailer>img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s;
}

.trailer:hover>img {
  transform:scale(1.035);
}

.trailer-overlay {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:22px;
  background:#02091040;
  color:white;
  font-size:12px;
  letter-spacing:.23em;
  font-weight:600;
}

.play-circle {
  display:grid;
  place-items:center;
  width:82px;
  height:82px;
  border:2px solid #f5f7fa;
  border-radius:50%;
  background:#02091035;
  transition:background .2s;
}

.play-circle svg {
  width:32px;
  height:32px;
  fill:white;
  margin-left:3px;
}

.trailer:hover .play-circle {
  background:#c9e6ff24;
}

/* Horizontal typographic artwork, one phrase per slide. */
.reality-gallery {
  padding:28px 0 30px;
  background:#000;
  border-block:1px solid var(--line);
}

.reality-track {
  display:flex;
  max-width:960px;
  margin-inline:auto;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
  scrollbar-color:#68889c transparent;
}

.reality-gallery.is-enhanced .reality-track {
  scrollbar-width:none;
}

.reality-gallery.is-enhanced .reality-track::-webkit-scrollbar {
  display:none;
}

.reality-track:focus-visible {
  outline:2px solid #b9dcf3;
  outline-offset:4px;
}

.reality-slide {
  flex:0 0 100%;
  min-width:0;
  scroll-snap-align:center;
  scroll-snap-stop:always;
  background:#000;
}

.reality-slide img {
  width:100%;
  height:auto;
  aspect-ratio:2/1;
  object-fit:contain;
}

.reality-controls {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:20px;
}

.reality-controls[hidden] {
  display:none;
}

.reality-controls button {
  min-height:44px;
  padding:0;
  border:1px solid #698396;
  background:transparent;
  color:#e2eef6;
}

.reality-controls button:hover {
  background:#b9dcf31a;
}

.reality-arrow {
  width:44px;
  border-radius:50%;
  font-size:24px;
}

.reality-dots {
  display:flex;
}

.reality-dots button {
  width:28px;
  border:0;
}

.reality-dots button::before {
  content:"";
  display:block;
  width:6px;
  height:6px;
  margin:auto;
  border-radius:50%;
  background:#6b8394;
}

.reality-dots button[aria-current="true"]::before {
  background:#d9edf9;
  box-shadow:0 0 0 4px #b9dcf326;
}

.reality-controls .reality-play {
  min-width:82px;
  padding-inline:12px;
  border-radius:24px;
  font-size:12px;
}

@media(max-width:700px) {
  .reality-gallery {
    padding:22px 0 24px;
  }
  .reality-controls {
    flex-wrap:wrap;
    gap:8px;
    max-width:290px;
    margin-inline:auto;
  }
  .reality-controls .reality-play {
    margin-inline:90px;
  }
}

/* Panoramic banner: names occupy the empty left side; performers stay visible. */
.artists {
  padding:40px 0;
  background:linear-gradient(180deg,#07131c,#030c13);
}

.artists-grid {
  display:grid;
  grid-template-columns:1fr;
  align-items:center;
}

.artists-photo {
  grid-area:1 / 1;
  display:block;
  overflow:hidden;
  border:1px solid #c1daeb20;
  border-radius:3px;
}

.artists-photo img {
  width:100%;
  height:auto;
}

.artists-copy {
  grid-area:1 / 1;
  position:relative;
  z-index:1;
  width:44%;
  padding:24px 0 24px 8%;
  text-shadow:0 2px 14px #030c13;
}

.artists-copy h2 {
  font:400 clamp(28px,3vw,44px)/1.2 var(--serif);
  letter-spacing:.01em;
  color:#e8f2f9;
}

.artists-subtitle {
  margin-top:14px;
  font-size:clamp(15px,1.4vw,18px);
  line-height:1.5;
  color:#bbd1e2;
}

.artists-names {
  margin-top:24px;
  font-size:clamp(24px,2.4vw,34px);
  line-height:1.4;
  color:var(--muted);
}

.artists-copy .fine-rule {
  width:48px;
  margin:26px 0;
}

.production-copy {
  width:min(860px,88%);
  margin-top:clamp(28px,4vw,52px);
  padding-top:clamp(24px,3vw,36px);
  border-top:1px solid var(--line);
  font-size:clamp(16px,1.4vw,18px);
  line-height:1.75;
  color:#bbd1e2;
}

.production-copy p+p {
  margin-top:20px;
}

.production-copy strong {
  color:#e8f2f9;
  font-weight:600;
}

@media(max-width:900px) {
  .artists {
    padding:34px 0;
  }
  .artists-grid {
    gap:28px;
  }
  .artists-photo {
    grid-area:auto;
  }
  .artists-copy {
    grid-area:auto;
    width:100%;
    padding:0;
    text-align:center;
  }
  .artists-copy h2 {
    font-size:clamp(29px,7.5vw,40px);
  }
  .artists-copy .fine-rule {
    margin:22px auto;
  }
}

/* Four acts */
.acts {
  padding:34px 0 27px;
  background:radial-gradient(ellipse at bottom,#0f293b80,transparent 65%),#030c13;
}

.section-heading {
  text-align:center;
  margin-bottom:25px;
}

.section-heading h2 {
  font:400 clamp(22px,2.3vw,31px)/1.3 var(--serif);
  letter-spacing:.24em;
}

.section-heading>p {
  font-size:11px;
  line-height:1.7;
  letter-spacing:.29em;
  color:#c5d6e6;
  margin-top:12px;
}

.acts-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.act-card {
  position:relative;
  isolation:isolate;
  aspect-ratio:.77;
  overflow:hidden;
  border:1px solid #1c3441;
  background:#020a10;
}

.act-card>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  z-index:-2;
  transition:transform .65s;
}

.act-card::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,transparent 27%,#020a1026 42%,#02090fea 71%,#02090f 100%);
}

.act-card:hover>img {
  transform:scale(1.025);
}

.act-copy {
  position:absolute;
  bottom:7%;
  left:5%;
  right:5%;
  text-align:center;
}

.act-number {
  font:400 clamp(24px,2.8vw,39px)/1 var(--serif);
  white-space:nowrap;
}

.act-copy h3 {
  font:400 clamp(12px,1.32vw,18px)/1.4 var(--serif);
  letter-spacing:.15em;
  margin-top:9px;
}

.act-copy .fine-rule {
  width:27px;
  margin:14px auto;
}

.act-copy p {
  font-size:clamp(10px,1.15vw,15px);
  line-height:1.45;
  letter-spacing:.16em;
}

/* Practical information */
.booking {
  padding:48px 0 40px;
  text-align:center;
}

.booking-claim {
  margin:0 auto 38px;
  font:400 clamp(30px,3.5vw,48px)/1.2 var(--serif);
  letter-spacing:.015em;
  text-wrap:balance;
}

.booking-claim span {
  color:#315d78;
  font-style:italic;
}

.info-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-bottom:32px;
  scroll-margin-top:105px;
}

.info-item {
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:22px;
  text-align:left;
  padding:0 24px;
}

.info-item+.info-item {
  border-left:1px solid #b8c3d0;
}

.info-icon {
  width:43px;
  height:43px;
  fill:none;
  stroke:#0c1520;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0;
}

.info-item h3 {
  font-size:15px;
  font-weight:600;
  letter-spacing:.04em;
  line-height:1.4;
}

.info-item p {
  font-size:14px;
  line-height:1.5;
  color:#535f73;
  margin-top:5px;
}

.venue-map-link,.ticket-sale-link {
  text-decoration:underline;
  text-underline-offset:3px;
}

.venue-map-link:hover,.ticket-sale-link:hover {
  color:var(--ink);
}

/* Press and footer */
.press {
  --press-travel:80px;
  --press-offset:0px;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:clamp(360px,32vw,480px);
  text-align:center;
  padding:64px 0 200px;
  background:#020b12;
}

.press-scenery {
  position:absolute;
  z-index:-2;
  inset:calc(0px - var(--press-travel)) 0;
  background:url('assets/optimized/tierra.webp') center bottom/cover no-repeat;
  transform:translate3d(0,var(--press-offset),0);
  pointer-events:none;
}

.press.is-parallax-active .press-scenery {
  will-change:transform;
}

.press::after {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(180deg,#020b1299,transparent 70%);
  pointer-events:none;
}

.press blockquote p {
  font:400 clamp(18px,2.1vw,28px)/1.5 var(--serif);
  letter-spacing:.19em;
}

.press .fine-rule {
  width:70px;
  margin:14px auto 12px;
}

.press cite {
  font-size:11px;
  font-style:normal;
  letter-spacing:.34em;
}

.site-footer {
  padding:38px 0 30px;
  background:#020b10;
}

.footer-main {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}

.footer-rule {
  height:1px;
  background:#405663;
  flex:1;
  max-width:140px;
}

.partners {
  display:flex;
  align-items:center;
  gap:40px;
}

.partners img:first-child {
  width:145px;
  height:auto;
}

.partners img:last-child {
  width:118px;
  height:auto;
}

.socials {
  display:flex;
  align-items:center;
  gap:10px;
  border-left:1px solid #405663;
  padding-left:28px;
}

.socials a {
  display:grid;
  place-items:center;
  width:36px;
  height:44px;
  transition:color .2s;
}

.socials a:hover {
  color:#9fd1f1;
}

.socials .icon {
  width:21px;
  height:21px;
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-top:35px;
  color:#b2c4d4;
  font-size:9px;
  letter-spacing:.22em;
}

.footer-bottom a {
  padding:10px;
}

/* Contact form */
.contact {
  padding:64px 0;
  background:#07141f;
  border-block:1px solid var(--line);
}

.contact-grid {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:8%;
  align-items:start;
}

.contact-copy h2 {
  margin:18px 0;
  font:400 42px/1.2 var(--serif);
}

.contact-copy>p:not(.eyebrow) {
  color:var(--muted);
  font-size:16px;
  line-height:1.7;
  max-width:360px;
}

.contact-copy>a {
  display:inline-block;
  margin-top:22px;
  color:var(--ice);
  text-underline-offset:5px;
  text-decoration:underline;
}

.contact-form {
  min-width:0;
}

.contact-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.contact-field {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:22px;
  min-width:0;
}

.contact-field label {
  font-size:13px;
  letter-spacing:.08em;
}

.contact-field input,.contact-field textarea {
  width:100%;
  min-height:50px;
  padding:14px 16px;
  font:400 16px/1.5 var(--sans);
  color:var(--paper);
  background:#030c13;
  border:1px solid #587082;
  border-radius:5px;
}

.contact-field textarea {
  resize:vertical;
}

.contact-field input::placeholder,.contact-field textarea::placeholder {
  color:#9baebe;
  opacity:1;
}

.contact-field input:focus-visible,.contact-field textarea:focus-visible {
  outline:2px solid #6fbce8;
  outline-offset:3px;
}

.contact-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.contact-actions p {
  color:var(--muted);
  font-size:12px;
  line-height:1.7;
}

.contact-actions .button {
  font-size:12px;
  padding-inline:24px;
}

@media(max-width:700px) {
  .contact {
    padding:38px 0;
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:30px;
  }
  .contact-copy h2 {
    font-size:34px;
  }
  .contact-fields {
    grid-template-columns:1fr;
    gap:0;
  }
  .contact-actions .button {
    width:100%;
  }
}

/* Native dialogs provide keyboard focus management and Escape dismissal. */
.modal {
  width:min(680px,calc(100% - 32px));
  padding:0;
  border:1px solid #405868;
  border-radius:12px;
  background:#07141f;
  box-shadow:0 20px 100px #0008;
  max-height:90svh;
}

.modal::backdrop {
  background:#000b;
  backdrop-filter:blur(6px);
}

.modal-close {
  position:absolute;
  right:12px;
  top:8px;
  width:44px;
  height:44px;
  font-size:32px;
  background:none;
  border:0;
  z-index:1;
}

.modal-content {
  padding:60px 36px 42px;
  text-align:center;
}

.modal-content h2 {
  font:400 32px/1.2 var(--serif);
  margin:20px 0;
}

.modal-content>p:not(.eyebrow) {
  color:#b7cad9;
  line-height:1.7;
  margin-bottom:30px;
}

.modal-content .eyebrow {
  font-size:10px;
}

#trailer-player:not(:empty) {
  margin-bottom:25px;
}

#trailer-player iframe,#trailer-player video {
  display:block;
  width:100%;
  aspect-ratio:16/9;
  border:0;
}

.reveal.is-pending {
  opacity:0;
  transform:translateY(15px);
}

.reveal {
  transition:opacity .65s ease,transform .65s ease;
}

@media(min-width:1600px) {
  .hero-content {
    max-width:730px;
    margin-right:max(4%,calc((100vw - 1500px)/2));
  }
  .hero-picture img {
    object-position:center;
  }
}

@media(max-width:1100px) {
  .site-header {
    gap:20px;
  }
  .navigation {
    gap:18px;
  }
  .wordmark {
    font-size:13px;
    letter-spacing:.25em;
  }
  .header-ticket {
    padding-inline:18px;
    font-size:10px;
  }
  .hero {
    min-height:580px;
    height:85svh;
    max-height:820px;
  }
  .hero .button {
    min-width:290px;
  }
  .hero-content {
    margin-right:2.5%;
    width:48%;
  }
  .hero-picture img {
    object-position:38% center;
  }
  .footer-main {
    gap:20px;
  }
  .partners {
    gap:24px;
  }
  .footer-rule {
    max-width:70px;
  }
  .socials {
    padding-left:20px;
    gap:4px;
  }
  .info-item {
    gap:16px;
    padding-inline:17px;
  }
  .info-item h3 {
    font-size:13px;
  }
  .info-item p {
    font-size:12px;
  }
}

@media(max-width:900px) {
  .site-header {
    min-height:70px;
  }
  .header-ticket {
    margin-left:auto;
  }
  .menu-toggle {
    display:block;
  }
  .navigation {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    margin:0;
    padding:15px 6% 25px;
    background:#030c13fa;
    border-bottom:1px solid #263e4c;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .navigation a {
    font-size:12px;
    padding:16px 0;
  }
  .menu-open .navigation {
    display:flex;
  }
  .menu-open .menu-toggle span:first-child {
    transform:translateY(3.5px) rotate(45deg);
  }
  .menu-open .menu-toggle span:last-child {
    transform:translateY(-3.5px) rotate(-45deg);
  }
  .hero .button {
    font-size:12px;
    min-width:260px;
    padding-inline:23px;
  }
  .hero-venue {
    font-size:8px;
  }
  .show-grid {
    gap:4%;
  }
  .show-copy h2 {
    font-size:19px;
  }
  .show-copy>p:not(.eyebrow) {
    font-size:15px;
  }
  .eyebrow {
    font-size:11px;
  }
  .act-card {
    aspect-ratio:.65;
  }
  .act-copy h3 {
    font-size:12px;
    letter-spacing:.09em;
  }
  .act-copy p {
    font-size:10px;
  }
  .act-number {
    font-size:27px;
  }
  .footer-main {
    flex-wrap:wrap;
    justify-content:center;
    gap:28px;
  }
  .footer-rule {
    display:none;
  }
  .footer-main>.wordmark {
    width:100%;
    text-align:center;
  }
  .socials {
    padding-left:25px;
  }
  .info-icon {
    width:33px;
    height:33px;
  }
  .info-item {
    gap:12px;
    padding-inline:12px;
  }
}

@media(max-width:700px) {
  html {
    scroll-padding-top:80px;
  }
  .container {
    width:88%;
  }
  .site-header {
    padding:10px 5%;
    min-height:68px;
    gap:10px;
    background:linear-gradient(#020a12b3,transparent);
  }
  .site-header>.wordmark {
    font-size:10px;
    letter-spacing:.2em;
  }
  .header-ticket {
    min-height:38px;
    font-size:8px;
    letter-spacing:.03em;
    padding:10px 12px;
  }
  .menu-toggle {
    width:36px;
    padding:6px;
  }
  .hero {
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    min-height:780px;
    height:auto;
    max-height:none;
    padding-top:360px;
  }
  .hero-picture {
    inset:0 0 auto;
    height:470px;
  }
  .hero-picture img {
    object-position:50% 20%;
    object-fit:cover;
  }
  .hero::after {
    background:linear-gradient(180deg,transparent 250px,#030b1250 335px,#030b12 465px);
    inset:0;
  }
  .hero-content {
    width:90%;
    max-width:480px;
    margin:0 auto;
    padding:0 0 34px;
  }
  .artist-logo {
    width:90%;
    max-width:380px;
    margin-bottom:15px;
  }
  .cast {
    font-size:clamp(14px,3.8vw,19px);
    letter-spacing:.18em;
    margin-top:18px;
  }
  .hero .fine-rule {
    margin:18px auto;
    width:50px;
  }
  .hero .button {
    width:100%;
    max-width:345px;
    min-height:56px;
    font-size:13px;
  }
  .hero-venue {
    font-size:9px;
    letter-spacing:.15em;
    margin-top:17px;
  }
  .show {
    padding:35px 0 38px;
  }
  .show-grid {
    grid-template-columns:1fr;
    gap:27px;
  }
  .show-copy .eyebrow {
    font-size:11px;
    margin-bottom:16px;
    letter-spacing:.2em;
  }
  .show-copy h2 {
    font-size:clamp(17px,4.5vw,25px);
    line-height:1.4;
    letter-spacing:.08em;
    margin-bottom:17px;
  }
  .show-copy>p:not(.eyebrow) {
    font-size:16px;
    line-height:1.6;
    margin-top:15px;
  }
  .trailer {
    aspect-ratio:1.55;
    border-radius:6px;
  }
  .play-circle {
    width:66px;
    height:66px;
  }
  .trailer-overlay {
    gap:16px;
    font-size:10px;
  }
  .acts {
    padding:35px 0;
  }
  .section-heading {
    margin-bottom:24px;
  }
  .section-heading h2 {
    font-size:22px;
    letter-spacing:.14em;
  }
  .section-heading>p {
    font-size:9px;
    letter-spacing:.2em;
    line-height:1.9;
    max-width:310px;
    margin:12px auto 0;
  }
  .acts-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .act-card {
    aspect-ratio:.62;
  }
  .act-copy {
    bottom:7%;
    left:4%;
    right:4%;
  }
  .act-number {
    font-size:24px;
  }
  .act-copy h3 {
    font-size:11px;
    letter-spacing:.075em;
    margin-top:8px;
  }
  .act-copy .fine-rule {
    margin:12px auto;
    width:23px;
  }
  .act-copy p {
    font-size:10px;
    letter-spacing:.11em;
    line-height:1.6;
  }
  .booking {
    padding:34px 0;
  }
  .info-grid {
    grid-template-columns:1fr;
    margin-bottom:27px;
    gap:22px;
  }
  .info-item {
    justify-content:flex-start;
    gap:22px;
    padding:0 0 22px;
    align-items:center;
  }
  .info-item+.info-item {
    border-left:0;
  }
  .info-item:not(:last-child) {
    border-bottom:1px solid #cbd2db;
  }
  .info-item:last-child {
    padding-bottom:0;
  }
  .info-icon {
    width:36px;
    height:36px;
    margin-left:4px;
  }
  .info-item h3 {
    font-size:14px;
  }
  .info-item p {
    font-size:14px;
  }
  .button-dark {
    width:100%;
    min-width:0;
    font-size:13px;
    padding-inline:20px;
  }
  .press {
    --press-travel:56px;
    min-height:360px;
    padding:42px 0 180px;
  }
  .press blockquote p {
    font-size:19px;
    line-height:1.6;
    letter-spacing:.12em;
  }
  .press cite {
    font-size:10px;
  }
  .site-footer {
    padding:31px 0 25px;
  }
  .footer-main {
    gap:28px;
  }
  .footer-main>.wordmark {
    font-size:13px;
  }
  .partners {
    width:100%;
    justify-content:center;
    gap:35px;
  }
  .partners img:first-child {
    width:140px;
  }
  .partners img:last-child {
    width:110px;
  }
  .socials {
    border-left:0;
    padding-left:0;
    gap:17px;
  }
  .socials a {
    width:44px;
  }
  .footer-bottom {
    flex-direction:column;
    gap:16px;
    margin-top:24px;
    text-align:center;
    font-size:8px;
  }
  .footer-bottom a {
    order:3;
  }
  .modal-content {
    padding:60px 22px 30px;
  }
  .modal-content h2 {
    font-size:28px;
  }
  .modal .button {
    font-size:11px;
    padding-inline:18px;
    white-space:normal;
  }
}

@media(max-width:359px) {
  .site-header>.wordmark {
    font-size:9px;
    letter-spacing:.1em;
  }
  .header-ticket {
    font-size:7px;
    padding-inline:9px;
  }
  .hero {
    padding-top:320px;
  }
  .hero-picture {
    height:430px;
  }
  .hero::after {
    background:linear-gradient(180deg,transparent 240px,#030b12 430px);
  }
  .act-copy h3 {
    font-size:10px;
    letter-spacing:.02em;
  }
  .act-copy p {
    font-size:9px;
  }
  .section-heading h2 {
    font-size:19px;
  }
}

@media(prefers-reduced-motion:reduce) {
  .press-scenery {
    transform:none;
    will-change:auto;
  }
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important;
  }
  .reveal.is-pending {
    opacity:1;
    transform:none;
  }
  .button:hover {
    transform:none;
  }
}
