/* The reference template's header is 56px at every breakpoint.
   Colours are the template's own design tokens, not approximations:
   surface #000 (token-152906c4, the same token the template paints body with),
   primary text #fff (token-355f11e7), muted text #7c7e83 (token-cb838363).
   The template's Nav carries --border-*-width:0px, so there is no rule under
   it; the bar reads against the blue backdrop on its own. */
:root { --dexscan-header-height: 56px; }
html { scroll-padding-top: calc(var(--dexscan-header-height) + 16px); }

.dexscan-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 10000;
  height: var(--dexscan-header-height);
  background: #000;
  color: #fff;
  font-family: "Satoshi", Inter, Arial, sans-serif;
}
.dexscan-header-inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 1248px;
  height: 100%;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.dexscan-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  color: #fff;
  text-decoration: none;
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.65px;
}
.dexscan-brand img { display: block; width: 34px; height: 34px; }
.dexscan-primary-nav { display: flex; align-items: center; gap: 24px; }
.dexscan-primary-nav a {
  display: block;
  padding: 12px 0;
  color: #7c7e83;
  text-decoration: none;
  font-family: "Sora", "Sora Placeholder", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: -.02em;
  transition: color 150ms ease;
}
.dexscan-primary-nav a:hover,
.dexscan-primary-nav a:focus-visible,
.dexscan-primary-nav a[aria-current] { color: #fff; }
.dexscan-header a:focus-visible,
.dexscan-menu-toggle:focus-visible { outline: 2px solid #9ec5ef; outline-offset: 5px; border-radius: 4px; }
.dexscan-menu-toggle {
  display: none;
  position: relative;
  width: 44px;
  height: 44px;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 8px;
  background: transparent;
  color: #fff;
  cursor: pointer;
}
.dexscan-menu-toggle span {
  display: block;
  height: 2px;
  width: 22px;
  margin: 4px 0;
  border-radius: 2px;
  background: currentColor;
  transition: transform 150ms ease, opacity 150ms ease;
}
.dexscan-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.dexscan-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.dexscan-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Also cover cached SSR markup while the updated component bundle loads. */
.framer-1b7exsl,
#dexscan-badge-slot,
.dexscan-badge,
a[href^="https://buy.polar.sh/"],
[data-tb-shuffle-hint],
[data-framer-name="ASCII backdrop"],
[data-framer-name="ASCII face"],
.framer-zkgpu4 { display: none !important; }

/* The original background and ground fade sit behind the transparent hero. */
.framer-144l3ty { background: transparent; }
/* Hero entrance — the template's own, in CSS.
   The template fades and lifts these three in on load through its appear
   animations (headline 28px, delay 60ms; description 24px, delay 140ms; the
   product window 36px from 98% scale, delay 300ms). They were switched off here
   with opacity/transform !important after a slow-module load once left the hero
   invisible, which is why the page read as static next to the template.
   These run in CSS instead: they start on first paint and finish in under a
   second whether or not a single script ever arrives, so the hero still never
   waits on hydration — verify-landing.mjs asserts exactly that with every module
   held back. The easings are the template's springs (duration 0.4 bounce 0.2, and 0.6
   bounce 0.15) sampled every 10ms, the same way the template hands them to WAAPI.
   `both` pins the final frame, so a hydration that rewrites the inline style
   cannot pull an element back to its initial state. */
@keyframes dexscan-rise-headline { from { opacity: .001; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes dexscan-rise-text { from { opacity: .001; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes dexscan-rise-window { from { opacity: .001; transform: translateY(36px) scale(.98); } to { opacity: 1; transform: none; } }
.framer-1e5sdjz { animation: dexscan-rise-headline 410ms cubic-bezier(.22, 1, .36, 1) 60ms both; animation-timing-function: linear(0, 0.02241, 0.07939, 0.1581, 0.2486, 0.3435, 0.4375, 0.5269, 0.6093, 0.6833, 0.7484, 0.8044, 0.8518, 0.8911, 0.9231, 0.9487, 0.9688, 0.9841, 0.9954, 1.004, 1.009, 1.013, 1.014, 1.015, 1.015, 1.014, 1.013, 1.012, 1.01, 1.009, 1.008, 1.006, 1.005, 1.004, 1.003, 1.002, 1.002, 1.001, 1.001, 1.001, 1, 1); }
.framer-ukbrw6 { animation: dexscan-rise-text 410ms cubic-bezier(.22, 1, .36, 1) 140ms both; animation-timing-function: linear(0, 0.02241, 0.07939, 0.1581, 0.2486, 0.3435, 0.4375, 0.5269, 0.6093, 0.6833, 0.7484, 0.8044, 0.8518, 0.8911, 0.9231, 0.9487, 0.9688, 0.9841, 0.9954, 1.004, 1.009, 1.013, 1.014, 1.015, 1.015, 1.014, 1.013, 1.012, 1.01, 1.009, 1.008, 1.006, 1.005, 1.004, 1.003, 1.002, 1.002, 1.001, 1.001, 1.001, 1, 1); }
.framer-201m93 { animation: dexscan-rise-window 590ms cubic-bezier(.22, 1, .36, 1) 300ms both; animation-timing-function: linear(0, 0.009661, 0.03559, 0.07377, 0.1208, 0.1739, 0.2307, 0.2894, 0.3485, 0.4068, 0.4634, 0.5175, 0.5689, 0.617, 0.6617, 0.7029, 0.7407, 0.775, 0.806, 0.8339, 0.8587, 0.8808, 0.9002, 0.9173, 0.9322, 0.945, 0.9561, 0.9656, 0.9737, 0.9805, 0.9861, 0.9908, 0.9946, 0.9977, 1, 1.002, 1.004, 1.005, 1.005, 1.006, 1.006, 1.006, 1.006, 1.006, 1.006, 1.006, 1.005, 1.005, 1.005, 1.004, 1.004, 1.003, 1.003, 1.003, 1.002, 1.002, 1.002, 1.002, 1.001, 1); }
@media (prefers-reduced-motion: reduce) {
  /* No entrance, and nothing left to chance about the resting state. */
  .framer-1e5sdjz, .framer-ukbrw6, .framer-201m93 { animation: none; opacity: 1 !important; transform: none !important; }
}
[data-framer-name="DexScan Mark"] { width: 32px !important; height: 32px !important; }
[data-framer-name="DexScan Mark"] img { object-fit: contain !important; }
[data-framer-name="Pricing"],
.framer-1u91w64,
[data-framer-name="Teams"],
.framer-8wruwu { scroll-margin-top: 0; }

@media (max-width: 809.98px) {
  /* Restore the full-width header while retaining the full-screen menu. */
  .dexscan-header-inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    grid-template-rows: var(--dexscan-header-height);
    align-content: start;
    align-items: center;
    gap: 0;
    width: 100%;
    max-width: none;
    height: var(--dexscan-header-height);
    padding: 0 20px;
    overflow: hidden;
    background: #000;
    transition: height 400ms cubic-bezier(.44, 0, .56, 1);
  }
  .dexscan-brand { justify-self: start; font-size: 20px; }
  .dexscan-menu-toggle { display: block; }
  .dexscan-menu-toggle span { position: absolute; left: 10px; width: 22px; margin: 0; transition: transform 400ms cubic-bezier(.44, 0, .56, 1), opacity 200ms ease; }
  .dexscan-menu-toggle span:nth-child(1) { top: 14px; }
  .dexscan-menu-toggle span:nth-child(2) { top: 20px; }
  .dexscan-menu-toggle span:nth-child(3) { top: 26px; }
  .dexscan-primary-nav {
    box-sizing: border-box;
    display: flex;
    visibility: hidden;
    opacity: 0;
    position: absolute;
    inset: var(--dexscan-header-height) 20px auto;
    height: calc(100vh - var(--dexscan-header-height));
    height: calc(100dvh - var(--dexscan-header-height));
    padding: 0 0 80px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 26px;
    background: #000;
    border: 0;
    box-shadow: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    transition: opacity 200ms ease, visibility 400ms;
  }
  .dexscan-header[data-menu-open="true"] .dexscan-header-inner { width: 100%; height: 100vh; height: 100dvh; }
  .dexscan-header[data-menu-open="true"] .dexscan-primary-nav { visibility: visible; opacity: 1; }
  .dexscan-primary-nav a { position: relative; flex-shrink: 0; padding: 0; color: #fff; font-size: 15px; font-weight: 400; line-height: 24px; letter-spacing: -.3px; }
  .dexscan-primary-nav a::after { content: ""; position: absolute; inset: -10px -16px; }
  html.dexscan-menu-open, html.dexscan-menu-open body { overflow: hidden !important; overscroll-behavior: none; }
}
@media (max-width: 809.98px) and (max-height: 360px) {
  .dexscan-primary-nav { justify-content: flex-start; padding-top: 24px; padding-bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .dexscan-header * { transition: none !important; }
}

.dexscan-waitlist-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 41px;
  padding: 12px 24px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 10px;
  background: rgba(255, 255, 255, .07);
  color: #fff;
  font: 600 14px/17px "DM Sans", Inter, sans-serif;
  letter-spacing: -.41px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 160ms ease, border-color 160ms ease;
}
.dexscan-waitlist-cta:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .4); }
.dexscan-waitlist-cta:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

/* Contract address, inside the closing CTA panel rather than in a full-width
   section of its own. Presented as a bordered card under the buttons — chosen by
   the owner on 2026-09-22 from three options (card, line, pill) that were
   published side by side on /ca-options; the other two and the chooser are gone. */
.dexscan-ca {
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 520px;
  margin: 6px 0 0;
  color: #fff;
  text-align: center;
  font: 400 14px/1.6 "Sora", "Sora Placeholder", sans-serif;
  letter-spacing: -.02em;
}
.dexscan-ca *, .dexscan-ca *::before, .dexscan-ca *::after { box-sizing: border-box; }
.dexscan-ca p { margin: 0; }
.dexscan-ca-label { color: rgba(255, 255, 255, .72); font: 500 11px/1.4 "JetBrains Mono", "JetBrains Mono Placeholder", monospace; letter-spacing: 1px; text-transform: uppercase; }
.dexscan-ca-value { max-width: 100%; color: #fff; font: 500 13px/1.6 "JetBrains Mono", "JetBrains Mono Placeholder", monospace; letter-spacing: .4px; overflow-wrap: anywhere; user-select: all; }
.dexscan-ca-value.is-pending { color: rgba(255, 255, 255, .74); letter-spacing: 1px; }
.dexscan-ca-note { max-width: 42ch; color: rgba(255, 255, 255, .8); font-size: 12px; line-height: 1.6; text-shadow: 0 1px 6px rgba(2, 4, 10, .7); }
.dexscan-ca-feedback { display: block; min-height: 15px; color: rgba(255, 255, 255, .74); font-size: 11px; }
.dexscan-ca-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; }
.dexscan-ca-actions button, .dexscan-ca-actions a {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-height: 34px; padding: 8px 16px;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: 9px;
  background: rgba(255, 255, 255, .08); color: #fff;
  font: 600 13px/17px "DM Sans", Inter, sans-serif; letter-spacing: -.41px;
  text-decoration: none; cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
}
.dexscan-ca-actions button:hover, .dexscan-ca-actions a:hover { background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .4); }
.dexscan-ca-actions svg { flex: none; }
.dexscan-ca :focus-visible, a[data-dexscan-buy]:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
a[data-dexscan-buy] { text-decoration: none; }

/* The template sizes the CTA panel's backdrop to a fixed 382px anchored at the
   bottom — which is exactly the panel's own height on the template, so the panel
   reads as one blue surface. The contract block makes the panel taller (522px at
   1440, 526px at 390; 448/453px since the eyebrow and waitlist line were removed
   on 2026-09-23), and the old fixed height left a band of bare page black across
   the top, straight through the heading. Anchor it at the top too.
   Three classes deep so it outranks the template's own breakpoint rules for this
   container, which are two classes deep and come earlier in the page. */
.framer-1g0diwm .framer-b3rfz7 > .framer-a8tq9b-container { top: 0; height: auto; }

/* First frame for the three animated backdrops (2026-09-23, owner: "when I
   refresh there is a delay for it to show up"). The canvas can only draw once the
   page bundle has hydrated, so every load and every refresh painted the hero
   BLACK, with just the header and the two buttons, for ~0.6s (measured at 100ms
   RTT) and then turned blue. The pre-rendered artwork of the visitor's chosen
   preset (backgrounds.css, same colour, art and breakpoints as the pre-2026-09-22
   static backdrop) now sits behind the canvas. A new canvas is transparent, so
   this shows until the renderer's first opaque frame covers it, and nothing
   after that changes. Removing this rule brings the black gap back. */
.framer-1ici8ig-container, .framer-kzofyb-container, .framer-a8tq9b-container { background: var(--dexscan-backdrop-color, #0015cf) var(--dexscan-backdrop-desktop) center / cover no-repeat; }
@media (min-width: 810px) and (max-width: 1199.98px) {
  .framer-1ici8ig-container, .framer-kzofyb-container, .framer-a8tq9b-container { background-image: var(--dexscan-backdrop-tablet); }
}
@media (max-width: 809.98px) {
  .framer-1ici8ig-container, .framer-kzofyb-container, .framer-a8tq9b-container { background-image: var(--dexscan-backdrop-mobile); }
}

.dexscan-ca { gap: 9px; margin-top: 10px; padding: 18px 24px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 12px; background: rgba(2, 4, 10, .66); }

@media (max-width: 809.98px) {
  .dexscan-ca { max-width: none; font-size: 13px; }
  .dexscan-ca { padding: 16px 18px; }
  .dexscan-ca-value { font-size: 12px; }
}

/* Payment samples occupy the original blue section's moving dashboard cards. */
.dexscan-payout-card {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  flex: none;
  width: 340px;
  min-width: 340px;
  height: 352px;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .09);
  border-radius: 10px;
  background: #0a0a0b;
  color: #fff;
  font: 400 12px/1.6 "Sora", sans-serif;
  text-align: left;
}
/* Match each of the original ticker widgets' unrotated dimensions. */
.dexscan-payout-card[data-payout-sample="1"] { height: 303.1875px; }
.dexscan-payout-card[data-payout-sample="2"] { height: 304px; }
.dexscan-payout-card p { margin: 0; }
.dexscan-payout-top { display: flex; align-items: center; gap: 9px; }
.dexscan-usdc-icon { display: block; flex: none; width: 32px; height: 32px; }
.dexscan-payout-network { margin-left: auto; padding: 3px 8px; border: 1px solid #343439; border-radius: 6px; color: #7c7e83; font-size: 10px; }
.dexscan-wallet-address { color: #dfe1e8; font: 400 12px/1.6 "Fragment Mono", monospace; white-space: nowrap; }
.dexscan-payout-card .dexscan-payout-label { margin: 29px 0 4px; color: #7c7e83; }
.dexscan-payout-card .dexscan-payout-amount { display: flex; align-items: baseline; gap: 9px; font-size: 35px; font-weight: 600; line-height: 1.3; letter-spacing: -1.4px; }
.dexscan-payout-amount span { color: #7c7e83; font-size: 12px; font-weight: 400; letter-spacing: 0; }
.dexscan-payout-details { display: flex; justify-content: space-between; gap: 12px; margin-top: 22px; padding-top: 15px; border-top: 1px solid #242428; }
.dexscan-payout-details > :first-child { color: #7c7e83; }
.dexscan-payout-footer { display: flex; justify-content: space-between; gap: 12px; margin-top: auto; font-size: 10px; color: #7c7e83; }
.dexscan-payout-footer > :first-child { color: #4dbe95; }

.dexscan-background-link { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px; border: 1px solid rgba(255,255,255,.2); background: #060608; color: #fff; text-decoration: none; }
.dexscan-background-link:hover { background: #17191f; }
.dexscan-background-link:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.dexscan-buys { --dexscan-buys-gap: 56px; position: relative; display: flex; align-items: center; flex: none; width: 100%; overflow-x: clip; padding: 26px 0 24px; background: #000; color: #7c7e83; font: 500 11px/1.4 "JetBrains Mono", "JetBrains Mono Placeholder", monospace; letter-spacing: 1px; }
.dexscan-buys-window { min-width: 0; flex: 1; overflow: hidden; }
/* Real buys since 2026-09-24 (landing-view.mjs); the pinned "Sample buys" tag went
   with the invented wallets it labelled. The track scrolls only while one copy of the
   list is wider than the strip, and DexscanBuys then sets the loop length from that
   width, so the drift stays at the template's measured 8.3px/s whatever the list holds.
   A shorter list stands still and centred, the gap mirrored on its left so the centring
   is true. verify-landing.mjs re-measures both. */
.dexscan-buys-track { display: flex; width: max-content; margin: 0 auto; padding-left: var(--dexscan-buys-gap); }
.dexscan-buys-track[data-marquee] { margin: 0; padding-left: 0; animation: dexscan-buys-scroll 237s linear infinite; }
.dexscan-buys-group { display: flex; align-items: center; gap: var(--dexscan-buys-gap); flex: none; margin: 0; padding: 0 var(--dexscan-buys-gap) 0 0; list-style: none; }
.dexscan-buy { flex: none; }
.dexscan-buy-link { display: flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; white-space: nowrap; }
.dexscan-buy-link:hover .dexscan-wallet-address { text-decoration: underline; text-underline-offset: 3px; }
.dexscan-buy-link:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 4px; }
.dexscan-buy-indicator { display: grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; background: rgba(77, 190, 149, .16); color: #4dbe95; font-size: 11px; letter-spacing: 0; }
.dexscan-buy-label { color: #4dbe95; }
.dexscan-buys .dexscan-wallet-address { color: #fff; font: 500 11px/1.4 "JetBrains Mono", "JetBrains Mono Placeholder", monospace; letter-spacing: 1px; }
.dexscan-buy strong { color: #fff; font-weight: 500; }
.dexscan-buy-total, .dexscan-buy-age { color: #7c7e83; }
@keyframes dexscan-buys-scroll { to { transform: translateX(-50%); } }
.dexscan-background-page { margin: 0; background: #050503; color: #fff; font: 400 14px/1.7 "Sora", sans-serif; }
.dexscan-background-gallery { box-sizing: border-box; max-width: 1208px; margin: 0 auto; padding: 104px 24px 64px; }
.dexscan-background-back { color: #aaaeb9; text-decoration: none; }
.dexscan-background-gallery h1 { margin: 25px 0 12px; font-size: clamp(30px,4vw,48px); line-height: 1.2; font-weight: 500; letter-spacing: -.04em; }
.dexscan-background-gallery > p { max-width: 660px; margin: 0 0 40px; color: #7c7e83; }
.dexscan-background-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.dexscan-background-option { overflow: hidden; border: 1px solid #272930; border-radius: 16px; background: #0b0c10; }
.dexscan-background-preview { display: block; position: relative; aspect-ratio: 1.8; overflow: hidden; color: #fff; text-decoration: none; }
.dexscan-background-preview::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 45%,rgba(2,4,10,.65)); }
.dexscan-background-preview img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dexscan-background-preview > span { position: absolute; z-index: 1; top: 22%; left: 9%; font-size: clamp(24px,3vw,42px); font-weight: 500; letter-spacing: -.04em; line-height: 1.1; text-shadow: 0 2px 20px #00105b; }
.dexscan-background-option-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; }
.dexscan-background-option-footer h2 { margin: 0; font-size: 14px; font-weight: 400; }
.dexscan-background-option-footer a { color: #a8b5ff; text-decoration: none; padding: 8px 0; white-space: nowrap; }
.dexscan-background-gallery a:focus-visible { outline: 2px solid #a8b5ff; outline-offset: -3px; }
@media (min-width: 810px) and (max-width: 1199.98px) {
  .dexscan-buys { --dexscan-buys-gap: 40px; padding: 18px 0 16px; }
}
@media (max-width: 809.98px) {
  .dexscan-buys { --dexscan-buys-gap: 28px; padding: 12px 0 10px; }
  .dexscan-background-grid { grid-template-columns: 1fr; gap: 20px; }
  .dexscan-background-gallery { padding: 88px 20px 40px; }
  .dexscan-background-option-footer { padding: 12px 16px; }
  .dexscan-background-option-footer h2 { font-size: 12px; }
  .dexscan-background-preview > span { font-size: clamp(28px,6vw,42px); }
}
@media (prefers-reduced-motion: reduce) {
  .dexscan-buys-window { overflow-x: auto; mask-image: none; }
  .dexscan-buys-track, .dexscan-buys-track[data-marquee] { animation: none; }
  .dexscan-buys-group[aria-hidden] { display: none; }
}

/* The waitlist uses the template's Sora type, black surfaces and blue accent. */
.dexscan-waitlist-page { margin: 0; background: #000; color: #fff; font: 400 15px/1.6 "Sora", sans-serif; letter-spacing: -.3px; -webkit-font-smoothing: antialiased; }
.dexscan-waitlist-page *, .dexscan-waitlist-page *::before, .dexscan-waitlist-page *::after { box-sizing: border-box; }
.dexscan-waitlist-page [hidden] { display: none !important; }
.dexscan-waitlist-page a { color: inherit; text-decoration: none; }
.dexscan-waitlist-page a:hover { color: #b1baff; }
.dexscan-waitlist-page :focus-visible { outline: 2px solid #8a98ff; outline-offset: 4px; }
.dexscan-signup { max-width: 1144px; margin: 0 auto; padding: 140px 32px 80px; }
.dexscan-signup-heading { max-width: 620px; margin: 0 auto 40px; text-align: center; }
.dexscan-signup-heading h1 { margin: 0 0 20px; font-size: 56px; font-weight: 600; line-height: 1.1; letter-spacing: -2.24px; }
.dexscan-signup-heading > p:last-child { margin: 0 auto; max-width: 480px; color: #7c7e83; }
.dexscan-signup h2 { margin: 0 0 16px; font-size: 26px; font-weight: 600; line-height: 1.25; letter-spacing: -.8px; }
.dexscan-signup-card { min-width: 0; max-width: 600px; margin: 0 auto; padding: 32px; border: 1px solid #202023; border-radius: 18px; background: #0a0a0b; }
.dexscan-signup-card h2 { margin-bottom: 28px; font-size: 22px; }
.dexscan-checklist { min-width: 0; margin: 0; padding: 0; border: 0; }
.dexscan-checklist legend { padding: 0; margin-bottom: 10px; font-size: 18px; font-weight: 500; }
.dexscan-checklist-item { padding: 12px 0; border-bottom: 1px solid #242428; }
.dexscan-checklist-item label { display: flex; align-items: center; gap: 12px; min-height: 36px; cursor: pointer; font-size: 14px; line-height: 1.6; }
.dexscan-checklist-item input { width: 20px; height: 20px; margin: 0; flex-shrink: 0; accent-color: #223aff; color-scheme: dark; cursor: pointer; }
.dexscan-checklist-item > a { display: inline-flex; align-items: center; min-height: 36px; margin-left: 32px; gap: 5px; color: #a6afff; font-size: 12px; }
.dexscan-checklist-progress { margin: 15px 0 26px; color: #7c7e83; font-size: 12px; }
.dexscan-form-field + .dexscan-form-field { margin-top: 22px; }
.dexscan-form-field label { display: block; margin-bottom: 9px; font-size: 13px; color: #dedfe3; }
.dexscan-form-field input, .dexscan-form-field select { display: block; width: 100%; min-width: 0; height: 48px; padding: 12px 14px; border: 1px solid #29292e; border-radius: 9px; background: #101012; color: #fff; font: inherit; font-size: 13px; color-scheme: dark; }
.dexscan-form-field input::placeholder { color: #696b73; }
.dexscan-form-field input:focus, .dexscan-form-field select:focus { border-color: #6574f4; }
.dexscan-form-field p { margin: 7px 0 0; color: #7c7e83; font-size: 11px; letter-spacing: -.1px; }
.dexscan-form-submit { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 46px; margin-top: 28px; padding: 12px 20px; border: 0; border-radius: 10px; background: #0015cf; color: #fff; font: 600 14px/1.5 "DM Sans", sans-serif; letter-spacing: -.41px; cursor: pointer; transition: background 150ms ease; }
.dexscan-form-submit:hover:not(:disabled), a.dexscan-form-submit:hover { background: #192ff0; color: #fff; }
.dexscan-form-submit:disabled { cursor: wait; opacity: .65; }
.dexscan-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.dexscan-form-status { margin: 14px 0 0; font-size: 13px; }
.dexscan-form-status:empty { display: none; }
.dexscan-form-status[data-error] { color: #ff9b9b; }
.dexscan-signup-fine { margin: 14px 0 0; color: #7c7e83; font-size: 11px; text-align: center; }
.dexscan-signup-success { padding: 40px 0; text-align: center; }
.dexscan-success-icon { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 24px; border: 1px solid #384394; border-radius: 50%; background: #0015cf; font-size: 26px; }
.dexscan-signup-success h2 { margin-bottom: 14px; }
.dexscan-signup-success p { color: #7c7e83; }
.dexscan-signup-success p a { color: #fff; }
.dexscan-signup-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; max-width: 1080px; margin: 0 auto; padding: 28px 0 36px; border-top: 1px solid #202023; font-size: 12px; color: #7c7e83; }
.dexscan-signup-footer > :first-child { color: #fff; font-size: 16px; font-weight: 600; }
.dexscan-signup-footer > :last-child { margin-left: auto; color: #fff; }
@media (max-width: 1199.98px) {
  .dexscan-signup-heading h1 { font-size: 48px; letter-spacing: -1.92px; }
  .dexscan-signup-footer { margin: 0 32px; }
}
@media (max-width: 809.98px) {
  .dexscan-signup { padding: 112px 20px 64px; }
  .dexscan-signup-heading { margin-bottom: 36px; }
  .dexscan-signup-heading h1 { font-size: 36px; letter-spacing: -1.44px; }
  .dexscan-signup-card { padding: 24px; }
  .dexscan-form-field input { font-size: 16px; }
  .dexscan-signup-footer { margin: 0 20px; gap: 12px; }
  .dexscan-signup-footer > :last-child { margin-left: 0; }
}

.dexscan-earnings {
  box-sizing: border-box;
  position: relative;
  flex: none;
  width: 100%;
  padding: 120px 32px 140px;
  scroll-margin-top: 0;
  color: #fff;
  font-family: "Sora", "Sora Placeholder", sans-serif;
  background: #000;
}
.dexscan-earnings *, .dexscan-earnings *::before, .dexscan-earnings *::after { box-sizing: border-box; }
.dexscan-earnings-inner { width: 100%; max-width: 1160px; margin: 0 auto; }
.dexscan-earnings-heading { max-width: 900px; margin: 0 auto 56px; text-align: center; }
.dexscan-earnings h2.framer-text { margin: 0 0 18px; --framer-text-color: #fff; --framer-text-alignment: center; }
.dexscan-earnings-heading > p.framer-text { max-width: 600px; margin: 0 auto; --framer-text-color: #7c7e83; --framer-text-alignment: center; }
.dexscan-calc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 28px; }
.dexscan-calc-controls { min-width: 0; padding: 28px; border: 1px solid rgba(255, 255, 255, .07); border-radius: 18px; background: var(--token-ae816ca6-e44b-421c-8292-4e8edd3e7241, #0a0a0b); }
.dexscan-calc-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.dexscan-calc-group legend { padding: 0; margin: 0 0 28px; font-size: 18px; font-weight: 600; line-height: 1.3; letter-spacing: -.3px; }
.dexscan-calc-control + .dexscan-calc-control { margin-top: 20px; }
.dexscan-calc-control-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 12px; font-weight: 400; letter-spacing: -.2px; line-height: 1.6; }
.dexscan-calc-control-heading label { color: #d4d4d5; }
.dexscan-calc-control-heading output { flex-shrink: 0; color: #fff; font: 400 12px/1.5 "Fragment Mono", monospace; }
.dexscan-calc-control input[type="range"] {
  display: block;
  width: 100%;
  height: 30px;
  margin: 8px 0 0;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  outline: none;
  border-radius: 5px;
  background: transparent;
  cursor: pointer;
  accent-color: #4355ff;
}
.dexscan-calc-control input[type="range"]::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 4px;
  background: linear-gradient(to right, #4355ff 0%, #4355ff var(--range-progress), #28282c var(--range-progress), #28282c 100%);
}
.dexscan-calc-control input[type="range"]::-moz-range-track { height: 4px; border-radius: 4px; background: #28282c; }
.dexscan-calc-control input[type="range"]::-moz-range-progress { height: 4px; border-radius: 4px; background: #4355ff; }
.dexscan-calc-control input[type="range"]::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  width: 15px;
  height: 15px;
  margin-top: -5.5px;
  border: 2px solid #9ba5ff;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(67, 85, 255, .15);
}
.dexscan-calc-control input[type="range"]::-moz-range-thumb { width: 11px; height: 11px; border: 2px solid #9ba5ff; border-radius: 50%; background: #fff; }
.dexscan-calc-control input[type="range"]:focus-visible { outline: 2px solid #9ec5ef; outline-offset: 3px; }
.dexscan-calc-hint { margin: 2px 0 0; color: #7c7e83; font-size: 11px; line-height: 1.6; letter-spacing: -.15px; }
.dexscan-calc-results { min-width: 0; display: flex; grid-column: 3; grid-row: 1; }
.dexscan-calc-platform { grid-column: 2; }
.dexscan-calc-result {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 28px;
  border-radius: 18px;
  background: var(--token-f78851a9-66f5-44b3-883b-01fdad1ae74d, #0015cf);
}
.dexscan-calc-result-top { display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 20px; color: #fff; font-size: 18px; font-weight: 600; line-height: 1.3; letter-spacing: -.3px; }
.dexscan-calc-amount { margin: 40px 0 12px; font-size: var(--earnings-size, 56px); font-weight: 600; line-height: 1.1; letter-spacing: -1.6px; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.dexscan-calc-period { margin: 0 0 32px; color: rgba(255, 255, 255, .8); font-size: 13px; line-height: 1.6; letter-spacing: -.3px; }
.dexscan-calc-result-note { margin: 22px 0 0; color: rgba(255, 255, 255, .74); font-size: 11px; line-height: 1.7; letter-spacing: -.15px; }
@media (min-width: 810px) and (max-width: 1199.98px) {
  .dexscan-calc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dexscan-calc-platform { grid-column: 2; }
  .dexscan-calc-results { grid-column: 1 / -1; grid-row: 2; }
  .dexscan-calc-result { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; }
  .dexscan-calc-result-top, .dexscan-calc-amount, .dexscan-calc-period { grid-column: 1; }
  .dexscan-calc-result-note { grid-column: 2; grid-row: 3; margin: 0; }
  .dexscan-calc-period { margin-bottom: 0; }
}
@media (max-width: 809.98px) {
  .dexscan-earnings { padding: 80px 20px; }
  .dexscan-earnings-heading { margin-bottom: 36px; }
  .dexscan-calc-grid { grid-template-columns: 1fr; gap: 24px; }
  .dexscan-calc-controls, .dexscan-calc-result { padding: 24px; }
  .dexscan-calc-platform { grid-column: 1; grid-row: 2; }
  .dexscan-calc-results { grid-column: 1; grid-row: 3; }
  .dexscan-calc-control-heading { font-size: 13px; }
  .dexscan-calc-result-top { flex-direction: row; align-items: center; justify-content: space-between; font-size: 16px; }
  .dexscan-calc-amount { font-size: min(var(--earnings-size), 48px); }
}
@media (max-width: 389px) {
  .dexscan-earnings { padding-right: 16px; padding-left: 16px; }
  .dexscan-calc-controls, .dexscan-calc-result { padding: 20px; }
  .dexscan-calc-control-heading { gap: 8px; font-size: 12px; }
  .dexscan-calc-control-heading output { font-size: 12px; }
}

/* Footer attribution and social icons.
   "Built by" is the template author's credit row: a line of text, an avatar
   image and an outbound link to their site. Removed at the user's request.
   Note this drops attribution the template may require; that was their call.
   Hidden in CSS because the footer rehydrates from script_main, which would
   restore anything removed from the server markup alone.
   The Socials row next to it is NOT hidden any more: as of 2026-09-22 its X
   tile is a real link to @DexScanFamily, and the Github and LinkedIn tiles —
   which implied presences DexScan does not have — are removed in both the
   server markup and the bundle by footer-customization.mjs. */
.framer-lrbpta { display: none !important; }
/* The tile keeps every one of the template's own styles; it is an <a> rather
   than a <div> now, so only the things an anchor brings need resetting. */
a.framer-ak58ii { text-decoration: none; transition: background-color 150ms ease, border-color 150ms ease; }
a.framer-ak58ii:hover { background-color: rgba(255, 255, 255, .12); }
a.framer-ak58ii:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

/* Footer "Product" column: All modules and Order Book, the template's module
   catalogue. Those pages are deleted from the published site, so the column is
   hidden. Hidden rather than cut from the markup because the footer rehydrates
   from script_main, which would restore a server-only removal. */
.framer-4anpo2 { display: none !important; }
