/* Tokens from landing-design-system, with letterscove's accent and neutrals. Fonts are self-hosted: no third-party request on page load. */
@font-face { font-family: "Geist"; src: url("fonts/geist-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url("fonts/geist-mono-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }

:root {
  color-scheme: light dark;
  --brand: oklch(0.53 0.115 172);
  --hue: 172;
  --tint: 0.007;
  --font-display: "Geist", system-ui, sans-serif;
  --font-sans: "Geist", system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, monospace;
  --bg: oklch(0.968 var(--tint) var(--hue));
  --surface: oklch(0.998 0.002 var(--hue));
  --surface-2: oklch(0.985 calc(var(--tint) / 2) var(--hue));
  --sunken: oklch(0.94 var(--tint) var(--hue));
  --fg: oklch(0.2 0.012 var(--hue));
  --fg-2: oklch(0.43 var(--tint) var(--hue));
  --fg-3: oklch(0.52 var(--tint) var(--hue));
  --fg-4: oklch(0.76 var(--tint) var(--hue));
  --line: color-mix(in oklch, var(--fg) 8%, transparent);
  --line-soft: color-mix(in oklch, var(--fg) 5%, transparent);
  --line-strong: color-mix(in oklch, var(--fg) 14%, transparent);
  --accent: var(--brand);
  --accent-top: oklch(from var(--accent) calc(l + 0.06) c h);
  --accent-edge: oklch(from var(--accent) calc(l - 0.08) c h);
  --accent-soft: oklch(from var(--brand) 0.95 0.035 h);
  --accent-ink: oklch(from var(--brand) 0.43 c h);
  --on-accent: oklch(0.995 0.002 var(--hue));
  --ok: oklch(0.45 0.11 155); --ok-soft: oklch(0.95 0.04 155);
  --warn: oklch(0.47 0.1 70); --warn-soft: oklch(0.96 0.05 80);
  --danger: oklch(0.5 0.17 25); --danger-soft: oklch(0.95 0.03 25);
  --block: oklch(0.24 0.03 var(--hue));
  --block-fg: oklch(0.96 0.008 var(--hue));
  --block-fg-2: oklch(0.8 0.015 var(--hue));
  --shade: color-mix(in oklch, var(--fg) 5%, transparent);
  --e1: 0 1px 1px var(--shade), 0 2px 4px -1px color-mix(in oklch, var(--fg) 6%, transparent), 0 0 0 1px var(--line);
  --e2: 0 1px 1px var(--shade), 0 6px 16px -4px color-mix(in oklch, var(--fg) 11%, transparent), 0 0 0 1px var(--line);
  --e3: 0 2px 4px var(--shade), 0 24px 56px -16px color-mix(in oklch, var(--fg) 30%, transparent), 0 0 0 1px var(--line-strong);
  --top: inset 0 1px 0 rgb(255 255 255 / .9);
  --glass: color-mix(in oklch, var(--surface) 74%, transparent);
  --focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);
  --obj-shadow: 0 12px 20px rgb(0 0 0 / .18);
  --r-xs: 6px; --r-sm: 10px; --r-btn: 12px; --r-md: 14px;
  --r-card: 20px; --r-tile: 24px; --r-block: 32px; --r-full: 999px;
  --container: min(1120px, 100% - 32px);
  --section-y: clamp(72px, 10vw, 128px);
  --t-hero: clamp(40px, 5.6vw, 72px);
  --t-h2: clamp(28px, 3.6vw, 46px);
  --t-lead: clamp(16px, 1.5vw, 18px);
  --track-display: -0.03em;
  --ease-out: cubic-bezier(.2, .8, .2, 1);
  --spring: cubic-bezier(.34, 1.4, .5, 1);
  --dur-micro: 160ms;
  --dur-enter: 600ms;
}
/* Checkout pages opt out of dark mode (data-theme="light" on <html>). */
:root[data-theme="light"] { color-scheme: light; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: oklch(0.17 var(--tint) var(--hue));
    --surface: oklch(0.22 var(--tint) var(--hue));
    --surface-2: oklch(0.2 var(--tint) var(--hue));
    --sunken: oklch(0.14 var(--tint) var(--hue));
    --fg: oklch(0.94 0.004 var(--hue));
    --fg-2: oklch(0.8 var(--tint) var(--hue));
    --fg-3: oklch(0.7 var(--tint) var(--hue));
    --fg-4: oklch(0.45 var(--tint) var(--hue));
    --accent: oklch(from var(--brand) 0.76 c h);
    --accent-soft: oklch(from var(--brand) 0.31 0.05 h);
    --accent-ink: oklch(from var(--brand) 0.82 c h);
    --on-accent: oklch(0.18 0.02 var(--hue));
    --ok: oklch(0.8 0.1 155); --ok-soft: oklch(0.3 0.05 155);
    --warn: oklch(0.82 0.11 80); --warn-soft: oklch(0.3 0.05 80);
    --danger: oklch(0.78 0.12 25); --danger-soft: oklch(0.3 0.06 25);
    --block: oklch(0.27 0.035 var(--hue));
    --line: color-mix(in oklch, var(--fg) 8%, transparent);
    --line-strong: color-mix(in oklch, var(--fg) 13%, transparent);
    --e1: 0 1px 2px rgb(0 0 0 / .5), 0 0 0 1px var(--line);
    --e2: 0 8px 20px -6px rgb(0 0 0 / .6), 0 0 0 1px var(--line);
    --e3: 0 28px 64px -16px rgb(0 0 0 / .8), 0 0 0 1px var(--line-strong);
    --top: inset 0 1px 0 rgb(255 255 255 / .06);
    --obj-shadow: 0 12px 20px rgb(0 0 0 / .5);
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; background: var(--bg); color: var(--fg); font: 400 15.5px/1.55 var(--font-sans); -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { max-width: 100%; }
a { color: inherit; }
h1, h2, h3, p { margin: 0; }
h1, h2 { font-family: var(--font-display); font-weight: 650; letter-spacing: var(--track-display); text-wrap: balance; }
:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--r-xs); }
[hidden] { display: none !important; }
.wrap { width: var(--container); margin-inline: auto; }
.mono { font-family: var(--font-mono); letter-spacing: -0.02em; }
.muted { color: var(--fg-2); }
.small { font-size: 13.5px; }
.ic { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 0; border-radius: var(--r-btn); font: 620 15px/1 var(--font-sans); text-decoration: none; white-space: nowrap; cursor: pointer; color: var(--fg); background: var(--surface); box-shadow: var(--e1), var(--top); transition: transform 220ms var(--spring), box-shadow var(--dur-micro) var(--ease-out), filter var(--dur-micro) var(--ease-out); }
.btn:hover { box-shadow: var(--e2), var(--top); }
.btn:active { transform: translateY(1px) scale(.97); }
.btn:focus-visible { box-shadow: var(--focus-ring); border-radius: var(--r-btn); }
.btn .ic { transition: transform var(--dur-micro) var(--ease-out); }
.btn:hover .arrow { transform: translateX(2px); }
.btn-primary { color: var(--on-accent); background: linear-gradient(180deg, var(--accent-top), var(--accent)); box-shadow: inset 0 1px 0 rgb(255 255 255 / .24), 0 0 0 1px var(--accent-edge), 0 8px 18px -8px color-mix(in oklch, var(--accent) 60%, transparent); }
.btn-primary:hover { filter: brightness(1.05); box-shadow: inset 0 1px 0 rgb(255 255 255 / .24), 0 0 0 1px var(--accent-edge), 0 10px 20px -8px color-mix(in oklch, var(--accent) 70%, transparent); }
.btn-lg { min-height: 52px; padding: 0 22px; font-size: 16px; border-radius: 15px; }
.btn-sm { min-height: 36px; padding: 0 12px; font-size: 14px; border-radius: var(--r-sm); }
.btn-ghost { background: transparent; box-shadow: none; }
.btn-ghost:hover { background: var(--sunken); box-shadow: none; }
.btn-danger { color: var(--danger); }
.btn[disabled] { opacity: .55; cursor: default; transform: none; }
.btn-block { width: 100%; }

/* Nav */
.nav { position: sticky; top: 12px; z-index: 20; margin-top: 12px; }
.nav-in { display: flex; align-items: center; gap: 8px; height: 58px; padding: 0 10px 0 16px; background: var(--glass); -webkit-backdrop-filter: blur(20px) saturate(1.6); backdrop-filter: blur(20px) saturate(1.6); border-radius: 18px; box-shadow: var(--e2), var(--top); }
.brand { display: inline-flex; align-items: center; gap: 8px; font: 700 17px/1 var(--font-display); letter-spacing: -0.03em; text-decoration: none; margin-right: auto; color: var(--fg); }
.brand-mark { width: 24px; height: 24px; border-radius: 8px; display: grid; place-items: center; color: var(--on-accent); background: linear-gradient(180deg, var(--accent-top), var(--accent)); box-shadow: 0 0 0 1px var(--accent-edge); }
.brand-mark .ic { width: 14px; height: 14px; }
.nav-link { padding: 8px 10px; font-size: 14.5px; font-weight: 520; color: var(--fg-2); text-decoration: none; border-radius: var(--r-sm); }
.nav-link:hover { color: var(--fg); background: var(--sunken); }

/* Hero */
.hero { padding-block: clamp(52px, 7vw, 92px) clamp(64px, 8vw, 104px); }
.hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(32px, 5vw, 64px); align-items: center; }
.eyebrow { display: block; margin-bottom: 14px; font-size: 13px; font-weight: 700; color: var(--accent-ink); }
.hero h1 { font-size: var(--t-hero); line-height: 1.01; max-width: 13ch; }
.lead { margin-top: 20px; font-size: var(--t-lead); color: var(--fg-2); max-width: 50ch; text-wrap: pretty; }
.mo-mark { padding-inline: .04em; }

.claim-domain { color: var(--fg-2); font: 500 15px var(--font-mono); letter-spacing: -0.02em; white-space: nowrap; }

/* Live inbox preview */
.stage { position: relative; }
.stage-bubble { position: absolute; z-index: 2; pointer-events: none; }
.preview { position: relative; overflow: hidden; background: var(--surface); border-radius: var(--r-tile); box-shadow: var(--e3), var(--top); padding: 10px; }
.preview-head { display: flex; align-items: center; gap: 8px; padding: 10px 12px 14px; font-size: 13px; font-weight: 600; }
.preview-head .mono { font-size: 12.5px; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 0 var(--accent-soft); margin-left: auto; }
.mail-row { display: grid; grid-template-columns: 34px 1fr auto; gap: 12px; align-items: center; padding: 12px; border-radius: var(--r-md); }
.mail-row + .mail-row { margin-top: 2px; }
.mail-row.is-new { background: var(--accent-soft); }
.mail-av { width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; font-weight: 700; font-size: 13px; color: var(--accent-ink); background: var(--sunken); }
.mail-row.is-new .mail-av { background: var(--surface); }
.mail-top { font-size: 14px; font-weight: 620; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mail-sub { font-size: 13px; color: var(--fg-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mail-time { font-size: 12px; color: var(--fg-3); font-variant-numeric: tabular-nums; }
.preview-foot { display: flex; align-items: center; gap: 8px; margin: 10px 2px 2px; padding: 10px 12px; border-radius: var(--r-md); background: var(--sunken); font-size: 13px; color: var(--fg-2); }

/* Sections */
.section { padding-block: var(--section-y); }
.sec-head { max-width: 680px; margin-bottom: clamp(30px, 4vw, 48px); }
.sec-head h2 { font-size: var(--t-h2); line-height: 1.08; }
.sec-head p { margin-top: 14px; font-size: var(--t-lead); color: var(--fg-2); max-width: 54ch; text-wrap: pretty; }

.pain { display: grid; grid-template-columns: auto 1fr; gap: clamp(24px, 5vw, 64px); align-items: center; }
.pain-obj { width: clamp(150px, 20vw, 240px); height: auto; }
.pain-list { display: grid; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; max-width: 58ch; }
.pain-list li { display: flex; gap: 12px; color: var(--fg-2); }
.pain-list .ic { margin-top: 4px; color: var(--accent-ink); }
.pain-list strong { color: var(--fg); font-weight: 620; }

.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.tile { background: var(--surface); border-radius: var(--r-tile); box-shadow: var(--e1), var(--top); padding: 10px; transition: transform var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out); }
.tile:hover { transform: translateY(-3px); box-shadow: var(--e2), var(--top); }
.tile-visual { min-height: 150px; padding: 16px; border-radius: var(--r-md); background: var(--sunken); display: flex; flex-direction: column; justify-content: center; gap: 8px; overflow: hidden; }
.tile-copy { padding: 16px 12px 12px; }
.tile-copy h3 { font: 650 18px/1.2 var(--font-display); letter-spacing: -0.02em; }
.tile-copy p { margin-top: 6px; color: var(--fg-2); font-size: 14.5px; text-wrap: pretty; }
.step-no { font: 600 12px var(--font-mono); color: var(--accent-ink); margin-bottom: 6px; display: block; }
.chip-mono { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; max-width: 100%; padding: 8px 12px; border-radius: var(--r-sm); background: var(--surface); box-shadow: var(--e1); font: 500 13px var(--font-mono); letter-spacing: -0.02em; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.chip-mono .ic { color: var(--accent-ink); }
.mo-caret::after { color: var(--accent); }
.bento { display: grid; grid-template-columns: repeat(12, 1fr); gap: 12px; }
.span-5 { grid-column: span 5; } .span-7 { grid-column: span 7; } .span-6 { grid-column: span 6; } .span-4 { grid-column: span 4; }
.bar-track { height: 8px; border-radius: 99px; background: color-mix(in oklch, var(--fg) 9%, transparent); overflow: hidden; }
.bar-fill { height: 100%; width: var(--w); border-radius: inherit; background: var(--accent); transform-origin: left; }
.blocked { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: var(--r-sm); background: var(--surface); box-shadow: var(--e1); font-size: 13px; }
.blocked .tag { margin-left: auto; font-size: 12px; font-weight: 650; color: var(--ok); display: inline-flex; gap: 4px; align-items: center; }
.blocked .ic { width: 14px; height: 14px; }
.blocked .url { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-family: var(--font-mono); font-size: 12px; color: var(--fg-2); letter-spacing: -0.02em; }

/* Pricing */
.seg { display: inline-flex; padding: 4px; gap: 2px; border-radius: 13px; background: var(--sunken); box-shadow: inset 0 0 0 1px var(--line); }
.seg button { min-height: 36px; padding: 0 14px; border: 0; border-radius: 10px; background: transparent; color: var(--fg-2); font: 600 14px var(--font-sans); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: background var(--dur-micro), color var(--dur-micro); }
.seg button[aria-pressed="true"] { background: var(--surface); color: var(--fg); box-shadow: var(--e1), var(--top); }
.seg .save { font-size: 12px; font-weight: 650; color: var(--accent-ink); }
.pricing-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: clamp(26px, 3vw, 36px); }
.pricing-head .sec-head { margin: 0; }
.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; align-items: stretch; }
.plan { position: relative; display: flex; flex-direction: column; padding: 26px; border-radius: var(--r-tile); background: linear-gradient(180deg, var(--surface), var(--surface-2) 180px); box-shadow: var(--e1), var(--top); }
.plan.featured { box-shadow: 0 0 0 2px var(--accent), 0 28px 60px -22px color-mix(in oklch, var(--accent) 45%, transparent), var(--top); }
.plan-badge { position: absolute; top: 24px; right: 22px; padding: 4px 10px; border-radius: 99px; font-size: 12px; font-weight: 650; background: var(--accent-soft); color: var(--accent-ink); }
.plan h3 { font: 650 22px/1.1 var(--font-display); letter-spacing: -0.025em; }
.plan-tag { margin-top: 8px; min-height: 44px; font-size: 14px; color: var(--fg-2); text-wrap: pretty; padding-right: 2px; }
.plan-price { margin-top: 18px; font: 650 40px/1 var(--font-display); letter-spacing: -0.035em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.plan-price small { font: 500 15px var(--font-sans); letter-spacing: 0; color: var(--fg-2); }
.plan-bill { margin-top: 8px; min-height: 21px; font-size: 13.5px; color: var(--fg-2); }
.plan ul { display: grid; gap: 10px; margin: 20px 0 24px; padding: 0; list-style: none; font-size: 14.5px; }
.plan li { display: flex; gap: 10px; }
.plan li .ic { margin-top: 3px; color: var(--accent-ink); }
.plan li.dim { color: var(--fg-2); }
.plan li.dim .ic { color: var(--fg-3); }
.plan li strong { font-weight: 640; }
.plan .btn { margin-top: auto; }
.plan-weekly { margin-top: 12px; text-align: center; font-size: 13.5px; font-weight: 520; color: var(--accent-ink); }
.addons-note { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-top: 12px; padding: 16px 20px; border-radius: var(--r-card); background: var(--surface-2); box-shadow: var(--e1); font-size: 14.5px; }
.addons-note strong { font-weight: 640; }
.price-swap { font-variant-numeric: tabular-nums; }

/* FAQ */
.faq-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(24px, 4vw, 56px); align-items: start; }
.faq-grid h2 { font-size: var(--t-h2); line-height: 1.08; }
.faq { background: var(--surface); border-radius: var(--r-card); box-shadow: var(--e1), var(--top); padding: 4px 20px; }
.faq details + details { border-top: 1px solid var(--line); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 56px; padding: 12px 0; font-weight: 620; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ic { transition: transform 220ms var(--ease-out); color: var(--fg-3); }
.faq details[open] summary .ic { transform: rotate(180deg); }
.faq details p { padding-bottom: 18px; color: var(--fg-2); max-width: 60ch; text-wrap: pretty; }

/* Final CTA */
.cta { position: relative; display: grid; grid-template-columns: 1.3fr .7fr; align-items: center; gap: 24px; min-height: 420px; padding: clamp(32px, 6vw, 72px); border-radius: var(--r-block); background: var(--block); color: var(--block-fg); overflow: hidden; }
.cta h2 { font-size: clamp(32px, 4.6vw, 56px); line-height: 1.03; max-width: 15ch; }
.cta p { margin-top: 14px; color: var(--block-fg-2); max-width: 46ch; }
.cta-obj { justify-self: center; width: clamp(130px, 18vw, 220px); height: auto; }

/* Footer */
.footer { padding-block: 40px 48px; color: var(--fg-2); font-size: 13.5px; }
.footer-in { display: flex; gap: 16px 24px; flex-wrap: wrap; align-items: center; }
.footer a { color: inherit; }
.footer .spacer { margin-right: auto; }

/* Forms */
label.field { display: grid; gap: 6px; font-size: 14px; font-weight: 600; }
.input, .field input { width: 100%; min-height: 46px; padding: 0 14px; border: 0; border-radius: var(--r-btn); background: var(--sunken); color: var(--fg); font: 400 15.5px var(--font-sans); box-shadow: inset 0 0 0 1px var(--line); }
.input:focus, .field input:focus { outline: 0; box-shadow: 0 0 0 2px var(--accent); }
.field .hint { font-weight: 400; font-size: 13px; color: var(--fg-2); }
.pw-wrap { position: relative; }
.pw-wrap input { padding-right: 76px; }
.pw-toggle { position: absolute; top: 5px; right: 5px; min-height: 36px; }
.addr-input { display: flex; align-items: center; border-radius: var(--r-btn); background: var(--sunken); box-shadow: inset 0 0 0 1px var(--line); padding-right: 14px; }
.addr-input:focus-within { box-shadow: 0 0 0 2px var(--accent); }
.addr-input input { min-width: 30px; background: transparent; box-shadow: none !important; font: 500 15px var(--font-mono); letter-spacing: -0.02em; }
.addr-input .claim-domain { font-size: 14px; }
.form-error { display: flex; gap: 8px; padding: 12px 14px; border-radius: var(--r-btn); background: var(--danger-soft); color: var(--danger); font-size: 14px; font-weight: 520; }
.form-ok { display: flex; gap: 8px; padding: 12px 14px; border-radius: var(--r-btn); background: var(--ok-soft); color: var(--ok); font-size: 14px; font-weight: 520; }
.form-warn { display: flex; gap: 8px; padding: 12px 14px; border-radius: var(--r-btn); background: var(--warn-soft); color: var(--warn); font-size: 14px; font-weight: 520; align-items: center; flex-wrap: wrap; }
.form-error .ic, .form-ok .ic, .form-warn .ic { margin-top: 2px; }
.stack { display: grid; gap: 16px; }

/* Auth cards */
.center-page { min-height: 100dvh; display: grid; place-items: center; padding: 24px 16px; }
.auth-card { width: min(420px, 100%); padding: 28px; background: var(--surface); border-radius: var(--r-tile); box-shadow: var(--e3), var(--top); }
.auth-card .brand { margin-bottom: 24px; }
.auth-card h1 { font-size: 28px; line-height: 1.1; margin-bottom: 8px; }
.auth-foot { margin-top: 18px; font-size: 14px; color: var(--fg-2); }
.code-box { padding: 16px; border-radius: var(--r-md); background: var(--sunken); font: 600 15px var(--font-mono); text-align: center; overflow-wrap: anywhere; box-shadow: inset 0 0 0 1px var(--line-strong); }

/* Checkout */
.co-top { display: flex; align-items: center; height: 72px; }
.plan-pick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.plan-pick button { display: grid; gap: 2px; text-align: left; padding: 12px; border: 0; border-radius: var(--r-md); background: var(--surface-2); color: var(--fg); box-shadow: var(--e1); cursor: pointer; font: inherit; min-height: 70px; }
.plan-pick button[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--accent); background: var(--surface); }
.plan-pick strong { font-weight: 650; font-size: 15px; }
.plan-pick span { font-size: 12.5px; color: var(--fg-2); }
.addon { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: var(--r-md); background: var(--surface-2); box-shadow: var(--e1); cursor: pointer; }
.addon + .addon { margin-top: 8px; }
.addon input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--brand); flex: none; }
.addon strong { display: block; font-weight: 620; font-size: 14.5px; }
.addon small { display: block; font-size: 13px; color: var(--fg-2); }
.addon .price { margin-left: auto; font-size: 14px; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
#payment-element { min-height: 120px; }

/* App */
.app-top { display: flex; align-items: center; gap: 8px; height: 68px; }
.app-grid { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 16px; padding-bottom: 48px; align-items: start; }
.side { position: sticky; top: 16px; display: grid; gap: 12px; }
.side-card { padding: 14px; background: var(--surface); border-radius: var(--r-card); box-shadow: var(--e1), var(--top); }
.side-title { font-size: 12.5px; font-weight: 650; color: var(--fg-2); margin-bottom: 8px; padding-inline: 8px; }
.addr-link { display: block; padding: 8px; border-radius: var(--r-sm); font: 500 12.5px var(--font-mono); letter-spacing: -0.02em; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.addr-link:hover { background: var(--sunken); }
.addr-link[aria-current="true"] { background: var(--accent-soft); color: var(--accent-ink); font-weight: 600; }
.usage-line { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 8px; color: var(--fg-2); font-variant-numeric: tabular-nums; }
.listing { background: var(--surface); border-radius: var(--r-card); box-shadow: var(--e1), var(--top); overflow: hidden; }
.msg { display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 14px 18px; text-decoration: none; }
.msg + .msg { box-shadow: inset 0 1px 0 var(--line); }
.msg:hover { background: var(--surface-2); }
.msg-from, .msg-subject { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.msg-from { font-size: 14.5px; color: var(--fg-2); }
.msg-text { min-width: 0; font-size: 14.5px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--fg-2); }
.msg-text b { font-weight: 500; color: var(--fg-2); }
.msg-time { font-size: 13px; color: var(--fg-3); font-variant-numeric: tabular-nums; }
.msg.unread .msg-from, .msg.unread .msg-text b { color: var(--fg); font-weight: 680; }
.msg.unread { position: relative; }
.msg.unread::before { content: ""; position: absolute; left: 6px; top: 21px; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.empty { display: grid; justify-items: center; gap: 8px; padding: 56px 24px; text-align: center; }
.empty img { width: 104px; height: 104px; margin-bottom: 6px; }
.empty h2 { font-size: 24px; line-height: 1.15; }
.empty p { max-width: 42ch; color: var(--fg-2); }
.pager { display: flex; justify-content: space-between; margin-top: 12px; }
.read-head { padding: 18px 20px; display: grid; gap: 6px; }
.read-head h1 { font: 650 22px/1.2 var(--font-display); letter-spacing: -0.02em; overflow-wrap: anywhere; }
.read-meta { font-size: 13.5px; color: var(--fg-2); overflow-wrap: anywhere; }
.read-tools { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 0 20px 14px; }
.notice { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 10px 20px; background: var(--sunken); font-size: 13.5px; color: var(--fg-2); }
.notice a { font-weight: 600; color: var(--accent-ink); }
.read-frame { display: block; width: 100%; height: max(560px, 72dvh); border: 0; background: oklch(0.998 0.002 172); color-scheme: light; }
.att { display: flex; gap: 8px; flex-wrap: wrap; padding: 12px 20px; }
.acct { display: grid; gap: 12px; padding-bottom: 56px; max-width: 760px; }
.acct-card { padding: clamp(18px, 3vw, 26px); background: var(--surface); border-radius: var(--r-card); box-shadow: var(--e1), var(--top); }
.acct-card h2 { font: 650 19px/1.2 var(--font-display); letter-spacing: -0.02em; margin-bottom: 14px; }
.row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.row + .row { margin-top: 10px; }
.inv { display: grid; grid-template-columns: 1fr auto auto; gap: 16px; align-items: center; padding: 10px 0; font-size: 14.5px; font-variant-numeric: tabular-nums; }
.inv + .inv { border-top: 1px solid var(--line); }
.status { display: inline-flex; gap: 6px; align-items: center; padding: 4px 10px; border-radius: 99px; font-size: 13px; font-weight: 620; }
.status.ok { background: var(--ok-soft); color: var(--ok); }
.status.warn { background: var(--warn-soft); color: var(--warn); }
.status.bad { background: var(--danger-soft); color: var(--danger); }
.status .ic { width: 14px; height: 14px; }
dialog { width: min(440px, calc(100% - 32px)); padding: 26px; border: 0; border-radius: var(--r-tile); color: var(--fg); background: var(--surface); box-shadow: var(--e3); }
dialog::backdrop { background: rgb(0 0 0 / .45); }
dialog h2 { font: 650 22px/1.15 var(--font-display); letter-spacing: -0.025em; margin-bottom: 10px; }
.dialog-actions { display: flex; gap: 8px; margin-top: 18px; justify-content: flex-end; flex-wrap: wrap; }

/* Legal */
.legal { max-width: 720px; margin-inline: auto; padding-block: 32px 72px; }
.legal h1 { font-size: clamp(32px, 4vw, 44px); line-height: 1.05; margin-bottom: 10px; }
.legal h2 { font-size: 21px; margin: 30px 0 8px; letter-spacing: -0.02em; }
.legal p, .legal li { color: var(--fg-2); }
.legal p + p { margin-top: 10px; }
.legal ul { padding-left: 20px; }

@media (max-width: 960px) {
  .hero-grid, .faq-grid { grid-template-columns: 1fr; }
  .hero h1 { max-width: 15ch; }
  .steps, .plans { grid-template-columns: 1fr; }
  .plan.featured { order: -1; }
  .span-5, .span-7, .span-6, .span-4 { grid-column: span 12; }
  .plan-tag { min-height: 0; }
  .app-grid { grid-template-columns: 1fr; }
  .side { position: static; order: 2; }
  .msg { grid-template-columns: 1fr auto; row-gap: 2px; }
  .msg-text { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 560px) {
  .nav-hide { display: none; }
  .stage-bubble { top: -26px !important; right: -6px !important; }
  .stage-bubble img { width: 58px; height: 58px; }
  .pain { grid-template-columns: 1fr; }
  .pain-obj { width: 150px; }
  .cta { grid-template-columns: 1fr; min-height: 0; }
  .cta-obj { display: none; }
  .plan-pick { grid-template-columns: 1fr; }
  .plan-pick button { min-height: 56px; }
  .pricing-head .seg { width: 100%; }
  .pricing-head .seg button { flex: 1; justify-content: center; }
  .inv { grid-template-columns: 1fr auto; }
  .btn { min-height: 44px; }
  .read-tools .btn { flex: 1; }
}

/* OAuth consent */
.consent-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.consent-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; }
.consent-list .ic { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--accent); }

/* Secondary method behind a disclosure (recovery code, change email) */
.alt-method { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 6px; }
.alt-method summary { display: flex; justify-content: space-between; align-items: center; min-height: 44px; font-size: 14.5px; font-weight: 600; color: var(--fg-2); cursor: pointer; list-style: none; }
.alt-method summary::-webkit-details-marker { display: none; }
.alt-method summary .ic { width: 16px; height: 16px; transition: transform 220ms var(--ease-out); }
.alt-method[open] summary .ic { transform: rotate(180deg); }
.alt-method form { padding: 8px 0 4px; }

/* ---------------------------------------------------------------- /pricing */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.pr-top { padding-block: clamp(40px, 6vw, 72px) clamp(56px, 8vw, 96px); }
.pr-title { font-size: clamp(34px, 4.4vw, 54px); line-height: 1.03; max-width: 20ch; }
.pr-lead { margin-top: 16px; font-size: var(--t-lead); color: var(--fg-2); max-width: 52ch; text-wrap: pretty; }


.pr-math { margin-top: 12px; padding: 10px 12px; border-radius: var(--r-md); background: var(--accent-soft); color: var(--accent-ink); font-size: 13.5px; text-wrap: pretty; }
.pr-math strong { font-weight: 680; font-variant-numeric: tabular-nums; }
.plan li.pr-util { color: var(--fg-2); }
.plan li.pr-core, .plan li.pr-last:not(.dim) { font-size: 15px; }
.pr-trigger { margin-top: 10px; text-align: center; font-size: 13px; color: var(--fg-2); overflow-wrap: anywhere; }
.plan.featured .pr-trigger { color: var(--fg); font-weight: 520; }
.pr-plans .plan-weekly { margin-top: 6px; }

.pr-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 24px; margin: 22px 0 0; padding: 0; list-style: none; font-size: 13.5px; color: var(--fg-2); }
.pr-trust li { display: inline-flex; align-items: center; gap: 8px; }
.pr-trust .ic { width: 16px; height: 16px; color: var(--accent-ink); }

.pr-day31 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pr-box { margin: 0; }
.pr-box figcaption { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 4px 12px; font: 650 19px var(--font-display); letter-spacing: -0.02em; }
.pr-box-pro .pr-preview { box-shadow: 0 0 0 2px var(--accent), var(--e3), var(--top); }
.pr-gone { animation: pr-gone 6.5s var(--ease-out) var(--d, 0ms) infinite; }
@keyframes pr-gone {
  0%, 28% { opacity: 1; transform: none; filter: none; }
  42%, 84% { opacity: .16; transform: translateX(14px); filter: grayscale(1); }
  100% { opacity: 1; transform: none; filter: none; }
}
.pr-kept { animation: pr-kept 6.5s var(--ease-out) infinite; }
@keyframes pr-kept {
  0%, 30% { background: transparent; }
  44%, 82% { background: var(--accent-soft); }
  100% { background: transparent; }
}
.pr-day31-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 18px; padding: 16px 16px 16px 22px; border-radius: var(--r-card); background: var(--surface-2); box-shadow: var(--e1), var(--top); }
.pr-day31-cta p { font-size: 15px; color: var(--fg-2); max-width: 56ch; }
.pr-day31-cta strong { color: var(--fg); font-weight: 640; }

.pr-compare { border-radius: var(--r-tile); background: var(--surface); box-shadow: var(--e1), var(--top); overflow: hidden; }
.pr-row { display: grid; grid-template-columns: 1.15fr 1fr 1fr 1fr; align-items: stretch; }
.pr-row + .pr-row { box-shadow: 0 -1px 0 var(--line); }
.pr-row > * { padding: 16px 18px; }
.pr-row-head { font-size: 14px; font-weight: 650; }
.pr-row-head > :not(.pr-us) { color: var(--fg-2); }
.pr-label { font-size: 14.5px; font-weight: 600; }
.pr-cell { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--fg-2); }
.pr-cell .ic { width: 18px; height: 18px; flex: none; margin-top: 1px; }
.pr-yes .ic { color: var(--ok); }
.pr-no .ic { color: var(--danger); }
.pr-us { background: color-mix(in oklch, var(--accent-soft) 70%, transparent); color: var(--fg); }
.pr-row-head .pr-us { color: var(--accent-ink); }

.pr-addons { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; padding: clamp(22px, 4vw, 36px); border-radius: var(--r-tile); background: var(--surface-2); box-shadow: var(--e1), var(--top); }
.pr-addons .eyebrow { margin-bottom: 10px; }
.pr-addons-title { font-size: clamp(24px, 2.6vw, 32px); line-height: 1.1; max-width: 18ch; }
.pr-addon-list { display: grid; gap: 10px; }
.pr-addon { display: flex; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: var(--r-md); background: var(--surface); box-shadow: var(--e1); font-size: 14.5px; }
.pr-addon strong { font-weight: 650; }
.pr-addon span { color: var(--fg-2); font-variant-numeric: tabular-nums; }

@media (max-width: 960px) {
  .pr-day31, .pr-addons { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .pr-row { grid-template-columns: repeat(3, 1fr); }
  .pr-row > * { padding: 12px 10px; }
  .pr-row-head > :first-child { display: none; }
  .pr-label { grid-column: 1 / -1; padding-bottom: 0; background: none; }
  .pr-cell { flex-direction: column; gap: 4px; font-size: 12.5px; }
  .pr-row-head { font-size: 12.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .pr-gone, .pr-kept { animation: none; }
  .pr-gone { opacity: .3; }
}


/* ---------------------------------------------------------------- /signup */
.sx { max-width: 1040px; }
.sx-top { display: flex; align-items: center; gap: 12px; height: 76px; }
.sx-top-right { font-size: 14px; color: var(--fg-2); }
.sx-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; padding-bottom: 56px; }
.sx-main { padding: clamp(22px, 4vw, 40px); border-radius: var(--r-tile); background: var(--surface); box-shadow: var(--e2), var(--top); }
.sx-title { font-size: clamp(30px, 3.6vw, 40px); line-height: 1.04; }
.sx-sub { margin-top: 8px; color: var(--fg-2); }
.sx-block { margin-top: 32px; }
.sx-h { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font: 650 17px/1.2 var(--font-display); letter-spacing: -0.02em; }
.sx-n { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 99px; background: var(--accent-soft); color: var(--accent-ink); font: 700 12px var(--font-sans); }
.sx-hint { margin-top: 8px; font-size: 13.5px; color: var(--fg-2); }

/* The generated address: the product, front and center. */
.sx-addr { display: flex; align-items: center; gap: 10px; padding: 6px 6px 6px 14px; border-radius: var(--r-card); background: var(--accent-soft); box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--accent) 22%, transparent); }
.sx-addr > .ic { width: 18px; height: 18px; flex: none; color: var(--accent-ink); }
.sx-addr-text { flex: 1; min-width: 0; font: 600 16px var(--font-mono); letter-spacing: -0.03em; color: var(--fg); overflow-wrap: anywhere; }
.sx-addr-text span { color: var(--accent-ink); font-weight: 500; }
.sx-addr-text.is-swapping { animation: sx-swap 360ms var(--spring); }
@keyframes sx-swap { from { opacity: 0; transform: translateY(6px); } }
.sx-shuffle { flex: none; gap: 6px; background: var(--surface); box-shadow: var(--e1); }
.sx-shuffle:hover { background: var(--surface); box-shadow: var(--e2); }
.sx-shuffle.is-busy .ic { animation: sx-spin 600ms linear infinite; }
@keyframes sx-spin { to { transform: rotate(360deg); } }

/* Plan list: one surface, plan names as section labels, no boxes inside boxes. */
.sx-list { border-radius: var(--r-card); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line-strong); overflow: hidden; }
.sx-group + .sx-group { box-shadow: 0 -1px 0 var(--line); }
.sx-group-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 14px 16px 6px; }
.sx-group-name strong { font: 650 15px var(--font-display); letter-spacing: -0.01em; }
.sx-chip { align-self: center; padding: 2px 8px; border-radius: 99px; background: var(--accent-soft); color: var(--accent-ink); font-size: 11.5px; font-weight: 680; }
.sx-group-sum { font-size: 12.5px; color: var(--fg-3); }
.sx-opt { position: relative; display: grid; grid-template-columns: 18px auto 1fr auto; align-items: center; gap: 12px; margin: 0 6px; padding: 11px 10px; border-radius: var(--r-md); cursor: pointer; transition: background var(--dur-micro) var(--ease-out); }
.sx-group .sx-opt:last-child { margin-bottom: 6px; }
.sx-opt:hover { background: var(--sunken); }
.sx-opt input { position: absolute; opacity: 0; pointer-events: none; }
.sx-radio { width: 18px; height: 18px; border-radius: 99px; box-shadow: inset 0 0 0 1.5px var(--line-strong); background: var(--surface); transition: box-shadow 180ms var(--spring); }
.sx-opt input:checked ~ .sx-radio { box-shadow: inset 0 0 0 5.5px var(--accent); }
.sx-opt input:focus-visible ~ .sx-radio { box-shadow: var(--focus-ring); }
.sx-opt:has(input:checked) { background: var(--accent-soft); }
.sx-opt-label { font-size: 15px; font-weight: 620; }
.sx-opt-note { font-size: 13px; color: var(--fg-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sx-opt:has(input:checked) .sx-opt-note { color: var(--accent-ink); }
.sx-opt-price { font: 650 16px var(--font-display); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sx-opt-price small { font: 500 12.5px var(--font-sans); letter-spacing: 0; color: var(--fg-2); }
.sx-fields { display: grid; gap: 16px; }
.sx-payment { margin: 22px 0 16px; }
#payment-step .form-error { margin-bottom: 12px; }

/* Summary: always beside the form, with the one primary action. */
.sx-side { position: sticky; top: 20px; }
.sx-card { padding: 22px; border-radius: var(--r-tile); background: var(--surface); box-shadow: var(--e3), var(--top); }
.sx-line { display: flex; justify-content: space-between; gap: 10px; font-size: 15px; }
.sx-line span { color: var(--fg-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sx-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 18px; padding-top: 16px; box-shadow: 0 -1px 0 var(--line); font-weight: 600; }
.sx-total strong { font: 650 28px var(--font-display); letter-spacing: -0.035em; font-variant-numeric: tabular-nums; }
.sx-renew { margin: 2px 0 16px; font-size: 12.5px; color: var(--fg-2); text-align: right; }
.sx-card .form-error, .sx-card .form-warn { margin-bottom: 12px; }
.sx-trust { display: grid; gap: 7px; margin: 16px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--fg-2); }
.sx-trust li { display: flex; gap: 8px; align-items: center; }
.sx-trust .ic { width: 15px; height: 15px; color: var(--accent-ink); }
.sx-bar { display: none; }
/* Trust: a quiet "secure" badge in the header, the note under Pay, a human to write to. */
.sx-secure { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: var(--r-full); background: var(--surface); box-shadow: var(--e1), var(--top); font-size: 12.5px; font-weight: 620; color: var(--fg-2); }
.sx-secure .ic { width: 14px; height: 14px; color: var(--accent-ink); }
.sx-pay-note { display: flex; gap: 8px; justify-content: center; margin-top: 12px; font-size: 12.5px; color: var(--fg-2); text-align: center; text-wrap: pretty; }
.sx-pay-note .ic { width: 15px; height: 15px; flex: none; margin-top: 1px; color: var(--accent-ink); }
.sx-help { margin-top: 14px; padding-top: 14px; box-shadow: 0 -1px 0 var(--line); font-size: 12.5px; line-height: 1.45; color: var(--fg-2); }
.sx-help a { color: var(--accent-ink); font-weight: 600; overflow-wrap: anywhere; }

@media (max-width: 900px) {
  .sx-grid { grid-template-columns: 1fr; padding-bottom: 96px; }
  .sx-side { position: static; }
  .sx-top-right { font-size: 13px; }
  /* Mobile: the total and the action stay on screen while scrolling the form. */
  .sx-bar { position: fixed; z-index: 30; left: 12px; right: 12px; bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 16px; border-radius: var(--r-card); background: var(--glass); -webkit-backdrop-filter: blur(20px) saturate(1.6); backdrop-filter: blur(20px) saturate(1.6); box-shadow: var(--e3), var(--top); transition: transform 280ms var(--ease-out), opacity 280ms var(--ease-out); }
  .sx-bar span { display: grid; line-height: 1.15; }
  .sx-bar strong { font: 650 19px var(--font-display); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
  .sx-bar small { font-size: 12px; color: var(--fg-2); }
  .sx-bar.is-hidden { transform: translateY(140%); opacity: 0; pointer-events: none; }
}
@media (max-width: 560px) {
  .sx-top { height: auto; padding: 16px 0; flex-wrap: wrap; }
  .sx-top-right { flex-basis: 100%; }
  .sx-opt { grid-template-columns: 18px 1fr auto; row-gap: 0; }
  .sx-opt-note { grid-column: 2; grid-row: 2; white-space: normal; }
  .sx-opt-price { grid-row: 1 / span 2; grid-column: 3; }
  .sx-shuffle { padding: 0 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .sx-addr-text.is-swapping, .sx-shuffle.is-busy .ic { animation: none; }
}
/* /signup/<plan>-<period>: the decided offer, fixed. */
.sx-fixed { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 14px; padding: 16px 18px; border-radius: var(--r-card); background: var(--surface); box-shadow: 0 0 0 2px var(--accent), var(--e1); }
.sx-fixed-main { display: grid; gap: 2px; min-width: 0; }
.sx-fixed-main strong { font: 650 17px var(--font-display); letter-spacing: -0.02em; }
.sx-fixed-main span { font-size: 13px; color: var(--fg-2); }
.sx-fixed-price { font: 650 20px var(--font-display); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sx-fixed-price small { font: 500 13px var(--font-sans); letter-spacing: 0; color: var(--fg-2); }
.sx-was { font: 500 0.8em var(--font-sans); color: var(--fg-2); text-decoration-thickness: 1px; margin-right: 2px; }
.sx-fixed-main .sx-chip { justify-self: start; color: var(--accent-ink); font-size: 11.5px; }
.sx-change { font-size: 13.5px; font-weight: 600; color: var(--accent-ink); }
@media (max-width: 560px) {
  .sx-fixed { grid-template-columns: 1fr auto; }
  .sx-change { grid-column: 1 / -1; }
}
.sx-addr-text span { white-space: nowrap; }
@media (max-width: 560px) {
  .sx-addr { padding-left: 12px; gap: 10px; }
  .sx-addr-text { font-size: 15.5px; }
  .sx-shuffle-label { display: none; }
  .sx-shuffle { width: 36px; padding: 0; justify-content: center; }
}

/* "Get this address": a ready-made address and one action (landing, pricing). */
.ga { margin-top: 28px; max-width: 560px; }
.ga-row { display: flex; align-items: center; gap: 8px; padding: 8px; border-radius: 20px; background: var(--surface); box-shadow: var(--e3), var(--top); }
.ga-addr { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; height: 52px; padding: 0 8px 0 14px; border-radius: 12px; background: var(--accent-soft); color: var(--fg); }
.ga-addr > .ic { width: 18px; height: 18px; flex: none; color: var(--accent-ink); }
.ga-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 16px var(--font-mono); letter-spacing: -0.03em; }
.ga-text.is-swapping { animation: sx-swap 360ms var(--spring); }
.ga-dom { color: var(--accent-ink); font-weight: 500; }
.ga-shuffle { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 11px; background: var(--surface); color: var(--fg-2); box-shadow: var(--e1); cursor: pointer; transition: box-shadow var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out); }
.ga-shuffle:hover { color: var(--fg); box-shadow: var(--e2); }
.ga-shuffle:focus-visible { outline: 0; box-shadow: var(--focus-ring); }
.ga-shuffle.is-busy .ic { animation: sx-spin 600ms linear infinite; }
.ga-go { flex: none; }
.ga-note { margin: 10px 2px 0; font-size: 13.5px; color: var(--fg-2); }
.ga-dark .ga-row { box-shadow: 0 24px 50px -20px rgb(0 0 0 / .55), 0 0 0 1px rgb(255 255 255 / .08); }
.ga-dark .ga-note { color: var(--block-fg-2); }
@media (max-width: 560px) {
  .ga-row { flex-wrap: wrap; }
  .ga-addr { flex-basis: calc(100% - 48px); }
  .ga-go { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ga-text.is-swapping, .ga-shuffle.is-busy .ic { animation: none; }
}
/* Consent next to the action: one checkbox, recorded with the purchase. */
.sx-accept { position: relative; display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; margin-bottom: 14px; font-size: 12.5px; line-height: 1.45; color: var(--fg-2); cursor: pointer; }
.sx-accept input { position: absolute; opacity: 0; width: 20px; height: 20px; margin: 0; }
.sx-check { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 6px; background: var(--surface); box-shadow: inset 0 0 0 1.5px var(--line-strong); transition: background var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out); }
.sx-check .ic { width: 14px; height: 14px; color: var(--on-accent); opacity: 0; transform: scale(.6); transition: opacity var(--dur-micro) var(--ease-out), transform 220ms var(--spring); }
.sx-accept input:checked + .sx-check { background: var(--accent); box-shadow: inset 0 0 0 1.5px var(--accent-edge); }
.sx-accept input:checked + .sx-check .ic { opacity: 1; transform: none; }
.sx-accept input:focus-visible + .sx-check { box-shadow: var(--focus-ring); }
.sx-accept a { color: var(--fg); }
.legal-meta { font-size: 13.5px; color: var(--fg-3); }
.legal-box { margin-top: 22px; padding: 18px 20px; border-radius: var(--r-card); background: var(--accent-soft); box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--accent) 20%, transparent); }
.legal-box p { color: var(--fg); }
.legal li + li { margin-top: 6px; }
.legal a { color: var(--accent-ink); }
.legal h2 { scroll-margin-top: 20px; }

/* ---------------------------------------------------------------- /enterprise */
.ent-head { margin-bottom: clamp(30px, 4vw, 48px); }
.ent-per { margin-top: 12px; padding: 10px 12px; border-radius: var(--r-md); background: var(--sunken); color: var(--fg-2); font-size: 13.5px; text-wrap: pretty; }
.ent-per.is-featured { background: var(--accent-soft); color: var(--accent-ink); }
.ent-per strong { font-weight: 680; font-variant-numeric: tabular-nums; }
.ent-split { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(32px, 5vw, 64px); align-items: center; }
.ent-split .sec-head p + p { margin-top: 12px; }
.ent-count { margin-left: auto; font-size: 12px; font-weight: 500; color: var(--fg-2); }
.ent-rcpt { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ent-row { grid-template-columns: 1.15fr 1fr 1fr; }
.ent-num { font-variant-numeric: tabular-nums; }
.ent-num strong { font-weight: 650; color: var(--fg); }
.ent-uses { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.ent-use { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: var(--r-tile); background: linear-gradient(180deg, var(--surface), var(--surface-2) 180px); box-shadow: var(--e1), var(--top); transition: transform 220ms var(--ease-out), box-shadow 220ms var(--ease-out); }
.ent-use:hover { transform: translateY(-2px); box-shadow: var(--e2), var(--top); }
.ent-use h3 { font: 650 19px/1.2 var(--font-display); letter-spacing: -0.02em; }
.ent-use p { font-size: 14.5px; color: var(--fg-2); text-wrap: pretty; }
.ent-chip { align-self: flex-start; margin-top: auto; padding: 6px 10px; border-radius: var(--r-full); background: var(--sunken); font-size: 12px; color: var(--fg-2); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ent-use p + .ent-chip { margin-top: 10px; }
.faq details p a { color: var(--accent-ink); }
@media (max-width: 960px) {
  .ent-split, .ent-uses { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .ent-row > * { padding: 14px 12px; }
  .ent-count { display: none; }
}

/* Admin (internal, read-only) */
.adm { display: grid; gap: 16px; padding-bottom: 56px; }
.adm-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; padding-top: 8px; }
.adm-head h1 { font: 650 clamp(26px, 3vw, 34px)/1.05 var(--font-display); letter-spacing: var(--track-display); }
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.kpi { display: grid; gap: 4px; align-content: start; padding: 16px 18px; background: var(--surface); border-radius: var(--r-card); box-shadow: var(--e1), var(--top); }
.kpi-label { font-size: 13px; font-weight: 600; color: var(--fg-2); }
.kpi-value { font: 650 30px/1.1 var(--font-display); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.kpi-note { font-size: 12.5px; color: var(--fg-3); font-variant-numeric: tabular-nums; }
.kpi-warn { background: var(--warn-soft); }
.kpi-warn .kpi-label, .kpi-warn .kpi-value { color: var(--warn); }
.adm-tools { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px; box-shadow: inset 0 -1px 0 var(--line); }
.adm-tabs { display: flex; gap: 2px; flex-wrap: wrap; }
.adm-tabs a { padding: 8px 10px; border-radius: var(--r-sm); font-size: 14px; font-weight: 560; color: var(--fg-2); text-decoration: none; }
.adm-tabs a:hover { background: var(--sunken); color: var(--fg); }
.adm-tabs a[aria-current="true"] { background: var(--accent-soft); color: var(--accent-ink); font-weight: 650; }
.adm-search { flex: 0 1 280px; }
.adm-search .input { min-height: 38px; font-size: 14px; }
.adm-table-wrap { overflow-x: auto; }
.adm-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.adm-table th { padding: 10px 14px; text-align: left; font-size: 12.5px; font-weight: 600; color: var(--fg-3); white-space: nowrap; }
.adm-table td { padding: 10px 14px; box-shadow: inset 0 1px 0 var(--line); vertical-align: middle; }
.adm-table tbody tr:hover { background: var(--surface-2); }
.adm-table .num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.adm-table .status { white-space: nowrap; }
.acct-card .adm-table td, .acct-card .adm-table th { padding-inline: 8px 12px; }
.adm-acct { display: grid; gap: 2px; text-decoration: none; min-width: 200px; }
.adm-acct .mono { font-size: 13.5px; font-weight: 600; }
.adm-acct:hover .mono { color: var(--accent-ink); }
.adm-ua { max-width: 260px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.adm-detail { max-width: 860px; }
.adm-back { text-decoration: none; justify-self: start; padding-top: 4px; }
.adm-back:hover { color: var(--fg); }
.adm-dl { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px 16px; font-size: 14.5px; }
.adm-dl dt { color: var(--fg-2); font-weight: 520; }
.adm-dl dd { margin: 0; min-width: 0; }
.adm-dl a { color: var(--accent-ink); font-weight: 600; }
.adm-wrap { overflow-wrap: anywhere; }
.adm-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
@media (max-width: 900px) { .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .kpi { padding: 14px; }
  .kpi-value { font-size: 24px; }
  .adm-search { flex-basis: 100%; }
  .adm-dl { grid-template-columns: 1fr; gap: 2px; }
  .adm-dl dd { margin-bottom: 10px; }
}
