/* ===========================================================================
 * Aurora — a dark, gradient-field theme for the HOOKP app.
 *
 * GENERATED by bin/build-theme.mjs. Do not edit by hand: the border and shadow
 * selector lists below are read out of the app's own stylesheets, so a chunk
 * that adds a new bordered element is picked up on the next build.
 *
 * The palette is a warm-sand → aqua → teal → green-black field. Everything
 * except that field is deliberately quiet: hairline edges instead of 2px rules,
 * no offset shadows, one white pill for the primary action.
 * ======================================================================== */

:root {
  /* the field */
  --aurora-sand:  #e6d0b8;
  --aurora-haze:  #a9ccc5;
  --aurora-teal:  #3e8571;
  --aurora-moss:  #1d302a;
  --aurora-deep:  #16241e;
  --aurora-void:  #070b09;

  /* text — --ink stays the text colour the app expects it to be */
  --ink:            #edf4f1;
  --text-strong:    #ffffff;
  --text-mid:       #cbdbd5;
  --text-muted:     #aabfb8;
  --footer-text:    #9db1aa;
  --disabled-text:  #74877f;
  --on-dark-body:   #edf4f1;
  --on-dark-muted:  #aabfb8;

  /* grounds — translucent so the field shows through every panel */
  --page-bg:  transparent;
  --surface:  rgba(9, 16, 13, .52);
  /* Dark glass, not a lightening veil: over the lit part of the field a light
     panel destroys label contrast, and this app is mostly small labels.
     Translucency only — no backdrop-filter anywhere in this theme. Blurring the
     backdrop under a dozen stacked panels made the compositor drop whole
     frames, and against a gradient this soft it bought almost nothing. */
  --card:     rgba(8, 15, 13, .52);

  /* lines */
  --divider:        rgba(237, 244, 241, .13);
  --divider-faint:  rgba(237, 244, 241, .07);
  --params-border:  rgba(237, 244, 241, .13);
  --dashed:         rgba(237, 244, 241, .22);
  --shadow-lav:     transparent;

  /* action — the reference answers with a white pill, not an acid accent.
     Solid white is reserved for the one primary call to action; every other
     place the app used to fill with lime becomes mint glass, so a selected
     filter never turns into white text on a white chip. */
  --magenta:      rgba(182, 235, 210, .16);
  --pink:         rgba(182, 235, 210, .16);
  --signal-ink:   #dff3e9;
  --link-hover:   #b6ebd2;
  --chip-lilac:   rgba(182, 235, 210, .14);
  --spotlight-bg: rgba(182, 235, 210, .10);

  /* semantic */
  --success:        #7fd6a4;
  --success-bg:     rgba(127, 214, 164, .13);
  --success-shadow: transparent;
  --success-copy:   #b7e6cb;
  --danger:         #ff8a8a;
  --danger-copy:    #ffb3b3;
  --gold:           #ffcf6b;
  --gold-dark:      #d9a743;
  --jackpot-cream:  rgba(255, 207, 107, .12);
  --jackpot-shadow: transparent;
  --jackpot-label:  #ffcf6b;
  --jackpot-copy:   #e3cfa4;

  /* the five blocks keep their identities, lifted to read on a dark ground */
  --snipe-top: #93b4ff; --snipe-side: #6b93ef; --snipe-dark: #3d63b8;
  --fee-top:   #ffc281; --fee-side:   #ef9a3f; --fee-dark:   #b96d18;
  --burn-top:  #ff9d9d; --burn-side:  #ef6b6b; --burn-dark:  #b83f3f;
  --lp-top:    #93dfb1; --lp-side:    #57bf85; --lp-dark:    #2f8a5b;
  --pot-top:   #ffe08a; --pot-side:   #f0c04e; --pot-dark:   #b98f26;
  --pool-top:  #35494200; --pool-left: #2a3a35; --pool-right: #22302b;

  --shadow-standard: none;
  --shadow-feature:  none;
}

/* ---- the field ---------------------------------------------------------- */
html { background: var(--aurora-void); }

/* No background on body: an opaque one would paint over the field, because a
   negative-z-index child sits behind its own parent's background. */
body {
  background: transparent;
  color: var(--ink);
}

/* Painted behind everything, fixed, so scrolling moves the content through the
   field rather than dragging the field along with it. The stops are rgba rather
   than the raw hues: at full strength a mesh this large reads as a wash, and
   the point is that the warm corner and the cool corner stay distinguishable.
   It does not animate. A slow drift here looked good and cost correctness — a
   full-viewport transform under a dozen backdrop-filter panels made the
   compositor tear frames on scroll. The field is the signature; it does not
   need to move to be one. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(62% 42% at 0% 16%,   rgba(233, 209, 184, .96) 0%, rgba(233, 209, 184, 0) 64%),
    radial-gradient(58% 38% at 100% 6%,  rgba(186, 221, 213, .94) 0%, rgba(186, 221, 213, 0) 62%),
    radial-gradient(96% 56% at 46% 30%,  rgba(96, 182, 154, 1) 0%,    rgba(96, 182, 154, 0) 70%),
    radial-gradient(74% 48% at 86% 58%,  rgba(62, 136, 118, .82) 0%,  rgba(62, 136, 118, 0) 66%),
    var(--aurora-deep);
}

/* A vignette, not a curtain. The field is fixed, so whatever this darkens is
   darkened on every screen of a long page — a heavy bottom fade would put the
   last rows of every table in the dark. Cap it low and start it late. */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(180deg,
    rgba(7, 11, 9, .40) 0%,
    rgba(7, 11, 9, .10) 9%,
    transparent 24%,
    transparent 76%,
    rgba(7, 11, 9, .24) 92%,
    rgba(7, 11, 9, .42) 100%);
}

/* ---- surfaces ----------------------------------------------------------- */
/* Every selector the app gives a 2px --ink border. Hairline, and let the field
   through. */
.BlueprintLibrary-module__ypUmjW__card,
.BlueprintLibrary-module__ypUmjW__compactButton,.BlueprintLibrary-module__ypUmjW__receiptRefresh,.BlueprintLibrary-module__ypUmjW__filterButton,.BlueprintLibrary-module__ypUmjW__action,
.BlueprintLibrary-module__ypUmjW__detailsSummary:before,
.BlueprintLibrary-module__ypUmjW__featuredBadge,
.BlueprintLibrary-module__ypUmjW__hookChip,
.BlueprintLibrary-module__ypUmjW__receipt,
.BlueprintLibrary-module__ypUmjW__receiptMark,
.BlueprintLibrary-module__ypUmjW__searchInput,.BlueprintLibrary-module__ypUmjW__sortSelect,
.BlueprintLibrary-module__ypUmjW__showMore,
.BlueprintLibrary-module__ypUmjW__stateCard,
.BlueprintLibrary-module__ypUmjW__stateLabel,
.BlueprintLibrary-module__ypUmjW__toolbar,
.BoostedRail-module__M97hNW__rail,
.Landing-module__5ARf-a__finalMark,
.Landing-module__5ARf-a__hero,
.Landing-module__5ARf-a__trustIndex,
.Landing-module__5ARf-a__trustRail,
.PageIntro-module__DPF-qW__genericNode,
.PageIntro-module__DPF-qW__hero,
.PageIntro-module__DPF-qW__railItem:not(:last-child):after,
.PageIntro-module__DPF-qW__signalState,
.ProtocolReceipt-module__IIPs9W__receipt,
.ProtocolReceipt-module__IIPs9W__status,
.ProtocolReceipt-module__IIPs9W__volume,
.TokenUtilities-module__aBdHwq__utilitySharp summary:before,
.TokenUtilities-module__aBdHwq__utilityToolbar,
.TrustPage-module__cEbYRq__callout,
.TrustPage-module__cEbYRq__hero,
.TrustPage-module__cEbYRq__index,
.TrustPage-module__cEbYRq__nav,
.TrustPage-module__cEbYRq__section,
.UtilityActions-module__hXjakW__amountInput,.UtilityActions-module__hXjakW__tierButton,
.UtilityActions-module__hXjakW__capacityNotice,
.UtilityActions-module__hXjakW__header,
.UtilityActions-module__hXjakW__panel,
.UtilityActions-module__hXjakW__position,
.UtilityActions-module__hXjakW__receipt,
.UtilityActions-module__hXjakW__stateChip,
.UtilityActions-module__hXjakW__txNotice,
.account-live-dot,
.account-popover,
.account-popover-head,
.agent-card-rail li>span,
.agent-gate-card,
.agent-index,
.agent-operator-heading>.pix,
.agent-operator-pane input,.agent-operator-pane select,.agent-operator-pane textarea,
.agent-run-chip,
.agent-statusbar,
.agent-system-rail,
.agent-topics li .pix,
.blueprint-details summary:before,
.blueprint-toolbar,
.btn,
.card,
.chip,
.discover-market-stage-empty,.discover-market-stage-more,
.discover-market-stage-header,
.discover-market-stage-marker,
.discover-stage-switch,
.discover-stage-switch-option,
.header,
.hook-badge,
.leverage-tease,
.logo-tile,
.page-module__u6z2tW__gasNote,
.page-module__u6z2tW__heroVisual,
.page-module__u6z2tW__mechanicCard,
.page-module__u6z2tW__parameterIndex,
.page-module__u6z2tW__parameters,
.page-module__u6z2tW__rangeMarker,
.page-module__u6z2tW__rangeTrack,
.page-module__u6z2tW__relatedCard,.page-module__u6z2tW__relatedCard:hover,
.page-module__u6z2tW__relatedSwatch,
.pix-input,
.profile-module__skRmGq__avatar,.profile-module__skRmGq__avatarFallback,
.profile-module__skRmGq__blueprintId,.profile-module__skRmGq__rank,
.profile-module__skRmGq__chainChip,.profile-module__skRmGq__proofChip,.profile-module__skRmGq__warningChip,
.profile-module__skRmGq__count,
.profile-module__skRmGq__creatorAvatar,
.profile-module__skRmGq__creatorProfileLink,
.profile-module__skRmGq__directoryControls,
.profile-module__skRmGq__directoryControls:before,
.profile-module__skRmGq__directoryHero,
.profile-module__skRmGq__directoryHookButton,
.profile-module__skRmGq__directoryProfileCount,
.profile-module__skRmGq__directoryResultBar,
.profile-module__skRmGq__directoryResultBar button,.profile-module__skRmGq__directoryEmptyActions button,.profile-module__skRmGq__directoryReveal button,
.profile-module__skRmGq__directoryRule,
.profile-module__skRmGq__directorySearch input,
.profile-module__skRmGq__directoryViewButton,
.profile-module__skRmGq__dna,
.profile-module__skRmGq__hero,
.profile-module__skRmGq__launchCard,.profile-module__skRmGq__blueprintCard,.profile-module__skRmGq__creatorCard,
.profile-module__skRmGq__metricRail,
.profile-module__skRmGq__progressTrack,
.profile-module__skRmGq__proofGrid,
.profile-module__skRmGq__sectionNav a,
.profile-module__skRmGq__sourceIcon,
.profile-module__skRmGq__sourceRibbon,
.profile-module__skRmGq__status,
.progress,
.stat-chip,
.ticker,
.token-jump,
.token-tile,
input[type=range]::-moz-range-thumb,
input[type=range]::-moz-range-track,
input[type=range]::-webkit-slider-runnable-track,
input[type=range]::-webkit-slider-thumb {
  border-color: rgba(237, 244, 241, .14);
  border-width: 1px;
}

/* Every selector the app gives a hard offset shadow. The field replaces it. */
.BlueprintLibrary-module__ypUmjW__activeFilter,
.BlueprintLibrary-module__ypUmjW__card,
.BlueprintLibrary-module__ypUmjW__card:hover,
.BlueprintLibrary-module__ypUmjW__compactButton,.BlueprintLibrary-module__ypUmjW__receiptRefresh,.BlueprintLibrary-module__ypUmjW__filterButton,.BlueprintLibrary-module__ypUmjW__action,
.BlueprintLibrary-module__ypUmjW__compactButton:hover:not(:disabled),.BlueprintLibrary-module__ypUmjW__receiptRefresh:hover:not(:disabled),.BlueprintLibrary-module__ypUmjW__filterButton:hover:not(:disabled),.BlueprintLibrary-module__ypUmjW__action:hover,
.BlueprintLibrary-module__ypUmjW__filterButton,
.BlueprintLibrary-module__ypUmjW__showMore,
.BlueprintLibrary-module__ypUmjW__stateCard,
.BlueprintLibrary-module__ypUmjW__toolbar,
.Landing-module__5ARf-a__hero,
.Landing-module__5ARf-a__trustRail,
.PageIntro-module__DPF-qW__genericNode,
.PageIntro-module__DPF-qW__hero,
.PageIntro-module__DPF-qW__hero,.PageIntro-module__DPF-qW__compact,
.PageIntro-module__DPF-qW__signalState,
.ProtocolReceipt-module__IIPs9W__status,
.TokenUtilities-module__aBdHwq__utilityToolbar,
.TrustPage-module__cEbYRq__hero,
.TrustPage-module__cEbYRq__index,
.TrustPage-module__cEbYRq__nav,
.TrustPage-module__cEbYRq__section,
.UtilityActions-module__hXjakW__capacityNotice,
.UtilityActions-module__hXjakW__panel,
.UtilityActions-module__hXjakW__position,
.UtilityActions-module__hXjakW__stateChip,
.UtilityActions-module__hXjakW__tierButton,
.UtilityActions-module__hXjakW__tierButton[aria-pressed=true],
.account-live-dot,
.agent-index,
.agent-statusbar,
.agent-system-rail,
.blueprint-toolbar,
.btn,
.btn-gold,
.btn-lg,
.btn-sm,
.btn:disabled,
.btn:hover:not(:disabled),
.card,
.card-hero,
.card-hover:hover,
.chip,
.chip.active,
.discover-market-stage-bonding .discover-market-stage-header,
.discover-market-stage-empty,.discover-market-stage-more,
.discover-market-stage-marker,
.discover-stage-switch,
.discover-stage-switch-option,
.discover-stage-switch-option:hover,
.header-actions>.account-menu>.btn,
.header-inner>.account-menu>.btn,
.leverage-tease,
.leverage-tease:hover,
.logo-tile,
.lp-block-card:hover,
.nav-tab.active,
.page-module__u6z2tW__parameterIndex,
.page-module__u6z2tW__rangeMarker,
.page-module__u6z2tW__relatedCard,.page-module__u6z2tW__relatedCard:hover,
.profile-module__skRmGq__blueprintId,.profile-module__skRmGq__rank,
.profile-module__skRmGq__creatorCard:focus-within,
.profile-module__skRmGq__creatorProfileLink,
.profile-module__skRmGq__directoryControls,
.profile-module__skRmGq__directoryHero,
.profile-module__skRmGq__directoryHookButton,
.profile-module__skRmGq__directoryHookButtonActive,
.profile-module__skRmGq__directoryResultBar button,.profile-module__skRmGq__directoryEmptyActions button,.profile-module__skRmGq__directoryReveal button,
.profile-module__skRmGq__directoryViewButton,
.profile-module__skRmGq__directoryViewButtonActive,
.profile-module__skRmGq__dna,
.profile-module__skRmGq__hero,
.profile-module__skRmGq__hero,.profile-module__skRmGq__directoryHero,
.profile-module__skRmGq__launchCard,.profile-module__skRmGq__blueprintCard,.profile-module__skRmGq__creatorCard,
.profile-module__skRmGq__launchCard:hover,.profile-module__skRmGq__creatorCard:hover,
.profile-module__skRmGq__metricRail,
.profile-module__skRmGq__proofGrid,
.profile-module__skRmGq__sectionNav a,
.profile-module__skRmGq__sourceRibbon,
.token-jump,
.token-tile {
  box-shadow: none;
}

/* Panels the app inverted by painting --ink behind --card text. With --ink now
   the text colour they would come out white-on-transparent, so the inversion is
   undone: a deep veil, bright text, and the field still readable through it. */
.BoostedRail-module__M97hNW__rail,
.Landing-module__5ARf-a__hero,
.Landing-module__5ARf-a__trustRail,
.PageIntro-module__DPF-qW__hero,
.TrustPage-module__cEbYRq__hero,
.TrustPage-module__cEbYRq__navTitle,
.UtilityActions-module__hXjakW__panel:before,
.account-popover-head,
.agent-statusbar,
.agent-system-rail,
.coin-face,
.logo-tile,
.page-module__u6z2tW__parametersHeader,
.panel-header,
.profile-module__skRmGq__metricRail,
.profile-module__skRmGq__proofGrid,
.ticker {
  background: rgba(7, 12, 10, .34) !important;
  color: var(--ink) !important;
}

/* The hero is the one place the field should be uninterrupted — the headline
   sits directly on it, the way the reference does. */
.PageIntro-module__DPF-qW__hero,
.Landing-module__5ARf-a__hero,
.TrustPage-module__cEbYRq__hero {
  background: none !important;
  border: none !important;
  padding-left: 0;
  padding-right: 0;
}

/* amber.css paints the header CA button with the accent and its own dark text. */
.amber-hdr-ca, .amber-hdr-ca .amber-ca-val {
  background: rgba(182, 235, 210, .16) !important;
  color: var(--ink) !important;
  border: 1px solid rgba(182, 235, 210, .34) !important;
}

/* Selected filters and stage switches: mint glass, never a white slab. */
.chip.active,
.discover-stage-switch-option[aria-pressed="true"],
.discover-stage-switch-option.active {
  background: rgba(182, 235, 210, .16) !important;
  color: var(--ink) !important;
  border-color: rgba(182, 235, 210, .34) !important;
}

/* The logo tile keeps its own artwork. */
.logo-tile { background: none !important; backdrop-filter: none; }

/* Anything the app filled with the old lime accent. The fill is mint glass now,
   so the text on it stays light rather than flipping to dark. */
.BlueprintLibrary-module__ypUmjW__activeFilter,
.BlueprintLibrary-module__ypUmjW__detailsSummary:before,
.BlueprintLibrary-module__ypUmjW__primaryButton,.BlueprintLibrary-module__ypUmjW__primaryAction,
.BlueprintLibrary-module__ypUmjW__receiptMark,
.BoostedRail-module__M97hNW__powerTrack span:first-child,
.Landing-module__5ARf-a__hero:before,
.PageIntro-module__DPF-qW__genericNode,
.PageIntro-module__DPF-qW__railItem:not(:last-child):after,
.ProtocolReceipt-module__IIPs9W__receipt,
.UtilityActions-module__hXjakW__panel:before,
.UtilityActions-module__hXjakW__tierButton[aria-pressed=true],
.agent-index,
.blueprint-details summary:before,
.btn-primary,
.chip.active,
.coin,
.discover-stage-switch-option[data-stage=all][aria-pressed=true],
.leverage-tease-chip.is-soon,
.nav-tab.active,
.profile-module__skRmGq__blueprintId,.profile-module__skRmGq__rank,
.profile-module__skRmGq__creatorProfileLink,
.profile-module__skRmGq__directoryControls:before,
.profile-module__skRmGq__directoryResultBar button,.profile-module__skRmGq__directoryEmptyActions button,.profile-module__skRmGq__directoryReveal button,
.profile-module__skRmGq__directoryViewButtonActive,
.profile-module__skRmGq__directoryViewButtonActive:hover,
.profile-module__skRmGq__progressFill,
.profile-module__skRmGq__sectionNav a:hover,
.profile-module__skRmGq__sourceIcon,
.progress-fill,
.progress-fill.deep,
::selection,
input[type=range]::-moz-range-thumb,
input[type=range]::-webkit-slider-thumb,
input[type=range]::-webkit-slider-thumb:hover {
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink);
  border-color: rgba(182, 235, 210, .34) !important;
}

/* Text the app painted in --card because it sat on an inverted panel. */
.BoostedRail-module__M97hNW__header h2,
.BoostedRail-module__M97hNW__identity strong,
.BoostedRail-module__M97hNW__metrics dd,
.BoostedRail-module__M97hNW__rail,
.Landing-module__5ARf-a__chainBadge,
.Landing-module__5ARf-a__demoControl,
.Landing-module__5ARf-a__demoHeader strong,
.Landing-module__5ARf-a__hero,
.Landing-module__5ARf-a__secondaryAction,.Landing-module__5ARf-a__secondaryAction:hover,
.Landing-module__5ARf-a__title,
.PageIntro-module__DPF-qW__hero,
.PageIntro-module__DPF-qW__metric dd,
.PageIntro-module__DPF-qW__secondary,.PageIntro-module__DPF-qW__secondary:hover,
.PageIntro-module__DPF-qW__title,
.TrustPage-module__cEbYRq__hero,
.TrustPage-module__cEbYRq__stamp strong,
.account-popover-head,
.page-module__u6z2tW__parametersHeader {
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink);
}

.card {
  background: var(--card);
  border-radius: 14px;
}

.header {
  background: rgba(7, 12, 10, .55);
  border-bottom: 1px solid rgba(237, 244, 241, .10);
}

/* ---- controls ----------------------------------------------------------- */
.btn {
  background: rgba(237, 244, 241, .07);
  color: var(--ink);
  border: 1px solid rgba(237, 244, 241, .18);
  border-radius: 999px;
  box-shadow: none;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.btn:hover:not(:disabled) {
  background: rgba(237, 244, 241, .13);
  border-color: rgba(237, 244, 241, .3);
  transform: none;
}
.btn:active:not(:disabled) { transform: translateY(1px); }

/* One white pill carries the primary action, the way the reference does. The
   app spells that role three ways, so all three are named here — otherwise the
   hero's call to action comes out looking exactly like the secondary next to
   it. */
.btn-primary,
.PageIntro-module__DPF-qW__primary,
.BlueprintLibrary-module__ypUmjW__primary {
  background: #f4faf8 !important;
  color: #0c1411 !important;
  -webkit-text-fill-color: #0c1411;
  border-color: transparent !important;
}
.btn-primary .pix,
.PageIntro-module__DPF-qW__primary .pix,
.BlueprintLibrary-module__ypUmjW__primary .pix { color: #0c1411 !important; }
.btn-primary:hover:not(:disabled),
.PageIntro-module__DPF-qW__primary:hover:not(:disabled),
.BlueprintLibrary-module__ypUmjW__primary:hover:not(:disabled) {
  background: #ffffff !important;
  border-color: transparent !important;
}

.nav-tab { border-radius: 999px; }
.nav-tab.active,
.nav-tab[aria-current="page"] {
  background: rgba(237, 244, 241, .10);
  color: var(--text-strong);
  border-color: transparent;
}

.chip, .stat-chip, .gas-chip {
  border-radius: 999px;
  background: rgba(237, 244, 241, .07);
}

input, textarea, select, .pix-input {
  background: rgba(7, 11, 9, .42);
  color: var(--ink);
  border-radius: 10px;
}
input::placeholder, textarea::placeholder { color: var(--text-muted); }

/* Focus must stay obvious on a field this soft. */
:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 2px solid #b6ebd2;
  outline-offset: 2px;
  border-radius: 8px;
}

/* ---- type --------------------------------------------------------------- */
/* Silkscreen keeps the labels — the reference uses monospace in exactly that
   role — while Chakra Petch carries headings and prose. */
.pix { color: var(--text-muted); letter-spacing: .1em; }
h1, h2, h3 { color: var(--text-strong); }
a { color: var(--ink); text-decoration-color: rgba(237, 244, 241, .3); }
a:hover { color: var(--link-hover); }

.footer { color: var(--footer-text); }

::selection { background: rgba(182, 235, 210, .3); color: #ffffff; }

/* ---- the activity ticker ------------------------------------------------
 * A strip under the header that reports what the chain did lately. With this
 * deployment listing none of the earlier project's launches it has nothing to
 * say but "no launch, buy or hook event in the last 100 000 blocks", which is
 * a poor first line for a site that has not opened yet. Hidden, not deleted:
 * it comes back by dropping this rule once there is activity to show.
 * ---------------------------------------------------------------------- */
.ticker { display: none !important; }
