/* Direction: CoverStory — cobalt bar, coral actions, soft lavender paper, a chunky playful display face */
/* Completed by the platform from the short form: both modes, every
   palette token, each text-on-ground pair at its floor. To restyle, write the
   short form again (the decisions in one :root) and it is completed again. */

:root {
  --canvas: #f3f0fc;
  --surface: #ffffff;
  --surface-2: #e9e4fa;
  --border: #d6cff0;
  --border-strong: #b3abb2;
  --ink: #1a1840;
  --muted: #59567f;
  --accent: #d63f2a;
  --accent-hover: #b63624;
  --accent-ink: #ffffff;
  --accent-text: #1d3bc4;
  --accent-strong: #b02f1d;
  --accent-soft: #ffe4dd;
  --accent-border: #e6a09e;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #d8e3e5;
  --success-strong: #116d34;
  --warning: #b45309;
  --warning-ink: #ffffff;
  --warning-soft: #ebdddf;
  --warning-strong: #994607;
  --danger: #b91c1c;
  --danger-ink: #ffffff;
  --danger-soft: #ecd7e1;
  --danger-strong: #b91c1c;
  --chart-1: #d63f2a;
  --chart-2: #a88712;
  --chart-3: #18793d;
  --chart-4: #0296a9;
  --chart-5: #3e51cd;
  --chart-6: #cd5ac2;

  --x-cobalt: #1d3bc4;
  --x-on-photo: #ffffff;
  --font-display: "Bricolage Grotesque", "Trebuchet MS", sans-serif;
  --font-body: "DM Sans", system-ui, sans-serif;
  --display-weight: 800;
  --display-tracking: -0.02em;
  --radius-card: 22px;
  --radius-btn: 999px;
  --radius-input: 14px;
  --shadow-card: 0 10px 28px -14px rgb(0 0 0 / 0.22);
  --font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --font-sans: "DM Sans", system-ui, sans-serif;
  --eyebrow-tracking: 0.08em;
}

html[data-theme="dark"] {
  --canvas: #100503;
  --surface: #281e1c;
  --surface-2: #1c1210;
  --border: #312826;
  --border-strong: #58504f;
  --ink: #f3f0fc;
  --muted: #989298;
  --accent: #d63f2a;
  --accent-hover: #dc5c4a;
  --accent-ink: #ffffff;
  --accent-text: #df6959;
  --accent-strong: #df6959;
  --accent-soft: #3c120c;
  --accent-border: #691f15;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #112010;
  --success-strong: #499c68;
  --warning: #b45309;
  --warning-ink: #ffffff;
  --warning-soft: #341604;
  --warning-strong: #c57a40;
  --danger: #b91c1c;
  --danger-ink: #ffffff;
  --danger-soft: #350a09;
  --danger-strong: #d16969;
  --chart-1: #d63f2a;
  --chart-2: #b79307;
  --chart-3: #21984f;
  --chart-4: #23a2b6;
  --chart-5: #5972f0;
  --chart-6: #d460c9;
}

.bar-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 999px;
  padding: 0.5rem 0.9rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--x-on-photo);
  transition: background 0.15s ease, transform 0.15s ease;
}
.bar-btn:hover { background: color-mix(in srgb, var(--x-on-photo) 16%, transparent); }
.bar-btn:active { transform: scale(0.96); }
.bar-btn:focus-visible { outline: 2px solid var(--x-on-photo); outline-offset: 2px; }
.nav-top[aria-current="true"] { background: color-mix(in srgb, var(--x-on-photo) 24%, transparent); }
.nav-bottom { color: var(--muted); }
.nav-bottom[aria-current="true"] { color: var(--accent-text); background: var(--accent-soft); }

.gen-loading { display: none; }
.gen-loading.htmx-request { display: block; }

.excuse-card { transition: transform 0.18s ease, box-shadow 0.18s ease; }
.excuse-card:hover { transform: translateY(-2px); }

.bubble { box-shadow: var(--shadow-card); }

@media (prefers-reduced-motion: no-preference) {
  .excuse-card { animation: pop-in 0.35s ease-out both; }
  .float-a { animation: floaty 6s ease-in-out infinite; }
  .float-b { animation: floaty 7.5s ease-in-out -2s infinite; }
  .float-c { animation: floaty 9s ease-in-out -4s infinite; }
}
html.reduced-motion .excuse-card,
html.reduced-motion .float-a,
html.reduced-motion .float-b,
html.reduced-motion .float-c { animation: none; }

@keyframes pop-in { from { transform: translateY(14px) scale(0.98); } to { transform: none; } }
@keyframes floaty { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }

#cs-toast {
  position: fixed;
  left: 50%;
  bottom: 5.5rem;
  z-index: 80;
  transform: translateX(-50%);
  max-width: calc(100vw - 2rem);
  border-radius: 999px;
  background: var(--x-cobalt);
  color: var(--x-on-photo);
  padding: 0.65rem 1.1rem;
  font-size: 0.9rem;
  font-weight: 600;
  box-shadow: var(--shadow-card);
}
#cs-toast[hidden] { display: none; }
@media (min-width: 768px) { #cs-toast { bottom: 2rem; } }
