/* GENERATED by dev/build-r38 — flow-page-only rules (see src/ui/injectedCss.js FLOW_CSS). */
/* r45 reg-3/pricing family — load bar (static done-state on shells), discount pill, toast */
.bl-dpill, .bl-dtoast { font-family:Inter,'Inter Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif }
.bl-bar { position:fixed; top:0; left:0; right:0; height:8px; background:#F3EFF6; z-index:9999; transition:height .45s cubic-bezier(.22,.61,.36,1) }
.bl-bar__fill { height:100%; width:0; border-radius:0 6px 6px 0; transition:width .3s cubic-bezier(.22,.61,.36,1); background:linear-gradient(90deg,#DB61DD,#F8929A,#F48FA4,#F072CD,#DB61DD); background-size:300% 100%; animation:blFlow 3.2s linear infinite; box-shadow:0 1px 10px rgba(240,114,205,.55) }
.bl-bar.is-done { height:3px; background:transparent }
.bl-bar.is-done .bl-bar__fill { animation:blBarDone .5s ease-out forwards; box-shadow:none; border-radius:0; background:linear-gradient(90deg,#DB61DD,#F8929A,#F48FA4,#F072CD) }
@keyframes blFlow { 0% { background-position: 0% 50% } 100% { background-position: 300% 50% } }
@keyframes blBarDone { 0% { filter:brightness(1) } 35% { filter:brightness(1.35) } 100% { filter:brightness(1); box-shadow:none } }
@keyframes blPop { from { opacity:0; transform:translateY(14px) scale(.96) } to { opacity:1; transform:none } }
.bl-dpill { position:fixed; right:24px; bottom:24px; z-index:9800; display:inline-flex; align-items:center; gap:8px; min-height:48px; padding:0 20px; border:none; border-radius:100px; font-family:inherit; font-size:var(--fl-t15); font-weight:600; color:#FFFFFF; cursor:pointer; white-space:nowrap; background:linear-gradient(90deg,#DB61DD,#F8929A,#F48FA4,#F072CD); box-shadow:0 8px 20px rgba(240,114,205,.35); transition:transform .18s ease, box-shadow .18s ease }
.bl-dpill:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(240,114,205,.45) }
.bl-dpill:focus-visible { outline:3px solid #160E28; outline-offset:3px }
.bl-dpill--active { background:#160E28; box-shadow:0 8px 20px rgba(22,14,40,.28) }
.bl-dpill--active:hover { box-shadow:0 12px 26px rgba(22,14,40,.34) }
.bl-dpill img { width:var(--fl-uiico-sm); height:auto; flex-shrink:0 }
.bl-dtoast { position:fixed; right:24px; bottom:84px; z-index:9801; max-width:320px; padding:12px 16px; border-radius:14px; background:#160E28; color:#FFFFFF; font-size:var(--fl-t14); line-height:1.4; box-shadow:0 12px 30px rgba(22,14,40,.32); animation:blPop .28s cubic-bezier(.34,1.56,.64,1) }
@media (prefers-reduced-motion: reduce) { .bl-dpill { transition:none } .bl-dpill:hover { transform:none } .bl-dtoast { animation:none } .bl-bar__fill { animation:none } }
/* v12 reg-page defer strip (128px intrinsic, not the 600px default) */
.bl-defer--strip { contain-intrinsic-size:auto 128px }
/* r42 fix — live-card avatar: initial hiding by attribute, not by a React-owned opacity (bl-live-data owns the img's opacity imperatively) */
[data-bl-hero-av]:not([src]) { opacity:0 }
/* r3 R3 testimonial rotator base */
.bl-quote { transition:opacity .55s ease, transform .55s cubic-bezier(.22,.61,.36,1) }
.bl-quote.is-out { opacity:0; transform:translateY(-10px) }

.bl-quote.is-in { opacity:1; transform:none }

@media (prefers-reduced-motion:reduce) { .bl-quote { transition:none } }

.bl-clock__dial { width:clamp(26px,3.6vh,32px); height:clamp(26px,3.6vh,32px); display:block }

.bl-clock__hand--min { width:2px; height:8.5px; margin-left:-1px; margin-top:-8.5px; animation:blClockSpin 72s linear infinite }

.bl-clock__hand--sec { width:1.5px; height:11px; margin-left:-.75px; margin-top:-11px; opacity:.85; animation:blClockSpin 6s linear infinite }

.bl-card__name { font-size:clamp(13px,1.05vw,16px); font-weight:700; color:#160E28 }

.bl-lift:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(22,14,40,.28) }

.bl-cta { height:min(var(--fl-cta-h), var(--fl-reg-field)); min-height:0 }

.bl-trust { min-height:min(var(--fl-trust-h), clamp(46px,6.8vh,72px)); border-radius:100px }

.bl-stack__a, .bl-stack__more { width:min(var(--fl-av), clamp(26px,4.6vh,40px)); height:min(var(--fl-av), clamp(26px,4.6vh,40px)) }

.bl-stack__more { width:min(var(--fl-more-w), clamp(30px,5.2vh,45px)); border-radius:100px }

.bl-trust__stars > * { width:min(var(--fl-star), clamp(11px,2vh,17px)) !important; height:min(var(--fl-star), clamp(11px,2vh,17px)) !important }

.bl-trust__stars > * { min-width:var(--fl-star) }

.bl-card .bl-trust__stars > * { min-width:var(--fl-cstar) }

.bl-revnav { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer }

/* r58 item 1 — the inline e-mail step on Registration 1: ZERO height until needed, then it opens and the Continue button below travels down with the flow. Interaction-driven, so CLS-exempt. Only max-height/opacity/transform move — the input's own focus/error animations are untouched. */
/* r66 item 4 — the inline sign-in step on Registration 1 collapses and expands on the SAME rule as the e-mail step: an e-mail the backend already owns opens a password field, and changing that e-mail to an unknown one closes it again. One selector list, one transition, no second copy — so the two blocks can never travel at different speeds and no dead space is left behind either of them. */
.bl-r1-email, .bl-pwstep { max-height:0; overflow:hidden; opacity:0; transform:translateY(8px); transition:max-height .34s cubic-bezier(.22,1,.36,1), opacity .2s ease .06s, transform .3s cubic-bezier(.22,1,.36,1) }
.bl-r1-email.is-on, .bl-pwstep.is-on { max-height:340px; opacity:1; transform:none }
@media (prefers-reduced-motion: reduce) { .bl-r1-email, .bl-pwstep { transition:opacity .15s ease } .bl-r1-email.is-on, .bl-pwstep.is-on { max-height:none } }
/* r62 item 5 — reg-1 one-screen fit steps. The page island (reg1.content.js) sets body[data-bl-r1-fit] ONLY while the column actually overflows the viewport (measured, like the target1 steps), re-checked on resize, on the 403 note mounting and on the inline e-mail reveal. Cumulative: step 2 includes step 1. Nothing is hidden — only the reg gap scale tightens. */
body[data-bl-r1-fit] { --fl-reg-gap4:clamp(10px,1.7vh,18px); --fl-reg-gap3:clamp(8px,1.3vh,14px) }
body[data-bl-r1-fit='2'] { --fl-reg-gap2:clamp(8px,1.2vh,12px); --fl-reg-pad-y:clamp(14px,2.2vh,26px); --fl-reg-gap1:clamp(6px,1vh,10px) }
/* r68.1 (owner) — HEIGHT ADAPTIVITY, and the END of the per-page opt-in.

   WHY THE FIRST FIX MISSED A PAGE. r68 hung these rules on <body data-bl-flow>
   and on one page’s DOM shape (#root > div > div). Both are per-page copies of
   a site-wide decision: the attribute was on 5 of the 10 shells that load this
   stylesheet, and the generated pages (Registration 1 and 2) wrap their canvas
   in .sc-host, one level deeper than the chain reached — so Registration 1 kept
   its grey band (32px at 888x557, the reported strip at 1366x680).

   THE CAUSE, REMOVED. This file is loaded by flow shells and by nothing else,
   so LINKING IT IS THE OPT-IN: the rules below carry no attribute and no page
   name, and a page added tomorrow inherits them by linking bundles/flow.css.
   The chain is written against the two wrappers every shell really has — the
   shell div under #root and, on generated pages, .sc-host — so no page has to
   describe its own depth ever again.

   WHAT IT DOES. The canvas owns at least one viewport (dvh first, so mobile
   browser chrome cannot leave a gap, vh as the fallback); every wrapper down to
   the white sheet passes that height on; the last row (never the load bar) takes
   the slack, so the review panel ends level with the form; and the form column
   centres its card with `safe center`, which falls back to flex-start the moment
   the card is taller than the window instead of clipping it. Nothing is scaled:
   every text block keeps its natural measure. */
body { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column }
body > #root { flex:1 0 auto; display:flex; flex-direction:column; min-height:0 }
body > #root > * { flex:1 0 auto; display:flex; flex-direction:column; min-height:0 }
.sc-host { flex:1 0 auto; display:flex; flex-direction:column; min-height:0 }
.sc-host > * { flex:1 0 auto }
body > #root > * > *:not(.bl-bar):last-child { flex:1 1 auto }
body > #root > * > *:not(.bl-bar):last-child > *:first-child { justify-content:center; justify-content:safe center }
@media (max-height:620px) { body > #root > * > *:not(.bl-bar):last-child > *:first-child { justify-content:flex-start } }

body[data-bl-r1-fit='2'] { --fl-reg-gap1:6px; --fl-reg-gap2:6px; --fl-reg-gap3:6px; --fl-reg-gap4:6px }
body[data-bl-r1-fit='2'] #root [data-dc-tpl='18'] { padding-top:12px!important; padding-bottom:16px!important }
body[data-bl-r1-fit='2'] #root [data-dc-tpl='35'] { margin-top:6px!important }

.bl-offerbtn{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px 14px;border-radius:14px;border:1px solid transparent;font-family:inherit;font-size:var(--fl-t13);font-weight:600;text-align:left;cursor:pointer;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere;line-height:1.4;transition:filter .15s ease,transform .15s ease}.bl-offerbtn b{font-weight:800}.bl-offerbtn:hover{filter:brightness(.97)}.bl-offerbtn:active{transform:scale(.995)}.bl-offerbtn:focus-visible{outline:3px solid #160E28;outline-offset:2px}.bl-offerbtn__arrow{margin-left:auto;flex-shrink:0;font-weight:700}.bl-offerbtn--keep{background:#E8F7EF;border-color:#CDEBD9;color:#0F7A46}.bl-offerbtn--up{background:#FDF2FA;border-color:#F3D9EC;color:#A62B85}@media (prefers-reduced-motion: reduce){.bl-offerbtn{transition:none}}