/* Keep on top of af.css (the ansem.io component sheet). Fonts, our accent, the knight in the hero, and the few widgets af.css does not cover. */
@font-face { font-family: Geist; src: url(/fonts/Geist-Variable.woff2) format("woff2-variations"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url(/fonts/GeistMono-Variable.woff2) format("woff2-variations"); font-weight: 100 900; font-display: swap; }
html, body { margin: 0; background: #07080c; }
.af { --c-accent: #9fd3ff; --c-accent-deep: #78bdf5; --c-accent-alt: #bfe3ff; min-height: 100vh; color: var(--c-text); font-family: var(--font-sans); font-size: 14px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
.af a { color: inherit; text-decoration: none; }
.af button { font: inherit; color: inherit; cursor: pointer; }
.af img { max-width: 100%; }
.af-hd__brand img { width: 32px; height: 32px; object-fit: contain; margin-right: 10px; }
.af-hd__brand span { font-weight: 600; font-size: 14px; letter-spacing: -0.01em; }
.bb-wallet__btn { height: 32px; padding: 0 12px; border-radius: var(--r-sm); background: transparent; border: 1px solid var(--c-border); color: var(--c-text); font-family: var(--font-mono); font-size: 10.5px; font-weight: 500; letter-spacing: 1.05px; text-transform: uppercase; box-shadow: none; }
.bb-wallet__btn:hover { background: #ffffff08; border-color: var(--c-border-strong); box-shadow: none; }
/* the knight stands where the bull stood */
.af-hero__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; max-width: 760px; margin-top: 54px; }
.af-hero__cta { display: flex; gap: 10px; margin-top: 28px; }
.af-hero__lead strong { color: var(--c-accent); font-weight: 600; }
.af-trend__row { display: flex; gap: 8px; overflow: auto; padding-bottom: 4px; scrollbar-width: none; }
.af-trend__row::-webkit-scrollbar { display: none; }
.af-trend__chip { display: inline-flex; align-items: center; gap: 8px; flex: none; height: 39px; padding: 7px 12px 7px 8px; border: 1px solid var(--c-border); border-radius: 8px; background: var(--c-surface); font-family: var(--font-mono); font-size: 11px; white-space: nowrap; }
.af-trend__chip img { width: 22px; height: 22px; border-radius: 4px; object-fit: cover; background: var(--c-raised); }
.af-trend__chip .af-trend__rank { color: var(--c-text-3); }
.af-trend__chip b { color: var(--c-text); font-weight: 600; }
.af-trend__chip .mc { color: var(--c-text-2); }
.af-up { color: var(--c-accent); } .af-down { color: var(--c-neg); }
.af-trend__head { display: flex; align-items: center; gap: 12px; margin: 26px 0 10px; }
.af-trend__wins { display: inline-flex; gap: 2px; margin-left: 6px; } .af-trend__win { height: 22px; padding: 0 8px; border: 1px solid var(--c-border); background: transparent; color: var(--c-text-2); font-family: var(--font-mono); font-size: 10px; border-radius: 4px; } .af-trend__win.is-on { background: var(--c-raised); color: var(--c-text); }
.af-filters__pills { display: flex; gap: 4px; flex-wrap: wrap; }
.af-filtersel { height: 31px; padding: 0 8px; margin-left: 8px; background: var(--c-surface); border: 1px solid var(--c-border); color: var(--c-text-2); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; }
.af-sort, .af-view { display: inline-flex; margin-left: auto; border: 1px solid var(--c-border); background: var(--c-surface); padding: 2px; gap: 2px; } .af-view { margin-left: 8px; }
.af-sort button, .af-view button { height: 26px; padding: 0 10px; background: transparent; border: 0; color: var(--c-text-2); font-family: var(--font-mono); font-size: 10px; letter-spacing: 1px; text-transform: uppercase; display: inline-flex; align-items: center; gap: 6px; }
.af-sort button.is-on, .af-view button.is-on { background: var(--c-accent); color: #000; }
.af-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
@media (max-width: 1200px) { .af-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } } @media (max-width: 760px) { .af-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.af-card__name { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .af-card__tick { font-family: var(--font-mono); font-size: 10px; color: var(--c-text-3); }
.af-card__nums { display: flex; justify-content: space-between; align-items: baseline; } .af-card__mc { font-family: var(--font-mono); font-size: 12.5px; } .af-card__chg { font-family: var(--font-mono); font-size: 11px; color: var(--c-text-3); } .af-card__chg.af-up { color: var(--c-accent); } .af-card__chg.af-down { color: var(--c-neg); }
.af-tierinfo { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.af-tier { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px 4px 6px; font-family: var(--font-mono); font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase; border-radius: 3px; background: #1a2a3a; color: #cfe9ff; } .af-tier i { width: 6px; height: 6px; border-radius: 50%; background: var(--c-accent); display: inline-block; }
.af-empty { grid-column: 1 / -1; padding: 40px; text-align: center; color: var(--c-text-3); font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; border: 1px dashed var(--c-border); }
.af-table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 13px; } .af-table th { text-align: left; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-text-3); padding: 10px 12px; border-bottom: 1px solid var(--c-border); background: var(--c-surface); } .af-table td { padding: 10px 12px; border-bottom: 1px solid var(--c-border); } .af-table tr:hover td { background: #ffffff05; cursor: pointer; } .af-table .r { text-align: right; } .af-table img { width: 28px; height: 28px; border-radius: 4px; object-fit: cover; vertical-align: middle; margin-right: 8px; }
.mono { font-family: var(--font-mono); }
/* footer */
.af-ft { margin-top: 60px; border-top: 1px solid var(--c-border); padding: 28px 0 90px; } .af-ft__cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 24px; } .af-ft__brand p { color: var(--c-text-2); font-size: 13px; max-width: 360px; } .af-ft h4 { margin: 0 0 10px; } .af-ft ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; font-size: 13px; color: var(--c-text-2); } .af-ft__bar { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--c-border); }
/* create page in the af scope */
.af .pf-narrow { max-width: 1264px; padding: 64px 32px 0; margin: 0 auto; }
.af .bbc-title { font-family: var(--font-sans); font-weight: 800; font-size: 52px; letter-spacing: -0.045em; text-transform: uppercase; color: var(--c-text); margin: 6px 0 12px; }
.af .bbc-lead { color: var(--c-text-2); font-size: 14.5px; max-width: 620px; margin: 0 0 34px; }
.af .bbc-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 24px; align-items: start; }
.af .bbc-form { display: grid; gap: 24px; }
.af .bbc-panel { border: 1px solid var(--c-border); background: transparent; } .af .bbc-panel__head { background: var(--c-surface); padding: 12px 20px; border-bottom: 1px solid var(--c-border); } .af .bbc-panel__head b { font-size: 12px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; } .af .bbc-panel__head small { display: block; color: var(--c-text-3); font-size: 11.5px; margin-top: 3px; }
.af .bbc-body { padding: 20px; display: grid; gap: 18px; }
.af .bbc-field .lbl { display: block; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 1.26px; text-transform: uppercase; color: var(--c-text-3); margin-bottom: 8px; }
.af .bbc-field input, .af .bbc-field textarea { width: 100%; box-sizing: border-box; background: var(--c-bg); border: 1px solid var(--c-border); color: var(--c-text); font-family: var(--font-sans); font-size: 14px; padding: 11px 13px; outline: none; border-radius: 0; } .af .bbc-field input:focus, .af .bbc-field textarea:focus { border-color: var(--c-border-strong); } .af .bbc-field textarea { min-height: 84px; resize: vertical; }
.af .bbc-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.af .bbc-drop { border: 1px dashed var(--c-border-strong); background: var(--c-surface); padding: 30px 18px; text-align: center; cursor: pointer; color: var(--c-text-2); position: relative; min-height: 150px; display: grid; place-items: center; } .af .bbc-drop img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; } .af .bbc-drop__t { font-size: 14px; color: var(--c-text); } .af .bbc-drop__s { font-size: 12px; color: var(--c-text-3); margin-top: 4px; } .af .bbc-drop__btn { margin-top: 12px; }
.af .bbc-media { display: grid; grid-template-columns: 1fr 1.2fr; gap: 20px; padding: 20px; } .af .bbc-specsheet { font-size: 12.5px; color: var(--c-text-2); display: grid; gap: 10px; } .af .bbc-specsheet b { display: block; color: var(--c-text); font-size: 12.5px; } .af .bbc-specsheet__i { display: flex; gap: 8px; } .af .bbc-specsheet__i:before { content: "—"; color: var(--c-text-3); }
.af .bbc-tiers { display: grid; grid-template-columns: 1fr; } .af .bbc-tier { display: grid; gap: 12px; padding: 18px 20px; } .af .bbc-tier__top { display: flex; align-items: center; justify-content: space-between; } .af .bbc-tier__desc { font-size: 13px; color: var(--c-text-2); line-height: 1.5; } .af .bbc-tier .big { font-family: var(--font-sans); font-weight: 800; font-size: 44px; letter-spacing: -0.04em; color: var(--c-accent); line-height: 1; }
.af .bbc-preview__pad { padding: 20px; } .af .bbc-preview__card { border: 1px solid var(--c-border); background: var(--c-surface); padding: 0; } .af .bbc-preview__art { aspect-ratio: 1; background: var(--c-raised); display: grid; place-items: center; color: var(--c-text-3); font-family: var(--font-mono); font-size: 11px; overflow: hidden; position: relative; } .af .bbc-preview__art img { width: 100%; height: 100%; object-fit: cover; } .af .bbc-preview__curve { height: 3px; background: #ffffff0f; } .af .bbc-preview__curve i { display: block; height: 100%; width: 4%; background: var(--c-accent); } .af .bbc-preview__info { padding: 10px; display: grid; gap: 5px; } .af .bbc-preview__name { display: flex; align-items: center; gap: 6px; font-size: 13px; } .af .bbc-preview__name span { font-family: var(--font-mono); font-size: 10px; color: var(--c-text-3); } .af .bbc-preview__nums { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 11px; color: var(--c-text-3); }
.af .bbc-pay__list { padding: 20px; display: grid; gap: 14px; } .af .bbc-pay__row { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; } .af .bbc-pay__row .v { font-family: var(--font-mono); font-weight: 600; } .af .bbc-pay__sub { font-size: 11px; color: var(--c-text-3); margin-top: 3px; } .af .abf__row { display: flex; align-items: center; gap: 8px; } .af .abf__input { flex: 1; min-width: 0; height: 40px; background: var(--c-bg); border: 1px solid var(--c-border); color: var(--c-text); font-family: var(--font-mono); font-size: 15px; padding: 0 12px; outline: none; } .af .denom { font-family: var(--font-mono); font-size: 11px; color: var(--c-text-2); padding: 0 10px; height: 40px; display: inline-flex; align-items: center; border: 1px solid var(--c-border); background: var(--c-surface); } .af .abf__presets { display: flex; gap: 6px; margin-top: 8px; } .af .abf__presets button { height: 26px; padding: 0 10px; background: transparent; border: 1px solid var(--c-border); color: var(--c-text-2); font-family: var(--font-mono); font-size: 10px; } .af .abf__presets button.on { border-color: var(--c-accent); color: var(--c-accent); } .af .abf__hint { font-size: 11px; color: var(--c-text-3); margin-top: 8px; }
.af .bbc-pay__total { display: flex; justify-content: space-between; padding: 14px 20px; border-top: 1px solid var(--c-border); font-weight: 600; } .af .bbc-pay__total .v { font-family: var(--font-mono); font-size: 16px; }
.af .bbc-pay__note { padding: 14px 20px; border-top: 1px solid var(--c-border); font-size: 11.5px; color: var(--c-text-3); line-height: 1.5; }
.af .bbc-cta { padding: 20px; display: grid; gap: 10px; } .af .bbc-cta .af-btn { width: 100%; } .af .bbc-cta__req { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-text-3); text-align: center; }
.af .bbc-side { display: grid; gap: 24px; align-content: start; }
.af .progress-list { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 4px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-text-3); } .af .progress-list li.done { color: var(--c-text-2); } .af .progress-list li.now { color: var(--c-accent); }
/* coin page */
.af .cp-page { max-width: 1400px; margin: 0 auto; padding: 32px 32px 56px; }
.af .cp-back { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--c-text-3); } .af .cp-back:hover { color: var(--c-text); }
.af .cp-top { --coin: 159 211 255; display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); margin: 20px 0 24px; border: 1px solid rgb(var(--coin) / .34); overflow: hidden; }
.af .cp-hero__banner { position: relative; overflow: hidden; aspect-ratio: 3 / 1; background: var(--c-surface); } .af .cp-hero__banner img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; filter: blur(14px) saturate(1.1); transform: scale(1.15); } .af .cp-hero__shade { position: absolute; inset: auto 0 0; height: 56%; background: linear-gradient(180deg, transparent, rgba(7, 8, 12, .82)); }
.af .cp-hero__row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; flex-wrap: wrap; }
.af .cp-id { display: flex; align-items: center; gap: 14px; min-width: 0; } .af .cp-id__art { position: relative; width: 64px; height: 64px; flex: none; } .af .cp-id__art img { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; background: var(--c-raised); } .af .cp-id__top { display: flex; align-items: baseline; gap: 10px; } .af .cp-id__top h1 { font-size: 30px; font-weight: 800; letter-spacing: -0.03em; margin: 0; } .af .cp-id__tick { font-family: var(--font-mono); font-size: 12px; color: var(--c-text-3); } .af .cp-id__meta { display: flex; align-items: center; gap: 10px; margin-top: 6px; font-family: var(--font-mono); font-size: 10.5px; color: var(--c-text-3); }
.af .cp-acts { display: flex; align-items: center; gap: 6px; } .af .cp-acts__ca, .af .cp-acts__ico { height: 30px; padding: 0 10px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--c-border); background: var(--c-surface); color: var(--c-text-2); font-family: var(--font-mono); font-size: 10.5px; } .af .cp-acts__ico { width: 30px; padding: 0; justify-content: center; } .af .cp-acts__sep { width: 1px; height: 18px; background: var(--c-border); margin: 0 4px; }
.af .cp-hero__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(108px, 1fr)); gap: 10px 18px; margin: 0; padding: 12px 20px 16px; border-top: 1px solid var(--c-border); } .af .cp-hero__stats dt { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; color: var(--c-text-3); font-family: var(--font-mono); } .af .cp-hero__stats dd { margin: 2px 0 0; font-size: 13.5px; font-weight: 600; }
.af .cp-panel.epa { border-left: 1px solid var(--c-border); padding: 0; display: flex; flex-direction: column; } .af .epa__tabs { display: flex; gap: 18px; padding: 14px 20px 0; border-bottom: 1px solid var(--c-border); } .af .epa__tabs button { background: none; border: 0; padding: 0 0 10px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--c-text-3); border-bottom: 2px solid transparent; } .af .epa__tabs button.is-on { color: var(--c-accent); border-color: var(--c-accent); } .af .epa__body { padding: 18px 20px; font-size: 13px; line-height: 1.6; color: var(--c-text-2); overflow: auto; max-height: 380px; } .af .epa__body h3 { color: var(--c-text); font-size: 15px; margin: 0 0 10px; }
.af .cp-layout { display: grid; grid-template-columns: minmax(0, 1fr) 336px; gap: 24px; align-items: start; } .af .cp-main { display: grid; gap: 22px; } .af .cp-side { display: grid; gap: 16px; }
.af .cp-panel { border: 1px solid var(--c-border); } .af .cp-panel__head { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; background: var(--c-surface); border-bottom: 1px solid var(--c-border); } .af .cp-panel__head h2 { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 1.26px; text-transform: uppercase; color: var(--c-text-3); margin: 0; font-weight: 500; }
.af .cp-mc { padding: 18px 20px 0; display: flex; align-items: baseline; gap: 12px; } .af .cp-mc b { font-size: 34px; font-weight: 800; letter-spacing: -0.03em; } .af .cp-mc span { font-family: var(--font-mono); font-size: 11px; }
.af .cp-chart { padding: 0 20px 16px; } .af .cp-chart__meta { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-text-3); padding: 14px 0 10px; }
.af .mchart__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .af .mchart__tabs { display: flex; gap: 2px; } .af .mchart__tab { height: 26px; padding: 0 10px; background: transparent; border: 1px solid transparent; color: var(--c-text-2); font-family: var(--font-mono); font-size: 11px; } .af .mchart__tab.is-on { background: var(--c-raised); color: var(--c-text); border-color: var(--c-border); } .af .mchart__status { font-family: var(--font-mono); font-size: 10px; color: var(--c-text-3); text-transform: uppercase; letter-spacing: 0.1em; }
.af .mchart__legend { display: flex; gap: 12px; font-family: var(--font-mono); font-size: 10.5px; color: var(--c-text-3); margin: 10px 0 6px; } .af .mchart__legend b { color: var(--c-text); } .af .mchart__legend i { font-style: normal; color: var(--c-text-2); }
.af .mchart__plot { height: 420px; position: relative; } .af .mchart__plot > div { position: absolute; inset: 0; }
.af .tfeed { font-family: var(--font-mono); font-size: 11.5px; } .af .tfeed__row { display: grid; grid-template-columns: 70px 60px 1fr 1fr 1fr 110px; gap: 10px; padding: 9px 20px; border-bottom: 1px solid var(--c-border); align-items: center; } .af .tfeed__row--head { color: var(--c-text-3); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; background: var(--c-surface); } .af .tfeed__row--buy .tfeed__side { color: var(--c-accent); } .af .tfeed__row--sell .tfeed__side { color: var(--c-neg); } .af .tfeed__tx { color: var(--c-text-2); }
.af .cp-trade__tabs { display: grid; grid-template-columns: 1fr 1fr; } .af .cp-trade__tabs button { height: 36px; background: transparent; border: 0; border-bottom: 1px solid var(--c-border); color: var(--c-text-2); font-family: var(--font-mono); font-size: 11px; letter-spacing: 1.2px; text-transform: uppercase; } .af .cp-trade__tabs button.on { background: var(--c-accent); color: #000; } .af .cp-trade__tabs button.sell.on { background: var(--c-neg); color: #fff; }
.af .cp-trade { padding: 12px; display: grid; gap: 10px; } .af .cp-trade__field { border: 1px solid var(--c-border); background: var(--c-bg); padding: 10px 12px; } .af .cp-trade__row { display: flex; align-items: center; } .af .cp-trade__row input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: var(--c-text); font-family: var(--font-mono); font-size: 18px; } .af .cp-trade__denom { font-family: var(--font-mono); font-size: 11px; color: var(--c-text-3); } .af .cp-trade__foot { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 10.5px; color: var(--c-text-3); margin-top: 6px; }
.af .cp-trade__quick { display: flex; gap: 6px; } .af .cp-trade__quick button { flex: 1; height: 28px; background: transparent; border: 1px solid var(--c-border); color: var(--c-text-2); font-family: var(--font-mono); font-size: 10px; }
.af .cp-trade__est { border-top: 1px solid var(--c-border); padding-top: 10px; display: grid; gap: 6px; } .af .cp-trade__est-row { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 11px; } .af .cp-trade__est-row .k { color: var(--c-text-3); } .af .cp-trade__est-row--sub { font-size: 10.5px; } .af .cp-trade__slip { background: transparent; border: 0; color: var(--c-text-2); font-family: var(--font-mono); font-size: 10.5px; }
.af .cp-trade__cta { height: 40px; background: var(--c-accent); border: 1px solid var(--c-accent); color: #000; font-family: var(--font-mono); font-size: 11px; letter-spacing: 1.1px; text-transform: uppercase; font-weight: 600; } .af .cp-trade__cta.sell { background: var(--c-neg); border-color: var(--c-neg); color: #fff; } .af .cp-trade__cta:disabled { opacity: .6; }
.af .cp-trade__note { margin: 0; text-align: center; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-text-3); }
.af .cp-stats { padding: 14px 16px; display: grid; gap: 12px; } .af .cp-stats__top { display: flex; justify-content: space-between; } .af .cp-stats .k { display: block; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-text-3); } .af .cp-stats .v { font-family: var(--font-mono); font-size: 13px; } .af .pos { color: var(--c-accent); } .af .neg { color: var(--c-neg); }
.af .cp-split__row { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 10.5px; margin-bottom: 4px; } .af .cp-split__bar { display: flex; height: 3px; background: var(--c-raised); } .af .cp-split__bar i { display: block; height: 100%; background: var(--c-accent); } .af .cp-split__bar u { display: block; height: 100%; background: var(--c-neg); }
.af .cp-curve { padding: 14px 16px; } .af .cp-curve__top { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 10.5px; color: var(--c-text-2); margin-bottom: 8px; } .af .cp-curve__track { height: 4px; background: var(--c-raised); } .af .cp-curve__track i { display: block; height: 100%; background: var(--c-accent); }
.af .cp-insights { padding: 14px 16px; display: grid; gap: 12px; } .af .cp-insights .k { display: block; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-text-3); margin-bottom: 3px; } .af .cp-insights p { margin: 0; font-size: 12.5px; color: var(--c-text-2); word-break: break-all; }
.af .cp-note { padding: 14px 16px; margin: 0; font-size: 12px; color: var(--c-text-3); }
.af .cp-holders { padding: 6px 16px 10px; } .af .cp-holders div { display: grid; grid-template-columns: 24px 1fr auto auto; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--c-border); font-family: var(--font-mono); font-size: 11px; } .af .cp-holders div:last-child { border: 0; } .af .cp-holders .rank { color: var(--c-text-3); } .af .cp-holders .pct { color: var(--c-text-2); } .af .cp-holders .dev { color: var(--c-accent); font-size: 9px; margin-left: 6px; }
.af .cp-rule { padding: 14px 16px; display: flex; gap: 14px; align-items: center; } .af .cp-rule b { font-family: var(--font-sans); font-weight: 800; font-size: 34px; letter-spacing: -0.04em; color: var(--c-accent); line-height: 1; } .af .cp-rule p { margin: 0; font-size: 12px; color: var(--c-text-2); line-height: 1.5; }
/* how page prose */
.af .hw-prose { display: grid; gap: 22px; max-width: 820px; } .af .hw-prose h2 { font-size: 22px; font-weight: 800; letter-spacing: -0.03em; text-transform: uppercase; margin: 0 0 8px; } .af .hw-prose p { color: var(--c-text-2); font-size: 14.5px; line-height: 1.65; margin: 0; } .af .hw-prose .mono { font-size: 12px; word-break: break-all; }
/* misc widgets */
.af-search input { background: transparent; border: 0; outline: 0; color: var(--c-text); font-family: var(--font-mono); font-size: 11px; width: 170px; }
.qres { position: absolute; top: 40px; left: 0; right: 0; background: var(--c-surface); border: 1px solid var(--c-border); z-index: 50; display: grid; } .qres a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; font-size: 12px; border-bottom: 1px solid var(--c-border); } .qres img { width: 22px; height: 22px; border-radius: 4px; object-fit: cover; } .hidden { display: none !important; }
.toast { position: fixed; left: 50%; bottom: 56px; transform: translateX(-50%); background: var(--c-text); color: #000; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; padding: 10px 16px; z-index: 100; } .toast.err { background: var(--c-neg); color: #fff; }
.af .empty { padding: 80px 32px; text-align: center; color: var(--c-text-2); }
@media (max-width: 900px) { .af-hero__art { opacity: 0.6; } .af-hero__stats { grid-template-columns: 1fr; gap: 12px; } .af-display { font-size: 48px !important; line-height: 1 !important; letter-spacing: -0.04em !important; } .af .bbc-grid, .af .cp-layout, .af .cp-top { grid-template-columns: 1fr; } .af .bbc-panel--sticky { position: static; } .af .bbc-row2 { grid-template-columns: 1fr; } .af .pf-narrow, .af .cp-page { padding-left: 20px; padding-right: 20px; } .af-sort, .af-view { margin-left: 0; } }
.af .bbc-row2 { align-items: end; }
.af .bbc-preview__curve { position: relative; }
.af .cp-top { position: relative; isolation: isolate; }
.af .cp-top > div:first-child { grid-column: 1; min-width: 0; }
.af .cp-panel.epa { position: relative; grid-column: 2; inset: auto; width: auto; height: auto; margin: 0; }
.af .cp-hero__banner img { filter: blur(18px) saturate(1.1) brightness(0.8); transform: scale(1.2); }

/* home: stats row + FAQ (ansem layout) */
.af .af-stats { margin-top: 56px; }
.af .af-stats .af-stat__v { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; margin-top: 6px; }
.af .af-stats .af-stat__c { font-size: 12px; color: var(--c-text-3); margin-top: 4px; }
.af .af-faq__img { aspect-ratio: 2.33; object-position: center 40%; }
/* launch: coin page preview */
.af .bbc-look { border: 1px solid var(--c-border); background: var(--c-surface); overflow: hidden; }
.af .bbc-look img { display: block; width: 100%; aspect-ratio: 3.5; object-fit: cover; filter: saturate(0.85); }
.af .bbc-look__cap { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; font-size: 12px; color: var(--c-text-2); border-top: 1px solid var(--c-border); }
.af .cp-hero__banner img.is-default { opacity: 0.55; }

/* ── hero: the knight as big as the bull on ansem.io ── */
.af-hero { min-height: 640px; display: flex; flex-direction: column; justify-content: center; }
.af-hero::before { content: ""; position: absolute; right: 12%; top: 18%; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(159, 211, 255, 0.16), rgba(159, 211, 255, 0) 65%); pointer-events: none; }
.af-hero__in { padding-block: 84px 44px !important; }
.af-display { font-size: clamp(56px, 7.2vw, 104px) !important; line-height: 0.92 !important; }
.af-hero__lead { font-size: 15.5px; max-width: 560px; }
@media (max-width: 900px) { .af-hero { min-height: 0; } .af-hero__art { left: 0 !important; opacity: 0.4 !important; background-position: 70% 30% !important; } }

/* ── how it works: a hero band, the hundred-block rule, four illustrated steps, the knight who reads the rule ── */
.hw-hero { position: relative; overflow: hidden; min-height: 460px; display: flex; align-items: center; border-bottom: 1px solid var(--c-border); }
.hw-hero__art { position: absolute; inset: 0; background: url(/assets/brand/banner.png?v=2) center 35% / cover no-repeat; opacity: 0.9; }
.hw-hero__art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--c-bg) 8%, rgba(7, 8, 12, 0.78) 36%, rgba(7, 8, 12, 0.15) 70%, rgba(7, 8, 12, 0.05)), linear-gradient(180deg, rgba(7, 8, 12, 0.5), rgba(7, 8, 12, 0) 30%, rgba(7, 8, 12, 0) 70%, var(--c-bg)); }
.hw-hero__in { position: relative; padding-block: 72px 56px; max-width: 760px; }
.hw-hero__title { margin: 10px 0 18px; }
.hw-hero__lead { color: var(--c-text-2); font-size: 15.5px; line-height: 1.6; max-width: 600px; margin: 0; }
.hw-body { padding-top: 56px; padding-bottom: 80px; display: grid; gap: 56px; }
.hw-rule { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 40px; align-items: center; }
.hw-rule h2, .hw-check h2 { font-size: 30px; font-weight: 800; letter-spacing: -0.035em; text-transform: uppercase; line-height: 1.02; margin: 10px 0 14px; }
.hw-rule p, .hw-check p, .hw-step p { color: var(--c-text-2); font-size: 14.5px; line-height: 1.65; margin: 0; }
.hw-blocks { display: grid; grid-template-columns: repeat(20, 1fr); gap: 4px; padding: 18px; border: 1px solid var(--c-border); background: var(--c-surface); position: relative; }
.hw-blocks i { display: block; aspect-ratio: 1; background: #ffffff12; border: 1px solid #ffffff10; }
.hw-blocks i.mine { background: var(--c-accent); border-color: var(--c-accent); box-shadow: 0 0 14px rgba(159, 211, 255, 0.45); }
.hw-blocks i.other { background: #ffffff38; border-color: #ffffff30; }
.hw-blocks__key { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 16px; margin-top: 14px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-text-2); }
.hw-blocks__key span { display: inline-flex; align-items: center; gap: 7px; } .hw-blocks__key b { width: 10px; height: 10px; background: #ffffff12; border: 1px solid #ffffff10; } .hw-blocks__key b.mine { background: var(--c-accent); border-color: var(--c-accent); } .hw-blocks__key b.other { background: #ffffff38; }
.hw-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.hw-step { position: relative; padding: 26px 26px 26px 26px; border: 1px solid var(--c-border); background: linear-gradient(180deg, #ffffff06, #ffffff02); overflow: hidden; }
.hw-step::after { content: ""; position: absolute; right: -40px; top: -40px; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, rgba(159, 211, 255, 0.12), rgba(159, 211, 255, 0) 70%); }
.hw-step__n { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; color: var(--c-accent); }
.hw-step__ic { width: 44px; height: 44px; margin: 14px 0 12px; color: var(--c-accent); display: grid; place-items: center; border: 1px solid #9fd3ff40; background: #9fd3ff12; }
.hw-step__ic svg { width: 24px; height: 24px; }
.hw-step h3 { font-size: 20px; font-weight: 800; letter-spacing: -0.03em; text-transform: uppercase; margin: 0 0 8px; }
.hw-check { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 0; border: 1px solid var(--c-border); overflow: hidden; min-height: 360px; }
.hw-check__art { background: url(/assets/brand/faq.png?v=2) 40% center / cover no-repeat; min-height: 280px; position: relative; }
.hw-check__art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7, 8, 12, 0) 60%, var(--c-bg)); }
.hw-check__copy { padding: 36px 36px 36px 28px; display: flex; flex-direction: column; gap: 10px; justify-content: center; background: var(--c-bg); }
.hw-check .mono { font-family: var(--font-mono); font-size: 12px; color: var(--c-accent); word-break: break-all; }
.hw-check .af-btn { align-self: flex-start; margin-top: 8px; }
@media (max-width: 900px) { .hw-rule, .hw-steps, .hw-check { grid-template-columns: 1fr; } .hw-hero { min-height: 0; } .hw-hero__art { opacity: 0.5; } .hw-check__art::after { background: linear-gradient(180deg, rgba(7, 8, 12, 0) 60%, var(--c-bg)); } }

/* hero art: the knight bleeds into the page, no edges. Black in the image becomes the page background via blend. */
.af-hero__art { left: 24% !important; right: 0; width: auto !important; height: 100% !important; opacity: 1 !important; background-image: url(/assets/brand/gen/hero-1.png?v=3) !important; background-size: cover !important; background-position: 70% 35% !important; background-color: #000; mix-blend-mode: lighten;
  -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, #000 34%, #000 86%, rgba(0,0,0,0) 100%), linear-gradient(180deg, #000 0%, #000 55%, rgba(0,0,0,0) 96%); mask-image: linear-gradient(90deg, #0000 0%, #000 34%, #000 86%, #0000 100%), linear-gradient(180deg, #000 0%, #000 55%, #0000 96%); -webkit-mask-composite: source-in; mask-composite: intersect; }
.af-hero__art:after { content: none !important; }
.af-hero { background: var(--c-bg); }
/* analytics */
.af .an-head { padding: 56px 0 8px; } .af .an-head h1 { margin: 10px 0 0; } .af .an-head p { color: var(--c-text-2); font-size: 14px; max-width: 620px; margin-top: 12px; }
.af .an-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 32px; margin-bottom: 64px; }
.af .an-panel { border: 1px solid var(--c-border); background: var(--c-surface); padding: 18px 20px; }
.af .an-panel h3 { margin: 0; font-size: 13px; font-weight: 600; } .af .an-panel .af-label { display: block; margin-top: 4px; }
.af .an-bars { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; align-items: end; gap: 6px; height: 160px; margin-top: 26px; }
.af .an-bars i { display: block; background: var(--c-accent); opacity: 0.85; min-height: 2px; border-radius: 2px 2px 0 0; position: relative; }
.af .an-bars i.dim { background: var(--c-border-strong); }
.af .an-bars i b { position: absolute; left: 50%; bottom: 100%; transform: translateX(-50%); font: 500 10px/1 var(--font-mono); color: var(--c-text-3); padding-bottom: 4px; white-space: nowrap; }
.af .an-axis { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; margin-top: 8px; font: 500 10px/1 var(--font-mono); color: var(--c-text-3); text-align: center; letter-spacing: 0.04em; }
.af .an-rows { margin-top: 14px; } .af .an-row { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 12px; padding: 9px 0; border-top: 1px solid var(--c-border); font-size: 13px; color: var(--c-text); text-decoration: none; }
.af .an-row .bar { height: 4px; background: var(--c-raised); margin-top: 6px; } .af .an-row .bar i { display: block; height: 100%; background: var(--c-accent); }
.af .an-wide { grid-column: 1 / -1; }
@media (max-width: 900px) { .af .an-grid { grid-template-columns: 1fr; } }

/* ── dropdowns ── */
.af .af-dd { position: relative; margin-left: 8px; }
.af .af-dd__btn { display: inline-flex; align-items: center; gap: 7px; height: 31px; padding: 0 10px 0 11px; border: 1px solid var(--c-border); border-radius: 7px; background: var(--c-surface); color: var(--c-text-2); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.6px; text-transform: uppercase; cursor: pointer; transition: border-color 0.15s, color 0.15s; }
.af .af-dd__btn:hover, .af .af-dd.is-open .af-dd__btn { border-color: var(--c-border-strong); color: var(--c-text); }
.af .af-dd.is-set .af-dd__btn { border-color: var(--c-accent); color: var(--c-text); }
.af .af-dd__k { color: var(--c-text-3); } .af .af-dd.is-set .af-dd__k { color: var(--c-accent); }
.af .af-dd__btn i { width: 7px; height: 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform 0.18s; opacity: 0.8; }
.af .af-dd.is-open .af-dd__btn i { transform: translateY(1px) rotate(225deg); }
.af .af-dd__menu { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; min-width: 150px; padding: 4px; border: 1px solid var(--c-border-strong); border-radius: 7px; background: var(--c-raised); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.55); opacity: 0; transform: translateY(-4px) scale(0.98); transform-origin: top left; pointer-events: none; transition: opacity 0.14s, transform 0.18s cubic-bezier(0.2, 0.9, 0.25, 1); }
.af .af-dd.is-open .af-dd__menu { opacity: 1; transform: none; pointer-events: auto; }
.af .af-dd__menu button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 14px; padding: 8px 10px; border: 0; border-radius: 5px; background: transparent; color: var(--c-text-2); font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.5px; text-transform: uppercase; text-align: left; cursor: pointer; transition: background 0.12s, color 0.12s; }
.af .af-dd__menu button:hover { background: var(--c-surface); color: var(--c-text); }
.af .af-dd__menu button.is-on { color: var(--c-accent); } .af .af-dd__menu button.is-on:after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--c-accent); }
/* ── sort pill slides like ansem ── */
.af .af-sort { position: relative; padding: 3px; } .af .af-sort button { position: relative; z-index: 1; background: transparent !important; transition: color 0.15s; } .af .af-sort button.is-on { color: #000; }
.af .af-sort__pill { position: absolute; top: 3px; bottom: 3px; left: 3px; border-radius: 5px; background: var(--c-accent); transition: transform 0.2s cubic-bezier(0, 0, 0.2, 1); }
/* ── feed rows and toast animate like ansem ── */
.af .af-grid .af-card, .af .af-table tr[data-m] { animation: af-row-in 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.af .af-grid .af-card:nth-child(n+2) { animation-delay: 0.03s; } .af .af-grid .af-card:nth-child(n+4) { animation-delay: 0.06s; } .af .af-grid .af-card:nth-child(n+7) { animation-delay: 0.1s; }
.af-toast:not(.hidden) { animation: af-toast-in 0.26s cubic-bezier(0.2, 0.9, 0.25, 1) both; }
.af .mchart__status:before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: var(--c-accent); animation: livepulse 2s ease-in-out infinite; vertical-align: 1px; }
/* ── create page: accordion, enhanced block in our blue, how panel ── */
.af .bbc-accordion__chev { width: 7px; height: 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform 0.18s; } .af .bbc-accordion.is-open .bbc-accordion__chev { transform: translateY(1px) rotate(225deg); }
.af .bbc-accordion:hover { color: var(--c-text); } .af .bbc-row2 { margin-top: 14px; }
.af .bbc-drop.is-over { border-color: var(--c-accent); background: rgba(159, 211, 255, 0.05); }
.af .bbc-enh { border-color: rgba(159, 211, 255, 0.34); background-image: radial-gradient(130% 150% at 0 0, rgba(159, 211, 255, 0.14), transparent 62%), linear-gradient(rgba(159, 211, 255, 0.07), transparent 46%); }
.af .bbc-enh__ring { background-image: linear-gradient(100deg, rgba(120, 189, 245, 0.55), rgba(191, 227, 255, 0.95) 25%, rgba(120, 189, 245, 0.55), rgba(191, 227, 255, 0.95) 75%, rgba(120, 189, 245, 0.55)); }
.af .bbc-enh__t { background-image: linear-gradient(104deg, #78bdf5, #8cc8f8 9%, #a9d9ff 22%, #c6e6ff 34%, #e3f3ff 47%, #c6e6ff 59%, #a9d9ff 72%, #8cc8f8 84%, #78bdf5 97%, #78bdf5); }
.af .bbc-enh__gallery li { margin: 0; } .af .bbc-enh__gallery li > b { display: block; margin-top: 12px; font-size: 13px; } .af .bbc-enh__gallery li > p { margin: 4px 0 0; font-size: 12px; line-height: 1.55; color: var(--c-text-2); }
.af .bbc-enh__shot { overflow: hidden; border: 1px solid var(--c-border); background: var(--c-surface); } .af .bbc-enh__shot img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.85); }
.af .bbc-enh__shot--rule { display: grid; place-items: center; background: radial-gradient(60% 80% at 50% 60%, rgba(159, 211, 255, 0.14), transparent 70%), var(--c-surface); } .af .bbc-enh__shot--rule b { font-size: 56px; font-weight: 800; letter-spacing: -0.05em; color: var(--c-accent); }
.af .bbc-fine { padding: 14px 16px; border: 1px solid var(--c-border); background: var(--c-surface); font-size: 12px; line-height: 1.6; color: var(--c-text-2); }
.af .bbc-how__list { list-style: none; margin: 0; padding: 0; } .af .bbc-how__list li { display: grid; grid-template-columns: 28px 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid var(--c-border); }
.af .bbc-how__list li:first-child { border-top: 0; padding-top: 2px; } .af .bbc-how__n { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 1px; color: var(--c-accent); padding-top: 3px; }
.af .bbc-how__list b { display: block; font-size: 13px; } .af .bbc-how__list p { margin: 3px 0 0; font-size: 12px; line-height: 1.55; color: var(--c-text-2); }
.af .bbc-how__more { display: inline-block; margin-top: 12px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--c-text-2); text-decoration: none; transition: color 0.15s; } .af .bbc-how__more:hover { color: var(--c-accent); }
.af .bbc-side { gap: 16px; } .af .bbc-cta__req { display: block; margin-top: 10px; text-align: center; }

.af .bbc-enh__gallery { grid-template-columns: 1fr 1fr !important; } .af .bbc-enh__gallery li { grid-column: auto !important; }
