body{margin:0}
a{color:inherit}a:hover{opacity:0.8}
.fell{font-family:'IM Fell English',serif}
.rough{filter:url(#rough)}
.inky{filter:url(#inky)}
.curtain{will-change:transform;backface-visibility:hidden}
.showreel{position:absolute;inset:0;width:100%;height:100%;display:block;border-radius:50% 50% 4px 4px / 30% 30% 4px 4px;object-fit:cover;background:#1c1512;box-shadow:0 0 120px 18px rgba(245,238,225,0.18)}
.reel-edge{position:absolute;inset:-1px;border-radius:50% 50% 4px 4px / 30% 30% 4px 4px;pointer-events:none;box-shadow:inset 0 0 36px 16px #0a0706,inset 0 0 6px 2px #0a0706}
.film-window,.upcoming-window{overflow:hidden;transition:box-shadow 1.6s ease}
.station:hover .film-window{box-shadow:0 0 70px 8px rgba(245,238,225,0.2)}
.film-still{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;object-fit:cover;object-position:50% 50%}
.detail-art{overflow:hidden;border-radius:4px;background:#0a0706;box-shadow:0 0 140px 20px rgba(245,238,225,0.16)}
.detail-still{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;object-fit:contain}
.detail-no-still{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9a948c;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.14em;text-transform:uppercase}
.sway{transform-origin:50% 0;animation:sway 7s ease-in-out infinite alternate}
.sway.b{animation-duration:9s;animation-delay:-3s}
.sway.c{animation-duration:11s;animation-delay:-5s}
@keyframes sway{0%{transform:rotate(-3deg)}100%{transform:rotate(3deg)}}
.rope{transition:transform 0.4s cubic-bezier(.3,1.7,.5,1)}
.rope:hover{transform:translateY(10px)}
.rope.pulled{transform:translateY(40px)}
.lights{filter:drop-shadow(0 0 6px rgba(248,240,226,0.85)) drop-shadow(0 0 18px rgba(248,240,226,0.4))}
@media (prefers-reduced-motion: reduce){.sway{animation:none}}
.n3,.n2{opacity:0}
@supports (animation-timeline: view()) {
  .reveal{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 85%}
  .sweep{animation:sweep linear both;animation-timeline:view();animation-range:entry 0% cover 55%}
  .n3{animation:n3 linear both;animation-timeline:view();animation-range:entry 0% cover 55%}
  .n2{animation:n2 linear both;animation-timeline:view();animation-range:entry 0% cover 55%}
  .n1{animation:n1 linear both;animation-timeline:view();animation-range:entry 0% cover 55%}
}
@keyframes reveal{0%{opacity:0;filter:brightness(2.4) blur(6px)}35%{opacity:0.75;filter:brightness(1.7) blur(2px)}48%{opacity:0.35}62%{opacity:1;filter:brightness(1.25) blur(0)}100%{opacity:1;filter:none}}
@keyframes sweep{0%{transform:rotate(0deg)}100%{transform:rotate(1080deg)}}
@keyframes n3{0%,32%{opacity:1}34%,100%{opacity:0}}
@keyframes n2{0%,32%{opacity:0}34%,65%{opacity:1}67%,100%{opacity:0}}
@keyframes n1{0%,65%{opacity:0}67%,100%{opacity:1}}
.row{transition:background 0.6s ease}
.row:hover{background:rgba(245,238,225,0.05)}
.row:hover .ttl{text-shadow:0 0 26px rgba(245,238,225,0.5)}
@media (max-width: 640px){.row{grid-template-columns:52px minmax(0,1fr) !important}.c3,.c4{display:none}}
@media (max-width: 760px){.sprockets{display:none}}
.magic{transition:box-shadow 1.6s ease}
.magic:hover{box-shadow:0 0 180px 30px rgba(245,238,225,0.3) !important}
.station{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.station:hover{transform:translateY(-4px)}
@supports (animation-timeline: view()) {
  .drift{animation:drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
  .drift.b{animation-name:driftb}
}
@keyframes drift{0%{translate:0 160px}100%{translate:0 -160px}}
@keyframes driftb{0%{translate:0 -80px}100%{translate:0 240px}}
@media (max-width: 1100px){.deepprop{display:none}}
@media (hover: none){
  .fog{filter:none}
  .win{filter:saturate(0.75)}
}
@supports (animation-timeline: view()) {
  @media (hover: none){
    .fog{animation:defog linear both;animation-timeline:view();animation-range:entry 40% cover 50%}
    .win{animation:wake linear both;animation-timeline:view();animation-range:entry 30% cover 50%}
  }
}
@keyframes defog{0%{filter:blur(2px) grayscale(0.3)}100%{filter:blur(0) grayscale(0)}}
@keyframes wake{0%{filter:saturate(0.3) brightness(0.8)}100%{filter:saturate(0.85) brightness(1.05);box-shadow:0 0 60px 6px rgba(245,238,225,0.22)}}
@media (max-width: 480px){.stagelabel{padding:24px 22px !important}.stagelabel .fell{letter-spacing:0.12em !important}}
@media (prefers-reduced-motion: reduce){.reveal,.sweep,.n1,.n2,.n3{animation:none}.n3,.n2{opacity:0}.n1{opacity:1}}
.fog{filter:blur(2px) grayscale(0.3);transition:filter 2.6s ease}
.fog:hover{filter:blur(0) grayscale(0)}
.win{transition:box-shadow 1.6s ease, filter 1.6s ease;filter:saturate(0.3) brightness(0.8)}
.station:hover .win{filter:saturate(0.8) brightness(1.05);box-shadow:0 0 90px 12px rgba(245,238,225,0.28)}
.bloom{text-shadow:0 0 22px rgba(245,238,225,0.28), 0 0 2px rgba(245,238,225,0.2)}
.flicker{animation:flicker 6s steps(1) infinite}
@keyframes flicker{0%{opacity:1}7%{opacity:0.82}8%{opacity:1}41%{opacity:0.9}42%{opacity:1}73%{opacity:0.78}74%{opacity:0.95}75%{opacity:1}}
.scratch{animation:scratch 7s steps(1) infinite}
.scratch.b{animation-duration:11s;animation-delay:-3s}
@keyframes scratch{0%{left:18%;opacity:0}12%{left:18%;opacity:0.5}14%{left:63%;opacity:0.35}18%{opacity:0}55%{left:41%;opacity:0.45}57%{left:82%;opacity:0.3}60%{opacity:0}100%{opacity:0}}
.wings{transform-box:fill-box;transform-origin:center;animation:flap 0.34s steps(2) infinite}
.wings.resting{animation:none}
@keyframes flap{0%{transform:scaleX(1)}100%{transform:scaleX(0.28)}}
@media (prefers-reduced-motion: reduce){.wings,.flicker,.scratch{animation:none}.scratch{display:none}}
@media (max-width: 760px){.pathline{display:none}}.mmm{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:'Archivo Black',Arial,sans-serif;font-style:normal;font-size:15px;letter-spacing:0.02em;line-height:0.95;text-transform:uppercase;text-align:left}
.mmm img{display:block;width:44px;height:44px;transition:transform 0.6s cubic-bezier(.3,1.7,.5,1)}
.mmm:hover img{transform:rotate(-12deg)}
.contact{position:relative;isolation:isolate;margin-top:16px;display:inline-flex;align-items:center;gap:16px;min-height:64px;padding:20px 52px 24px;font-family:'IM Fell English',serif;font-style:italic;font-size:clamp(34px,4.6vw,52px);line-height:1;text-decoration:none;transform:rotate(0.8deg);transition:transform 0.4s cubic-bezier(.3,1.7,.5,1),box-shadow 1.2s ease}
.contact:hover{opacity:1;transform:rotate(-0.6deg) translateY(-3px);box-shadow:0 0 60px 6px rgba(245,238,225,0.22)}
.contact-bg{position:absolute;inset:0;z-index:-1}
.contact svg{width:0.75em;height:0.75em;transition:transform 0.4s ease}
.contact:hover svg{transform:translateX(4px)}
