/* ============================================================
   Secret Codes — brand kit theme
   Drop-in replacement for Bootstrap's default look.
   Version: 0.1  —  https://secretcodes.dev
   ============================================================ */

/* 1. Fonts ---------------------------------------------------- */
/* Load via <link> in <head> (faster) OR keep this @import:    */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,600&family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');

/* 2. Design tokens -------------------------------------------- */
:root {
  /* Ink & paper */
  --sc-ink:        #0E1730;   /* deep navy ink — "battleship night" */
  --sc-ink-soft:   #1B2747;
  --sc-paper:      #F2ECDD;   /* cream paper, like old ciphers */
  --sc-paper-warm: #E8DFC6;
  --sc-rule:       rgba(14, 23, 48, 0.16);

  /* Signal colors — reserved for "found" moments (CTAs, active, success) */
  --sc-signal:     #D84C2F;   /* maritime signal red */
  --sc-gold:       #C79A3A;   /* decoded-message gold */
  --sc-teal:       #2E6E6A;   /* deep water */
  --sc-lilac:      #8A7AB8;   /* synth / softer nod */

  /* Semantic roles */
  --sc-bg:         var(--sc-paper);
  --sc-fg:         var(--sc-ink);
  --sc-muted:      rgba(14, 23, 48, 0.6);
  --sc-accent:     var(--sc-signal);
  --sc-accent-2:   var(--sc-gold);

  /* Type */
  --sc-font-display: 'Fraunces', ui-serif, Georgia, 'Times New Roman', serif;
  --sc-font-body:    'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
  --sc-font-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Bootstrap variable overrides (if you're still on Bootstrap) */
  --bs-body-font-family: var(--sc-font-body);
  --bs-body-bg:          var(--sc-bg);
  --bs-body-color:       var(--sc-fg);
  --bs-primary:          var(--sc-ink);
  --bs-primary-rgb:      14, 23, 48;
  --bs-link-color:       var(--sc-ink);
  --bs-link-hover-color: var(--sc-signal);
  --bs-border-color:     var(--sc-rule);
}

/* Dark mode — add class="sc-dark" to <html> or <body>,
   or it kicks in automatically via prefers-color-scheme below. */
.sc-dark {
  --sc-bg:      var(--sc-ink);
  --sc-fg:      var(--sc-paper);
  --sc-muted:   rgba(242, 236, 221, 0.62);
  --sc-rule:    rgba(242, 236, 221, 0.18);
  --sc-accent:  #F0A06B;   /* warmer on dark */
  --sc-accent-2: #E8C464;
}
@media (prefers-color-scheme: dark) {
  :root:not(.sc-light) {
    --sc-bg:      var(--sc-ink);
    --sc-fg:      var(--sc-paper);
    --sc-muted:   rgba(242, 236, 221, 0.62);
    --sc-rule:    rgba(242, 236, 221, 0.18);
    --sc-accent:  #F0A06B;
    --sc-accent-2: #E8C464;
  }
}

/* 3. Base --------------------------------------------------- */
html, body {
  background: var(--sc-bg);
  color: var(--sc-fg);
  font-family: var(--sc-font-body);
  font-feature-settings: "ss01", "cv11";
  line-height: 1.55;
  transition: background .3s ease, color .3s ease;
}

/* Headings use the display serif */
h1, h2, h3, .sc-display {
  font-family: var(--sc-font-display);
  font-weight: 500;
  letter-spacing: -0.015em;
  font-optical-sizing: auto;
}
h1 { font-size: clamp(40px, 6vw, 72px); line-height: 1.02; }
h2 { font-size: clamp(28px, 3.5vw, 40px); }
h3 { font-size: clamp(22px, 2.5vw, 28px); }

h4, h5, h6 {
  font-family: var(--sc-font-body);
  font-weight: 600;
  letter-spacing: -0.005em;
}

/* Italic accent — use this for the "personal" voice */
.sc-italic,
em.sc-accent,
.sc-display em {
  font-family: var(--sc-font-display);
  font-style: italic;
  color: var(--sc-accent);
  font-weight: 500;
}

/* Mono — for code, labels, coordinates, signals */
code, kbd, samp, pre, .sc-mono {
  font-family: var(--sc-font-mono);
}
.sc-eyebrow,
.sc-label {
  font-family: var(--sc-font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sc-muted);
}

/* Links */
a { color: var(--sc-fg); text-decoration-color: var(--sc-rule); text-underline-offset: 3px; }
a:hover { color: var(--sc-accent); text-decoration-color: currentColor; }

/* 4. Buttons ------------------------------------------------ */
.sc-btn,
.btn-secret {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--sc-font-mono);
  font-size: 12px; letter-spacing: 0.06em;
  padding: 10px 16px;
  border-radius: 3px;
  border: 1px solid var(--sc-fg);
  background: var(--sc-fg);
  color: var(--sc-bg);
  text-decoration: none;
  cursor: pointer;
  transition: transform .1s ease, background .2s ease;
}
.sc-btn:hover { transform: translateY(-1px); }
.sc-btn:hover, .sc-btn:focus { color: var(--sc-bg); }

.sc-btn--ghost {
  background: transparent; color: var(--sc-fg);
}
.sc-btn--ghost:hover, .sc-btn--ghost:focus { color: var(--sc-fg); background: transparent; }

.sc-btn--accent {
  background: var(--sc-accent);
  border-color: var(--sc-accent);
  color: var(--sc-paper);
}
.sc-btn--accent:hover, .sc-btn--accent:focus { color: var(--sc-paper); }

/* Bootstrap button remap (optional) */
.btn-primary {
  --bs-btn-bg: var(--sc-ink);
  --bs-btn-border-color: var(--sc-ink);
  --bs-btn-hover-bg: var(--sc-signal);
  --bs-btn-hover-border-color: var(--sc-signal);
  --bs-btn-active-bg: var(--sc-signal);
}

/* 5. Cards & surfaces --------------------------------------- */
.sc-card {
  border: 1px solid var(--sc-rule);
  border-radius: 6px;
  padding: 24px;
  background: color-mix(in oklab, var(--sc-bg) 98%, var(--sc-fg) 2%);
}

/* Hero / lede / prose patterns */
.sc-hero { --bs-gutter-x: 3rem; }
.sc-hero h1 { line-height: 1.02; }
.sc-lede { max-width: 44ch; font-size: 1.05rem; }
.sc-prose { max-width: 64ch; }
.sc-prose-lead { font-size: 1.05rem; }
.sc-h-tight { line-height: 1.05; }
.sc-h-sub { font-size: 1.5rem; }
.sc-mono-sm { font-size: 0.95em; }

/* Navbar brand wrapping the wordmark */
.sc-brand-link { color: var(--sc-paper); }
.sc-brand-svg  { display: block; }
.sc-opsz-display { font-variation-settings: 'opsz' 144; }

/* Footer block — paper text on ink */
.sc-footer { background: var(--sc-ink); color: var(--sc-paper); }
.sc-footer a { color: var(--sc-paper); }
.sc-footer .sc-mono { letter-spacing: 0.06em; }
.sc-footer__morse {
  max-width: 360px; width: 100%; height: auto;
  display: block; margin-bottom: 14px;
}
.sc-footer__socials {
  list-style: none; padding: 0; margin: 0 0 0.5rem;
  display: flex; flex-wrap: wrap; gap: 1rem;
}
.sc-footer__socials a { font-size: 1.1rem; }
.sc-footer__by { color: rgba(242, 236, 221, 0.6); letter-spacing: 0.06em; }

/* Numbered prefix used inside .sc-eyebrow ("01" Personal infrastructure) */
.sc-num { color: var(--sc-accent); margin-right: 10px; }

/* Card-as-link tile pattern (3-up grid below the hero) */
.sc-tile {
  color: inherit;
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: 10px;
  text-decoration: none;
}
.sc-tile:hover, .sc-tile:focus { color: inherit; }
.sc-tile-title { font-size: 1.375rem; margin-bottom: 0; }
.sc-tile-body  { font-size: 0.875rem; margin-bottom: 0; }
.sc-tile .sc-arrow { margin-top: auto; }

/* Accent "open →" indicator */
.sc-arrow {
  font-family: var(--sc-font-mono);
  color: var(--sc-accent);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
}

/* In-page anchor that clears the fixed-ish navbar */
.sc-anchor { scroll-margin-top: 80px; }

/* Coords strip — signal-flag baseline (COORD · SIGNAL · STATUS · OWNER) */
.sc-coords {
  display: flex; flex-wrap: wrap; gap: 0;
  border-top: 1px solid var(--sc-rule);
  border-bottom: 1px solid var(--sc-rule);
  padding: 14px 0;
  font-family: var(--sc-font-mono);
  font-size: 12px; letter-spacing: 0.06em;
  color: var(--sc-muted);
}
.sc-coords > span { flex: 1 1 50%; min-width: 0; padding: 4px 0; }
.sc-coords b { color: var(--sc-fg); font-weight: 500; margin-right: 8px; }
@media (min-width: 768px) {
  .sc-coords > span { flex: 1; }
}

/* 6. Utilities ---------------------------------------------- */
.sc-muted   { color: var(--sc-muted); }
.sc-accent  { color: var(--sc-accent); }
.sc-rule    { border-color: var(--sc-rule); }
.sc-bg-ink    { background: var(--sc-ink);    color: var(--sc-paper); }
.sc-bg-paper  { background: var(--sc-paper);  color: var(--sc-ink); }
.sc-bg-signal { background: var(--sc-signal); color: var(--sc-paper); }
.sc-bg-teal   { background: var(--sc-teal);   color: var(--sc-paper); }
