/* Philosophy / Backcast v2 — Light from the Goal. */
.backcast--flow{--bc-ig:.25s;--bc-start:.85s;--bc-run:2.4s;--bc-arrive:calc(var(--bc-start) + var(--bc-run));--bc-loop:7.2s;--bc-tail:96px;--bc-ease:cubic-bezier(.5,.04,.2,1)}
@media (max-width:767px){.backcast--flow{--bc-start:.7s;--bc-run:1.9s;--bc-loop:6.4s;--bc-tail:64px}}
.backcast--flow .backcast__rail{position:absolute;left:24px;right:6px;top:-8px;height:41px;overflow:hidden;pointer-events:none}
.backcast--flow .backcast__guide,.backcast--flow .backcast__beam{position:absolute;left:0;right:0;top:20px;height:1px}
.backcast--flow .backcast__guide{display:none}
.backcast--flow .backcast__beam{background:linear-gradient(270deg,var(--brass) 0%,var(--brass-deep) 100%);opacity:0;clip-path:inset(0 0 0 100%)}
.backcast--flow .backcast__run,.backcast--flow .backcast__pulse{position:absolute;inset:0;opacity:0;transform:translateX(0)}
.backcast--flow .backcast__run::before,.backcast--flow .backcast__pulse::before{content:"";position:absolute;left:100%;top:19px;width:var(--bc-tail);height:3px;border-radius:3px;background:linear-gradient(90deg,rgba(184,146,90,.9),rgba(207,174,120,.4) 38%,rgba(207,174,120,0))}
.backcast--flow .backcast__run::after,.backcast--flow .backcast__pulse::after{content:"";position:absolute;left:100%;top:20.5px;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--brass-light);box-shadow:0 0 0 1px rgba(122,91,48,.35),0 0 12px 3px rgba(207,174,120,.55)}
.backcast--flow .backcast__arrow{position:absolute;left:17px;top:9px;width:7px;height:7px;border-left:1px solid var(--brass-deep);border-bottom:1px solid var(--brass-deep);transform:rotate(45deg);pointer-events:none}
.backcast--flow .backcast__pt--goal::before{box-shadow:0 0 0 4px rgba(184,146,90,.14),0 0 14px rgba(207,174,120,.5)}
.backcast--flow .backcast__pt--now::before{background:var(--brass-deep);box-shadow:0 0 0 4px rgba(122,91,48,.1)}
.backcast--flow .backcast__pt::after{content:"";position:absolute;top:0;width:9px;height:9px;border-radius:50%;border:1px solid var(--brass);opacity:0;pointer-events:none}
.backcast--flow .backcast__pt--now::after{left:0}.backcast--flow .backcast__pt--goal::after{right:0}
.backcast--flow.is-armed:not(.is-play) .backcast__beam{opacity:0;clip-path:inset(0 0 0 100%)}
.backcast--flow.is-armed:not(.is-play) .backcast__pt--goal::before{background:rgba(184,146,90,.3);box-shadow:none}
.backcast--flow.is-armed:not(.is-play) .backcast__pt--now::before{background:var(--stone);box-shadow:none}
.backcast--flow.is-armed:not(.is-play) .backcast__pt--now{opacity:.42}
.backcast--flow.is-armed:not(.is-play) .backcast__arrow{opacity:0;transform:translateX(8px) rotate(45deg)}
.backcast--flow.is-armed:not(.is-play) figcaption{opacity:0;transform:translateY(6px)}
.backcast--flow.is-play .backcast__pt--goal::before{transition:background-color .8s var(--ease) var(--bc-ig),box-shadow 1.4s var(--ease) var(--bc-ig);animation:bc-goal-breath var(--bc-loop) var(--ease) calc(var(--bc-arrive) + 1.4s) infinite}
.backcast--flow.is-play .backcast__pt--goal::after{animation:bc-ripple 1.6s var(--ease) var(--bc-ig) both}
.backcast--flow.is-play .backcast__beam{opacity:1;clip-path:inset(0);transition:opacity 0s linear var(--bc-start),clip-path var(--bc-run) var(--bc-ease) var(--bc-start)}
.backcast--flow.is-play .backcast__run{transform:translateX(-100%);transition:transform var(--bc-run) var(--bc-ease) var(--bc-start);animation:bc-run-fade var(--bc-run) linear var(--bc-start) both}
.backcast--flow.is-play .backcast__pt--now{transition:opacity 1s var(--ease) calc(var(--bc-arrive) - .25s)}
.backcast--flow.is-play .backcast__pt--now::before{transition:background-color .6s var(--ease) calc(var(--bc-arrive) - .1s),box-shadow 1.2s var(--ease) calc(var(--bc-arrive) - .1s);animation:bc-now-catch var(--bc-loop) var(--ease) calc(var(--bc-arrive) + 1.4s) infinite}
.backcast--flow.is-play .backcast__pt--now::after{animation:bc-ripple 1.4s var(--ease) calc(var(--bc-arrive) - .1s) both}
.backcast--flow.is-play .backcast__arrow{transition:opacity .7s var(--ease) calc(var(--bc-arrive) - .2s),transform 1s var(--ease) calc(var(--bc-arrive) - .2s);animation:bc-arrow-nudge var(--bc-loop) var(--ease) calc(var(--bc-arrive) + 1.4s) infinite}
.backcast--flow.is-play figcaption{transition:opacity 1.1s var(--ease) calc(var(--bc-arrive) + .25s),transform 1.1s var(--ease) calc(var(--bc-arrive) + .25s)}
.backcast--flow.is-play .backcast__pulse{animation:bc-pulse-move var(--bc-loop) linear calc(var(--bc-arrive) + 1.4s) infinite,bc-pulse-fade var(--bc-loop) linear calc(var(--bc-arrive) + 1.4s) infinite}
.backcast--flow.is-play:not(.is-visible) .backcast__pulse,.backcast--flow.is-play:not(.is-visible) .backcast__pt::before,.backcast--flow.is-play:not(.is-visible) .backcast__arrow{animation-play-state:paused}
@keyframes bc-ripple{0%{opacity:0;transform:scale(1)}12%{opacity:.85}100%{opacity:0;transform:scale(3.4)}}
@keyframes bc-run-fade{0%{opacity:0}8%{opacity:1}88%{opacity:1}100%{opacity:0}}
@keyframes bc-pulse-move{0%{transform:translateX(0);animation-timing-function:cubic-bezier(.5,.04,.2,1)}40%,100%{transform:translateX(-100%)}}
@keyframes bc-pulse-fade{0%{opacity:0}6%,32%{opacity:.5}40%,100%{opacity:0}}
@keyframes bc-goal-breath{0%,18%,100%{box-shadow:0 0 0 4px rgba(184,146,90,.14),0 0 14px rgba(207,174,120,.5)}5%{box-shadow:0 0 0 7px rgba(184,146,90,.2),0 0 24px rgba(207,174,120,.8)}}
@keyframes bc-now-catch{0%,37%,56%,100%{box-shadow:0 0 0 4px rgba(122,91,48,.1)}42%{box-shadow:0 0 0 7px rgba(184,146,90,.2),0 0 16px rgba(207,174,120,.6)}}
@keyframes bc-arrow-nudge{0%,37%,56%,100%{transform:translateX(0) rotate(45deg)}42%{transform:translateX(-3px) rotate(45deg)}}
@media (prefers-reduced-motion:reduce){.backcast--flow .backcast__beam{opacity:1;clip-path:inset(0)}.backcast--flow .backcast__run,.backcast--flow .backcast__pulse{display:none}.backcast--flow .backcast__pt::before,.backcast--flow .backcast__pt::after,.backcast--flow .backcast__arrow{animation:none!important}}
