/* =========================================================================
   THE MOON BOY ($TMBX) — shared design system
   -------------------------------------------------------------------------
   Rebuilt from the ORIGINAL Durable brand config (not the purple placeholder):
     base    black  #000000 bg / white #FFFFFF fg
     accent  red    #FF3131  (primary — CTAs, highlights, borders)
     accent2 blue   #2B6BE7  (secondary — used sparingly)
     cta     yellow #ffc000  (matches original button background)
     heads   Ubuntu · body Montserrat · logo/wordmark Bebas Neue + Play
     corners SHARP — cornerRadius "no-rounded" was explicit; nothing rounds.
   Self-hosted fonts, latin subset, no runtime Google Fonts request.
   ========================================================================= */

/* ---- self-hosted fonts ------------------------------------------------- */
@font-face { font-family:'Ubuntu'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/fonts/ubuntu-400.woff2') format('woff2'); }
@font-face { font-family:'Ubuntu'; font-style:normal; font-weight:500; font-display:swap;
  src:url('/fonts/ubuntu-500.woff2') format('woff2'); }
@font-face { font-family:'Ubuntu'; font-style:normal; font-weight:700; font-display:swap;
  src:url('/fonts/ubuntu-700.woff2') format('woff2'); }
/* Montserrat is a variable font — one file covers 400–700 */
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/fonts/montserrat-var.woff2') format('woff2'); }
@font-face { font-family:'Bebas Neue'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/fonts/bebas-neue-400.woff2') format('woff2'); }
@font-face { font-family:'Play'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/fonts/play-400.woff2') format('woff2'); }
@font-face { font-family:'Play'; font-style:normal; font-weight:700; font-display:swap;
  src:url('/fonts/play-700.woff2') format('woff2'); }

/* ---- tokens ------------------------------------------------------------ */
:root{
  --black:#000000;
  --surface:#0a0a0a;      /* lifted panels on the black bg   */
  --surface-2:#141414;    /* nested cards                    */
  --white:#ffffff;
  --muted:#b5b5b5;        /* secondary body text             */
  --dim:#7d7d7d;          /* captions, meta                  */
  --red:#ff3131;          /* PRIMARY accent                  */
  --red-deep:#c81f1f;
  --blue:#2b6be7;         /* secondary accent                */
  --yellow:#ffc000;       /* CTA button background           */
  --border:#262626;
  --border-strong:#3a3a3a;
  --font-head:'Ubuntu',sans-serif;
  --font-body:'Montserrat',sans-serif;
  --font-logo:'Bebas Neue',sans-serif;
  --font-logo2:'Play',sans-serif;
  --wrap:1160px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  background:var(--black);
  color:var(--white);
  line-height:1.65;
  font-size:16px;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--red);text-decoration:none}
a:hover{color:#fff}
::selection{background:var(--red);color:#fff}

/* ---- typography -------------------------------------------------------- */
h1,h2,h3,h4,h5{font-family:var(--font-head);font-weight:700;line-height:1.1;letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,6vw,4.4rem);text-transform:uppercase}
h2{font-size:clamp(1.9rem,4vw,3rem);text-transform:uppercase}
h3{font-size:clamp(1.3rem,2.4vw,1.7rem)}
h4{font-size:1.1rem;text-transform:uppercase;letter-spacing:.03em}
p{margin:0 0 1.1rem}
.lead{font-size:clamp(1.05rem,1.7vw,1.3rem);color:var(--muted);max-width:60ch}
.eyebrow{
  font-family:var(--font-head);font-weight:700;text-transform:uppercase;
  letter-spacing:.22em;font-size:.8rem;color:var(--red);display:inline-block;margin-bottom:1rem;
}
.eyebrow.blue{color:var(--blue)}
.accent{color:var(--red)}
.accent-blue{color:var(--blue)}

/* ---- layout ------------------------------------------------------------ */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}
section{padding:88px 0;position:relative}
.section-alt{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.center{text-align:center}
.mx-auto{margin-left:auto;margin-right:auto}
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

/* ---- buttons (sharp, solid — style1 in the original config) ------------ */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-head);font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  font-size:.9rem;padding:14px 26px;border:2px solid transparent;border-radius:0;
  cursor:pointer;transition:transform .12s ease,background .15s ease,color .15s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn-cta{background:var(--yellow);color:#000}               /* original CTA yellow */
.btn-cta:hover{background:#ffcf33;color:#000}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-deep);color:#fff}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:#1d55c4;color:#fff}
/* style2 in the original config — outline */
.btn-outline{background:transparent;color:#fff;border-color:var(--red)}
.btn-outline:hover{background:var(--red);color:#fff}
.btn-ghost{background:transparent;color:#fff;border-color:var(--border-strong)}
.btn-ghost:hover{background:#fff;color:#000;border-color:#fff}

/* ---- header / nav ------------------------------------------------------ */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(0,0,0,.86);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--border);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:12px;color:#fff}
.brand:hover{color:#fff}
.brand img{width:38px;height:38px}
.brand .word{font-family:var(--font-logo);font-size:1.7rem;letter-spacing:.06em;line-height:1}
.brand .word b{color:var(--red);font-weight:400}
.nav-links{display:flex;align-items:center;gap:28px;list-style:none}
.nav-links a{
  font-family:var(--font-head);font-weight:500;font-size:.9rem;text-transform:uppercase;
  letter-spacing:.05em;color:var(--white);position:relative;padding:4px 0;
}
.nav-links a:hover{color:var(--red)}
.nav-links a.active{color:var(--red)}
.nav-cta{display:flex;align-items:center;gap:12px}
.nav-toggle{display:none;background:none;border:0;color:#fff;cursor:pointer;padding:6px}
.nav-toggle svg{width:28px;height:28px}

/* ---- hero -------------------------------------------------------------- */
.hero{
  position:relative;padding:96px 0 88px;overflow:hidden;
  border-bottom:1px solid var(--border);
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1 span{color:var(--red)}
.hero-art{position:relative;display:flex;justify-content:center}
.hero-art img{filter:drop-shadow(0 0 40px rgba(255,49,49,.35))}
.hero .btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}

/* starfield backdrop (pure CSS — replaces licensed space stock photos) */
.starfield{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.starfield::before,.starfield::after{
  content:"";position:absolute;inset:-50%;
  background-image:
    radial-gradient(1px 1px at 20% 30%,#fff,transparent),
    radial-gradient(1px 1px at 70% 60%,#fff,transparent),
    radial-gradient(1px 1px at 40% 80%,#fff,transparent),
    radial-gradient(2px 2px at 85% 20%,#fff,transparent),
    radial-gradient(1px 1px at 55% 45%,#fff,transparent),
    radial-gradient(1px 1px at 10% 70%,#fff,transparent),
    radial-gradient(1.5px 1.5px at 90% 85%,#fff,transparent);
  background-repeat:repeat;background-size:340px 340px;opacity:.5;
  animation:drift 120s linear infinite;
}
.starfield::after{background-size:520px 520px;opacity:.28;animation-duration:200s}
.hero-glow{
  position:absolute;top:-10%;right:-10%;width:60vw;height:60vw;max-width:760px;max-height:760px;
  background:radial-gradient(circle,rgba(255,49,49,.18),transparent 62%);z-index:0;pointer-events:none;
}
@keyframes drift{from{transform:translateY(0)}to{transform:translateY(-340px)}}
.hero .wrap{position:relative;z-index:1}

/* ---- cards ------------------------------------------------------------- */
.card{
  background:var(--surface);border:1px solid var(--border);border-radius:0;padding:28px;
  transition:border-color .15s ease,transform .15s ease;
}
.card:hover{border-color:var(--red);transform:translateY(-3px)}
.card h3{margin-bottom:.5rem}
.card .kicker{
  font-family:var(--font-head);font-weight:700;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--red);display:block;margin-bottom:.6rem;
}
.card .kicker.blue{color:var(--blue)}
.card p{color:var(--muted);margin:0}
.card.blue-edge{border-top:3px solid var(--blue)}
.card.red-edge{border-top:3px solid var(--red)}
.badge{
  display:inline-block;font-family:var(--font-head);font-weight:700;font-size:.68rem;
  letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border:1px solid var(--border-strong);
  color:var(--dim);
}
.badge.live{color:var(--red);border-color:var(--red)}
.badge.soon{color:var(--yellow);border-color:var(--yellow)}

/* section heading block */
.section-head{max-width:720px;margin:0 auto 52px}
.section-head.left{margin-left:0}
.section-head p{color:var(--muted);margin:0}

/* ---- stat / token strip ------------------------------------------------ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.stat{background:var(--black);padding:26px 20px;text-align:center}
.stat .n{font-family:var(--font-head);font-weight:700;font-size:1.9rem;color:var(--red);line-height:1}
.stat .l{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--dim);margin-top:8px}

/* address / code pill */
.addr{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--black);
  border:1px solid var(--border-strong);padding:14px 16px;font-family:var(--font-logo2);
}
.addr code{font-family:var(--font-logo2);color:var(--white);word-break:break-all;font-size:.95rem}
.addr .lbl{font-family:var(--font-head);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}

/* ---- roadmap ----------------------------------------------------------- */
.roadmap{display:grid;gap:0;border-left:2px solid var(--red);margin-left:8px}
.road-item{position:relative;padding:0 0 34px 30px}
.road-item::before{content:"";position:absolute;left:-9px;top:2px;width:16px;height:16px;background:var(--red);border:3px solid #000}
.road-item.done::before{background:var(--red)}
.road-item.next::before{background:var(--blue)}
.road-item .phase{font-family:var(--font-head);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fff}
.road-item .phase span{color:var(--red);font-size:.75rem;letter-spacing:.12em;margin-left:10px}
.road-item p{color:var(--muted);margin:.3rem 0 0}

/* ---- FAQ (native details) --------------------------------------------- */
.faq{max-width:820px;margin:0 auto}
.faq details{border:1px solid var(--border);border-radius:0;margin-bottom:12px;background:var(--surface)}
.faq details[open]{border-color:var(--red)}
.faq summary{
  cursor:pointer;list-style:none;padding:18px 22px;font-family:var(--font-head);font-weight:500;
  font-size:1.02rem;display:flex;justify-content:space-between;gap:16px;align-items:center;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--red);font-size:1.5rem;line-height:1;font-family:var(--font-head)}
.faq details[open] summary::after{content:"–"}
.faq .faq-body{padding:0 22px 20px;color:var(--muted)}
.faq .faq-body ul{margin:.4rem 0 0 1.1rem}
.faq .faq-body strong{color:#fff}

/* ---- exchange / link chips -------------------------------------------- */
.chip-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.chip{
  display:inline-flex;align-items:center;gap:10px;padding:14px 22px;background:var(--surface);
  border:1px solid var(--border-strong);font-family:var(--font-head);font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;color:#fff;
}
.chip:hover{border-color:var(--red);color:var(--red)}

/* ---- testimonials ------------------------------------------------------ */
.quote{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--red);padding:26px}
.quote p{color:var(--muted);font-style:italic;margin:0 0 16px}
.quote .who{display:flex;align-items:center;gap:12px}
.avatar{
  width:42px;height:42px;background:var(--red);color:#fff;display:grid;place-items:center;
  font-family:var(--font-head);font-weight:700;font-size:1.1rem;
}
.quote .who b{font-family:var(--font-head)}

/* ---- article / prose --------------------------------------------------- */
.article{max-width:760px;margin:0 auto}
.article-head{border-bottom:1px solid var(--border);padding-bottom:26px;margin-bottom:34px}
.article-head .meta{color:var(--dim);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;margin-top:10px}
.prose h2{font-size:1.6rem;margin:2.2rem 0 .9rem;text-transform:none}
.prose h3{font-size:1.25rem;margin:1.8rem 0 .7rem}
.prose p{color:#d8d8d8}
.prose ul,.prose ol{margin:0 0 1.2rem 1.3rem;color:#d8d8d8}
.prose li{margin:.35rem 0}
.prose a{text-decoration:underline}
.prose blockquote{border-left:3px solid var(--red);padding-left:18px;color:var(--muted);font-style:italic;margin:1.4rem 0}
.prose strong{color:#fff}

/* thumbnail card gradient (replaces licensed blog stock imagery) */
.thumb{aspect-ratio:16/9;position:relative;overflow:hidden;border-bottom:1px solid var(--border)}
.thumb.g1{background:linear-gradient(135deg,#1a1a1a,#000),radial-gradient(circle at 70% 30%,rgba(255,49,49,.5),transparent 55%)}
.thumb.g2{background:linear-gradient(135deg,#0e1830,#000),radial-gradient(circle at 30% 40%,rgba(43,107,231,.55),transparent 55%)}
.thumb.g3{background:linear-gradient(135deg,#241010,#000),radial-gradient(circle at 60% 60%,rgba(255,49,49,.45),transparent 55%)}
.thumb::after{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(1px 1px at 20% 30%,#fff,transparent),
                   radial-gradient(1px 1px at 70% 60%,#fff,transparent),
                   radial-gradient(1.5px 1.5px at 85% 25%,#fff,transparent);
  background-size:120px 120px;opacity:.35;
}
.thumb .mark{position:absolute;inset:0;display:grid;place-items:center;z-index:1}
.thumb .mark svg{width:54px;height:54px;opacity:.9}

.post-card{background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;transition:border-color .15s,transform .15s}
.post-card:hover{border-color:var(--red);transform:translateY(-3px)}
.post-card .body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1}
.post-card h3{color:#fff;font-size:1.15rem}
.post-card p{color:var(--muted);font-size:.92rem;margin:0}
.post-card .more{font-family:var(--font-head);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;color:var(--red);margin-top:auto}

/* ---- CTA banner -------------------------------------------------------- */
.cta-band{background:var(--red);color:#fff;text-align:center;padding:64px 0}
.cta-band h2{color:#fff}
.cta-band p{color:rgba(255,255,255,.9);max-width:52ch;margin:0 auto 26px}
.cta-band .btn-ghost{border-color:#fff;color:#fff}
.cta-band .btn-ghost:hover{background:#000;color:#fff;border-color:#000}

/* ---- footer ------------------------------------------------------------ */
.site-footer{background:#000;border-top:1px solid var(--border);padding:64px 0 32px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:44px}
.footer-brand .logo-word{font-family:var(--font-logo);font-size:2.4rem;letter-spacing:.05em;line-height:1}
.footer-brand .logo-word b{color:var(--red);font-weight:400}
.footer-brand .sub{font-family:var(--font-logo2);color:var(--dim);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;margin-top:4px}
.footer-brand p{color:var(--muted);margin-top:16px;max-width:38ch;font-size:.92rem}
.footer-col h5{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--dim);margin-bottom:16px}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:10px}
.footer-col a{color:var(--white);font-size:.92rem}
.footer-col a:hover{color:var(--red)}
.social-row{display:flex;gap:14px;margin-top:18px}
.social-row a{width:40px;height:40px;border:1px solid var(--border-strong);display:grid;place-items:center;color:#fff}
.social-row a:hover{border-color:var(--red);color:var(--red)}
.social-row svg{width:20px;height:20px}
.footer-bottom{border-top:1px solid var(--border);padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--dim);font-size:.82rem}
.footer-bottom a{color:var(--dim)}
.footer-bottom a:hover{color:var(--red)}

/* ---- utilities --------------------------------------------------------- */
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.disclaimer{color:var(--dim);font-size:.8rem;max-width:80ch;margin:0 auto}
.divider{height:1px;background:var(--border);border:0;margin:0}

/* ---- responsive -------------------------------------------------------- */
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;text-align:center}
  .hero-art{order:-1}
  .hero .btn-row{justify-content:center}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .stat-strip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .nav-links{
    position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;
    background:#000;border-bottom:1px solid var(--border);display:none;
  }
  .nav-links.open{display:flex}
  .nav-links li{width:100%;border-top:1px solid var(--border)}
  .nav-links a{display:block;padding:16px 24px}
  .nav-toggle{display:block}
  .nav-cta .btn{display:none}
  .grid-2,.grid-3{grid-template-columns:1fr}
  section{padding:64px 0}
}
@media(max-width:480px){
  .grid-4{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
}
