/* ═══════════════════════════════════════════════════════
   AKOX AI — base.css
   Design tokens, reset, typography, utilities
   Color palette: 95K / 90K / 85K / 20K / 10K / 0K + #F37124
═══════════════════════════════════════════════════════ */

/* ── Google Fonts ──────────────────────────────────────
   Mulish       → headers (replaces old "Muli")
   Miriam Libre → body text, paragraphs, buttons
─────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Mulish:wght@400;600;700;800;900&family=Miriam+Libre:wght@400;700&display=swap');

/* ── Design Tokens ──────────────────────────────────── */
:root {
  /* ── Palette (from brand colour guide) ── */
  --k95:   #0D0D0D;   /* 95%K – deepest shadow             */
  --k90:   #1A1A1A;   /* 90%K – main page background       */
  --k85:   #262626;   /* 85%K – card / surface             */
  --k20:   #CCCCCC;   /* 20%K – muted / secondary text     */
  --k10:   #E6E6E6;   /* 10%K – body text                  */
  --k0:    #FFFFFF;   /* 0%K  – headlines / icons          */
  --orange:#F37124;   /* brand accent / CTA                */
  --orange-hover: #FF8A40;

  /* ── Semantic aliases ── */
  --bg:             var(--k90);
  --bg-deep:        var(--k95);
  --bg-card:        var(--k85);
  --bg-card-hover:  #2F2F2F;
  --text-primary:   var(--k0);
  --text-body:      var(--k10);
  --text-muted:     var(--k20);
  --accent:         var(--orange);
  --accent-hover:   var(--orange-hover);
  --border:         rgba(255,255,255,0.08);
  --border-hover:   rgba(255,255,255,0.18);
  --border-accent:  rgba(243,113,36,0.35);

  /* ── Shadows ── */
  --shadow-sm:  0 1px 4px rgba(0,0,0,.5);
  --shadow-md:  0 4px 20px rgba(0,0,0,.6);
  --shadow-lg:  0 12px 48px rgba(0,0,0,.7);
  --shadow-xl:  0 24px 72px rgba(0,0,0,.8);
  --shadow-orange: 0 8px 32px rgba(243,113,36,.35);
  --shadow-orange-lg: 0 16px 48px rgba(243,113,36,.45);

  /* ── Radii ── */
  --r-sm:   8px;
  --r-md:   14px;
  --r-lg:   20px;
  --r-xl:   28px;
  --r-full: 9999px;

  /* ── Transitions ── */
  --t:        all .25s cubic-bezier(.4,0,.2,1);
  --t-bounce: all .35s cubic-bezier(.34,1.56,.64,1);

  /* ── Typography scale ── */
  --font-head: 'Mulish', system-ui, sans-serif;
  --font-body: 'Miriam Libre', Georgia, serif;
}

/* ── Reset ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  font-size: 16px;
  color-scheme: dark;
}

body {
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--text-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font-family: var(--font-body); cursor: pointer; border: none; background: none; }

/* ── Typography roles ───────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-head);
  color: var(--text-primary);
  line-height: 1.12;
  letter-spacing: -0.025em;
}

p, li, span, label, input, textarea, select, button {
  font-family: var(--font-body);
}

/* ── Gradient text utility ─────────────────────────── */
.text-gradient {
  background: linear-gradient(135deg, var(--orange) 0%, #FFB347 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Container ─────────────────────────────────────── */
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ── Section layout helpers ─────────────────────────── */
.section-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  background: rgba(243,113,36,.12);
  color: var(--orange);
  border: 1px solid rgba(243,113,36,.3);
  border-radius: var(--r-full);
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.section-badge-light {
  background: rgba(255,255,255,.08);
  color: var(--k20);
  border-color: rgba(255,255,255,.15);
}

.section-header {
  text-align: center;
  margin-bottom: 56px;
}

.section-title {
  font-family: var(--font-head);
  font-size: clamp(1.9rem, 4vw, 2.75rem);
  font-weight: 900;
  color: var(--text-primary);
  margin-bottom: 14px;
}

.section-sub {
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--text-muted);
  max-width: 500px;
  margin: 0 auto;
  line-height: 1.7;
}

/* ── Buttons ─────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 26px;
  border-radius: var(--r-sm);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
  cursor: pointer;
  border: 2px solid transparent;
  transition: var(--t);
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}

.btn-primary {
  background: var(--orange);
  color: var(--k0);
  border-color: var(--orange);
  box-shadow: var(--shadow-orange);
}
.btn-primary:hover {
  background: var(--orange-hover);
  border-color: var(--orange-hover);
  box-shadow: var(--shadow-orange-lg);
  transform: translateY(-2px);
}
.btn-primary:active { transform: translateY(0); }

.btn-outline {
  background: transparent;
  color: var(--k10);
  border-color: rgba(255,255,255,.25);
}
.btn-outline:hover {
  border-color: var(--orange);
  color: var(--orange);
  transform: translateY(-2px);
}

.btn-ghost {
  background: transparent;
  color: var(--text-muted);
  border-color: transparent;
}
.btn-ghost:hover {
  color: var(--k0);
  background: rgba(255,255,255,.06);
}

.btn-lg  { padding: 14px 30px; font-size: 1rem; }
.btn-xl  { padding: 18px 40px; font-size: 1.05rem; }
.btn-full { width: 100%; }

/* ── Dots (window chrome) ───────────────────────────── */
.dot        { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.dot-red    { background: #FF5F57; }
.dot-yellow { background: #FFBD2E; }
.dot-green  { background: #28CA41; }

/* ── Fade-in scroll animation ───────────────────────── */
.fade-in {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .65s cubic-bezier(.4,0,.2,1),
              transform .65s cubic-bezier(.4,0,.2,1);
}
.fade-in.visible { opacity: 1; transform: translateY(0); }

/* ── Scrollbar ──────────────────────────────────────── */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--k95); }
::-webkit-scrollbar-thumb { background: rgba(243,113,36,.4); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--orange); }

/* ── Focus ──────────────────────────────────────────── */
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; border-radius: 4px; }

/* ── Reduced motion ─────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

/* ── Keyframes (shared) ─────────────────────────────── */
@keyframes orbFloat {
  0%, 100% { transform: translate(0,0) scale(1); }
  33%       { transform: translate(18px,-18px) scale(1.04); }
  66%       { transform: translate(-14px,14px) scale(0.96); }
}

@keyframes pulseDot {
  0%, 100% { box-shadow: 0 0 0 2px rgba(40,202,65,.25); }
  50%       { box-shadow: 0 0 0 6px rgba(40,202,65,.08); }
}

@keyframes floatCard {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-9px); }
}

@keyframes scrollLine {
  0%   { opacity: 1; transform: scaleY(1); transform-origin: top; }
  100% { opacity: 0; transform: scaleY(0); transform-origin: top; }
}

@keyframes ripple {
  to { transform: scale(4); opacity: 0; }
}

@keyframes barGrow {
  from { transform: scaleY(0); transform-origin: bottom; }
  to   { transform: scaleY(1); transform-origin: bottom; }
}
