/* Staffguides — Coming Soon
   Standalone static page for staffguides.com. No framework, no build step.
   Fonts are self-hosted (Latin subset, WOFF2) in ./fonts — no third-party CDN.
   Tokens below are lifted from the main app (src/styles/variables.css) so the
   brand reads identically. Light/cream only, by design — the parchment palette
   is the identity; color-scheme: light keeps form controls consistent. */

/* ── Self-hosted webfonts (relative URLs work from file://, a local server,
      and Cloudflare Pages alike) ──────────────────────────────────────────── */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/geist-v5-latin-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/geist-v5-latin-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/instrument-serif-v5-latin-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/instrument-serif-v5-latin-italic.woff2') format('woff2');
}

/* ── Design tokens (from the main app) ───────────────────────────────────── */
:root {
  color-scheme: light;
  --bg:         #f4efe6;
  --surface-2:  #fbf8f1;
  --ink:        #1a1612;
  --ink-2:      #45382c;
  --accent:     #5e6b4d;
  --accent-ink: #38422a;
  /* Footer/copyright — a darkened muted that clears WCAG AA (≈5.4:1 on --bg);
     the app's --muted (#8c8073) is ~3.4:1 and would fail for body text. */
  --footnote:   #6a5f50;
}

/* ── Reset / base ────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  min-height: 100%;
}

body {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  font-family: 'Geist', -apple-system, system-ui, sans-serif;
  color: var(--ink);
  /* Flat cream with a barely-there warm centre for depth — restrained. */
  background:
    radial-gradient(120% 90% at 50% 32%, var(--surface-2) 0%, var(--bg) 62%);
  background-color: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a { color: inherit; text-decoration: none; }

/* ── Stage: vertically + horizontally centred content ────────────────────── */
.stage {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
}

.card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 26px;
  max-width: 560px;
  /* Gentle settle-in; suppressed for reduced-motion users below. */
  animation: rise 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

/* ── Brand mark — the sage app tile (open guide + diamond bookmark) ───────── */
.logo {
  display: block;
  line-height: 0;
  /* Soft sage-tinted lift so the tile floats over the parchment, as on the OG
     card. drop-shadow follows the tile's rounded alpha shape automatically. */
  filter: drop-shadow(0 10px 26px rgba(74, 87, 64, 0.28));
}
.logo svg {
  display: block;
  width: clamp(76px, 12vw, 94px);
  height: auto;
}

/* ── Wordmark — Instrument Serif italic, matching the app's brand mark ────── */
.wordmark {
  margin: 0;
  font-family: 'Instrument Serif', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(64px, 13vw, 132px);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--ink);
}

/* ── Hairline diamond divider (brand element from the app) ───────────────── */
.divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: var(--accent);
  width: 100%;
  max-width: 220px;
}
.divider .rule {
  flex: 1 1 auto;
  height: 1px;
  background: currentColor;
  opacity: 0.35;
}
.divider .diamond { flex: none; display: block; }

/* ── Tagline ─────────────────────────────────────────────────────────────── */
.tagline {
  margin: 0;
  font-size: clamp(15px, 2.4vw, 17px);
  line-height: 1.55;
  letter-spacing: 0.002em;
  color: var(--ink-2);
  max-width: 38ch;
}

/* ── Get in touch — low-key text link ────────────────────────────────────── */
.contact {
  margin-top: 4px;
  font-size: 14px;
  color: var(--accent);
  letter-spacing: 0.01em;
  padding-bottom: 2px;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  transition: color 0.18s ease, border-color 0.18s ease;
}
.contact:hover,
.contact:focus-visible {
  color: var(--accent-ink);
  border-bottom-color: var(--accent);
}
.contact:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 55%, transparent);
  outline-offset: 4px;
  border-radius: 2px;
}

/* ── Footer ──────────────────────────────────────────────────────────────── */
.footer {
  flex: none;
  padding: 24px;
  text-align: center;
}
.footer p {
  margin: 0;
  font-size: 12.5px;
  letter-spacing: 0.01em;
  color: var(--footnote);
}

/* ── Motion ──────────────────────────────────────────────────────────────── */
@keyframes rise {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .card { animation: none; }
}
