/* Stage 1A: only the first screen; all selectors belong to this component. */
.signal-hero { padding-top:45px; padding-bottom:26px; }
.signal-mono { font-family:var(--site-mono); text-transform:uppercase; font-size:11px; letter-spacing:.09em; line-height:1.5; }
.signal-index { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.signal-wordmark-frame { position:relative; aspect-ratio:681 / 102; margin-top:34px; overflow:hidden; }
/* Align the supplied SVG's existing blank margins without altering its geometry. */
.signal-wordmark { position:absolute; max-width:none; width:calc(100% * 717 / 681); height:auto; left:calc(100% * -18 / 681); top:calc(100% * -18 / 102); }
.signal-hero-bottom { display:grid; grid-template-columns:1fr 1fr; gap:6%; margin-top:44px; align-items:start; }
.signal-copy { max-width:560px; padding-top:15px; min-width:0; }
.signal-copy h2 { font-size:clamp(32px,3.18vw,49px); font-weight:400; line-height:1.09; letter-spacing:-.05em; margin:0 0 25px; white-space:pre-line; overflow-wrap:anywhere; }
.signal-description { max-width:405px; font-size:16px; color:#bfbfb7; line-height:1.6; margin:0; overflow-wrap:anywhere; }
.signal-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:29px; }
.signal-button { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; min-height:51px; padding:14px 21px; font-size:14px; line-height:1.25; border:1px solid #61615a; color:var(--site-white); text-decoration:none; transition:background .2s,color .2s; }
.signal-button--primary { background:var(--site-paper); color:var(--site-ink); border-color:var(--site-paper); }
.signal-button:hover { background:var(--site-paper); color:var(--site-ink); }
.signal-button--primary:hover { background:#fff; }
.signal-arrow { font-size:19px; }
.signal-graphic { overflow:hidden; min-width:0; }
.signal-loop { display:block; width:100%; height:auto; aspect-ratio:720 / 360; color:var(--site-white); }
.signal-caption { display:flex; gap:16px; justify-content:space-between; align-items:center; border-top:1px solid var(--site-line); padding-top:12px; min-height:57px; color:var(--site-muted); }
.signal-caption [data-motion-static] { font-size:10px; text-align:right; }
.signal-motion { border:0; background:none; border-radius:0; padding:10px 0 10px 16px; min-height:44px; color:var(--site-white); font:inherit; font-size:10px; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; display:inline-flex; gap:6px; align-items:center; }
.signal-motion:disabled { color:var(--site-muted); cursor:default; }
.signal-hero .echo-row { transform-origin:50% 50%; }
/* Static by default: JavaScript must explicitly enable the animation. */
.signal-hero .row-1 { --signal-shift:3px; --signal-skew:.08deg; --signal-phase:-.55s; }
.signal-hero .row-2 { --signal-shift:5.5px; --signal-skew:.12deg; --signal-phase:-1.1s; }
.signal-hero .row-3 { --signal-shift:8.5px; --signal-skew:.18deg; --signal-phase:-1.65s; }
.signal-hero .row-4 { --signal-shift:12px; --signal-skew:.25deg; --signal-phase:-2.2s; }
.signal-hero .row-5 { --signal-shift:13.5px; --signal-skew:.24deg; --signal-phase:-2.75s; }
.signal-hero .row-6 { --signal-shift:15px; --signal-skew:.3deg; --signal-phase:-3.3s; }
.signal-hero.has-motion .echo-row:not(.row-0) { animation:signal-drift 8s cubic-bezier(.45,0,.55,1) infinite; animation-delay:var(--signal-phase); will-change:transform; }
.signal-hero.motion-paused .echo-row { animation-play-state:paused !important; }
@keyframes signal-drift {
  0%, 50%, 100% { transform:translateX(0) skewX(0); }
  25% { transform:translateX(var(--signal-shift)) skewX(var(--signal-skew)); }
  75% { transform:translateX(calc(0px - var(--signal-shift))) skewX(calc(0deg - var(--signal-skew))); }
}
.signal-foot { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:48px; padding-top:19px; border-top:1px solid var(--site-line); color:var(--site-muted); }
.signal-foot a { display:flex; align-items:center; gap:18px; text-decoration:none; }
.signal-foot .signal-arrow { color:var(--site-white); }
@media (min-width:1600px) { .signal-hero { padding-top:55px; } .signal-hero-bottom { margin-top:60px; } .signal-copy { padding-top:35px; } }
@media (max-width:1000px) { .signal-hero-bottom { gap:4%; } .signal-copy h2 { font-size:35px; } .signal-description { font-size:15px; } .signal-foot { margin-top:30px; } .signal-actions { gap:8px; } .signal-button { gap:20px; padding-inline:16px; } }
@media (max-width:700px) {
  .signal-hero { padding-top:27px; padding-bottom:23px; }
  .signal-index { font-size:9px; letter-spacing:.06em; }
  .signal-type { display:none; }
  .signal-wordmark-frame { margin-top:26px; }
  .signal-hero-bottom { display:flex; flex-direction:column; margin-top:34px; gap:24px; }
  .signal-copy { padding-top:0; max-width:none; }
  .signal-copy h2 { font-size:36px; line-height:1.05; letter-spacing:-.055em; margin-bottom:20px; }
  .signal-description { font-size:15px; max-width:390px; line-height:1.55; }
  .signal-actions { margin-top:23px; gap:10px; }
  .signal-button { min-height:50px; padding:13px 17px; font-size:13px; gap:25px; }
  .signal-graphic { width:100%; max-width:470px; margin:0 auto; }
  .signal-loop { aspect-ratio:720 / 330; }
  .signal-caption { font-size:9px; padding-top:4px; min-height:49px; }
  .signal-motion, .signal-caption [data-motion-static] { font-size:9px; }
  .signal-foot { margin-top:19px; padding-top:17px; font-size:9px; }
  .signal-foot a { display:none; }
}
@media (max-width:360px) { .signal-copy h2 { font-size:33px; } .signal-button { gap:16px; padding-inline:13px; } }
@media (prefers-reduced-motion:reduce) { .signal-hero.has-motion .echo-row { animation:none !important; } .signal-button { transition:none; } }

/* Stage 1B: home sections only; the approved hero and inner pages are separate. */
.home-section { padding-block:90px; }
.home-section, .home-dates { scroll-margin-top:24px; }
.home-light { background:var(--site-paper); color:var(--site-ink); }
.home-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:42px; }
.home-section-heading > * { min-width:0; }
.home-section-heading h2 { margin:14px 0 0; font-weight:400; font-size:clamp(54px,6.5vw,98px); line-height:.94; letter-spacing:-.067em; overflow-wrap:anywhere; }
.home-section-intro { font-size:16px; line-height:1.6; max-width:340px; margin:0; color:#52534c; white-space:pre-line; }
.home-text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:10px; min-height:44px; max-width:100%; padding-block:10px; border-bottom:1px solid #74746c; text-decoration:none; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.home-text-link:hover { border-bottom-color:currentColor; }
.home-text-link > [aria-hidden] { flex-shrink:0; }
.home-live-layout { display:grid; grid-template-columns:minmax(0,1.38fr) minmax(0,1fr); gap:34px; }
.home-live-media { min-width:0; }
.home-live .showreel, .home-live-fallback { position:relative; min-height:442px; aspect-ratio:auto; border:0; border-radius:0; overflow:visible; background:#181817; color:var(--site-paper); box-shadow:none; }
.home-live .showreel__poster { position:relative; min-height:442px; height:auto; background:#181817; }
.home-live-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 36%; filter:grayscale(1); opacity:.55; }
.home-live-symbol { position:absolute; width:80%; height:auto; left:10%; top:25%; opacity:.16; }
.home-poster-copy { position:relative; display:flex; flex-direction:column; justify-content:space-between; gap:30px; min-height:442px; padding:29px; background:linear-gradient(0deg,rgba(0,0,0,.75),transparent 75%); }
.home-poster-copy h3 { font-size:40px; line-height:1.05; letter-spacing:-.045em; font-weight:400; margin:0; white-space:pre-line; overflow-wrap:anywhere; }
.home-poster-top { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.home-play-circle { display:flex; align-items:center; justify-content:center; width:66px; height:66px; flex-shrink:0; border:1px solid #acaca4; border-radius:50%; font-size:21px; padding-left:4px; }
.home-live .showreel:has(.showreel__play:hover) .home-play-circle { background:var(--site-paper); color:var(--site-ink); }
.home-live .showreel__play { color:var(--site-white); }
.home-live .showreel__play:focus-visible { outline-offset:-6px; }
.home-live .showreel__video { object-fit:contain; background:#181817; }
/* Preserve the poster's natural height while playing long CMS titles. */
.home-live .showreel.is-playing .showreel__poster { display:block; visibility:hidden; }
.home-live-embed { background:#181817; min-height:442px; }
.home-live-embed iframe { border:0; }
.home-media-note { color:#5c5b54; margin:12px 0 0; overflow-wrap:anywhere; }
.home-live-info { display:flex; flex-direction:column; padding:10px 0 0 14px; min-width:0; }
.home-live-info h3 { font-size:30px; line-height:1.15; letter-spacing:-.04em; font-weight:400; margin:0 0 20px; max-width:360px; white-space:pre-line; overflow-wrap:anywhere; }
.home-live-info > p { font-size:16px; line-height:1.6; max-width:360px; margin:0; color:#53534d; white-space:pre-line; overflow-wrap:anywhere; }
.home-live-links { margin-top:26px; }
.home-line-link { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-block:20px; border-bottom:1px solid #c6c5bc; font-size:15px; line-height:1.5; text-decoration:none; overflow-wrap:anywhere; }
.home-line-link:hover { border-bottom-color:currentColor; }
.home-line-link .signal-arrow { flex-shrink:0; }
.home-releases { padding-top:88px; padding-bottom:72px; }
.home-releases .home-section-heading { margin-bottom:40px; }
.home-releases .home-section-heading h2 { font-size:clamp(56px,6.3vw,92px); }
.home-release-list { border-top:1px solid var(--site-line); }
.home-release { display:grid; grid-template-columns:58px minmax(0,1fr) 120px 164px; align-items:center; gap:25px; padding-block:24px; border-bottom:1px solid var(--site-line); min-height:109px; }
.home-release:has(.home-release__action:hover), .home-release:has(.home-release__action:focus-visible) { background:#1d1d1a; }
.home-release__number, .home-release__meta { color:var(--site-muted); }
.home-release__title { font-size:clamp(25px,3vw,43px); line-height:1.07; letter-spacing:-.04em; font-weight:400; margin:0; overflow-wrap:anywhere; }
.home-release__meta { font-size:10px; margin:0; overflow-wrap:anywhere; }
.home-release__action { display:flex; justify-content:space-between; align-items:center; min-height:44px; gap:20px; text-decoration:none; }
.home-release__action .signal-mono { font-size:10px; color:var(--site-muted); overflow-wrap:anywhere; }
.home-release__arrow { font-size:30px; flex-shrink:0; }
.home-release-note { margin:24px 0 0; color:var(--site-muted); font-size:13px; line-height:1.55; }
.home-empty { color:var(--site-muted); font-size:14px; line-height:1.6; margin:0; padding-block:24px; overflow-wrap:anywhere; }
.home-approach { border-top:1px solid var(--site-line); padding-top:76px; padding-bottom:50px; }
.home-approach-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2.03fr); gap:40px; }
.home-approach-mark { display:block; width:140px; height:auto; margin-top:45px; }
.home-approach-main h2 { font-size:clamp(31px,3.1vw,47px); line-height:1.14; letter-spacing:-.05em; font-weight:400; margin:0 0 28px; max-width:750px; white-space:pre-line; overflow-wrap:anywhere; }
.home-approach-main > p { color:#bfbfb7; font-size:16px; line-height:1.75; max-width:645px; margin:0 0 27px; white-space:pre-line; overflow-wrap:anywhere; }
.home-approach-bottom { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.home-approach-bottom .signal-mono { color:var(--site-muted); }
.home-dates { padding-bottom:85px; }
.home-dates-head { display:flex; align-items:center; justify-content:space-between; gap:24px; border-top:1px solid var(--site-line); padding-top:24px; padding-bottom:20px; }
.home-dates-head h2 { font-size:22px; line-height:1.3; font-weight:400; margin:0; overflow-wrap:anywhere; }
.home-event { display:grid; grid-template-columns:140px minmax(0,1fr) auto; align-items:center; gap:28px; padding-block:25px; border-bottom:1px solid var(--site-line); }
.home-event__date { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; min-width:0; color:var(--site-muted); }
.home-event__pinned { font-size:9px; line-height:1.5; overflow-wrap:anywhere; }
.home-event__text { min-width:0; }
.home-event__title { font-size:24px; line-height:1.25; letter-spacing:-.025em; font-weight:400; margin:0 0 8px; overflow-wrap:anywhere; }
.home-event__place { color:var(--site-muted); font-size:14px; line-height:1.6; margin:0; overflow-wrap:anywhere; }
.home-event__link { justify-self:end; }
.home-booking { padding-top:65px; padding-bottom:61px; }
.home-booking-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:45px; align-items:end; }
.home-booking h2 { font-size:clamp(55px,7.45vw,109px); font-weight:400; line-height:.95; letter-spacing:-.07em; margin:26px 0 0; white-space:pre-line; overflow-wrap:anywhere; }
.home-booking-copy { max-width:470px; margin-left:auto; }
.home-booking-copy > p { font-size:16px; line-height:1.65; color:#51514a; margin:0 0 24px; white-space:pre-line; overflow-wrap:anywhere; }
.home-booking .signal-actions { margin:0; }
.home-booking .signal-button { color:var(--site-ink); border-color:#95958c; }
.home-booking .signal-button--primary { background:var(--site-ink); border-color:var(--site-ink); color:var(--site-paper); }
.home-booking .signal-button:hover { background:var(--site-ink); color:var(--site-paper); }
.home-booking .signal-button--primary:hover { background:#30302c; }
.home-booking-small { display:block; margin-top:22px; color:#5a5a53; overflow-wrap:anywhere; }
@media (max-width:1000px) {
  .home-section { padding-block:65px; }
  .home-live-layout { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:22px; }
  .home-live-info { padding-left:0; }
  .home-live .showreel, .home-live .showreel__poster, .home-live-fallback, .home-poster-copy, .home-live-embed { min-height:430px; }
  .home-release { grid-template-columns:40px minmax(0,1fr) 98px 132px; gap:18px; }
  .home-booking-grid { gap:30px; }
  .home-booking .signal-button { font-size:13px; }
  .home-dates { padding-bottom:65px; }
}
@media (max-width:700px) {
  .home-section { padding-block:51px; }
  .home-section-heading { align-items:flex-start; flex-direction:column; gap:24px; margin-bottom:28px; }
  .home-section-heading h2 { font-size:59px; margin-top:14px; }
  .home-section-intro { font-size:15px; max-width:350px; }
  .home-live-layout { grid-template-columns:minmax(0,1fr); gap:29px; }
  .home-live .showreel, .home-live .showreel__poster, .home-live-fallback, .home-poster-copy { min-height:380px; }
  .home-live-embed { min-height:0; }
  .home-poster-copy { padding:23px; }
  .home-poster-copy h3 { font-size:36px; }
  .home-poster-top { font-size:10px; }
  .home-live-info h3 { font-size:27px; max-width:340px; }
  .home-live-info > p { font-size:15px; max-width:none; }
  .home-live-links { margin-top:17px; }
  .home-releases .home-section-heading { margin-bottom:28px; gap:26px; }
  .home-releases .home-section-heading h2 { font-size:58px; }
  .home-text-link { font-size:13px; }
  .home-release { min-height:109px; grid-template-columns:25px minmax(0,1fr) auto; gap:6px 10px; padding-block:22px 14px; }
  .home-release__title { grid-column:2 / 4; font-size:29px; letter-spacing:-.045em; }
  .home-release__number { grid-column:1; grid-row:1; font-size:10px; }
  .home-release__meta { grid-column:2; grid-row:2; font-size:9px; }
  .home-release__action { grid-column:3; grid-row:2; gap:12px; }
  .home-release__action .signal-mono { font-size:9px; }
  .home-release__arrow { font-size:26px; }
  .home-release-note { font-size:12px; line-height:1.6; }
  .home-approach-layout { grid-template-columns:minmax(0,1fr); gap:31px; }
  .home-approach-label { display:flex; align-items:center; justify-content:space-between; gap:24px; }
  .home-approach-mark { margin:0; width:68px; }
  .home-approach-main h2 { font-size:33px; line-height:1.14; margin-bottom:24px; }
  .home-approach-main > p { font-size:15px; line-height:1.7; }
  .home-approach-bottom { align-items:flex-start; flex-direction:column; gap:25px; }
  .home-approach-bottom .signal-mono { font-size:10px; }
  .home-dates { padding-bottom:51px; }
  .home-dates-head { align-items:flex-start; flex-direction:column; gap:12px; padding-top:25px; }
  .home-event { grid-template-columns:minmax(0,1fr); align-items:start; gap:12px; padding-block:24px; }
  .home-event__title { font-size:24px; }
  .home-event__link { justify-self:start; }
  .home-event__place { font-size:14px; }
  .home-booking-grid { grid-template-columns:minmax(0,1fr); gap:31px; }
  .home-booking h2 { font-size:61px; margin-top:20px; }
  .home-booking-copy { margin:0; max-width:none; }
  .home-booking-copy > p { font-size:15px; }
  .home-booking-small { font-size:9px; line-height:1.7; }
}
@media (max-width:360px) {
  .home-release__title { font-size:26px; }
  .home-booking h2 { font-size:54px; }
}
