/* SWORM responsive layer. The page markup carries fixed inline styles, so every
   override here is !important on purpose. Breakpoints: 1024 tablet landscape,
   900 tablet portrait, 600 phone, 420 small phone. */

html { -webkit-text-size-adjust: 100%; }
img, svg { max-width: 100%; }

/* ---------- shared chrome: every page gets the identical header, container width, footer ---------- */
.wrap { max-width: 1280px !important; }
header { background: rgba(6,12,34,0.92) !important; border-bottom: 1px solid rgba(126,153,220,0.18) !important; }
.hdr { padding: 16px 24px !important; }
.hdr-nav a { border-bottom: 2px solid transparent; padding-bottom: 4px; }
.hdr-nav a:hover { color: #fff !important; }
.hdr-nav a.active { color: #ffcf33 !important; border-bottom-color: #ffcf33 !important; }
/* Inner pages share one page shell: same breathing room top and bottom, same title size. */
.docs-layout, .dash-layout, .tok-layout { padding-top: 36px !important; padding-bottom: 70px !important; }
.docs-title, .dash-title, .tok-title { font-size: 28px !important; line-height: 1.4 !important; }

/* ---------- full-screen fit ---------- */
/* The page wrapper used overflow-x:hidden, which turns it into a scroll container and
   silently breaks the sticky header. clip prevents sideways scroll without doing that. */
.site { overflow-x: clip !important; }

/* The design was drawn at ~1180px. On wide monitors scale the whole thing up so it
   fills the screen instead of sitting in a narrow column, and let the container grow. */
@media (min-width: 1400px) { body { zoom: 1.12; } .wrap { max-width: 1280px !important; } }
@media (min-width: 1700px) { body { zoom: 1.3; } }
@media (min-width: 2100px) { body { zoom: 1.55; } }
@media (min-width: 2800px) { body { zoom: 2; } }

/* The hero owns the first screen: tall enough to fill it, content vertically centred. */
#top > .hero { min-height: 640px !important; }
@media (max-width: 900px) { #top > .hero { min-height: calc(100svh - 150px) !important; align-content: center !important; } }
@media (max-width: 900px) and (max-height: 640px) { #top > .hero { min-height: 0 !important; } }

/* ---------- header (all pages) ---------- */
@media (max-width: 900px) {
  .hdr { flex-wrap: wrap !important; row-gap: 12px !important; padding: 12px 18px !important; }
  .hdr-btn { order: 2 !important; font-size: 9px !important; padding: 10px 12px !important; margin-left: auto !important; }
  /* Nav becomes a row of wrapping chips: nothing scrolls sideways, nothing gets clipped. */
  .hdr-nav { order: 3 !important; width: 100% !important; flex-wrap: wrap !important; gap: 6px !important; }
  .hdr-nav a {
    flex: none !important; font-size: 10px !important; letter-spacing: 0.5px !important;
    padding: 7px 10px !important; border: 1px solid rgba(126,153,220,0.3) !important; border-radius: 8px !important;
    border-bottom-width: 1px !important; background: rgba(11,19,48,0.6) !important;
  }
  .hdr-nav a.active { border-color: #ffcf33 !important; }
  .docs-title, .dash-title, .tok-title { font-size: 22px !important; }
}
@media (max-width: 600px) { .docs-title, .dash-title, .tok-title { font-size: 20px !important; } }
@media (max-width: 420px) {
  .hdr { padding: 10px 14px !important; }
  .hdr > a > span:nth-child(2) { font-size: 13px !important; }
}

/* ---------- landing ---------- */
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr !important; gap: 26px !important; padding: 32px 20px 28px !important; }
  .hero-title { font-size: 26px !important; }
  .trust { grid-template-columns: repeat(2, 1fr) !important; row-gap: 14px !important; }
  .trust-item:nth-child(2) { border-right: none !important; }
  .trust > div { justify-content: flex-start !important; }
  .sec-title { font-size: 18px !important; line-height: 1.5 !important; }
  .how-grid, .why-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .feat-grid { grid-template-columns: repeat(2, 1fr) !important; padding: 20px !important; }
  .tiers { flex-wrap: wrap !important; }
  .tier-arrow { display: none !important; }
  .tier-card { flex: 0 1 calc(33.333% - 10px) !important; max-width: none !important; }
  .token-card { grid-template-columns: 1fr !important; padding: 28px 22px !important; }
  .token-card img { max-width: 220px !important; }
  .perf { grid-template-columns: 1fr !important; padding: 24px 22px !important; }
  .perf-title { white-space: normal !important; }
  .perf-stats { gap: 32px !important; flex-wrap: wrap !important; }
  .perf-img { width: 100% !important; max-width: 420px !important; justify-self: start !important; }
  .foot-grid { grid-template-columns: 1fr 1fr !important; }
  .foot-grid > div:first-child { grid-column: 1 / -1 !important; }
  .foot-social { grid-column: 1 / -1 !important; }
  .foot-copy { text-align: center !important; }
}
@media (max-width: 600px) {
  .hero-title { font-size: 22px !important; }
  .hero p { font-size: 15px !important; }
  .hero a { font-size: 10px !important; padding: 13px 16px !important; }
  .how-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  .how-grid p { max-width: 300px !important; }
  .why-grid, .feat-grid { grid-template-columns: 1fr !important; }
  .tier-card { flex-basis: calc(50% - 5px) !important; }
  .trust > div span { font-size: 11px !important; }
  .perf-stats > div > div:first-child { font-size: 22px !important; }
  section, footer { padding-left: 16px !important; padding-right: 16px !important; }
}
@media (max-width: 420px) {
  .hero-title { font-size: 20px !important; }
  .trust { grid-template-columns: 1fr !important; }
  .trust-item { border-right: none !important; }
  .tier-card { padding: 12px 8px !important; }
  .tier-card > div:first-child { font-size: 11px !important; }
  .tier-card > div:nth-child(3) { font-size: 15px !important; }
  .foot-grid { column-gap: 16px !important; }
}

/* ---------- docs ---------- */
@media (max-width: 900px) {
  .docs-layout { grid-template-columns: 1fr !important; gap: 28px !important; padding: 28px 20px 60px !important; }
  .docs-aside { position: static !important; }
  .docs-nav { flex-direction: row !important; flex-wrap: wrap !important; gap: 8px !important; }
  .docs-nav a { border-left: none !important; border: 1px solid rgba(126,153,220,0.3) !important; padding: 8px 12px !important; font-size: 13px !important; }
  .docs-main { max-width: none !important; }
}
@media (max-width: 600px) {
  .docs-pillars { grid-template-columns: 1fr !important; }
  .docs-main h2 { font-size: 13px !important; line-height: 1.6 !important; }
  .docs-main p { font-size: 15px !important; }
}
@media (max-width: 420px) {
  .stage-row { flex-direction: column !important; gap: 10px !important; }
}

/* ---------- dashboard ---------- */
/* Grid items default to min-width:auto, so the wide tier table would force the whole
   main column past the viewport. Let the columns shrink; the table scrolls inside its card. */
.dash-layout > main, .dash-layout > aside { min-width: 0 !important; }
@media (max-width: 1024px) {
  .dash-layout { grid-template-columns: 1fr !important; }
  /* Content first on small screens; the sidebar cards follow below. */
  .dash-layout > main { order: 1 !important; }
  .dash-aside { position: static !important; order: 2 !important; }
  .dash-sidenav { flex-direction: row !important; flex-wrap: wrap !important; }
  .dash-sidenav a { padding: 9px 12px !important; }
  .dash-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .dash-clippers { grid-template-columns: repeat(3, 1fr) !important; }
  .dash-bottom { grid-template-columns: 1fr !important; }
}
@media (max-width: 900px) {
  .dash-charts { grid-template-columns: 1fr !important; }
  .dash-totals { gap: 20px !important; flex-wrap: wrap !important; }
}
@media (max-width: 600px) {
  .dash-layout { padding: 20px 16px 40px !important; }
  .dash-stats { grid-template-columns: 1fr !important; }
  .dash-clippers { grid-template-columns: repeat(2, 1fr) !important; }
  .dash-layout main > div:last-child { padding: 20px !important; }
  .dash-layout main > div:last-child > div > div > div:first-child { font-size: 13px !important; }
}
@media (max-width: 600px) {
  .dash-bottom > div > div:first-child { line-height: 1.5 !important; }
}
@media (max-width: 420px) {
  .dash-breakdown { flex-direction: column !important; align-items: flex-start !important; }
  .dash-breakdown > div:last-child { width: 100% !important; }
}

/* ---------- token ---------- */
@media (max-width: 1024px) {
  .tok-top { grid-template-columns: 1fr !important; }
  .tok-tiers { grid-template-columns: repeat(3, 1fr) !important; }
  .tok-3col, .tok-bottom { grid-template-columns: 1fr !important; }
  .tok-acq { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 900px) {
  .tok-sec-title { font-size: 17px !important; line-height: 1.5 !important; }
  .tok-overview { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
  .tok-tiers { grid-template-columns: repeat(2, 1fr) !important; }
  .tok-acq { grid-template-columns: 1fr !important; }
  .tok-top > div:first-child { padding: 24px 20px !important; }
  .tok-top > div:first-child p { max-width: none !important; }
  .tok-sec-title { font-size: 15px !important; }
  .tok-3col > div > div:first-child, .tok-bottom > div > div:first-child { line-height: 1.5 !important; }
  .tok-bottom > div:first-child > div { flex-wrap: wrap !important; gap: 2px 12px !important; }
  .tok-bottom > div:first-child > div > span:last-child { margin-left: auto !important; text-align: right !important; }
}
@media (max-width: 420px) {
  .tok-overview { grid-template-columns: 1fr !important; }
  .tok-tiers { gap: 10px !important; }
  .tok-tiers > div { padding: 14px 8px !important; }
  .tok-tiers > div > div:first-child { font-size: 11px !important; }
  .tok-tiers > div > div:nth-child(4) { font-size: 15px !important; }
  .tok-flow { flex-direction: column !important; }
  .tok-flow > span { transform: rotate(90deg) !important; }
  .tok-alloc { flex-direction: column !important; align-items: flex-start !important; }
  .tok-alloc > div:last-child { width: 100% !important; }
}

/* ---------- accessibility floor ---------- */
a:focus-visible, button:focus-visible { outline: 2px solid #ffcf33 !important; outline-offset: 3px !important; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto !important; } }
