/* VisuPay 2.0 · Public, authentication and checkout adapters for Visucio UI 1.2.0. */
.entry-page {
  margin: 0;
  min-height: 100dvh;
  background: radial-gradient(ellipse at 5% 3%, rgba(103,143,255,.15), transparent 38rem), radial-gradient(ellipse at 100% 35%, rgba(103,143,255,.12), transparent 42rem), var(--vis-bg);
}
.entry-page a { text-underline-offset: 4px; }
.entry-page img { max-width: 100%; }
.entry-page .vis-button { font-weight: 600; }
.entry-page .vis-field-error { font-size: .78rem; line-height: 1.6; }
.entry-page .vis-select[aria-invalid=true], .entry-page .vis-textarea[aria-invalid=true] { border-color: var(--vis-danger); }
.entry-page .vis-input, .entry-page .vis-select { min-height: 3rem; font-size: .875rem; }
.entry-page .vis-label { font-size: .8125rem; }
.entry-page .vis-icon { vertical-align: middle; }
.entry-button-block { width: 100%; }
.entry-skip { position: fixed; left: 1rem; top: -6rem; z-index: 500; padding: .75rem 1rem; border-radius: .75rem; color: var(--vis-on-action); background: var(--vis-action); }
.entry-skip:focus { top: 1rem; }
.entry-topbar, .entry-checkout-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: min(100%, 1380px); min-height: 98px; margin: 0 auto; padding: 1.25rem 2rem; }
.entry-brand-link { display: inline-flex; align-items: center; color: var(--vis-ink); text-decoration: none; flex: none; }
.entry-topbar-actions, .entry-public-nav { display: flex; align-items: center; gap: 1.1rem; }
.entry-back-link { display: inline-flex; align-items: center; gap: .5rem; color: var(--vis-muted); font-size: .75rem; font-weight: 500; text-decoration: none; }
.entry-back-link:hover { color: var(--vis-accent-ink); }
.entry-kicker { display: block; color: var(--vis-accent-ink); font-size: .65rem; line-height: 1.6; font-weight: 650; text-transform: uppercase; letter-spacing: .15em; }
.entry-inline-link { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; }

/* Account entry */
.entry-auth-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; width: min(100%, 1380px); min-height: calc(100dvh - 98px); margin: 0 auto; padding: 0 2rem 2rem; }
.entry-story { --vis-glass-rgb: 52,84,169; --vis-glass-alpha: .93; --vis-glass-muted: #edf2ff; position: sticky; top: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; gap: 2.5rem; min-height: 640px; height: min(800px, calc(100dvh - 126px)); padding: clamp(2rem, 4vw, 3.8rem); border-radius: 2rem; color: #fff; overflow: hidden; isolation: isolate; }
.entry-story::before { content: ''; position: absolute; z-index: -1; inset: -25% -70% 18% 12%; border-radius: 50%; background: radial-gradient(circle at 32% 45%, rgba(157,183,255,.53), rgba(98,138,255,.15) 48%, transparent 68%); }
.entry-story::after { content: ''; position: absolute; z-index: -1; width: 34rem; height: 34rem; right: -21rem; top: 7rem; border: 1px solid rgba(235,243,255,.19); border-radius: 50%; box-shadow: 0 0 0 5rem rgba(220,236,255,.025), 0 0 0 10rem rgba(220,236,255,.02); }
.entry-story-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.entry-story-top .entry-kicker { color: #e3ecff; }
.entry-story-top .vis-icon { color: #d4e1ff; }
.entry-story-copy { margin-block: .5rem; }
.entry-story-overline { display: block; margin-bottom: 1.2rem; color: #dbe6ff; font-size: .82rem; line-height: 1.7; }
.entry-story-copy h2 { margin: 0 0 1.25rem; color: #fff; font-size: clamp(2.5rem, 3.8vw, 3.7rem); font-weight: 500; line-height: 1.09; letter-spacing: -.06em; overflow-wrap: normal; }
.entry-story-copy p { max-width: 32ch; color: #e3eaff; font-size: .875rem; line-height: 1.8; }
.entry-story-features { display: grid; gap: 1.1rem; padding: 1.25rem; margin-inline: -.4rem; border: 1px solid rgba(255,255,255,.18); border-radius: 1.125rem; background: rgba(230,240,255,.065); }
.entry-story-features > div { display: flex; align-items: center; gap: .9rem; }
.entry-story-icon { display: grid; place-items: center; flex: none; width: 2.5rem; height: 2.5rem; border-radius: .7rem; background: rgba(243,248,255,.12); }
.entry-story-features strong, .entry-story-features small { display: block; }
.entry-story-features strong { font-size: .75rem; font-weight: 550; }
.entry-story-features small { margin-top: .1rem; color: #e0eaff; font-size: .65rem; }
.entry-story-footer { display: flex; justify-content: space-between; gap: 1rem; font-size: .625rem; color: #d8e4ff; }
.entry-story-footer > :first-child { font-weight: 650; letter-spacing: .04em; }
.entry-auth-main { display: flex; flex-direction: column; align-items: center; align-self: center; gap: 1.6rem; width: 100%; padding-block: 1.5rem; min-width: 0; }
.entry-auth-card { width: min(100%, 30rem); border-radius: 1.75rem; padding: clamp(1.6rem, 3vw, 2.7rem); }
.entry-form-heading { margin-bottom: 1.8rem; }
.entry-form-heading h1 { margin-top: .6rem; color: var(--vis-ink); font-size: clamp(1.8rem, 2.6vw, 2.2rem); font-weight: 550; line-height: 1.18; letter-spacing: -.055em; overflow-wrap: anywhere; }
.entry-form-heading > p { margin-top: .8rem; color: var(--vis-muted); font-size: .8125rem; line-height: 1.8; }
.entry-form-symbol { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 1.5rem; border: 1px solid var(--vis-border); border-radius: .95rem; color: var(--vis-accent-ink); background: var(--vis-accent-soft); }
.entry-form { display: grid; gap: 1.3rem; }
.entry-form > .vis-button { min-height: 3rem; }
.entry-label-row { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; }
.entry-label-row a { font-size: .7rem; font-weight: 500; }
.entry-check { display: flex; align-items: flex-start; gap: .65rem; font-size: .72rem; line-height: 1.8; color: var(--vis-muted); cursor: pointer; }
.entry-check .vis-checkbox { margin-top: .1rem; }
.entry-check a { font-weight: 500; }
.entry-auth-foot { margin-top: 1.5rem !important; text-align: center; font-size: .75rem; line-height: 1.8; color: var(--vis-muted); }
.entry-auth-foot a { font-weight: 600; }
.entry-auth-footer { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem 1.3rem; color: var(--vis-muted); font-size: .625rem; }
.entry-auth-footer a { color: inherit; text-decoration: none; }
.entry-auth-footer a:hover { text-decoration: underline; }
.entry-google { width: 100%; text-decoration: none; }
.entry-login-divider { margin-block: 1.4rem; }
.entry-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.entry-full { grid-column: 1 / -1; }
.entry-fieldset { display: grid; gap: 1rem; padding: 0; margin: 0; border: 0; min-width: 0; }
.entry-fieldset > legend { padding: 0; margin-bottom: 1rem; color: var(--vis-ink); font-size: .8rem; font-weight: 650; letter-spacing: -.015em; }
.entry-fieldset + .entry-fieldset { padding-top: 1.25rem; border-top: 1px solid var(--vis-border); }
.entry-input-prefix { position: relative; }
.entry-input-prefix > span { position: absolute; z-index: 1; top: 50%; left: .9rem; transform: translateY(-50%); font-size: .85rem; color: var(--vis-muted); }
.entry-input-prefix > .vis-input { padding-left: 2.6rem; }
.entry-auth-wide .entry-auth-layout { grid-template-columns: minmax(0, .85fr) minmax(0, 1.2fr); gap: 2rem; }
.entry-auth-wide .entry-auth-main { padding-top: 0; }
.entry-auth-wide .entry-auth-card { max-width: 43rem; }
.entry-auth-wide .entry-story-copy h2 { font-size: clamp(2.2rem, 3.5vw, 3.3rem); }
.entry-invitation-note, .entry-verification-note { margin-bottom: 1.5rem; font-size: .8rem; line-height: 1.8; overflow-wrap: anywhere; }
.entry-verification-note { display: flex; align-items: flex-start; gap: .7rem; color: var(--vis-muted); }
.entry-verification-note .vis-icon { margin-top: .15rem; }
.entry-code-input { text-align: center; letter-spacing: .4em; font-size: 1.5rem !important; font-variant-numeric: tabular-nums; }

/* Product entry */
.entry-landing-header { position: relative; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: min(calc(100% - 3rem), 1280px); min-height: 82px; margin: 1.1rem auto 0; padding: .9rem 1.3rem; border-radius: 1.2rem; box-shadow: var(--vis-shadow-sm); }
.entry-public-nav { gap: .6rem; }
.entry-nav-anchor { padding: .6rem .75rem; color: var(--vis-muted); text-decoration: none; font-size: .75rem; font-weight: 550; }
.entry-nav-anchor:hover { color: var(--vis-accent-ink); }
.entry-public-nav > .vis-menu { margin-left: .5rem; }
.entry-hero { display: grid; grid-template-columns: minmax(0, 1.13fr) minmax(0, 1fr); align-items: center; gap: 4.5rem; width: min(calc(100% - 5rem), 1180px); margin: auto; padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.entry-hero-copy { position: relative; z-index: 1; }
.entry-hero-pill { display: inline-flex; align-items: center; gap: .65rem; padding: .45rem .8rem; margin-bottom: 1.5rem; border: 1px solid var(--vis-border); border-radius: 99px; color: var(--vis-accent-ink); background: var(--vis-glass); font-size: .65rem; font-weight: 550; }
.entry-hero-pill > span { width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--vis-brand); box-shadow: 0 0 0 4px rgba(103,143,255,.11); }
.entry-hero h1 { font-size: clamp(2.8rem, 4.8vw, 4.6rem); line-height: 1.07; letter-spacing: -.07em; font-weight: 550; }
.entry-hero h1 em { display: inline; font-style: normal; color: var(--vis-accent-ink); }
.entry-hero-copy > p { max-width: 45ch; margin-top: 1.7rem; color: var(--vis-muted); font-size: .94rem; line-height: 1.9; }
.entry-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.entry-hero-actions .vis-button { font-size: .8125rem; }
.entry-hero-copy > .entry-hero-note { display: flex; align-items: center; gap: .5rem; margin-top: 1.6rem; font-size: .67rem; }
.entry-hero-note .vis-icon { width: 1rem; height: 1rem; color: var(--vis-accent-ink); }
.entry-hero-visual { position: relative; padding: .4rem; isolation: isolate; }
.entry-hero-visual::before { content: ''; position: absolute; z-index: -1; width: 105%; aspect-ratio: 1; top: 3%; left: -1%; border-radius: 50%; background: radial-gradient(circle, rgba(103,143,255,.35), rgba(143,165,255,.12) 55%, transparent 70%); }
.entry-flow-board { position: relative; padding: 1.8rem; border-radius: 1.8rem; transform: rotate(-2deg); }
.entry-flow-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: var(--vis-accent-ink); }
.entry-flow-heading { padding: 1.5rem .3rem 1.75rem; }
.entry-flow-symbol { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; margin-bottom: 1.4rem; color: var(--vis-accent-ink); border-radius: 1rem; }
.entry-flow-symbol .vis-icon { width: 1.6rem; height: 1.6rem; }
.entry-flow-heading h2 { font-size: clamp(1.8rem, 2.8vw, 2.6rem); line-height: 1.13; letter-spacing: -.055em; font-weight: 550; }
.entry-flow-heading p { max-width: 32ch; margin-top: .8rem; color: var(--vis-muted); font-size: .75rem; line-height: 1.75; }
.entry-flow-steps { list-style: none; display: grid; gap: .6rem; padding: 0; margin: 0; }
.entry-flow-steps li { display: flex; align-items: center; gap: .85rem; padding: 1rem .8rem; border: 1px solid var(--vis-glass-edge); border-radius: .9rem; background: rgba(var(--vis-glass-rgb), .34); }
.entry-flow-number { display: grid; place-items: center; width: 2rem; height: 2rem; flex: none; color: var(--vis-accent-ink); background: var(--vis-accent-soft); border-radius: .625rem; font-size: .65rem; font-weight: 650; }
.entry-flow-steps strong { display: block; font-size: .75rem; font-weight: 600; }
.entry-flow-steps p { margin-top: .1rem; font-size: .625rem; color: var(--vis-muted); }
.entry-flow-steps li > .vis-icon { margin-left: auto; width: 1rem; color: var(--vis-accent-ink); }
.entry-flow-caption { position: relative; display: flex; align-items: center; justify-content: center; gap: .65rem; width: fit-content; margin: 1.5rem auto -.75rem; padding: .65rem 1.2rem; border-radius: 99px; color: var(--vis-muted); font-size: .7rem; font-weight: 500; }
.entry-flow-caption .vis-icon { color: var(--vis-accent-ink); }
.entry-capability-strip { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.5rem; width: min(calc(100% - 5rem), 1180px); margin: 0 auto; padding: 2rem 0; border-top: 1px solid var(--vis-border); border-bottom: 1px solid var(--vis-border); }
.entry-capability-strip > span { display: flex; align-items: center; gap: .65rem; color: var(--vis-muted); font-size: .8125rem; font-weight: 550; }
.entry-capability-strip > span:first-child { display: block; font-size: .7rem; font-weight: 400; }
.entry-capability-strip strong { font-weight: 600; color: var(--vis-ink); }
.entry-capability-strip .vis-icon { color: var(--vis-accent-ink); }
.entry-features-section { width: min(calc(100% - 5rem), 1180px); margin: 0 auto; padding-block: 6rem; scroll-margin-top: 1.5rem; }
.entry-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .75fr); column-gap: 3rem; align-items: end; margin-bottom: 2.7rem; }
.entry-section-heading .entry-kicker { grid-column: 1 / -1; margin-bottom: .85rem; }
.entry-section-heading h2, .entry-security-section h2, .entry-final-cta h2 { font-size: clamp(2rem, 3.6vw, 3.35rem); line-height: 1.12; font-weight: 550; letter-spacing: -.06em; }
.entry-section-heading p { color: var(--vis-muted); font-size: .85rem; line-height: 1.9; }
.entry-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.entry-feature { display: flex; flex-direction: column; padding: 1.8rem; border-radius: 1.2rem; box-shadow: var(--vis-shadow-sm); }
.entry-feature-icon { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; margin-bottom: 1.5rem; border-radius: .8rem; color: var(--vis-accent-ink); background: var(--vis-accent-soft); }
.entry-feature h3 { margin-bottom: .6rem; font-size: 1rem; font-weight: 600; letter-spacing: -.025em; }
.entry-feature p { color: var(--vis-muted); font-size: .76rem; line-height: 1.9; }
.entry-feature-detail { display: block; margin-top: auto; padding-top: 1.5rem; color: var(--vis-accent-ink); font-size: .625rem; font-weight: 550; }
.entry-security-section { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 2rem; width: min(calc(100% - 5rem), 1180px); margin: 0 auto; padding: 2.8rem; border-radius: 1.5rem; scroll-margin-top: 1.5rem; }
.entry-security-symbol { display: grid; place-items: center; width: 5rem; height: 5rem; border: 1px solid var(--vis-border); border-radius: 1.4rem; color: var(--vis-accent-ink); background: var(--vis-accent-soft); }
.entry-security-symbol .vis-icon { width: 2.4rem; height: 2.4rem; stroke-width: 1.4; }
.entry-security-section h2 { margin-top: .6rem; font-size: clamp(1.6rem, 2.5vw, 2.2rem); }
.entry-security-section p { max-width: 52ch; margin-top: .9rem; color: var(--vis-muted); font-size: .8rem; line-height: 1.8; }
.entry-security-section ul { display: grid; gap: .9rem; list-style: none; padding: 0; margin: 0; }
.entry-security-section li { display: flex; align-items: center; gap: .65rem; font-size: .7rem; }
.entry-security-section li .vis-icon { color: var(--vis-accent-ink); width: 1rem; height: 1rem; }
.entry-final-cta { width: min(calc(100% - 3rem), 900px); margin: auto; padding: 6.5rem 0; text-align: center; }
.entry-final-cta h2 { margin-top: 1rem; }
.entry-final-cta p { margin: 1.2rem 0 1.8rem; color: var(--vis-muted); font-size: .85rem; }
.entry-final-cta .vis-button { font-size: .875rem; }
.entry-landing-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.5rem; width: min(calc(100% - 5rem), 1180px); margin: auto; padding: 2rem 0; border-top: 1px solid var(--vis-border); color: var(--vis-muted); font-size: .65rem; }
.entry-landing-footer nav, .entry-checkout-footer nav { display: flex; gap: 1.5rem; }
.entry-landing-footer nav a, .entry-checkout-footer nav a { color: var(--vis-muted); text-decoration: none; }
.entry-landing-footer nav a:hover, .entry-checkout-footer nav a:hover { text-decoration: underline; }

/* Payment entry and subscription portal */
.entry-checkout-header { width: min(100%, 1160px); min-height: 105px; padding-inline: 1.5rem; }
.entry-merchant { display: flex; align-items: center; gap: .8rem; min-width: 0; }
.entry-merchant > img, .entry-merchant-initial { width: 2.75rem; height: 2.75rem; flex: none; border-radius: .85rem; border: 1px solid var(--vis-border); background: var(--vis-surface); }
.entry-merchant > img { object-fit: contain; padding: .3rem; }
.entry-merchant-initial { display: grid; place-items: center; position: relative; color: var(--vis-ink); font-size: 1.15rem; font-weight: 600; box-shadow: inset 0 -3px 0 var(--checkout-brand, var(--vis-brand)); }
.entry-merchant strong { display: block; font-size: .875rem; font-weight: 600; letter-spacing: -.02em; overflow-wrap: anywhere; }
.entry-merchant small { display: block; color: var(--vis-muted); font-size: .65rem; margin-top: .1rem; }
.entry-protected { display: inline-flex; align-items: center; gap: .4rem; font-size: .625rem; color: var(--vis-muted); white-space: nowrap; }
.entry-protected .vis-icon { width: .9rem; height: .9rem; }
.entry-checkout-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .9fr); gap: 1.5rem; align-items: start; width: min(calc(100% - 3rem), 1112px); margin: 1rem auto 3rem; }
.entry-checkout-form-card { padding: 2.2rem; border-radius: 1.5rem; }
.entry-checkout-form-card .entry-form-heading { margin-bottom: 2.2rem; }
.entry-checkout-form-card .entry-form { gap: 1.8rem; }
.entry-checkout-fieldset > legend { display: flex; align-items: center; gap: .6rem; font-size: .9rem; }
.entry-checkout-fieldset > .vis-caption { margin-top: -.4rem; font-size: .7rem; }
.entry-step-number { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; margin-right: .45rem; border: 1px solid var(--vis-border); border-radius: .5rem; background: var(--vis-accent-soft); color: var(--vis-accent-ink); font-size: .7rem; }
.entry-method-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.entry-method .vis-card { height: 100%; padding: 1rem .8rem; border-radius: .8rem; box-shadow: none; gap: .15rem; }
.entry-method .vis-icon { margin-bottom: .5rem; color: var(--vis-accent-ink); }
.entry-method strong { font-size: .75rem; font-weight: 600; }
.entry-method small { color: var(--vis-muted); font-size: .65rem; }
.entry-method input { top: 1rem; right: .8rem; width: .95rem; height: .95rem; }
.entry-installments { margin-top: .1rem; }
#checkout-form:has(input[name=method]:checked:not([value=card])) .entry-installments { display: none; }
.entry-checkout-submit { min-height: 3.2rem !important; font-size: .82rem; }
.entry-payment-note { display: flex; align-items: flex-start; justify-content: center; gap: .7rem; max-width: 43ch; margin: 0 auto; color: var(--vis-muted); font-size: .65rem; line-height: 1.8; text-align: left; }
.entry-payment-note .vis-icon { margin-top: .15rem; width: 1.05rem; height: 1.05rem; color: var(--vis-accent-ink); }
.entry-payment-note strong { font-weight: 550; color: var(--vis-ink); }
.entry-order-summary { position: sticky; top: 1.5rem; padding: 2rem; border-radius: 1.5rem; }
.entry-order-symbol { display: grid; place-items: center; width: 3.3rem; height: 3.3rem; margin: 1.7rem 0 1.2rem; color: var(--vis-accent-ink); background: var(--vis-accent-soft); border: 1px solid var(--vis-border); border-radius: 1rem; }
.entry-order-summary h2 { font-size: 1.35rem; line-height: 1.35; font-weight: 550; letter-spacing: -.04em; overflow-wrap: anywhere; }
.entry-order-description { margin-top: .65rem !important; color: var(--vis-muted); font-size: .75rem; line-height: 1.8; white-space: pre-line; overflow-wrap: anywhere; }
.entry-order-price { display: flex; flex-direction: column; margin-block: 1.8rem; padding-block: 1.6rem; border-block: 1px solid var(--vis-border); }
.entry-order-price > span, .entry-status-total > span { color: var(--vis-muted); font-size: .65rem; }
.entry-order-price > strong { margin-top: .45rem; font-size: clamp(1.4rem, 2.5vw, 2rem); letter-spacing: -.04em; font-weight: 550; font-variant-numeric: tabular-nums; line-height: 1.3; overflow-wrap: anywhere; }
.entry-order-price > small, .entry-status-total > small { margin-top: .35rem; color: var(--vis-muted); font-size: .7rem; }
.entry-definition-list { display: grid; gap: .75rem; margin: 0; font-size: .7rem; }
.entry-definition-list > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.entry-definition-list dt { color: var(--vis-muted); }
.entry-definition-list dd { margin: 0; max-width: 66%; text-align: right; font-weight: 550; overflow-wrap: anywhere; }
.entry-summary-note { display: flex; align-items: flex-start; gap: .6rem; margin-top: 1.7rem !important; padding-top: 1.3rem; border-top: 1px solid var(--vis-border); color: var(--vis-muted); font-size: .65rem; line-height: 1.8; }
.entry-summary-note .vis-icon { width: 1rem; height: 1rem; margin-top: .2rem; }
.entry-checkout-footer { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 1rem 1.7rem; width: min(calc(100% - 3rem), 1112px); margin: 0 auto; padding: 1.7rem 0 2rem; border-top: 1px solid var(--vis-border); color: var(--vis-muted); font-size: .6rem; }
.entry-checkout-footer .brand-lockup img { width: 96px; }
.entry-checkout-footer .brand-product { font-size: .625rem; }
.entry-stripe-element { min-height: 3.25rem; padding: .95rem .85rem; border: 1px solid var(--vis-control-border); border-radius: var(--vis-radius-md); background: var(--vis-surface); }
.entry-stripe-element.StripeElement--focus { outline: 3px solid var(--vis-action); outline-offset: 3px; }
.entry-stripe-element.StripeElement--invalid { border-color: var(--vis-danger); }
.entry-status-layout { width: min(calc(100% - 3rem), 650px); margin: 1.5rem auto 3rem; }
.entry-status-card { padding: 2.7rem; border-radius: 1.75rem; text-align: center; }
.entry-status-symbol { display: grid; place-items: center; width: 4.2rem; height: 4.2rem; margin: 0 auto 1.5rem; border: 1px solid var(--vis-border); border-radius: 1.3rem; color: var(--vis-accent-ink); background: var(--vis-accent-soft); }
.entry-status-symbol .vis-icon { width: 2rem; height: 2rem; stroke-width: 1.5; }
.entry-status-success { background: var(--vis-success-soft); color: var(--vis-success); border-color: transparent; }
.entry-status-danger { background: var(--vis-danger-soft); color: var(--vis-danger); border-color: transparent; }
.entry-status-pending { background: var(--vis-warning-soft); color: var(--vis-warning); border-color: transparent; }
.entry-status-card h1 { margin-top: .75rem; font-size: clamp(1.65rem, 3vw, 2.15rem); letter-spacing: -.05em; line-height: 1.2; font-weight: 550; overflow-wrap: anywhere; }
.entry-status-description { max-width: 47ch; margin: 1rem auto 0 !important; color: var(--vis-muted); font-size: .8rem; line-height: 1.85; overflow-wrap: anywhere; }
.entry-status-total { display: flex; flex-direction: column; margin: 2rem 0; }
.entry-status-total > strong { margin-top: .25rem; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 550; letter-spacing: -.045em; font-variant-numeric: tabular-nums; line-height: 1.3; overflow-wrap: anywhere; }
.entry-status-details { padding: 1.4rem 0; margin-bottom: 1.7rem; border-block: 1px solid var(--vis-border); text-align: left; }
.entry-reference { font-size: .6rem; }
.entry-card-retry, .entry-payment-code { margin-bottom: 1.7rem; text-align: left; }
.entry-payment-code .vis-textarea { min-height: 6rem; resize: vertical; font-size: .7rem; line-height: 1.8; }
.entry-payment-code .vis-button { margin-top: .35rem; }
.entry-status-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: .6rem; margin-top: 1.7rem; }
.entry-status-actions .vis-button { font-size: .75rem; }
.entry-subscription-alert { margin-bottom: 1.5rem !important; text-align: left; font-size: .8rem; }
.entry-status-badge { display: inline-flex; margin-top: 1rem; padding: .35rem .75rem; border: 1px solid var(--vis-border); border-radius: 99px; color: var(--vis-accent-ink); background: var(--vis-accent-soft); font-size: .7rem; font-weight: 550; }
.entry-portal-actions { display: grid; gap: .75rem; margin-bottom: 1.8rem; }
.entry-portal-actions form { margin: 0; }
.entry-portal-actions .vis-caption { font-size: .65rem; }

/* Legal documents and error pages */
.entry-legal .entry-auth-layout { display: block; max-width: 950px; }
.entry-legal .entry-story { display: none; }
.entry-legal .entry-auth-main { padding-top: 0; }
.entry-legal .entry-auth-card { max-width: none; padding: clamp(1.6rem, 5vw, 4rem); }
.entry-legal .entry-form-heading h1 { font-size: clamp(1.9rem, 3vw, 2.8rem); }
.entry-legal-copy { display: grid; gap: 1.15rem; border-top: 1px solid var(--vis-border); padding-top: 1.8rem; color: var(--vis-ink); }
.entry-legal-copy p { font-size: .875rem; line-height: 1.95; white-space: pre-line; overflow-wrap: anywhere; }
.entry-error-layout { display: grid; place-items: center; min-height: calc(100dvh - 140px); padding: 1rem 1.5rem 4rem; }
.entry-error-card { width: min(100%, 620px); padding: clamp(2rem, 6vw, 4rem); border-radius: 2rem; text-align: center; }
.entry-error-code { display: block; margin-bottom: 1.5rem; color: var(--vis-accent-ink); font-size: 5rem; font-weight: 450; line-height: 1; letter-spacing: -.07em; }
.entry-error-card h1 { margin-top: .8rem; font-size: clamp(1.9rem, 4vw, 2.5rem); line-height: 1.15; letter-spacing: -.05em; font-weight: 550; }
.entry-error-card > p { margin: 1.1rem 0 1.8rem; color: var(--vis-muted); font-size: .8rem; line-height: 1.9; }

@media (min-width: 1440px) {
  .entry-auth-layout { gap: 4.5rem; }
  .entry-auth-main { padding-inline: 1rem; }
}
@media (max-width: 1080px) {
  .entry-auth-layout, .entry-auth-wide .entry-auth-layout { gap: 1.5rem; grid-template-columns: minmax(0, .88fr) minmax(0, 1fr); }
  .entry-story { min-height: 620px; padding: 2rem; }
  .entry-story-copy h2, .entry-auth-wide .entry-story-copy h2 { font-size: 2.7rem; }
  .entry-auth-card { padding: 1.8rem; }
  .entry-auth-wide .entry-form-grid { grid-template-columns: 1fr; }
  .entry-hero { gap: 2.5rem; }
  .entry-hero h1 { font-size: 3.5rem; }
  .entry-flow-board { padding: 1.4rem; }
  .entry-security-section { grid-template-columns: auto minmax(0, 1fr); }
  .entry-security-section ul { grid-column: 2; }
  .entry-checkout-form-card { padding: 1.7rem; }
  .entry-order-summary { padding: 1.6rem; }
}
@media (max-width: 800px) {
  .entry-topbar { min-height: 86px; padding: 1rem 1.4rem; }
  .entry-auth-layout, .entry-auth-wide .entry-auth-layout { display: flex; flex-direction: column; gap: 1.5rem; padding: 0 1.4rem 1.5rem; }
  .entry-story { position: relative; top: auto; width: 100%; min-height: 0; height: auto; padding: 2rem; gap: 1rem; }
  .entry-story-top { margin-bottom: .7rem; }
  .entry-story-copy { margin: 0; }
  .entry-story-copy h2, .entry-auth-wide .entry-story-copy h2 { max-width: none; margin-bottom: 0; font-size: 2.5rem; }
  .entry-story-copy h2 br { display: none; }
  .entry-story-overline, .entry-story-copy p, .entry-story-features, .entry-story-footer { display: none; }
  .entry-auth-main { padding: 0; }
  .entry-auth-card { max-width: 34rem; padding: 2rem; }
  .entry-auth-wide .entry-auth-card { max-width: 38rem; }
  .entry-auth-wide .entry-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entry-landing-header { width: calc(100% - 2rem); padding-inline: 1rem; }
  .entry-nav-anchor { display: none; }
  .entry-public-nav { gap: .4rem; }
  .entry-public-nav > .vis-menu { margin-left: 0; }
  .entry-public-nav .vis-button { font-size: .75rem; }
  .entry-hero { grid-template-columns: 1fr; width: min(calc(100% - 3rem), 620px); gap: 3rem; padding-block: 3.5rem; }
  .entry-hero h1 { max-width: 15ch; font-size: clamp(3rem, 7vw, 4.5rem); }
  .entry-hero-copy > p { max-width: 48ch; }
  .entry-hero-visual { width: min(100%, 470px); margin-inline: auto; }
  .entry-capability-strip { width: calc(100% - 3rem); gap: 1.2rem; justify-content: flex-start; }
  .entry-capability-strip > span:first-child { width: 100%; }
  .entry-capability-strip > span { font-size: .7rem; }
  .entry-features-section { width: calc(100% - 3rem); padding-block: 4rem; }
  .entry-section-heading { grid-template-columns: 1fr; gap: 1rem; margin-bottom: 2rem; }
  .entry-section-heading .entry-kicker { margin: 0; }
  .entry-section-heading p { max-width: 50ch; }
  .entry-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entry-feature { padding: 1.5rem; }
  .entry-security-section { width: calc(100% - 3rem); padding: 2rem; gap: 1.5rem; }
  .entry-final-cta { padding-block: 4rem; }
  .entry-landing-footer { width: calc(100% - 3rem); }
  .entry-checkout-header { padding-inline: 1.2rem; }
  .entry-checkout-layout { grid-template-columns: 1fr; width: min(calc(100% - 2.4rem), 620px); margin-top: .5rem; }
  .entry-order-summary { position: static; order: -1; }
  .entry-order-symbol { display: none; }
  .entry-order-summary h2 { margin-top: .65rem; }
  .entry-order-price { margin-block: 1.2rem; padding-block: 1.2rem; }
  .entry-order-price > strong { font-size: 1.8rem; }
  .entry-order-description { max-width: 60ch; }
  .entry-summary-note { margin-top: 1.2rem !important; padding-top: 1rem; }
}
@media (max-width: 480px) {
  .entry-topbar { min-height: 80px; padding-inline: 1rem; }
  .entry-back-link { display: none; }
  .entry-auth-layout, .entry-auth-wide .entry-auth-layout { padding-inline: .8rem; gap: 1rem; }
  .entry-story { padding: 1.5rem; border-radius: 1.5rem; }
  .entry-story-top .entry-kicker { font-size: .55rem; }
  .entry-story-copy h2, .entry-auth-wide .entry-story-copy h2 { font-size: 2rem; }
  .entry-auth-card, .entry-auth-wide .entry-auth-card { padding: 1.6rem 1.3rem; border-radius: 1.4rem; }
  .entry-form-heading h1 { font-size: 1.8rem; }
  .entry-auth-wide .entry-form-grid, .entry-form-grid { grid-template-columns: 1fr; }
  .entry-landing-header { width: calc(100% - 1.3rem); margin-top: .65rem; padding: .75rem; min-height: 76px; }
  .entry-landing-header .brand-lockup img { width: 96px; }
  .entry-nav-signup { display: none !important; }
  .entry-public-nav { gap: .15rem; }
  .entry-public-nav .vis-button { padding-inline: .65rem; }
  .entry-hero { width: calc(100% - 2.4rem); gap: 2.5rem; padding-block: 2.5rem 3.5rem; }
  .entry-hero h1 { font-size: 2.9rem; }
  .entry-hero-copy > p { font-size: .82rem; }
  .entry-hero-actions { align-items: stretch; flex-direction: column; }
  .entry-hero-actions .vis-button { width: 100%; }
  .entry-flow-board { transform: none; border-radius: 1.4rem; padding: 1.25rem; }
  .entry-flow-heading h2 { font-size: 2.1rem; }
  .entry-flow-steps li { gap: .65rem; padding-inline: .65rem; }
  .entry-flow-steps strong { font-size: .69rem; }
  .entry-flow-steps p { font-size: .6rem; }
  .entry-flow-number { width: 1.8rem; height: 1.8rem; }
  .entry-flow-steps li > .vis-icon { display: none; }
  .entry-capability-strip, .entry-features-section, .entry-security-section, .entry-landing-footer { width: calc(100% - 2.4rem); }
  .entry-capability-strip > span:not(:first-child) { width: calc(50% - .6rem); }
  .entry-feature-grid { grid-template-columns: 1fr; }
  .entry-feature { padding: 1.5rem; }
  .entry-feature-icon { margin-bottom: 1.2rem; }
  .entry-security-section { grid-template-columns: 1fr; padding: 1.5rem; }
  .entry-security-section ul { grid-column: auto; }
  .entry-security-symbol { width: 3.5rem; height: 3.5rem; border-radius: 1rem; }
  .entry-security-symbol .vis-icon { width: 1.9rem; height: 1.9rem; }
  .entry-landing-footer { display: grid; justify-content: start; gap: 1.2rem; }
  .entry-checkout-header { min-height: 88px; gap: .6rem; padding-inline: 1rem; }
  .entry-checkout-header .entry-topbar-actions { gap: .4rem; }
  .entry-protected { display: none; }
  .entry-merchant { gap: .65rem; }
  .entry-merchant strong { font-size: .8rem; }
  .entry-merchant small { font-size: .6rem; }
  .entry-checkout-layout { width: calc(100% - 1.5rem); gap: 1rem; margin-bottom: 2rem; }
  .entry-order-summary, .entry-checkout-form-card { padding: 1.5rem 1.2rem; border-radius: 1.3rem; }
  .entry-checkout-form-card .entry-form-heading h1 { font-size: 1.8rem; }
  .entry-method-grid { gap: .5rem; }
  .entry-method .vis-card { padding: .8rem .6rem; }
  .entry-method input { right: .6rem; top: .8rem; width: .85rem; height: .85rem; }
  .entry-method small { font-size: .6rem; }
  .entry-checkout-submit { padding-inline: .8rem; font-size: .75rem; }
  .entry-checkout-footer { width: calc(100% - 2rem); gap: .9rem 1.4rem; }
  .entry-checkout-footer > span { display: none; }
  .entry-status-layout { width: calc(100% - 1.5rem); margin-top: .5rem; }
  .entry-status-card { padding: 2rem 1.2rem; border-radius: 1.4rem; }
  .entry-status-actions { flex-direction: column; }
  .entry-status-actions .vis-button { width: 100%; }
  .entry-definition-list { font-size: .65rem; }
  .entry-legal-copy p { font-size: .8125rem; }
}
@media (prefers-reduced-motion: reduce) { .entry-page { scroll-behavior: auto; } .entry-flow-board { transform: none; } }
@media (prefers-reduced-transparency: reduce) { .entry-story { background: #3454a9; } }
[data-vis-transparency=off] .entry-story { background: #3454a9; }
@media (forced-colors: active) { .entry-story { color: CanvasText; background: Canvas; } .entry-story :is(h2,p,span,small,strong) { color: CanvasText; } .entry-story::before, .entry-story::after { display: none; } }
