/* Site footer: the signal. Stations sit on a particle line drawn by the page's
   particle system (footer.js); this file only places the markers and labels. */
.site-foot{position:relative;z-index:1;display:grid;border-top:1px solid #ffffff1f;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;justify-content:normal;align-items:stretch;left:auto;right:auto;bottom:auto;min-height:88svh;padding:9vh 3.8vw 0;background:#0b0c0b;color:var(--paper);pointer-events:auto;overflow:hidden}
.sf-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;margin:0;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#8c9087}
.sf-kicker span:first-child{color:var(--paper)}
.sf-kicker span:first-child::before{content:'';display:inline-block;width:6px;height:6px;margin:0 12px 1px 0;background:var(--orange,#de3a11)}
.sf-status::before{content:'';display:inline-block;width:6px;height:6px;margin:0 10px 1px 0;border-radius:50%;background:#3ccf74;animation:sf-pulse 2s ease-in-out infinite}
@keyframes sf-pulse{50%{opacity:.3}}
.sf-line{max-width:520px;margin:3.4vh 0 0;font:400 clamp(20px,1.7vw,28px)/1.25 Archivo,sans-serif;letter-spacing:-.03em;opacity:0;transform:translateY(16px);transition:opacity .9s,transform 1s cubic-bezier(.16,1,.3,1)}
.sf-line em{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--paper)}
.site-foot.in .sf-line{opacity:1;transform:none}

.sf-stations{position:relative;min-height:46vh;margin:0}
.sf-st{position:absolute;left:calc(var(--x) * 100%);top:50%;display:block;width:0;height:0;color:var(--paper)}
.sf-st i{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border:1px solid var(--orange,#de3a11);background:#080908;transition:background-color .3s,transform .45s cubic-bezier(.16,1,.3,1)}
.sf-lab{position:absolute;left:0;display:grid;gap:7px;white-space:nowrap;transform:translateX(-50%);text-align:center;opacity:0;transition:opacity .8s calc(.15s + var(--k) * .08s),transform .9s cubic-bezier(.16,1,.3,1) calc(.15s + var(--k) * .08s)}
.sf-st:nth-child(odd) .sf-lab{bottom:30px;transform:translate(-50%,10px)}
.sf-st:nth-child(even) .sf-lab{top:30px;transform:translate(-50%,-10px)}
.site-foot.in .sf-st .sf-lab{opacity:1;transform:translateX(-50%)}
.sf-lab span{font-size:10px;letter-spacing:2px;color:#787e72;transition:color .3s}
.sf-lab b{font:500 15px Archivo,sans-serif;letter-spacing:-.2px;transition:color .3s}
.sf-st:is(:hover,:focus-visible) i{background:var(--orange,#de3a11);transform:rotate(45deg) scale(1.3)}
.sf-st:is(:hover,:focus-visible) .sf-lab span{color:var(--orange,#de3a11)}
.sf-st:focus-visible{outline:none}
.sf-st.sf-end i{left:-8px;top:-8px;width:16px;height:16px;background:var(--orange,#de3a11);animation:sf-node 2.4s ease-in-out infinite}
@keyframes sf-node{50%{transform:scale(.7)}}
.sf-st.sf-end .sf-lab{left:44px;top:-12px;bottom:auto;transform:translate(0,0);text-align:left}
.site-foot.in .sf-st.sf-end .sf-lab{transform:none}
.sf-st.sf-end .sf-lab b{font-size:clamp(17px,1.4vw,22px)}
.sf-st.sf-end:hover .sf-lab b{color:var(--orange,#de3a11)}

.sf-bar{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:24px;padding:24px 0 30px;font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:#787e72}
.sf-clock{justify-self:center;font-variant-numeric:tabular-nums}
.sf-clock time{margin-left:8px;color:var(--paper)}
.sf-tag{justify-self:end;color:#a7aaa0}
.sf-top{position:relative;display:block;width:50px;height:50px;border:1px solid #ffffff38;transition:border-color .3s}
.sf-top:hover,.sf-top:focus-visible{border-color:var(--orange,#de3a11);outline:none}
.sf-top-dots{position:absolute;left:50%;top:50%}
.sf-top-dots i{position:absolute;width:3.5px;height:3.5px;margin:-1.75px;background:var(--paper);transform:translate(var(--x),var(--y))}
.sf-top-dots i:nth-child(5){background:var(--orange,#de3a11)}
.sf-top:hover .sf-top-dots{animation:sf-rise .9s cubic-bezier(.76,0,.24,1) infinite}
@keyframes sf-rise{0%{transform:none;opacity:1}45%{transform:translateY(-24px);opacity:0}46%{transform:translateY(24px);opacity:0}100%{transform:none;opacity:1}}

/* Phones: the line runs down the left and the stations stack beside it. */
@media(max-width:760px){
  .site-foot{padding:12vh 23px 0}
  .sf-stations{display:grid;align-content:center;gap:4.4vh;min-height:0;padding:6vh 0 6vh 40px}
  .sf-st{position:relative;left:auto;top:auto;width:auto;height:auto;display:flex;align-items:baseline;gap:14px}
  .sf-st i{left:-36px;top:6px}
  .sf-st.sf-end i{left:-39px;top:3px}
  .sf-lab,.sf-st:nth-child(odd) .sf-lab,.sf-st:nth-child(even) .sf-lab,.sf-st.sf-end .sf-lab{position:static;display:flex;align-items:baseline;gap:14px;transform:translateX(-10px);text-align:left}
  .site-foot.in .sf-st .sf-lab,.site-foot.in .sf-st.sf-end .sf-lab{transform:none}
  .sf-bar{grid-template-columns:1fr auto;row-gap:10px}.sf-tag{display:none}.sf-clock{justify-self:start}.sf-top{width:46px;height:46px}
}
@media(prefers-reduced-motion:reduce){.sf-line,.sf-lab{transition:none}.sf-status::before,.sf-st.sf-end i,.sf-top:hover .sf-top-dots{animation:none}}

/* Footer identity: the nav wordmark leads, the line sits beside it, and a
   ruled bottom bar closes the page. */
.sf-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px;padding-bottom:4vh;border-bottom:1px solid #ffffff14}
.sf-logo{display:inline-block}
.sf-head .sf-line{margin:0;text-align:right}
.sf-bar{border-top:1px solid #ffffff14}
@media(max-width:760px){.site-foot{padding-top:8vh}.sf-head{flex-direction:column;align-items:flex-start}.sf-head .sf-line{text-align:left}}

/* Copyright and legal links share the first cell of the bottom bar. */
.sf-legal{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px}
.legal-links{display:flex;flex-wrap:wrap;gap:8px 20px}
.legal-links a,.legal-links button{padding:0;border:0;background:none;color:#a7aaa0;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;transition:color .3s}
.legal-links a:hover,.legal-links button:hover,.legal-links a:focus-visible,.legal-links button:focus-visible{color:var(--paper)}
@media(max-width:760px){.sf-legal{grid-column:1/-1}}
