.ct-hero, .ct-channels, .ct-cities { background: #0a0b0d; color: #e8eaee; }
.ct-channels, .ct-cities { padding-left: var(--gutter); padding-right: var(--gutter); }
.ct-k { margin: 0; font: 500 var(--fs-label, 0.6875rem)/1.4 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--orange); }

.ct-hero { --s: 0; position: relative; height: 100vh; }
.js .ct-hero { height: 190vh; }
.ct-hero-pin { position: sticky; top: 0; height: 100vh; min-height: 560px; overflow: hidden; }
.ct-film { position: absolute; inset: 0; }
.ct-film video { width: 100%; height: 100%; object-fit: cover; filter: brightness(1.45) contrast(1.05); }
.ct-knock { position: absolute; inset: 0; display: grid; align-content: center; padding: 0 var(--gutter); background: rgba(10, 11, 13, calc(1 - max(0, var(--s) - 0.55) / 0.45)); mix-blend-mode: multiply; transform: scale(calc(1 + var(--s) * var(--s) * 6)); transform-origin: 50% 46%; }
.ct-knock h1, .ct-line p { display: grid; margin: 0; font: 700 clamp(5.5rem, 1rem + 22vw, 30rem)/0.78 var(--grot); letter-spacing: -0.07em; text-transform: uppercase; color: #fff; }
.ct-knock h1 span:last-child, .ct-line p span:last-child { justify-self: end; }
.ct-line { background: none; mix-blend-mode: normal; pointer-events: none; opacity: calc(1 - var(--s) * 1.8); }
.ct-line p { color: transparent; -webkit-text-stroke: 1px rgba(232, 234, 238, 0.4); }
.ct-hero-k, .ct-hero-lede, .ct-hero-where { position: absolute; z-index: 1; margin: 0; opacity: calc(1 - var(--s) * 3); }
.ct-hero-k { left: var(--gutter); top: calc(var(--header-h, 64px) + 28px); font: 500 0.6875rem/1.4 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--orange); }
.ct-hero-lede { left: var(--gutter); bottom: clamp(28px, 6vh, 64px); max-width: 32ch; font: 400 clamp(1rem, 0.9rem + 0.3vw, 1.1875rem)/1.45 var(--body); color: #b7bcc6; }
.ct-hero-where { right: var(--gutter); bottom: clamp(28px, 6vh, 64px); display: flex; gap: 22px; font: 500 0.6875rem/1.4 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: #e8eaee; }
.ct-hero-where span::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: var(--orange); vertical-align: 1px; animation: ct-blink 2.4s ease-in-out infinite; }
.ct-hero-where span:nth-child(2)::before { animation-delay: 0.8s; }
.ct-hero-where span:nth-child(3)::before { animation-delay: 1.6s; }
@keyframes ct-blink { 50% { opacity: 0.25; } }

.ct-channels { padding-top: clamp(72px, 12vh, 140px); padding-bottom: clamp(64px, 10vh, 120px); }
.ct-list { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid #2c323b; }
.ct-list li { position: relative; border-bottom: 1px solid #2c323b; overflow: hidden; }
.ct-list li::before { content: ""; position: absolute; inset: 0; background: var(--orange); transform: scaleX(0); transform-origin: 0 50%; transition: transform 550ms var(--ease, ease); }
.ct-list li:hover::before, .ct-list li:focus-within::before { transform: scaleX(1); }
.ct-list li:not(:has(> a)), .ct-list li > a { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1.1fr) minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: clamp(16px, 2.6vh, 28px) 0; color: inherit; text-decoration: none; transition: padding 550ms var(--ease, ease); }
.ct-list li:hover:not(:has(> a)), .ct-list li:hover > a, .ct-list li > a:focus-visible { padding-left: 20px; padding-right: 20px; }
.ct-list li > a:focus-visible { outline: none; }
.ct-list b, .ct-list strong, .ct-list span, .ct-list em { position: relative; transition: color 300ms; }
.ct-list b { font: 500 0.6875rem/1 var(--mono); letter-spacing: 0.12em; color: var(--orange); }
.ct-list strong { font: 500 clamp(2.25rem, 1rem + 4.4vw, 5.5rem)/0.95 var(--grot); letter-spacing: -0.05em; text-transform: uppercase; }
.ct-list span { font-size: 1rem; line-height: 1.45; color: #8b93a1; }
.ct-list em { font: 500 0.6875rem/1.4 var(--mono); font-style: normal; letter-spacing: 0.12em; text-transform: uppercase; color: #e8eaee; }
.ct-list li:hover b, .ct-list li:hover strong, .ct-list li:hover span, .ct-list li:hover em,
.ct-list li:focus-within b, .ct-list li:focus-within strong, .ct-list li:focus-within span, .ct-list li:focus-within em { color: #0a0b0d; }
.ct-list li:hover .c-ph { color: #0a0b0d; border-color: #0a0b0d; }

.ct-cities { padding-bottom: clamp(80px, 14vh, 160px); }
.ct-rows { margin: 0; padding: 0; list-style: none; }
.ct-rows li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(16px, 2vw, 32px); align-items: end; padding-top: clamp(20px, 4vh, 40px); }
.ct-clock { grid-column: 1; grid-row: 1; font: 500 clamp(3.5rem, 1rem + 7.4vw, 9rem)/0.86 var(--grot); letter-spacing: -0.05em; font-variant-numeric: tabular-nums; color: #262a31; transition: color 400ms; }
.ct-rows h2 { grid-column: 2; grid-row: 1; margin: 0; font: 600 clamp(3.25rem, 0.8rem + 7.2vw, 8.75rem)/0.86 var(--grot); letter-spacing: -0.05em; text-transform: uppercase; }
.ct-meta, .ct-where { grid-row: 2; display: flex; gap: clamp(20px, 4vw, 72px); margin: 0; padding-top: 12px; border-top: 1px solid #3a404a; font: 400 0.9375rem/1.3 var(--body); color: #8b93a1; }
.ct-meta { grid-column: 1; }
.ct-where { grid-column: 2; justify-content: space-between; }

.ct-rows li:hover .ct-clock { color: #4a515c; }
.ct-rows li:hover h2 { color: var(--orange); }
.ct-rows h2 { transition: color 300ms; }
.ct-day-open { color: #3ddc84; }

.js .ct-rows li > * { opacity: 0; transform: translateY(24px); transition: opacity 700ms var(--ease, ease), transform 900ms var(--ease, ease), color 300ms; }
.js .ct-rows li.in > * { opacity: 1; transform: none; }
.js .ct-rows li.in > :nth-child(2) { transition-delay: 80ms; }
.js .ct-rows li.in > :nth-child(n+3) { transition-delay: 160ms; }

@media (max-width: 860px) {
  .ct-hero-where { left: var(--gutter); right: auto; bottom: auto; top: calc(var(--header-h, 64px) + 56px); }
  .ct-knock h1, .ct-line p { font-size: 36vw; }
  .ct-list li:not(:has(> a)), .ct-list li > a { grid-template-columns: 40px 1fr; gap: 8px 12px; }
  .ct-list span, .ct-list em { grid-column: 2; }
  .ct-rows li { grid-template-columns: 1fr; padding-top: 48px; }
  .ct-rows h2 { grid-column: 1; grid-row: 1; }
  .ct-clock { grid-row: 2; margin-top: 10px; font-size: clamp(2.5rem, 12vw, 4rem); }
  .ct-meta { grid-row: 3; }
  .ct-where { grid-column: 1; grid-row: 4; padding-top: 6px; border-top: 0; margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .js .ct-rows li > * { opacity: 1; transform: none; transition: none; }
  .ct-hero-where span::before { animation: none; }
  .js .ct-hero { height: 100vh; }
}
