/* Other layouts include this stylesheet, so scope selectors and custom properties
   to .web-signup. */
.web-signup{
  --bg:#edf6f9; --bg-alt:#e3ebee; --paper:#fff; --ink:#00434a; --muted:#3f6b70;
  --line:#d0dde2; --brand:#006d77; --brand-hover:#00434a; --brand-soft:#dcecef;
  --sage:#83c5be; --brand-ink:#fff; --alert:#a94e4e; --gold:#b08d57;
  --scrim-deep:rgba(2,24,28,.78); --scrim-soft:rgba(0,32,37,.35);
  --r:13px; --maxw:540px;
  --font-sans:"Geist","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-serif:"Newsreader","Source Serif 4",Georgia,serif;
  --font-script:"Dancing Script",cursive;
  --font-mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace;
}
.web-signup *, .web-signup *::before, .web-signup *::after{box-sizing:border-box}
.web-signup{margin:0;padding:0}
.web-signup{
  background:var(--bg); color:var(--ink); font-family:var(--font-sans);
  font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
.web-signup h1,.web-signup h2,.web-signup h3{margin:0 0 .5em}
.web-signup h1{font-family:var(--font-sans); font-weight:750; letter-spacing:-.025em; line-height:1.1}
.web-signup a{color:var(--brand)}
.web-signup img{max-width:100%; display:block}
.web-signup button{font:inherit; cursor:pointer}
.web-signup :focus-visible{outline:2px solid var(--brand); outline-offset:2px; border-radius:4px}
.web-signup .product-page [hidden]{display:none !important}

/* Only the top navigation and bottom action bar stay fixed. */
/* The product page has its own header; the flow uses .tbar below. */
.web-signup .hdr{display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:13px 18px; background:var(--paper); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:40}
.web-signup .pill{display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono);
  font-size:11.5px; color:var(--muted); background:var(--bg-alt);
  border:1px solid var(--line); border-radius:999px; padding:5px 11px}
.web-signup .dot{width:6px; height:6px; border-radius:50%; background:var(--sage)}

.web-signup .tbar{width:100%; background:var(--paper); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:40}
/* The header needs more width than the question column to leave room for Back and progress. */
.web-signup .tb-row{max-width:700px; margin:0 auto; display:flex; align-items:center;
  gap:14px; padding:13px 18px}
.web-signup .tb-back{flex:0 0 auto; display:inline-flex; align-items:center; gap:7px;
  background:var(--brand-soft); border:0; border-radius:10px; padding:8px 13px 8px 11px;
  font-size:14px; font-weight:600; color:var(--brand); line-height:1;
  transition:background .15s}
.web-signup .tb-back svg{width:15px; height:15px; flex:none}
.web-signup .tb-back:hover{background:#cbe1e6}
.web-signup .tb-back.is-off{visibility:hidden; pointer-events:none}
.web-signup .tb-back:focus-visible{outline:2px solid var(--brand); outline-offset:2px}
.web-signup .wordmark{font-weight:800; letter-spacing:.04em; font-size:23px; color:var(--ink);
  text-decoration:none; display:inline-flex; align-items:center; gap:8px; flex:0 0 auto;
  line-height:1}
.web-signup .wordmark .rx{background:var(--ink); color:#fff; font-size:12px; padding:3px 6px;
  border-radius:5px; letter-spacing:.06em}

.web-signup .wrap{max-width:var(--maxw); margin:0 auto; padding:22px 18px 40px}
.web-signup .wrap.has-bar{padding-bottom:calc(124px + var(--consent-band-h,0px))}
.web-signup .wrap.wide{max-width:720px}

.web-signup .botbar{position:fixed; left:0; right:0; bottom:0; z-index:45;
  background:rgba(255,255,255,.95); backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
  padding:11px 0 calc(11px + env(safe-area-inset-bottom))}
/* Anchor the treatment request bump to the centered action group. */
.web-signup .bb-in{position:relative; max-width:var(--maxw); margin:0 auto; padding:0 18px; display:flex;
  align-items:center; gap:20px}
.web-signup .bb-act{flex:1 1 auto; min-width:0}
.web-signup .bb-act .btn{margin:0; width:100%; min-height:56px; font-size:17px}
/* Align the stacked trust block to the right but its labels to one shared left edge. */
.web-signup .bb-trust{display:flex; flex-direction:column; align-items:flex-start; gap:5px;
  flex:0 0 auto; margin-left:auto}
.web-signup .bb-mark{display:inline-flex; align-items:center; gap:6px; font-size:11.5px;
  color:var(--muted); white-space:nowrap; line-height:1}
.web-signup .bb-mark svg{width:13px; height:13px; flex:none; color:var(--sage)}
@media(max-width:719px){
  .web-signup .bb-in{flex-direction:column; align-items:stretch; gap:11px}
  .web-signup .bb-act{flex:none}
  .web-signup .bb-trust{flex-direction:row; flex-wrap:wrap; align-items:center;
    justify-content:center; max-width:100%; margin:0 auto; gap:14px}
  .web-signup .bb-mark{font-size:11px}
  /* The bar stacks into two rows on a phone, so it needs more clearance. */
  .web-signup .wrap.has-bar{padding-bottom:calc(172px + var(--consent-band-h,0px))}
}

.web-signup .card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  padding:20px; position:relative; overflow:hidden;
}
.web-signup .card.accent::before{content:""; position:absolute; inset:0 0 auto 0; height:3px;
  background:linear-gradient(90deg,var(--brand),var(--sage))}
.web-signup .card + .card{margin-top:14px}

.web-signup .row{display:flex; align-items:center; gap:13px; padding:13px;
  border:1px solid var(--line); border-radius:var(--r); background:var(--bg-alt)}
.web-signup .ico{width:44px;height:44px;border-radius:12px;flex:none;display:grid;place-items:center;
  background:linear-gradient(150deg,var(--brand),var(--ink));color:#fff}
.web-signup .ico svg{width:22px;height:22px}
.web-signup .t{font-weight:650;font-size:15px;color:var(--ink)}
.web-signup .sub{font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.4}

.web-signup .btn{
  display:flex; align-items:center; justify-content:center; gap:9px; width:100%;
  text-decoration:none; box-sizing:border-box;
  min-height:52px; padding:14px 20px; border:0; border-radius:var(--r);
  background:var(--brand); color:#fff; font-weight:650; font-size:16px;
  transition:background .15s;
}
.web-signup .btn:hover{background:var(--brand-hover)}
.web-signup .btn[disabled]{opacity:.4; cursor:not-allowed}
.web-signup .btn.grad{background:linear-gradient(160deg,#0f6a72,#02343a); box-shadow:0 3px 14px rgba(0,52,58,.24)}
.web-signup .btn.grad:hover{background:linear-gradient(160deg,#0c5c63,#022b30)}
.web-signup .btn.ghost{background:transparent; color:var(--brand); border:1px solid var(--line)}
.web-signup .btn.quiet{background:var(--paper); color:var(--brand); border:1.5px solid var(--sage)}
.web-signup .btn.quiet:hover{background:var(--brand-soft); border-color:var(--brand)}
.web-signup .btn.ghost:hover{background:var(--brand-soft)}
.web-signup .btn.sm{min-height:40px; padding:8px 14px; font-size:14px; width:auto}
.web-signup .btn.noall{min-height:46px; font-size:15px}
.web-signup .btn.noall[data-on="1"]{background:var(--brand-soft); border-color:var(--sage);
  color:var(--brand); font-weight:750}
.web-signup .linkbtn{background:none;border:0;color:var(--brand);text-decoration:underline;
  padding:8px 0;font-size:14.5px}

.web-signup label.fld{display:block; margin-bottom:14px}
/* `display:block` beats the hidden attribute's UA rule, so it has to be restated. */
.web-signup label.fld[hidden]{display:none}
.web-signup label.fld > span,.web-signup div.fld > span{display:block; font-size:13.5px; font-weight:600; color:var(--muted);
  margin-bottom:6px}
.web-signup input[type=text],.web-signup input[type=tel],.web-signup input[type=email],.web-signup input[type=number],.web-signup input[type=date],.web-signup select,.web-signup textarea{
  width:100%; min-height:48px; padding:11px 13px; font:inherit; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); border-radius:10px;
}
.web-signup input[type=date]{min-width:0; max-width:100%; text-align:left;
  -webkit-appearance:none; appearance:none}
.web-signup input[type=date]::-webkit-date-and-time-value{text-align:left}
.web-signup input:focus,.web-signup select:focus,.web-signup textarea:focus{outline:2px solid var(--brand); outline-offset:1px}
.web-signup [data-screen="0b"] input[aria-invalid="true"],
.web-signup [data-screen="0b"] select[aria-invalid="true"]{border-color:var(--alert)}
.web-signup .hint{font-size:12.5px;color:var(--muted);margin-top:5px}
.web-signup .governed-question .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* The frame owns the visible question heading; the governed control keeps its accessible label. */
.web-signup .governed-question .lane-a-question-card > div:first-child{display:none}
.web-signup .governed-question fieldset{border:0;padding:0;margin:0;min-width:0}
.web-signup .governed-question .lane-a-choice{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px;margin:10px 0;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.web-signup .governed-question .lane-a-choice:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.web-signup .governed-question input[type=checkbox],.web-signup .governed-question input[type=radio]{width:20px;height:20px;flex-shrink:0;accent-color:var(--brand)}
.web-signup .governed-question .lane-a-micro-label{display:block;margin:12px 0 6px;font-size:13.5px;font-weight:600;color:var(--muted)}
.web-signup .unit{font-size:14px;color:var(--muted);font-weight:600;flex:0 0 auto;min-width:20px}
.web-signup .err{font-size:13px;color:var(--alert);margin-top:6px;font-weight:600}
.web-signup .verify-feedback{margin:-4px 0 14px;color:var(--brand);font-weight:600}
.web-signup .verify-feedback.is-error{color:var(--alert)}
.web-signup .verify-resend{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;
  gap:0 5px;margin:10px 0 -8px;color:var(--muted);font-size:14.5px;line-height:1.5}
.web-signup .verify-resend-button{padding:8px 0;border:0;background:none;color:var(--brand);
  font-weight:650;text-decoration:underline;text-underline-offset:3px}
.web-signup .verify-resend-button:hover{color:var(--brand-hover)}
.web-signup .verify-resend-button:disabled{color:var(--muted);cursor:not-allowed;opacity:.78;
  text-decoration:none}
.web-signup .verify-resend-count{font-variant-numeric:tabular-nums}

.web-signup .text-verify-label{margin:0 0 4px;font-size:13.5px;font-weight:600;color:var(--muted);
  text-align:center}
.web-signup .text-verify-code{margin:0 0 16px;text-align:center;font-family:var(--font-mono,ui-monospace,"SF Mono",Menlo,monospace);
  font-size:34px;font-weight:700;letter-spacing:.16em;color:var(--ink);text-indent:.16em}
.web-signup .text-verify-qr{margin:0 auto 14px;max-width:236px}
.web-signup .text-verify-qr svg{display:block;width:100%;height:auto;border-radius:12px;
  border:1px solid var(--line)}
.web-signup .text-verify-alt{margin:0 0 12px;text-align:center;font-size:14.5px;color:var(--muted);
  line-height:1.5}
.web-signup .text-verify-messages{display:inline-flex;align-items:center;gap:8px;min-height:40px;
  padding:9px 18px 9px 14px;border-radius:999px;background:#34c759;color:#fff;font-size:15px;
  font-weight:650;line-height:1;text-decoration:none;box-shadow:0 2px 8px rgba(52,199,89,.28)}
.web-signup .text-verify-messages:hover{background:#2fb552}
.web-signup .text-verify-messages:focus-visible{outline:3px solid rgba(52,199,89,.45);outline-offset:2px}
.web-signup .text-verify-messages-glyph{width:18px;height:18px;flex:none;fill:currentColor}
.web-signup .text-verify-open{margin-bottom:12px}
.web-signup .text-verify-typed{margin:0 0 10px;text-align:center;font-size:13.5px;color:var(--muted);
  line-height:1.5}
.web-signup .text-verify-status{text-align:center;margin:0 0 6px}
.web-signup .text-verify-contact{margin:0 0 4px;text-align:center;font-size:13px;color:var(--muted);
  line-height:1.5;word-break:break-word}
.web-signup .text-verify-contact span{font-variant-numeric:tabular-nums}
.web-signup .text-verify-hatch{display:flex;justify-content:center;margin:0}
.web-signup .text-verify-hatch-button{color:var(--muted);font-weight:600;font-size:13.5px}
.web-signup .text-verify-hatch-button:hover{color:var(--brand)}

/* "Text us" opening step: one primary affordance (button on a phone, QR elsewhere) and
   an equal-sized Skip under it. The QR is plain black on white so any camera reads it. */
.web-signup .link-step{display:flex;flex-direction:column;gap:12px}
.web-signup .link-step > *{margin:0}
.web-signup .link-qr{margin:0 auto;width:220px;max-width:100%;padding:10px;background:#fff;
  border:1px solid var(--line);border-radius:12px;box-sizing:border-box}
.web-signup .link-qr svg{display:block;width:100%;height:auto}
.web-signup .link-step .text-verify-alt{margin:0}
.web-signup .link-step .text-verify-typed{margin:0}
.web-signup .link-qr-caption{margin:0; text-align:center; font-size:15px; font-weight:600; color:var(--ink)}
/* The code reads as something to copy: mono, spaced, on the recessed fill. */
.web-signup .link-code{display:inline-block; padding:1px 7px; font-family:var(--font-mono); font-size:14px;
  font-weight:600; letter-spacing:.08em; color:var(--ink); background:var(--bg-alt); border-radius:6px}
.web-signup .link-step .verify-resend{margin:0}
.web-signup .link-feedback{text-align:center;min-height:1.5em}
.web-signup .link-feedback.is-error{color:var(--alert)}
.web-signup .link-disclosure{text-align:center}
.web-signup .link-confirmed{margin:0;font-size:17px;font-weight:650;color:var(--ink);
  font-variant-numeric:tabular-nums}

.web-signup .bp-row{display:flex; gap:20px; align-items:center}
.web-signup .bp-row + .bp-row{margin-top:16px; padding-top:16px; border-top:1px solid var(--line)}
/* Use the rim for focus because an outline cannot follow the dial's D shape.
   Disable selection so dragging the dial cannot select nearby text. */
.web-signup .bp-dialwrap{flex:0 0 192px; cursor:grab; touch-action:none;
  user-select:none; -webkit-user-select:none; -webkit-tap-highlight-color:transparent}
.web-signup .bp-dialwrap:active{cursor:grabbing}
.web-signup .bp-dialwrap:focus{outline:none}
.web-signup .bp-dialwrap:focus-visible .bp-rim{fill:var(--brand)}
.web-signup .bp-dial{width:192px; height:auto; display:block; pointer-events:none;
  user-select:none; -webkit-user-select:none}
.web-signup .bp-dial .bp-rim{transition:fill .15s ease}
.web-signup .bp-ctl{flex:1 1 auto; min-width:0}
.web-signup .bp-lab{display:block; font-size:14px; font-weight:650; color:var(--ink); margin-bottom:9px}
.web-signup .bp-num{display:flex; align-items:center; gap:10px}
.web-signup .bp-num input{width:112px; min-height:58px; padding:8px 12px; font-size:32px; font-weight:750;
  letter-spacing:-.02em; text-align:center; color:var(--ink); font-variant-numeric:tabular-nums}
.web-signup .bp-num input::-webkit-outer-spin-button,
.web-signup .bp-num input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
.web-signup .bp-num span{font-size:13px; color:var(--muted)}
.web-signup .bp-hint{display:block; margin-top:11px; font-size:12.5px; color:var(--muted)}
.web-signup .bp-range{display:block; margin-top:3px; font-size:11.5px; color:var(--sage);
  font-variant-numeric:tabular-nums}
.web-signup .bp-skip{margin-top:12px; align-items:flex-start}
.web-signup .bp-skip .box{margin-top:2px}
.web-signup .bp-skips{display:block; font-size:12.5px; font-weight:400; color:var(--muted); margin-top:2px}
@media(max-width:639px){
  .web-signup .bp-row{gap:15px}
  .web-signup .bp-dialwrap{flex:0 0 140px}
  .web-signup .bp-dial{width:140px}
  .web-signup .bp-num input{width:96px; min-height:52px; font-size:27px}
}

.web-signup .choices{display:grid; gap:10px; margin:0; padding:0; border:0}
.web-signup .choice{
  display:flex; align-items:center; gap:12px; padding:15px 16px; cursor:pointer;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  width:100%; color:var(--ink); text-align:left; -webkit-appearance:none; appearance:none;
  font-size:15.5px; font-weight:550; transition:border-color .12s, background .12s;
}
.web-signup .choice:hover{border-color:var(--sage); background:var(--brand-soft)}
.web-signup .choice input{position:absolute; opacity:0; pointer-events:none}
.web-signup .choice .box{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);
  flex:none;display:grid;place-items:center;transition:.12s}
.web-signup .choice.multi .box{border-radius:6px}
.web-signup .knum{flex:none; width:23px; height:23px; border-radius:6px; display:grid; place-items:center;
  font-family:var(--font-mono); font-size:11.5px; font-weight:600; color:var(--muted);
  background:var(--bg-alt); border:1px solid var(--line); transition:.12s}
.web-signup .choice:hover .knum{border-color:var(--sage); color:var(--brand)}
.web-signup .choice[data-on="1"] .knum{background:var(--brand); border-color:var(--brand); color:#fff}
.web-signup .ktick{margin-left:auto; color:var(--brand); font-weight:800; font-size:15px}
.web-signup .choice.kflash{border-color:var(--brand); background:var(--brand-soft)}
/* arrow-key cursor: reads as "this one is under the pointer", distinct from selected */
.web-signup .choice.cursor{border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-soft)}
.web-signup .choice.cursor .knum{border-color:var(--brand); color:var(--brand)}
.web-signup .choice[data-on="1"]{border-color:var(--brand); background:var(--brand-soft)}
.web-signup .choice[data-on="1"] .box{border-color:var(--brand); background:var(--brand)}
.web-signup .choice[data-on="1"] .box::after{content:"";width:9px;height:9px;border-radius:50%;background:#fff}
.web-signup .choice.multi[data-on="1"] .box::after{border-radius:1px;width:10px;height:6px;background:none;
  border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg);margin-top:-3px}

/* Give segments their own flexible track so they cannot crowd the rocket or counter. */
.web-signup .rail-inner{flex:1; min-width:64px; display:flex; align-items:center}
.web-signup .rail-track{flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:3px}
.web-signup .seg{height:4px; border-radius:999px; background:var(--line); position:relative;
  overflow:hidden; min-width:3px; transition:flex .4s cubic-bezier(.4,0,.2,1)}
.web-signup .seg > i{position:absolute; inset:0 auto 0 0; background:var(--brand); border-radius:999px;
  transition:width .45s cubic-bezier(.4,0,.2,1)}
.web-signup .seg.full > i{background:var(--sage)}
.web-signup .rail-label{flex:0 0 auto; font-size:12.5px; font-weight:500; color:var(--muted);
  white-space:nowrap; margin-left:2px}
.web-signup .rail-label b{font-weight:700; color:var(--brand); font-variant-numeric:tabular-nums;
  font-size:13.5px}
.web-signup .rail-done{font-weight:700; color:var(--brand)}
/* Leave room for the diagonal rocket's tail beside the progress track. */
.web-signup .rail-goal{flex:0 0 auto; width:18px; height:18px; margin-left:12px; color:var(--sage);
  transition:color .35s ease}
.web-signup .rail-goal svg{width:100%; height:100%; display:block}
.web-signup .rail-goal .rk-exhaust{opacity:0; transition:opacity .3s ease}
.web-signup .rail-goal.near{color:var(--brand)}
.web-signup .rail-goal.near .rk-exhaust{opacity:1}
@media(max-width:620px){
  .web-signup .tb-row{flex-wrap:wrap; gap:8px 12px; padding:11px 18px}
  .web-signup .wordmark{font-size:20px}
  .web-signup .rail-inner{order:3; flex:1 0 100%}
  .web-signup .rail-label{order:2; margin-left:auto}
}

.web-signup .ptag{position:relative}
/* Keep the hamburger navigation at every viewport width on this page. */
.web-signup .hdr{position:relative; flex-wrap:wrap}
.web-signup .nav-toggle{display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; padding:0; background:transparent; border:1px solid var(--line);
  border-radius:8px; cursor:pointer; flex:0 0 auto}
.web-signup .nav-toggle:hover{background:var(--bg-alt)}
.web-signup .nav-bars{display:flex; flex-direction:column; gap:4px; width:16px}
.web-signup .nav-bars span{display:block; height:2px; border-radius:2px; background:var(--ink)}
.web-signup .nav-primary{display:none; list-style:none; margin:0; padding:6px 0 4px; flex:1 0 100%;
  order:9; border-top:1px solid var(--line)}
.web-signup .nav-primary[data-collapsed="false"]{display:block}
.web-signup .nav-primary a{display:block; padding:12px 2px; font-size:15px; font-weight:550;
  color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line)}
.web-signup .nav-primary a:hover{color:var(--brand)}
.web-signup .nav-primary li:last-child a{border-bottom:0}
.web-signup .nav-signin{display:inline-flex !important; align-items:center; gap:8px; margin-top:10px;
  padding:9px 15px !important; background:var(--ink); color:#fff !important;
  border-radius:8px; font-size:13.5px}
.web-signup .nav-signin:hover{background:var(--brand); color:#fff !important}
.web-signup .nav-signin svg{width:15px; height:15px; flex:0 0 auto}
/* On desktop, anchor the menu beneath its button instead of stretching links across the
   viewport. */
@media(min-width:640px){
  .web-signup .nav-primary[data-collapsed="false"]{position:absolute; right:18px; top:100%; width:236px;
    flex:none; padding:8px 16px 14px; background:var(--paper); border:1px solid var(--line);
    border-top:0; border-radius:0 0 12px 12px; box-shadow:0 14px 34px rgba(0,67,74,.13)}
}

.web-signup .pdp{max-width:1040px; margin:14px auto 0; padding:0 18px; display:grid;
  grid-template-columns:1fr; gap:26px; align-items:start}
.web-signup .pdp-media{display:flex; flex-direction:column; min-width:0}
@media(min-width:900px){
  .web-signup .pdp{grid-template-columns:minmax(0,1fr) 430px; gap:44px; margin-top:30px;
    align-items:stretch}
  .web-signup .pdp-media{align-self:start}
  .web-signup .pdp-media .frame{flex:none; aspect-ratio:3/4}
}

.web-signup .frame{background:var(--paper); border:1px solid var(--line); border-radius:16px;
  overflow:hidden; aspect-ratio:1/1}
.web-signup .frame{position:relative}
.web-signup .frame video,.web-signup .frame img{width:100%; height:100%; object-fit:cover; display:block;
  background:#0d1c1f}

.web-signup .frame [hidden]{display:none}

.web-signup .band{width:100%}
.web-signup .band.dark{background:var(--ink); color:#c5dee1; padding:14px 0 40px; margin-top:40px}
.web-signup .band.dark .pdp-chip{color:#bcd8dc; border-color:rgba(255,255,255,.22)}
.web-signup .band.light{padding:14px 0 40px; margin-top:40px}

/* Keep the original thumbnail size even when fewer than five images are configured. */
.web-signup .thumbs{display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:10px;
  flex:0 0 auto}
.web-signup .thumb{position:relative; padding:0; border:1px solid var(--line); border-radius:9px;
  overflow:hidden; background:#0d1c1f; aspect-ratio:1/1; cursor:pointer; transition:border-color .15s}
.web-signup .thumb img{width:100%; height:100%; object-fit:cover; display:block}
.web-signup .thumb:hover{border-color:var(--sage)}
.web-signup .thumb[data-on="1"]{outline:2px solid var(--brand); outline-offset:-2px}
.web-signup .thumb .play{position:absolute; inset:0; display:grid; place-items:center;
  background:rgba(0,26,29,.34); color:#fff}
.web-signup .thumb .play svg{width:17px; height:17px}
.web-signup .pdp-media .cap{font-size:12.5px; color:var(--muted); margin:11px 2px 0; line-height:1.5}

.web-signup .buybox{min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:24px 22px}
.web-signup .buybox h1{font-family:var(--font-serif); font-size:clamp(32px,6.2vw,42px); font-weight:450;
  letter-spacing:-.01em; margin:0 0 14px; line-height:1.06; text-wrap:balance}
.web-signup .buybox h1.one-line{max-width:7ch}
@media(max-width:460px){ .web-signup .buybox h1.one-line{max-width:none; font-size:32px} }
.web-signup .bb-made{margin:-6px 0 12px; font-family:var(--font-serif); font-size:17.5px; font-weight:450; letter-spacing:-.005em; color:var(--brand)}
.web-signup .bb-desc{font-size:15px; color:#22565c; line-height:1.55; margin:0; text-wrap:pretty}

.web-signup .bb-badges{display:grid; grid-template-columns:1fr 1fr; gap:0; margin:20px 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:14px 0}
.web-signup .bdg{min-width:0}
.web-signup .bdg+.bdg{border-left:1px solid var(--line); padding-left:16px}
.web-signup .bdg-t{display:flex; align-items:center; gap:8px}
.web-signup .bdg-ico{flex:0 0 24px; width:24px; height:24px; border-radius:0; background:none;
  display:flex; align-items:center; justify-content:center; line-height:0}
.web-signup .bdg-ico svg{width:22px; height:22px; fill:var(--brand); stroke:none; display:block}
.web-signup .bdg-ico.flag svg{width:21px; height:21px}
.web-signup .bdg b{display:block; font-size:13.5px; font-weight:700; line-height:1.25; color:var(--ink);
  white-space:nowrap}
.web-signup .bdg > span:not(.bdg-t){display:block; font-size:12px; color:var(--muted); margin-top:3px;
  line-height:1.35; white-space:nowrap}

.web-signup .rcpt{margin:20px 0}
.web-signup .rcpt-row{display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:7px 0; font-size:14.5px}
.web-signup .rcpt-row .lb{color:var(--muted)}
.web-signup .rcpt-row .amt{font-variant-numeric:tabular-nums; white-space:nowrap}
.web-signup .rcpt-row.total{border-top:1px solid var(--line); margin-top:9px; padding-top:14px}
.web-signup .rcpt-row.total .lb{color:var(--ink); font-weight:650; font-size:15px}
.web-signup .rcpt-row.total .amt{font-size:38px; font-weight:800; letter-spacing:-.032em; line-height:1}
.web-signup .rcpt-then{font-size:12.5px; color:var(--muted); margin:8px 0 0; text-align:right}
.web-signup .rcpt del{color:#8fb4b8; margin-right:8px; font-weight:400}
.web-signup .rcpt-row.total del{font-size:20px; letter-spacing:-.01em; vertical-align:middle}
.web-signup .strike{position:relative; display:inline-block; color:#8fb4b8; margin-right:8px;
  font-weight:400; font-size:20px; letter-spacing:-.01em; vertical-align:middle}
.web-signup .strike::after{content:""; position:absolute; left:-1px; right:-1px; top:52%; height:1.5px;
  background:currentColor; transform:scaleX(0); transform-origin:left center}
.web-signup .strike.draw::after{animation:strike .34s cubic-bezier(.4,0,.2,1) .1s forwards}
.web-signup .strike.done::after{transform:scaleX(1)}
@keyframes strike{to{transform:scaleX(1)}}
.web-signup .rcpt-row.total .amt .n{display:inline-block; font-variant-numeric:tabular-nums}
.web-signup .offpill.pop{animation:pop .42s cubic-bezier(.34,1.56,.64,1) .28s both}
@keyframes pop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}
.web-signup .ftop.slide{animation:slidein .38s cubic-bezier(.4,0,.2,1) both}
@keyframes slidein{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.web-signup #burst{position:fixed; inset:0; pointer-events:none; z-index:80}
@media(prefers-reduced-motion:reduce){
  .web-signup .strike.draw::after{animation:none; transform:scaleX(1)}
  .web-signup .offpill.pop,.web-signup .ftop.slide{animation:none}
  .web-signup .cta-arrow{animation:none}
  .web-signup .solo-ico svg *{animation:none !important}
  .web-signup .solo-ico .hx-draw{stroke-dashoffset:0 !important; transition:none}
  .web-signup .solo-ico .hx-crossing{opacity:1; transition:none}
  .web-signup .bb-switch .cv{transition:none}
  .web-signup .bb-swpanel:not([hidden]){animation:none}
  .web-signup .bb-swpanel:not([hidden]) .swp-sel{animation:none}
}
.web-signup .offpill{display:inline-block; margin-left:9px; background:#e2f2ea; color:#166b4a;
  border:1px solid #bfe0d0; border-radius:999px; padding:3px 9px; font-size:10.5px;
  font-weight:800; letter-spacing:.04em; vertical-align:2px; text-transform:none}
.web-signup .rcpt .free{color:#166b4a; font-weight:650}

.web-signup .ftop{background:#e2f2ea; color:#166b4a; border-bottom:1px solid #cbe5d8;
  margin:-24px -22px 20px; padding:11px 22px; border-radius:15px 15px 0 0;
  font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  text-align:center; display:flex; align-items:center; justify-content:center; gap:8px}
.web-signup .ftop svg{width:15px; height:15px; flex:none}

.web-signup .feats{display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; padding-left:50px}
.web-signup .feats div{display:flex; align-items:center; gap:10px; font-size:13.5px}
.web-signup .kit-icon{flex:0 0 auto; width:21px; height:21px; color:var(--brand); fill:none;
  stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round}

.web-signup .bb-checklist{list-style:none; margin:14px 0 0; padding:0; display:grid; gap:8px}
.web-signup .bb-checklist li{display:flex; gap:9px; align-items:flex-start; font-size:13px; line-height:1.45; color:var(--muted)}
.web-signup .bb-checklist svg{width:15px; height:15px; flex:none; color:var(--brand); margin-top:1.5px; stroke-width:2.4; fill:none; stroke-linecap:round; stroke-linejoin:round}

.web-signup .bb-links{display:flex; align-items:center; justify-content:space-between; gap:14px;
  margin-top:16px; font-size:13.5px}
.web-signup .bb-links button,.web-signup .bb-links a{background:none; border:0; padding:2px 0; color:var(--brand);
  font-weight:600; font-size:13.5px; text-decoration:none; font-family:inherit}
.web-signup .bb-links button:hover,.web-signup .bb-links a:hover{text-decoration:underline}
.web-signup .bb-links .sep{display:none}
.web-signup .bb-links .cv{width:13px; height:13px; margin-left:5px; vertical-align:-1px;
  transition:transform .2s}
.web-signup .bb-links button[aria-expanded="true"] .cv{transform:rotate(180deg)}

/* Second audience door: transfers compare switch pricing in place. Quiet like .btn.quiet
   so it never competes with the primary CTA above it. */
.web-signup .bb-switch{display:flex; align-items:center; justify-content:space-between; gap:10px; overflow:hidden;
  margin-top:12px; padding:11px 12px; background:var(--paper); border:1.5px solid var(--sage);
  border-radius:var(--r); text-decoration:none; transition:background .15s,border-color .15s}
.web-signup .bb-switch:hover{background:var(--brand-soft); border-color:var(--brand)}
.web-signup .bb-switch-txt{font-size:13px; color:var(--muted); line-height:1.35; min-width:0}
.web-signup .bb-switch-txt b{font-weight:700; color:var(--brand)}
.web-signup .bb-switch .cv{width:15px; height:15px; flex:none; color:var(--brand)}
.web-signup .bb-switch{width:100%; text-align:left; font-family:inherit; cursor:pointer}
.web-signup .bb-switch .cv{transition:transform .2s; transform:rotate(-90deg)}
.web-signup .bb-switch[aria-expanded="true"] .cv{transform:rotate(-180deg)}
.web-signup .cta-arrow{display:inline-block; animation:rrx-cta-nudge 4.5s ease-in-out infinite}
@keyframes rrx-cta-nudge{0%,86%,100%{transform:translateX(0)}92%{transform:translateX(5px)}}
.web-signup .bb-swpanel:not([hidden]){animation:rrx-panel-in .25s ease-out}
@keyframes rrx-panel-in{from{opacity:0; transform:translateY(-6px)}to{opacity:1; transform:none}}
.web-signup .swp-lb{display:block; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:7px}
.web-signup .swp-wrap{position:relative; display:block}
.web-signup .swp-wrap .cv{position:absolute; right:14px; top:50%; width:15px; height:15px; margin-top:-8px; color:var(--brand); pointer-events:none}
.web-signup .swp-sel{width:100%; min-height:50px; padding:0 40px 0 14px; border-radius:10px; border:1.5px solid var(--sage);
  background:var(--paper); color:var(--ink); font-family:inherit; font-size:15.5px; font-weight:600; -webkit-appearance:none; appearance:none}
.web-signup .bb-swpanel:not([hidden]) .swp-sel{animation:rrx-dose-glow 2.2s ease-out .25s 1}
@keyframes rrx-dose-glow{0%,100%{box-shadow:0 0 0 0 rgba(131,197,190,0)}30%{box-shadow:0 0 0 7px rgba(131,197,190,.45)}60%{box-shadow:0 0 0 0 rgba(131,197,190,0)}85%{box-shadow:0 0 0 6px rgba(131,197,190,.3)}}
.web-signup .swp-sel:focus-visible{outline:2px solid var(--brand); outline-offset:2px}
.web-signup .swp-out{margin-top:4px}

.web-signup .promo-form{display:flex; align-items:stretch; gap:9px; margin:10px 0 12px}
.web-signup .promo-form input{flex:1 1 auto; min-width:0; height:50px; padding:0 14px;
  border-radius:10px; text-transform:uppercase; font-family:var(--font-mono); font-size:14px;
  letter-spacing:.06em}
.web-signup .promo-form input::placeholder{letter-spacing:.06em; color:var(--muted); opacity:.7}
.web-signup .promo-form .btn{flex:0 0 auto; width:auto; height:50px; min-height:0;
  padding:0 24px; border-radius:10px; font-size:15px}

.web-signup .paywith{margin-top:20px; padding-top:16px; border-top:1px solid var(--line)}
.web-signup .paywith[hidden]{display:none}

.web-signup .cards{display:flex; gap:7px; align-items:center; justify-content:center;
  margin:0 0 8px; flex-wrap:nowrap}
.web-signup .cbrand{flex:0 0 auto; height:26px; border:1px solid var(--line); border-radius:5px;
  background:var(--paper); display:inline-flex; align-items:center; justify-content:center;
  padding:0 9px; font-size:10px; font-weight:800; line-height:1; white-space:nowrap}
.web-signup .cards .cbrand{filter:grayscale(1); opacity:.62}
.web-signup .cbrand.visa{color:#1a1f71; font-style:italic; font-size:12px; letter-spacing:-.03em}
.web-signup .cbrand.amex{background:#016fd0; border-color:#016fd0; color:#fff; font-size:9px}
.web-signup .cbrand.dsc{color:#4d4d4d; font-size:8.5px}
.web-signup .cbrand.mc{padding:0 10px}
.web-signup .cbrand.mc i{width:13px; height:13px; border-radius:50%; display:block}
.web-signup .cbrand.mc i:first-child{background:#eb001b}
.web-signup .cbrand.mc i:last-child{background:#f79e1b; margin-left:-4px; mix-blend-mode:multiply}
.web-signup .powered{font-size:11.5px; color:var(--muted); margin:0; text-align:center}
.web-signup .powered b{color:var(--muted); font-weight:700; font-size:12.5px; letter-spacing:-.01em}

@media(max-width:480px){
  .web-signup .swp-sel{padding:10px 40px 10px 14px; min-height:50px}
  .web-signup .hdr{padding:8px 14px}
  .web-signup .wordmark{font-size:18px}
  .web-signup .wordmark .rx{font-size:10px; padding:2px 5px}
  .web-signup .pdp{row-gap:18px}
  .web-signup .pdp-media{display:grid; grid-template-columns:minmax(0,1fr) 54px; gap:8px; align-items:stretch}
  .web-signup .frame{aspect-ratio:1/1}
  .web-signup .thumbs{grid-template-columns:1fr; grid-template-rows:repeat(5,1fr); align-content:stretch; gap:6px; margin-top:0; min-height:0}
  .web-signup .thumb{border-radius:7px; aspect-ratio:auto; min-height:0}
  .web-signup .thumb img{position:absolute; inset:0}
  .web-signup .buybox h1{margin-bottom:8px; font-size:30px}
  .web-signup .bb-desc{font-size:13.5px; line-height:1.45}
  .web-signup .bb-badges{margin:12px 0; padding:10px 0}
  .web-signup .rcpt{margin:12px 0}
  .web-signup .rcpt-row{padding:5px 0}
  .web-signup .rcpt-row.total{margin-top:7px; padding-top:10px}
  .web-signup .rcpt-row.total .amt{font-size:34px}
  .web-signup .bb-checklist{margin-top:10px; gap:5px}
  .web-signup .bb-checklist li{font-size:12.5px; line-height:1.4}
  .web-signup .bb-switch{margin-top:10px; padding:10px 12px}
  .web-signup .bb-switch-txt{font-size:12.5px}
  .web-signup .bb-links{margin-top:8px}
  .web-signup .paywith{margin-top:10px; padding-top:10px}
  .web-signup .cards{margin-bottom:5px}
  .web-signup .cbrand{height:22px}
  .web-signup .swp-out{margin-top:2px}
}

.web-signup #ladder-sect, .web-signup #dose-journey, .web-signup #switch-door{scroll-margin-top:76px}
.web-signup .sect{max-width:720px; margin:0 auto; padding:34px 18px 0}
.web-signup .sect h2{font-family:var(--font-serif); font-size:clamp(26px,4.6vw,33px); font-weight:440;
  letter-spacing:-.01em; line-height:1.12; margin-bottom:12px; text-wrap:balance}
.web-signup .pdp-chip{display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono);
  font-size:10.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--line); border-radius:4px; padding:5px 9px}
.web-signup .dj-in{max-width:1040px; margin:0 auto; padding:42px 18px 56px; display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(32px,5vw,72px); align-items:center}
.web-signup .dj-copy,.web-signup .dj-card{min-width:0}
.web-signup .dj-h{margin:0 0 16px; font-family:var(--font-serif); font-size:clamp(30px,4.8vw,42px);
  font-weight:440; letter-spacing:-.01em; line-height:1.08; color:var(--ink)}
.web-signup .dj-h span{display:block}
.web-signup .band.dark .dj-h span:first-child{color:#fff}
.web-signup .band.dark .dj-h span:last-child{color:var(--sage)}
.web-signup .dj-copy p{margin:0 0 14px; color:#22565c}
.web-signup .band.dark .dj-copy p{color:#bcd8dc}
.web-signup .band.dark .dj-copy p b{color:#fff}
.web-signup .dj-copy p:last-child{margin-bottom:0}
.web-signup .dj-card{width:100%; background:var(--paper); border:1px solid var(--line); border-radius:18px;
  padding:26px 24px; box-shadow:0 18px 44px rgba(0,67,74,.08)}
.web-signup .dj-card-h{margin:0 0 12px; color:var(--ink); font-size:15px; font-weight:650; line-height:1.35}
.web-signup .dj-card-s{display:block; margin-top:3px; color:var(--muted); font-size:12.5px; font-weight:400}
.web-signup .dj-sr{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0}
.web-signup .dj-chart{display:block; width:100%; max-width:100%; height:auto; overflow:visible}
.web-signup .dj-grid path{fill:none; stroke:var(--line); stroke-width:1}
.web-signup .dj-steps{fill:none; stroke:var(--line); stroke-width:2; stroke-linecap:butt; stroke-linejoin:miter}
.web-signup .dj-area{fill:var(--brand-soft); opacity:.5}
.web-signup .dj-curve{fill:none; stroke:var(--brand); stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
.web-signup .dj-dots circle{fill:#fff; stroke:var(--brand); stroke-width:2}
.web-signup .dj-dots .dj-dot-last{fill:var(--brand)}
.web-signup .dj-card.chart-armed .dj-area{opacity:0}
.web-signup .dj-card.chart-armed .dj-dots circle{transform:scale(0); transform-box:fill-box; transform-origin:center}
.web-signup .dj-card.chart-play .dj-steps{transition:stroke-dashoffset 1.2s ease-out; stroke-dashoffset:0 !important}
.web-signup .dj-card.chart-play .dj-curve{transition:stroke-dashoffset 2.6s ease-out .5s; stroke-dashoffset:0 !important}
.web-signup .dj-card.chart-play .dj-area{transition:opacity .8s ease 2.4s; opacity:.5}
.web-signup .dj-card.chart-play .dj-dots circle{transition:transform .35s cubic-bezier(.34,1.56,.64,1); transform:scale(1)}
.web-signup .dj-card.chart-play .dj-dots circle:nth-child(1){transition-delay:.6s}
.web-signup .dj-card.chart-play .dj-dots circle:nth-child(2){transition-delay:1.1s}
.web-signup .dj-card.chart-play .dj-dots circle:nth-child(3){transition-delay:1.6s}
.web-signup .dj-card.chart-play .dj-dots circle:nth-child(4){transition-delay:2.1s}
.web-signup .dj-card.chart-play .dj-dots circle:nth-child(5){transition-delay:2.6s}
.web-signup .dj-card.chart-play .dj-dots circle:nth-child(6){transition-delay:3.0s}
@media (prefers-reduced-motion:reduce){
  .web-signup .dj-card.chart-armed .dj-area{opacity:.5}
  .web-signup .dj-card.chart-armed .dj-dots circle{transform:scale(1)}
  .web-signup .dj-card.chart-play .dj-steps,.web-signup .dj-card.chart-play .dj-curve,
  .web-signup .dj-card.chart-play .dj-area,.web-signup .dj-card.chart-play .dj-dots circle{transition:none}
}
.web-signup .dj-legend{display:flex; flex-wrap:wrap; gap:18px; min-width:0; margin-top:6px;
  font-family:var(--font-mono); font-size:10px; line-height:1.3; letter-spacing:.08em; text-transform:uppercase}
.web-signup .dj-legend > span{display:inline-flex; align-items:center; gap:6px; min-width:0; color:var(--muted)}
.web-signup .dj-legend > span:last-child{color:var(--brand)}
.web-signup .dj-legend-swatch{flex:0 0 16px; width:16px; height:3px; border-radius:2px; background:var(--line)}
.web-signup .dj-legend > span:last-child .dj-legend-swatch{background:var(--brand)}
.web-signup .dj-stages{list-style:none; margin:22px 0 0; padding:0; border-top:1px solid var(--line)}
.web-signup .dj-stages li{display:grid; grid-template-columns:26px minmax(0,1fr); align-items:center;
  gap:12px; min-width:0; padding:12px 0; border-bottom:1px solid var(--line)}
.web-signup .dj-stages li:last-child{border-bottom:0; padding-bottom:0}
.web-signup .dj-num{width:26px; height:26px; display:grid; place-items:center; border:1px solid var(--line);
  border-radius:50%; color:var(--sage); font-family:var(--font-mono); font-size:11px; line-height:1}
.web-signup .dj-stage-text{display:block; min-width:0}
.web-signup .dj-stages b{display:block; min-width:0; color:var(--ink); font-size:15px; font-weight:700}
.web-signup .dj-stage-text > span{display:block; margin-top:2px; color:var(--muted); font-size:13px; line-height:1.45; overflow-wrap:break-word}
@media(max-width:900px){
  .web-signup .dj-in{grid-template-columns:minmax(0,1fr)}
}
.web-signup .bene-in{max-width:1040px; margin:0 auto; padding:56px 18px 8px}
.web-signup .bene-head{margin:0 0 44px}
.web-signup .bene-h{font-family:var(--font-serif); font-size:clamp(28px,4.8vw,36px); font-weight:440; letter-spacing:-.01em; line-height:1.12; color:var(--ink); margin:0; text-wrap:balance}
.web-signup .bene-sub{font-size:15px; color:var(--muted); line-height:1.55; margin:12px 0 0; max-width:52ch; text-wrap:balance}
.web-signup .bene-lock{display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); gap:clamp(24px,3vw,44px); align-items:stretch; margin-top:8px}
.web-signup .bene-photo{margin:0; position:relative; border-radius:8px; overflow:hidden; min-height:420px; min-width:0}
.web-signup .bene-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block}
.web-signup .bene-quad{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; min-width:0; background:#fff; border:1px solid #fff; border-radius:8px; overflow:hidden}
.web-signup .bene-cell{background:var(--bg); padding:24px; display:flex; flex-direction:column; min-width:0}
.web-signup .bene-kick{font-family:var(--font-mono); font-size:11px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.web-signup .bene-cell h3{font-family:var(--font-serif); font-size:20px; font-weight:500; line-height:1.25; color:var(--ink); margin:8px 0 6px; text-wrap:balance}
.web-signup .bene-cell > p{font-size:13.5px; line-height:1.55; color:var(--muted); margin:0}
.web-signup .bene-glyph{display:block; width:100%; height:auto; margin-top:auto; padding-top:16px}
.web-signup .bene-srdesc{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.web-signup .bene-cap{margin:10px 0 0; text-align:right; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted)}
@media(max-width:900px){
  .web-signup .bene-lock{grid-template-columns:minmax(0,1fr)}
  .web-signup .bene-photo{width:100%; min-height:0; aspect-ratio:4/3}
}
@media(max-width:767px){
  .web-signup .bene-head{grid-template-columns:1fr; gap:0; margin-bottom:44px}
  .web-signup .bene-sub{margin-top:12px; justify-self:start; padding-top:0}
}
@media(max-width:560px){.web-signup .bene-quad{grid-template-columns:minmax(0,1fr)}}
.web-signup .band.light.solo-band{margin-top:0; padding:72px 18px; display:flex; align-items:center; justify-content:center}
.web-signup .solo-in{display:flex; flex-direction:column; align-items:center; gap:18px}
.web-signup .solo-ico{display:block; width:64px; height:46px}
.web-signup .solo-ico svg{display:block; width:100%; height:100%; overflow:visible}
.web-signup .solo-ico svg .hx-sway{transform-origin:32px 22px; animation:rrx-helix-sway 9s ease-in-out 2.8s infinite; will-change:transform}
.web-signup .solo-ico svg .hx-strand,.web-signup .solo-ico svg .hx-rung{fill:none; stroke-width:1.5; stroke-linecap:round}
.web-signup .solo-ico svg .hx-strand-a{stroke:var(--brand)}
.web-signup .solo-ico svg .hx-strand-b{stroke:var(--sage)}
.web-signup .solo-ico svg .hx-rung{stroke:var(--sage)}
.web-signup .solo-ico svg .hx-rung:nth-of-type(odd){stroke:var(--brand); opacity:.85}
.web-signup .solo-ico svg .hx-crossing{opacity:1}
.web-signup .solo-ico svg .hx-halo{fill:none; stroke:var(--bg); stroke-width:3.75; stroke-linecap:round}
.web-signup .solo-ico svg .hx-over-a,.web-signup .solo-ico svg .hx-over-b{fill:none; stroke-width:1.5; stroke-linecap:round}
.web-signup .solo-ico svg .hx-over-a{stroke:var(--brand)}
.web-signup .solo-ico svg .hx-over-b{stroke:var(--sage)}
.web-signup .solo-ico svg .hx-rungs .hx-r1,.web-signup .solo-ico svg .hx-rungs .hx-r3,.web-signup .solo-ico svg .hx-rungs .hx-r5{animation:rrx-helix-drift-up 9s ease-in-out infinite}
.web-signup .solo-ico svg .hx-rungs .hx-r2,.web-signup .solo-ico svg .hx-rungs .hx-r4{animation:rrx-helix-drift-down 9s ease-in-out infinite}
.web-signup .solo-ico svg .hx-rungs .hx-r1,.web-signup .solo-ico svg .hx-rungs .hx-r2{animation-delay:2.8s}
.web-signup .solo-ico svg .hx-rungs .hx-r3,.web-signup .solo-ico svg .hx-rungs .hx-r4{animation-delay:3.6s}
.web-signup .solo-ico svg .hx-rungs .hx-r5{animation-delay:4.4s}
.web-signup .solo-ico.hx-armed svg .hx-draw{transition:none}
.web-signup .solo-ico.hx-armed svg .hx-crossing{opacity:0}
.web-signup .solo-ico.hx-play svg .hx-draw{transition:stroke-dashoffset 2.4s cubic-bezier(.22,1,.36,1); stroke-dashoffset:0 !important}
.web-signup .solo-ico.hx-play svg .hx-strand-b{transition-delay:.18s}
.web-signup .solo-ico.hx-play svg .hx-r1{transition-delay:1.15s}
.web-signup .solo-ico.hx-play svg .hx-r2{transition-delay:1.35s}
.web-signup .solo-ico.hx-play svg .hx-r3{transition-delay:1.55s}
.web-signup .solo-ico.hx-play svg .hx-r4{transition-delay:1.75s}
.web-signup .solo-ico.hx-play svg .hx-r5{transition-delay:1.95s}
.web-signup .solo-ico.hx-play svg .hx-crossing{opacity:1; transition:opacity 1s ease-in-out 2.15s}
.web-signup .solo-ico.hx-static svg *{animation:none}
.web-signup .solo-ico.hx-static svg .hx-draw{stroke-dashoffset:0 !important; transition:none}
.web-signup .solo-ico.hx-static svg .hx-crossing{opacity:1; transition:none}
@keyframes rrx-helix-sway{0%,100%{transform:skewX(0deg) translateY(0)}50%{transform:skewX(1.1deg) translateY(-.35px)}}
@keyframes rrx-helix-drift-up{0%,100%{transform:translateY(0)}50%{transform:translateY(-.7px)}}
@keyframes rrx-helix-drift-down{0%,100%{transform:translateY(0)}50%{transform:translateY(.7px)}}
.web-signup .solo-line{margin:0 auto; max-width:46ch; text-align:center; font-family:var(--font-serif);
  font-weight:440; font-size:clamp(15.5px,2.4vw,34px); line-height:1.3; letter-spacing:-.012em;
  color:var(--ink); text-wrap:balance}
.web-signup .solo-hl{color:var(--brand)}
@media(max-width:480px){
  .web-signup .band.light.solo-band{padding:52px 18px}
  .web-signup .solo-in{gap:14px}
  .web-signup .solo-ico{width:52px; height:38px}
}
.web-signup .stmt{width:100%; margin-top:40px; padding:clamp(72px,12vh,128px) 0; background:var(--bg-alt)}
.web-signup .stmt-in{max-width:860px; margin:0 auto; padding:0 18px; text-align:center}
.web-signup .stmt-line{margin:0 0 12px; font-family:var(--font-serif); font-weight:420; font-size:clamp(30px,5.2vw,56px); line-height:1.08; letter-spacing:-.015em; color:var(--ink); text-wrap:balance; max-width:17ch; margin-inline:auto}
.web-signup .stmt-sub{margin:0 auto; font-size:15.5px; line-height:1.5; color:var(--muted); max-width:52ch}
.web-signup .film{position:relative; width:100%; overflow:hidden; margin-top:40px; min-height:clamp(380px,56vh,620px); display:flex; align-items:flex-end; background:#02181c}
.web-signup .band.dark + .film,.web-signup .stmt + .film,.web-signup .stmt + .band.dark,.web-signup .solo-band + .film{margin-top:0}
.web-signup .film-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center}
.web-signup .film-scrim{position:absolute; inset:0; background:linear-gradient(180deg,rgba(2,24,28,.1) 35%,var(--scrim-deep))}
.web-signup .film-in{position:relative; max-width:980px; margin:0 auto; padding:0 18px 52px; width:100%}
.web-signup .film-line{margin:0; font-family:var(--font-serif); font-weight:420; font-size:clamp(30px,4.6vw,46px); line-height:1.08; letter-spacing:-.015em; color:#fff; max-width:20ch; text-wrap:balance}
.web-signup .film-toggle{position:absolute; right:16px; bottom:16px; width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.35); background:rgba(2,24,28,.45); color:#fff; display:grid; place-items:center; backdrop-filter:blur(8px); transition:background .15s}
.web-signup .film-toggle:hover{background:rgba(2,24,28,.7)} .web-signup .film-toggle svg{width:16px; height:16px} .web-signup .film-toggle [hidden]{display:none}
@media(max-width:640px){.web-signup .film{min-height:min(78vw,460px)} .web-signup .film-in{padding-bottom:44px}}
.web-signup .sect p{margin:0 0 14px; color:#22565c}
.web-signup .sect ul{margin:0 0 14px; padding-left:20px; color:#22565c}
.web-signup .sect ul li::marker{color:var(--sage)}
.web-signup .sect li{margin-bottom:7px}
.web-signup table.lad{width:100%; border-collapse:separate; border-spacing:0; font-size:14.5px; margin:6px 0 14px}
.web-signup table.lad th,.web-signup table.lad td{text-align:left; padding:10px 8px; border-bottom:1px solid var(--line)}
.web-signup table.lad th{font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted)}
.web-signup table.lad td:last-child,.web-signup table.lad th:last-child{text-align:right; font-variant-numeric:tabular-nums}
.web-signup table.lad del{color:#8fb4b8; margin-right:6px; font-weight:400; font-size:12.5px; text-decoration-thickness:1px}
.web-signup .lad th.hl,.web-signup .lad td.hl{background:var(--ink); color:#fff; text-align:right; font-variant-numeric:tabular-nums; padding-left:12px; padding-right:12px; box-shadow:0 10px 26px rgba(0,52,58,.18)}
.web-signup .lad thead th.hl{border-radius:10px 10px 0 0; padding-top:13px; color:rgba(255,255,255,.75)}
.web-signup .lad td.hl{font-weight:650}
.web-signup .lad td.hl del{color:rgba(255,255,255,.55)}
.web-signup .lad tbody tr:last-child td.hl{border-radius:0 0 10px 10px}
.web-signup .sect h2 .offpill{vertical-align:middle; margin-left:10px}
@media(max-width:420px){
  .web-signup table.lad th,.web-signup table.lad td{padding:8px 5px}
  .web-signup .lad th.hl,.web-signup .lad td.hl{padding-left:8px; padding-right:8px}
  .web-signup table.lad del{display:block; margin:0 0 1px; font-size:11px}
}

.web-signup .cmp-in{max-width:860px; margin:0 auto; padding:34px 18px 0}
.web-signup .cmp-h{font-family:var(--font-serif); font-size:clamp(26px,4.6vw,33px); font-weight:440;
  letter-spacing:-.01em; line-height:1.12; margin-bottom:18px; text-wrap:balance}
.web-signup .cmp-band .cmp-h{color:#fff}
.web-signup table.cmp{width:100%; border-collapse:separate; border-spacing:0; font-size:14.5px}
.web-signup table.cmp th,.web-signup table.cmp td{text-align:left; padding:12px 10px; border-bottom:1px solid rgba(255,255,255,.14)}
.web-signup table.cmp thead th{font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:rgba(237,246,249,.6)}
.web-signup .cmp td{color:#bcd8dc; overflow-wrap:break-word}
.web-signup .cmp td:first-child{color:#8fb4b8; width:30%}
.web-signup .cmp th.hl,.web-signup .cmp td.hl{background:var(--paper); color:var(--ink); padding-left:12px; padding-right:12px;
  box-shadow:0 10px 26px rgba(0,0,0,.35)}
.web-signup .cmp thead th.hl{border-radius:10px 10px 0 0; padding-top:16px}
.web-signup .cmp td.hl{font-weight:650}
.web-signup .cmp tbody tr:last-child td.hl{border-radius:0 0 10px 10px}
.web-signup .cmp-mark{display:block; width:96px; height:auto}
.web-signup .cmp-mark-name{fill:var(--ink); font-family:var(--font-sans); font-weight:800}
.web-signup .cmp-mark-badge{fill:var(--ink)}
.web-signup .cmp-mark-rx{fill:#fff; font-family:var(--font-mono); font-weight:700; letter-spacing:.22em}
.web-signup .cmp-in .fine{color:#8fb4b8}
@media(max-width:640px){
  .web-signup table.cmp th,.web-signup table.cmp td{padding:9px 6px; font-size:13px}
  .web-signup .cmp td:first-child{width:auto}
}

.web-signup .how-in{max-width:1152px; margin:0 auto; padding:56px 18px 0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(36px,5vw,72px); align-items:center}
.web-signup .how-in > *{min-width:0}
.web-signup .how-photo{margin:0; position:relative; border-radius:16px; overflow:hidden; aspect-ratio:4/5; max-height:640px}
.web-signup .how-photo img{width:100%; height:100%; object-fit:cover; object-position:78% center}
.web-signup .how-h{font-family:var(--font-serif); font-size:clamp(26px,4.6vw,33px); font-weight:440; letter-spacing:-.01em; line-height:1.12; margin:0 0 22px; text-wrap:balance}
.web-signup .how-steps{list-style:none; margin:0; padding:0}
.web-signup .how-steps li{display:grid; grid-template-columns:34px minmax(0,1fr); gap:14px; padding:14px 0}
.web-signup .how-steps li > div{min-width:0}
.web-signup .how-num{width:30px; height:30px; border-radius:50%; background:var(--brand-soft); color:var(--brand); display:grid; place-items:center; font-family:var(--font-mono); font-size:12px; font-weight:600}
.web-signup .how-steps b{display:block; margin-bottom:2px; color:var(--ink); font-size:15.5px; font-weight:700}
.web-signup .how-steps li > div > span{display:block; color:var(--muted); font-size:14px; line-height:1.55}
.web-signup .how-cta{width:auto; display:inline-flex; padding:14px 28px; margin-top:18px; border-radius:999px}
@media(max-width:900px){.web-signup .how-in{grid-template-columns:minmax(0,1fr)}}

.web-signup details.faq{border-bottom:1px solid var(--line); padding:16px 0}
.web-signup details.faq summary{cursor:pointer; font-weight:650; font-size:15.5px; list-style:none;
  transition:color .15s ease}
.web-signup details.faq summary:hover{color:var(--brand)}
.web-signup details.faq summary::-webkit-details-marker{display:none}
.web-signup details.faq summary::after{content:"+"; float:right; color:var(--brand); font-size:20px; line-height:1}
.web-signup details.faq[open] summary::after{content:"\2212"}
.web-signup details.faq p{margin:11px 0 2px; font-size:14.5px}

.web-signup .sticky-cta{position:fixed; left:0; right:0; bottom:var(--consent-band-h,0px); z-index:50; padding:10px 18px;
  background:rgba(255,255,255,.95); backdrop-filter:blur(10px); border-top:1px solid var(--line);
  box-shadow:0 -8px 24px rgba(0,67,74,.08);
  transform:translateY(110%); transition:transform .25s ease; visibility:hidden}
.web-signup .sticky-cta[data-show="1"]{transform:none; visibility:visible}
.web-signup .sticky-cta .in{max-width:720px; margin:0 auto; display:flex; align-items:center; gap:14px}
.web-signup .sticky-cta .px-wrap{display:flex; flex-direction:column; gap:1px; min-width:0}
.web-signup .sticky-cta .sw{font-size:11.5px; font-weight:600; color:var(--brand); white-space:nowrap; text-decoration:none}
.web-signup .sticky-cta .sw:hover{text-decoration:underline}
.web-signup .sticky-cta .px{font-weight:700; white-space:nowrap; font-size:16px}
.web-signup .sticky-cta .btn{flex:1; min-height:46px; font-size:15px}

.web-signup .fine{font-size:12.5px; color:var(--muted); line-height:1.5}
.web-signup .foot{background:var(--ink); color:#c5dee1; margin-top:44px; padding:30px 18px 40px;
  font-size:12.5px; line-height:1.6}
.web-signup .foot .in{max-width:720px;margin:0 auto}
.web-signup .foot b{color:#fff}

.web-signup .qh{font-family:var(--font-sans); font-size:clamp(23px,5.6vw,29px); font-weight:750;
  letter-spacing:-.022em; line-height:1.2; margin:4px 0 8px}
.web-signup .qsub{color:var(--muted); font-size:15px; margin:0 0 20px}
.web-signup .note{background:var(--brand-soft); border:1px solid var(--sage); border-radius:11px;
  padding:14px 15px; font-size:14px; color:#164d52; line-height:1.5}
.web-signup .wrap.two{ display:flex; flex-direction:column }
.web-signup .wrap.two > .prail{ order:2 }
.web-signup .wrap.two > .qbox{ order:3; min-width:0 }
.web-signup .qbox{ background:var(--paper); border:1px solid var(--line); border-radius:16px;
  padding:24px 22px }
.web-signup .qbox > .qh{ margin-bottom:8px }
/* Use the page tone for nested panels to keep borders distinct. Leave option rows white. */
.web-signup .qbox .card{ background:var(--bg) }
.web-signup .qbox > .qsub{ margin-bottom:20px }

/* Align the proof footer and question on one left edge without a second card. */
/* Touch screens have no hover reveal, so the proof is fully readable by default. Devices that
   can actually hover may dim the supporting material until it is engaged. */
.web-signup .prail{ margin:2px 0 24px; opacity:1; transition:opacity .3s ease }
@media(hover:hover) and (pointer:fine){
  .web-signup .prail{ opacity:.66 }
  .web-signup .prail:hover, .web-signup .prail:focus-within{ opacity:1 }
}
.web-signup .prf{ --fpad:0; background:none; border:0; border-radius:0; padding:0 }
/* Use the softer sage title color so the proof does not dominate the question. */
.web-signup .prf-stat{ font-weight:800; letter-spacing:-.03em; line-height:1; color:var(--sage);
  margin:0; padding:0 }
.web-signup .prf-h{ font-weight:750; line-height:1; color:var(--sage); margin:0; padding:0 }
.web-signup .prf-b{ font-size:12.5px; line-height:1.5; color:var(--muted); margin:0;
  padding:11px var(--fpad) 0 }
/* Center the stat against multiline headings. Offset its side bearing to align the
   visible digit. */
/* Keep the visual beside the text so a supporting fact does not consume a full screen. */
.web-signup .prf-cols{ display:flex; align-items:center; gap:26px }
.web-signup .prf-txt{ flex:1 1 300px; min-width:0 }
.web-signup .prf-vizcol{ flex:0 1 150px; min-width:0 }
.web-signup .prf-vizcol .prf-viz, .web-signup .prf-vizcol .prf-figs{ padding:0 }

.web-signup .prf-head{ display:flex; align-items:center; flex-wrap:wrap; gap:0 14px; padding:0 var(--fpad) }
.web-signup .prf-head .prf-stat{ font-size:44px; margin:0 0 0 -3px; padding:0; flex:none;
  letter-spacing:-.045em; line-height:.95 }
/* Use a smaller size for stats written as words so they leave room for the claim. */
.web-signup .prf-head .prf-stat.is-word{ font-size:26px; letter-spacing:-.02em; line-height:1.05;
  margin-left:-1px; max-width:46% }
.web-signup .prf-head .prf-h{ margin:0; padding:0; flex:1 1 150px; min-width:0; font-size:20px;
  font-weight:750; letter-spacing:-.022em; line-height:1.08 }
.web-signup .prf-head .prf-h.is-mid{ font-size:17px; line-height:1.15 }
.web-signup .prf-head .prf-h.is-long{ font-size:15px; line-height:1.25 }
.web-signup .prail.is-quote{ opacity:1 }
.web-signup .prf-quote{ margin:11px 0 0; font-size:21px; font-weight:750;
  letter-spacing:-.02em; line-height:1.2; color:var(--brand) }
.web-signup .prail.is-quote .prf-b{ padding-top:9px }
@media(max-width:639px){
  /* Both bases have to be cleared: in column direction those px values become HEIGHTS. */
  .web-signup .prf-cols{ flex-direction:column; align-items:stretch; gap:14px }
  .web-signup .prf-txt, .web-signup .prf-vizcol{ flex:none; width:100% }
  .web-signup .prf-vizcol .prf-icon,
  .web-signup .prf-vizcol .prf-plate,
  .web-signup .prf-vizcol .prf-figs{
    width:100%;
    margin-inline:auto;
  }
  .web-signup .prf-head .prf-stat{ font-size:38px }
  .web-signup .prf-head .prf-h{ font-size:18px }
}
/* Make the entire citation footer clickable when the proof has a URL. */
.web-signup .prf-mark{ display:inline-block; vertical-align:-1px; margin-left:3px; color:var(--muted);
  transition:color .14s }
.web-signup .prf-mark svg{ height:12px; width:auto; display:block }
.web-signup .prf-mark:hover{ color:var(--brand) }
.web-signup .prf-mark:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; border-radius:2px }


@media(min-width:900px){
  /* On a dense screen the proof tightens its vertical rhythm rather than shedding content. */
  .web-signup .prail.tight .prf-b{ font-size:12.5px }
}

/* Every band caps at --maxw, so the wordmark, question, proof point and button
   share one centred column. */

.web-signup .prf-icon-cap{ margin-top:9px; text-align:center; font-family:var(--font-mono); font-size:9.5px;
  letter-spacing:.11em; text-transform:uppercase; font-weight:600; color:var(--brand) }

/* Proof figures use one semantic shape per claim: literal ratios, fixed-scale shares,
   measured comparison bars, schedules, or a card-specific icon. */
.web-signup .prf-figs{ display:grid; grid-template-columns:repeat(4, 1fr); gap:8px;
  align-items:end; justify-items:center; padding:2px var(--fpad); max-width:150px }
.web-signup .prf-figs.is-five{ grid-template-columns:repeat(5, 1fr) }
.web-signup .prf-figs .fig{ width:100%; max-width:26px; min-width:0; color:#c2d4da; display:block }
.web-signup .prf-figs .fig.on{ color:var(--brand) }
.web-signup .prf-figs svg{ width:100%; height:auto; display:block }
.web-signup .prf-viz{ padding:15px var(--fpad) 0; display:flex; flex-direction:column; gap:8px }
.web-signup .vz-row{ display:flex; align-items:center; gap:8px }
.web-signup .vz-lab{ flex:0 0 62px; font-size:10px; line-height:1.25; color:var(--muted) }
.web-signup .vz-bar{ flex:1 1 0; min-width:0; height:9px; border-radius:999px; background:var(--bg-alt) }
.web-signup .prf-viz.is-share .vz-bar{ position:relative }
.web-signup .prf-viz.is-share .vz-bar::after{ content:""; position:absolute; inset:0;
  border-radius:999px; pointer-events:none; background:repeating-linear-gradient(90deg,
    transparent 0 calc(25% - 1.5px), rgba(255,255,255,.75) calc(25% - 1.5px) 25%) }
.web-signup .vz-bar i{ display:block; height:100%; border-radius:999px; background:#cfdde1;
  transition:width .5s cubic-bezier(.4,0,.2,1) }
.web-signup .vz-row.is-on .vz-bar i{ background:var(--brand) }
.web-signup .vz-val{ flex:0 0 auto; min-width:34px; text-align:right; font-size:11px;
  font-weight:700; color:var(--muted); font-variant-numeric:tabular-nums }
.web-signup .vz-row.is-on .vz-val{ color:var(--ink) }
.web-signup .vz-cap{ font-size:10px; line-height:1.4; color:var(--muted); margin-top:1px }
.web-signup .prf-viz.is-steps{ gap:0 }
.web-signup .vz-step{ position:relative; padding:0 0 13px 17px }
.web-signup .vz-step::before{ content:""; position:absolute; left:0; top:3px; width:7px; height:7px;
  border-radius:50%; background:var(--sage) }
.web-signup .vz-step:first-of-type::before{ background:var(--brand) }
.web-signup .vz-step::after{ content:""; position:absolute; left:3px; top:11px; bottom:0; width:1px;
  background:var(--line) }
.web-signup .vz-step:has(+ .vz-cap){ padding-bottom:2px }
.web-signup .vz-step:has(+ .vz-cap)::after{ display:none }
.web-signup .vz-when{ display:block; font-size:9.5px; font-weight:700; letter-spacing:.09em;
  text-transform:uppercase; color:var(--brand); line-height:1 }
.web-signup .vz-what{ display:block; font-size:12px; line-height:1.4; color:var(--ink); margin-top:3px }
.web-signup .prf-viz.is-steps .vz-cap{ margin-top:9px }

.web-signup .prf-b b{ color:var(--ink); font-weight:650 }


/* Keep detailed publisher marks large enough for their smallest features to remain legible. */
.web-signup .prf-mark[data-h="14"] svg{ height:14px }
.web-signup .prf-mark[data-h="16"] svg{ height:16px }

/* Text-only publisher marks share the logo slot. A narrow gap limits wrap indentation. */
.web-signup .prf-mark-txt{ display:inline-block; vertical-align:baseline; margin-left:3px;
  font-family:var(--font-mono); font-size:9.5px; letter-spacing:.09em; text-transform:uppercase;
  font-weight:600; color:var(--muted); text-decoration:none; white-space:nowrap;
  border-bottom:1px solid var(--line); padding-bottom:1px; transition:color .14s }
.web-signup .prf-mark-txt:hover{ color:var(--brand); border-bottom-color:currentColor }
.web-signup .prf-mark-txt:focus-visible{ outline:2px solid var(--brand); outline-offset:3px }

/* A block disclosure keeps the publisher mark at the end of its paragraph. */
.web-signup .prf-cav{ display:block; margin-top:6px; font-size:10.5px; line-height:1.4; color:var(--muted) }

/* Custom icons share the pictogram's 150px ceiling, so a drawing and a chart occupy the same
   column footprint. */
.web-signup .prf-plate, .web-signup .prf-icon{ max-width:150px }
.web-signup .prf-plate svg, .web-signup .prf-icon svg{ width:100%; height:auto; display:block }

.web-signup .st-why{background:var(--bg); border-radius:var(--r); padding:15px 17px; margin:0 0 26px}
.web-signup .st-why b{display:block; font-weight:650; font-size:15px; margin:0 0 3px}
.web-signup .st-why span{color:var(--muted); font-size:14px; line-height:1.5}
.web-signup .st-sh{font-weight:700; font-size:16px; letter-spacing:-.01em; margin:0 0 10px}
.web-signup .st-price{margin:0 0 26px}
.web-signup .st-price .prow{display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:11px 0; border-bottom:1px solid var(--line)}
.web-signup .st-price .l{font-size:14.5px; color:var(--muted)}
.web-signup .st-price .v{font-size:15px; font-weight:600; font-variant-numeric:tabular-nums}
.web-signup .st-price .v s{color:var(--muted); font-weight:500}
.web-signup .st-price .tot{border-bottom:0; padding-top:15px}
.web-signup .st-price .tot .l{font-size:16.5px; font-weight:700; color:var(--ink)}
.web-signup .st-price .tot .v{font-size:27px; font-weight:750; letter-spacing:-.02em}
.web-signup .st-price .pnote{color:var(--muted); font-size:12.5px; margin:2px 0 0}
.web-signup .st-coupon{margin-top:14px; padding-top:14px; border-top:1px solid var(--line)}
.web-signup .st-coupon-disclosure summary{display:inline-flex; align-items:center; gap:7px;
  list-style:none; color:var(--brand); font-size:13.5px; font-weight:650; cursor:pointer}
.web-signup .st-coupon-disclosure summary::-webkit-details-marker{display:none}
.web-signup .st-coupon-disclosure summary::after{content:"+"; font-size:17px; font-weight:500; line-height:1}
.web-signup .st-coupon-disclosure[open] summary::after{content:"\2212"}
.web-signup .st-coupon-form{display:flex; align-items:stretch; gap:9px; margin-top:10px}
.web-signup .st-coupon-form input{flex:1 1 auto; min-width:0; min-height:44px;
  text-transform:uppercase; font-family:var(--font-mono); font-size:13.5px; letter-spacing:.06em}
.web-signup .st-coupon-form .btn{flex:0 0 auto; min-height:44px; padding-inline:18px}
.web-signup .st-coupon-applied{display:flex; align-items:center; justify-content:space-between; gap:12px;
  border:1px solid var(--sage); border-radius:10px; padding:10px 12px; background:var(--brand-soft);
  color:var(--ink); font-size:13px}
.web-signup .st-coupon-applied strong{font-family:var(--font-mono); font-size:12px; letter-spacing:.04em}
.web-signup .st-coupon-applied button{flex:none; border:0; padding:4px 0; background:transparent;
  color:var(--brand); font-size:13px; font-weight:650; text-decoration:underline; text-underline-offset:2px}
.web-signup .st-coupon .err{margin:8px 0 0}
.web-signup .st-steps{margin:0 0 20px}
.web-signup .st-step{display:flex; gap:14px; align-items:flex-start; padding:12px 0}
.web-signup .st-step + .st-step{border-top:1px solid var(--line)}
.web-signup .st-step .step-n{flex:none; width:19px; font-family:var(--font-mono); font-size:13px; font-weight:600;
  color:var(--muted); padding-top:1px}
.web-signup .st-step .step-b{flex:1; min-width:0}
.web-signup .st-step .step-t{font-weight:650; font-size:15px; line-height:1.3}
.web-signup .st-step .step-s{color:var(--muted); font-size:13.5px; line-height:1.45; margin-top:3px}
.web-signup .st-step .step-m{flex:none; font-size:12.5px; color:var(--muted); padding-top:2px;
  white-space:nowrap}
.web-signup .st-note{display:flex; gap:8px; align-items:center; color:var(--muted); font-size:13.5px;
  margin:0 0 14px}
.web-signup .st-note svg{flex:none; width:15px; height:15px; color:var(--sage)}

/* Server-rendered radio and checkbox state comes from :checked rather than data-on. */
.web-signup .choice:has(input:checked){border-color:var(--brand); background:var(--brand-soft)}
.web-signup .choice:has(input:checked) .box{border-color:var(--brand); background:var(--brand)}
.web-signup .choice:has(input:checked) .box::after{content:"";width:9px;height:9px;border-radius:50%;background:#fff}
.web-signup .choice.multi:has(input:checked) .box::after{border-radius:1px;width:10px;height:6px;background:none;
  border:2px solid #fff; border-top:0; border-right:0; transform:rotate(-45deg) translate(1px,-2px)}
.web-signup .choice:has(input:checked) .knum{background:var(--brand); border-color:var(--brand); color:#fff}
.web-signup .choice:focus-within{border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-soft)}

.web-signup .sc-intro{margin:0 0 18px}
.web-signup .sc-list{display:grid; gap:10px}
.web-signup .sc-card{padding:16px}
.web-signup .sc-card-row{display:flex; gap:10px}
.web-signup .sc-num{flex:none; padding-top:2px; color:var(--sage); font-family:var(--font-mono);
  font-size:13px; font-weight:800}
.web-signup .sc-card-body{flex:1; min-width:0}
.web-signup .sc-title{font-family:var(--font-sans); font-size:15.5px; font-weight:600;
  line-height:1.4; letter-spacing:0; margin:0}
.web-signup .sc-why{margin:6px 0 0}
.web-signup .sc-q{border:0; padding:0; margin:12px 0 0; min-width:0}
.web-signup .sc-yn{display:flex; justify-content:flex-end; gap:9px}
.web-signup .sc-opt{position:relative; display:inline-flex; align-items:center; min-width:70px;
  justify-content:center; padding:9px 15px; border:1px solid var(--line); border-radius:10px;
  background:var(--paper); color:var(--ink); cursor:pointer; font-size:14px; font-weight:600}
.web-signup .sc-opt:hover{border-color:var(--sage); background:var(--brand-soft)}
.web-signup .sc-opt input{position:absolute; opacity:0; pointer-events:none}
.web-signup .sc-opt:has(input:checked){background:var(--brand); border-color:var(--brand); color:#fff}
.web-signup .sc-opt[data-on="1"]{background:var(--brand); border-color:var(--brand); color:#fff}
.web-signup .sc-opt:focus-within{outline:2px solid var(--brand); outline-offset:2px}

.web-signup .vd-prog{margin:0 0 18px}
.web-signup .qbox:has(.vd-prog) > .qh{white-space:pre-line}
.web-signup .vd-prog-lab{font-family:var(--font-mono); font-size:11px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:8px}
.web-signup .vd-bar{height:8px; border-radius:999px; background:var(--bg-alt); overflow:hidden}
.web-signup .vd-bar i{display:block; height:100%; border-radius:999px;
  background:linear-gradient(90deg,var(--brand),var(--sage))}
.web-signup .vd-goal{display:flex; align-items:center; gap:16px; padding:18px}
.web-signup .vd-goal-ico{flex:0 0 58px; width:58px; height:58px; border-radius:50%;
  background:var(--brand-soft); display:grid; place-items:center; color:var(--brand)}
.web-signup .vd-goal-ico svg{width:30px; height:30px}
.web-signup .vd-goal-body{flex:1; min-width:0}
.web-signup .vd-goal-label{margin:0 0 4px}
.web-signup .vd-nums{font-size:26px; font-weight:800; letter-spacing:-.02em; color:var(--ink);
  line-height:1.15; font-variant-numeric:tabular-nums}
.web-signup .vd-nums b{font-weight:800}
.web-signup .vd-arrow{color:var(--sage); margin:0 4px}
.web-signup .vd-togo{font-size:13px; color:var(--muted); margin-top:3px}
.web-signup .vd-left-label{margin:22px 0 10px}
.web-signup .nx-row{display:flex; align-items:center; gap:13px; padding:13px 2px;
  border-bottom:1px solid var(--line)}
.web-signup .nx-row:last-child{border-bottom:0}
.web-signup .nx-ico{flex:0 0 38px; width:38px; height:38px; border-radius:11px;
  background:var(--brand-soft); display:grid; place-items:center; color:var(--brand)}
.web-signup .nx-ico svg{width:20px; height:20px}
.web-signup .nx-body{flex:1; min-width:0; display:block}
.web-signup .nx-t{display:block; font-size:14.5px; font-weight:650; color:var(--ink)}
.web-signup .nx-s{display:block; font-size:12.5px; color:var(--muted); line-height:1.4; margin-top:2px}
.web-signup .nx-go{flex:0 0 auto; color:var(--sage); font-size:22px; line-height:1}
@media(max-width:639px){
  .web-signup .vd-goal{gap:13px; padding:15px}
  .web-signup .vd-goal-ico{flex:0 0 48px; width:48px; height:48px}
  .web-signup .vd-goal-ico svg{width:25px; height:25px}
  .web-signup .vd-nums{font-size:22px}
}

/* This flow omits public/css/style.css. Style the injected consent band with signup tokens. */
.web-signup .consent-band{position:fixed; left:0; right:0; bottom:0; z-index:60; background:var(--paper);
  border-top:1px solid var(--line); padding:14px 20px calc(14px + env(safe-area-inset-bottom))}
.web-signup .consent-band__inner{display:flex; align-items:center; justify-content:space-between; gap:18px;
  max-width:var(--maxw); margin:0 auto}
.web-signup .consent-band__copy{flex:1 1 auto; margin:0; color:var(--muted); font-size:12.5px; line-height:1.5}
.web-signup .consent-band__copy a{color:var(--brand)}
.web-signup .consent-band__actions{display:flex; align-items:center; gap:10px; flex:0 0 auto}
.web-signup .consent-band .button{border-radius:999px; border:1px solid var(--line); background:var(--paper);
  color:var(--ink); font:inherit; font-size:13px; font-weight:600; padding:8px 16px; cursor:pointer}
.web-signup .consent-band .button--primary{background:var(--brand); border-color:var(--brand); color:var(--brand-ink)}
/* The band overlays the action bar, so lift the bar clear of it while it is showing. */
.web-signup .botbar{bottom:var(--consent-band-h,0px)}
@media (max-width:560px){
  .web-signup .consent-band__inner{flex-direction:column; align-items:stretch; gap:10px}
  .web-signup .consent-band__actions{justify-content:flex-end}
}

.web-signup .drop{display:flex; flex-direction:column; align-items:center; gap:5px; cursor:pointer;
  padding:32px 20px; border:2px dashed var(--line); border-radius:var(--r);
  background:var(--paper); color:var(--muted); text-align:center;
  transition:border-color .15s, background .15s, color .15s}
.web-signup .drop:hover,.web-signup .drop[data-over="1"]{border-color:var(--sage);
  background:var(--brand-soft); color:var(--brand)}
.web-signup .drop:focus-visible{outline:2px solid var(--brand); outline-offset:2px}
.web-signup .drop svg{width:30px; height:30px; margin-bottom:3px}
.web-signup .drop-t{font-size:15.5px; font-weight:650; color:var(--ink)}
.web-signup .drop:hover .drop-t,.web-signup .drop[data-over="1"] .drop-t{color:var(--brand)}
.web-signup .drop-s{font-size:13px}
.web-signup .drop-s u{color:var(--brand); font-weight:600; text-underline-offset:2px}
.web-signup .drop-file{max-width:100%; overflow-wrap:anywhere; font-size:12px; color:var(--brand)}
.web-signup .drop-file[hidden]{display:none}
.web-signup .id-file-input{position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0}
.web-signup .id-processing{position:relative; min-height:178px; overflow:hidden; display:grid;
  place-items:center; padding:17px 20px 14px; border:1.5px solid var(--line); border-radius:var(--r);
  background:linear-gradient(180deg,#f8fbfc 0%,var(--bg) 100%)}
.web-signup .id-processing[hidden]{display:none}
.web-signup .id-processing::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 50% 42%,rgba(131,197,190,.18),transparent 55%)}
.web-signup .id-document{position:relative; width:194px; height:104px; overflow:hidden;
  border:1px solid #b9d1d6; border-radius:12px; background:var(--paper);
  box-shadow:0 7px 18px rgba(0,67,74,.08)}
.web-signup .id-document-head{height:18px; background:var(--brand-soft); border-bottom:1px solid #c9dfe3}
.web-signup .id-document-body{display:flex; gap:12px; padding:12px}
.web-signup .id-document-photo{position:relative; flex:0 0 48px; height:59px; overflow:hidden;
  border-radius:8px; background:#e6f0f2}
.web-signup .id-document-photo::before{content:""; position:absolute; top:10px; left:15px;
  width:18px; height:18px; border-radius:50%; background:#9abdc1}
.web-signup .id-document-photo::after{content:""; position:absolute; left:8px; bottom:-8px;
  width:32px; height:32px; border-radius:50% 50% 0 0; background:#9abdc1}
.web-signup .id-document-lines{flex:1; padding-top:3px}
.web-signup .id-document-lines i{display:block; height:5px; margin-bottom:8px; border-radius:999px;
  background:#d7e5e8}
.web-signup .id-document-lines i:nth-child(1){width:86%; background:#a7c8cc}
.web-signup .id-document-lines i:nth-child(2){width:64%}
.web-signup .id-document-lines i:nth-child(3){width:93%}
.web-signup .id-document-lines i:nth-child(4){width:72%}
.web-signup .id-scan-beam{position:absolute; z-index:2; left:0; right:0; top:22%; height:3px;
  background:var(--brand); box-shadow:0 0 0 1px rgba(131,197,190,.18),0 0 13px 4px rgba(0,109,119,.28);
  animation:id-scan-beam 1.8s ease-in-out infinite alternate}
.web-signup .id-scan-beam::before{content:""; position:absolute; inset:-13px 0 3px;
  background:linear-gradient(180deg,transparent,rgba(131,197,190,.13))}
.web-signup .id-scan-status{position:relative; display:flex; align-items:center; justify-content:center;
  gap:8px; margin-top:9px; color:var(--ink); font-size:13px; font-weight:650}
.web-signup .id-scan-pulse{position:relative; width:8px; height:8px; border-radius:50%;
  background:var(--brand); box-shadow:0 0 0 4px rgba(0,109,119,.12);
  animation:id-scan-pulse 1.2s ease-in-out infinite alternate}
.web-signup .id-processing[data-complete="true"] .id-scan-beam{display:none}
.web-signup .id-processing[data-complete="true"] .id-scan-pulse{width:18px; height:18px;
  box-shadow:none; animation:none}
.web-signup .id-processing[data-complete="true"] .id-scan-pulse::after{content:""; position:absolute;
  left:5px; top:3px; width:6px; height:9px; border:2px solid #fff; border-top:0; border-left:0;
  transform:rotate(45deg)}
.web-signup .id-benefits{margin-top:16px}
.web-signup .id-benefits .t{margin-bottom:12px}
.web-signup .id-benefits .feats{padding-left:0}
.web-signup .id-benefit{min-width:0; padding:5px 7px; border-radius:9px;
  transition:color .25s ease,background .25s ease,opacity .25s ease,box-shadow .25s ease}
.web-signup .id-benefit > span:last-child{min-width:0}
.web-signup .id-benefit-icon{flex:0 0 21px; width:21px; height:21px; display:grid; place-items:center;
  border-radius:50%; color:var(--brand)}
.web-signup .id-benefit-icon .kit-icon{width:21px; height:21px}
.web-signup .id-benefit[data-progress-state="pending"]{color:var(--muted); opacity:.52}
.web-signup .id-benefit[data-progress-state="pending"] .id-benefit-icon{border:1.5px solid #a6bdc1}
.web-signup .id-benefit[data-progress-state="pending"] .kit-icon,
.web-signup .id-benefit[data-progress-state="active"] .kit-icon{display:none}
.web-signup .id-benefit[data-progress-state="active"]{color:var(--ink); background:rgba(255,255,255,.8);
  box-shadow:0 0 0 1px rgba(131,197,190,.55); font-weight:650}
.web-signup .id-benefit[data-progress-state="active"] .id-benefit-icon{border:2px solid rgba(0,109,119,.22);
  border-top-color:var(--brand); animation:id-benefit-spin .8s linear infinite}
.web-signup .id-benefit[data-progress-state="complete"]{color:var(--ink)}
.web-signup .id-benefit[data-progress-state="complete"] .id-benefit-icon{background:var(--brand); color:#fff}
.web-signup .id-benefit[data-progress-state="complete"] .kit-icon{width:14px; height:14px; color:#fff; stroke-width:2.5}
.web-signup .id-benefit[data-progress-state="complete"] circle{display:none}
.web-signup .id-progress-note{display:flex; align-items:center; justify-content:center; gap:7px;
  margin:14px 0 0; color:var(--muted); font-size:12.5px}
.web-signup .id-progress-note[hidden]{display:none}
.web-signup .id-progress-note svg{width:14px; height:14px; flex:none; color:var(--brand)}
.web-signup .id-picker-action{display:flex; align-items:center; justify-content:center; margin:0;
  min-height:56px; font-size:17px; cursor:pointer}
.web-signup .id-disclosure{margin:12px 0 0}
.web-signup .id-upload-status{min-height:1.5em; margin:10px 0 0; color:var(--muted); font-size:13px}
.web-signup .id-upload-status.is-visually-hidden{position:absolute; width:1px; height:1px; min-height:0;
  margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap}
.web-signup .wrap.has-bar:has([data-id-upload-busy="true"]){padding-bottom:40px}

@keyframes id-scan-beam{from{top:22%}to{top:76%}}
@keyframes id-scan-pulse{from{opacity:.65}to{opacity:1}}
@keyframes id-benefit-spin{to{transform:rotate(360deg)}}

@media(max-width:359px){
  .web-signup .id-benefits .feats{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .web-signup .id-scan-beam,.web-signup .id-scan-pulse,
  .web-signup .id-benefit[data-progress-state="active"] .id-benefit-icon{animation:none}
  .web-signup .id-benefit{transition:none}
  .web-signup .id-scan-beam{top:50%}
}

.web-signup .alert{display:flex; gap:13px; align-items:flex-start; background:#fdf2f2;
  border:1px solid #f0d6d6; border-radius:12px; padding:15px 16px}
.web-signup .alert-ico{flex:none; width:26px; height:26px; border-radius:50%; border:2px solid #c0504f;
  display:grid; place-items:center; color:#c0504f; margin-top:1px}
.web-signup .alert-ico svg{width:13px; height:13px}
.web-signup .alert b{display:block; font-size:14.5px; color:#a33f3e; margin-bottom:4px}
.web-signup .alert span{display:block; font-size:13.5px; color:#7d3a3a; line-height:1.5}
.web-signup .okrow{display:flex; gap:13px; align-items:flex-start; margin-top:16px}
.web-signup .okrow-ico{flex:none; width:26px; height:26px; border-radius:50%; border:2px solid var(--ink);
  display:grid; place-items:center; color:var(--ink); margin-top:1px}
.web-signup .okrow-ico svg{width:13px; height:13px}
.web-signup .okrow div{font-size:14.5px; line-height:1.5; color:var(--ink)}
.web-signup .okrow div span{display:block; color:var(--muted)}
.web-signup .tm-contact{display:flex; align-items:center; gap:11px; color:var(--ink)}
.web-signup .tm-contact svg{width:20px; height:20px; flex:none; color:var(--ink)}
.web-signup .tm-contact span{font-size:13.5px; line-height:1.4}
.web-signup .tm-contact b{font-weight:650}
.web-signup .id-attempt-count{margin:16px 0 10px}
.web-signup .id-type-instead{margin-top:10px}
.web-signup .id-type-instead + form{margin-top:10px}
.web-signup .id-support-copy{font-size:16px; font-weight:650; margin:16px 0 0}
.web-signup .id-support-card{margin-top:20px; padding:15px 16px}

.web-signup .prov{display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase; color:var(--brand); background:var(--brand-soft);
  border-radius:999px; padding:3px 8px; margin-left:8px; vertical-align:middle}
.web-signup .prov.edited{color:#7a5c22; background:#f5ead6}
.web-signup .confirm-height{min-width:0; margin:0; padding:0; border:0}
.web-signup .confirm-height legend{width:100%; margin-bottom:6px; font-size:13.5px;
  font-weight:600; color:var(--muted)}
.web-signup .height-fields{display:flex; align-items:center; gap:8px}
.web-signup .height-fields input{flex:1 1 0; min-width:0}
.web-signup .confirm-note,.web-signup .confirm-error{margin-top:14px}
.web-signup .warn{background:#fbf1f1; border:1px solid #e3c7c7; border-radius:11px;
  padding:14px 15px; font-size:14px; color:#7d3a3a; line-height:1.5}

.web-signup .bmi-value{display:block; margin:12px 0 4px; color:var(--ink);
  font-size:50px; font-weight:800; letter-spacing:-.03em; line-height:1}
.web-signup .bmipill{display:inline-block; background:#f5ead6; color:#7a5c22;
  border:1px solid #e2cfa8; font-size:11px; font-weight:800; letter-spacing:.1em;
  padding:4px 9px; border-radius:999px}
.web-signup .gauge{margin:8px 0 4px}
.web-signup .gtrack{height:11px; border-radius:999px;
  background:linear-gradient(90deg,#dfe9ec 0%,#dfe9ec 22%,var(--sage) 22%,var(--sage) 85%,#e8d7d7 85%);
  position:relative}
.web-signup .gthumb{position:absolute; top:50%; width:20px; height:20px; border-radius:50%;
  background:var(--ink); border:3px solid #fff; box-shadow:0 1px 5px rgba(0,0,0,.28);
  transform:translate(-50%,-50%); transition:left .6s cubic-bezier(.4,0,.2,1)}
.web-signup .gscale{display:flex; justify-content:space-between; margin-top:7px;
  color:var(--muted); font-size:11px}
.web-signup .bmi-range{margin:16px 0 0; font-size:16px}
.web-signup .bmi-detail{margin:10px 0 0; color:var(--muted); font-size:14.5px}
.web-signup .microbox{margin-top:14px; padding-top:14px; border-top:1px solid var(--line)}
.web-signup .microbox[hidden]{display:none}
.web-signup .microbox-h{margin-bottom:7px; color:var(--brand); font-size:10.5px;
  font-weight:800; letter-spacing:.1em; text-transform:uppercase}
.web-signup .microbox-b{color:var(--muted); font-size:13.5px; line-height:1.55}
.web-signup .projection-card{margin-top:14px}
.web-signup .projection-card[hidden]{display:none}
.web-signup .trial-pill{background:#e2f2ea; color:#166b4a; border-color:#bfe0d0}
.web-signup .projection-lead{margin:12px 0 2px; color:var(--muted); font-size:15px}
.web-signup .projection-weight{overflow-wrap:anywhere; margin:2px 0; font-size:38px;
  font-weight:800; letter-spacing:-.03em; line-height:1.05}
.web-signup .projection-detail{margin:0 0 12px; color:var(--muted); font-size:15px}
.web-signup .projchart{display:block; width:100%; height:auto; overflow:visible}
.web-signup .projx{display:flex; justify-content:space-between; margin-top:6px;
  color:var(--muted); font-size:11px}
.web-signup .srcline{margin:12px 0 0; padding-top:10px; border-top:1px solid var(--line);
  color:var(--muted); font-size:11px; line-height:1.45}
.web-signup .bmi-disclosure{margin:14px 0 0}

@media(max-width:420px){
  .web-signup .projection-weight{font-size:32px}
}

@media(max-width:639px){
  .web-signup:has(.web-async-photo-form) main{padding-bottom:104px}
  .web-signup .web-async-photo-form{position:fixed; z-index:45; right:0; bottom:0; left:0;
    margin:0; padding:12px 18px max(12px,env(safe-area-inset-bottom)); border-top:1px solid var(--line);
    background:rgba(255,255,255,.96); box-shadow:0 -8px 24px rgba(0,67,74,.08); backdrop-filter:blur(10px)}
  .web-signup .web-async-photo-form .cmpl-btn{max-width:524px; margin:0 auto}
}

.web-signup-terminal{background:var(--bg)}
.web-signup-terminal main{justify-content:flex-start; padding-top:clamp(32px,7vh,76px)}

/* Keep the booking confirmation within the flow's usual header and question column. */
.web-signup.web-signup-booked-terminal main{padding-top:0}
.web-signup.web-signup-booked-terminal main > .w-full{width:100%; max-width:540px; padding:22px 18px 40px}
.web-signup .booked-terminal .tm-badge{display:grid; width:64px; height:64px; margin:0 auto 18px;
  place-items:center; border-radius:50%; background:var(--brand); color:#fff}
.web-signup .booked-terminal .tm-badge svg{width:30px; height:30px}
.web-signup .booked-terminal .tm-h{margin:0 0 8px; color:var(--ink); text-align:center;
  font-family:var(--font-sans); font-size:32px; font-weight:750; letter-spacing:-.03em;
  line-height:1.1; text-wrap:balance}
.web-signup .booked-terminal .tm-sub{margin:0 0 22px; color:var(--muted); text-align:center;
  font-size:15px; line-height:1.5}
.web-signup .booked-terminal .irow{display:flex; align-items:flex-start; gap:13px}
.web-signup .booked-terminal .irow + .irow{margin-top:15px}
.web-signup .booked-terminal .irow-ico{display:grid; width:32px; height:32px; flex:none;
  place-items:center; border-radius:9px; background:var(--brand-soft); color:var(--brand)}
.web-signup .booked-terminal .irow-ico svg{width:16px; height:16px}
.web-signup .booked-terminal .irow-t{display:block; color:var(--ink); font-size:14.5px;
  font-weight:650; line-height:1.3}
.web-signup .booked-terminal .irow-s{margin-top:2px; color:var(--muted); font-size:13px; line-height:1.45}
.web-signup .booked-terminal .booked-next-card{margin-top:12px}
.web-signup .booked-terminal .booked-next-heading{margin:0 0 14px}
.web-signup .booked-terminal .btnrow{display:flex; gap:10px; margin-top:16px}
.web-signup .booked-terminal .btnrow .btn{margin:0}
.web-signup .booked-terminal .btn svg{width:16px; height:16px; flex:none}
.web-signup .booked-terminal .booked-dashboard-action{margin-top:10px}
.web-signup .booked-terminal .tm-foot{display:flex; align-items:center; justify-content:center;
  gap:7px; margin:16px 0 0; color:var(--muted); font-size:12.5px}
.web-signup .booked-terminal .tm-foot svg{width:14px; height:14px; flex:none; color:var(--sage)}

.web-signup .care-terminal{width:100%; border:1px solid var(--line); border-radius:18px;
  background:var(--paper); padding:clamp(24px,5vw,40px); color:var(--ink); box-shadow:0 18px 48px rgba(0,67,74,.08)}
.web-signup .care-terminal-seal{display:grid; width:72px; height:72px; margin:0 auto 20px;
  place-items:center; border:1px solid var(--sage); border-radius:50%; background:var(--brand-soft)}
.web-signup .care-terminal-seal svg{width:44px; height:44px; fill:none; stroke:var(--brand);
  stroke-width:3; stroke-linecap:round; stroke-linejoin:round}
.web-signup .care-terminal-kicker{margin:0 0 8px; color:var(--brand); text-align:center;
  font-family:var(--font-mono); font-size:11px; font-weight:750; letter-spacing:.1em; text-transform:uppercase}
.web-signup .care-terminal h1{margin:0; text-align:center; font-family:var(--font-display);
  font-size:clamp(34px,7vw,46px); font-weight:600; letter-spacing:-.025em; line-height:1.05}
.web-signup .care-terminal-doctor{margin:18px 0 0; text-align:center; font-size:18px; font-weight:750}
.web-signup .care-terminal-time,.web-signup .care-terminal-summary{max-width:36ch; margin:7px auto 0;
  color:var(--muted); text-align:center; font-size:15px; line-height:1.55}
.web-signup .care-terminal-steps{display:grid; gap:1px; margin:28px 0 0; overflow:hidden;
  border:1px solid var(--line); border-radius:13px; background:var(--line)}
.web-signup .care-terminal-steps article{background:var(--paper); padding:16px 18px}
.web-signup .care-terminal-steps h2{margin:0 0 4px; font-size:14px; font-weight:750}
.web-signup .care-terminal-steps p{margin:0; color:var(--muted); font-size:13px; line-height:1.5}
.web-signup .care-terminal-actions{display:grid; gap:10px; margin-top:22px}
.web-signup .care-terminal-primary,.web-signup .care-terminal-secondary{display:flex; min-height:48px;
  align-items:center; justify-content:center; border-radius:10px; padding:11px 16px; text-align:center;
  font-size:14px; font-weight:750; text-decoration:none}
.web-signup .care-terminal-primary{border:1px solid var(--brand); background:var(--brand); color:#fff}
.web-signup .care-terminal-secondary{border:1px solid var(--line); background:var(--paper); color:var(--ink)}
.web-signup .care-terminal-primary:focus-visible,.web-signup .care-terminal-secondary:focus-visible{
  outline:3px solid var(--sage); outline-offset:2px}
@media(min-width:560px){
  .web-signup .care-terminal-actions{grid-template-columns:1fr 1fr}
  .web-signup .care-terminal-actions .care-terminal-primary{grid-column:1 / -1}
}

/* ---------- patient chat: a small launcher in the corner, side panel (>= 900px), bottom sheet below ----------
   The form is the spine; the chat is a helper the patient opens. The launcher is one round
   button that sits clear of the bottom bar and offers itself once with a short hint, so a
   patient who never needs it sees one quiet icon rather than another bar. It never covers
   the question: the side panel pushes the page over, and the sheet leaves the top of the
   screen, with room added below the form so every field can scroll clear of it. */
.web-signup .chat-status,.web-signup .chat-pill-label{position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.web-signup .chat-pill{position:fixed; z-index:46; right:max(16px, env(safe-area-inset-right));
  bottom:calc(var(--signup-botbar-h,0px) + var(--consent-band-h,0px) + 14px);
  display:grid; place-items:center; width:56px; height:56px; padding:0;
  color:#fff; background:var(--brand); border:0; border-radius:50%; cursor:pointer;
  box-shadow:0 6px 18px -6px rgba(0,67,74,.45);
  transition:background var(--dur-fast,120ms) ease, transform 80ms ease}
.web-signup .chat-pill:hover{background:#005861}
.web-signup .chat-pill:active{transform:translateY(1px)}
.web-signup .chat-pill:focus-visible{outline:2px solid var(--brand); outline-offset:3px; border-radius:50%}
.web-signup .chat-pill svg{width:24px; height:24px; flex:none}
.web-signup.signup-chat-open .chat-pill{display:none}
/* The hint: a speech label beside the launcher, once per tab. Decorative (the button carries
   the name); a tap on it opens the chat like the button does. */
.web-signup .chat-hint{position:fixed; z-index:46; right:calc(max(16px, env(safe-area-inset-right)) + 68px);
  bottom:calc(var(--signup-botbar-h,0px) + var(--consent-band-h,0px) + 26px);
  margin:0; padding:8px 14px; max-width:calc(100vw - 104px);
  font-size:15px; font-weight:600; line-height:1.3; color:var(--ink); background:var(--paper);
  border:1px solid var(--line); border-radius:12px; cursor:pointer;
  box-shadow:0 6px 18px -10px rgba(0,67,74,.4)}
/* A nudge's own words: a short offer of help, at most three lines. The clamp sits on the
   text, so the hint's padding never shows a fourth. */
.web-signup .chat-hint.nudge{max-width:min(300px, calc(100vw - 104px)); font-weight:500}
.web-signup .chat-hint.nudge > span{display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical;
  overflow:hidden}
.web-signup .chat-hint[hidden]{display:none}
.web-signup.signup-chat-open .chat-hint{display:none}
@media (prefers-reduced-motion:no-preference){
  .web-signup .chat-hint:not([hidden]){animation:web-signup-chat-hint .32s cubic-bezier(0.16,1,0.3,1) both}
}
@keyframes web-signup-chat-hint{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none}}
/* Clearance so the launcher never sits over the last field. */
.web-signup:has(.chat-pill) .wrap.has-bar{padding-bottom:calc(var(--signup-botbar-h,124px) + 88px + var(--consent-band-h,0px))}
/* The document's scroll-padding-bottom (launcher and sheet clearance) is set by
   signup_chat_controller.js: this sheet can't anchor a rule on <html>. */

.web-signup .chat-panel{position:fixed; z-index:60; display:flex; flex-direction:column;
  box-sizing:border-box; padding-bottom:env(safe-area-inset-bottom); background:var(--paper); color:var(--ink)}
.web-signup .chat-panel[hidden]{display:none}
/* A fixed height, so the header lines up the same whatever the title holds. */
.web-signup .chat-head{box-sizing:border-box; display:flex; align-items:center; gap:8px; height:71px;
  padding:0 8px 0 18px; border-bottom:1px solid var(--line)}
.web-signup .chat-title{flex:1 1 auto; min-width:0; margin:0; font-size:18px; font-weight:700; letter-spacing:-.01em; line-height:1.25; color:var(--ink)}
.web-signup .chat-close{flex:none; display:grid; place-items:center; width:44px; height:44px;
  padding:0; color:var(--ink); background:none; border:0; border-radius:10px; cursor:pointer}
.web-signup .chat-close:hover{background:var(--brand-soft)}
.web-signup .chat-close svg{width:20px; height:20px}
.web-signup .chat-offer{display:flex; flex-direction:column; align-items:flex-start; gap:14px; padding:20px 18px}
.web-signup .chat-offer p{margin:0; font-size:15px; line-height:1.45; color:var(--ink)}
.web-signup .chat-mount{position:relative; flex:1 1 auto; min-height:0; display:flex; flex-direction:column}
.web-signup .chat-mount > *{flex:1 1 auto; min-height:0}

@media (min-width:900px){
  .web-signup .chat-panel{top:0; right:0; bottom:0; width:372px; border-left:1px solid var(--line)}
  .web-signup.signup-chat-open #app{margin-right:372px}
  .web-signup.signup-chat-open .botbar{right:372px}
}
@media (max-width:899px){
  .web-signup .chat-panel{left:0; right:0; bottom:0; height:70vh; height:70dvh;
    border:1px solid var(--line); border-bottom:0; border-radius:16px 16px 0 0;
    box-shadow:0 -12px 32px -12px rgba(0,67,74,.3)}
  .web-signup.signup-chat-open .wrap.has-bar,
  .web-signup.signup-chat-open .wrap{padding-bottom:calc(70vh + 24px); padding-bottom:calc(70dvh + 24px)}
}
@media (max-width:899px) and (prefers-reduced-motion:no-preference){
  .web-signup .chat-panel:not([hidden]){animation:web-signup-chat-sheet .18s ease-out}
}
@keyframes web-signup-chat-sheet{from{transform:translateY(24px); opacity:.6} to{transform:none; opacity:1}}

/* ---------- draft-and-check: answers the chat filled in ----------
   Like browser autofill: a tinted field with a 3px brand rule on its leading edge (a box
   shadow, so no width changes) and a "Filled from chat" chip. Editing the field drops the
   tint and flips the chip.

   A draft landing must not move the page, so while the chat is on the page (the form carries
   its schema) every draftable field has the chip's room from first paint:
   - field labels reserve an empty right-hand slot as tall as the chip, and the label text
     wraps in the width that is left, before and after a draft alike;
   - option rows, safety cards, the blood-pressure card and the free-text answer carry the
     chip as a tab on their top border, over space that is already there.
   Opening a chip to read its source line is the patient's own action and may grow the row. */
.web-signup{--draft-chip-w:136px; --draft-chip-h:24px}
.web-signup input[data-signup-draft="drafted"],
.web-signup textarea[data-signup-draft="drafted"],
.web-signup select[data-signup-draft="drafted"]{
  /* The stripe is the left border, not an inset shadow: Chromium anti-aliases an inset
     shadow on a rounded box differently between CI runners. The padding gives back the
     border's extra 2px, so the text does not move. */
  background:#eef6f7; border-left:3px solid var(--brand); padding-left:11px}
.web-signup .choice:has(> input[data-signup-draft="drafted"]),
.web-signup .choice[data-signup-draft="drafted"]{box-shadow:inset 3px 0 0 var(--brand); background:var(--brand-soft)}
.web-signup .sc-card:has(input[data-signup-draft="drafted"]){box-shadow:inset 3px 0 0 var(--brand)}

.web-signup form[data-signup-draftable] label.fld > span:first-child:not(.hint):not(.err){position:relative;
  min-height:var(--draft-chip-h); padding-right:var(--draft-chip-w)}
.web-signup [data-signup-draft-host]{position:relative}
.web-signup [data-signup-draft-chip]:not([open]){position:absolute; right:0; top:-3px; margin:0;
  max-width:var(--draft-chip-w); white-space:nowrap}
.web-signup [data-signup-draft-host] > [data-signup-draft-chip]:not([open]){
  top:calc(var(--draft-chip-h) / -2); right:12px; z-index:1; box-shadow:0 0 0 1px var(--brand)}
/* A tab sits on the host's border, so it is white whatever the host's own fill. */
.web-signup [data-signup-draft-host] > .prov.drafted{background:var(--paper)}
.web-signup details[data-signup-draft-chip][open]{margin-left:0}
/* An opened source line may use the label's reserved slot too. */
.web-signup label.fld > span > details[open]{max-width:calc(100% + var(--draft-chip-w))}
.web-signup .choice:has(> details[open]){flex-wrap:wrap}
.web-signup .choice > details[open]{flex-basis:100%}
/* Sentence case at 12px: these chips are read, not scanned, by patients of every age. */
.web-signup .prov.drafted,.web-signup [data-signup-draft-chip].prov.edited{font-size:12px; letter-spacing:0;
  text-transform:none; font-weight:650}
.web-signup .prov.drafted{color:var(--brand); background:var(--brand-soft)}
.web-signup details.prov{display:inline-block; padding:0; vertical-align:middle}
.web-signup details.prov > summary{display:inline-flex; align-items:center; gap:5px; padding:3px 8px;
  border-radius:999px; cursor:pointer; list-style:none}
.web-signup details.prov > summary::-webkit-details-marker{display:none}
.web-signup details.prov > summary::after{content:""; width:5px; height:5px; margin-left:1px;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px)}
.web-signup details.prov[open] > summary::after{transform:rotate(-135deg) translate(-1px,-1px)}
.web-signup details.prov > summary:focus-visible{outline:2px solid var(--brand); outline-offset:2px}
.web-signup details.prov[open]{display:block; width:max-content; max-width:100%; border-radius:12px; margin-top:4px}
.web-signup .draft-quote{display:block; padding:2px 10px 7px; font-size:13px; font-weight:500;
  letter-spacing:0; text-transform:none; color:var(--ink); white-space:normal}