/* BreachDuty apex stub — Phase 0, pre-launch.
 * Charter §4 "Ice Atlas" (D7) — arctic near-black, glacial white, pale-ice glow.
 * "The worst day of the year, run at 62 bpm." No alarm color: urgency renders as
 * light, never red. Only the layout classes used by index.html are defined here. */

:root {
  --ground:      #0A0E11;
  --surface:     #10161A;
  --ink:         #E9F2F6;
  --ink-soft:    #9FB4BD;
  --ink-dim:     #6C8492;
  --accent:      #CFE9F5;  /* pale ice — glow/light, almost never a fill */
  --on-accent:   #0A0E11;
  --warm:        #9CC8DB;
  --rule:        rgba(207,233,245,.08);
  --rule-strong: rgba(207,233,245,.18);
  --err:         #E8B23A;  /* warn amber, never red — this world has no alarm color */

  --font-display: 'Inter Tight', 'Inter Tight Fallback', system-ui, sans-serif;
  --font-body:    'Inter', 'Inter Fallback', system-ui, sans-serif;
  --font-mono:    'IBM Plex Mono', 'Plex Mono Fallback', ui-monospace, Menlo, monospace;

  --ease: cubic-bezier(.2,.7,.2,1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  background: var(--ground);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

a { color: var(--accent); }
.mono { font-family: var(--font-mono); }

/* ── Accessibility primitives ── */
.skip {
  position: absolute; left: 14px; top: -60px; z-index: 1000;
  background: var(--accent); color: var(--on-accent);
  padding: 10px 16px; border-radius: 8px; font-weight: 600; font-size: .9rem;
  text-decoration: none; transition: top .2s var(--ease);
}
.skip:focus { top: 14px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 3px; }

/* ── Atmosphere (arctic register — no photography, faint grid + glow) ── */
.field {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(900px 520px at 84% -10%, rgba(207,233,245,.06), transparent 60%),
    radial-gradient(680px 420px at 2% 4%, rgba(156,200,219,.04), transparent 58%),
    linear-gradient(180deg, #0C1216 0%, var(--ground) 46%);
}
.grid-lines {
  position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .5;
  background-image:
    linear-gradient(var(--rule) 1px, transparent 1px),
    linear-gradient(90deg, var(--rule) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(120% 75% at 50% 0%, #000 30%, transparent 74%);
  mask-image: radial-gradient(120% 75% at 50% 0%, #000 30%, transparent 74%);
}
.stub-page { position: relative; flex: 1; display: flex; flex-direction: column; }
main, header, footer, .phase0-line { position: relative; z-index: 1; }

/* ── Phase-0 line (verbatim substring: "Commercial activity has not commenced") ── */
.phase0-line {
  background: var(--ground);
  border-bottom: 1px solid var(--rule);
  color: var(--ink-soft);
  text-align: center;
  padding: 8px clamp(16px, 5vw, 40px);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .04em;
}
.phase0-line strong {
  color: var(--accent); font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  margin-right: 8px;
}

/* ── Hero / main ── */
.stub-main {
  flex: 1;
  display: grid;
  place-items: center;
  padding: clamp(56px, 10vh, 108px) 20px;
}
.stub-wrap { width: min(600px, 100%); text-align: left; }

/* wordmark — color split, no icon glyph, fading rule (BRAND-STANDARDS §1) */
.wm { display: inline-flex; flex-direction: column; align-items: flex-start; margin-bottom: 30px; }
.wm-text {
  font-family: var(--font-display); font-weight: 600; font-size: 1.18rem; letter-spacing: -.01em;
  color: var(--ink);
}
.wm-text b { color: var(--accent); font-weight: 600; }
.wm-fade { margin-top: 6px; height: 2px; width: 96px; background: linear-gradient(90deg, var(--accent), transparent); }

.hero-kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px; }
.hero-kicker .dot {
  width: 6px; height: 6px; border-radius: 50%; background: var(--accent);
  box-shadow: 0 0 0 3px rgba(207,233,245,.14);
}
.eyebrow {
  font-family: var(--font-mono); font-size: .72rem; font-weight: 400;
  letter-spacing: .24em; text-transform: uppercase; color: var(--ink-soft);
}

/* headline — thin-weight large type IS the register (charter §4) */
.headline {
  font-family: var(--font-display); font-weight: 300; letter-spacing: -.01em;
  line-height: 1.08; font-size: clamp(2.15rem, 6.2vw, 3.35rem); color: var(--ink);
  margin-bottom: 18px;
}
.headline b { font-weight: 600; color: var(--ink); }

/* signature line — "Every deadline, cited." verbatim */
.manifesto {
  font-family: var(--font-mono); font-size: .92rem; letter-spacing: .06em;
  color: var(--accent); text-shadow: 0 0 18px rgba(207,233,245,.28);
  margin-bottom: 36px;
}

/* pulse — the 62-bpm motif; decorative, static-safe, no state/deadline data */
.pulse { margin: 0 0 36px; width: 100%; max-width: 420px; }
.pulse svg { width: 100%; height: 46px; display: block; overflow: visible; }
.pulse-line {
  fill: none; stroke: var(--accent); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
  filter: drop-shadow(0 0 6px rgba(207,233,245,.35));
}
.pulse-dot { fill: var(--accent); filter: drop-shadow(0 0 5px rgba(207,233,245,.6)); }
@media (prefers-reduced-motion: no-preference) {
  .pulse-dot { animation: pulseTravel 3.6s var(--ease) infinite; }
}
@keyframes pulseTravel {
  0%   { offset-distance: 0%; opacity: 0; }
  6%   { opacity: 1; }
  92%  { opacity: 1; }
  100% { offset-distance: 100%; opacity: 0; }
}
.pulse-dot { offset-path: path("M0,30 L128,30 L146,10 L162,48 L178,22 L192,30 L400,30"); }

.lede { font-size: 1.02rem; color: var(--ink-soft); max-width: 46ch; line-height: 1.65; margin-bottom: 38px; }

/* ── Contact (capture removal 2026-07-10 — plain mailto, no capture mechanism) ── */
.contact { font-size: .92rem; color: var(--ink-soft); letter-spacing: .01em; }
.contact a {
  color: var(--accent); text-decoration: none; border-bottom: 1px solid var(--rule-strong);
  padding-bottom: 1px; transition: border-color .2s var(--ease);
}
.contact a:hover { border-color: var(--accent); }

/* ── Footer: standing disclaimers (charter §6, verbatim) ── */
.stub-foot { padding: 34px 20px 30px; border-top: 1px solid var(--rule); }
.foot-wrap { width: min(640px, 100%); margin: 0 auto; }
.foot-dba {
  display: block; font-family: var(--font-mono); font-size: .72rem; letter-spacing: .12em;
  color: var(--ink-soft); margin-bottom: 14px; text-transform: uppercase;
}
.disc-stripe { display: grid; gap: 10px; margin-bottom: 16px; }
.disc-line { font-size: 11.5px; font-family: var(--font-mono); color: var(--ink-soft); line-height: 1.7; }
.disc-line b { color: var(--ink); font-weight: 500; }
.stub-foot .note { font-size: .74rem; color: var(--ink-soft); }

@media (max-width: 440px) {
  .stub-wrap { padding: 0 2px; }
  .pulse { max-width: 100%; }
}
