/* ============================================================
   OCTOCISE BRAND KIT v5  — the locked design system in CSS.
   Governed by Wiki/concepts/octocise-brand-identity.md
   calm-confident-striking · cream surfaces · module colour = information
   Type: Gabarito (logo) · Plus Jakarta Sans (workhorse) · Fraunces (serif accent) · IBM Plex Mono (labels)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700;9..144,900&family=IBM+Plex+Mono:wght@400;500;600&family=Gabarito:wght@600;700&display=swap');

:root{
  /* warm light surfaces — never pure white, never grey */
  --cream:#FBF7EF;          /* page ground */
  --cream-2:#F4EDDF;        /* alt section */
  --paper:#FFFDF8;          /* cards */
  --ink:#10242F;            /* type + the one dark */
  --ink-2:#0B1A22;          /* deeper ink */
  --ink-soft:#5A6F78;       /* secondary text */
  --line:#E8E1D2;           /* hairlines on cream */
  --line-ink:#22343D;       /* hairlines on ink */

  /* module colours — the ONLY saturated colours; each always means its module */
  --blue:#2E6BFF;  --blue-deep:#1A4ED8;  --blue-soft:#EAF0FF;  --blue-bright:#5B8CFF;
  --green:#06C98D; --green-deep:#048A63;  --green-soft:#E3FBF2; --green-bright:#2BE0A8;
  --orange:#F97316;--orange-deep:#E25A07; --orange-soft:#FFF0E0;--orange-bright:#FF9A4D;
  --grad-blue:linear-gradient(135deg,#6E9BFF,#1A4ED8);
  --grad-green:linear-gradient(135deg,#34E0AA,#048A63);
  --grad-orange:linear-gradient(135deg,#FFB257,#E25A07);
  --grad-tri:linear-gradient(120deg,#2E6BFF 0%,#06C98D 50%,#F97316 100%);

  --font-sans:'Plus Jakarta Sans',system-ui,sans-serif;
  --font-serif:'Fraunces',Georgia,serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
  --font-logo:'Gabarito',var(--font-sans);

  --maxw:1180px;
  --r:18px;   /* card radius */
  --r-lg:28px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --shadow:0 1px 2px rgba(16,36,47,.04),0 12px 40px -16px rgba(16,36,47,.14);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;font-size:17px;line-height:1.6;letter-spacing:-.005em}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}

/* ---------- type ---------- */
h1,h2,h3{letter-spacing:-.025em;line-height:1.02;margin:0;font-weight:700}
.display{font-size:clamp(44px,7vw,86px);font-weight:800;letter-spacing:-.035em;line-height:.98}
.serif{font-family:var(--font-serif);font-weight:600;letter-spacing:-.02em;font-optical-sizing:auto}
.lede{font-size:clamp(18px,2.2vw,22px);color:var(--ink-soft);line-height:1.5;font-weight:400}
.kicker{font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ink-soft)}
.tnum{font-variant-numeric:tabular-nums}

/* ---------- logo ---------- */
.wordmark{font-family:var(--font-logo);font-weight:700;text-transform:uppercase;
  letter-spacing:.012em;line-height:1;color:var(--ink)}
.logo{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
.logo:hover{text-decoration:none}
.logo svg{display:block}

/* ---------- module cards — ANTI-BLEED pattern (use this; never a bare ::before bar) ----------
   overflow:hidden makes the top accent follow the card radius = NO colour bleed at corners.
   Saturated module colour is for TEXT + the thin accent + small dots only.
   Card BACKGROUNDS stay paper or soft tints (--*-soft), never the saturated colour. */
.mod-card{position:relative;overflow:hidden;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:30px 28px 26px;box-shadow:var(--shadow)}
/* NO coloured accent on borders, ever (Martin: dead AI giveaway). Module colour
   lives ONLY in the CAPTURE/GROW/REVIVE text. Any legacy .accent is hidden. */
.mod-card .accent{display:none !important}
.mod-name{font-family:var(--font-sans);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;
  font-size:clamp(28px,3vw,38px);line-height:1}
.mod-card.capture .mod-name{color:var(--blue)}
.mod-card.grow .mod-name{color:var(--green)}
.mod-card.revive .mod-name{color:var(--orange)}

/* soft colour bands — use these for any colour-tinted section background (never saturated) */
.band-blue{background:var(--blue-soft)} .band-grow{background:var(--green-soft)} .band-revive{background:var(--orange-soft)}

/* kinetic mono trust-row (dots + small caps), e.g. under the hero CTA */
.trust-row{display:flex;flex-wrap:wrap;gap:22px;justify-content:center;font-family:var(--font-mono);
  font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.trust-row span{display:inline-flex;align-items:center;gap:8px}
.trust-row .dot{width:6px;height:6px;border-radius:50%}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-sans);font-weight:700;
  font-size:15px;padding:14px 24px;border-radius:999px;border:1px solid transparent;cursor:pointer;
  text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--ink);color:var(--cream)}
.btn-primary:hover{box-shadow:0 14px 34px -12px rgba(16,36,47,.5)}
.btn-blue{background:var(--blue);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-lg{padding:18px 32px;font-size:17px}

/* ---------- chips / pills ---------- */
.pill{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:12px;
  font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 13px;border-radius:999px;
  border:1px solid var(--line)}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.dot-b{background:var(--blue)} .dot-g{background:var(--green)} .dot-o{background:var(--orange)}
.tag-capture{color:var(--blue-deep);background:var(--blue-soft);border-color:#cfddff}
.tag-grow{color:var(--green-deep);background:var(--green-soft);border-color:#bff0e0}
.tag-revive{color:var(--orange-deep);background:var(--orange-soft);border-color:#ffddbd}

/* ---------- cards ---------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
/* coloured card borders neutralised — colour belongs in text, not borders */
.edge-capture,.edge-grow,.edge-revive{border-left:1px solid var(--line)}

/* ---------- section rhythm ---------- */
section{padding:clamp(64px,10vw,128px) 0}
.ink-section{background:var(--ink);color:var(--cream)}
.ink-section .lede{color:#9fb1ba}
.ink-section .kicker{color:#7e98a4}

/* ---------- one-motion scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- app shell helpers ---------- */
.app{background:var(--cream)}
.room{background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.money{font-family:var(--font-sans);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.deep-water{--cream:#0B161E;--cream-2:#101D26;--paper:#101D26;--ink:#E8EFF3;--ink-soft:#9FB1BA;
  --line:#22343D;background:#0B161E;color:#E8EFF3}
.deep-water .card,.deep-water .room{background:#101D26;border-color:#22343D}

footer{background:var(--ink);color:var(--cream);padding:72px 0 56px}
footer a{color:#9fb1ba;text-decoration:none}


/* ── mobile burger nav (CSS-only checkbox toggle) ── */
.nav-cb{display:none}
.nav-burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;flex-shrink:0}
.mobile-menu{display:none}
@media(max-width:768px){
  .nav-burger{display:inline-flex}
  .mobile-menu{flex-direction:column;padding:8px 24px 18px;background:var(--paper);border-bottom:1px solid var(--line)}
  .nav-cb:checked ~ .mobile-menu{display:flex}
  .mobile-menu a{font-size:16px;font-weight:600;color:var(--ink);text-decoration:none;padding:13px 2px;border-bottom:1px solid var(--line)}
  .mobile-menu .mm-ghost,.mobile-menu .mm-primary{border-bottom:none;text-align:center;border-radius:999px;padding:13px;margin-top:10px}
  .mobile-menu .mm-ghost{border:1px solid var(--line)}
  .mobile-menu .mm-primary{background:var(--ink);color:var(--cream)}
}
