/* Cast in concrete: generated from the logo geometry by hero_geom.py. --k scales every duration. The outline is the logo's own grey edge from the first frame. */
.stage{--k:1}
@media (max-width:640px){.stage{--k:.8}}
.cast{overflow:visible}
.cast .stream{fill:#6B6E75;transform-box:fill-box;transform-origin:top;transform:scaleY(0);opacity:1}
.cast .sF{animation:stream-on calc(var(--k)*.2s) ease-in calc(var(--k)*.75s) forwards, stream-off calc(var(--k)*.15s) ease-out calc(var(--k)*2.15s) forwards}
.cast .sA{animation:stream-on calc(var(--k)*.2s) ease-in calc(var(--k)*2.55s) forwards, stream-off calc(var(--k)*.15s) ease-out calc(var(--k)*4.45s) forwards}
.cast .fill{fill:#6B6E75;animation-timing-function:linear;animation-fill-mode:forwards}
.cast .fF{transform:translateY(684px);animation:fillF calc(var(--k)*1.3s) linear calc(var(--k)*.9s) forwards, going-off calc(var(--k)*.8s) ease-in calc(var(--k)*4.2s) forwards, hide-fill 0s linear calc(var(--k)*6s) forwards}
.cast .fAR{transform:translateY(682px);animation:fillAR calc(var(--k)*1.8s) linear calc(var(--k)*2.7s) forwards, going-off calc(var(--k)*.8s) ease-in calc(var(--k)*4.2s) forwards, hide-fill 0s linear calc(var(--k)*6s) forwards}
.cast .fAL{transform:translateY(524px);animation:fillAL calc(var(--k)*1.8s) linear calc(var(--k)*2.7s) forwards, going-off calc(var(--k)*.8s) ease-in calc(var(--k)*4.2s) forwards, hide-fill 0s linear calc(var(--k)*6s) forwards}
.cast .cure{transform:translateY(800px);animation:cure calc(var(--k)*.9s) cubic-bezier(.4,0,.2,1) calc(var(--k)*4.9s) forwards}
.cast .hose{transform:translateY(-1100px);animation:hose-lower calc(var(--k)*.7s) cubic-bezier(.3,0,.2,1) calc(var(--k)*.3s) forwards, hose-move calc(var(--k)*.4s) var(--ease) calc(var(--k)*2.15s) forwards, hose-raise calc(var(--k)*.4s) cubic-bezier(.4,0,.6,1) calc(var(--k)*4.5s) forwards}
.cast .final{opacity:0;animation:fade-in calc(var(--k)*.3s) ease calc(var(--k)*5.6s) forwards}
.plate{animation:plate calc(var(--k)*.5s) var(--ease) calc(var(--k)*5.6s) forwards}
@keyframes stream-on{to{transform:scaleY(1)}}
@keyframes stream-off{to{opacity:0}}
@keyframes going-off{to{fill:#4E5158}}
@keyframes cure{to{transform:translateY(0)}}
@keyframes hose-lower{to{transform:translateY(0)}}
@keyframes hose-move{from{transform:translateY(0)}to{transform:translate(-146px,0)}}
@keyframes hose-raise{from{transform:translate(-146px,0)}to{transform:translate(-146px,-1100px)}}
@keyframes fade-in{to{opacity:1}}
@keyframes plate{to{opacity:1;transform:none}}
@keyframes hide-fill{to{visibility:hidden}}
@keyframes fillF{
0.0%{transform:translateY(684px)}
7.1%{transform:translateY(546px)}
14.3%{transform:translateY(477px)}
21.4%{transform:translateY(409px)}
28.6%{transform:translateY(343px)}
35.7%{transform:translateY(316px)}
42.9%{transform:translateY(291px)}
50.0%{transform:translateY(267px)}
57.1%{transform:translateY(244px)}
64.3%{transform:translateY(181px)}
71.4%{transform:translateY(119px)}
78.6%{transform:translateY(92px)}
85.7%{transform:translateY(64px)}
92.9%{transform:translateY(33px)}
100.0%{transform:translateY(-1px)}
}
@keyframes fillAR{
0.0%{transform:translateY(682px)}
3.8%{transform:translateY(569px)}
7.6%{transform:translateY(517px)}
11.4%{transform:translateY(467px)}
15.2%{transform:translateY(416px)}
18.9%{transform:translateY(366px)}
22.7%{transform:translateY(315px)}
25.7%{transform:translateY(316px)}
28.8%{transform:translateY(316px)}
31.8%{transform:translateY(316px)}
34.8%{transform:translateY(316px)}
42.9%{transform:translateY(280px)}
51.1%{transform:translateY(246px)}
59.2%{transform:translateY(215px)}
67.4%{transform:translateY(174px)}
75.5%{transform:translateY(133px)}
83.7%{transform:translateY(92px)}
91.8%{transform:translateY(48px)}
100.0%{transform:translateY(-1px)}
}
@keyframes fillAL{
0.0%{transform:translateY(524px)}
3.8%{transform:translateY(524px)}
7.6%{transform:translateY(524px)}
11.4%{transform:translateY(524px)}
15.2%{transform:translateY(524px)}
18.9%{transform:translateY(524px)}
22.7%{transform:translateY(524px)}
25.7%{transform:translateY(422px)}
28.8%{transform:translateY(380px)}
31.8%{transform:translateY(347px)}
34.8%{transform:translateY(315px)}
42.9%{transform:translateY(280px)}
51.1%{transform:translateY(246px)}
59.2%{transform:translateY(215px)}
67.4%{transform:translateY(174px)}
75.5%{transform:translateY(133px)}
83.7%{transform:translateY(92px)}
91.8%{transform:translateY(48px)}
100.0%{transform:translateY(-1px)}
}
/* Return visit in the same session, or reduced motion: the finished cast, no theatre. */
.cast-done .cast .stream,.cast-done .cast .hose,.cast-done .cast .fill{display:none}
.cast-done .cast .cure{animation:none;transform:none}
.cast-done .cast .final{animation:none;opacity:1}
.cast-done .plate{animation:none;opacity:1;transform:none}
