/* ==========================================================================
   AGENT EYES — design system
   A warm editorial index for AI Mint projects. No glow, no purple gradients.
   ========================================================================== */

@font-face {
  font-family: "Instrument Sans";
  src: url("/assets/fonts/instrument-sans-var.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Instrument Sans";
  src: url("/assets/fonts/instrument-sans-italic-var.woff2") format("woff2");
  font-weight: 400 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Instrument Serif";
  src: url("/assets/fonts/instrument-serif.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Instrument Serif";
  src: url("/assets/fonts/instrument-serif-italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/assets/fonts/ibm-plex-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/assets/fonts/ibm-plex-mono-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

:root {
  --paper: #f2f0e9;
  --paper-deep: #e7e4da;
  --card: #f8f6f0;
  --ink: #11120f;
  --ink-soft: #2a2b26;
  --muted: #6f7067;
  --muted-light: #9b9b91;
  --line: #d4d0c5;
  --line-strong: #b7b3a7;
  --lime: #c9f45d;
  --lime-deep: #b7e542;
  --blue: #2e46ff;
  --clay: #e76041;
  --sand: #d8c6a3;
  --rose: #ecc3cc;
  --ice: #b9d7dd;
  --sun: #f0d24b;
  --white: #fffef9;
  --sans: "Instrument Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  --serif: "Instrument Serif", "Songti SC", "STSong", "Times New Roman", serif;
  --mono: "IBM Plex Mono", "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
  --container: 1440px;
  --gutter: clamp(20px, 4vw, 56px);
  --header-h: 72px;
  --radius: 3px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  font-feature-settings: "ss01" 1, "cv05" 1;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}

::selection {
  background: var(--lime);
  color: var(--ink);
}

img,
svg {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
}

h1,
h2,
h3,
h4,
p,
figure,
blockquote {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

code,
pre {
  font-family: var(--mono);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: -100px;
  left: 20px;
  z-index: 10000;
  background: var(--ink);
  color: var(--paper);
  padding: 12px 18px;
  font-size: 13px;
}
.skip-link:focus {
  top: 12px;
}

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.serif {
  font-family: var(--serif);
  font-weight: 400;
}
.italic {
  font-style: italic;
}
.mono {
  font-family: var(--mono);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 10.5px;
  line-height: 1.4;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted);
}
.eyebrow-light {
  color: #b9b9ad;
}
.eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--lime-deep);
  box-shadow: 0 0 0 3px rgba(201, 244, 93, 0.18);
}
.eyebrow-sep {
  opacity: 0.4;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(242, 240, 233, 0.94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}

.header-topline {
  background: var(--ink);
  color: #c9c9bd;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.header-topline .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 25px;
  gap: 20px;
}
.header-topline span:last-child {
  color: var(--lime);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  height: var(--header-h);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  flex-shrink: 0;
}
.brand-mark {
  position: relative;
  display: block;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
}
.brand-logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.35s var(--ease);
}
.brand:hover .brand-logo {
  transform: scale(1.04);
}
.eye-blink {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18%;
  height: 14%;
  border-radius: 50%;
  background: #0b0e11;
  transform: translate(-50%, -50%) scaleY(0);
  transform-origin: center;
  pointer-events: none;
  z-index: 2;
}
.brand-mark.is-blinking .eye-blink {
  animation: aesesEyeBlink 0.34s ease-in-out;
}
@keyframes aesesEyeBlink {
  0%, 100% { transform: translate(-50%, -50%) scaleY(0); }
  38%, 62% { transform: translate(-50%, -50%) scaleY(1); }
}
.brand-eye-hit {
  position: absolute;
  left: 37%;
  top: 36%;
  width: 26%;
  height: 28%;
  border-radius: 50%;
  cursor: pointer;
  z-index: 3;
}
.brand-eye-hit:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}
.brand-word {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;
}
.brand-sup {
  font-family: var(--mono);
  font-size: 8px;
  vertical-align: super;
  margin-left: 2px;
  color: var(--muted);
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-left: auto;
  margin-right: auto;
}
.main-nav a {
  position: relative;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ink-soft);
  padding: 6px 0;
}
.main-nav a span {
  color: var(--muted-light);
  margin-left: 5px;
  font-size: 9px;
}
.main-nav .nav-en,
.mobile-menu .nav-en {
  display: none;
}
body[data-lang="zh"] .board-hero h1 .serif {
  margin-left: -0.22em;
}
.main-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0;
  height: 1px;
  background: var(--ink);
  transition: right 0.35s var(--ease);
}
.main-nav a:hover::after,
.main-nav a.active::after {
  right: 0;
}
.main-nav a.active {
  color: var(--ink);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.lang-switch {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--line-strong);
  background: transparent;
  flex: none;
}
.lang-switch button {
  border: 0;
  background: transparent;
  color: var(--muted-light);
  padding: 7px 9px;
  font-family: var(--mono);
  font-size: 10px;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.18s, color 0.18s;
}
.lang-switch button + button {
  border-left: 1px solid var(--line-strong);
}
.lang-switch button:hover {
  color: var(--ink);
}
.lang-switch button.active {
  background: var(--ink);
  color: var(--lime);
}
.lang-switch button.active:hover {
  color: var(--lime);
}
.header-link {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.03em;
  padding: 10px 12px;
  border: 1px solid transparent;
  transition: border-color 0.25s, background 0.25s;
}
.header-link:hover {
  border-color: var(--line-strong);
  background: var(--card);
}
.header-link span {
  margin-left: 5px;
  color: var(--muted);
}
.wallet-button {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 38px;
  padding: 0 15px;
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.02em;
  transition: background 0.2s, color 0.2s;
}
.wallet-button:hover {
  background: var(--lime);
  border-color: var(--lime);
  color: var(--ink);
}
.wallet-button .wallet-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--lime);
}
.wallet-button:hover .wallet-dot {
  background: var(--ink);
}
.wallet-button.is-connected {
  background: transparent;
  color: var(--ink);
  border-color: var(--ink);
}
.wallet-button.is-connected .wallet-dot {
  background: var(--ink);
}
.wallet-button.is-connected:hover {
  background: var(--ink);
  color: var(--paper);
}
.wallet-button.is-connected:hover .wallet-dot {
  background: var(--lime);
}

.account-wrap {
  position: relative;
}
.account-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  width: 220px;
  background: var(--card);
  border: 1px solid var(--ink);
  padding: 8px;
  z-index: 120;
  box-shadow: 6px 6px 0 rgba(17, 18, 15, 0.08);
}
.account-menu[hidden] {
  display: none;
}
.login-wrap {
  position: relative;
}
.login-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 120;
  width: 286px;
  border: 1px solid var(--ink);
  background: var(--paper);
  box-shadow: 7px 8px 0 rgba(17, 18, 15, 0.1);
}
.login-menu[hidden] {
  display: none;
}
.login-menu-head {
  display: block;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.06em;
}
.login-menu button {
  display: grid;
  width: 100%;
  gap: 3px;
  padding: 11px 12px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.login-menu button:hover {
  background: var(--lime);
}
.login-menu strong {
  font-size: 12px;
  font-weight: 600;
}
.login-menu small {
  color: var(--muted);
  font-size: 9px;
}
.login-menu button:hover small {
  color: var(--ink);
}
.login-menu p {
  padding: 9px 12px;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.5;
}
.profile-modal {
  width: min(440px, calc(100vw - 32px));
}
.profile-actions {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}
.profile-binding-note {
  margin: 10px 0 0;
  padding: 8px 9px;
  border-left: 3px solid #b33428;
  background: #f3e6e1;
  color: #7d2d23;
  font-size: 9px;
  line-height: 1.65;
}
.profile-actions .button {
  flex: 1;
}
.account-menu-head {
  padding: 9px 10px 12px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 6px;
}
.account-menu-head span {
  display: block;
  font-family: var(--mono);
  font-size: 8.5px;
  color: var(--muted);
  letter-spacing: 0.08em;
  margin-bottom: 4px;
}
.account-menu-head strong {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 400;
}
.account-menu button,
.account-menu a {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  border: 0;
  background: none;
  text-align: left;
  padding: 9px 10px;
  font-size: 12px;
}
.account-menu button:hover,
.account-menu a:hover {
  background: var(--paper-deep);
}
.account-menu .danger {
  color: #a5361f;
}

.mobile-toggle {
  display: none;
  width: 38px;
  height: 38px;
  border: 1px solid var(--ink);
  background: transparent;
  position: relative;
}
.mobile-toggle span,
.mobile-toggle span::before,
.mobile-toggle span::after {
  position: absolute;
  left: 11px;
  width: 15px;
  height: 1px;
  background: var(--ink);
  content: "";
  transition: transform 0.25s;
}
.mobile-toggle span {
  top: 18px;
}
.mobile-toggle span::before {
  top: -5px;
}
.mobile-toggle span::after {
  top: 5px;
}
.mobile-toggle[aria-expanded="true"] span {
  transform: rotate(45deg);
}
.mobile-toggle[aria-expanded="true"] span::before {
  transform: rotate(-90deg) translateX(5px);
}
.mobile-toggle[aria-expanded="true"] span::after {
  opacity: 0;
}

.mobile-menu {
  display: none;
  position: fixed;
  inset: 97px 0 0;
  z-index: 90;
  background: var(--paper);
  padding: 24px var(--gutter) 36px;
  overflow-y: auto;
}
.mobile-menu.open {
  display: block;
}
.mobile-menu a {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  font-size: 26px;
  letter-spacing: -0.03em;
}
.mobile-menu a span {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--muted);
}
.mobile-menu-actions {
  display: grid;
  gap: 10px;
  margin-top: 24px;
}
.mobile-menu-note {
  margin-top: 26px;
  font-family: var(--mono);
  font-size: 10px;
  color: var(--muted);
  line-height: 1.8;
}

/* --------------------------------------------------------------------------
   Buttons & links
   -------------------------------------------------------------------------- */

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  min-height: 48px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.01em;
  transition: background 0.22s, color 0.22s, border-color 0.22s, transform 0.22s;
}
.button:active {
  transform: translateY(1px);
}
.button-dark {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.button-dark:hover {
  background: var(--lime);
  color: var(--ink);
  border-color: var(--lime);
}
.button-ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--line-strong);
}
.button-ghost:hover {
  border-color: var(--ink);
  background: var(--card);
}
.button-small {
  min-height: 38px;
  padding: 0 14px;
  font-size: 12px;
  gap: 12px;
}
.button-arrow {
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1;
  transition: transform 0.25s var(--ease);
}
.button:hover .button-arrow {
  transform: translate(2px, -2px);
}
.button:disabled {
  opacity: 0.45;
  pointer-events: none;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.03em;
  padding-bottom: 3px;
  border-bottom: 1px solid var(--ink);
  white-space: nowrap;
}
.text-link span {
  transition: transform 0.25s var(--ease);
}
.text-link:hover span {
  transform: translate(2px, -2px);
}
.text-link-light {
  color: var(--paper);
  border-color: rgba(242, 240, 233, 0.5);
}

.icon-button {
  width: 36px;
  height: 36px;
  border: 1px solid var(--line-strong);
  background: transparent;
  font-size: 22px;
  line-height: 1;
  display: grid;
  place-items: center;
}
.icon-button:hover {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--paper);
}
.text-button {
  border: 0;
  background: none;
  border-bottom: 1px solid currentColor;
  padding: 0 0 2px;
  font-family: var(--mono);
  font-size: 10px;
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.hero {
  padding-top: clamp(48px, 7vw, 88px);
  padding-bottom: 42px;
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.22fr) minmax(340px, 0.78fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: stretch;
}
.hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 800px;
}
.hero-title {
  margin-top: 26px;
  font-size: clamp(46px, 6.3vw, 92px);
  line-height: 0.99;
  letter-spacing: -0.062em;
  font-weight: 500;
}
.hero-title .serif {
  letter-spacing: -0.02em;
  position: relative;
  padding-right: 0.05em;
}
.hero-title .serif::after {
  content: "";
  position: absolute;
  left: 0.04em;
  right: -0.03em;
  bottom: 0.03em;
  z-index: -1;
  height: 0.24em;
  background: var(--lime);
  transform: skewX(-8deg);
}
.hero-lede {
  max-width: 530px;
  margin-top: 28px;
  color: var(--ink-soft);
  font-size: 16px;
  line-height: 1.75;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 34px;
}
.hero-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 28px;
  color: var(--muted);
  font-size: 11.5px;
}
.hero-note p {
  max-width: 430px;
}
.hero-note-mark {
  color: var(--ink);
  font-size: 12px;
  line-height: 1.6;
}

.protocol-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--ink);
  color: var(--paper);
  padding: 24px 26px 26px;
  min-height: 540px;
  overflow: hidden;
  border-radius: var(--radius);
}
.protocol-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 58%;
  height: 100%;
  background-image: linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: linear-gradient(to left, #000, transparent);
  pointer-events: none;
}
.protocol-top {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(242, 240, 233, 0.16);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.08em;
  color: #b9b9ad;
}
.protocol-stamp {
  position: relative;
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: 8px;
  margin: 26px 0 24px;
  padding: 8px 12px;
  background: var(--lime);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.08em;
  font-weight: 500;
}
.stamp-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink);
  animation: pulse 2.6s infinite;
}
@keyframes pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}
.protocol-list {
  position: relative;
  display: grid;
  gap: 0;
}
.protocol-list li {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 14px;
  padding: 15px 0;
  border-top: 1px solid rgba(242, 240, 233, 0.13);
}
.protocol-list li:last-child {
  border-bottom: 1px solid rgba(242, 240, 233, 0.13);
}
.protocol-num {
  font-family: var(--mono);
  font-size: 9px;
  color: var(--lime);
  padding-top: 2px;
}
.protocol-list strong {
  display: block;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.protocol-list p {
  margin-top: 5px;
  color: #a8a89c;
  font-size: 11.5px;
  line-height: 1.6;
}
.protocol-foot {
  position: relative;
  margin-top: auto;
  padding-top: 24px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.protocol-foot > span {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.06em;
  color: #a8a89c;
}
.protocol-foot strong {
  font-family: var(--serif);
  font-size: 44px;
  line-height: 0.8;
  font-weight: 400;
  color: var(--lime);
}
.protocol-foot strong span {
  font-family: var(--mono);
  font-size: 9px;
  color: #85857b;
  margin-left: 4px;
}

.hero-index-line {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 42px;
  font-family: var(--mono);
  font-size: 8.5px;
  letter-spacing: 0.08em;
  color: var(--muted);
  text-transform: uppercase;
}
.index-rule {
  height: 1px;
  background: var(--line-strong);
  flex: 1;
}

/* --------------------------------------------------------------------------
   Stats
   -------------------------------------------------------------------------- */

.stat-band {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin-top: 28px;
}
.stat-grid {
  display: grid;
  grid-template-columns: 0.75fr 0.75fr 0.9fr 1.6fr;
}
.stat {
  padding: 25px 26px 27px 0;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  min-height: 130px;
}
.stat + .stat {
  padding-left: 26px;
}
.stat:last-child {
  border-right: 0;
}
.stat-label {
  font-family: var(--mono);
  font-size: 8.5px;
  letter-spacing: 0.07em;
  color: var(--muted);
  margin-bottom: 15px;
}
.stat-value {
  font-size: clamp(36px, 4vw, 52px);
  line-height: 0.9;
  font-weight: 500;
  letter-spacing: -0.05em;
}
.stat-value sup {
  font-family: var(--mono);
  font-size: 13px;
  vertical-align: top;
  margin-left: 2px;
  color: var(--muted);
  letter-spacing: 0;
}
.stat-foot {
  margin-top: auto;
  padding-top: 12px;
  font-size: 10.5px;
  color: var(--muted);
}
.stat-wide {
  justify-content: space-between;
  padding-right: 0;
}
.stat-wide p {
  font-size: 12.5px;
  color: var(--ink-soft);
  line-height: 1.65;
  max-width: 370px;
}

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */

.section {
  padding-top: clamp(72px, 9vw, 118px);
  scroll-margin-top: 100px;
}
.section-head {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) auto;
  gap: 34px;
  align-items: end;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 30px;
}
.section-kicker {
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.08em;
  color: var(--muted);
}
.section-index {
  font-family: var(--serif);
  font-size: 48px;
  line-height: 0.8;
  color: var(--ink);
  font-weight: 400;
}
.section-heading h2 {
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.05;
  letter-spacing: -0.045em;
  font-weight: 500;
}
.section-heading p {
  margin-top: 10px;
  color: var(--muted);
  font-size: 12.5px;
}
.section-tools {
  align-self: end;
}
.filter {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--ink);
  min-width: 210px;
}
.filter input {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 8px 0;
  font-size: 12px;
  outline: none;
}
.filter input::placeholder {
  color: var(--muted-light);
}
.filter-mark {
  font-size: 16px;
  color: var(--muted);
  padding-left: 6px;
}

/* Hot layout */
.hot-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.32fr) minmax(320px, 0.68fr);
  gap: 26px;
}
.hot-feature {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--ink);
  background: var(--card);
  min-height: 100%;
  overflow: hidden;
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.hot-feature:hover {
  transform: translateY(-4px);
  box-shadow: 9px 10px 0 rgba(17, 18, 15, 0.1);
}
.hot-feature .project-cover {
  aspect-ratio: 2.1 / 1;
  border: 0;
  border-bottom: 1px solid var(--ink);
}
.hot-feature .cover-ticker {
  font-size: clamp(62px, 8.5vw, 114px);
}
.hot-feature-body {
  padding: 22px 26px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.hot-feature-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}
.hot-feature h3 {
  font-size: clamp(26px, 2.7vw, 38px);
  line-height: 1.05;
  letter-spacing: -0.04em;
  font-weight: 500;
}
.hot-feature h3 a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.hot-feature-intro {
  margin-top: 10px;
  font-size: 14px;
  color: var(--ink-soft);
  max-width: 580px;
}
.hot-feature-narrative {
  margin-top: 14px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.75;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hot-feature-foot {
  margin-top: auto;
  padding-top: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-top: 1px solid var(--line);
}
.hot-feature-foot .text-link {
  border-color: var(--ink);
}

.hot-side {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--ink);
}
.hot-row {
  display: grid;
  grid-template-columns: 38px 86px minmax(0, 1fr) 46px;
  gap: 15px;
  align-items: center;
  padding: 15px 10px 15px 0;
  border-bottom: 1px solid var(--line);
  transition: background 0.25s, padding 0.25s;
}
.hot-row:hover {
  background: var(--card);
  padding-left: 10px;
}
.hot-rank {
  font-family: var(--serif);
  font-size: 24px;
  color: var(--muted-light);
  line-height: 1;
}
.hot-row:hover .hot-rank {
  color: var(--ink);
}
.admin-ad-form {
  margin-bottom: 20px;
  padding: 16px;
  border: 1px solid var(--line);
  background: var(--paper-soft, #ebe9df);
}
.admin-ad-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 16px;
}
.admin-ad-form-grid label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
}
.admin-ad-form-grid input[type="text"],
.admin-ad-form-grid input[type="url"],
.admin-ad-form-grid input[type="number"],
.admin-ad-form-grid input:not([type]) {
  width: 100%;
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 8px 9px;
  color: var(--ink);
  font: inherit;
}
.admin-ad-check {
  flex-direction: row !important;
  align-items: center;
  gap: 7px !important;
}
.admin-ad-form-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.admin-ad-list {
  display: grid;
  gap: 8px;
}
.admin-ad-card {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.admin-ad-card.is-off {
  opacity: 0.55;
}
.admin-ad-thumb {
  height: 54px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--paper-soft, #ebe9df);
}
.admin-ad-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.admin-ad-thumb span {
  display: grid;
  place-items: center;
  height: 100%;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
}
.admin-ad-copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.admin-ad-copy strong {
  font-size: 13px;
}
.admin-ad-copy span,
.admin-ad-copy a {
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-ad-meta {
  font-family: var(--mono);
  font-size: 8px !important;
}
.admin-ad-actions {
  display: flex;
  gap: 4px;
}
.admin-ad-actions button {
  border: 1px solid var(--line);
  background: transparent;
  padding: 5px 7px;
  color: var(--ink);
  font-size: 9px;
  cursor: pointer;
}
.admin-ad-actions .danger {
  color: #b33428;
}
.admin-ad-orders {
  margin-top: 24px;
}
.admin-ad-order-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ink);
}
.admin-ad-order-head h3 {
  margin: 0;
  font-size: 12px;
}
.admin-ad-order-head span {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
}
.admin-ad-order-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 10px;
}
.admin-ad-order-row div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.admin-ad-order-row strong,
.admin-ad-order-row b {
  color: var(--ink);
  font-weight: 500;
}
.admin-ad-order-row button {
  border: 1px solid var(--line);
  background: transparent;
  padding: 4px 7px;
  font-size: 9px;
  cursor: pointer;
}
.admin-daily-round {
  margin-top: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.admin-daily-tickets {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 6px;
  margin-top: 10px;
}
.admin-daily-tickets > div {
  display: flex;
  gap: 7px;
  align-items: baseline;
  padding: 6px;
  border: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 8px;
}
.admin-daily-tickets b {
  font-weight: 500;
}
.admin-daily-tickets small {
  margin-left: auto;
  color: var(--muted);
}
@media (max-width: 720px) {
  .admin-ad-form-grid {
    grid-template-columns: 1fr;
  }
  .admin-ad-card {
    grid-template-columns: 72px minmax(0, 1fr);
  }
  .admin-ad-actions {
    grid-column: 1 / -1;
  }
}
.board-hero-main {
  min-width: 0;
}
.hero-ad-carousel {
  --ad-height: clamp(300px, 29vw, 380px);
  position: relative;
  height: var(--ad-height);
  min-height: 280px;
  overflow: hidden;
  border: 1px solid var(--ink);
  background:
    radial-gradient(circle at 18% 12%, rgba(202, 255, 72, 0.16), transparent 34%),
    radial-gradient(circle at 82% 78%, rgba(116, 196, 255, 0.14), transparent 38%),
    #0b0c10;
}
.board-hero-main.has-ad > :not(#hero-ad-carousel) {
  display: none;
}
.hero-ad-stage {
  position: relative;
  z-index: 1;
  height: 100%;
  min-height: 0;
}
.hero-ad-slide {
  position: absolute;
  inset: 0;
  display: block;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.55s ease;
}
.hero-ad-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}
.hero-ad-slide img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
  transition: transform 7s ease;
}
.hero-ad-slide.is-active img {
  transform: scale(1.025);
}
.hero-ad-slide.is-ad-adapt img {
  object-fit: contain;
  background: #0b0c10;
}
.hero-ad-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 52%, rgba(0, 0, 0, 0.65));
  pointer-events: none;
}
.hero-ad-copy {
  position: absolute;
  right: 18px;
  bottom: 16px;
  left: 18px;
  z-index: 3;
  width: fit-content;
  max-width: min(78%, 560px);
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 2px;
  background: linear-gradient(135deg, rgba(12, 13, 18, 0.68), rgba(12, 13, 18, 0.32));
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(12px) saturate(1.15);
  color: #fff;
}
.hero-ad-copy strong {
  display: -webkit-box;
  overflow: hidden;
  font-size: clamp(13px, 1.25vw, 18px);
  font-weight: 500;
  line-height: 1.28;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.hero-ad-slide.ad-title-long .hero-ad-copy strong {
  font-size: clamp(12px, 1.05vw, 15px);
}
.hero-ad-slide.ad-title-xl .hero-ad-copy strong {
  font-size: clamp(11px, 0.95vw, 14px);
  -webkit-line-clamp: 3;
}
.hero-ad-copy span {
  display: inline-block;
  margin-top: 5px;
  border-bottom: 1px solid currentColor;
  font-family: var(--mono);
  font-size: 8px;
}
.hero-ad-label {
  position: absolute;
  z-index: 4;
  top: 10px;
  left: 10px;
  padding: 2px 5px;
  background: rgba(17, 18, 15, 0.72);
  color: #fff;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.08em;
}
.hero-ad-disclaimer {
  position: absolute;
  z-index: 4;
  top: 10px;
  right: 10px;
  max-width: 58%;
  overflow: hidden;
  padding: 2px 6px;
  background: rgba(17, 18, 15, 0.58);
  color: rgba(255, 255, 255, 0.74);
  font-family: var(--mono);
  font-size: 8px;
  line-height: 1.5;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hero-ad-carousel.is-official .hero-ad-label,
.hero-ad-carousel.is-official .hero-ad-disclaimer {
  display: none;
}
.hero-ad-dots {
  position: absolute;
  z-index: 4;
  right: 12px;
  bottom: 12px;
  display: flex;
  gap: 5px;
}
.hero-ad-dots button {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}
.hero-ad-dots button.is-active {
  background: var(--lime);
  border-color: var(--lime);
}

/* Crystal / prism atmosphere: decorative, never intercepts the ad click. */
.hero-ad-crystals {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.ad-crystal {
  position: absolute;
  display: block;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.34), rgba(160, 230, 255, 0.06) 42%, rgba(202, 255, 72, 0.16)),
    rgba(255, 255, 255, 0.035);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 10px 30px rgba(0, 0, 0, 0.16);
  backdrop-filter: blur(5px);
  transform: rotate(28deg);
  animation: aesesCrystalFloat 8s ease-in-out infinite;
}
.ad-crystal-a {
  top: 16%;
  left: 5%;
  width: 42px;
  height: 64px;
  clip-path: polygon(50% 0, 100% 32%, 76% 100%, 20% 86%, 0 28%);
}
.ad-crystal-b {
  top: 58%;
  left: 13%;
  width: 19px;
  height: 34px;
  clip-path: polygon(50% 0, 100% 38%, 72% 100%, 12% 78%, 0 24%);
  animation-delay: -2.8s;
  animation-duration: 6.5s;
}
.ad-crystal-c {
  top: 10%;
  right: 7%;
  width: 28px;
  height: 50px;
  clip-path: polygon(50% 0, 100% 35%, 80% 100%, 14% 82%, 0 25%);
  animation-delay: -4.2s;
  animation-duration: 9s;
}
.ad-crystal-d {
  right: 19%;
  bottom: 8%;
  width: 16px;
  height: 26px;
  clip-path: polygon(50% 0, 100% 34%, 72% 100%, 8% 78%, 0 22%);
  animation-delay: -1.4s;
  animation-duration: 7s;
}
.ad-prism {
  position: absolute;
  top: -30%;
  left: -12%;
  width: 58%;
  height: 170%;
  background: linear-gradient(105deg, transparent 28%, rgba(255, 255, 255, 0.14) 45%, rgba(178, 233, 255, 0.1) 50%, transparent 67%);
  filter: blur(1px);
  transform: rotate(8deg);
  animation: aesesPrismSweep 7.5s ease-in-out infinite;
}
@keyframes aesesCrystalFloat {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(28deg); opacity: 0.64; }
  50% { transform: translate3d(7px, -13px, 0) rotate(36deg); opacity: 1; }
}
@keyframes aesesPrismSweep {
  0%, 100% { transform: translate3d(-14%, 0, 0) rotate(8deg); opacity: 0.45; }
  50% { transform: translate3d(48%, 0, 0) rotate(8deg); opacity: 0.9; }
}
@media (max-width: 720px) {
  .hero-ad-carousel {
    --ad-height: 250px;
    min-height: 230px;
  }
  .hero-ad-copy {
    right: 10px;
    bottom: 12px;
    left: 10px;
    max-width: calc(100% - 20px);
    padding: 8px 10px;
  }
  .hero-ad-disclaimer {
    display: none;
  }
  .ad-crystal-a, .ad-crystal-d {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero-ad-slide img,
  .ad-crystal,
  .ad-prism {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}
.agent-api-strip {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(180px, 0.8fr) auto;
  gap: 20px;
  align-items: center;
  margin-top: 22px;
  padding: 14px;
  border: 1px solid var(--ink);
  background: var(--paper-soft, #ebe9df);
}
.angel-main {
  min-height: 60vh;
  padding: 54px 0 70px;
}
.angel-top-notice {
  display: grid;
  gap: 4px;
  margin-bottom: 26px;
  padding: 12px 14px;
  border: 1px solid #b33428;
  border-left-width: 4px;
  background: #f3e6e1;
}
.angel-top-notice-label {
  color: #9a4f42;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.06em;
}
.angel-top-notice strong {
  color: #7d2d23;
  font-size: 14px;
  font-weight: 600;
}
.angel-top-notice p {
  margin: 0;
  color: #7d4a42;
  font-size: 10px;
  line-height: 1.65;
}
.agent-channel-notice {
  margin-top: 20px;
  padding: 14px 16px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
}
.agent-channel-notice .eyebrow { color: #a9ad9f; }
.agent-channel-notice h2 { margin: 9px 0 6px; font-size: 20px; font-weight: 500; }
.agent-channel-notice p { margin: 0; color: #b9bcb0; font-size: 10px; line-height: 1.7; }
.agent-channel-section {
  margin-top: 12px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.agent-channel-section > summary {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
  border-bottom: 1px solid transparent;
}
.agent-channel-section[open] > summary { border-bottom-color: var(--ink); }
.agent-channel-section > summary::-webkit-details-marker { display: none; }
.agent-channel-section > summary span { font-family: var(--mono); font-size: 10px; letter-spacing: 0.04em; }
.agent-channel-section > summary b {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin-right: 8px;
  background: var(--ink);
  color: var(--lime);
  font-size: 9px;
}
.agent-channel-section > summary em {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
  font-style: normal;
  text-align: right;
}
.agent-channel-body { padding: 12px; }
.agent-channel-body .agent-api-strip { margin-top: 0; }
.telegram-channel {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(180px, 0.7fr) auto;
  gap: 16px;
  align-items: center;
  padding: 10px;
}
.telegram-channel h2 { margin: 7px 0 5px; font-size: 18px; }
.telegram-channel p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.telegram-channel-note { margin-top: 7px !important; padding-top: 7px; border-top: 1px dashed var(--line); color: #7d4a42 !important; }
.telegram-endpoint {
  grid-column: 1 / -1;
  display: flex;
  gap: 9px;
  align-items: baseline;
  padding-top: 9px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
}
.telegram-endpoint code { color: var(--ink); word-break: break-all; }
.telegram-endpoint small { margin-left: auto; color: var(--muted-light); }
@media (max-width: 860px) {
  .telegram-channel { grid-template-columns: 1fr; }
  .telegram-endpoint { flex-wrap: wrap; }
  .telegram-endpoint small { margin-left: 0; }
  .agent-channel-section > summary { align-items: flex-start; }
}
.angel-security-rules {
  margin-top: 20px;
  padding: 18px;
  border: 1px solid var(--ink);
  background: var(--paper);
}
.angel-security-head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ink);
}
.angel-security-head h2 {
  margin: 10px 0 6px;
  font-size: 20px;
}
.angel-security-head p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.7;
}
.angel-security-badge {
  flex: 0 0 auto;
  padding: 7px 9px;
  border: 1px solid var(--ink);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 8px;
  line-height: 1.5;
  text-align: right;
}
.angel-security-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 14px;
  background: var(--line);
}
.angel-security-grid article {
  padding: 12px;
  background: var(--paper);
}
.angel-security-grid article > span {
  color: var(--muted-light);
  font-family: var(--mono);
  font-size: 8px;
}
.angel-security-grid h3 {
  margin: 7px 0 5px;
  font-size: 12px;
}
.angel-security-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.65;
}
.angel-container {
  max-width: 1180px;
}
.angel-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 30px;
  align-items: end;
  padding-bottom: 26px;
  border-bottom: 1px solid var(--ink);
}
.angel-hero h1 {
  margin: 12px 0 10px;
  font-size: clamp(32px, 4vw, 54px);
  font-weight: 500;
  line-height: 1;
}
.angel-hero p {
  max-width: 600px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.angel-identity {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.angel-identity span {
  margin-top: 6px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
}
.angel-identity strong {
  overflow: hidden;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  text-overflow: ellipsis;
}
.angel-gate {
  max-width: 620px;
  padding: 40px 0;
}
.angel-gate h1 {
  margin: 14px 0;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.05;
}
.angel-gate p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.angel-gate-actions {
  display: flex;
  gap: 8px;
  margin-top: 18px;
}
.angel-guide {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}
.angel-tasks {
  margin-top: 20px;
  padding: 16px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.angel-api-warning {
  margin: 10px 0 0;
  color: #9a4f42;
  font-size: 9px;
  line-height: 1.65;
}
.angel-api-compat {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.angel-api-compat strong {
  display: block;
  font-size: 11px;
}
.angel-api-compat span {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.6;
}
.agent-api-boost-rule {
  margin: 10px 0 0;
  padding: 8px 10px;
  border: 1px dashed var(--ink);
  color: var(--ink);
  font-size: 9px;
  line-height: 1.7;
}
.agent-api-boost-rule a {
  margin-left: 5px;
  border-bottom: 1px solid currentColor;
  color: var(--ink);
  font-weight: 600;
}
.angel-tasks-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--ink);
}
.angel-tasks-head h2 {
  margin: 0;
  font-size: 15px;
}
.angel-tasks-head span {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
}
.angel-task-card {
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
}
.angel-task-card strong {
  font-size: 13px;
}
.angel-task-meta {
  margin-left: 7px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
}
.angel-task-card p {
  margin: 5px 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.6;
  word-break: break-all;
}
.angel-task-actions {
  display: flex;
  gap: 6px;
  margin-top: 6px;
}
.angel-task-actions button {
  border: 1px solid var(--line);
  background: transparent;
  padding: 4px 7px;
  color: var(--ink);
  font-size: 9px;
  cursor: pointer;
}
.angel-guide article {
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.angel-guide article > span {
  color: var(--muted-light);
  font-family: var(--mono);
  font-size: 9px;
}
.angel-guide h3 {
  margin: 8px 0 5px;
  font-size: 13px;
}
.angel-guide p {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.6;
}
@media (max-width: 720px) {
  .angel-main {
    padding-top: 30px;
  }
  .angel-hero {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .angel-guide {
    grid-template-columns: 1fr;
  }
  .angel-security-head {
    flex-direction: column;
    gap: 10px;
  }
  .angel-security-grid {
    grid-template-columns: 1fr;
  }
}
.agent-api-copy h2 {
  margin: 5px 0 4px;
  font-size: 18px;
}
.agent-api-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.6;
}
.agent-api-status {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  line-height: 1.7;
}
.agent-api-status b {
  color: var(--ink);
}
.agent-api-actions {
  display: flex;
  gap: 7px;
}
.agent-api-prompt {
  max-height: 320px;
  overflow: auto;
  border: 1px solid var(--line);
  background: #fff;
  padding: 14px;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--ink);
  font: 11px/1.65 var(--mono);
}
.agent-api-key {
  margin: 10px 0;
  padding: 9px;
  border: 1px dashed var(--ink);
  background: #fff;
  word-break: break-all;
  font: 11px/1.5 var(--mono);
}
@media (max-width: 860px) {
  .agent-api-strip {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}
.ads-workbench {
  display: block;
}
.ad-package-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 20px 0;
}
.ad-package-card {
  border: 1px solid var(--ink);
  padding: 16px;
  background: var(--paper);
}
.ad-package-kicker {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
}
.ad-package-card > strong {
  display: block;
  margin: 8px 0 14px;
  font-size: 32px;
  font-weight: 500;
}
.ad-package-prices {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 0 14px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
}
.ad-package-prices span {
  display: flex;
  justify-content: space-between;
}
.ad-package-prices b {
  color: var(--ink);
  font-weight: 500;
}
.ad-package-total {
  padding-top: 7px;
  border-top: 1px dashed var(--line);
  color: var(--ink) !important;
}
.ad-workbench-row {
  display: flex;
  align-items: end;
  gap: 18px;
  margin: 14px 0;
}
.ad-creative-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(0, 1fr);
  gap: 18px;
  margin: 16px 0;
  align-items: start;
}
.ad-banner-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.field-label em {
  color: var(--muted-light);
  font-style: normal;
  font-size: 8px;
}
.ad-banner-upload {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 5 / 2;
  overflow: hidden;
  border: 1px dashed var(--ink);
  background: var(--paper-soft, #ebe9df);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 10px;
  line-height: 1.6;
  text-align: center;
  cursor: pointer;
}
.ad-banner-upload img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ad-banner-upload small {
  color: var(--muted-light);
  font-size: 8px;
}
.ad-banner-modal-preview {
  width: 100%;
  aspect-ratio: 5 / 2;
  object-fit: cover;
  border: 1px solid var(--line);
  margin-bottom: 12px;
}
.ad-workbench-row .field {
  flex: 1;
}
.ad-wallet-line {
  padding-bottom: 10px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
}
.ad-wallet-line strong {
  color: var(--ink);
}
.ad-order-list {
  margin-top: 22px;
}
.ad-order-list h3 {
  margin-bottom: 10px;
  font-size: 13px;
}
.ad-order-row {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 14px;
  padding: 10px 0;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 10px;
}
.ad-order-row div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.ad-order-row strong,
.ad-order-row b {
  color: var(--ink);
  font-weight: 500;
}
.ad-small-print {
  margin-top: 24px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  color: var(--muted-light);
  font-size: 9px;
  line-height: 1.8;
}
.ad-prize-line {
  margin-top: 18px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
}
.ad-prize-line strong {
  color: var(--ink);
  font-weight: 600;
}
.prize-main {
  min-height: 70vh;
  padding: 50px 0 70px;
  background:
    radial-gradient(circle at 83% 12%, rgba(194, 235, 71, 0.16), transparent 28%),
    var(--paper);
}
.prize-container { max-width: 1180px; }
.prize-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
  gap: 36px;
  align-items: end;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--ink);
}
.prize-hero h1 {
  margin: 15px 0 12px;
  font-size: clamp(46px, 6.5vw, 92px);
  font-weight: 500;
  line-height: 0.95;
}
.prize-hero h1 em { color: var(--ink); font-style: normal; }
.prize-hero h1 small { font-family: var(--mono); font-size: 13px; font-weight: 400; }
.prize-hero p { max-width: 620px; color: var(--muted); font-size: 12px; line-height: 1.75; }
.prize-hero-links { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 20px; }
.prize-pool-card {
  display: grid;
  gap: 18px;
  padding: 20px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
}
.prize-pool-card > div:first-child { display: flex; flex-direction: column; gap: 4px; }
.prize-pool-card span { color: #a9ad9f; font-family: var(--mono); font-size: 8px; }
.prize-pool-card strong { font-size: clamp(32px, 4vw, 54px); font-weight: 500; line-height: 1; }
.prize-pool-card small { color: #a9ad9f; font-family: var(--mono); font-size: 8px; }
.prize-pool-meta { padding-top: 14px; border-top: 1px solid #3d4037; }
.prize-pool-meta code { display: block; margin: 5px 0; color: var(--lime); font-family: var(--mono); font-size: 9px; word-break: break-all; }
.prize-round, .prize-ticket, .prize-prompt, .prize-winners, .prize-rules {
  margin-top: 24px;
  padding: 18px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.prize-round-head, .prize-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-bottom: 1px solid var(--ink); padding-bottom: 10px; }
.prize-round-head h2, .prize-section-head h2 { margin: 7px 0 0; font-size: 24px; font-weight: 500; }
.prize-section-head span { color: var(--muted); font-family: var(--mono); font-size: 8px; }
.prize-status { padding: 3px 7px; border: 1px solid var(--ink); font-family: var(--mono); font-size: 8px; }
.prize-status.is-open { background: var(--lime); }
.prize-round-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 14px; background: var(--line); }
.prize-round-grid > div { display: flex; flex-direction: column; gap: 5px; padding: 12px; background: var(--paper); min-width: 0; }
.prize-round-grid span { color: var(--muted); font-family: var(--mono); font-size: 8px; }
.prize-round-grid strong { overflow: hidden; font-size: 13px; font-weight: 500; text-overflow: ellipsis; }
.prize-contract-row { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 11px; }
.prize-ticket { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 0.8fr); gap: 30px; }
.prize-ticket h2 { margin: 9px 0; font-size: 26px; font-weight: 500; }
.prize-ticket p { color: var(--muted); font-size: 11px; line-height: 1.7; }
.prize-ticket-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.prize-ticket-form { display: flex; flex-direction: column; gap: 9px; padding: 16px; border: 1px dashed var(--line); align-self: start; }
.prize-ticket-form p { font-size: 9px; margin: 0; }
.prize-auto-card {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 16px;
  border: 1px dashed var(--line);
  align-self: start;
  background: var(--paper-soft, #ebe9df);
}
.prize-auto-card > span {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
}
.prize-auto-card strong { font-size: 15px; font-weight: 500; }
.prize-auto-card p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.prize-auto-card small { color: var(--muted-light); font-family: var(--mono); font-size: 8px; }
.prize-prompt pre { max-height: 330px; overflow: auto; margin: 12px 0 0; padding: 14px; border: 1px solid var(--line); background: #fff; white-space: pre-wrap; word-break: break-word; font: 11px/1.7 var(--mono); }
.prize-winner-list { margin-top: 12px; }
.prize-winner-row { display: grid; grid-template-columns: 90px 1fr 90px; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.prize-winner-row strong { color: var(--ink); font-weight: 500; }
.prize-rule-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 14px; background: var(--line); }
.prize-rule-grid article { padding: 12px; background: var(--paper); }
.prize-rule-grid article > span { color: var(--muted-light); font-family: var(--mono); font-size: 8px; }
.prize-rule-grid h3 { margin: 7px 0 5px; font-size: 12px; }
.prize-rule-grid p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.65; }
.header-prize-link { color: var(--ink) !important; font-weight: 600; }
@media (max-width: 860px) {
  .prize-hero, .prize-ticket { grid-template-columns: 1fr; }
  .prize-round-grid, .prize-rule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .prize-main { padding-top: 28px; }
  .prize-round-grid, .prize-rule-grid { grid-template-columns: 1fr; }
  .prize-winner-row { grid-template-columns: 1fr; gap: 2px; }
}
.ad-modal-backdrop {
  position: fixed;
  z-index: 120;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(17, 18, 15, 0.55);
}
.ad-modal {
  width: min(460px, 100%);
  border: 1px solid var(--ink);
  background: var(--paper);
  box-shadow: 12px 14px 0 rgba(17, 18, 15, 0.15);
}
.ad-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 14px;
  border-bottom: 1px solid var(--ink);
  font-family: var(--mono);
  font-size: 9px;
}
.ad-modal-head button {
  border: 0;
  background: transparent;
  font-size: 18px;
  cursor: pointer;
}
.ad-modal-body {
  padding: 22px;
}
.ad-modal-body h2 {
  margin: 0;
  font-size: 30px;
}
.ad-modal-sub {
  margin: 4px 0 18px;
  color: var(--muted);
  font-size: 11px;
}
.ad-order-detail {
  margin: 0;
}
.ad-order-detail div {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px dashed var(--line);
  font-size: 12px;
}
.ad-order-detail dt {
  color: var(--muted);
}
.ad-order-detail dd {
  margin: 0;
}
.ad-order-detail .ad-order-total {
  padding-top: 12px;
  border-bottom: 0;
  font-size: 15px;
  font-weight: 600;
}
.ad-modal-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.65;
}
.ad-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 20px;
}
.desk-empty-inline {
  padding: 20px 0;
  color: var(--muted);
  font-size: 11px;
}
@media (max-width: 720px) {
  .ad-package-grid {
    grid-template-columns: 1fr;
  }
  .ad-workbench-row {
    flex-direction: column;
    align-items: stretch;
  }
  .ad-creative-grid {
    grid-template-columns: 1fr;
  }
  .ad-order-row {
    grid-template-columns: 1fr;
  }
}
.hot-rank.rank-1,
.col-rank.rank-1,
.rail-rank.rank-1 {
  border-left: 3px solid #8b5cf6;
  padding-left: 6px;
}
.hot-rank.rank-2,
.col-rank.rank-2,
.rail-rank.rank-2 {
  border-left: 3px solid #ef4444;
  padding-left: 6px;
}
.hot-rank.rank-3,
.col-rank.rank-3,
.rail-rank.rank-3 {
  border-left: 3px solid #f59e0b;
  padding-left: 6px;
}
.hot-rank.rank-4,
.col-rank.rank-4,
.rail-rank.rank-4 {
  border-left: 3px solid #eab308;
  padding-left: 6px;
}
.hot-rank.rank-5,
.col-rank.rank-5,
.rail-rank.rank-5 {
  border-left: 3px solid #22c55e;
  padding-left: 6px;
}
.hot-thumb {
  width: 86px;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid rgba(17, 18, 15, 0.35);
}
.hot-row-copy {
  min-width: 0;
}
.hot-row-copy h3 {
  font-size: 17px;
  line-height: 1.15;
  letter-spacing: -0.02em;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hot-row-copy span {
  display: block;
  margin-top: 3px;
  font-family: var(--mono);
  font-size: 8.5px;
  color: var(--muted);
  letter-spacing: 0.05em;
}
.hot-row-copy p {
  margin-top: 7px;
  font-size: 10.5px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hot-score {
  text-align: right;
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink);
}
.hot-score span {
  display: block;
  font-size: 7.5px;
  color: var(--muted-light);
  letter-spacing: 0.06em;
  margin-top: 2px;
}

/* Project cards */
.project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px 24px;
}
.project-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid var(--line-strong);
  background: var(--card);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.25s;
}
.project-card:hover {
  transform: translateY(-4px);
  border-color: var(--ink);
  box-shadow: 8px 9px 0 rgba(17, 18, 15, 0.09);
}
.project-cover {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-bottom: 1px solid var(--line-strong);
  color: var(--cover-fg);
  background: var(--cover-bg);
  isolation: isolate;
}
.project-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 5;
  border: 1px solid rgba(255, 255, 255, 0.09);
  pointer-events: none;
}
.cover-top {
  position: absolute;
  top: 14px;
  left: 15px;
  right: 15px;
  z-index: 4;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.72;
}
.cover-ticker {
  position: absolute;
  z-index: 3;
  left: 12px;
  bottom: 34px;
  font-size: clamp(50px, 6vw, 84px);
  line-height: 0.75;
  letter-spacing: -0.075em;
  font-weight: 600;
  white-space: nowrap;
}
.cover-bottom {
  position: absolute;
  left: 15px;
  right: 15px;
  bottom: 13px;
  z-index: 4;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.06em;
}
.cover-bottom .cover-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.cover-bottom .cover-status i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
}
.project-cover .cover-mint {
  position: absolute;
  top: 30px;
  right: 12px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  padding: 4px 6px;
  background: rgba(255, 255, 255, 0.55);
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.03em;
  line-height: 1.4;
  opacity: 0.92;
  text-align: right;
  white-space: nowrap;
}
.project-cover .cover-mint b {
  font-weight: 600;
}
.cover-meta {
  position: absolute;
  z-index: 4;
  right: 14px;
  top: 45%;
  writing-mode: vertical-rl;
  font-family: var(--mono);
  font-size: 7px;
  letter-spacing: 0.14em;
  opacity: 0.58;
}
.cover-motif {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  transition: transform 0.7s var(--ease);
}
.project-card:hover .cover-motif,
.hot-feature:hover .cover-motif {
  transform: rotate(8deg) scale(1.06);
}

.theme-lime {
  --cover-bg: #c9f45d;
  --cover-fg: #11120f;
}
.theme-blue {
  --cover-bg: #2e46ff;
  --cover-fg: #f2f0e9;
}
.theme-clay {
  --cover-bg: #e76041;
  --cover-fg: #11120f;
}
.theme-sand {
  --cover-bg: #d8c6a3;
  --cover-fg: #11120f;
}
.theme-ink {
  --cover-bg: #151611;
  --cover-fg: #f2f0e9;
}
.theme-mist {
  --cover-bg: #dbe1d6;
  --cover-fg: #11120f;
}
.theme-rose {
  --cover-bg: #ecc3cc;
  --cover-fg: #11120f;
}
.theme-ice {
  --cover-bg: #b9d7dd;
  --cover-fg: #11120f;
}
.theme-sun {
  --cover-bg: #f0d24b;
  --cover-fg: #11120f;
}

.motif-orbit .cover-motif {
  width: 55%;
  aspect-ratio: 1;
  right: -6%;
  top: 12%;
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: 0.45;
  box-shadow: 0 0 0 24px transparent, 0 0 0 25px currentColor, 0 0 0 52px transparent, 0 0 0 53px currentColor;
}
.motif-orbit .cover-motif::before {
  content: "";
  position: absolute;
  width: 9px;
  height: 9px;
  background: currentColor;
  border-radius: 50%;
  right: -4px;
  top: 48%;
}
.motif-ripple .cover-motif {
  width: 70%;
  aspect-ratio: 1;
  right: -10%;
  bottom: -24%;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, transparent 0 17px, currentColor 18px 19px, transparent 20px 36px);
  opacity: 0.48;
}
.motif-bars .cover-motif {
  width: 46%;
  height: 75%;
  right: 8%;
  top: 12%;
  background: repeating-linear-gradient(90deg, currentColor 0 7px, transparent 7px 18px);
  opacity: 0.45;
}
.motif-grid .cover-motif {
  inset: 0;
  background-image: linear-gradient(currentColor 1px, transparent 1px), linear-gradient(90deg, currentColor 1px, transparent 1px);
  background-size: 26px 26px;
  opacity: 0.16;
  mask-image: radial-gradient(circle at 78% 36%, #000, transparent 72%);
}
.motif-frame .cover-motif {
  width: 55%;
  height: 65%;
  right: 8%;
  top: 18%;
  border: 1px solid currentColor;
  opacity: 0.38;
}
.motif-frame .cover-motif::before,
.motif-frame .cover-motif::after {
  content: "";
  position: absolute;
  border: 1px solid currentColor;
}
.motif-frame .cover-motif::before {
  inset: 10px;
}
.motif-frame .cover-motif::after {
  inset: 28% 24%;
  background: currentColor;
  opacity: 0.25;
}
.motif-type .cover-motif {
  width: 100%;
  right: -10%;
  top: 3%;
  font-family: var(--serif);
  font-style: italic;
  font-size: 220px;
  line-height: 1;
  opacity: 0.12;
  content: "";
}
.motif-type .cover-motif::before {
  content: "A";
}
.motif-clock .cover-motif {
  width: 58%;
  aspect-ratio: 1;
  right: -7%;
  top: 17%;
  border-radius: 50%;
  background: conic-gradient(from 20deg, transparent 0 35%, currentColor 35.5% 36.5%, transparent 37% 70%, currentColor 70.5% 71.5%, transparent 72%);
  border: 1px solid currentColor;
  opacity: 0.4;
}
.motif-cross .cover-motif {
  width: 55%;
  height: 55%;
  right: 6%;
  top: 22%;
  background: linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat,
    linear-gradient(currentColor, currentColor) center / 1px 100% no-repeat;
  opacity: 0.36;
  transform: rotate(18deg);
}
.motif-circuit .cover-motif {
  inset: 12% 8%;
  background-image: radial-gradient(currentColor 1.2px, transparent 1.3px), linear-gradient(currentColor 1px, transparent 1px),
    linear-gradient(90deg, currentColor 1px, transparent 1px);
  background-size: 34px 34px, 68px 68px, 68px 68px;
  background-position: 0 0, 17px 17px, 17px 17px;
  opacity: 0.28;
  mask-image: linear-gradient(135deg, #000, transparent 80%);
}
.motif-arc .cover-motif {
  width: 75%;
  height: 75%;
  right: -20%;
  top: -10%;
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: 0.35;
}

.project-card-body {
  padding: 18px 19px 17px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.project-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.tag {
  display: inline-block;
  padding: 3px 7px;
  border: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 7.5px;
  letter-spacing: 0.04em;
  color: var(--muted);
  text-transform: uppercase;
  white-space: nowrap;
}
.tag-broken {
  background: #f4dedb;
  border-color: #dfb4ad;
  color: #8f3f35;
}
.tag-solid {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--lime);
}
.project-card h3 {
  font-size: 21px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.project-card h3 a {
  display: inline;
}
.project-card h3 a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}
.project-card-intro {
  margin-top: 8px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.project-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 18px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.03em;
}
.project-card-foot .contract-short {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 120px;
}
.project-card-foot .card-arrow {
  color: var(--ink);
  font-size: 12px;
  transition: transform 0.3s var(--ease);
}
.project-card:hover .card-arrow {
  transform: translate(2px, -2px);
}

.status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ink);
  white-space: nowrap;
}
.status-badge::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink);
}
.status-badge[data-status="minting"]::before {
  background: var(--lime-deep);
  box-shadow: 0 0 0 3px rgba(183, 229, 66, 0.2);
}
.status-badge[data-status="upcoming"]::before {
  background: var(--sun);
}
.status-badge[data-status="soldout"]::before,
.status-badge[data-status="closed"]::before {
  background: var(--muted-light);
}

/* Rules band */
.rules-band {
  margin-top: clamp(80px, 10vw, 136px);
  background: var(--ink);
  color: var(--paper);
  padding: clamp(60px, 8vw, 100px) 0;
}
.rules-band-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(40px, 7vw, 100px);
}
.rules-band-intro h2 {
  margin-top: 26px;
  font-size: clamp(38px, 4.6vw, 64px);
  line-height: 1.04;
  letter-spacing: -0.05em;
  font-weight: 500;
}
.rules-band-intro p {
  margin-top: 22px;
  max-width: 340px;
  color: #a9a99e;
  font-size: 13px;
  line-height: 1.8;
}
.rules-band-intro .text-link {
  margin-top: 28px;
}
.rules-band-list {
  border-top: 1px solid rgba(242, 240, 233, 0.22);
}
.rule-row {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 20px;
  align-items: start;
  padding: 20px 0;
  border-bottom: 1px solid rgba(242, 240, 233, 0.16);
}
.rule-no {
  font-family: var(--serif);
  font-size: 21px;
  color: var(--lime);
  line-height: 1.1;
}
.rule-row h3 {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.rule-row p {
  margin-top: 6px;
  color: #98988d;
  font-size: 11.5px;
  line-height: 1.7;
  max-width: 560px;
}
.rule-state {
  font-family: var(--mono);
  font-size: 7.5px;
  letter-spacing: 0.07em;
  border: 1px solid rgba(242, 240, 233, 0.22);
  color: #bcbcb0;
  padding: 4px 7px;
  margin-top: 3px;
  white-space: nowrap;
}

/* Closing */
.closing {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  padding-top: clamp(80px, 10vw, 130px);
  padding-bottom: clamp(80px, 10vw, 130px);
  align-items: center;
}
.closing-mark {
  font-size: clamp(64px, 9.5vw, 142px);
  line-height: 0.82;
  letter-spacing: -0.03em;
  color: var(--ink);
}
.closing-mark::after {
  content: "";
  display: block;
  width: 88px;
  height: 10px;
  margin-top: 30px;
  background: var(--lime);
}
.closing-copy h2 {
  margin-top: 22px;
  font-size: clamp(36px, 4.1vw, 58px);
  line-height: 1.06;
  letter-spacing: -0.045em;
  font-weight: 500;
}
.closing-copy p {
  margin-top: 20px;
  max-width: 460px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.8;
}
.closing-copy .button {
  margin-top: 28px;
}

/* Footer */
.site-footer {
  background: var(--ink);
  color: var(--paper);
  padding-top: 50px;
  overflow: hidden;
}
.footer-top {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  padding-bottom: 42px;
  border-bottom: 1px solid rgba(242, 240, 233, 0.16);
}
.footer-brief {
  max-width: 390px;
}
.footer-brief .brand-word {
  color: var(--paper);
}
.footer-brief p {
  margin-top: 16px;
  color: #8e8e83;
  font-size: 11.5px;
  line-height: 1.8;
}
.footer-cols {
  display: flex;
  gap: clamp(40px, 7vw, 110px);
}
.footer-col {
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.footer-col span {
  font-family: var(--mono);
  font-size: 8px;
  color: #75756b;
  letter-spacing: 0.08em;
  margin-bottom: 7px;
}
.footer-col a {
  font-size: 11.5px;
  color: #c1c1b6;
}
.footer-col a:hover {
  color: var(--lime);
}
.footer-wordmark {
  font-size: clamp(90px, 17vw, 260px);
  line-height: 0.72;
  letter-spacing: -0.075em;
  font-weight: 500;
  color: var(--paper);
  padding-top: 42px;
  margin-bottom: -0.04em;
  white-space: nowrap;
}
.footer-wordmark span {
  color: var(--lime);
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 0 22px;
  border-top: 1px solid rgba(242, 240, 233, 0.16);
  color: #7f7f74;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.04em;
}
.footer-bottom a {
  color: #a8a89d;
}

/* --------------------------------------------------------------------------
   Skeleton
   -------------------------------------------------------------------------- */

.skeleton {
  position: relative;
  overflow: hidden;
  background: var(--paper-deep);
}
.skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.42), transparent);
  transform: translateX(-100%);
  animation: shimmer 1.5s infinite;
}
@keyframes shimmer {
  to {
    transform: translateX(100%);
  }
}
.skeleton-hot {
  min-height: 500px;
  border: 1px solid var(--line);
}
.skeleton-row {
  height: 118px;
  margin-bottom: 1px;
}
.skeleton-card {
  aspect-ratio: 0.78;
  border: 1px solid var(--line);
}
.skeleton-project-head {
  height: 440px;
  margin-bottom: 40px;
}
.skeleton-project-body {
  height: 600px;
}
.skeleton-project-side {
  height: 420px;
}
.project-loading-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 64px;
}
.skeleton-desk {
  height: 520px;
  margin-top: 40px;
}

.empty-state {
  padding: 70px 20px;
  text-align: center;
  border: 1px dashed var(--line-strong);
}
.empty-state > span {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  color: var(--muted);
}
.empty-state h3 {
  margin-top: 14px;
  font-size: 28px;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.empty-state p {
  margin-top: 8px;
  color: var(--muted);
  font-size: 12px;
}

/* --------------------------------------------------------------------------
   Auth modal + toast
   -------------------------------------------------------------------------- */

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(17, 18, 15, 0.62);
  backdrop-filter: blur(8px);
  animation: fadeIn 0.22s ease;
}
.modal-backdrop[hidden] {
  display: none;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
}
.auth-modal {
  width: min(100%, 520px);
  max-height: min(92vh, 760px);
  overflow-y: auto;
  background: var(--paper);
  border: 1px solid var(--ink);
  box-shadow: 12px 14px 0 rgba(0, 0, 0, 0.18);
  animation: modalIn 0.35s var(--ease);
}
@keyframes modalIn {
  from {
    transform: translateY(14px);
    opacity: 0;
  }
}
.auth-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.08em;
  color: var(--muted);
}
.auth-modal-body {
  padding: 26px 26px 24px;
}
.auth-role-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--line-strong);
  margin-bottom: 24px;
}
.auth-role-tabs button {
  border: 0;
  background: transparent;
  padding: 10px 8px;
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.auth-role-tabs button + button {
  border-left: 1px solid var(--line-strong);
}
.auth-role-tabs button.active {
  background: var(--ink);
  color: var(--lime);
}
.auth-modal h2 {
  font-size: 32px;
  line-height: 1.08;
  letter-spacing: -0.04em;
  font-weight: 500;
}
.auth-modal-sub {
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.auth-wallet-visual {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 24px 0;
  padding: 16px;
  border: 1px solid var(--line);
  background: var(--card);
}
.auth-wallet-visual .wallet-glyph {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
  width: 34px;
  height: 34px;
}
.wallet-glyph i {
  background: var(--ink);
}
.wallet-glyph i:nth-child(2) {
  background: var(--lime-deep);
}
.wallet-glyph i:nth-child(3) {
  background: var(--lime-deep);
}
.auth-wallet-visual span {
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.06em;
  color: var(--muted);
  text-align: right;
  line-height: 1.7;
}
.auth-points {
  display: grid;
  gap: 9px;
  margin: 0 0 24px;
}
.auth-points li {
  display: flex;
  gap: 9px;
  font-size: 11.5px;
  color: var(--ink-soft);
}
.auth-points li::before {
  content: "✓";
  font-family: var(--mono);
  color: var(--ink);
}
.auth-error {
  margin-bottom: 14px;
  padding: 10px 12px;
  border: 1px solid #c6543a;
  background: #f8e6e0;
  color: #8f2d18;
  font-size: 11.5px;
  line-height: 1.6;
}
.auth-error[hidden] {
  display: none;
}
.auth-submit {
  width: 100%;
}
.auth-footnote {
  margin-top: 14px;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted-light);
  line-height: 1.7;
  text-align: center;
}

.toast-root {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end;
  pointer-events: none;
}
.toast {
  min-width: 220px;
  max-width: 360px;
  padding: 13px 16px;
  background: var(--ink);
  color: var(--paper);
  border-left: 3px solid var(--lime);
  font-size: 11.5px;
  line-height: 1.5;
  animation: toastIn 0.3s var(--ease);
  pointer-events: auto;
}
.toast.error {
  border-color: var(--clay);
}
@keyframes toastIn {
  from {
    transform: translateY(8px);
    opacity: 0;
  }
}

/* --------------------------------------------------------------------------
   Project detail
   -------------------------------------------------------------------------- */

.project-main {
  padding-top: 28px;
  padding-bottom: 100px;
}
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.04em;
  color: var(--muted);
  margin-bottom: 26px;
}
.breadcrumb a:hover {
  color: var(--ink);
}
.breadcrumb span {
  color: var(--line-strong);
}
.preview-banner {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
  border: 1px solid #d7bf72;
  background: #f8f0ce;
  padding: 9px 13px;
  font-size: 10px;
  color: #6e5608;
}
.preview-banner span {
  font-family: var(--mono);
  font-size: 7.5px;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
#featured-strip,
#view-toggle {
  display: none !important;
}
.mf-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 10px;
}
.mf-card {
  min-width: 0;
  border: 1px solid var(--line-strong);
  background: var(--paper);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.mf-card:hover {
  transform: translateY(-2px);
  box-shadow: 5px 6px 0 rgba(17, 18, 15, 0.08);
}
.feed-launched .mf-card:nth-child(1) {
  border: 2px solid #d92d20;
  box-shadow: 4px 4px 0 rgba(217, 45, 32, 0.16);
}
.feed-launched .mf-card:nth-child(2) {
  border: 2px solid #ef8a2b;
  box-shadow: 4px 4px 0 rgba(239, 138, 43, 0.14);
}
.feed-launched .mf-card:nth-child(3) {
  border: 2px solid #e0b52f;
  box-shadow: 4px 4px 0 rgba(224, 181, 47, 0.14);
}
.mf-card-link {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 11px;
  padding: 10px;
}
.mf-card-thumb {
  position: relative;
  width: 76px;
  height: 76px;
  overflow: hidden;
  border: 1px solid var(--ink);
  background: var(--ink);
}
.mf-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(0.82) contrast(1.02);
}
.mf-card-fallback {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: var(--lime);
  font-family: var(--mono);
  font-size: 15px;
  letter-spacing: -0.08em;
}
.mf-card-status {
  display: inline-flex;
  align-items: center;
  padding: 2px 5px;
  border: 1px solid var(--line-strong);
  background: transparent;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 7px;
  line-height: 1;
  white-space: nowrap;
}
.mf-card-status[data-status="minting"] {
  border-color: #79a843;
  color: #3f6b21;
}
.mf-card-status[data-status="soldout"] {
  border-color: var(--ink);
  color: var(--ink);
}
.mf-card-status[data-status="lost"] {
  border-color: #c34b43;
  color: #a33b35;
}
.mf-card-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
}
.mf-card-body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: space-between;
}
.mf-card-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
}
.mf-card-title strong {
  overflow: hidden;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v-gold {
  display: inline-grid;
  width: 13px;
  height: 13px;
  margin-left: 4px;
  place-items: center;
  border-radius: 50%;
  border: 1px solid #9c7412;
  background: linear-gradient(135deg, #fff1a8 0%, #e8c44f 45%, #a97812 100%);
  color: #3b2900;
  font-family: var(--mono);
  font-size: 8px;
  font-weight: 700;
  line-height: 1;
  vertical-align: 1px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
}
.mf-card-name {
  overflow: hidden;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mf-card-ticker {
  flex: none;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.04em;
}
.mf-card-summary {
  display: -webkit-box;
  overflow: hidden;
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.mf-card-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 8px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.mf-card-metrics span {
  min-width: 0;
  padding: 5px 6px 4px 0;
}
.mf-card-metrics small {
  display: block;
  overflow: hidden;
  color: var(--muted-light);
  font-family: var(--mono);
  font-size: 7px;
  letter-spacing: 0.05em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mf-card-metrics b {
  display: block;
  overflow: hidden;
  margin-top: 1px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mf-card-market {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding-top: 5px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 7px;
  white-space: nowrap;
}
.mf-card-market b {
  color: var(--ink);
  font-weight: 500;
}
.mf-card-market .price-fresh { margin-left: auto; color: var(--lime); }
.mf-card-market .price-fresh-empty { color: var(--warn, #c47f17); }
.mf-card-free {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  margin-top: 7px;
  padding: 5px 6px;
  border: 1px dashed var(--line);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
}
.mf-card-free b {
  color: var(--ink);
  font-weight: 600;
  text-align: right;
}
.mf-card-free-empty {
  justify-content: flex-start;
  border-color: #d9a6a0;
}
.mf-card-free-empty b {
  color: #b33428;
}
.free-bar {
  flex: 0 0 100%;
  height: 4px;
  overflow: hidden;
  background: #dad8ce;
}
.free-bar i {
  display: block;
  height: 100%;
  min-width: 2px;
  background: var(--lime);
}
.free-bar-full i {
  background: #d14a3c;
}
.mf-card-metrics .price-value {
  font-size: 8.5px;
  letter-spacing: -0.02em;
}
.mf-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-top: 6px;
}
.mf-card-tags {
  display: flex;
  min-width: 0;
  overflow: hidden;
  gap: 3px;
}
.mf-card-tags .tag {
  max-width: 72px;
  overflow: hidden;
  padding: 2px 4px;
  font-size: 7px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mf-card-open {
  flex: none;
  color: var(--ink);
  font-family: var(--mono);
  font-size: 11px;
}
@media (max-width: 640px) {
  .mf-card-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
  .mf-card-link {
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 9px;
    padding: 8px;
  }
  .mf-card-thumb {
    width: 68px;
    height: 68px;
  }
  .mf-card-title strong {
    font-size: 12px;
  }
  .mf-card-summary {
    font-size: 9.5px;
    -webkit-line-clamp: 2;
  }
  .mf-card-metrics small {
    font-size: 6.5px;
  }
  .mf-card-metrics b {
    font-size: 9.5px;
  }
}

.token-hero {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 26px;
  padding: 24px;
  border: 1px solid var(--ink);
  background: var(--paper);
}
.token-avatar-wrap {
  position: relative;
  align-self: start;
  width: 132px;
}
.token-avatar {
  display: block;
  width: 132px;
  height: 132px;
  border-radius: 50%;
  border: 2px solid var(--ink);
  object-fit: cover;
  background: var(--ink);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--lime) 45%, transparent);
}
.token-avatar-fallback {
  display: grid;
  place-items: center;
  color: var(--lime);
  font-family: var(--mono);
  font-size: 25px;
  letter-spacing: -0.08em;
}
.token-live-dot {
  position: absolute;
  right: 3px;
  bottom: 7px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--lime);
  border: 2px solid var(--paper);
  box-shadow: 0 0 0 1px var(--ink);
}
.token-body {
  min-width: 0;
}
.token-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.token-title-block {
  min-width: 0;
}
.token-eyebrow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.token-eyebrow .status-badge {
  padding-right: 10px;
  border-right: 1px solid var(--line-strong);
}
.token-dot {
  color: var(--muted-light);
}
.token-hero h1 {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 11px;
  font-size: clamp(38px, 5vw, 70px);
  line-height: 0.95;
  letter-spacing: -0.055em;
}
.token-ticker {
  display: inline-block;
  padding: 5px 8px;
  border: 1px solid var(--line-strong);
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.03em;
  vertical-align: middle;
}
.token-subline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 10px;
}
.token-socials {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-shrink: 0;
}
.token-socials a,
.token-socials .project-share {
  display: inline-grid;
  place-items: center;
  min-width: 29px;
  height: 29px;
  padding: 0 7px;
  border: 1px solid var(--line-strong);
  background: transparent;
  color: var(--ink);
  font-family: var(--mono);
  font-size: 9px;
  cursor: pointer;
}
.token-socials a:hover,
.token-socials .project-share:hover {
  background: var(--ink);
  color: var(--lime);
}
.token-intro {
  max-width: 760px;
  margin-top: 16px;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.7;
}
.token-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 18px;
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
}
.token-free-progress {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 8px 10px;
  border: 1px dashed var(--line-strong);
  font-family: var(--mono);
  font-size: 9px;
}
.token-free-progress span,
.token-free-progress small {
  color: var(--muted);
}
.token-free-progress strong {
  font-size: 12px;
  text-align: right;
}
.token-free-empty {
  display: flex;
  border-color: #d9a6a0;
}
.token-free-empty strong {
  color: #b33428;
  text-align: left;
}
.token-free-empty {
  flex-wrap: wrap;
}
.token-free-empty .token-free-bar {
  flex: 0 0 100%;
}
.token-free-bar {
  grid-column: 1 / -1;
  height: 5px;
  overflow: hidden;
  background: #dad8ce;
}
.token-free-bar i {
  display: block;
  height: 100%;
  min-width: 2px;
  background: var(--lime);
}
.token-free-bar-full i {
  background: #d14a3c;
}
.token-metric {
  min-width: 0;
  padding: 10px 11px 9px;
  border-right: 1px solid var(--line);
}
.token-metric:nth-child(4n) {
  border-right: 0;
}
.token-metric span,
.token-metric small {
  display: block;
  overflow: hidden;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.07em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.token-metric strong {
  display: block;
  margin-top: 4px;
  overflow: hidden;
  font-family: var(--mono);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.04em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.token-metric small {
  margin-top: 2px;
  letter-spacing: 0;
}
.token-metric .trending-up {
  color: #278a5b;
}
.token-metric .trending-down {
  color: #c34b43;
}
.token-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 16px;
}
.token-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.token-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.token-contract {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
}
.token-actions .button {
  padding: 10px 14px;
  font-size: 11px;
}

@media (max-width: 760px) {
  .token-hero {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 16px;
    padding: 16px;
  }
  .token-avatar-wrap,
  .token-avatar {
    width: 76px;
    height: 76px;
  }
  .token-avatar-fallback {
    font-size: 17px;
  }
  .token-title-row {
    gap: 8px;
  }
  .token-hero h1 {
    font-size: clamp(30px, 8vw, 44px);
  }
  .token-socials {
    gap: 4px;
  }
  .token-socials a,
  .token-socials .project-share {
    min-width: 25px;
    height: 25px;
  }
  .token-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .token-metric:nth-child(4n) {
    border-right: 1px solid var(--line);
  }
  .token-metric:nth-child(2n) {
    border-right: 0;
  }
  .token-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
  .token-actions {
    justify-content: space-between;
    width: 100%;
  }
}

.project-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}
.project-hero-cover {
  position: relative;
  border: 1px solid var(--ink);
  box-shadow: 9px 10px 0 rgba(17, 18, 15, 0.08);
}
.project-hero-cover .project-cover {
  aspect-ratio: 1 / 0.86;
  border: 0;
}
.project-hero-cover .cover-ticker {
  font-size: clamp(74px, 9.4vw, 142px);
}
.project-cover-caption {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 13px;
  border-top: 1px solid var(--ink);
  background: var(--card);
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.project-head {
  min-width: 0;
}
.project-head-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 18px;
}
.project-head-meta .status-badge {
  padding-right: 14px;
  border-right: 1px solid var(--line-strong);
}
.project-head h1 {
  font-size: clamp(50px, 7vw, 104px);
  line-height: 0.92;
  letter-spacing: -0.06em;
  font-weight: 500;
  overflow-wrap: anywhere;
}
.project-head-intro {
  margin-top: 22px;
  max-width: 620px;
  font-size: clamp(18px, 2vw, 23px);
  line-height: 1.55;
  letter-spacing: -0.02em;
  color: var(--ink-soft);
}
.project-head-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 20px;
}
.project-head-tags .tag {
  font-size: 8.5px;
  padding: 4px 8px;
}
.project-head-facts {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 26px;
  justify-content: start;
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.project-fact span {
  display: block;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.07em;
  color: var(--muted);
  margin-bottom: 4px;
}
.project-fact strong {
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 400;
}
.project-hero-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 26px;
}
.project-share {
  width: 44px;
  height: 44px;
  border: 1px solid var(--line-strong);
  background: transparent;
  display: grid;
  place-items: center;
  font-size: 16px;
}
.project-share:hover {
  border-color: var(--ink);
  background: var(--card);
}

.project-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  gap: clamp(40px, 6vw, 88px);
  margin-top: clamp(56px, 7vw, 92px);
  align-items: start;
}
.project-layout aside {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.project-content {
  min-width: 0;
}
.project-section {
  padding-bottom: 48px;
  margin-bottom: 48px;
  border-bottom: 1px solid var(--line);
}
.project-section:last-child {
  border-bottom: 0;
}
.section-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 8.5px;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-bottom: 22px;
}
.section-label i {
  font-style: normal;
  color: var(--ink);
}
.section-label::after {
  content: "";
  height: 1px;
  flex: 1;
  background: var(--line);
}
.narrative-headline {
  font-size: clamp(27px, 3.2vw, 38px);
  line-height: 1.25;
  letter-spacing: -0.035em;
  font-weight: 500;
  max-width: 800px;
}
.narrative-body {
  margin-top: 22px;
  max-width: 760px;
}
.narrative-body p {
  color: var(--ink-soft);
  font-size: 16px;
  line-height: 1.9;
  margin-bottom: 18px;
}
.narrative-body p:last-child {
  margin-bottom: 0;
}
.narrative-source {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 22px;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted-light);
  letter-spacing: 0.03em;
}
.narrative-source::before {
  content: "AI";
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 16px;
  background: var(--line);
  color: var(--ink);
  font-size: 7px;
}
.narrative-card {
  display: grid;
  gap: 22px;
  margin-top: 24px;
  max-width: 820px;
}
.narrative-primary {
  border-left: 2px solid var(--ink);
  padding-left: 20px;
}
.narrative-secondary {
  border-left: 1px solid var(--line-strong, var(--line));
  padding-left: 20px;
}
.narrative-kicker {
  display: block;
  margin-bottom: 10px;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.08em;
  color: var(--muted);
}
.narrative-primary .narrative-body {
  margin-top: 0;
  max-width: 740px;
}
.narrative-primary .narrative-body p {
  font-size: 16px;
  line-height: 1.9;
}
.narrative-notes {
  max-width: 740px;
  white-space: pre-line;
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1.85;
  color: var(--muted);
}
.narrative-disclaimer {
  margin-top: 20px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
  max-width: 760px;
  font-family: var(--mono);
  font-size: 9px;
  line-height: 1.6;
  color: var(--muted-light);
}

.signal-table {
  border-top: 1px solid var(--ink);
}
.signal-row {
  display: grid;
  grid-template-columns: 105px minmax(0, 1fr) 104px;
  gap: 16px;
  align-items: start;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}
.signal-label {
  font-family: var(--mono);
  font-size: 8.5px;
  letter-spacing: 0.03em;
  color: var(--muted);
  padding-top: 2px;
}
.signal-value {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}
.signal-source {
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted-light);
  text-align: right;
  padding-top: 3px;
}
.signal-empty {
  padding: 28px 0;
  color: var(--muted);
  font-size: 12px;
  border-bottom: 1px solid var(--line);
}
.source-quote {
  margin-top: 22px;
  padding: 22px 24px;
  background: var(--card);
  border-left: 3px solid var(--lime-deep);
  position: relative;
}
.source-quote p {
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.75;
  max-width: 680px;
}
.source-quote footer {
  margin-top: 12px;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.source-quote a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.audit-card {
  border: 1px solid var(--line-strong);
  background: var(--card);
}
.audit-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--line);
}
.audit-verdict {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.audit-verdict h3 {
  font-size: 21px;
  letter-spacing: -0.02em;
  font-weight: 500;
}
.audit-verdict .status-badge {
  padding: 4px 7px;
  border: 1px solid var(--line-strong);
  color: var(--muted);
}
.audit-summary {
  margin-top: 8px;
  max-width: 580px;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.7;
}
.audit-score {
  text-align: right;
}
.audit-score strong {
  display: block;
  font-family: var(--serif);
  font-size: 52px;
  line-height: 0.8;
  font-weight: 400;
}
.audit-score span {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.audit-checks {
  padding: 0 24px;
}
.audit-check {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: start;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}
.audit-check:last-child {
  border-bottom: 0;
}
.audit-check-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  margin-top: 6px;
  background: var(--lime-deep);
}
.audit-check.warn .audit-check-dot {
  background: var(--sun);
}
.audit-check.fail .audit-check-dot {
  background: var(--clay);
}
.audit-check strong {
  display: block;
  font-size: 11.5px;
  font-weight: 500;
}
.audit-check p {
  margin-top: 2px;
  color: var(--muted);
  font-size: 10.5px;
  line-height: 1.6;
}
.audit-check > span:last-child {
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted-light);
  padding-top: 3px;
}
.audit-flags {
  padding: 16px 24px 20px;
  border-top: 1px solid var(--line);
}
.audit-flags h4 {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}
.audit-flags ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.audit-flags li {
  font-family: var(--mono);
  font-size: 8px;
  padding: 4px 7px;
  border: 1px solid #dfb9ae;
  color: #8f3a24;
  background: #f6e8e2;
}
.audit-caveat {
  display: flex;
  gap: 8px;
  margin-top: 13px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.65;
}
.audit-caveat::before {
  content: "!";
  font-family: var(--mono);
  color: var(--clay);
}

.contract-check {
  border: 1px solid var(--line);
  padding: 22px;
}
.contract-check-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.contract-check-head h3 {
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.02em;
}
.contract-check-head p {
  margin-top: 6px;
  max-width: 620px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.contract-check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 18px;
  border-top: 1px solid var(--line);
}
.contract-check-grid > div {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.contract-check-grid > div:nth-child(odd) {
  padding-right: 18px;
}
.contract-check-grid span {
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.contract-check-grid strong {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  color: var(--ink-soft);
}
.contract-what {
  margin-top: 20px;
}
.contract-what h4 {
  margin-bottom: 10px;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.contract-what ul {
  display: grid;
  gap: 7px;
  list-style: none;
}
.contract-what li {
  position: relative;
  padding-left: 16px;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.7;
}
.contract-what li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--muted-light);
}
.momentum-card {
  border: 1px solid var(--line);
  padding: 22px;
}
.momentum-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.momentum-grid > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.momentum-grid span {
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.momentum-grid strong {
  font-family: var(--mono);
  font-size: 16px;
  font-weight: 500;
}
.momentum-note,
.momentum-drop {
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 9px;
  line-height: 1.7;
  color: var(--muted);
}
.momentum-drop {
  color: #a34b3f;
}
@media (max-width: 640px) {
  .momentum-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .contract-check-grid {
    grid-template-columns: 1fr;
  }
  .contract-check-grid > div:nth-child(odd) {
    padding-right: 0;
  }
}
.rules-doc {
  border: 1px solid var(--line-strong);
  background: var(--card);
}
.rules-doc-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
}
.rules-doc-file {
  display: flex;
  align-items: center;
  gap: 10px;
}
.rules-doc-file .file-mark {
  font-family: var(--mono);
  font-size: 8px;
  padding: 6px 7px;
  background: var(--ink);
  color: var(--lime);
}
.rules-doc-file strong {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
}
.rules-doc-file span {
  display: block;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  margin-top: 2px;
}
.rules-doc pre {
  margin: 0;
  padding: 20px 20px 22px;
  font-size: 10.5px;
  line-height: 1.8;
  color: var(--ink-soft);
  max-height: 330px;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
}
.rules-doc pre.expanded {
  max-height: none;
}
.rules-doc-toggle {
  border: 0;
  background: none;
  font-family: var(--mono);
  font-size: 8.5px;
  color: var(--muted);
  border-bottom: 1px solid var(--muted);
  padding: 0 0 2px;
}

.mint-card {
  position: sticky;
  top: 98px;
  border: 1px solid var(--ink);
  background: var(--card);
  box-shadow: 8px 9px 0 rgba(17, 18, 15, 0.06);
}
.mint-card-head {
  padding: 17px 20px;
  background: var(--ink);
  color: var(--paper);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: 8.5px;
  letter-spacing: 0.07em;
}
.mint-card-head .status-badge {
  color: var(--paper);
}
.mint-card-head .status-badge::before {
  background: var(--lime);
}
.mint-card-body {
  padding: 18px 20px 20px;
}
.mint-kv {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.mint-kv:first-child {
  padding-top: 0;
}
.mint-kv span {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.04em;
  padding-top: 2px;
}
.mint-kv strong,
.mint-kv a {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
  word-break: break-all;
  line-height: 1.55;
}
.mint-kv a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.copy-row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.copy-row strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.copy-button {
  flex-shrink: 0;
  border: 1px solid var(--line-strong);
  background: transparent;
  font-family: var(--mono);
  font-size: 7px;
  padding: 3px 5px;
}
.copy-button:hover {
  background: var(--ink);
  color: var(--paper);
}
.mint-cta {
  width: 100%;
  margin-top: 18px;
  min-height: 50px;
  justify-content: space-between;
}
.mint-note {
  display: flex;
  gap: 7px;
  margin-top: 12px;
  color: var(--muted);
  font-size: 9.5px;
  line-height: 1.6;
}
.mint-note::before {
  content: "✳";
  color: var(--ink);
}
.mint-stamp {
  margin-top: 16px;
  padding-top: 13px;
  border-top: 1px dashed var(--line-strong);
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 7px;
  color: var(--muted-light);
  letter-spacing: 0.02em;
}
.dev-card {
  order: -1;
  margin-top: 0;
  margin-bottom: 14px;
  border: 1px solid var(--ink);
  background: var(--paper);
}
.dev-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.05em;
}
.dev-source {
  color: var(--muted-light);
  font-size: 7px;
}
.dev-body {
  padding: 12px;
}
.dev-loading,
.dev-empty {
  color: var(--muted);
  font-size: 9.5px;
  line-height: 1.6;
}
.dev-address-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.dev-address-row div {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.dev-address-row span {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 7px;
}
.dev-address-row a {
  overflow: hidden;
  color: var(--ink);
  font-family: var(--mono);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dev-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px solid var(--line);
}
.dev-total span {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 7px;
}
.dev-total strong {
  font-family: var(--mono);
  font-size: 14px;
  font-weight: 500;
}
.dev-contracts {
  margin-top: 9px;
  border-top: 1px solid var(--line);
}
.dev-contract-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  padding: 7px 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 8px;
}
.dev-contract-row.current {
  color: var(--ink);
}
.dev-contract-symbol {
  overflow: hidden;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dev-contract-address {
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dev-contract-row strong {
  font-size: 8px;
  font-weight: 500;
}
.dev-note {
  margin-top: 8px;
  color: var(--muted);
  font-size: 8px;
  line-height: 1.5;
}
.side-file {
  margin-top: 12px;
  border: 1px solid var(--line);
  background: transparent;
}
.side-file a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  font-family: var(--mono);
  font-size: 8.5px;
}
.side-file a:hover {
  background: var(--paper-deep);
}
.side-file span:last-child {
  color: var(--muted);
}

.related-section {
  margin-top: 90px;
  padding-top: 34px;
  border-top: 1px solid var(--ink);
}
.related-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 24px;
}
.related-head h2 {
  font-size: 30px;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.project-error {
  min-height: 55vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 16px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 60px 0;
}
.project-error h1 {
  font-size: clamp(40px, 6vw, 76px);
  line-height: 1;
  letter-spacing: -0.05em;
  font-weight: 500;
}
.project-error p {
  color: var(--muted);
  font-size: 13px;
}

/* --------------------------------------------------------------------------
   Rules page
   -------------------------------------------------------------------------- */

.rules-hero {
  padding-top: 58px;
  padding-bottom: 50px;
  border-bottom: 1px solid var(--line);
}
.rules-hero-top {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.rules-version {
  font-family: var(--mono);
  font-size: 8.5px;
  color: var(--muted);
  letter-spacing: 0.05em;
}
.rules-hero h1 {
  margin-top: 36px;
  font-size: clamp(50px, 8.4vw, 124px);
  line-height: 0.93;
  letter-spacing: -0.06em;
  font-weight: 500;
  max-width: 1100px;
}
.rules-hero-foot {
  display: grid;
  grid-template-columns: minmax(0, 540px) 1fr;
  gap: 60px;
  justify-content: space-between;
  margin-top: 42px;
  align-items: end;
}
.rules-hero-foot > p {
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.8;
}
.rules-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 20px;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.04em;
}
.rules-body {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 70px;
  padding-top: 56px;
  padding-bottom: 100px;
  align-items: start;
}
.rules-toc {
  position: sticky;
  top: 110px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}
.rules-toc > span {
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-bottom: 6px;
}
.rules-toc a {
  font-size: 11.5px;
  color: var(--muted);
  padding: 4px 0;
  border-bottom: 1px solid transparent;
}
.rules-toc a:hover {
  color: var(--ink);
  border-color: var(--line);
}
.rules-content {
  max-width: 940px;
}
.rules-block {
  padding-bottom: 64px;
  margin-bottom: 64px;
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 110px;
}
.rules-block:last-child {
  border-bottom: 0;
  margin-bottom: 0;
}
.rules-block-head {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 20px;
  align-items: start;
}
.rules-block-no {
  font-family: var(--serif);
  font-size: 40px;
  line-height: 0.9;
  color: var(--muted-light);
}
.rules-block-head h2 {
  margin-top: 7px;
  font-size: clamp(32px, 4vw, 46px);
  line-height: 1.06;
  letter-spacing: -0.04em;
  font-weight: 500;
}
.rules-lede {
  margin: 26px 0 30px 80px;
  max-width: 700px;
  color: var(--ink-soft);
  font-size: 14.5px;
  line-height: 1.85;
}
.submission-spec {
  margin-left: 80px;
  border-top: 1px solid var(--ink);
}
.spec-row {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.spec-no {
  font-family: var(--mono);
  font-size: 9px;
  color: var(--muted);
  padding-top: 4px;
}
.spec-row h3 {
  font-size: 16px;
  font-weight: 500;
}
.spec-row p {
  margin-top: 6px;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.7;
  max-width: 620px;
}
.spec-tag {
  font-family: var(--mono);
  font-size: 7.5px;
  border: 1px solid var(--line-strong);
  padding: 4px 6px;
  color: var(--muted);
  white-space: nowrap;
}
.rules-callout {
  margin: 26px 0 0 80px;
  border-left: 3px solid var(--lime-deep);
  background: var(--card);
  padding: 16px 20px;
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 16px;
}
.rules-callout > span {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.04em;
  padding-top: 2px;
}
.rules-callout p {
  font-size: 11.5px;
  line-height: 1.75;
  color: var(--ink-soft);
}
.review-grid {
  margin-left: 80px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.review-card {
  background: var(--card);
  padding: 21px 20px 18px;
  min-height: 190px;
  display: flex;
  flex-direction: column;
}
.review-no {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.review-card h3 {
  margin-top: 14px;
  font-size: 18px;
  letter-spacing: -0.02em;
  font-weight: 500;
}
.review-card p {
  margin-top: 7px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.7;
}
.review-result {
  margin-top: auto;
  padding-top: 14px;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--ink-soft);
  border-top: 1px solid var(--line);
}
.rules-subhead {
  margin: 38px 0 14px 80px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.rules-checks {
  margin-left: 80px;
  border-top: 1px solid var(--line);
}
.rules-checks li {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 12px;
  color: var(--ink-soft);
  line-height: 1.65;
}
.rules-checks li span {
  font-family: var(--mono);
  font-size: 10px;
}
.rules-caption {
  margin: 18px 0 0 80px;
  max-width: 700px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.8;
}
.table-wrap {
  margin-left: 80px;
  overflow-x: auto;
}
.rules-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 590px;
}
.rules-table th {
  text-align: left;
  padding: 10px 12px;
  font-family: var(--mono);
  font-size: 8px;
  font-weight: 400;
  color: var(--muted);
  letter-spacing: 0.04em;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line-strong);
}
.rules-table td {
  padding: 13px 12px;
  font-size: 11.5px;
  color: var(--ink-soft);
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.rules-table td:first-child {
  padding-left: 0;
}
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--mono);
  font-size: 8px;
  border: 1px solid currentColor;
  padding: 3px 6px;
  white-space: nowrap;
}
.status-live {
  color: #3f5d09;
  background: #e7f5bd;
}
.status-review {
  color: #72580a;
  background: #f7edc4;
}
.status-rejected {
  color: #8f3a24;
  background: #f6e4dd;
}
.status-offline {
  color: var(--muted);
  background: var(--paper-deep);
}
.rules-two-col {
  margin-left: 80px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
}
.rules-two-col .rules-subhead {
  margin-left: 0;
  margin-top: 30px;
}
.rules-two-col p {
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.8;
}
.boundary-list {
  margin-left: 80px;
  border-top: 1px solid var(--ink);
}
.boundary-list > div {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}
.boundary-list > div > span {
  font-family: var(--mono);
  font-size: 15px;
  color: var(--clay);
}
.boundary-list p {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.8;
}
.boundary-list strong {
  color: var(--ink);
  font-weight: 500;
}
.rules-final {
  margin: 44px 0 0 80px;
  padding-top: 34px;
  border-top: 1px solid var(--ink);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: end;
}
.rules-final > span {
  font-size: clamp(38px, 4.5vw, 62px);
  line-height: 0.94;
  letter-spacing: -0.02em;
}
.rules-final p {
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.8;
}
.rules-final .button {
  margin-top: 20px;
}

/* --------------------------------------------------------------------------
   Desk
   -------------------------------------------------------------------------- */

.desk-main {
  min-height: 70vh;
  padding-top: 34px;
  padding-bottom: 100px;
}
.desk-container {
  max-width: 1320px;
}
.desk-loading {
  max-width: 1100px;
}
.auth-gate {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
  gap: 80px;
  align-items: center;
  min-height: 62vh;
  padding: 30px 0 50px;
}
.auth-gate-copy h1 {
  margin-top: 26px;
  font-size: clamp(44px, 5.6vw, 74px);
  line-height: 0.99;
  letter-spacing: -0.055em;
  font-weight: 500;
}
.auth-gate-copy > p {
  margin-top: 24px;
  max-width: 520px;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.8;
}
.auth-gate-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 30px;
  flex-wrap: wrap;
}
.auth-gate-note {
  font-family: var(--mono);
  font-size: 8.5px;
  color: var(--muted-light);
  letter-spacing: 0.02em;
}
.gate-note-card {
  background: var(--ink);
  color: var(--paper);
  padding: 26px;
  min-height: 240px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.gate-note-label {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--lime);
  letter-spacing: 0.06em;
}
.gate-note-card p {
  margin-top: 30px;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: -0.02em;
  color: #d5d5ca;
}
.gate-steps {
  border-top: 1px solid var(--line);
  margin-top: 24px;
}
.gate-steps li {
  display: flex;
  gap: 18px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 11.5px;
  color: var(--muted);
}
.gate-steps li span {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--ink);
}

.desk-app {
  padding-top: 4px;
}
.desk-topline {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 26px;
  border-bottom: 1px solid var(--ink);
}
.desk-topline h1 {
  margin-top: 12px;
  font-size: clamp(36px, 4.4vw, 56px);
  line-height: 1;
  letter-spacing: -0.045em;
  font-weight: 500;
}
.desk-top-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.wallet-chip {
  font-family: var(--mono);
  font-size: 9px;
  border: 1px solid var(--line-strong);
  padding: 8px 10px;
  color: var(--muted);
}
.desk-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 54px;
  margin-top: 38px;
  align-items: start;
}
.desk-sidebar {
  position: sticky;
  top: 104px;
}
.desk-identity {
  border-top: 1px solid var(--ink);
  padding-top: 13px;
}
.desk-identity-label {
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted);
  letter-spacing: 0.05em;
}
.desk-identity strong {
  display: block;
  margin-top: 7px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
  word-break: break-all;
  line-height: 1.5;
}
.desk-identity-role {
  display: inline-block;
  margin-top: 7px;
  font-family: var(--mono);
  font-size: 7px;
  background: var(--lime);
  padding: 3px 6px;
  letter-spacing: 0.05em;
}
.desk-nav {
  margin-top: 30px;
  display: flex;
  flex-direction: column;
}
.desk-nav-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 11px 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  font-size: 11.5px;
  text-align: left;
  color: var(--muted);
}
.desk-nav-item span {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted-light);
}
.desk-nav-item:hover,
.desk-nav-item.active {
  color: var(--ink);
}
.desk-nav-item.active {
  font-weight: 500;
}
.desk-nav-item.active span {
  background: var(--ink);
  color: var(--lime);
  min-width: 20px;
  text-align: center;
  padding: 2px 4px;
}
.desk-side-note {
  margin-top: 26px;
  background: var(--card);
  border: 1px solid var(--line);
  padding: 13px;
}
.desk-side-note span {
  font-family: var(--mono);
  font-size: 7px;
  color: var(--muted);
  letter-spacing: 0.05em;
}
.desk-side-note p {
  margin-top: 7px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.65;
}
.desk-logout {
  margin-top: 24px;
  border: 0;
  border-bottom: 1px solid var(--muted);
  background: transparent;
  padding: 0 0 3px;
  font-family: var(--mono);
  font-size: 8.5px;
  color: var(--muted);
}
.desk-logout:hover {
  color: var(--ink);
}

.desk-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.desk-stats > div {
  padding: 16px 18px 18px 0;
  border-right: 1px solid var(--line);
}
.desk-stats > div + div {
  padding-left: 18px;
}
.desk-stats > div:last-child {
  border-right: 0;
}
.desk-stats span {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  display: block;
}
.desk-stats strong {
  display: block;
  margin-top: 8px;
  font-size: 31px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.04em;
}
.desk-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 26px;
  margin-top: 38px;
  margin-bottom: 16px;
}
.desk-section-head h2 {
  font-size: 27px;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.desk-section-head p {
  max-width: 380px;
  text-align: right;
  font-size: 10.5px;
  color: var(--muted);
  line-height: 1.6;
}
.desk-projects {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.desk-project {
  border: 1px solid var(--line-strong);
  background: var(--card);
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: stretch;
  transition: border-color 0.2s, box-shadow 0.3s;
}
.desk-project:hover {
  border-color: var(--ink);
  box-shadow: 5px 6px 0 rgba(17, 18, 15, 0.06);
}
.desk-project-cover {
  position: relative;
  overflow: hidden;
  border-right: 1px solid var(--line);
  min-height: 126px;
}
.desk-project-cover.project-cover {
  aspect-ratio: auto;
}
.desk-project-cover .cover-ticker {
  font-size: 30px;
  left: 10px;
  bottom: 9px;
}
.desk-project-cover .cover-bottom,
.desk-project-cover .cover-meta {
  display: none;
}
.desk-project-cover .cover-top {
  top: 9px;
  left: 10px;
  right: 10px;
  font-size: 6px;
}
.desk-project-main {
  min-width: 0;
  padding: 16px 0;
}
.desk-project-top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.desk-project h3 {
  font-size: 19px;
  line-height: 1.1;
  letter-spacing: -0.025em;
  font-weight: 500;
}
.desk-project-intro {
  margin-top: 5px;
  color: var(--muted);
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.desk-project-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 12px;
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted-light);
}
.desk-project-status {
  padding: 16px 16px 16px 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}
.status-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.04em;
  border: 1px solid var(--line-strong);
  padding: 4px 7px;
  white-space: nowrap;
}
.status-chip::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--muted);
}
.status-chip.live {
  border-color: #a6c65d;
  background: #edf7d4;
  color: #3f5d09;
}
.status-chip.live::before {
  background: #6a9016;
}
.status-chip.reviewing,
.status-chip.in_review {
  border-color: #d7bf72;
  background: #f8f0ce;
  color: #6e5608;
}
.status-chip.reviewing::before,
.status-chip.in_review::before {
  background: #b08a14;
  animation: pulse 1.6s infinite;
}
.status-chip.rejected {
  border-color: #d9a895;
  background: #f7e8e2;
  color: #8f3a24;
}
.status-chip.rejected::before {
  background: #b54a2e;
}
.status-chip.offline {
  background: var(--paper-deep);
}
.desk-project-actions {
  display: flex;
  gap: 6px;
}
.desk-project-actions a,
.desk-project-actions button {
  border: 1px solid var(--line-strong);
  background: transparent;
  padding: 5px 8px;
  font-family: var(--mono);
  font-size: 7.5px;
}
.desk-project-actions a:hover,
.desk-project-actions button:hover {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.desk-progress {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted);
}
.desk-progress i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--sun);
  animation: pulse 1.4s infinite;
}
.desk-empty {
  border: 1px dashed var(--line-strong);
  padding: 56px 30px;
  text-align: center;
}
.desk-empty-mark {
  font-size: 32px;
  font-family: var(--serif);
  color: var(--muted-light);
}
.desk-empty h3 {
  margin-top: 12px;
  font-size: 28px;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.desk-empty p {
  margin: 8px auto 20px;
  max-width: 360px;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.7;
}

/* Submission form */
.submission {
  border-top: 1px solid var(--ink);
  padding-top: 26px;
}
.submission-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
}
.submission-head h2 {
  margin-top: 12px;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1;
  letter-spacing: -0.045em;
  font-weight: 500;
}
.submission-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 42px;
  margin-top: 34px;
  align-items: start;
}
.submission-form {
  min-width: 0;
}
.logo-upload {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px;
  border: 1px dashed var(--line-strong);
  cursor: pointer;
}
.logo-upload:hover {
  border-color: var(--ink);
}
.logo-preview {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  flex: none;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  background: var(--paper);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 18px;
}
.logo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.logo-upload-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.logo-upload-copy strong {
  font-size: 11px;
}
.logo-upload-copy span {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
}
.paid-listing {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--ink);
  background: var(--paper);
}
.paid-listing-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.paid-kicker {
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.06em;
}
.paid-listing h3 {
  margin-top: 4px;
  font-size: 26px;
  letter-spacing: -0.05em;
}
.paid-badge {
  padding: 4px 7px;
  border: 1px solid var(--line-strong);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
}
.paid-copy {
  margin-top: 10px;
  color: var(--ink-soft);
  font-size: 11px;
  line-height: 1.7;
}
.paid-check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  font-size: 12px;
  font-weight: 600;
}
.paid-lock {
  padding: 3px 6px;
  background: var(--ink);
  color: var(--lime);
  font-family: var(--mono);
  font-size: 8px;
  font-weight: 400;
}
.paid-address {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 10px;
  padding: 8px 9px;
  border: 1px solid var(--line);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
  word-break: break-all;
}
.paid-safety {
  margin-top: 8px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.6;
}
.whitelist-note {
  display: grid;
  gap: 4px;
  margin-top: 14px;
  padding: 12px;
  border: 1px solid #6e9b3c;
  background: color-mix(in srgb, var(--lime) 22%, var(--paper));
}
.whitelist-note strong {
  font-size: 11px;
}
.whitelist-note span {
  color: var(--ink-soft);
  font-size: 9.5px;
  line-height: 1.6;
}
.form-section {
  padding-bottom: 28px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--line);
}
.form-section-head {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 12px;
  margin-bottom: 18px;
}
.form-number {
  font-family: var(--serif);
  font-size: 24px;
  color: var(--muted-light);
  line-height: 1;
}
.form-section-head h3 {
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: -0.02em;
  font-weight: 500;
}
.form-section-head p {
  margin-top: 5px;
  color: var(--muted);
  font-size: 10.5px;
  line-height: 1.6;
}
.field {
  display: block;
  margin-top: 16px;
}
.field-label {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 11px;
  font-weight: 500;
  margin-bottom: 7px;
}
.field-label em {
  font-family: var(--mono);
  font-size: 7.5px;
  font-style: normal;
  letter-spacing: 0.04em;
  color: var(--muted-light);
  font-weight: 400;
}
.field input,
.field textarea {
  width: 100%;
  border: 1px solid var(--line-strong);
  background: var(--card);
  padding: 12px 13px;
  font-size: 12.5px;
  outline: none;
  border-radius: 0;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.field input {
  height: 44px;
}
.field textarea {
  resize: vertical;
  min-height: 120px;
  line-height: 1.65;
  font-family: var(--mono);
  font-size: 10.5px;
}
.field input:focus,
.field textarea:focus {
  border-color: var(--ink);
  box-shadow: 3px 3px 0 rgba(17, 18, 15, 0.07);
}
.field input::placeholder,
.field textarea::placeholder {
  color: var(--muted-light);
}
.field-hint {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 9.5px;
  line-height: 1.55;
}
.field-textarea {
  margin-top: 12px;
}
.input-count {
  position: relative;
}
.input-count input {
  padding-right: 76px;
}
.input-count > span {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  pointer-events: none;
}
.input-count.over > span {
  color: var(--clay);
}
.dropzone {
  border: 1px dashed var(--line-strong);
  background: var(--card);
  min-height: 104px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 16px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  outline: none;
}
.dropzone:hover,
.dropzone:focus,
.dropzone.dragover {
  border-color: var(--ink);
  background: #f3f7e6;
}
.dropzone-idle {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.dropzone-icon {
  font-family: var(--mono);
  font-size: 20px;
  line-height: 1;
  margin-bottom: 3px;
}
.dropzone-idle strong {
  font-size: 12px;
  font-weight: 500;
}
.dropzone-idle span:last-child {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.dropzone-file {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
}
.dropzone-file[hidden] {
  display: none;
}
.dropzone-file .file-mark {
  font-family: var(--mono);
  font-size: 8px;
  background: var(--ink);
  color: var(--lime);
  padding: 7px 6px;
  flex-shrink: 0;
}
.dropzone-file div {
  min-width: 0;
  flex: 1;
}
.dropzone-file strong {
  display: block;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dropzone-file span {
  display: block;
  margin-top: 3px;
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted);
}
.checkbox-row {
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 10px;
  align-items: start;
  margin-top: 8px;
  font-size: 10.5px;
  line-height: 1.7;
  color: var(--muted);
  cursor: pointer;
}
.checkbox-row input {
  appearance: none;
  width: 15px;
  height: 15px;
  margin: 2px 0 0;
  border: 1px solid var(--line-strong);
  background: var(--card);
  display: grid;
  place-items: center;
}
.checkbox-row input:checked {
  background: var(--ink);
  border-color: var(--ink);
}
.checkbox-row input:checked::after {
  content: "✓";
  color: var(--lime);
  font-size: 10px;
  line-height: 1;
}
.form-error {
  margin-top: 14px;
  padding: 10px 12px;
  border: 1px solid #cf7c65;
  background: #f7e7e1;
  color: #7e2e1a;
  font-size: 11px;
  line-height: 1.6;
}
.form-error[hidden] {
  display: none;
}
.form-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 20px;
  flex-wrap: wrap;
}
.button-submit {
  min-width: 200px;
  justify-content: space-between;
}
.form-actions-note {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted-light);
}
.submission-aside {
  position: sticky;
  top: 104px;
}
.preview-label {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.07em;
  margin-bottom: 9px;
}
.mini-card {
  border: 1px solid var(--ink);
  background: var(--card);
}
.mini-cover {
  aspect-ratio: 1.45 / 1;
  position: relative;
  overflow: hidden;
  color: var(--cover-fg, var(--ink));
  background: var(--cover-bg, var(--paper-deep));
  border-bottom: 1px solid var(--ink);
}
.mini-cover > span {
  position: absolute;
  left: 12px;
  top: 11px;
  font-family: var(--mono);
  font-size: 7px;
  opacity: 0.65;
}
.mini-cover > strong {
  position: absolute;
  left: 10px;
  bottom: 12px;
  font-size: 42px;
  line-height: 0.84;
  letter-spacing: -0.06em;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.mini-cover .cover-motif {
  display: none;
}
.mini-body {
  padding: 13px;
}
.mini-ticker {
  font-family: var(--mono);
  font-size: 7px;
  color: var(--muted);
}
.mini-body h3 {
  margin-top: 4px;
  font-size: 18px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.mini-body p {
  margin-top: 5px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}
.aside-checklist {
  margin-top: 20px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
}
.aside-checklist h3 {
  font-size: 12px;
  font-weight: 500;
}
.aside-checklist ul {
  margin-top: 9px;
}
.aside-checklist li {
  position: relative;
  padding-left: 13px;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.6;
}
.aside-checklist li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--muted-light);
}
.aside-caution {
  margin-top: 18px;
  padding: 12px;
  border: 1px solid #e0c3b8;
  background: #f8ebe5;
}
.aside-caution span {
  font-family: var(--mono);
  font-size: 7px;
  color: #8f3a24;
  letter-spacing: 0.05em;
}
.aside-caution p {
  margin-top: 5px;
  color: #764536;
  font-size: 9.5px;
  line-height: 1.6;
}

/* Scan overlay */
.scan-overlay {
  position: fixed;
  inset: 0;
  z-index: 600;
  background: rgba(17, 18, 15, 0.72);
  backdrop-filter: blur(9px);
  display: grid;
  place-items: center;
  padding: 20px;
}
.scan-overlay[hidden] {
  display: none;
}
.scan-card {
  width: min(100%, 620px);
  max-height: 92vh;
  overflow-y: auto;
  background: var(--paper);
  border: 1px solid var(--ink);
  padding: 26px;
  box-shadow: 12px 14px 0 rgba(0, 0, 0, 0.2);
  animation: modalIn 0.35s var(--ease);
}
.scan-top {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.06em;
}
.scan-live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink);
}
.scan-live i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--lime-deep);
  animation: pulse 1.3s infinite;
}
.scan-card h2 {
  margin-top: 24px;
  font-size: clamp(32px, 4vw, 44px);
  line-height: 1.02;
  letter-spacing: -0.045em;
  font-weight: 500;
}
.scan-sub {
  margin-top: 9px;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.7;
}
.scan-project {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin: 20px 0 10px;
  padding: 12px 14px;
  background: var(--card);
  border: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 8.5px;
}
.scan-project span:last-child {
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.scan-steps {
  border-top: 1px solid var(--line-strong);
}
.scan-steps li {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
  opacity: 0.42;
  transition: opacity 0.3s;
}
.scan-steps li.active,
.scan-steps li.done {
  opacity: 1;
}
.scan-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
}
.scan-steps li.active .scan-dot {
  background: var(--lime-deep);
  border-color: var(--lime-deep);
  animation: pulse 1.2s infinite;
}
.scan-steps li.done .scan-dot {
  background: var(--ink);
  border-color: var(--ink);
}
.scan-steps strong {
  display: block;
  font-size: 11.5px;
  font-weight: 500;
}
.scan-steps small {
  display: block;
  margin-top: 2px;
  font-size: 9.5px;
  color: var(--muted);
}
.scan-state {
  font-family: var(--mono);
  font-size: 7px;
  color: var(--muted-light);
}
.scan-steps li.active .scan-state {
  color: var(--ink);
}
.scan-result {
  margin-top: 20px;
  padding: 20px;
  border: 1px solid var(--ink);
  background: var(--card);
}
.scan-result[hidden] {
  display: none;
}
.scan-result-badge {
  display: inline-block;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.05em;
  padding: 4px 7px;
  background: var(--lime);
  color: var(--ink);
}
.scan-result-badge.manual {
  background: var(--sun);
}
.scan-result-badge.fail {
  background: var(--clay);
  color: var(--paper);
}
.scan-result h3 {
  margin-top: 12px;
  font-size: 26px;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.scan-result p {
  margin-top: 7px;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.7;
}
.scan-result .scan-result-detail {
  margin-top: 8px;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted-light);
  letter-spacing: 0.03em;
}
.scan-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.scan-footer {
  display: flex;
  justify-content: space-between;
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted-light);
  letter-spacing: 0.04em;
}

/* --------------------------------------------------------------------------
   Archive page (/projects)
   -------------------------------------------------------------------------- */

.archive-hero {
  padding-top: clamp(48px, 6vw, 84px);
  padding-bottom: 34px;
  border-bottom: 1px solid var(--line);
}
.archive-hero h1 {
  margin-top: 20px;
  font-size: clamp(52px, 8vw, 116px);
  line-height: 0.92;
  letter-spacing: -0.06em;
  font-weight: 500;
}
.archive-hero h1 .serif {
  font-weight: 400;
}
.archive-hero p {
  margin-top: 18px;
  max-width: 460px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.8;
}
.archive-main {
  padding-top: 30px;
  padding-bottom: 110px;
}
.archive-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}
.filter-wide {
  flex: 1;
  max-width: 520px;
}
.archive-tabs {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.archive-tabs button {
  border: 1px solid var(--line-strong);
  background: transparent;
  padding: 9px 15px;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.archive-tabs button span {
  margin-left: 6px;
  opacity: 0.55;
}
.archive-tabs button:hover {
  border-color: var(--ink);
  color: var(--ink);
}
.archive-tabs button.active {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--lime);
}
.archive-count {
  font-family: var(--mono);
  font-size: 9px;
  color: var(--muted);
  letter-spacing: 0.04em;
  margin-bottom: 16px;
}
.archive-grid {
  margin-top: 0;
}
.archive-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 40px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
}
.archive-pager span {
  font-family: var(--mono);
  font-size: 9px;
  color: var(--muted);
  min-width: 90px;
  text-align: center;
}

/* --------------------------------------------------------------------------
   Admin
   -------------------------------------------------------------------------- */

.page-admin {
  background: #0e0f0c;
  min-height: 100vh;
}
.page-admin::before {
  opacity: 0.05;
  mix-blend-mode: screen;
}
.admin-boot {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: #b5b5a8;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.1em;
}
.admin-boot-mark {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  background: var(--lime);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
}

.admin-login {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  background: #0e0f0c;
  color: var(--paper);
}
.admin-login-brand {
  padding: clamp(32px, 5vw, 68px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid rgba(242, 240, 233, 0.14);
  position: relative;
  overflow: hidden;
}
.admin-login-brand::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(242, 240, 233, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(242, 240, 233, 0.05) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(130deg, transparent 20%, #000 80%);
  pointer-events: none;
}
.admin-login-brand .brand {
  position: relative;
}
.admin-login-brand .brand-mark i {
  background: var(--paper);
}
.admin-login-brand .brand-mark i:nth-child(2) {
  background: var(--lime);
}
.admin-login-brand .brand-word {
  color: var(--paper);
}
.admin-login-copy {
  position: relative;
  max-width: 660px;
}
.admin-login-copy .eyebrow {
  color: #87877b;
}
.admin-login-copy h1 {
  margin-top: 26px;
  font-size: clamp(52px, 7.2vw, 108px);
  line-height: 0.91;
  letter-spacing: -0.06em;
  font-weight: 500;
}
.admin-login-copy h1 span {
  color: var(--lime);
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
}
.admin-login-copy p {
  margin-top: 24px;
  max-width: 420px;
  color: #8f8f83;
  font-size: 12.5px;
  line-height: 1.8;
}
.admin-login-foot {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-family: var(--mono);
  font-size: 8px;
  color: #66665c;
  letter-spacing: 0.04em;
}
.admin-login-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
  background: #131410;
}
.admin-login-form {
  width: min(100%, 360px);
}
.admin-login-form .eyebrow {
  color: #7f7f73;
}
.admin-login-form h2 {
  margin-top: 16px;
  font-size: 34px;
  line-height: 1.1;
  letter-spacing: -0.04em;
  font-weight: 500;
}
.admin-login-form p {
  margin-top: 9px;
  color: #85857a;
  font-size: 11.5px;
  line-height: 1.7;
}
.admin-field {
  margin-top: 26px;
}
.admin-field label {
  display: block;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.06em;
  color: #8b8b80;
  margin-bottom: 7px;
}
.admin-field-inner {
  display: flex;
  align-items: center;
  border: 1px solid #3c3d35;
  background: #0e0f0c;
}
.admin-field input {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--paper);
  padding: 13px 14px;
  outline: none;
  font-family: var(--mono);
  font-size: 11px;
}
.admin-field-inner:focus-within {
  border-color: var(--lime);
}
.admin-field-toggle {
  border: 0;
  background: none;
  color: #7b7b70;
  font-family: var(--mono);
  font-size: 8px;
  padding: 0 12px;
}
.admin-login-submit {
  width: 100%;
  margin-top: 16px;
  background: var(--lime);
  color: var(--ink);
  border-color: var(--lime);
  justify-content: space-between;
}
.admin-login-submit:hover {
  background: var(--paper);
  border-color: var(--paper);
}
.admin-login-error {
  margin-top: 12px;
  border: 1px solid #6b3324;
  background: #2a1813;
  color: #e7a18c;
  padding: 9px 11px;
  font-size: 10.5px;
  line-height: 1.5;
}
.admin-login-error[hidden] {
  display: none;
}
.admin-demo-hint {
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid #2a2b24;
  font-family: var(--mono);
  font-size: 8px;
  color: #66665c;
  line-height: 1.8;
}
.admin-demo-hint code {
  color: #a5a59a;
}

.admin-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 232px minmax(0, 1fr);
  background: var(--paper);
}
.admin-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  background: #10110e;
  color: var(--paper);
  padding: 22px 18px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid #2b2c25;
}
.admin-sidebar .brand {
  padding: 0 4px 22px;
  border-bottom: 1px solid #2b2c25;
}
.admin-sidebar .brand-word {
  color: var(--paper);
  font-size: 16px;
}
.admin-sidebar .brand-mark i {
  background: var(--paper);
}
.admin-sidebar .brand-mark i:nth-child(2) {
  background: var(--lime);
}
.admin-side-label {
  margin: 20px 4px 10px;
  font-family: var(--mono);
  font-size: 7.5px;
  letter-spacing: 0.1em;
  color: #65655b;
}
.admin-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.admin-nav button,
.admin-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 0;
  background: none;
  color: #a0a095;
  text-align: left;
  padding: 10px 9px;
  font-size: 11.5px;
}
.admin-nav button:hover,
.admin-nav a:hover {
  background: #1b1c17;
  color: var(--paper);
}
.admin-nav button.active {
  background: var(--lime);
  color: var(--ink);
  font-weight: 500;
}
.admin-nav span {
  font-family: var(--mono);
  font-size: 8px;
  color: #66665c;
}
.admin-nav button.active span {
  color: #3b491b;
}
.admin-side-bottom {
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid #2b2c25;
}
.admin-system {
  padding: 0 4px 14px;
  font-family: var(--mono);
  font-size: 7.5px;
  color: #6c6c61;
  line-height: 1.9;
}
.admin-system b {
  color: var(--lime);
  font-weight: 400;
}
.admin-logout {
  width: 100%;
  border: 1px solid #34352d;
  background: transparent;
  color: #9f9f93;
  text-align: left;
  padding: 9px;
  font-family: var(--mono);
  font-size: 8px;
}
.admin-logout:hover {
  border-color: var(--paper);
  color: var(--paper);
}

.admin-main {
  min-width: 0;
  padding: 0 32px 60px;
}
.admin-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  height: 68px;
  border-bottom: 1px solid var(--line);
}
.admin-mobile-nav {
  display: none;
}
.admin-breadcrumb {
  display: flex;
  gap: 9px;
  align-items: center;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.04em;
}
.admin-breadcrumb strong {
  color: var(--ink);
  font-weight: 400;
}
.admin-top-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.admin-top-actions a,
.admin-top-actions button {
  border: 1px solid var(--line-strong);
  background: transparent;
  padding: 7px 9px;
  font-family: var(--mono);
  font-size: 8px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.admin-top-actions a:hover,
.admin-top-actions button:hover {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.admin-top-actions .button-dark {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.admin-top-actions .button-dark:hover {
  background: var(--lime);
  color: var(--ink);
  border-color: var(--lime);
}
.admin-page-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  padding: 30px 0 24px;
}
.admin-page-head h1 {
  font-size: 38px;
  line-height: 1;
  letter-spacing: -0.045em;
  font-weight: 500;
}
.admin-page-head p {
  margin-top: 9px;
  color: var(--muted);
  font-size: 10.5px;
}
.admin-date {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  text-align: right;
  line-height: 1.7;
}
.admin-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.admin-stat {
  padding: 15px 18px 17px 0;
  border-right: 1px solid var(--line);
}
.admin-stat + .admin-stat {
  padding-left: 18px;
}
.admin-stat:last-child {
  border-right: 0;
}
.admin-stat span {
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted);
  letter-spacing: 0.04em;
  display: block;
}
.admin-stat strong {
  display: block;
  margin-top: 8px;
  font-size: 32px;
  line-height: 1;
  letter-spacing: -0.04em;
  font-weight: 500;
}
.admin-stat small {
  display: block;
  margin-top: 5px;
  color: var(--muted-light);
  font-size: 8.5px;
}
.admin-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 22px 0 12px;
}
.admin-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.admin-tabs button {
  border: 1px solid transparent;
  background: transparent;
  padding: 6px 10px;
  font-family: var(--mono);
  font-size: 8.5px;
  color: var(--muted);
}
.admin-tabs button:hover {
  border-color: var(--line);
}
.admin-tabs button.active {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--lime);
}
.admin-tabs button span {
  margin-left: 4px;
  opacity: 0.7;
}
.admin-search {
  display: flex;
  align-items: center;
  gap: 7px;
  border-bottom: 1px solid var(--line-strong);
  min-width: 220px;
}
.admin-category {
  min-width: 130px;
  border: 1px solid var(--line-strong);
  background: transparent;
  padding: 7px 8px;
  color: var(--ink);
  font-family: var(--mono);
  font-size: 9px;
  outline: none;
}
.admin-search input {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 6px 0;
  font-family: var(--mono);
  font-size: 9.5px;
  outline: none;
}
.admin-table-wrap {
  border-top: 1px solid var(--ink);
  overflow-x: auto;
}
.admin-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 850px;
}
.admin-table th {
  text-align: left;
  padding: 9px 10px;
  border-bottom: 1px solid var(--line-strong);
  font-family: var(--mono);
  font-size: 7.5px;
  font-weight: 400;
  color: var(--muted);
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.admin-table th:first-child,
.admin-table td:first-child {
  padding-left: 0;
}
.admin-table td {
  padding: 11px 10px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  font-size: 10.5px;
}
.admin-table tbody tr {
  cursor: pointer;
  transition: background 0.16s;
}
.admin-table tbody tr:hover {
  background: #f7f5ef;
}
.admin-project-cell {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 200px;
}
.admin-project-mark {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  background: var(--ink);
  color: var(--lime);
  font-family: var(--mono);
  font-size: 8px;
}
.admin-project-cell strong {
  display: block;
  font-size: 11.5px;
  font-weight: 500;
}
.admin-project-cell span {
  display: block;
  margin-top: 2px;
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted);
}
.admin-table .mono-cell {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  white-space: nowrap;
}
.admin-table .score-cell {
  font-family: var(--mono);
  font-size: 10px;
}
.admin-table .score-cell.low {
  color: var(--clay);
}
.admin-row-actions {
  display: flex;
  gap: 4px;
  justify-content: flex-end;
}
.admin-row-actions button {
  border: 1px solid var(--line-strong);
  background: transparent;
  font-family: var(--mono);
  font-size: 7px;
  padding: 4px 6px;
  white-space: nowrap;
}
.admin-row-actions button:hover {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.admin-row-actions button[disabled] {
  opacity: 0.35;
  pointer-events: none;
}
.admin-empty {
  padding: 60px 20px;
  text-align: center;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
}
.admin-bottom-grid {
  display: grid;
  grid-template-columns: 1.4fr 0.6fr;
  gap: 32px;
  margin-top: 36px;
}
.admin-log {
  border-top: 1px solid var(--ink);
}
.admin-log h2,
.admin-side-panel h2 {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.01em;
  padding: 12px 0 10px;
}
.admin-log-row {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr) 90px;
  gap: 12px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted);
}
.admin-log-row strong {
  color: var(--ink-soft);
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-side-panel {
  border-top: 1px solid var(--ink);
}
.admin-config-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.admin-config-row b {
  color: var(--ink);
  font-weight: 400;
}
.admin-config-row b.on {
  color: #51730c;
}

.admin-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 700;
  background: rgba(17, 18, 15, 0.48);
  backdrop-filter: blur(4px);
  display: flex;
  justify-content: flex-end;
}
.admin-drawer-backdrop[hidden] {
  display: none;
}
.admin-drawer {
  width: min(100%, 540px);
  height: 100vh;
  overflow-y: auto;
  background: var(--paper);
  border-left: 1px solid var(--ink);
  animation: drawerIn 0.3s var(--ease);
}
@keyframes drawerIn {
  from {
    transform: translateX(30px);
    opacity: 0.5;
  }
}
.admin-drawer-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 15px 22px;
  background: var(--ink);
  color: var(--paper);
  border-bottom: 1px solid #2b2c25;
}
.admin-drawer-head span {
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.07em;
  color: #939388;
}
.admin-drawer-head button {
  border: 1px solid #45463c;
  background: transparent;
  color: var(--paper);
  width: 30px;
  height: 30px;
  font-size: 18px;
}
.admin-drawer-body {
  padding: 24px 22px 40px;
}
.admin-drawer-title {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
}
.admin-drawer-title h2 {
  font-size: 32px;
  line-height: 1;
  letter-spacing: -0.04em;
  font-weight: 500;
}
.admin-drawer-title span {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.admin-drawer-sub {
  margin-top: 7px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}
.admin-drawer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 16px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.admin-drawer-actions button {
  border: 1px solid var(--line-strong);
  background: var(--card);
  padding: 7px 9px;
  font-family: var(--mono);
  font-size: 8px;
}
.admin-drawer-actions button:hover {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.admin-drawer-actions button.primary {
  background: var(--lime);
  border-color: var(--lime);
  color: var(--ink);
}
.admin-drawer-actions button.danger {
  color: #a5361f;
  border-color: #d8b4a9;
}
.admin-drawer-actions button.danger:hover {
  background: #a5361f;
  color: var(--paper);
  border-color: #a5361f;
}
.admin-detail-section {
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.admin-detail-section h3 {
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-bottom: 10px;
}
.admin-kv {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 10px;
  padding: 5px 0;
  font-size: 10px;
}
.admin-kv dt {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.admin-kv dd {
  margin: 0;
  word-break: break-word;
  font-family: var(--mono);
  font-size: 8.5px;
  line-height: 1.6;
}
.admin-kv dd a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.admin-audit-row {
  display: flex;
  gap: 8px;
  padding: 6px 0;
  border-top: 1px solid var(--line);
  font-size: 9.5px;
}
.admin-audit-row i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--lime-deep);
  flex-shrink: 0;
  margin-top: 4px;
}
.admin-audit-row.warn i {
  background: var(--sun);
}
.admin-audit-row.fail i {
  background: var(--clay);
}
.admin-audit-row span {
  color: var(--muted);
  font-size: 8.5px;
}
.admin-audit-row strong {
  display: block;
  font-size: 9.5px;
  font-weight: 500;
}
.admin-narrative {
  font-size: 10.5px;
  color: var(--ink-soft);
  line-height: 1.8;
  white-space: pre-wrap;
}
.admin-rules-preview {
  max-height: 160px;
  overflow: auto;
  background: var(--card);
  border: 1px solid var(--line);
  padding: 10px;
  font-family: var(--mono);
  font-size: 8px;
  line-height: 1.7;
  white-space: pre-wrap;
  color: var(--muted);
}
.admin-history-row {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 10px;
  padding: 7px 0;
  border-top: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted);
}
.admin-history-row p {
  font-family: var(--sans);
  font-size: 9.5px;
  color: var(--ink-soft);
  line-height: 1.5;
}
.admin-modal {
  position: fixed;
  inset: 0;
  z-index: 800;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(17, 18, 15, 0.64);
}
.admin-modal[hidden] {
  display: none;
}
.admin-modal-card {
  width: min(100%, 430px);
  background: var(--paper);
  border: 1px solid var(--ink);
  padding: 22px;
  box-shadow: 10px 12px 0 rgba(0, 0, 0, 0.18);
}
.admin-modal-card h3 {
  font-size: 23px;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.admin-modal-card p {
  margin-top: 8px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.7;
}
.admin-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 20px;
}
.totp-secret {
  margin-top: 14px;
  padding: 12px;
  background: var(--ink);
  color: var(--lime);
  font-family: var(--mono);
  font-size: 16px;
  letter-spacing: 0.14em;
  text-align: center;
  word-break: break-all;
  user-select: all;
}
.totp-otpauth {
  margin-top: 10px;
  padding: 8px 10px;
  background: var(--paper-deep);
  border: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  word-break: break-all;
  line-height: 1.6;
}
.admin-log p {
  margin-top: 8px;
  line-height: 1.7;
}
.admin-cost-panel {
  margin-top: 18px;
  border: 1px solid var(--line-strong);
  background: var(--card);
  padding: 16px 18px;
}
.admin-ai-panel {
  border-color: var(--ink);
  box-shadow: 5px 6px 0 rgba(17, 18, 15, 0.06);
}
.admin-cost-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
.admin-cost-head h2 {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.admin-cost-head span {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.admin-cost-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
  margin-top: 4px;
}
.admin-cost-item {
  padding: 13px 12px 13px 0;
  border-right: 1px solid var(--line);
}
.admin-cost-item:last-child { border-right: 0; }
.admin-cost-item + .admin-cost-item { padding-left: 12px; }
.admin-cost-item span {
  display: block;
  font-family: var(--mono);
  font-size: 7.5px;
  color: var(--muted);
  letter-spacing: 0.03em;
}
.admin-cost-item strong {
  display: block;
  margin-top: 6px;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.03em;
}
.admin-cost-item small {
  display: block;
  margin-top: 3px;
  font-family: var(--mono);
  font-size: 7px;
  color: var(--muted-light);
}
.admin-cost-foot {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--line-strong);
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  line-height: 1.6;
}
.admin-import {
  border: 1px solid var(--line-strong);
  background: var(--card);
  padding: 14px 16px;
  margin: 0 0 14px;
}
.admin-import-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.admin-import-head h3 {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.admin-import-head p {
  margin-top: 4px;
  max-width: 520px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.6;
}
.admin-import textarea {
  width: 100%;
  margin-top: 10px;
  border: 1px solid var(--line-strong);
  background: var(--paper);
  padding: 10px;
  font-family: var(--mono);
  font-size: 10px;
  line-height: 1.7;
  resize: vertical;
  outline: none;
}
.admin-import textarea:focus {
  border-color: var(--ink);
}
.admin-import-result {
  margin-top: 8px;
  font-family: var(--mono);
  font-size: 8.5px;
  color: var(--muted);
  min-height: 12px;
}
.admin-x-form {
  display: flex;
  gap: 14px;
  margin-top: 12px;
}
.admin-x-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.admin-x-form input {
  min-width: 220px;
  border: 1px solid var(--line-strong);
  background: var(--paper);
  padding: 9px 10px;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink);
  outline: none;
}
.admin-x-form input:focus {
  border-color: var(--ink);
}
.admin-email-verify-row {
  align-items: flex-end;
}
.admin-email-verify-row label {
  flex: 1;
}
.admin-email-verify-row .button {
  min-height: 38px;
  white-space: nowrap;
}
.admin-x-note {
  border: 1px dashed var(--line-strong);
  padding: 10px 12px;
  font-family: var(--mono);
  font-size: 8.5px;
  line-height: 1.7;
  color: var(--muted);
}
.admin-mail-settings {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line-strong);
  background: var(--card);
}
.admin-mail-settings summary {
  cursor: pointer;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.08em;
  color: var(--ink);
}
.admin-mail-settings .admin-x-form {
  margin-top: 10px;
}
.admin-mail-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
}
.admin-mail-actions span {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.5;
}
.self-check-list {
  margin-top: 10px;
  border-top: 1px solid var(--line);
}
.self-check-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.self-check-status {
  flex: 0 0 46px;
  padding-top: 2px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.08em;
}
.self-check-row strong {
  font-size: 11px;
  font-weight: 600;
}
.self-check-row p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.6;
}
.self-check-pass .self-check-status {
  color: #4b7a24;
}
.self-check-warn .self-check-status {
  color: #aa6a12;
}
.self-check-fail .self-check-status {
  color: #b33428;
}
.self-check-fail strong {
  color: #b33428;
}
.admin-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.admin-form-grid label {
  display: grid;
  gap: 4px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.04em;
}
.admin-form-grid input,
.admin-form-grid select {
  width: 100%;
  min-height: 34px;
  padding: 7px 8px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 11px;
}
.campaign-key-output {
  margin-top: 10px;
  padding: 10px;
  border: 1px solid var(--line);
  background: var(--ink);
  color: var(--lime);
  font-family: var(--mono);
  font-size: 10px;
  line-height: 1.7;
  white-space: pre-wrap;
  word-break: break-all;
}
.admin-source-list {
  display: grid;
  gap: 0;
  margin-top: 8px;
  border-top: 1px solid var(--line);
}
.admin-source-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--line);
  font-size: 10px;
}
.admin-source-row strong {
  font-weight: 600;
}
.admin-source-row span {
  color: var(--muted);
  font-family: var(--mono);
  text-align: right;
}
@media (max-width: 720px) {
  .admin-form-grid {
    grid-template-columns: 1fr;
  }
}
.admin-hot-cell {
  font-family: var(--mono);
  font-size: 9px;
  color: var(--muted);
  white-space: nowrap;
}
.admin-hot-cell.is-hot {
  background: var(--lime);
  color: var(--ink);
  padding: 2px 5px;
}
.admin-hot-rows {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.admin-hot-row {
  display: grid;
  grid-template-columns: 140px 1fr 54px;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 8.5px;
  color: var(--muted);
}
.admin-hot-bar {
  display: block;
  height: 5px;
  background: var(--line);
}
.admin-hot-bar i {
  display: block;
  height: 100%;
  background: var(--lime);
}
.admin-hot-row b {
  text-align: right;
  font-weight: 500;
  color: var(--ink);
}
.hot-badge {
  display: inline-block;
  background: var(--lime);
  color: var(--ink);
  padding: 1px 4px;
  margin-right: 4px;
  font-size: 8px;
}
@media (max-width: 720px) {
  .admin-x-form { flex-direction: column; }
  .admin-x-form input { min-width: 0; width: 100%; }
}
@media (max-width: 720px) {
  .admin-import-head { flex-direction: column; }
}
@media (max-width: 960px) {
  .admin-cost-grid { grid-template-columns: repeat(3, 1fr); }
  .admin-cost-item:nth-child(3n) { border-right: 0; }
  .admin-cost-item:nth-child(n+4) { padding-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 480px) {
  .admin-cost-grid { grid-template-columns: 1fr 1fr; }
  .admin-cost-item:nth-child(3n) { border-right: 1px solid var(--line); }
  .admin-cost-item:nth-child(2n) { border-right: 0; }
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1180px) {
  .main-nav {
    gap: 20px;
  }
  .header-link {
    display: none;
  }
  .section-head {
    grid-template-columns: 110px minmax(0, 1fr) auto;
    gap: 22px;
  }
  .hot-layout {
    grid-template-columns: 1fr;
  }
  .hot-side {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--ink);
    gap: 0;
  }
  .hot-row {
    grid-template-columns: 30px 1fr;
    padding: 14px;
    border-right: 1px solid var(--line);
    border-bottom: 0;
    align-items: start;
  }
  .hot-row:last-child {
    border-right: 0;
  }
  .hot-thumb {
    display: none;
  }
  .hot-row-copy p {
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .hot-score {
    display: none;
  }
  .project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .desk-layout {
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 34px;
  }
  .submission-grid {
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 28px;
  }
}

@media (max-width: 960px) {
  :root {
    --header-h: 64px;
  }
  .header-topline .container {
    height: 22px;
  }
  .header-topline span:first-child {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  .header-topline span:last-child {
    display: none;
  }
  .main-nav,
  .header-actions .wallet-button,
  .header-actions .header-link {
    display: none;
  }
  .header-actions .login-wrap .wallet-button {
    display: inline-flex;
    min-height: 34px;
    padding: 7px 9px;
    font-size: 9px;
  }
  .login-menu {
    position: fixed;
    right: 12px;
    top: 60px;
    left: 12px;
    width: auto;
  }
  .mobile-toggle {
    display: block;
  }
  .mobile-menu {
    top: 86px;
  }
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .hero-copy {
    max-width: 760px;
  }
  .protocol-card {
    min-height: 0;
  }
  .protocol-list {
    grid-template-columns: 1fr 1fr;
    gap: 0 24px;
  }
  .protocol-list li:nth-child(2) {
    border-top: 1px solid rgba(242, 240, 233, 0.13);
  }
  .protocol-list li:last-child {
    border-bottom: 1px solid rgba(242, 240, 233, 0.13);
  }
  .protocol-foot {
    margin-top: 20px;
  }
  .stat-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .stat-wide {
    grid-column: 1 / -1;
    border-right: 0;
    border-top: 1px solid var(--line);
    min-height: 0;
    padding: 18px 0;
    flex-direction: row;
    align-items: center;
    gap: 24px;
  }
  .stat-wide .stat-label {
    margin: 0;
    flex-shrink: 0;
  }
  .stat-wide p {
    max-width: none;
  }
  .section-head {
    grid-template-columns: 90px 1fr;
  }
  .section-tools,
  .section-head > .text-link {
    grid-column: 2;
    justify-self: start;
  }
  .section-heading h2 {
    font-size: 42px;
  }
  .rules-band-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .rules-band-intro p {
    max-width: 520px;
  }
  .closing {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .closing-mark {
    font-size: 82px;
  }
  .footer-top {
    flex-direction: column;
  }
  .footer-cols {
    justify-content: space-between;
  }
  .project-hero {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .project-hero-cover {
    max-width: 620px;
  }
  .project-hero-cover .project-cover {
    aspect-ratio: 1.28 / 1;
  }
  .project-layout {
    grid-template-columns: 1fr;
  }
  .mint-card {
    position: static;
    order: -1;
    max-width: 520px;
  }
  .project-head h1 {
    font-size: 68px;
  }
  .related-grid {
    grid-template-columns: 1fr 1fr;
  }
  .rules-hero-foot {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .rules-meta {
    justify-content: flex-start;
  }
  .rules-body {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .rules-toc {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px 20px;
    border-bottom: 1px solid var(--line);
    padding-bottom: 14px;
  }
  .rules-toc > span {
    width: 100%;
  }
  .auth-gate {
    grid-template-columns: 1fr;
    gap: 38px;
    min-height: 0;
  }
  .gate-note-card {
    min-height: 200px;
  }
  .desk-layout {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .desk-sidebar {
    position: static;
  }
  .desk-identity {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 16px;
  }
  .desk-identity strong {
    margin-top: 0;
    grid-column: 1;
  }
  .desk-identity-role {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    margin-top: 0;
  }
  .desk-nav {
    flex-direction: row;
    flex-wrap: wrap;
    margin-top: 18px;
    border-top: 1px solid var(--line);
  }
  .desk-nav-item {
    width: auto;
    gap: 14px;
    padding: 10px 14px 10px 0;
    border-bottom: 0;
  }
  .desk-side-note,
  .desk-logout {
    display: none;
  }
  .submission-grid {
    grid-template-columns: 1fr;
  }
  .submission-aside {
    position: static;
    max-width: 360px;
  }
  .admin-shell {
    grid-template-columns: 78px minmax(0, 1fr);
  }
  .admin-sidebar {
    padding: 18px 10px;
  }
  .admin-sidebar .brand {
    justify-content: center;
    padding-bottom: 18px;
  }
  .admin-sidebar .brand-word,
  .admin-side-label,
  .admin-nav span,
  .admin-system,
  .admin-sidebar .brand-sup {
    display: none;
  }
  .admin-nav button,
  .admin-nav a {
    justify-content: center;
    font-size: 0;
    height: 40px;
    padding: 0;
  }
  .admin-nav button::first-letter,
  .admin-nav a::first-letter {
    font-size: 11px;
  }
  .admin-nav button.active {
    background: var(--lime);
  }
  .admin-nav button::before {
    content: attr(data-short);
    font-family: var(--mono);
    font-size: 9px;
  }
  .admin-nav a::before {
    content: "RULES";
    font-family: var(--mono);
    font-size: 6px;
  }
  .admin-logout {
    text-align: center;
    font-size: 0;
  }
  .admin-logout::before {
    content: "EXIT";
    font-family: var(--mono);
    font-size: 7px;
  }
  .admin-main {
    padding: 0 22px 50px;
  }
  .admin-login {
    grid-template-columns: 1fr;
  }
  .admin-login-brand {
    min-height: 42vh;
    border-right: 0;
    border-bottom: 1px solid #2b2c25;
  }
  .admin-login-copy h1 {
    font-size: 58px;
  }
  .admin-login-foot {
    display: none;
  }
  .admin-login-panel {
    padding: 50px 24px;
  }
  .admin-bottom-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  :root {
    --gutter: 20px;
  }
  .hero {
    padding-top: 38px;
  }
  .hero-title {
    font-size: clamp(39px, 11.2vw, 62px);
  }
  .hero-lede {
    font-size: 14px;
  }
  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .hero-actions .button {
    justify-content: space-between;
  }
  .protocol-list {
    grid-template-columns: 1fr;
  }
  .protocol-list li:nth-child(2) {
    border-top: 0;
  }
  .protocol-card {
    padding: 20px;
  }
  .protocol-stamp {
    margin: 20px 0 18px;
  }
  .hero-index-line {
    margin-top: 28px;
    font-size: 7px;
  }
  .stat-grid {
    grid-template-columns: 1fr 1fr;
  }
  .stat {
    padding: 20px 16px 20px 0 !important;
    min-height: 112px;
    border-bottom: 1px solid var(--line);
  }
  .stat:nth-child(2n) {
    border-right: 0;
    padding-left: 16px !important;
  }
  .stat-wide {
    grid-column: 1 / -1;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    border-bottom: 0;
  }
  .section {
    padding-top: 70px;
  }
  .section-head {
    grid-template-columns: 1fr;
    gap: 16px;
    align-items: start;
  }
  .section-kicker {
    flex-direction: row;
    align-items: baseline;
    gap: 12px;
  }
  .section-index {
    font-size: 30px;
  }
  .section-heading h2 {
    font-size: 34px;
  }
  .section-tools,
  .section-head > .text-link {
    grid-column: 1;
  }
  .filter {
    width: 100%;
    min-width: 0;
  }
  .hot-side {
    grid-template-columns: 1fr;
    border-top: 1px solid var(--ink);
  }
  .hot-row {
    border-right: 0;
    border-bottom: 1px solid var(--line);
    grid-template-columns: 30px 1fr;
  }
  .hot-feature .project-cover {
    aspect-ratio: 1.4 / 1;
  }
  .hot-feature .cover-ticker {
    font-size: 64px;
  }
  .hot-feature-body {
    padding: 18px;
  }
  .hot-feature h3 {
    font-size: 27px;
  }
  .project-grid {
    grid-template-columns: 1fr;
  }
  .project-card h3 {
    font-size: 22px;
  }
  .rules-band {
    padding: 56px 0;
  }
  .rule-row {
    grid-template-columns: 30px 1fr;
    gap: 12px;
  }
  .rule-state {
    grid-column: 2;
    justify-self: start;
    margin-top: 0;
  }
  .rule-row p {
    font-size: 11px;
  }
  .closing {
    padding-top: 70px;
    padding-bottom: 70px;
  }
  .closing-mark {
    font-size: 60px;
  }
  .footer-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }
  .footer-wordmark {
    font-size: 16.5vw;
    padding-top: 34px;
  }
  .footer-bottom {
    flex-direction: column;
    gap: 8px;
  }
  .project-head h1 {
    font-size: 52px;
  }
  .project-head-intro {
    font-size: 18px;
  }
  .project-head-facts {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .project-hero-cover .cover-ticker {
    font-size: 76px;
  }
  .signal-row {
    grid-template-columns: 82px 1fr;
    gap: 10px;
  }
  .signal-source {
    grid-column: 2;
    text-align: left;
    padding-top: 0;
  }
  .audit-head {
    grid-template-columns: 1fr;
  }
  .audit-score {
    text-align: left;
    display: flex;
    align-items: baseline;
    gap: 7px;
  }
  .audit-score strong {
    font-size: 40px;
  }
  .rules-doc-head {
    flex-direction: column;
    align-items: flex-start;
  }
  .related-grid {
    grid-template-columns: 1fr;
  }
  .related-head {
    flex-direction: column;
    gap: 8px;
  }
  .rules-hero {
    padding-top: 40px;
  }
  .rules-hero h1 {
    font-size: 46px;
  }
  .rules-hero-foot {
    margin-top: 28px;
  }
  .rules-body {
    padding-top: 36px;
    padding-bottom: 70px;
  }
  .rules-toc {
    display: none;
  }
  .rules-block {
    padding-bottom: 44px;
    margin-bottom: 44px;
  }
  .rules-block-head {
    grid-template-columns: 38px 1fr;
    gap: 12px;
  }
  .rules-block-no {
    font-size: 30px;
  }
  .rules-block-head h2 {
    font-size: 31px;
  }
  .rules-lede,
  .submission-spec,
  .rules-callout,
  .review-grid,
  .rules-subhead,
  .rules-checks,
  .rules-caption,
  .table-wrap,
  .rules-two-col,
  .boundary-list,
  .rules-final {
    margin-left: 0;
  }
  .rules-lede {
    margin-top: 20px;
  }
  .spec-row {
    grid-template-columns: 20px 1fr;
    gap: 10px;
  }
  .spec-tag {
    grid-column: 2;
    justify-self: start;
  }
  .rules-callout {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .review-grid {
    grid-template-columns: 1fr;
  }
  .review-card {
    min-height: 0;
  }
  .rules-two-col {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .rules-final {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .rules-table {
    min-width: 560px;
  }
  .auth-gate-copy h1 {
    font-size: 44px;
  }
  .gate-note-card p {
    font-size: 15px;
  }
  .desk-topline {
    flex-direction: column;
    align-items: flex-start;
  }
  .desk-top-actions {
    width: 100%;
    justify-content: space-between;
  }
  .desk-stats {
    grid-template-columns: repeat(3, 1fr);
  }
  .desk-section-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  .desk-section-head p {
    text-align: left;
  }
  .desk-project {
    grid-template-columns: 82px minmax(0, 1fr);
  }
  .desk-project-cover {
    min-height: 140px;
  }
  .desk-project-cover .cover-ticker {
    font-size: 21px;
  }
  .desk-project-status {
    grid-column: 1 / -1;
    border-top: 1px solid var(--line);
    flex-direction: row;
    align-items: center;
    padding: 9px 12px;
  }
  .desk-project-main {
    padding-right: 12px;
  }
  .field-label {
    flex-direction: column;
    gap: 3px;
  }
  .submission-aside {
    display: none;
  }
  .scan-card {
    padding: 20px;
  }
  .scan-card h2 {
    font-size: 31px;
  }
  .scan-project {
    flex-direction: column;
    gap: 4px;
  }
  .admin-shell {
    grid-template-columns: 1fr;
  }
  .admin-sidebar {
    display: none;
  }
  .admin-mobile-nav {
    display: flex;
    position: sticky;
    top: 0;
    z-index: 40;
    margin: 0 -16px;
    padding: 0 8px;
    border-bottom: 1px solid var(--line);
    background: var(--paper);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .admin-mobile-nav::-webkit-scrollbar {
    display: none;
  }
  .admin-mobile-nav button {
    flex: 0 0 auto;
    min-height: 42px;
    padding: 0 12px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--muted);
    font: 600 11px/1 "Segoe UI", "PingFang SC", sans-serif;
    cursor: pointer;
  }
  .admin-mobile-nav button.active {
    border-bottom-color: var(--ink);
    color: var(--ink);
  }
  .admin-mobile-nav #admin-mobile-logout {
    margin-left: auto;
    color: #a23b2d;
  }
  .admin-main {
    padding: 0 16px 40px;
  }
  .admin-topbar {
    height: 58px;
  }
  .admin-page-head {
    padding-top: 22px;
  }
  .admin-page-head h1 {
    font-size: 30px;
  }
  .admin-stats {
    grid-template-columns: 1fr 1fr;
  }
  .admin-stat:nth-child(2n) {
    border-right: 0;
  }
  .admin-stat {
    border-bottom: 1px solid var(--line);
  }
  .admin-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-search {
    width: 100%;
  }
  .admin-drawer {
    width: 100%;
  }
  .admin-login-copy h1 {
    font-size: 48px;
  }
  .admin-login-brand {
    padding: 30px 24px;
    min-height: 46vh;
  }
  .admin-login-panel {
    padding: 36px 22px;
  }
  .admin-log {
    overflow: hidden;
  }
}

@media (max-width: 420px) {
  .hero-title {
    font-size: 38px;
  }
  .stat-value {
    font-size: 36px;
  }
  .project-head h1 {
    font-size: 44px;
  }
  .project-hero-actions {
    flex-wrap: wrap;
  }
  .desk-top-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .wallet-chip {
    text-align: center;
  }
  .admin-page-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .admin-date {
    text-align: left;
  }
}

@media (max-width: 720px) {
  .archive-hero h1 {
    font-size: 46px;
  }
  .archive-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }
  .filter-wide {
    max-width: none;
  }
  .archive-tabs {
    width: 100%;
  }
  .archive-tabs button {
    flex: 1;
  }
  .archive-pager {
    flex-wrap: wrap;
  }
}

/* --------------------------------------------------------------------------
   Launch Board (home) — dense terminal / launchpad layout
   -------------------------------------------------------------------------- */

.page-board {
  background: var(--paper);
}

.market-strip {
  position: sticky;
  top: var(--header-h);
  z-index: 99;
  display: flex;
  align-items: stretch;
  height: 36px;
  background: var(--ink);
  color: #b8b8ac;
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}
.market-strip-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 18px;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.08em;
  color: var(--lime);
  border-right: 1px solid rgba(242, 240, 233, 0.16);
  flex-shrink: 0;
  white-space: nowrap;
}
.market-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--lime);
  animation: pulse 2.4s infinite;
}
.market-strip-track {
  flex: 1;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}
.ms-track-inner {
  display: inline-flex;
  gap: 34px;
  padding: 0 20px;
  white-space: nowrap;
  animation: marquee 40s linear infinite;
}
.market-strip:hover .ms-track-inner {
  animation-play-state: paused;
}
.ms-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.02em;
  line-height: 36px;
}
.ms-item b {
  color: var(--lime);
  font-weight: 500;
}
.ms-item em {
  font-style: normal;
  color: #6f6f65;
  font-size: 9px;
}
.ms-item .ms-flame {
  color: #f0b429;
  font-size: 9px;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.board-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: end;
  padding-top: clamp(28px, 4vw, 48px);
  padding-bottom: 30px;
  border-bottom: 1px solid var(--line);
}
.board-hero h1 {
  margin-top: 16px;
  font-size: clamp(42px, 5.6vw, 76px);
  line-height: 0.92;
  letter-spacing: -0.055em;
  font-weight: 500;
}
.board-hero h1 .serif {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
}
.board-hero p {
  margin-top: 16px;
  max-width: 560px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.75;
}
.board-hero-actions {
  display: flex;
  gap: 10px;
  margin-top: 22px;
  flex-wrap: wrap;
}
.board-hero-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(110px, 1fr));
  border: 1px solid var(--line-strong);
  min-width: 320px;
}
.board-stat {
  padding: 16px 18px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  min-height: 104px;
}
.board-stat:nth-child(2n) { border-right: 0; }
.board-stat:nth-child(n+3) { border-bottom: 0; }
.board-stat > span {
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.board-stat strong {
  margin-top: 8px;
  font-size: 34px;
  line-height: 1;
  font-weight: 500;
  letter-spacing: -0.04em;
}
.board-stat strong sup {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--muted);
  vertical-align: top;
}
.board-stat small {
  margin-top: auto;
  padding-top: 6px;
  color: var(--muted);
  font-size: 10px;
}

.board-section {
  padding-top: 24px;
  padding-bottom: 90px;
}
.board-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 0;
  border-bottom: 1px solid var(--ink);
  flex-wrap: wrap;
}
.board-tabs {
  display: flex;
  gap: 2px;
  flex-wrap: wrap;
}
.board-tabs button {
  border: 1px solid transparent;
  background: transparent;
  padding: 9px 14px;
  font-size: 13px;
  font-weight: 500;
  color: var(--muted);
  transition: background 0.2s, color 0.2s;
}
.board-tabs button span {
  display: none;
}
.board-free-filter {
  display: flex;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--line);
  background: var(--paper-soft, #ebe9df);
}
.board-free-filter[hidden] {
  display: none;
}
.board-free-filter button {
  border: 0;
  background: transparent;
  padding: 5px 9px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  cursor: pointer;
}
.board-free-filter button.active {
  background: var(--ink);
  color: var(--lime);
}
.board-tabs button:hover { color: var(--ink); }
.board-tabs button.active {
  background: var(--ink);
  color: var(--lime);
}
.board-tools {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.board-search {
  display: flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--line-strong);
  background: var(--card);
  padding: 0 10px;
  height: 38px;
}
.board-search input {
  border: 0;
  background: transparent;
  width: 170px;
  font-size: 12px;
  outline: none;
}
.board-search input::placeholder { color: var(--muted-light); }
.board-search span { color: var(--muted); }
.board-sort select {
  height: 38px;
  border: 1px solid var(--line-strong);
  background: var(--card);
  padding: 0 30px 0 12px;
  font-size: 12px;
  outline: none;
  appearance: none;
  cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position: calc(100% - 16px) 16px, calc(100% - 11px) 16px;
  background-size: 5px 5px;
  background-repeat: no-repeat;
}
.view-toggle {
  display: flex;
  border: 1px solid var(--line-strong);
  height: 38px;
}
.view-toggle button {
  width: 38px;
  border: 0;
  background: var(--card);
  font-size: 16px;
  color: var(--muted);
}
.view-toggle button + button { border-left: 1px solid var(--line-strong); }
.view-toggle button.active {
  background: var(--ink);
  color: var(--lime);
}

.board-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 292px;
  gap: 26px;
  align-items: start;
  margin-top: 22px;
}
.board-main { min-width: 0; }

.featured-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 26px;
}
.featured-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line-strong);
  background: var(--card);
  overflow: hidden;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.2s;
}
.featured-card:hover {
  transform: translateY(-3px);
  border-color: var(--ink);
  box-shadow: 7px 8px 0 rgba(17, 18, 15, 0.08);
}
.featured-card .project-cover {
  aspect-ratio: 1.6 / 1;
  border: 0;
  border-bottom: 1px solid var(--line-strong);
}
.featured-card .featured-cover .cover-ticker {
  font-size: clamp(44px, 5vw, 66px);
}
.featured-body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.featured-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.featured-heat {
  font-family: var(--mono);
  font-size: 9px;
  color: var(--muted);
}
.featured-body h3 {
  font-size: 20px;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.featured-body p {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.featured-tags { display: flex; gap: 6px; flex-wrap: wrap; }

.board-extra {
  margin-top: 30px;
}
.review-cadence {
  padding: 22px 0 6px;
  text-align: center;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.board-extra-note {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.extra-table .col-rank {
  width: 48px;
}
.extra-table td {
  vertical-align: middle;
}
.trending-table .col-rank {
  width: 48px;
}
.trending-kind {
  display: inline-flex;
  padding: 3px 7px;
  border: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
  white-space: nowrap;
}
.trending-kind.launched {
  border-color: var(--ink);
  color: var(--ink);
}
.trending-kind.lost {
  color: var(--muted-light);
}
.trending-weight {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
}
.trending-sparks {
  color: #b8892f;
  font-size: 12px;
  letter-spacing: 0.12em;
  white-space: nowrap;
}
.trending-up {
  color: #3d7c4a;
}
.trending-down {
  color: #a34b3f;
}
.spark-emoji {
  margin-left: 6px;
  font-size: 0.55em;
  vertical-align: middle;
  letter-spacing: 0.06em;
}
.board-panel {
  border-top: 1px solid var(--ink);
}
.board-panel-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0 12px;
}
.board-panel-head h2 {
  font-size: 24px;
  letter-spacing: -0.03em;
  font-weight: 500;
}
.board-panel-head #board-count {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--muted);
  margin-left: 8px;
}
.board-panel-meta {
  display: flex;
  align-items: center;
  gap: 16px;
}
.board-subtitle {
  max-width: 620px;
  margin: 6px 0 4px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.6;
}
#realtime-badge {
  display: none !important;
}

.board-table-wrap { overflow-x: auto; }
.board-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
  border-top: 1px solid var(--line-strong);
}
.board-table th {
  text-align: left;
  padding: 9px 10px;
  border-bottom: 1px solid var(--line-strong);
  font-family: var(--mono);
  font-size: 8px;
  font-weight: 400;
  color: var(--muted);
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.board-table th:first-child, .board-table td:first-child { padding-left: 0; }
.board-table td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  font-size: 12px;
}
.board-table tbody tr:hover { background: #f7f5ef; }
.col-rank {
  font-family: var(--mono);
  font-size: 9px;
  color: var(--muted-light);
  width: 30px;
}
.board-project {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 190px;
}
.ticker-mark {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  font-family: var(--mono);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.02em;
  background: var(--cover-bg, var(--ink));
  color: var(--cover-fg, var(--lime));
}
.board-project-copy { min-width: 0; }
.board-project-copy strong {
  display: block;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.board-project-copy small {
  display: block;
  margin-top: 2px;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.board-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 5px;
}
.src-chip {
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  font-family: var(--mono);
  font-size: 7.5px;
  letter-spacing: 0.02em;
  border: 1px solid var(--line-strong);
  white-space: nowrap;
}
.src-platform { background: var(--ink); color: var(--lime); border-color: var(--ink); }
.src-paid { background: linear-gradient(135deg, #fff1a8, #e8c44f); color: #3b2900; border-color: #b78a1f; }
.src-scan { background: #e6ecff; color: #1f2f8f; border-color: #b9c6f5; }
.src-launched { background: #f8e9d2; color: #8a5a10; border-color: #e6c892; }
.src-broken { background: #f4dedb; color: #8f3f35; border-color: #dfb4ad; }
.src-social { background: var(--card); color: var(--muted); }
.col-status .status-badge { font-size: 8px; }
.heat-cell { display: flex; flex-direction: column; gap: 4px; min-width: 90px; }
.heat-cell strong { font-family: var(--mono); font-size: 11px; font-weight: 400; }
.heat-bar {
  display: block;
  height: 3px;
  background: var(--paper-deep);
  overflow: hidden;
}
.heat-bar i {
  display: block;
  height: 100%;
  background: var(--lime-deep);
}
.col-num { font-family: var(--mono); font-size: 10px; color: var(--muted); white-space: nowrap; }
.score-pill {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  padding: 3px 6px;
  font-family: var(--mono);
  font-size: 9px;
  border: 1px solid var(--line-strong);
}
.score-pill.good { border-color: #a6c65d; background: #edf7d4; color: #3f5d09; }
.score-pill.warn { border-color: #d7bf72; background: #f8f0ce; color: #6e5608; }
.col-time { font-family: var(--mono); font-size: 9px; color: var(--muted); white-space: nowrap; }
.board-open {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid var(--line-strong);
  font-size: 15px;
}
.board-open:hover { background: var(--ink); color: var(--lime); border-color: var(--ink); }

.board-grid-wrap {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  border-top: 1px solid var(--line-strong);
  padding-top: 16px;
}
.board-grid-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line-strong);
  background: var(--card);
  overflow: hidden;
  transition: transform 0.3s var(--ease), border-color 0.2s;
}
.board-grid-card:hover { transform: translateY(-3px); border-color: var(--ink); }
.board-grid-card .project-cover { aspect-ratio: 1.6 / 1; border: 0; border-bottom: 1px solid var(--line-strong); }
.bgc-body { padding: 13px 15px 15px; }
.bgc-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bgc-head strong { font-size: 16px; letter-spacing: -0.02em; font-weight: 500; }
.bgc-body p {
  margin-top: 7px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bgc-meta {
  display: flex;
  gap: 14px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.bgc-meta b { color: var(--ink); font-weight: 400; }

.board-rail {
  position: sticky;
  top: calc(var(--header-h) + 36px + 12px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.rail-card {
  border: 1px solid var(--line-strong);
  background: var(--card);
  padding: 16px;
}
.rail-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
.rail-head h3 { font-size: 15px; letter-spacing: -0.01em; font-weight: 500; }
.rail-head span { font-family: var(--mono); font-size: 8px; color: var(--muted); }
.rail-card > p { margin-top: 10px; color: var(--muted); font-size: 11px; line-height: 1.65; }
.rail-list { padding-top: 4px; }
.rail-empty {
  padding: 16px 0;
  font-family: var(--mono);
  font-size: 9px;
  color: var(--muted);
}
.rail-heat-row {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
}
.rail-heat-row:last-child { border-bottom: 0; }
.rail-rank { font-family: var(--mono); font-size: 9px; color: var(--muted-light); }
.rail-heat-copy { min-width: 0; }
.rail-heat-copy strong {
  display: block;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rail-heat-copy small { display: block; margin-top: 1px; font-family: var(--mono); font-size: 8px; color: var(--muted); }
.rail-audit {
  padding: 16px;
}
.rail-audit-head {
  align-items: center;
}
.rail-audit-title {
  display: flex;
  align-items: center;
  gap: 8px;
}
.rail-audit-shield {
  width: 18px;
  height: 18px;
  flex: none;
  color: var(--ink);
}
.rail-audit-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 14px;
}
.rail-audit-stats > div {
  border: 1px solid var(--line);
  padding: 9px 8px;
}
.rail-audit-stats strong {
  display: block;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -0.03em;
}
.rail-audit-stats span {
  font-family: var(--mono);
  font-size: 8px;
  color: var(--muted);
}
.rail-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 14px;
  font-family: var(--mono);
  font-size: 10px;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 2px;
}
.rail-card .button { margin-top: 14px; }

.skeleton-feature { height: 260px; border: 1px solid var(--line); }
.skeleton-board { height: 320px; border: 1px solid var(--line); }

@media (max-width: 1180px) {
  .board-hero { grid-template-columns: 1fr; gap: 26px; }
  .board-hero-stats { min-width: 0; grid-template-columns: repeat(4, 1fr); }
  .board-stat { border-bottom: 0; border-right: 1px solid var(--line); }
  .board-stat:nth-child(2n) { border-right: 1px solid var(--line); }
  .board-stat:last-child { border-right: 0; }
  .board-layout { grid-template-columns: 1fr; }
  .board-rail { position: static; display: grid; grid-template-columns: repeat(3, 1fr); }
  .board-grid-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .market-strip-label { display: none; }
  .board-hero-stats { grid-template-columns: repeat(2, 1fr); }
  .board-stat:nth-child(2n) { border-right: 0; }
  .board-stat:nth-child(n+3) { border-bottom: 1px solid var(--line); }
  .board-stat:last-child { border-bottom: 0; }
  .board-toolbar { flex-direction: column; align-items: stretch; }
  .board-tools { width: 100%; }
  .board-search { flex: 1; }
  .board-search input { width: 100%; }
  .featured-strip { grid-template-columns: 1fr; }
  .board-grid-wrap { grid-template-columns: 1fr; }
  .board-rail { grid-template-columns: 1fr; }
}


/* JS reveal */
.js .reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.js .reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Public security document */
.security-hero {
  padding-top: 70px;
  padding-bottom: 55px;
  border-bottom: 1px solid var(--ink);
}
.security-hero h1 {
  margin: 30px 0 24px;
  max-width: 920px;
  font-size: clamp(46px, 8vw, 108px);
  line-height: 0.92;
  letter-spacing: -0.065em;
  font-weight: 500;
}
.security-hero h1 .serif { font-weight: 400; }
.security-hero .rules-hero-foot { max-width: 780px; }
.security-lockup {
  display: block;
  width: min(360px, 70%);
  height: auto;
  margin: 26px 0 4px;
}
.security-body {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 58px;
  padding-top: 42px;
  padding-bottom: 100px;
}
.security-toc {
  position: sticky;
  top: 100px;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.security-toc span { margin-bottom: 7px; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.security-toc a { color: var(--muted); font-size: 10px; line-height: 1.5; }
.security-toc a:hover { color: var(--ink); }
.security-content { min-width: 0; }
.security-block { padding: 0 0 42px; margin-bottom: 34px; border-bottom: 1px solid var(--line); }
.security-block-head { display: flex; justify-content: space-between; gap: 22px; align-items: baseline; margin-bottom: 16px; }
.security-block-head > span { color: var(--muted); font-family: var(--mono); font-size: 8px; white-space: nowrap; }
.security-block-head h2 { margin: 0; font-size: clamp(22px, 3vw, 34px); font-weight: 500; letter-spacing: -0.04em; }
.security-block > p { max-width: 780px; color: var(--muted); font-size: 11px; line-height: 1.75; }
.security-source-card {
  display: flex; justify-content: space-between; gap: 20px; align-items: center;
  margin-top: 20px; padding: 16px; border: 1px solid var(--ink); background: var(--paper-soft, #ebe9df);
}
.security-source-copy { display: flex; flex-direction: column; gap: 6px; }
.security-source-copy span { color: var(--muted); font-family: var(--mono); font-size: 8px; }
.security-source-copy strong { font-size: 16px; font-weight: 500; }
.security-source-copy small { color: var(--muted); font-size: 9px; line-height: 1.6; }
.security-source-actions { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.security-source-actions code { color: var(--muted); font-size: 8px; }
.security-facts, .security-secret-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.security-facts article, .security-secret-grid article { padding: 13px; border: 1px solid var(--line); }
.security-facts span { color: var(--muted); font-family: var(--mono); font-size: 8px; }
.security-facts h3, .security-secret-grid h3 { margin: 8px 0 5px; font-size: 13px; font-weight: 500; }
.security-facts p, .security-secret-grid p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.65; }
.security-table-wrap { overflow-x: auto; margin-top: 16px; border: 1px solid var(--line); }
.security-table { width: 100%; min-width: 620px; border-collapse: collapse; }
.security-table th { padding: 8px 10px; border-bottom: 1px solid var(--ink); color: var(--muted); font-family: var(--mono); font-size: 8px; text-align: left; }
.security-table td { padding: 11px 10px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 9px; vertical-align: top; }
.security-table tr:last-child td { border-bottom: 0; }
.security-table td strong { display: block; color: var(--ink); font-size: 11px; font-weight: 500; }
.security-table td small { display: block; margin-top: 4px; max-width: 290px; color: var(--muted-light); line-height: 1.55; }
.security-table td code { color: var(--ink); font-size: 9px; word-break: break-all; }
.security-query { color: var(--ink); border-bottom: 1px solid currentColor; font-family: var(--mono); font-size: 9px; white-space: nowrap; }
.security-status { color: var(--ink); font-family: var(--mono); font-size: 8px; text-transform: uppercase; }
.security-warning { margin-top: 18px; padding: 12px; border: 1px dashed #9d4b43; color: #7d4a42; font-size: 10px; line-height: 1.7; }
.security-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
@media (max-width: 860px) {
  .security-body { grid-template-columns: 1fr; gap: 22px; }
  .security-toc { position: static; flex-direction: row; flex-wrap: wrap; }
  .security-toc span { width: 100%; }
  .security-source-card { flex-direction: column; align-items: flex-start; }
  .security-source-actions { align-items: flex-start; }
  .security-facts, .security-secret-grid { grid-template-columns: 1fr; }
  .security-block-head { flex-direction: column; gap: 5px; }
}

/* AESES logo on dark admin surfaces */
.admin-login-brand .brand-mark, .admin-sidebar .brand-mark { background: var(--paper); border-radius: 50%; padding: 2px; }
.admin-login-brand .brand-word, .admin-sidebar .brand-word { letter-spacing: 0.035em; }

html[lang="en"] .brand-sup { display: none; }

.brand-abbr { display: none; }
html[lang="en"] .brand-full { display: none; }
html[lang="en"] .brand-abbr { display: inline; }

.security-en-summary { max-width: 760px; margin: 18px 0 0; color: var(--muted); font-family: var(--mono); font-size: 10px; line-height: 1.75; }
.security-en-summary strong { color: var(--ink); }

/* Free-mint state colors: green live, red ended, gray not on sale */
.free-bar-green i, .token-free-bar-green i { background: var(--lime); }
.free-bar-red i, .token-free-bar-red i { background: #d14a3c; }
.free-bar-idle i, .token-free-bar-idle i { background: #b9b7ab; }
.free-bar-red, .token-free-bar-red { background: #ead1cd; }
.free-bar-idle, .token-free-bar-idle { background: #e4e2d8; }
.mf-card-free-red b, .token-free-red strong { color: #b33428; }
.mf-card-free-idle b, .token-free-idle strong { color: var(--muted); }

.free-bar-indeterminate i, .token-free-bar-indeterminate i { width: 26% !important; animation: aesesFreeScan 1.9s ease-in-out infinite; }
@keyframes aesesFreeScan { 0% { transform: translateX(-120%); } 100% { transform: translateX(420%); } }

/* Ad review / official badge */
.hero-ad-official { display: inline-block; width: fit-content; margin-bottom: 7px; padding: 3px 7px; border: 1px solid rgba(255,255,255,.65); background: rgba(0,0,0,.35); color: #fff; font-family: var(--mono); font-size: 8px; letter-spacing: .08em; }
.admin-ad-order-row-review { align-items: start; grid-template-columns: 1.1fr 1.2fr 1.5fr; }
.admin-ad-order-controls { flex-direction: row !important; flex-wrap: wrap; align-items: center; gap: 6px !important; }
.admin-ad-order-controls label { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-size: 9px; }
.admin-ad-order-controls input { width: 58px; padding: 4px 5px; border: 1px solid var(--line); background: transparent; color: var(--ink); font-family: var(--mono); font-size: 9px; }
.admin-ad-order-row small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.ad-order-admin-note { grid-column: 1 / -1; padding-top: 6px; border-top: 1px dashed var(--line); }
.ad-order-admin-note b { color: var(--ink); font-weight: 500; }

.admin-ad-upload-label small { color: var(--muted-light); font-size: 8px; }
.admin-ad-upload-preview { margin-top: 10px; display: flex; align-items: flex-start; gap: 10px; }
.admin-ad-upload-preview img { display: block; width: min(420px, 100%); aspect-ratio: 5 / 2; object-fit: cover; border: 1px solid var(--line); background: var(--paper); }

.hero-ad-official-corner { position: absolute; z-index: 4; top: 10px; left: 10px; display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border: 1px solid rgba(255,255,255,.42); border-radius: 2px; background: linear-gradient(135deg, rgba(10,11,15,.72), rgba(10,11,15,.38)); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 8px 22px rgba(0,0,0,.2); color: #fff; font-family: var(--mono); font-size: 8px; letter-spacing: .08em; backdrop-filter: blur(9px); }
.hero-ad-official-corner::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 8px rgba(202,255,72,.8); }

/* --------------------------------------------------------------------------
   Mobile-first reading pass
   -------------------------------------------------------------------------- */
html, body { overflow-x: hidden; overflow-x: clip; }

@media (max-width: 960px) {
  .mobile-menu {
    top: calc(22px + var(--header-h));
    inset: calc(22px + var(--header-h)) 0 0;
  }
  .mobile-menu .container {
    height: 100%;
    overflow-y: auto;
    padding-top: 18px;
    padding-bottom: 34px;
  }
  .mobile-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    font-family: var(--mono);
    font-size: 9px;
    letter-spacing: .08em;
  }
  .mobile-menu-head button {
    border: 1px solid var(--line);
    background: transparent;
    padding: 4px 8px;
    color: var(--ink);
    font: inherit;
    cursor: pointer;
  }
  .mobile-menu a {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 15px 0;
    border-bottom: 1px solid var(--line);
    font-size: 20px;
    letter-spacing: -.035em;
  }
  .mobile-menu a small {
    color: var(--muted);
    font-family: var(--mono);
    font-size: 8px;
    letter-spacing: 0;
  }
  .mobile-menu a.active span { border-bottom: 1px solid var(--ink); }
  .mobile-menu-actions { display: grid; gap: 8px; margin-top: 20px; }
  .mobile-menu-note {
    margin-top: 24px;
    color: var(--muted);
    font-family: var(--mono);
    font-size: 9px;
    line-height: 1.7;
  }
  .mobile-menu-open { overflow: hidden; }
}

@media (max-width: 600px) {
  :root {
    --header-h: 56px;
    --gutter: 16px;
  }
  .header-topline .container { height: 20px; }
  .header-topline { font-size: 7px; }
  .header-inner { gap: 6px; height: var(--header-h); }
  .brand { gap: 7px; min-width: 0; }
  .brand-mark { width: 30px; height: 30px; flex-basis: 30px; }
  .brand-word { font-size: 13px; letter-spacing: .045em; }
  .brand-sup { display: none; }
  .header-actions { gap: 4px; min-width: 0; }
  .lang-switch button { padding: 5px 6px; font-size: 8px; }
  .header-actions .login-wrap .wallet-button { min-height: 30px; padding: 5px 7px; font-size: 8px; }
  .wallet-button .wallet-dot { width: 5px; height: 5px; }
  .mobile-toggle { width: 30px; height: 30px; margin-left: auto; flex: 0 0 30px; }
  .mobile-toggle span { left: 8px; top: 14px; width: 14px; }
  .mobile-toggle span::before { top: -5px; }
  .mobile-toggle span::after { top: 5px; }

  .hero-ad-carousel {
    --ad-height: 156px;
    min-height: 150px;
  }
  .hero-ad-slide img { object-fit: contain; background: #0b0c10; }
  .hero-ad-copy { right: 9px; bottom: 9px; left: 9px; max-width: calc(100% - 18px); padding: 7px 8px; }
  .hero-ad-copy strong { font-size: 11px; -webkit-line-clamp: 2; }
  .hero-ad-slide.ad-title-long .hero-ad-copy strong { font-size: 10px; }
  .hero-ad-copy span { font-size: 7px; margin-top: 3px; }
  .hero-ad-official-corner { top: 7px; left: 7px; padding: 3px 6px; font-size: 7px; }
  .hero-ad-disclaimer, .hero-ad-label { top: 7px; font-size: 7px; }
  .ad-crystal-b, .ad-crystal-d { display: none; }
  .ad-crystal-a { width: 24px; height: 38px; }
  .ad-crystal-c { width: 18px; height: 30px; }

  .board-hero { grid-template-columns: 1fr; gap: 20px; padding-top: 18px; padding-bottom: 20px; }
  .board-hero h1 { margin-top: 11px; font-size: 48px; }
  .board-hero p { margin-top: 11px; font-size: 12px; line-height: 1.65; }
  .board-hero-actions { margin-top: 16px; gap: 7px; }
  .board-hero-stats { min-width: 0; width: 100%; }
  .board-stat { padding: 12px 12px 13px; }
  .board-stat strong { font-size: 23px; }
  .board-hero-actions .button { flex: 1 1 auto; justify-content: center; }

  .board-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .board-tabs::-webkit-scrollbar { display: none; }
  .board-tabs button { flex: 0 0 auto; padding: 8px 11px; font-size: 12px; }
  .board-tools { gap: 8px; }
  .board-search { flex: 1 1 100%; }
  .board-search input { width: 100%; }

  .feed-section, .hot-section { margin-top: 26px; }
  .section-heading h2 { font-size: 34px; }
  .mf-card-title strong { font-size: 12px; }
  .project-grid { grid-template-columns: 1fr; gap: 12px; }
  .project-card h3 { font-size: 22px; }

  .project-hero { gap: 22px; }
  .project-hero-cover { max-width: none; }
  .project-hero-cover .project-cover { aspect-ratio: 1 / 1; }
  .project-head h1 { font-size: 42px; letter-spacing: -.055em; }
  .project-head-intro { margin-top: 14px; font-size: 15px; line-height: 1.65; }
  .token-socials { gap: 5px; }
  .token-socials a, .token-socials button { min-width: 30px; min-height: 30px; padding: 6px; font-size: 8px; }
  .token-intro { margin-top: 14px; font-size: 13px; line-height: 1.7; }
  .token-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .token-metric { padding: 8px 9px; }
  .token-metric span { font-size: 7px; }
  .token-metric strong { font-size: 12px; }
  .token-bottom { gap: 10px; }
  .token-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .token-contract { width: 100%; word-break: break-all; font-size: 8px; }
  .token-actions .button { width: 100%; justify-content: center; }
  .token-free-progress { grid-template-columns: auto 1fr; gap: 6px 8px; padding: 7px 8px; }
  .token-free-progress small { display: none; }
  .token-free-progress strong { grid-column: 2; text-align: left; font-size: 11px; }

  .auth-gate h1, .desk-head h1, .section-heading h1 { font-size: 40px; line-height: 1; }
  .auth-gate p { font-size: 13px; line-height: 1.7; }
  .auth-gate-actions { align-items: stretch; flex-direction: column; }
  .auth-gate-actions .button { justify-content: center; }
  .security-hero h1 { font-size: 40px; }
  .security-lockup { width: min(260px, 72%); }
  .security-body { gap: 18px; }
  .security-table { min-width: 560px; }
  .footer-cols { flex-direction: column; gap: 20px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
}

@media (max-width: 380px) {
  .brand-word { font-size: 12px; }
  .lang-switch button { padding: 4px 5px; }
  .hero-ad-carousel { --ad-height: 144px; min-height: 138px; }
  .board-hero h1 { font-size: 42px; }
  .project-head h1 { font-size: 36px; }
}

@media (max-width: 960px) {
  .mobile-menu { z-index: 150; top: calc(21px + var(--header-h)); inset: calc(21px + var(--header-h)) 0 0; }
  .mobile-menu-open .market-strip { visibility: hidden; }
  .mobile-menu-actions .button { width: 100%; justify-content: space-between; }
}

@media (max-width: 600px) {
  .board-stat { min-height: 0; padding: 9px 10px 10px; }
  .board-stat strong { font-size: 21px; }
  .board-stat small { margin-top: 4px; font-size: 7px; line-height: 1.35; }
  .board-stat.compact { min-height: 0; }
  .mobile-toggle span { left: 7px; top: 14px; width: 16px; }
  .mobile-toggle span::before { top: -4px; }
  .mobile-toggle span::after { top: 4px; }
}

.mobile-toggle svg { display: block; width: 16px; height: 16px; margin: auto; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: square; }
.mobile-toggle[aria-expanded='true'] svg { transform: rotate(90deg); }
.mobile-toggle svg { transition: transform .22s ease; }

@media (max-width: 600px) {
  .board-hero-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); min-width: 0; }
  .board-stat { min-height: 0; padding: 8px 6px 9px; border-bottom: 0; }
  .board-stat:nth-child(2n) { border-right: 1px solid var(--line); }
  .board-stat:nth-child(4n) { border-right: 0; }
  .board-stat > span { font-size: 6.5px; letter-spacing: .03em; }
  .board-stat strong { margin-top: 5px; font-size: 18px; }
  .board-stat strong sup { font-size: 7px; }
  .board-stat small { padding-top: 3px; font-size: 6.5px; line-height: 1.3; }
}

@media (min-width: 961px) {
  .mobile-menu { display: none !important; }
  body.mobile-menu-open { overflow: auto; }
}
@media (max-width: 960px) {
  .mobile-menu .container { padding-bottom: calc(34px + env(safe-area-inset-bottom)); }
}

@media (max-width: 960px) {
  .login-menu { top: calc(21px + var(--header-h)) !important; }
}

@media (max-width: 720px) {
  .rules-body, .rules-content, .rules-block { min-width: 0; }
  .rules-content { width: 100%; }
  .table-wrap { display: block; width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* Emotion trench */
.sentiment-trench {
  margin: 18px 0 24px;
  border: 1px solid var(--ink);
  background:
    radial-gradient(circle at 92% 4%, rgba(202, 255, 72, 0.12), transparent 28%),
    radial-gradient(circle at 4% 96%, rgba(255, 108, 92, 0.1), transparent 30%),
    #101117;
  color: #f2f0e9;
}
.sentiment-trench[hidden] { display: none; }
.sentiment-trench-inner { padding: clamp(16px, 2.2vw, 24px); }
.sentiment-trench-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; }
.sentiment-trench-head .eyebrow { color: rgba(242, 240, 233, 0.58); }
.sentiment-trench-head h2 { margin: 8px 0 0; font-size: clamp(26px, 3vw, 40px); line-height: 1; letter-spacing: -0.055em; font-weight: 500; }
.sentiment-trench-head p { margin: 9px 0 0; color: rgba(242, 240, 233, 0.58); font-family: var(--mono); font-size: 9px; line-height: 1.65; }
.sentiment-live { min-width: 112px; padding: 10px 13px; border: 1px solid rgba(202, 255, 72, 0.45); background: rgba(202, 255, 72, 0.06); text-align: right; }
.sentiment-live strong { display: block; color: var(--lime); font-size: 35px; font-weight: 500; line-height: 1; letter-spacing: -0.06em; }
.sentiment-live span { display: block; margin-top: 5px; color: rgba(242, 240, 233, 0.68); font-family: var(--mono); font-size: 8px; }
.sentiment-basket-bar { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding: 10px 12px; border: 1px solid rgba(242, 240, 233, 0.18); background: rgba(255, 255, 255, 0.035); }
.sentiment-basket-icon { font-size: 24px; line-height: 1; filter: saturate(0.8); }
.sentiment-basket-copy { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.sentiment-basket-copy span { color: rgba(242, 240, 233, 0.55); font-family: var(--mono); font-size: 8px; }
.sentiment-basket-copy strong { color: #fff; font-size: 13px; font-weight: 500; }
.sentiment-basket-copy small { color: rgba(242, 240, 233, 0.55); font-family: var(--mono); font-size: 8px; line-height: 1.4; }
.sentiment-basket-rule { margin-left: auto; color: rgba(242, 240, 233, 0.55); font-family: var(--mono); font-size: 8px; line-height: 1.5; text-align: right; }
.sentiment-basket-rule span { color: rgba(242, 240, 233, 0.35); }
.sentiment-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; }
.sentiment-list { min-width: 0; border: 1px solid rgba(242, 240, 233, 0.16); }
.sentiment-red { border-top: 2px solid var(--lime); }
.sentiment-black { border-top: 2px solid #e15b4d; }
.sentiment-list-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 9px 11px; border-bottom: 1px solid rgba(242, 240, 233, 0.12); }
.sentiment-list-head h3 { display: flex; align-items: baseline; gap: 7px; margin: 0; font-size: 12px; font-weight: 500; }
.sentiment-list-head h3 span { color: rgba(242, 240, 233, 0.35); font-family: var(--mono); font-size: 7px; letter-spacing: .08em; }
.sentiment-list-head small { color: rgba(242, 240, 233, 0.4); font-family: var(--mono); font-size: 7px; }
.sentiment-list-body { max-height: 252px; overflow-y: auto; scrollbar-width: thin; }
.sentiment-row { display: grid; grid-template-columns: minmax(0, 1fr) 40px auto auto; align-items: center; gap: 8px; min-height: 38px; padding: 6px 9px; border-bottom: 1px solid rgba(242, 240, 233, 0.08); }
.sentiment-row:last-child { border-bottom: 0; }
.sentiment-row-name { display: flex; flex-direction: column; min-width: 0; gap: 1px; color: #f2f0e9; }
.sentiment-row-name span { overflow: hidden; font-family: var(--mono); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.sentiment-row-name small { overflow: hidden; color: rgba(242, 240, 233, 0.35); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.sentiment-row-score { color: rgba(242, 240, 233, 0.72); font-family: var(--mono); font-size: 13px; font-weight: 500; text-align: right; }
.sentiment-row-score.is-positive { color: var(--lime); }
.sentiment-row-score.is-negative { color: #ff7468; }
.sentiment-row-counts { display: inline-flex; gap: 5px; color: rgba(242, 240, 233, 0.55); font-family: var(--mono); font-size: 8px; white-space: nowrap; }
.sentiment-row-counts em { display: inline-flex; gap: 2px; font-style: normal; }
.sentiment-row-counts b { font-weight: 400; color: rgba(242, 240, 233, 0.8); }
.sentiment-row-actions { display: inline-flex; gap: 3px; }
.sentiment-row-actions button, .sentiment-gift-actions button { border: 1px solid rgba(242, 240, 233, 0.22); background: transparent; padding: 4px 5px; font-size: 11px; line-height: 1; cursor: pointer; }
.sentiment-row-actions button:hover, .sentiment-gift-actions button:hover { border-color: var(--lime); background: rgba(202, 255, 72, 0.1); }
.sentiment-row-actions button:disabled, .sentiment-gift-actions button:disabled { opacity: .32; cursor: not-allowed; }
.sentiment-all { margin-top: 14px; border: 1px solid rgba(242, 240, 233, 0.16); }
.sentiment-all-body { display: grid; grid-template-columns: 1fr 1fr; max-height: 240px; overflow-y: auto; }
.sentiment-all-body .sentiment-row:nth-child(2n) { border-left: 1px solid rgba(242, 240, 233, 0.08); }
.sentiment-empty, .sentiment-loading { padding: 14px 10px; color: rgba(242, 240, 233, 0.4); font-family: var(--mono); font-size: 8px; }
.sentiment-error { color: #ff8b82; font-family: var(--mono); font-size: 10px; }
.mf-card-sentiment { display: flex; align-items: center; gap: 7px; padding: 6px 8px; border-top: 1px solid var(--line); color: var(--muted); font-family: var(--mono); font-size: 8px; }
.mf-card-sentiment .sentiment-score-label { color: var(--ink); white-space: nowrap; }
.mf-card-sentiment b { font-weight: 500; }
.sentiment-count { white-space: nowrap; }
.sentiment-gift-actions { display: inline-flex; gap: 3px; margin-left: auto; }
.sentiment-gift-actions button { border-color: var(--line); color: var(--ink); padding: 3px 5px; font-family: var(--mono); font-size: 8px; }
.sentiment-fx { position: fixed; z-index: 220; width: 0; height: 0; pointer-events: none; }
.sentiment-fx-item { position: absolute; left: 0; top: 0; display: block; font-size: 30px; line-height: 1; filter: drop-shadow(0 5px 8px rgba(0,0,0,.28)); animation: sentimentThrow .82s cubic-bezier(.2,.75,.25,1) both; }
.sentiment-fx-egg .sentiment-fx-item { animation: sentimentEgg .8s cubic-bezier(.35,.7,.3,1) both; }
.sentiment-fx-splat { position: absolute; left: 0; top: 0; display: block; font-size: 42px; line-height: 1; animation: sentimentSplat .45s ease-out both; }
.sentiment-fx-delta { position: absolute; left: 16px; top: -16px; color: var(--lime); font-family: var(--mono); font-size: 13px; font-weight: 600; animation: sentimentDelta .9s ease-out both; }
.sentiment-fx-egg .sentiment-fx-delta { color: #ff7468; }
@keyframes sentimentThrow { 0% { transform: translate(110px, 90px) rotate(25deg) scale(.65); opacity: 0; } 22% { opacity: 1; } 100% { transform: translate(-22px, -24px) rotate(-15deg) scale(1); opacity: 0; } }
@keyframes sentimentEgg { 0% { transform: translate(72px, -95px) rotate(-18deg) scale(.6); opacity: 0; } 18% { opacity: 1; } 72% { transform: translate(-12px, -4px) rotate(8deg) scale(1); opacity: 1; } 100% { transform: translate(-12px, 0) rotate(8deg) scale(.7); opacity: 0; } }
@keyframes sentimentSplat { 0% { transform: scale(.25) rotate(-22deg); opacity: 0; } 45% { transform: scale(1.25) rotate(4deg); opacity: 1; } 100% { transform: scale(1) rotate(0); opacity: .82; } }
@keyframes sentimentDelta { 0% { transform: translateY(6px); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(-30px); opacity: 0; } }
@media (max-width: 720px) {
  .sentiment-trench { margin: 12px 0 18px; }
  .sentiment-trench-inner { padding: 13px; }
  .sentiment-trench-head { gap: 10px; }
  .sentiment-trench-head h2 { font-size: 27px; }
  .sentiment-trench-head p { font-size: 7.5px; }
  .sentiment-live { min-width: 78px; padding: 7px 8px; }
  .sentiment-live strong { font-size: 27px; }
  .sentiment-live span { font-size: 7px; }
  .sentiment-basket-bar { gap: 8px; margin-top: 12px; padding: 8px; }
  .sentiment-basket-icon { font-size: 19px; }
  .sentiment-basket-copy strong { font-size: 11px; }
  .sentiment-basket-copy small { font-size: 7px; }
  .sentiment-basket-rule { font-size: 7px; }
  .sentiment-lists { grid-template-columns: 1fr; gap: 9px; margin-top: 10px; }
  .sentiment-list-body { max-height: 196px; }
  .sentiment-row { grid-template-columns: minmax(0, 1fr) 34px auto auto; gap: 5px; padding: 5px 7px; }
  .sentiment-row-name span { font-size: 9px; }
  .sentiment-row-counts { font-size: 7px; }
  .sentiment-row-actions button { padding: 4px; font-size: 10px; }
  .sentiment-all { margin-top: 10px; }
  .sentiment-all-body { grid-template-columns: 1fr; max-height: 210px; }
  .sentiment-all-body .sentiment-row:nth-child(2n) { border-left: 0; }
  .mf-card-sentiment { font-size: 7.5px; gap: 5px; padding: 6px; }
  .sentiment-gift-actions { gap: 2px; }
  .sentiment-gift-actions button { font-size: 7px; padding: 3px 4px; }
}

.admin-sentiment-row { grid-template-columns: 1fr 1fr 1fr 1fr; }
.sentiment-live small { display: block; margin-top: 4px; color: rgba(242,240,233,.45); font-family: var(--mono); font-size: 7px; line-height: 1.4; }
@media (max-width: 720px) { .admin-sentiment-row { grid-template-columns: 1fr 1fr; } }

/* Standalone emotion trench page */
.sentiment-hero { padding-top: clamp(28px, 5vw, 58px); padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.sentiment-hero h1 { margin: 16px 0 0; max-width: 900px; font-size: clamp(46px, 7vw, 92px); line-height: .9; letter-spacing: -.065em; font-weight: 500; }
.sentiment-hero h1 .serif { font-weight: 400; font-style: italic; }
.sentiment-hero p { max-width: 660px; margin-top: 16px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.sentiment-page { padding-top: 20px; padding-bottom: 80px; }
.sentiment-page .sentiment-trench { margin-top: 0; }
.sentiment-projects { margin-top: 26px; }
.sentiment-projects-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; padding-bottom: 10px; border-bottom: 1px solid var(--ink); }
.sentiment-projects-head .eyebrow { color: var(--muted); }
.sentiment-projects-head h2 { margin: 6px 0 0; font-size: clamp(28px, 3.4vw, 42px); letter-spacing: -.045em; font-weight: 500; }
.sentiment-projects-head > span { color: var(--muted); font-family: var(--mono); font-size: 9px; }
.sentiment-card-grid { margin-top: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sentiment-card-grid .mf-card-link { display: flex; flex-direction: column; gap: 0; padding: 0; }
.sentiment-card-grid .mf-card-thumb { width: 100%; height: auto; aspect-ratio: 1 / 1; border: 0; border-bottom: 1px solid var(--ink); }
.sentiment-card-grid .mf-card-body { padding: 8px 9px 7px; }
.sentiment-card-grid .mf-card-summary { -webkit-line-clamp: 3; }
.sentiment-card-grid .mf-card-sentiment { flex-wrap: wrap; }
.sentiment-all-head { gap: 10px; }
.sentiment-search { display: inline-flex; align-items: center; gap: 4px; min-width: 0; border: 1px solid rgba(242,240,233,.18); padding: 3px 6px; }
.sentiment-search input { width: 150px; min-width: 0; border: 0; outline: 0; background: transparent; color: #f2f0e9; font-family: var(--mono); font-size: 8px; }
.sentiment-search input::placeholder { color: rgba(242,240,233,.35); }
.sentiment-search span { color: rgba(242,240,233,.45); font-family: var(--mono); font-size: 10px; }
.sentiment-live small { display: block; margin-top: 4px; color: rgba(242,240,233,.45); font-family: var(--mono); font-size: 7px; line-height: 1.4; }
.token-sentiment-top { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin-top: 14px; padding: 8px 10px; border: 1px solid var(--line); color: var(--muted); font-family: var(--mono); font-size: 9px; }
.token-sentiment-top b { color: var(--ink); font-weight: 500; }
.token-sentiment-top a { margin-left: auto; color: var(--ink); border-bottom: 1px solid currentColor; }
@media (max-width: 960px) {
  .sentiment-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .sentiment-hero { padding-top: 22px; padding-bottom: 18px; }
  .sentiment-hero h1 { font-size: 44px; }
  .sentiment-hero p { font-size: 12px; }
  .sentiment-page { padding-top: 12px; padding-bottom: 56px; }
  .sentiment-projects { margin-top: 18px; }
  .sentiment-projects-head h2 { font-size: 29px; }
  .sentiment-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .sentiment-card-grid .mf-card-body { padding: 6px 7px; }
  .sentiment-card-grid .mf-card-title strong { font-size: 11px; }
  .sentiment-card-grid .mf-card-summary { font-size: 8px; -webkit-line-clamp: 2; }
  .sentiment-card-grid .mf-card-metrics { margin-top: 5px; }
  .sentiment-card-grid .mf-card-metrics small { font-size: 6px; }
  .sentiment-card-grid .mf-card-metrics b { font-size: 8px; }
  .sentiment-card-grid .mf-card-market { font-size: 7px; flex-direction: column; gap: 1px; }
  .sentiment-card-grid .mf-card-sentiment { padding: 5px; gap: 3px; font-size: 7px; }
  .sentiment-card-grid .sentiment-gift-actions { width: 100%; margin-left: 0; }
  .sentiment-card-grid .sentiment-gift-actions button { flex: 1; }
  .sentiment-all-head { flex-wrap: wrap; }
  .sentiment-search { width: 100%; }
  .sentiment-search input { width: 100%; }
  .sentiment-search { order: 3; }
  .sentiment-all-head small { margin-left: auto; }
  .token-sentiment-top { font-size: 8px; gap: 7px 10px; }
  .token-sentiment-top a { margin-left: 0; }
}

.page-sentiment .sentiment-trench-head > div:first-child { display: none; }
.page-sentiment .sentiment-trench-head { justify-content: flex-end; }

.mf-card-sentiment.is-readonly { justify-content: flex-start; color: var(--muted); }
.mf-card-sentiment.is-readonly .sentiment-score-label { margin-right: auto; }

.board-tabs a { display: inline-flex; align-items: center; border: 1px solid transparent; padding: 9px 14px; color: var(--ink-soft); font-size: 13px; font-weight: 500; line-height: 1.2; }
.board-tabs a:hover { color: var(--ink); border-color: var(--line); }
.board-tabs a span { display: none; }
@media (max-width: 600px) { .board-tabs a { flex: 0 0 auto; padding: 8px 11px; font-size: 12px; } }

.sentiment-all-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: auto; max-height: none; overflow: visible; padding: 10px; border-top: 0; gap: 10px; }
.sentiment-all-cards .sentiment-row { display: none; }
.sentiment-all-cards .mf-card { background: var(--paper); }
@media (max-width: 960px) { .sentiment-all-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) { .sentiment-all-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 7px; gap: 7px; } }

@media (max-width: 720px) { .sentiment-all-cards { padding: 8px 0 0; gap: 8px; } }

/* Horizontal cards inside ALL TOKENS */
.sentiment-all-cards {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px !important;
  padding: 10px 0 0 !important;
}
.sentiment-all-cards .mf-card-link {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
  padding: 0;
}
.sentiment-all-cards .mf-card-thumb {
  width: 100%;
  height: 100%;
  min-height: 170px;
  aspect-ratio: auto;
  border: 0;
  border-right: 1px solid var(--ink);
}
.sentiment-all-cards .mf-card-body {
  min-height: 170px;
  padding: 11px 13px 9px;
}
.sentiment-all-cards .mf-card-summary { -webkit-line-clamp: 2; max-width: 760px; }
.sentiment-all-cards .mf-card-metrics { max-width: 520px; }
.sentiment-all-cards .mf-card-sentiment { padding: 6px 10px; }
@media (max-width: 720px) {
  .sentiment-all-cards {
    gap: 7px !important;
    padding: 8px 0 0 !important;
  }
  .sentiment-all-cards .mf-card-link {
    grid-template-columns: 104px minmax(0, 1fr);
  }
  .sentiment-all-cards .mf-card-thumb {
    min-height: 128px;
  }
  .sentiment-all-cards .mf-card-body {
    min-height: 128px;
    padding: 8px 9px 7px;
  }
  .sentiment-all-cards .mf-card-summary { -webkit-line-clamp: 2; font-size: 8px; }
  .sentiment-all-cards .mf-card-metrics { margin-top: 5px; }
  .sentiment-all-cards .mf-card-title strong { font-size: 12px; }
  .sentiment-all-cards .mf-card-sentiment { padding: 5px 8px; }
}

/* Compact ALL TOKENS rows, full cards only for RED / BLACK leaderboards */
.sentiment-leaderboard-cards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  max-height: 620px;
  padding: 8px;
  overflow-y: auto;
}
.sentiment-leaderboard-cards .mf-card { min-width: 0; }
.sentiment-leaderboard-cards .mf-card-link {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
  padding: 0;
}
.sentiment-leaderboard-cards .mf-card-thumb {
  width: 100%;
  height: 100%;
  min-height: 128px;
  border: 0;
  border-right: 1px solid var(--ink);
}
.sentiment-leaderboard-cards .mf-card-body { min-height: 128px; padding: 9px 10px 7px; }
.sentiment-leaderboard-cards .mf-card-summary { -webkit-line-clamp: 2; font-size: 10px; }
.sentiment-leaderboard-cards .mf-card-metrics { max-width: none; }
.sentiment-leaderboard-cards .mf-card-sentiment { flex-wrap: wrap; }
@media (max-width: 720px) {
  .sentiment-leaderboard-cards { max-height: 460px; gap: 7px; padding: 6px; }
  .sentiment-leaderboard-cards .mf-card-link { grid-template-columns: 96px minmax(0, 1fr); }
  .sentiment-leaderboard-cards .mf-card-thumb { min-height: 118px; }
  .sentiment-leaderboard-cards .mf-card-body { min-height: 118px; padding: 7px 8px; }
  .sentiment-leaderboard-cards .mf-card-summary { font-size: 8px; }
}

.sentiment-row-rank { margin-right: 4px; color: rgba(242,240,233,.38); font-family: var(--mono); font-size: 8px; font-style: normal; }
.sentiment-row-name small { color: rgba(242,240,233,.32); }
.sentiment-all-head small { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 720px) { .sentiment-all-head small { max-width: 130px; font-size: 7px; } .sentiment-row-rank { font-size: 7px; margin-right: 2px; } }

/* Iridescent gilded brand text */
.sentiment-gilded {
  display: inline-block !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  background-image: linear-gradient(100deg, #9a641c 0%, #f1c65a 16%, #fff6c4 30%, #d79a2c 44%, #79dfc2 57%, #8bbcff 69%, #f3a6d8 82%, #f1c65a 100%);
  background-size: 240% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  filter: drop-shadow(0 1px 0 rgba(120, 70, 0, .18)) drop-shadow(0 0 5px rgba(255, 205, 80, .28));
  font-weight: 600;
  animation: aesesGildedFlow 6s linear infinite;
}
@keyframes aesesGildedFlow {
  0% { background-position: 0% 50%; }
  100% { background-position: 240% 50%; }
}
.board-tabs a .sentiment-gilded { display: inline-block !important; }
.mobile-menu a .sentiment-gilded { display: inline-block !important; }
@media (prefers-reduced-motion: reduce) {
  .sentiment-gilded { animation: none; }
}

.sentiment-gilded { background-image: linear-gradient(100deg, #704108 0%, #c9891b 14%, #fff1a6 28%, #b87310 42%, #7ef4db 56%, #6caeff 69%, #ff9bd3 82%, #d39a24 93%, #704108 100%) !important; font-weight: 700; filter: drop-shadow(0 1px 0 rgba(80,45,0,.42)) drop-shadow(0 0 5px rgba(255,207,80,.34)); }

/* Basket market */
.sentiment-market-entry {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(180, 255, 74, .35);
  background: linear-gradient(100deg, rgba(180,255,74,.08), rgba(242,240,233,.03));
  color: #f2f0e9;
  text-decoration: none;
}
.sentiment-market-entry:hover { border-color: rgba(180,255,74,.7); background: linear-gradient(100deg, rgba(180,255,74,.14), rgba(242,240,233,.05)); }
.sentiment-market-icon { font-size: 22px; }
.sentiment-market-copy { display: grid; gap: 2px; min-width: 0; }
.sentiment-market-copy small { color: rgba(242,240,233,.45); font-family: var(--mono); font-size: 7px; letter-spacing: .08em; }
.sentiment-market-copy strong { font-size: 15px; font-weight: 600; }
.sentiment-market-copy em { color: rgba(242,240,233,.5); font-size: 9px; font-style: normal; }
.sentiment-market-go { color: #b4ff4a; font-family: var(--mono); font-size: 9px; white-space: nowrap; }
.market-hero { padding-top: clamp(28px, 5vw, 58px); padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.market-hero h1 { margin: 16px 0 0; max-width: 980px; font-size: clamp(46px, 7vw, 92px); line-height: .9; letter-spacing: -.065em; font-weight: 500; }
.market-hero h1 .serif { font-weight: 400; font-style: italic; }
.market-hero p { max-width: 720px; margin-top: 16px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.market-hero-actions { display: flex; gap: 8px; margin-top: 18px; flex-wrap: wrap; }
.market-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 20px; background: var(--line); border: 1px solid var(--line); }
.market-stats article { padding: 14px; background: var(--paper); }
.market-stats small { display: block; color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: .06em; }
.market-stats strong { display: block; margin-top: 6px; font-size: clamp(22px, 2.5vw, 32px); letter-spacing: -.04em; font-weight: 500; }
.market-stats span { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }
.market-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 26px; padding-top: 28px; padding-bottom: 80px; align-items: start; }
.market-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--ink); }
.market-head h2, .market-sell-head h2 { margin: 6px 0 0; font-size: 30px; letter-spacing: -.045em; font-weight: 500; }
.market-head > span { color: var(--muted); font-family: var(--mono); font-size: 9px; }
.market-list { display: grid; gap: 0; border-bottom: 1px solid var(--line); }
.market-listing { display: grid; grid-template-columns: 34px minmax(0, 1fr) 120px 120px 92px; gap: 10px; align-items: center; padding: 12px 8px; border-bottom: 1px solid var(--line); }
.market-listing:hover { background: rgba(0,0,0,.025); }
.market-listing-rank { color: var(--muted); font-family: var(--mono); font-size: 9px; }
.market-listing-title { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.market-listing-title strong { font-size: 15px; font-weight: 500; }
.market-listing-title span { color: var(--muted); font-family: var(--mono); font-size: 8px; }
.market-listing-meta { display: flex; gap: 10px; margin-top: 3px; color: var(--muted); font-size: 8px; }
.market-listing-price small, .market-listing-total small { display: block; color: var(--muted); font-family: var(--mono); font-size: 7px; }
.market-listing-price strong { display: block; margin-top: 3px; color: #8a5a00; font-size: 15px; font-weight: 600; }
.market-listing-total strong { display: block; margin-top: 3px; font-size: 12px; font-weight: 500; }
.market-listing-actions { display: flex; justify-content: flex-end; }
.market-listing-actions .button { padding: 7px 10px; font-size: 9px; }
.market-sell-card, .market-rule-card { border: 1px solid var(--ink); padding: 16px; background: var(--paper); }
.market-sell-balance { margin-top: 14px; padding: 10px; border: 1px solid var(--line); background: rgba(0,0,0,.025); }
.market-sell-balance span { display: block; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.market-sell-balance strong { display: block; margin-top: 3px; font-size: 28px; font-weight: 500; }
.market-sell-balance small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.market-field { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 8px; margin-top: 12px; }
.market-field > span { grid-column: 1 / -1; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.market-field input { width: 100%; min-width: 0; border: 1px solid var(--line); padding: 9px; font-family: var(--mono); font-size: 13px; background: transparent; }
.market-field em { color: var(--muted); font-family: var(--mono); font-size: 8px; font-style: normal; }
.market-calc { display: grid; gap: 5px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.market-calc div { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 9px; }
.market-calc b { color: var(--ink); font-family: var(--mono); font-weight: 500; }
.market-sell-submit { width: 100%; margin-top: 14px; }
.market-note { margin-top: 9px; color: var(--muted); font-size: 9px; line-height: 1.6; }
.market-rule-card { margin-top: 14px; }
.market-rule-card strong { font-size: 12px; font-weight: 600; }
.market-rule-card p { margin-top: 7px; color: var(--muted); font-size: 9px; line-height: 1.7; }
.market-empty, .market-loading { padding: 36px 12px; text-align: center; color: var(--muted); font-size: 11px; }
.market-empty { display: grid; gap: 4px; }
.market-empty strong { color: var(--ink); font-size: 14px; font-weight: 500; }
.market-modal { position: fixed; inset: 0; z-index: 500; display: grid; place-items: center; padding: 18px; }
.market-modal[hidden] { display: none; }
.market-modal-backdrop { position: absolute; inset: 0; background: rgba(10,10,8,.72); backdrop-filter: blur(5px); }
.market-modal-card { position: relative; width: min(520px, 100%); max-height: 90vh; overflow: auto; background: var(--paper); border: 1px solid var(--ink); padding: 22px; }
.market-modal-close { position: absolute; top: 8px; right: 10px; border: 0; background: transparent; font-size: 24px; cursor: pointer; }
.market-buy-summary { display: grid; gap: 7px; margin: 14px 0; padding: 12px; border: 1px solid var(--line); }
.market-buy-summary div { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 10px; }
.market-buy-summary b { color: var(--ink); font-family: var(--mono); font-weight: 500; }
.market-buy-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.market-buy-step { border: 1px solid var(--line); padding: 10px; display: grid; gap: 4px; }
.market-buy-step b { color: var(--muted); font-family: var(--mono); font-size: 8px; }
.market-buy-step span { font-size: 11px; }
.market-buy-step small { color: var(--muted); font-size: 8px; }
.market-buy-step.is-active { border-color: var(--ink); }
.market-buy-step.is-done { border-color: #8a5a00; background: rgba(180,255,74,.08); }
.market-buy-step.is-failed { border-color: #b33; }
.market-buy-confirm { width: 100%; }
@media (max-width: 900px) {
  .market-layout { grid-template-columns: 1fr; }
  .market-main { order: 2; }
  .market-side { order: 1; }
  .market-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-listing { grid-template-columns: 26px minmax(0, 1fr) 88px 76px; }
  .market-listing-total { display: none; }
}
@media (max-width: 600px) {
  .sentiment-market-entry { grid-template-columns: auto minmax(0, 1fr); padding: 10px; }
  .sentiment-market-go { grid-column: 2; }
  .market-hero h1 { font-size: 45px; }
  .market-hero p { font-size: 12px; }
  .market-stats { margin-top: 14px; }
  .market-stats article { padding: 10px; }
  .market-layout { padding-top: 18px; padding-bottom: 50px; gap: 18px; }
  .market-head h2, .market-sell-head h2 { font-size: 25px; }
  .market-head > span { display: none; }
  .market-listing { grid-template-columns: 22px minmax(0, 1fr) 78px; gap: 7px; }
  .market-listing-price { text-align: right; }
  .market-listing-actions { grid-column: 2 / -1; justify-content: flex-start; }
  .market-listing-total { display: none; }
  .market-sell-card, .market-rule-card { padding: 13px; }
  .market-buy-steps { grid-template-columns: 1fr; }
}

/* Red / black compact multi-card redesign */
.sentiment-leaderboard-cards {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  max-height: 720px;
  padding: 8px !important;
}
.sentiment-leader-card { display: flex; flex-direction: column; min-width: 0; background: var(--paper); border: 1px solid var(--ink); }
.slc-cover { position: relative; display: block; height: 112px; overflow: hidden; background: #141a5b; border-bottom: 1px solid var(--ink); }
.slc-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.slc-fallback { position: absolute; inset: 0; display: grid; place-items: center; color: #f2f0e9; font-family: var(--mono); font-size: 22px; letter-spacing: .08em; }
.slc-status { position: absolute; left: 6px; top: 6px; display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px; background: rgba(10,10,8,.86); color: #f2f0e9; font-family: var(--mono); font-size: 7px; letter-spacing: .04em; }
.slc-status i { width: 5px; height: 5px; border-radius: 50%; background: #b4ff4a; }
.sentiment-leader-card[data-status="upcoming"] .slc-status i { background: #ffd166; }
.sentiment-leader-card[data-status="ended"] .slc-status i, .sentiment-leader-card[data-status="soldout"] .slc-status i { background: #ff6b6b; }
.slc-sparks { position: absolute; right: 6px; top: 6px; display: flex; align-items: center; gap: 4px; padding: 3px 5px; background: rgba(10,10,8,.82); color: #ffd166; font-size: 9px; }
.slc-sparks small { color: #f2f0e9; font-family: var(--mono); font-size: 7px; }
.slc-body { display: flex; flex-direction: column; gap: 6px; padding: 8px 9px 7px; flex: 1; }
.slc-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; min-width: 0; }
.slc-title a { min-width: 0; color: var(--ink); text-decoration: none; }
.slc-title strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; line-height: 1.2; }
.slc-title small { display: block; margin-top: 2px; color: var(--muted); font-family: var(--mono); font-size: 7px; }
.slc-category { flex: 0 0 auto; max-width: 74px; overflow: hidden; color: var(--muted); font-family: var(--mono); font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }
.slc-summary { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 23px; }
.slc-data { display: grid; grid-template-columns: 1.1fr .8fr 1.2fr; gap: 4px; padding-top: 5px; border-top: 1px solid var(--line); }
.slc-data span { min-width: 0; }
.slc-data small { display: block; color: var(--muted); font-family: var(--mono); font-size: 6px; }
.slc-data b { display: block; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; font-weight: 500; }
.slc-data b em { font-style: normal; font-size: 8px; }
.slc-data .is-positive { color: #6b8e00; }
.slc-data .is-negative { color: #b33; }
.slc-actions { display: flex; align-items: center; justify-content: space-between; gap: 4px; margin-top: auto; padding-top: 5px; border-top: 1px solid var(--line); }
.slc-actions > span:first-child { display: flex; gap: 3px; min-width: 0; overflow: hidden; }
.slc-actions em { padding: 2px 4px; background: rgba(0,0,0,.06); color: var(--muted); font-family: var(--mono); font-size: 6px; font-style: normal; white-space: nowrap; }
.slc-actions .sentiment-gift-actions { flex: 0 0 auto; display: flex; gap: 3px; }
.slc-actions .sentiment-gift-actions button { border: 1px solid var(--line); background: transparent; padding: 3px 5px; font-size: 9px; cursor: pointer; }
.slc-actions .sentiment-gift-actions button:disabled { opacity: .4; }
@media (max-width: 720px) {
  .sentiment-leaderboard-cards { gap: 6px !important; padding: 6px !important; max-height: 560px; }
  .slc-cover { height: 86px; }
  .slc-body { padding: 6px; gap: 4px; }
  .slc-title strong { font-size: 11px; }
  .slc-title small { font-size: 6px; }
  .slc-category { max-width: 52px; font-size: 5px; }
  .slc-summary { font-size: 7px; min-height: 20px; }
  .slc-data { grid-template-columns: 1fr 1fr; gap: 3px; }
  .slc-data span:last-child { grid-column: 1 / -1; }
  .slc-data b { font-size: 8px; }
  .slc-data small { font-size: 5px; }
  .slc-actions em { font-size: 5px; }
  .slc-actions .sentiment-gift-actions button { padding: 2px 4px; font-size: 8px; }
}

/* Mobile leaderboard: compact two-column cards, no secondary noise */
@media (max-width: 720px) {
  .sentiment-list.is-empty .sentiment-list-body { max-height: 58px; min-height: 54px; }
  .sentiment-list.is-empty .sentiment-empty { padding: 16px 8px; }
  .sentiment-list-head { padding: 7px 8px; }
  .sentiment-list-head h3 { font-size: 12px; }
  .sentiment-list-head small { font-size: 7px; }
  .sentiment-leaderboard-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-height: 640px;
    gap: 6px !important;
    padding: 6px !important;
  }
  .sentiment-leader-card { border-color: rgba(242,240,233,.28); }
  .slc-cover { height: 76px; }
  .slc-body { padding: 5px 6px !important; gap: 3px !important; }
  .slc-title strong { font-size: 12px; }
  .slc-title small { font-size: 6px; }
  .slc-category { display: none; }
  .slc-summary { display: none; }
  .slc-data { grid-template-columns: 1fr 1fr !important; gap: 3px !important; padding-top: 4px; }
  .slc-data span:last-child { grid-column: 1 / -1; }
  .slc-data small { font-size: 5px; }
  .slc-data b { font-size: 9px; }
  .slc-actions { padding-top: 4px; }
  .slc-actions > span:first-child { display: none; }
  .slc-actions .sentiment-gift-actions { width: 100%; }
  .slc-actions .sentiment-gift-actions button { flex: 1; padding: 3px; font-size: 9px; }
  .slc-status { font-size: 6px; padding: 2px 4px; }
  .slc-sparks { font-size: 8px; padding: 2px 4px; }
  .slc-sparks small { font-size: 6px; }
}

/* Gilded text: fixed full-spectrum wash so no frame collapses to black/green */
.sentiment-gilded {
  background-image: linear-gradient(100deg, #c9891b 0%, #ffd766 13%, #fff3b0 26%, #e0a51e 39%, #7ef4db 53%, #6caeff 66%, #ff9bd3 79%, #f3c95c 91%, #c9891b 100%) !important;
  background-size: 100% 100% !important;
  background-position: 50% 50%;
  animation: aesesGildedPulse 4.8s ease-in-out infinite !important;
  filter: drop-shadow(0 1px 0 rgba(70, 38, 0, .5)) drop-shadow(0 0 6px rgba(255, 207, 80, .42)) !important;
  font-weight: 700;
}
@keyframes aesesGildedPulse {
  0%, 100% { filter: drop-shadow(0 1px 0 rgba(70, 38, 0, .5)) drop-shadow(0 0 4px rgba(255, 207, 80, .3)); }
  50% { filter: brightness(1.14) drop-shadow(0 1px 0 rgba(70, 38, 0, .45)) drop-shadow(0 0 9px rgba(255, 222, 120, .55)); }
}

/* Project message board */
.token-comments-jump { display: inline-flex; align-items: center; gap: 3px; color: var(--ink); border-bottom: 1px solid currentColor; font-family: var(--mono); font-size: 8px; text-decoration: none; }
.project-comments { margin-top: 54px; padding-top: 24px; border-top: 1px solid var(--ink); scroll-margin-top: calc(var(--header-h) + 30px); }
.comments-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.comments-head h2 { margin: 6px 0 0; font-size: clamp(30px, 4vw, 48px); letter-spacing: -.05em; font-weight: 500; }
.comments-head p { max-width: 760px; margin-top: 8px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.comments-count { color: var(--muted); font-family: var(--mono); font-size: 9px; white-space: nowrap; }
.comments-list { margin-top: 16px; border-top: 1px solid var(--line); }
.comment-item { padding: 14px 2px; border-bottom: 1px solid var(--line); }
.comment-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.comment-ai { max-width: 100%; color: var(--ink); font-family: var(--mono); font-size: 9px; overflow-wrap: anywhere; }
.comment-tag { padding: 2px 4px; background: rgba(0,0,0,.06); color: var(--muted); font-family: var(--mono); font-size: 6px; }
.comment-meta time { margin-left: auto; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.comment-item p { margin-top: 7px; color: var(--ink-soft); font-size: 13px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.comments-loading, .comments-empty { padding: 34px 8px; text-align: center; color: var(--muted); font-size: 10px; }
.comments-empty { display: grid; gap: 4px; }
.comments-empty strong { color: var(--ink); font-size: 14px; font-weight: 500; }
.comments-compose { margin-top: 18px; }
.comments-gate { padding: 18px; border: 1px solid var(--line); background: rgba(0,0,0,.02); }
.comments-gate strong { font-size: 14px; font-weight: 600; }
.comments-gate p { margin-top: 5px; color: var(--muted); font-size: 10px; }
.comments-gate small { display: block; margin-top: 4px; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.comments-gate .button { margin-top: 10px; }
.comment-form { border: 1px solid var(--ink); padding: 14px; }
.comment-form-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.comment-form-head strong { font-size: 11px; font-weight: 600; }
.comment-form-head span { color: var(--muted); font-family: var(--mono); font-size: 7px; overflow-wrap: anywhere; }
.comment-form textarea { width: 100%; min-height: 92px; margin-top: 10px; padding: 10px; resize: vertical; border: 1px solid var(--line); background: transparent; color: var(--ink); font-family: var(--body); font-size: 12px; line-height: 1.7; outline: none; }
.comment-form textarea:focus { border-color: var(--ink); }
.comment-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
.comment-form-foot small { color: var(--muted); font-size: 8px; }
.comment-form-foot .button { padding: 8px 12px; font-size: 9px; }
@media (max-width: 720px) {
  .project-comments { margin-top: 34px; padding-top: 18px; }
  .comments-head { align-items: flex-start; }
  .comments-head h2 { font-size: 30px; }
  .comments-head p { font-size: 10px; }
  .token-comments-jump { font-size: 7px; }
  .comment-item p { font-size: 12px; }
  .comment-form-foot { align-items: flex-start; flex-direction: column; }
  .comment-form-foot .button { width: 100%; }
}

.token-comments-jump { padding: 5px 7px; border: 1px solid var(--ink); font-size: 8px; letter-spacing: .03em; }
.token-comments-jump:hover { background: var(--ink); color: var(--paper); }

/* Basket rules page */
.basket-hero { padding-top: clamp(28px, 5vw, 58px); padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.basket-hero h1 { margin: 16px 0 0; max-width: 980px; font-size: clamp(46px, 7vw, 92px); line-height: .9; letter-spacing: -.065em; font-weight: 500; }
.basket-hero h1 .serif { font-weight: 400; font-style: italic; }
.basket-hero p { max-width: 690px; margin-top: 16px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.basket-hero-actions { display: flex; gap: 8px; margin-top: 18px; flex-wrap: wrap; }
.basket-live { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 20px; background: var(--line); border: 1px solid var(--line); }
.basket-live article { padding: 14px; background: var(--paper); }
.basket-live small { display: block; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.basket-live strong { display: block; margin-top: 5px; font-size: clamp(22px, 2.5vw, 31px); letter-spacing: -.04em; font-weight: 500; }
.basket-live span { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; }
.basket-rules { padding-top: 40px; padding-bottom: 40px; }
.basket-rules-head { max-width: 720px; }
.basket-rules-head h2 { margin: 6px 0 0; font-size: clamp(32px, 4vw, 52px); letter-spacing: -.055em; font-weight: 500; }
.basket-rules-head p { margin-top: 8px; color: var(--muted); font-size: 11px; }
.basket-rule-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 18px; background: var(--line); border: 1px solid var(--line); }
.basket-rule-grid article { min-height: 180px; padding: 18px; background: var(--paper); }
.basket-rule-grid b { color: var(--muted); font-family: var(--mono); font-size: 8px; font-weight: 400; }
.basket-rule-grid h3 { margin-top: 16px; font-size: 17px; letter-spacing: -.02em; font-weight: 500; }
.basket-rule-grid p { margin-top: 7px; color: var(--muted); font-size: 10px; line-height: 1.7; }
.basket-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 70px; padding: 24px; border: 1px solid var(--ink); background: var(--paper); }
.basket-cta h2 { margin: 6px 0 0; font-size: clamp(26px, 3vw, 40px); letter-spacing: -.045em; font-weight: 500; }
.basket-cta p { margin-top: 5px; color: var(--muted); font-size: 10px; }
.basket-cta > div:last-child { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 900px) {
  .basket-live { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .basket-rule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .basket-hero h1 { font-size: 45px; }
  .basket-hero p { font-size: 12px; }
  .basket-live { margin-top: 14px; }
  .basket-live article { padding: 10px; }
  .basket-rule-grid { grid-template-columns: 1fr; }
  .basket-rule-grid article { min-height: 0; padding: 14px; }
  .basket-rule-grid h3 { margin-top: 10px; font-size: 15px; }
  .basket-cta { align-items: flex-start; flex-direction: column; margin-bottom: 50px; padding: 16px; }
  .basket-cta > div:last-child { width: 100%; }
  .basket-cta .button { flex: 1; }
}

.market-public-rules { padding-top: 30px; padding-bottom: 72px; }
.market-rule-grid { margin-top: 16px; }
@media (max-width: 600px) { .market-public-rules { padding-top: 20px; padding-bottom: 50px; } }

/* Basket guard / anti-farm */
.market-guard-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 10px; padding: 9px 12px; border: 1px solid var(--line); color: var(--muted); font-family: var(--mono); font-size: 8px; }
.market-guard-strip b { color: var(--ink); font-weight: 500; }
.market-penalty { margin-top: 10px; padding: 12px; border: 1px solid #c98a16; background: rgba(255, 209, 102, .14); }
.market-penalty[data-level="banned"] { border-color: #b33; background: rgba(179, 51, 51, .09); }
.market-penalty[data-level="permanent"] { border-color: #111; background: rgba(0,0,0,.08); }
.market-penalty strong { display: block; font-size: 12px; font-weight: 600; }
.market-penalty span { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.6; }
.basket-guard-line { margin-top: 10px; color: var(--muted); font-family: var(--mono); font-size: 8px; line-height: 1.7; }
@media (max-width: 600px) { .market-guard-strip { font-size: 7px; gap: 5px 10px; } }

/* Daily prize tiers */
.prize-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 16px; border: 1px solid var(--line); background: var(--line); }
.prize-tiers > div { padding: 11px 12px; background: var(--paper); }
.prize-tiers span { display: block; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.prize-tiers strong { display: block; margin-top: 3px; font-size: 22px; font-weight: 500; letter-spacing: -.03em; }
.prize-tiers small { display: block; margin-top: 2px; color: var(--muted); font-size: 8px; }
.admin-daily-winners { margin: 10px 0; padding: 10px; border: 1px solid #c98a16; background: rgba(255,209,102,.1); }
.admin-daily-winners > strong { display: block; margin-bottom: 6px; font-size: 11px; }
.admin-daily-winners p { display: grid; gap: 2px; margin: 6px 0; padding-top: 6px; border-top: 1px solid rgba(0,0,0,.08); }
.admin-daily-winners span { color: var(--muted); font-family: var(--mono); font-size: 7px; }
.admin-daily-winners b { font-family: var(--mono); font-size: 9px; overflow-wrap: anywhere; }
.admin-daily-winners em { color: #8a5a00; font-size: 10px; font-style: normal; }
.admin-daily-winners small { color: var(--muted); font-size: 8px; overflow-wrap: anywhere; }
@media (max-width: 600px) { .prize-tiers { grid-template-columns: 1fr; } }

/* CALL feed */
.call-feed { display: grid; gap: 0; max-width: 860px; margin: 0 auto; border-top: 1px solid var(--line); }
.call-card { padding: 18px 4px 16px; border-bottom: 1px solid var(--line); background: var(--paper); }
.call-head { display: flex; align-items: center; gap: 9px; }
.call-avatar { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg, #dfe9ff, #f7e8b0 55%, #c7f5d8); color: var(--ink); font-family: var(--mono); font-size: 10px; font-weight: 600; }
.call-user { min-width: 0; display: grid; gap: 2px; }
.call-user strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; }
.call-user small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-family: var(--mono); font-size: 7px; }
.call-tag { margin-left: auto; padding: 3px 6px; border: 1px solid rgba(120,90,0,.35); color: #8a5a00; font-family: var(--mono); font-size: 7px; }
.call-copy { margin: 10px 0 12px; color: var(--ink); font-size: 15px; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.call-project { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px; border: 1px solid var(--line); background: #f7f5ef; color: var(--ink); text-decoration: none; }
.call-thumb { width: 58px; height: 58px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); background: #141a5b; }
.call-thumb img { width: 100%; height: 100%; object-fit: cover; }
.call-thumb em { color: #f2f0e9; font-family: var(--mono); font-size: 9px; font-style: normal; }
.call-project-body { display: grid; gap: 4px; min-width: 0; }
.call-project-title { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.call-project-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 600; }
.call-project-title small { color: var(--muted); font-family: var(--mono); font-size: 8px; }
.call-project-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.call-project-meta .status-badge { font-size: 7px; }
.call-project-arrow { color: var(--muted); font-size: 13px; }
.call-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.call-foot a { color: var(--ink); border-bottom: 1px solid currentColor; text-decoration: none; }
.call-loading { padding: 44px 10px; text-align: center; color: var(--muted); font-size: 11px; }
@media (max-width: 600px) {
  .call-card { padding: 14px 0; }
  .call-copy { font-size: 14px; }
  .call-project { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 8px; padding: 7px; }
  .call-thumb { width: 48px; height: 48px; }
  .call-project-title strong { font-size: 13px; }
  .call-foot { font-size: 7px; }
}

.hero-ad-carousel { transition: height .28s ease; }
.hero-ad-slide.is-ad-adapt img, .hero-ad-slide.is-ad-adapt.is-active img { object-fit: contain !important; transform: none !important; background: #0b0c10; }
.hero-ad-slide.is-ad-adapt { background: #0b0c10; }

/* Black bold type with an iridescent green light sweeping across */
.sentiment-gilded {
  background-image: linear-gradient(100deg, #050505 0%, #050505 22%, #0b5137 25%, #48ffa9 28%, #eafff3 30%, #48ffa9 32%, #0b5137 35%, #050505 40%, #050505 100%) !important;
  background-size: 200% 100% !important;
  background-position: 0% 50%;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  font-weight: 900 !important;
  letter-spacing: .015em;
  filter: drop-shadow(0 0 4px rgba(48, 255, 163, .28)) !important;
  animation: aesesGreenSweep 4.2s ease-in-out infinite alternate !important;
}
@keyframes aesesGreenSweep {
  0% { background-position: 0% 50%; }
  100% { background-position: 300% 50%; }
}
@media (prefers-reduced-motion: reduce) {
  .sentiment-gilded { animation: none !important; background-position: 50% 50%; }
}

@keyframes aesesGreenSweep { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } }

.mf-card-live { position: absolute; z-index: 3; left: 4px; bottom: 4px; display: inline-flex; align-items: center; gap: 3px; padding: 2px 5px 2px 4px; border: 1px solid rgba(255,255,255,.3); background: rgba(8,10,12,.72); color: #f4f2ec; font-family: var(--mono); font-size: 7px; line-height: 1; backdrop-filter: blur(4px); }
.mf-card-live svg { width: 11px; height: 11px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.mf-card-live b { font-weight: 500; }
.mf-card-live.is-live { color: #b4ff4a; border-color: rgba(180,255,74,.45); }
@media (max-width: 720px) { .mf-card-live { left: 3px; bottom: 3px; padding: 2px 4px; font-size: 6px; } .mf-card-live svg { width: 9px; height: 9px; } }

/* Internal-market cards (UnityTool-style dense radar row) */
.mf-card-internal { border-color: rgba(180, 255, 74, .45); }
.mf-internal-badge { display: inline-flex; align-items: center; padding: 2px 5px; border: 1px solid rgba(120, 160, 0, .35); background: rgba(180, 255, 74, .12); color: #526b00; font-family: var(--mono); font-size: 6px; letter-spacing: .03em; white-space: nowrap; }
.mf-internal-progress { display: grid; gap: 4px; margin-top: 7px; padding: 6px 7px; border: 1px solid rgba(0,0,0,.1); background: rgba(180,255,74,.06); }
.mf-internal-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.mf-internal-progress-head b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-family: var(--mono); font-size: 7px; font-weight: 500; }
.mf-internal-progress-head em { color: #526b00; font-family: var(--mono); font-size: 8px; font-style: normal; }
.mf-internal-bar { display: block; height: 4px; overflow: hidden; background: rgba(0,0,0,.1); }
.mf-internal-bar i { display: block; height: 100%; background: linear-gradient(90deg, #8ece00, #b4ff4a); }
.mf-internal-progress small { color: var(--muted); font-family: var(--mono); font-size: 6px; }
@media (max-width: 720px) {
  .mf-internal-progress { padding: 5px 6px; }
  .mf-internal-progress-head b { font-size: 6px; }
  .mf-internal-progress-head em { font-size: 7px; }
}

.mf-platform-logo { position: absolute; z-index: 4; right: 3px; bottom: 3px; display: inline-flex; align-items: center; gap: 2px; max-width: calc(100% - 34px); padding: 2px 4px 2px 2px; border: 1px solid rgba(255,255,255,.5); background: rgba(8,10,12,.82); color: #fff; font-family: var(--mono); font-size: 5px; line-height: 1; backdrop-filter: blur(4px); }
.mf-platform-logo img { display: block; width: 12px; height: 12px; object-fit: contain; border-radius: 2px; background: #fff; }
.mf-platform-logo em { font-style: normal; letter-spacing: .03em; }
.mf-platform-logo.platform-gang { border-color: rgba(196,168,255,.7); }
.mf-platform-logo.platform-flap { border-color: rgba(180,255,74,.7); }
.mf-platform-logo.platform-four { border-color: rgba(255,212,59,.8); }
@media (max-width: 720px) { .mf-platform-logo { right: 2px; bottom: 2px; padding: 1px 3px 1px 1px; font-size: 5px; } .mf-platform-logo img { width: 10px; height: 10px; } }

/* Real-time internal-market alert popup */
.internal-alert-pop { position: fixed; z-index: 620; left: 50%; bottom: 84px; width: min(460px, calc(100vw - 24px)); padding: 14px 16px 12px; transform: translate(-50%, 18px); opacity: 0; background: #14170f; border: 1px solid #b4ff4a; color: #f2f0e9; box-shadow: 0 16px 48px rgba(0,0,0,.32); transition: opacity .22s ease, transform .22s ease; }
.internal-alert-pop.is-in { opacity: 1; transform: translate(-50%, 0); }
.internal-alert-pop[data-level="red"] { border-color: #ff5a5a; background: #1a0f10; }
.internal-alert-close { position: absolute; top: 6px; right: 8px; border: 0; background: transparent; color: rgba(242,240,233,.6); font-size: 20px; cursor: pointer; }
.internal-alert-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-right: 18px; }
.internal-alert-head span { color: #b4ff4a; font-family: var(--mono); font-size: 8px; letter-spacing: .04em; }
.internal-alert-pop[data-level="red"] .internal-alert-head span { color: #ff6b6b; }
.internal-alert-head b { color: #fff; font-family: var(--mono); font-size: 10px; font-weight: 500; }
.internal-alert-pop > strong { display: block; margin-top: 7px; font-size: 14px; font-weight: 600; }
.internal-alert-pop p { display: grid; gap: 3px; margin: 6px 0 8px; color: rgba(242,240,233,.72); font-size: 9px; line-height: 1.55; }
.internal-alert-pop p span::before { content: "· "; color: #b4ff4a; }
.internal-alert-pop[data-level="red"] p span::before { color: #ff6b6b; }
.internal-alert-pop a { color: #f2f0e9; font-family: var(--mono); font-size: 8px; border-bottom: 1px solid currentColor; text-decoration: none; }
@media (max-width: 600px) { .internal-alert-pop { bottom: 12px; padding: 12px 13px 11px; } .internal-alert-pop > strong { font-size: 13px; } }

.board-panel-subline { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.board-panel-subline #board-count { margin-top: 0; }
.board-launched-filter { display: inline-flex; width: auto; margin-left: 6px; }
.board-launched-filter button { padding: 5px 8px; font-size: 8px; }
@media (max-width: 720px) { .board-panel-subline { gap: 7px; } .board-launched-filter { width: 100%; margin-left: 0; } .board-launched-filter button { flex: 1; } }

/* Agent Hot — GMGN-only ranking */
.agent-hot-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-top: 12px; }
.agent-hot-card { min-width: 0; border: 1px solid var(--line); background: var(--paper); }
.agent-hot-main { display: grid; grid-template-columns: 20px 42px minmax(0, 1fr) auto; grid-template-areas: "rank logo title score" "rank metrics metrics metrics" "foot foot foot foot"; gap: 6px 8px; padding: 10px; color: var(--ink); text-decoration: none; }
.agent-hot-card:hover { border-color: var(--ink); }
.agent-hot-rank { grid-area: rank; color: var(--muted); font-family: var(--mono); font-size: 8px; }
.agent-hot-logo { grid-area: logo; width: 42px; height: 42px; display: grid; place-items: center; overflow: hidden; background: #141a5b; color: #fff; font-family: var(--mono); font-size: 8px; }
.agent-hot-logo img { width: 100%; height: 100%; object-fit: cover; }
.agent-hot-title { grid-area: title; min-width: 0; display: grid; gap: 2px; align-content: center; }
.agent-hot-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; }
.agent-hot-title small { color: var(--muted); font-family: var(--mono); font-size: 7px; }
.agent-hot-score { grid-area: score; align-self: start; padding: 3px 5px; border: 1px solid rgba(180,255,74,.4); background: rgba(180,255,74,.1); color: #526b00; font-family: var(--mono); font-size: 7px; white-space: nowrap; }
.agent-hot-metrics { grid-area: metrics; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding-top: 6px; border-top: 1px solid var(--line); }
.agent-hot-metrics span { min-width: 0; }
.agent-hot-metrics small { display: block; color: var(--muted); font-family: var(--mono); font-size: 6px; }
.agent-hot-metrics b { display: block; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--mono); font-size: 8px; font-weight: 500; }
.agent-hot-foot { grid-area: foot; display: flex; align-items: center; gap: 6px; padding-top: 6px; border-top: 1px solid var(--line); color: var(--muted); font-family: var(--mono); font-size: 6px; }
.agent-hot-foot em { padding: 2px 4px; background: rgba(0,0,0,.05); font-style: normal; }
.agent-hot-foot > span:last-child { margin-left: auto; color: var(--ink); }
.agent-hot-loading { grid-column: 1 / -1; padding: 44px 10px; text-align: center; color: var(--muted); font-size: 11px; }
@media (max-width: 900px) { .agent-hot-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .agent-hot-main { grid-template-columns: 18px 38px minmax(0, 1fr); grid-template-areas: "rank logo title" "rank score score" "metrics metrics metrics" "foot foot foot"; } .agent-hot-logo { width: 38px; height: 38px; } .agent-hot-score { justify-self: start; } }

/* Bottom navigation — matches the editorial paper/ink/lime system */
body.has-bottom-nav { padding-bottom: 76px; }
.bottom-nav { position: fixed; z-index: 600; left: 0; right: 0; bottom: 0; width: 100%; border-top: 1px solid var(--line-strong); background: rgba(242,240,233,.97); color: var(--ink); box-shadow: 0 -10px 30px rgba(17,18,15,.06); backdrop-filter: blur(16px); }
.bottom-nav-inner { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: stretch; max-width: 1180px; min-height: 58px; margin: 0 auto; padding: 0 var(--gutter); }
.bottom-nav-side { display: flex; align-items: stretch; }
.bottom-nav-right { justify-content: flex-end; }
.bottom-nav-center { display: flex; align-items: stretch; border-left: 1px solid var(--line); border-right: 1px solid var(--line); background: var(--paper-deep); }
.bottom-nav-item { position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 64px; padding: 8px 10px 7px; border-left: 1px solid transparent; border-right: 1px solid transparent; color: var(--muted); text-decoration: none; transition: background .16s ease, color .16s ease; }
.bottom-nav-side .bottom-nav-item + .bottom-nav-item { border-left-color: var(--line); }
.bottom-nav-item svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.bottom-nav-item span { font-family: var(--mono); font-size: 7px; letter-spacing: .04em; white-space: nowrap; }
.bottom-nav-item:hover { background: rgba(17,18,15,.045); color: var(--ink); }
.bottom-nav-item.active { background: var(--ink); color: var(--lime); }
.bottom-nav-item.active svg { stroke: var(--lime); }
.bottom-nav-item.is-center { min-width: 104px; background: transparent; color: var(--ink-soft); }
.bottom-nav-item.is-center span { font-size: 8px; letter-spacing: .02em; }
.bottom-nav-item.is-center.active { background: var(--ink); color: var(--lime); }
.bottom-nav-item.is-center.active span { color: var(--lime); font-weight: 600; letter-spacing: .02em; }
.bottom-nav-item.is-center.active svg { stroke: var(--lime); }
.internal-alert-pop { bottom: 76px; }
@media (max-width: 720px) {
  body.has-bottom-nav { padding-bottom: 68px; }
  .bottom-nav-inner { min-height: 62px; padding: 0; padding-bottom: env(safe-area-inset-bottom, 0); }
  .bottom-nav-item { min-width: 0; flex: 1; padding: 7px 2px 6px; }
  .bottom-nav-item.is-center { min-width: 0; flex: 1; }
  .bottom-nav-item span { font-size: 6px; }
  .bottom-nav-item svg { width: 17px; height: 17px; }
  .bottom-nav-center { flex: 1.2; }
  .internal-alert-pop { bottom: 74px !important; }
}

.admin-source-priority { display:inline-block; margin-left:5px; padding:1px 4px; background:var(--ink); color:var(--lime); font-family:var(--mono); font-size:7px; font-style:normal; vertical-align:1px; }

/* CALL / Plaza */
.bottom-nav-item.has-red-dot::after { content: ""; position: absolute; top: 8px; right: 10px; width: 7px; height: 7px; border-radius: 50%; background: #ff3b30; box-shadow: 0 0 0 2px var(--paper); }
.bottom-nav-item.is-center.has-red-dot::after { top: 8px; right: 12px; }
.plaza-call-feed { display: grid; gap: 10px; }
.plaza-shell { border: 1px solid var(--line-strong); background: var(--card); padding: 0; margin-bottom: 10px; }
.plaza-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 18px 18px 14px; border-bottom: 1px solid var(--line); background: linear-gradient(120deg, rgba(180,255,74,.10), transparent 48%), var(--paper); }
.plaza-head h2 { margin: 5px 0 4px; font-size: 24px; letter-spacing: -.03em; }
.plaza-head p { margin: 0; max-width: 620px; color: var(--muted); font-size: 10px; line-height: 1.65; }
.plaza-tabs { display: flex; align-items: center; gap: 4px; padding: 9px 14px; border-bottom: 1px solid var(--line); background: var(--paper-soft); }
.plaza-tabs button { border: 1px solid transparent; background: transparent; padding: 6px 11px; color: var(--muted); font-family: var(--mono); font-size: 8px; cursor: pointer; }
.plaza-tabs button.active { background: var(--ink); color: var(--lime); }
.plaza-eligibility { margin-left: auto; color: var(--muted); font-family: var(--mono); font-size: 7px; }
.plaza-status-line { padding: 7px 14px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 8px; }
.plaza-compose { padding: 14px; border-bottom: 1px solid var(--line); background: var(--paper); }
.plaza-compose form { display: grid; gap: 9px; }
.plaza-form-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 9px; }
.plaza-compose label { display: grid; gap: 4px; color: var(--muted); font-family: var(--mono); font-size: 7px; }
.plaza-compose input, .plaza-compose textarea { width: 100%; border: 1px solid var(--line); background: #fffdf7; padding: 8px 9px; color: var(--ink); font: 10px/1.5 var(--sans); outline: none; }
.plaza-compose input:focus, .plaza-compose textarea:focus { border-color: var(--ink); }
.plaza-compose textarea { resize: vertical; }
.plaza-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.plaza-form-foot span { color: var(--muted); font-family: var(--mono); font-size: 7px; }
.plaza-list { display: grid; }
.plaza-card { padding: 14px 16px; border-bottom: 1px solid var(--line); background: var(--card); }
.plaza-card:last-child { border-bottom: 0; }
.plaza-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--muted); font-family: var(--mono); font-size: 7px; }
.plaza-author { color: var(--ink); font-size: 8px; font-weight: 600; }
.plaza-card h3 { margin: 7px 0 5px; font-size: 17px; line-height: 1.25; }
.plaza-reason { margin: 0 0 7px; color: var(--ink-soft); font-size: 9px; line-height: 1.55; }
.plaza-reason b { display: inline-block; margin-right: 6px; padding: 2px 5px; background: var(--ink); color: var(--lime); font-family: var(--mono); font-size: 6px; font-weight: 500; }
.plaza-content { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; margin: 0 0 9px; color: var(--muted); font-size: 10px; line-height: 1.7; white-space: pre-line; }
.plaza-card.is-open .plaza-content { display: block; overflow: visible; }
.plaza-contract-line { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 7px 0; border-top: 1px dashed var(--line); border-bottom: 1px dashed var(--line); color: var(--muted); font-family: var(--mono); font-size: 7px; }
.plaza-contract-line code { color: var(--ink-soft); }
.plaza-contract-line > a { color: var(--ink); border-bottom: 1px solid currentColor; text-decoration: none; }
.plaza-packet { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; padding: 4px 6px; border: 1px solid rgba(245,179,1,.5); background: rgba(245,179,1,.12); color: #6e4b00; font-size: 7px; }
.plaza-packet button { border: 0; background: #d8342c; color: #fff; padding: 3px 7px; font-family: var(--mono); font-size: 7px; cursor: pointer; }
.plaza-packet em { font-style: normal; opacity: .7; }
.plaza-packet.is-empty { border-color: var(--line); background: var(--paper-soft); color: var(--muted); }
.plaza-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
.plaza-stats { color: var(--muted); font-family: var(--mono); font-size: 7px; }
.plaza-actions { display: flex; align-items: center; gap: 4px; }
.plaza-actions button { border: 1px solid var(--line-strong); background: transparent; padding: 4px 7px; color: var(--ink); font-family: var(--mono); font-size: 7px; cursor: pointer; }
.plaza-actions button:hover:not(:disabled) { background: var(--ink); color: var(--lime); }
.plaza-actions button:disabled { opacity: .45; cursor: not-allowed; }
.plaza-empty { padding: 30px 16px; color: var(--muted); text-align: center; font-size: 10px; }
.plaza-error { padding: 20px; color: var(--muted); font-size: 10px; }
.call-empty-inline { padding: 24px 16px; color: var(--muted); border: 1px dashed var(--line); font-size: 10px; }
@media (max-width: 720px) {
  .plaza-head { padding: 14px 13px 12px; }
  .plaza-head h2 { font-size: 20px; }
  .plaza-form-grid { grid-template-columns: 1fr; }
  .plaza-form-foot { align-items: flex-start; flex-direction: column; }
  .plaza-card { padding: 12px 12px; }
  .plaza-card-foot { align-items: flex-start; flex-direction: column; }
  .plaza-packet { margin-left: 0; }
  .plaza-eligibility { width: 100%; margin-left: 0; }
  .plaza-tabs { flex-wrap: wrap; }
}

/* Angel plaza management */
.angel-plaza-head { padding: 4px 0 12px; border-bottom: 1px solid var(--line); }
.angel-plaza-head h2 { margin: 4px 0; font-size: 20px; }
.angel-plaza-head p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.6; }
.angel-plaza-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.angel-plaza-row > div:first-child { min-width: 0; display: grid; gap: 4px; }
.angel-plaza-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.angel-plaza-row span { color: var(--muted); font-family: var(--mono); font-size: 7px; }
.angel-plaza-actions { display: flex; gap: 4px; }
.angel-plaza-actions button { border: 1px solid var(--line-strong); background: transparent; padding: 4px 8px; color: var(--ink); font-family: var(--mono); font-size: 7px; cursor: pointer; }
.angel-plaza-actions button:hover { background: var(--ink); color: var(--lime); }

/* Digital heat rank (top 3 only) */
.mf-card { position: relative; }
.mf-card-rank { position: absolute; z-index: 3; left: 10px; top: 94px; width: 76px; display: grid; place-items: center; gap: 0; padding: 3px 2px 2px; border: 1px solid var(--lime); background: var(--ink); background-image: repeating-linear-gradient(0deg, transparent 0 2px, rgba(201,244,93,.08) 2px 3px); color: var(--lime); box-shadow: 0 0 12px rgba(201,244,93,.16); pointer-events: none; }
.mf-card-rank small { color: rgba(201,244,93,.62); font-family: var(--mono); font-size: 5px; letter-spacing: .12em; line-height: 1; }
.mf-card-rank b { color: var(--lime); font-family: "Bahnschrift SemiCondensed", "Consolas", ui-monospace, monospace; font-size: 30px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: .92; letter-spacing: -.04em; text-shadow: 0 0 5px rgba(201,244,93,.75), 0 0 14px rgba(201,244,93,.26); }
.agent-hot-rank.is-top { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid var(--lime); background: var(--ink); color: var(--lime); font-family: "Bahnschrift SemiCondensed", "Consolas", monospace; font-size: 14px; font-weight: 700; }
@media (max-width: 720px) {
  .mf-card-rank { left: 8px; top: 86px; width: 68px; }
  .mf-card-rank b { font-size: 26px; }
}

/* Mobile focus pass: compact bottom nav + readable project cards */
@media (max-width: 720px) {
  body.has-bottom-nav { padding-bottom: 76px; }
  .bottom-nav-inner { min-height: 64px; padding: 0; }
  .bottom-nav-item { padding: 7px 1px 6px; gap: 3px; }
  .bottom-nav-item span { font-size: 6px; letter-spacing: 0; }
  .bottom-nav-item svg { width: 16px; height: 16px; }
  .bottom-nav-center { flex: 1; }
  .bottom-nav-item.has-red-dot::after { top: 7px; right: 8px; }
  .internal-alert-pop { bottom: 78px !important; }

  #board-container.mf-card-grid { gap: 8px; }
  .mf-card { border-width: 1px; }
  .mf-card-link { grid-template-columns: 64px minmax(0, 1fr); gap: 10px; padding: 9px; }
  .mf-card-thumb { width: 64px; height: 64px; }
  .mf-card-title strong { font-size: 17px; }
  .mf-card-topline { gap: 5px; }
  .mf-card-name { font-size: 7px; }
  .mf-card-summary { margin: 5px 0 6px; font-size: 10px; line-height: 1.5; -webkit-line-clamp: 2; }
  .mf-card-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin-top: 5px; }
  .mf-card-metrics small { font-size: 6px; }
  .mf-card-metrics b { min-width: 0; overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; font-size: 8px; line-height: 1.3; }
  .mf-card-metrics .price-value { font-size: 7px; letter-spacing: -.03em; }
  .mf-card-market { gap: 6px; flex-wrap: wrap; font-size: 7px; line-height: 1.4; }
  .mf-card-tags { gap: 3px; min-width: 0; }
  .mf-card-tags .tag { max-width: 92px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mf-card-tags .tag:nth-child(n+3) { display: none; }
  .mf-card-foot { gap: 6px; }
  .mf-card-open { flex-shrink: 0; }
  .mf-card-rank { left: 9px; top: 82px; width: 64px; padding: 2px; }
  .mf-card-rank b { font-size: 26px; }
  .mf-card-rank small { font-size: 4.5px; }
  .mf-internal-progress { margin-top: 5px; padding: 5px 6px; gap: 3px; }
  .mf-internal-progress-head b { font-size: 6px; }
  .mf-internal-progress-head em { font-size: 7px; }
  .mf-internal-progress small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 5.5px; }
  .mf-platform-logo em { display: none; }
  .mf-platform-logo { padding: 2px; max-width: none; }
  .mf-card-live { left: 2px; bottom: 2px; padding: 2px 3px; }
  .mf-card-free { padding: 5px 6px; }
  .mf-card-sentiment { padding: 5px 8px; }
}

@media (max-width: 720px) {
  .bottom-nav-inner { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .bottom-nav-side, .bottom-nav-center { display: contents; }
  .bottom-nav-center { border: 0; background: transparent; }
  .bottom-nav-item { width: auto; min-width: 0; }
  .bottom-nav-item[data-nav="sentiment"], .bottom-nav-item[data-nav="call"] { background: var(--paper-deep); }
  .bottom-nav-item + .bottom-nav-item { border-left: 1px solid var(--line); }
}

/* Forge — custom mint project builder */
.forge-main { padding: 0 0 80px; }
.forge-container { max-width: 1180px; }
.forge-hero { padding: 46px 0 26px; border-bottom: 1px solid var(--line); }
.forge-hero h1 { max-width: 900px; margin: 12px 0 10px; font-size: clamp(42px, 6vw, 78px); line-height: .95; letter-spacing: -.06em; font-weight: 500; }
.forge-hero h1 .serif { font-style: italic; font-weight: 400; }
.forge-hero p { max-width: 720px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.forge-gate { margin: 40px 0; padding: 28px; border: 1px solid var(--ink); background: var(--paper); }
.forge-gate h2 { margin: 0 0 7px; font-size: 28px; }
.forge-gate p { color: var(--muted); font-size: 11px; line-height: 1.7; }
.forge-gate .button { margin-top: 12px; margin-right: 6px; }
.forge-shell { padding-top: 24px; }
.forge-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(250px, .55fr); gap: 20px; align-items: start; }
.forge-form-panel { border: 1px solid var(--line-strong); background: var(--card); padding: 20px; }
.forge-panel-head h2 { margin: 6px 0; font-size: 27px; letter-spacing: -.035em; }
.forge-panel-head p { margin: 0 0 16px; color: var(--muted); font-size: 10px; line-height: 1.7; }
.forge-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.forge-grid label { display: grid; gap: 5px; color: var(--muted); font-family: var(--mono); font-size: 7px; }
.forge-grid input[type=text], .forge-grid input:not([type]) { width: 100%; border: 1px solid var(--line); background: #fffdf7; padding: 9px 10px; font: 12px/1.4 var(--sans); color: var(--ink); outline: none; }
.forge-grid input:focus { border-color: var(--ink); }
.forge-check { display: flex !important; align-items: center; gap: 8px; grid-column: 1 / -1; padding: 8px 10px; border: 1px dashed var(--line-strong); color: var(--ink-soft) !important; font-size: 9px !important; }
.forge-check input { width: 14px; height: 14px; }
.forge-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 15px; padding: 10px; background: var(--paper); border: 1px solid var(--line); }
.forge-summary div { display: grid; gap: 3px; }
.forge-summary span { color: var(--muted); font-family: var(--mono); font-size: 6px; }
.forge-summary b { font-family: var(--mono); font-size: 9px; font-weight: 500; }
.forge-summary .ok b { color: #2f7d20; }
.forge-summary .bad b { color: #b42318; }
.forge-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.forge-form-actions span { color: var(--muted); font-family: var(--mono); font-size: 7px; }
.forge-error { margin-top: 12px; padding: 9px 10px; border: 1px solid #e0443e; color: #a51d18; font-size: 10px; }
.forge-side { display: grid; gap: 12px; }
.forge-side-card { border: 1px solid var(--line); background: var(--paper); padding: 16px; }
.forge-side-card h3 { margin: 7px 0 12px; font-size: 19px; }
.forge-side-card ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.forge-side-card li { display: grid; gap: 2px; padding-top: 8px; border-top: 1px solid var(--line); }
.forge-side-card li b { font-family: var(--mono); font-size: 8px; color: var(--ink); }
.forge-side-card li span, .forge-side-card p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.65; }
.forge-rules { margin-top: 24px; border: 1px solid var(--ink); background: var(--card); padding: 20px; }
.forge-rule-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.forge-rule-head h2 { margin: 6px 0 4px; font-size: 30px; letter-spacing: -.04em; }
.forge-rule-head h2 small { color: var(--muted); font-family: var(--mono); font-size: 10px; letter-spacing: 0; }
.forge-rule-head p { margin: 0; color: var(--muted); font-size: 9px; }
.forge-rule-actions { display: flex; gap: 5px; flex-wrap: wrap; }
.forge-rule-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 14px 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.forge-rule-grid div { padding: 9px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; gap: 3px; }
.forge-rule-grid span { color: var(--muted); font-family: var(--mono); font-size: 6px; }
.forge-rule-grid b { font-family: var(--mono); font-size: 10px; font-weight: 500; }
.forge-rule-note { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 9px 0; color: var(--muted); font-size: 9px; line-height: 1.6; }
.forge-rule-note b { color: var(--lime); background: var(--ink); padding: 3px 6px; font-family: var(--mono); font-size: 6px; }
.forge-source-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 8px; }
.forge-source-grid article { border: 1px solid var(--line); background: #101117; min-width: 0; }
.forge-source-head { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border-bottom: 1px solid rgba(242,240,233,.15); color: rgba(242,240,233,.75); font-family: var(--mono); font-size: 7px; }
.forge-source-head a { color: var(--lime); }
.forge-source-grid pre { max-height: 330px; overflow: auto; margin: 0; padding: 12px; color: #dce7c5; font: 8px/1.65 var(--mono); white-space: pre; }
.forge-deploy { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.forge-deploy ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; list-style: none; margin: 10px 0 0; padding: 0; }
.forge-deploy li { display: grid; gap: 4px; padding: 8px; border: 1px solid var(--line); }
.forge-deploy li b { color: var(--muted); font-family: var(--mono); font-size: 7px; }
.forge-deploy li span { font-size: 8px; line-height: 1.55; }
.forge-mine { margin-top: 26px; }
.forge-list-row { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.forge-list-row > div:first-child { display: grid; gap: 3px; }
.forge-list-row strong { font-size: 12px; }
.forge-list-row strong small { color: var(--muted); font-family: var(--mono); font-size: 7px; }
.forge-list-row span { color: var(--muted); font-family: var(--mono); font-size: 7px; }
.forge-list-row > div:last-child { display: flex; gap: 9px; flex-wrap: wrap; }
.forge-loading { padding: 40px; color: var(--muted); text-align: center; font-size: 11px; }
.forge-public { padding: 28px 0 60px; }
@media (max-width: 900px) {
  .forge-layout { grid-template-columns: 1fr; }
  .forge-rule-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .forge-source-grid { grid-template-columns: 1fr; }
  .forge-deploy ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .forge-hero { padding: 28px 0 18px; }
  .forge-hero h1 { font-size: 42px; }
  .forge-form-panel { padding: 14px; }
  .forge-grid { grid-template-columns: 1fr; }
  .forge-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .forge-form-actions { align-items: flex-start; flex-direction: column; }
  .forge-rule-head { flex-direction: column; }
  .forge-rule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .forge-rule-actions { width: 100%; }
  .forge-rule-actions .button { flex: 1; }
  .forge-source-grid pre { font-size: 7px; }
  .forge-deploy ol { grid-template-columns: 1fr; }
  .forge-list-row { align-items: flex-start; flex-direction: column; }
}

/* Long legal topline */
.header-topline span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 720px) {
  .header-topline { font-size: 7px; letter-spacing: .03em; }
  .header-topline .container { height: 24px; gap: 8px; }
  .header-topline span:last-child { display: none; }
}

@media (max-width: 720px) {
  .header-topline span:first-child { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.3; }
  .header-topline .container { height: 26px; }
}

/* CALL category pages */
.call-category-tabs { display: flex; align-items: stretch; gap: 0; margin: 0 0 12px; border-bottom: 1px solid var(--line-strong); }
.call-category-tabs button { appearance: none; border: 1px solid var(--line-strong); border-bottom: 0; background: var(--paper); color: var(--ink-soft); padding: 10px 20px; margin-right: -1px; font-family: var(--mono); font-size: 10px; letter-spacing: .04em; cursor: pointer; }
.call-category-tabs button span { margin-left: 6px; color: var(--muted); font-size: 7px; }
.call-category-tabs button.active { background: var(--ink); color: var(--lime); border-color: var(--ink); }
.call-category-tabs button.active span { color: rgba(201,244,93,.65); }
@media (max-width: 720px) {
  .call-category-tabs { margin-bottom: 8px; }
  .call-category-tabs button { flex: 1; padding: 10px 8px; font-size: 9px; }
}

/* Forge → existing project review handoff */
.forge-handoff { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding: 10px 12px; border: 1px dashed var(--line-strong); background: var(--paper); }
.forge-handoff span { color: var(--muted); font-size: 9px; line-height: 1.6; }
.forge-handoff a { flex-shrink: 0; font-family: var(--mono); font-size: 8px; }
@media (max-width: 720px) { .forge-handoff { align-items: flex-start; flex-direction: column; } }

.market-data-suspect { margin-top: 5px; padding: 4px 6px; border: 1px dashed #c78a2e; color: #8a5a12; font-family: var(--mono); font-size: 6.5px; line-height: 1.5; }

.agent-hot-main.is-static { cursor: default; }
.agent-hot-links { display: flex; align-items: center; gap: 6px; padding: 6px 10px; border-top: 1px solid var(--line); background: rgba(0,0,0,.018); font-family: var(--mono); font-size: 6px; }
.agent-hot-links > span { margin-right: auto; color: var(--muted); letter-spacing: .08em; }
.agent-hot-links a { padding: 3px 6px; border: 1px solid var(--line-strong); color: var(--ink); text-decoration: none; }
.agent-hot-links a:hover { background: var(--ink); color: var(--lime); border-color: var(--ink); }
@media (max-width: 600px) { .agent-hot-links { flex-wrap: wrap; } .agent-hot-links > span { width: 100%; margin-bottom: 2px; } .agent-hot-links a { flex: 1; text-align: center; } }

.market-data-empty { margin-top: 5px; padding: 4px 6px; border: 1px dashed var(--line-strong); color: var(--muted); font-family: var(--mono); font-size: 6.5px; line-height: 1.5; }

/* AI registration convenience */
.profile-ai-guide { margin: 12px 0; padding: 10px 12px; border: 1px solid var(--line); background: var(--paper-soft, #ebe9df); }
.profile-ai-guide .eyebrow { display: block; margin-bottom: 6px; }
.profile-ai-guide ol { margin: 0; padding-left: 16px; color: var(--ink-soft); font-size: 10px; line-height: 1.7; }
.profile-ai-guide code { font-family: var(--mono); font-size: 9px; }
.profile-input-row { display: flex; gap: 6px; align-items: stretch; }
.profile-input-row input { flex: 1; min-width: 0; }
.profile-input-row .button { flex-shrink: 0; padding-inline: 10px; }
@media (max-width: 720px) { .profile-ai-guide ol { font-size: 9px; } .profile-input-row .button { font-size: 8px; } }

/* Forge source download fallback */
.forge-source-actions { display: inline-flex; align-items: center; gap: 8px; }
.forge-source-actions button { border: 0; background: transparent; padding: 0; color: var(--muted); font-family: var(--mono); font-size: 7px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.forge-source-actions button:hover, .forge-source-actions a:hover { color: var(--ink); }
.forge-source-hint { margin: 6px 0 0; color: var(--muted); font-family: var(--mono); font-size: 7px; line-height: 1.6; }
@media (max-width: 720px) { .forge-source-actions { gap: 10px; } .forge-source-actions button, .forge-source-actions a { font-size: 8px; } }

/* Admin announcement banner */
.site-announcement { border-bottom: 1px solid var(--line-strong); background: #151812; color: var(--paper); }
.site-announcement-inner { max-width: 1180px; margin: 0 auto; padding: 10px var(--gutter); display: flex; align-items: center; gap: 14px; }
.site-announcement-kicker { flex: none; color: var(--lime); font-family: var(--mono); font-size: 7px; letter-spacing: .1em; }
.site-announcement-copy { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 10px; }
.site-announcement-copy strong { flex: none; font-size: 11px; font-weight: 600; }
.site-announcement-copy p { margin: 0; color: rgba(242,240,233,.78); font-size: 10px; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-announcement-close { border: 0; background: transparent; color: rgba(242,240,233,.6); font-size: 18px; line-height: 1; cursor: pointer; padding: 0 2px; }
.site-announcement-close:hover { color: var(--lime); }
@media (max-width: 720px) {
  .site-announcement-inner { align-items: flex-start; gap: 8px; padding-block: 9px; }
  .site-announcement-kicker { font-size: 6px; padding-top: 2px; }
  .site-announcement-copy { display: block; }
  .site-announcement-copy strong { display: block; font-size: 10px; }
  .site-announcement-copy p { font-size: 9px; white-space: normal; }
}

/* Admin announcement section */
.admin-form-grid textarea { width: 100%; min-height: 90px; padding: 8px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font: inherit; font-size: 11px; line-height: 1.6; resize: vertical; }
.admin-form-grid textarea:focus { border-color: var(--ink); outline: 0; }
.admin-muted { color: var(--muted); font-size: 10px; line-height: 1.6; }

/* Admin messages in Angel task list */
.angel-admin-message { border-color: var(--lime); background: linear-gradient(120deg, rgba(180,255,74,.08), transparent 60%); }
.angel-admin-message-body { white-space: pre-wrap; line-height: 1.65; }

/* Daily prize AI participant marquee */
.prize-participants { margin: 18px 0 10px; border: 1px solid var(--line); background: rgba(255,255,255,.35); overflow: hidden; }
.prize-participants-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; border-bottom: 1px solid var(--line); color: var(--muted); font-family: var(--mono); font-size: 7px; letter-spacing: .06em; }
.prize-participants-head > span:last-child { color: var(--ink); }
.prize-participant-track { overflow: hidden; padding: 10px 0; }
.prize-participant-inner { display: flex; align-items: center; gap: 8px; width: max-content; animation: prize-participant-marquee var(--prize-marquee-duration, 30s) linear infinite; }
.prize-participant-track:hover .prize-participant-inner { animation-play-state: paused; }
.prize-participant-chip { display: inline-flex; align-items: center; gap: 6px; flex: none; padding: 6px 9px; border: 1px solid var(--line); background: var(--paper); font-family: var(--mono); font-size: 9px; white-space: nowrap; }
.prize-participant-chip i { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--ink); color: var(--paper); font-style: normal; font-size: 7px; }
.prize-participant-chip b { color: var(--ink); font-weight: 500; }
.prize-participant-chip small { color: var(--muted); font-size: 7px; }
.prize-participant-empty { padding: 4px 12px; color: var(--muted); font-family: var(--mono); font-size: 8px; }
@keyframes prize-participant-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .prize-participant-inner { animation: none; } }
@media (max-width: 720px) { .prize-participants { margin-top: 12px; } .prize-participants-head { font-size: 6px; } .prize-participant-chip { font-size: 8px; } }

/* Forge deploy checklist copy */
.forge-copy-steps { margin-top: 8px; border: 1px solid var(--line); background: transparent; color: var(--ink); font-family: var(--mono); font-size: 8px; padding: 5px 9px; cursor: pointer; }
.forge-copy-steps:hover { border-color: var(--ink); }
