:root{--fob-ink:#080a0d;--fob-panel:rgba(18,21,25,.86);--fob-gold:#d3be98;--fob-gold-bright:#e9c98f;--fob-cream:#eee7d8;--fob-muted:#92979d;--fob-line:rgba(211,190,152,.28);--fob-display:"Space Grotesk",Arial,sans-serif;--fob-body:"Space Grotesk",Arial,sans-serif}
*{box-sizing:border-box}html{background:#080a0d}body.flow-page{margin:0;min-height:100vh;color:var(--fob-cream);font-family:var(--fob-body);background:#080a0d;overflow-x:hidden}
.flow-bg{position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(8,10,13,.91),rgba(14,17,20,.76) 42%,rgba(8,10,13,.94)),url('/images/hero-poster.jpg') center 26%/cover no-repeat;filter:saturate(.72)}
.flow-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,9,.64),transparent 28%,transparent 72%,rgba(5,7,9,.64))}
.flow-wrap{width:min(920px,92vw);margin:0 auto;padding:28px 0 54px}.flow-top{text-align:center}.flow-emblem{width:82px;height:82px;object-fit:contain;filter:drop-shadow(0 5px 20px rgba(0,0,0,.45));opacity:.94}.flow-ey{margin:16px 0 11px;font:600 10px/1 var(--fob-display);letter-spacing:.34em;text-transform:uppercase;color:#b69f78}.flow-title{margin:0 auto;font:600 clamp(42px,8.2vw,82px)/.94 var(--fob-display);letter-spacing:-.035em;text-transform:uppercase;color:var(--fob-cream);max-width:16ch;text-wrap:balance}.flow-title.compact{font-size:clamp(36px,7vw,68px)}.flow-rule-short{width:145px;height:3px;margin:34px auto 31px;background:var(--fob-gold)}.flow-sub{margin:0 auto 34px;max-width:46ch;text-align:center;font:500 clamp(13px,2.1vw,20px)/1.55 var(--fob-display);letter-spacing:.18em;text-transform:uppercase;color:#b99f78}.flow-shell{position:relative;margin:0 auto;border:1px solid rgba(211,190,152,.34);border-radius:34px;background:linear-gradient(150deg,rgba(27,30,34,.68),rgba(14,17,20,.82));box-shadow:0 28px 80px rgba(0,0,0,.42),inset 0 1px 0 rgba(233,201,143,.05);padding:clamp(28px,5vw,48px);backdrop-filter:blur(4px)}
.flow-rail{display:flex;align-items:center;justify-content:center;gap:clamp(20px,5vw,56px);margin:0 auto 42px}.flow-diamond{width:20px;height:20px;transform:rotate(45deg);background:rgba(211,190,152,.18);border:1px solid rgba(211,190,152,.07)}.flow-diamond.active{background:var(--fob-gold-bright);box-shadow:0 0 20px rgba(233,201,143,.16)}.flow-label{display:block;text-align:center;margin:0 0 28px;font:600 clamp(13px,2.1vw,17px)/1 var(--fob-display);letter-spacing:.28em;text-transform:uppercase;color:#d7bd91}.flow-copy{max-width:680px;margin:0 auto 26px;text-align:center;color:#a4a9af;font-size:14px;line-height:1.7}.flow-input,.flow-select{display:block;width:min(640px,100%);height:78px;margin:0 auto;border:1px solid rgba(211,190,152,.28);border-radius:0;background:rgba(9,12,15,.42);color:var(--fob-cream);font:600 18px/1 var(--fob-display);letter-spacing:.08em;text-transform:uppercase;padding:0 28px;outline:none}.flow-input:focus,.flow-select:focus{border-color:var(--fob-gold-bright);box-shadow:0 0 0 1px rgba(233,201,143,.08)}.flow-select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--fob-gold) 50%),linear-gradient(135deg,var(--fob-gold) 50%,transparent 50%);background-position:calc(100% - 34px) 34px,calc(100% - 27px) 34px;background-size:7px 7px;background-repeat:no-repeat;padding-right:60px}.flow-nav{display:grid;grid-template-columns:70px 1fr 70px;align-items:center;margin-top:34px}.flow-arrow,.flow-next{border:0;background:transparent;color:var(--fob-gold-bright);cursor:pointer;font-family:var(--fob-display)}.flow-arrow{font-size:56px;line-height:1;padding:0}.flow-arrow.muted{opacity:.28;pointer-events:none}.flow-next{justify-self:center;font-size:15px;font-weight:650;letter-spacing:.32em;text-transform:uppercase;padding:15px 10px}.flow-next:after{content:"  →";letter-spacing:0;font-size:18px}.flow-next:hover,.flow-arrow:hover{filter:brightness(1.12)}.flow-next:disabled{opacity:.45;cursor:wait}.flow-divider{height:31px;position:relative;width:min(760px,92vw);margin:10px auto 20px}.flow-divider:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(211,190,152,.36) 12%,rgba(211,190,152,.36) 88%,transparent)}.flow-divider:after{content:"";position:absolute;z-index:2;top:50%;left:50%;width:16px;height:16px;background:var(--fob-gold-bright);transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 18px rgba(233,201,143,.18)}.flow-beam{position:absolute;z-index:1;top:50%;left:0;width:100%;height:3px;margin-top:-1px;background-image:linear-gradient(90deg,transparent 0,rgba(233,201,143,.05) 25%,var(--fob-gold-bright) 50%,rgba(233,201,143,.05) 75%,transparent 100%);background-size:120px 100%;background-repeat:no-repeat;animation:flowBeam 2.8s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(233,201,143,.32))}@keyframes flowBeam{0%{background-position:-120px 50%}50%{background-position:calc(100% + 120px) 50%}100%{background-position:-120px 50%}}
.flow-footer{display:flex;justify-content:space-between;gap:24px;width:min(920px,92vw);margin:18px auto 0;padding-top:14px;border-top:1px solid rgba(211,190,152,.22);font:600 8px/1.3 var(--fob-display);letter-spacing:.26em;text-transform:uppercase;color:#a78f69}.flow-cardgrid{display:grid;grid-template-columns:1fr;gap:12px}.flow-option{display:grid;grid-template-columns:minmax(0,1.35fr) .55fr .7fr;align-items:center;gap:14px;min-height:82px;padding:14px 18px;border:1px solid rgba(211,190,152,.22);background:rgba(9,12,15,.56)}.flow-option strong{font:650 clamp(17px,3.2vw,25px)/1 var(--fob-display);letter-spacing:.02em;text-transform:uppercase}.flow-option small{display:block;margin-top:5px;color:#a9916c;font:600 8px/1.2 var(--fob-display);letter-spacing:.18em;text-transform:uppercase}.flow-price{text-align:right;color:var(--fob-gold-bright);font:700 clamp(20px,3.2vw,27px)/1 var(--fob-display)}.flow-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border:1px solid rgba(233,201,143,.48);background:rgba(16,20,24,.7);color:var(--fob-cream);font:700 9px/1 var(--fob-display);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;cursor:pointer}.flow-btn:hover{border-color:var(--fob-gold-bright);color:var(--fob-gold-bright)}.flow-btn.gold{background:var(--fob-gold);color:#080a0d;border-color:var(--fob-gold);font-size:10px}.flow-btn.block{width:100%;min-height:62px}.flow-note-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.flow-note{padding:20px;border:1px solid rgba(211,190,152,.18);background:rgba(9,12,15,.56)}.flow-note .num{font:600 8px/1 var(--fob-display);letter-spacing:.24em;text-transform:uppercase;color:#b89f78}.flow-note h3{margin:8px 0 8px;font:650 17px/1.1 var(--fob-display);letter-spacing:.05em;text-transform:uppercase}.flow-note p{margin:0;color:#9da3a9;font-size:12px;line-height:1.6}.flow-note a{color:var(--fob-gold)}.flow-partner{margin-top:12px;padding:22px;border:1px solid rgba(211,190,152,.27);background:linear-gradient(145deg,rgba(211,190,152,.07),rgba(9,12,15,.65))}.flow-partner p{margin:0;color:#a5abb0;font-size:12.5px;line-height:1.65}.flow-partner b{color:var(--fob-cream)}.group-cta{display:flex!important;width:min(620px,100%);min-height:92px;margin:30px auto 0!important;padding:0 30px!important;border:1px solid var(--fob-gold-bright)!important;background:linear-gradient(180deg,rgba(233,201,143,.18),rgba(211,190,152,.065))!important;color:var(--fob-gold-bright)!important;font:700 clamp(14px,3vw,20px)/1 var(--fob-display)!important;letter-spacing:.25em!important;text-transform:uppercase!important;box-shadow:0 0 0 1px rgba(233,201,143,.04),0 16px 42px rgba(0,0,0,.3);transition:transform .2s ease,background .2s ease!important}.group-cta:hover{transform:translateY(-2px);background:rgba(233,201,143,.17)!important}.flow-kv{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:22px 0;background:rgba(211,190,152,.17);border:1px solid rgba(211,190,152,.17)}.flow-kv>div{padding:18px;background:rgba(9,12,15,.86)}.flow-kv span{display:block;margin-bottom:7px;color:#a88f69;font:600 8px/1 var(--fob-display);letter-spacing:.22em;text-transform:uppercase}.flow-kv b{font:650 15px/1.3 var(--fob-display);text-transform:uppercase}.flow-map-title{text-align:center;margin:26px 0 10px}.flow-map-title span{font:600 8px/1 var(--fob-display);letter-spacing:.24em;text-transform:uppercase;color:#a9916d}.flow-map-title b{display:block;margin-top:7px;font:650 18px/1.2 var(--fob-display);text-transform:uppercase}.locked-map .fob-map-canvas{display:block!important;height:270px!important;border:1px solid rgba(211,190,152,.27)}.fixed-map-card{padding:15px 17px;border:1px solid rgba(211,190,152,.2);border-top:0;background:rgba(8,11,14,.88)}.fixed-map-card h4{margin:0 0 5px;font:650 16px/1 var(--fob-display);text-transform:uppercase}.fixed-map-card p{margin:0;color:#9da3a9;font-size:11.5px;line-height:1.55}.flow-error{min-height:20px;text-align:center;margin:12px 0 0;color:#dda093;font-size:12px}.flow-backlink{display:block;text-align:center;margin-top:20px;color:#b79f78;text-decoration:none;font:600 9px/1 var(--fob-display);letter-spacing:.2em;text-transform:uppercase}.flow-backlink:hover{color:var(--fob-gold-bright)}
.pass-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(4,5,7,.9);backdrop-filter:blur(6px)}.pass-modal[hidden]{display:none}.pass-box{position:relative;width:min(560px,100%);border:1px solid rgba(211,190,152,.34);border-radius:28px;padding:40px 30px;background:rgba(17,20,24,.94);box-shadow:0 28px 80px rgba(0,0,0,.55)}.pass-x{position:absolute;right:15px;top:12px;border:0;background:transparent;color:#b59d77;font-size:28px;cursor:pointer}.pass-box h3{text-align:center;margin:8px 0 10px;font:650 clamp(27px,6vw,42px)/.95 var(--fob-display);text-transform:uppercase}.pass-box p{text-align:center;color:#9da3a9;font-size:13px;line-height:1.55}.pass-box .flow-input{height:68px}.pass-submit{width:100%;min-height:58px;margin-top:14px;border:1px solid var(--fob-gold);background:var(--fob-gold);color:#080a0d;font:750 10px/1 var(--fob-display);letter-spacing:.24em;text-transform:uppercase;cursor:pointer}
@media(max-width:640px){.flow-wrap{width:94vw;padding-top:18px}.flow-title{font-size:clamp(38px,13vw,62px)}.flow-rule-short{margin:27px auto 25px;width:110px}.flow-sub{font-size:13px;letter-spacing:.16em;max-width:90%}.flow-shell{padding:28px 18px;border-radius:28px}.flow-rail{gap:26px;margin-bottom:36px}.flow-diamond{width:16px;height:16px}.flow-input,.flow-select{height:66px;padding-inline:20px;font-size:15px}.flow-nav{grid-template-columns:54px 1fr 54px}.flow-arrow{font-size:46px}.flow-option{grid-template-columns:1fr auto;gap:10px;min-height:94px}.flow-option .flow-btn{grid-column:1/-1;width:100%}.flow-price{font-size:21px}.flow-note-grid,.flow-kv{grid-template-columns:1fr}.flow-footer{font-size:6.5px;letter-spacing:.18em}.group-cta{min-height:82px!important;font-size:14px!important;padding:0 18px!important}.locked-map .fob-map-canvas{height:220px!important}.pass-box{border-radius:24px;padding:36px 19px 24px}}
@media(prefers-reduced-motion:reduce){.flow-beam{animation:none;background-position:center}.group-cta{transition:none!important}}

/* v131 — pill architecture + subtle perimeter beam system */
:root{
  --fob-ink:#090a0d;
  --fob-panel:rgba(22,23,27,.90);
  --fob-gold:#d7bd91;
  --fob-gold-bright:#efd49d;
  --fob-cream:#efe9de;
  --fob-line:rgba(215,189,145,.34);
}
body.flow-page{background:#090a0d}
.flow-bg{background:linear-gradient(180deg,rgba(9,10,13,.95),rgba(18,19,23,.82) 45%,rgba(9,10,13,.96)),url('/images/hero-poster.jpg') center 26%/cover no-repeat;filter:saturate(.66) brightness(.92)}
.flow-emblem,.flow-rail{display:none!important}
.flow-top{padding-top:22px}
.flow-shell{border-radius:44px;border-color:rgba(215,189,145,.34);background:linear-gradient(145deg,rgba(29,30,34,.82),rgba(14,15,18,.93));box-shadow:0 30px 90px rgba(0,0,0,.44),inset 0 1px 0 rgba(239,212,157,.055)}
.flow-option,.flow-note,.flow-partner,.flow-kv,.flow-kv>div,.fixed-map-card{border-radius:34px}
.flow-cardgrid{gap:16px}
.flow-option{position:relative;isolation:isolate;overflow:hidden;min-height:96px;padding:18px 24px;border:1px solid rgba(215,189,145,.36);background:linear-gradient(110deg,rgba(215,189,145,.09),rgba(27,29,33,.82) 36%,rgba(16,18,21,.9));box-shadow:inset 0 1px 0 rgba(239,212,157,.04)}
.flow-option:nth-child(2n){background:linear-gradient(115deg,rgba(19,21,24,.94),rgba(215,189,145,.055) 78%,rgba(27,29,33,.88))}
.flow-option .flow-btn,.flow-btn{border-radius:999px;border-color:rgba(239,212,157,.38);background:linear-gradient(105deg,rgba(215,189,145,.075),rgba(18,20,23,.88));box-shadow:inset 0 1px 0 rgba(255,236,198,.035)}
.flow-btn.gold{background:linear-gradient(105deg,#d7bd91,#efd49d 48%,#cfb383);border-color:#e7cb94;color:#0a0b0d;box-shadow:0 10px 28px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,249,231,.34)}
.flow-input,.flow-select{border-radius:34px;background:linear-gradient(100deg,rgba(16,18,22,.92),rgba(31,31,34,.76));border-color:rgba(215,189,145,.34)}
.flow-kv{gap:12px;background:transparent;border:0}.flow-kv>div{border:1px solid rgba(215,189,145,.26);background:linear-gradient(115deg,rgba(16,18,21,.92),rgba(215,189,145,.045));}
.flow-note{border:1px solid rgba(215,189,145,.24);background:linear-gradient(115deg,rgba(17,19,22,.92),rgba(215,189,145,.04))}
.flow-partner{border:1px solid rgba(215,189,145,.3);background:linear-gradient(120deg,rgba(215,189,145,.07),rgba(15,17,20,.92))}
.pass-box{border-radius:42px;background:linear-gradient(145deg,rgba(27,29,33,.97),rgba(13,15,18,.98))}.pass-submit{border-radius:999px;background:linear-gradient(105deg,#d7bd91,#efd49d 48%,#cfb383)}
.group-cta{border-radius:999px!important;background:linear-gradient(105deg,rgba(215,189,145,.22),rgba(34,35,39,.78) 58%,rgba(215,189,145,.08))!important;box-shadow:0 0 0 1px rgba(239,212,157,.035),0 16px 42px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,239,207,.05)!important}

/* A single, faint laser-like highlight travels the exact pill perimeter.
   Applied only to 8 / 12 SESH tiers. */
.flow-option.featured-tier{overflow:visible;border-color:transparent;background:linear-gradient(#17191d,#17191d) padding-box,linear-gradient(100deg,rgba(215,189,145,.34),rgba(215,189,145,.11)) border-box}
.flow-option.featured-tier::before,
.flow-option.featured-tier::after{content:"";position:absolute;pointer-events:none;border-radius:inherit}
.flow-option.featured-tier::before{z-index:-1;inset:-1.5px;padding:1.5px;background:conic-gradient(from var(--beam-angle,0deg),transparent 0deg,transparent 320deg,rgba(239,212,157,.03) 329deg,rgba(239,212,157,.88) 344deg,rgba(255,241,207,.98) 349deg,rgba(239,212,157,.18) 356deg,transparent 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;filter:drop-shadow(0 0 4px rgba(239,212,157,.24));animation:pillPerimeterBeam 5.4s linear infinite}
.flow-option.featured-tier::after{inset:-7px;z-index:-2;opacity:.28;background:conic-gradient(from var(--beam-angle,0deg),transparent 0deg,transparent 337deg,rgba(239,212,157,.16) 348deg,transparent 359deg);filter:blur(8px);animation:pillPerimeterBeam 5.4s linear infinite}
@property --beam-angle{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes pillPerimeterBeam{to{--beam-angle:360deg}}

@media(max-width:640px){.flow-shell{border-radius:36px}.flow-option{border-radius:30px;padding:16px 18px}.flow-option .flow-btn{border-radius:999px}.flow-input,.flow-select{border-radius:28px}.pass-box{border-radius:34px}.flow-kv>div,.flow-note,.flow-partner{border-radius:28px}}
@media(prefers-reduced-motion:reduce){.flow-option.featured-tier::before,.flow-option.featured-tier::after{animation:none}}


/* v136 — final group checkout action hierarchy */
.group-final-actions{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;margin-top:2px}
/* the back control is secondary: a small glyph in a comfortable tap
   target, centred under CONFIRM & PAY, with no pill or underline */
.group-final-actions .flow-btn{margin:0 auto}
.group-final-actions .flow-btn{min-width:min(310px,86vw)}
.group-back-arrow{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0 auto;color:var(--fob-gold);font:400 17px/1 var(--fob-display);text-decoration:none;border:0;background:none;opacity:.6;transition:opacity .16s ease,transform .16s ease}
.group-back-arrow:hover,.group-back-arrow:focus-visible{opacity:1;transform:translateX(-2px);color:var(--fob-gold-bright)}
.group-back-arrow:focus-visible{outline:1px solid var(--fob-gold-bright);outline-offset:2px;border-radius:50%}


/* ══ v226 ══════════════════════════════════════════════════════════════
   PAYMENT PAGE BACKDROP + BLUSH REMOVAL

   The same hero action photo, anchored to the top and masked so it fades
   out before the packages. Sits at .15 and is desaturated, so it reads as
   texture rather than as an image. .flow-bg is fixed, so this rides the
   top of the viewport the way the rest of the backdrop layer does.

   The gold radial blush that sat at 50% 30% is deleted at source in the
   :after rule above, not shadowed by a later override. The side vignette
   is kept, because that is what holds the centre column together on wide
   screens.
   ═══════════════════════════════════════════════════════════════════ */
.flow-bg:before{content:"";position:absolute;left:0;right:0;top:0;
  height:min(680px,74vh);pointer-events:none;
  background:url('/images/hero-action-backdrop.jpg') center 20%/cover no-repeat;
  opacity:.15;filter:grayscale(.66) brightness(.82) contrast(1.04);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.74) 44%,rgba(0,0,0,.28) 74%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.74) 44%,rgba(0,0,0,.28) 74%,transparent 100%)}

/* ══ GROUP CLASS: LOCKED STATE ═════════════════════════════════════════
   Nothing about the open button was deleted. .is-locked is an additive
   skin on top of it, so removing the class restores the original exactly.
   ═══════════════════════════════════════════════════════════════════ */
.group-cta.is-locked{
  border-color:rgba(211,190,152,.26)!important;
  background:linear-gradient(105deg,rgba(215,189,145,.06),rgba(27,28,32,.84) 58%,rgba(215,189,145,.025))!important;
  color:rgba(213,195,162,.60)!important;
  box-shadow:0 0 0 1px rgba(239,212,157,.02),0 10px 26px rgba(0,0,0,.26)!important;
  gap:.72em;cursor:pointer}
.group-cta.is-locked:hover,.group-cta.is-locked:active{transform:none!important}
.group-cta .lockmark{flex:0 0 auto;width:1.06em;height:1.06em;display:block;opacity:.78}

/* Coming soon notice */
.soon-veil{position:fixed;inset:0;z-index:80;display:none;place-items:center;padding:24px;
  background:rgba(5,7,9,.76);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.soon-veil.open{display:grid}
.soon-card{width:min(420px,100%);border:1px solid rgba(211,190,152,.24);border-radius:16px;
  background:linear-gradient(180deg,rgba(22,25,29,.96),rgba(14,17,20,.97));
  box-shadow:0 26px 70px rgba(0,0,0,.5);padding:34px 26px 26px;text-align:center}
.soon-card .lockmark{width:34px;height:34px;margin:0 auto 16px;color:var(--fob-gold-bright);opacity:.9}
.soon-card h3{margin:0 0 10px;font:700 13px/1 var(--fob-display);letter-spacing:.3em;
  text-transform:uppercase;color:var(--fob-gold-bright)}
.soon-card p{margin:0 0 22px;color:#9aa0a7;font-size:14px;line-height:1.65}
.soon-card button{width:100%;min-height:52px;border:1px solid rgba(211,190,152,.34);border-radius:999px;
  background:transparent;color:var(--fob-gold-bright);cursor:pointer;
  font:700 12px/1 var(--fob-display);letter-spacing:.26em;text-transform:uppercase}
.soon-card button:hover{background:rgba(233,201,143,.08)}


/* v314 — flow pages keep native pan/pinch but ignore accidental double-tap zoom. */
.flow-page > *{touch-action:manipulation}
.flow-page button,.flow-page a,.flow-page input,.flow-page select,.flow-page [role="button"]{touch-action:manipulation}

/* v365 — public flow follows the same opposed beam/diamond clock. */
.flow-divider:after{animation:flowNodeOppose 2.8s cubic-bezier(.37,0,.63,1) infinite}
@keyframes flowBeam{
  0%,50%,100%{background-position:50% 50%}
  25%{background-position:calc(100% + 120px) 50%}
  75%{background-position:-120px 50%}
}
@keyframes flowNodeOppose{
  0%,50%,100%{transform:translate(-50%,-50%) rotate(45deg)}
  25%{transform:translate(calc(-50% - 12px),-50%) rotate(45deg)}
  75%{transform:translate(calc(-50% + 12px),-50%) rotate(45deg)}
}
@media(prefers-reduced-motion:reduce){.flow-divider:after{animation:none!important}}

/* ══ v366 — public flow FOBEAM continuity ═════════════════════════════════ */
@keyframes flowBeam{
  0%{background-position:-120px 50%}
  50%{background-position:calc(100% + 120px) 50%}
  100%{background-position:-120px 50%}
}
@keyframes flowNodeOppose{
  0%{transform:translate(calc(-50% + 12px),-50%) rotate(45deg)}
  50%{transform:translate(calc(-50% - 12px),-50%) rotate(45deg)}
  100%{transform:translate(calc(-50% + 12px),-50%) rotate(45deg)}
}

/* ══ v383 — public-flow FOBEAM artifact-range swap ════════════════════════
   Keep the exact 2.8 s clock/easing. Only swap which artifact owns the travel:
   the square diamond now crosses the rail while the luminous beam breathes in
   the old compact +/-12 px lane around centre. */
.flow-beam{background-position:calc(50% + 12px) 50%;animation-name:flowBeam!important}
@keyframes flowBeam{
  0%{background-position:calc(50% + 12px) 50%}
  50%{background-position:calc(50% - 12px) 50%}
  100%{background-position:calc(50% + 12px) 50%}
}
.flow-divider:after{left:96%;animation-name:flowNodeOppose!important}
@keyframes flowNodeOppose{
  0%{left:96%;transform:translate(-50%,-50%) rotate(45deg)}
  50%{left:4%;transform:translate(-50%,-50%) rotate(45deg)}
  100%{left:96%;transform:translate(-50%,-50%) rotate(45deg)}
}
