:root {
  color-scheme: dark;
  --ink: #f2ead7;
  --muted: #9dad9f;
  --paper: #d7c8aa;
  --night: #071311;
  --spruce: #0d2524;
  --spruce-2: #173633;
  --moss: #71885b;
  --river: #4fc7cf;
  --river-bright: #a9f2ea;
  --ember: #d68a4a;
  --stone: #35423c;
  --line: rgba(214, 232, 215, 0.15);
  --level-glow: rgba(79, 199, 207, 0.17);
  --level-land: rgba(113, 136, 91, 0.27);
  --shadow: 0 28px 80px rgba(0, 0, 0, 0.48);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

html { min-height: 100%; background: var(--night); }

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 50% -20%, var(--level-land), transparent 52%),
    radial-gradient(circle at 0% 45%, var(--level-glow), transparent 42%),
    linear-gradient(145deg, #07110f 0%, #0b1d1b 46%, #071311 100%);
  overflow-x: hidden;
}

body[data-biome="headwaters"] { --level-glow: rgba(51, 139, 151, 0.2); --level-land: rgba(105, 133, 91, 0.25); }
body[data-biome="laurel"] { --level-glow: rgba(82, 127, 112, 0.22); --level-land: rgba(121, 91, 133, 0.2); }
body[data-biome="moonlit"] { --level-glow: rgba(75, 105, 173, 0.25); --level-land: rgba(176, 118, 74, 0.19); }

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.28;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.11'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

button { font: inherit; }
button:focus-visible { outline: 3px solid var(--river-bright); outline-offset: 4px; }

.topo {
  position: fixed;
  width: 46rem;
  height: 46rem;
  border: 1px solid rgba(169, 242, 234, 0.05);
  border-radius: 42% 58% 62% 38% / 46% 34% 66% 54%;
  pointer-events: none;
  transform: rotate(-18deg);
}

.topo::before, .topo::after {
  content: "";
  position: absolute;
  border: inherit;
  border-radius: inherit;
  inset: 2.2rem;
}
.topo::after { inset: 5rem; }
.topo-a { top: -19rem; right: -13rem; }
.topo-b { bottom: -28rem; left: -19rem; transform: rotate(38deg) scale(1.3); }

.game-shell {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 30px 0 24px;
}

.masthead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 4px 22px;
  border-bottom: 1px solid var(--line);
}

.eyebrow, .chapter {
  display: block;
  margin: 0 0 8px;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

h1, h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
h1 { margin: 0; font-size: clamp(2.4rem, 7vw, 4.7rem); line-height: 0.85; letter-spacing: -0.06em; }
h1 em { color: var(--river-bright); font-weight: 400; }
.tagline { margin: 13px 0 0; color: var(--paper); font-family: Georgia, serif; font-size: 0.85rem; letter-spacing: 0.25em; text-transform: uppercase; }

.mast-actions { display: flex; gap: 10px; }
.icon-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(14, 38, 35, 0.66);
  cursor: pointer;
}
.icon-button:hover { color: var(--ink); border-color: rgba(169, 242, 234, 0.35); }
.icon-button > span:first-child { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid currentColor; border-radius: 50%; }

.briefing {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 30px;
  padding: 28px 4px 24px;
}
.briefing h2 { margin: 0; font-size: clamp(2rem, 5vw, 3.7rem); line-height: 1; }
.briefing p:last-child { max-width: 620px; margin: 12px 0 0; color: var(--muted); line-height: 1.6; }
.weather { display: flex; align-items: center; gap: 12px; min-width: 168px; padding-bottom: 6px; }
.weather-mark { color: var(--ember); font-size: 2rem; }
.weather strong, .weather span { display: block; }
.weather strong { font-family: Georgia, serif; font-weight: 400; }
.weather div span { margin-top: 2px; color: var(--muted); font-size: 0.76rem; }

.field-notes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-bottom: 20px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--line);
}
.field-notes[hidden] { display: none; }
.field-notes > div { display: flex; gap: 14px; padding: 18px; background: rgba(13, 37, 36, 0.96); }
.field-notes p { margin: 0; color: var(--muted); font-size: 0.86rem; line-height: 1.45; }
.field-notes strong { color: var(--ink); }
.note-number { color: var(--ember); font-family: Georgia, serif; font-size: 1.25rem; }

.watershed-map {
  margin-bottom: 20px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background:
    radial-gradient(circle at 85% 5%, rgba(79, 199, 207, 0.12), transparent 35%),
    rgba(10, 28, 26, 0.94);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.22);
}
.watershed-map[hidden] { display: none; }
.map-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.map-heading h2 { max-width: 560px; margin: 0; font-size: clamp(1.7rem, 4vw, 2.7rem); }
.map-heading p { max-width: 320px; margin: 0; color: var(--muted); font-size: 0.82rem; line-height: 1.5; }
.map-route { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.map-stop {
  position: relative;
  min-height: 150px;
  padding: 18px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 15px;
  color: var(--ink);
  text-align: left;
  background: linear-gradient(145deg, rgba(31, 64, 58, 0.84), rgba(12, 31, 29, 0.94));
  cursor: pointer;
}
.map-stop::after { content: ""; position: absolute; width: 110px; height: 110px; right: -44px; bottom: -50px; border: 1px solid rgba(169, 242, 234, 0.12); border-radius: 46% 54% 39% 61%; }
.map-stop:hover:not(:disabled), .map-stop.current { border-color: rgba(169, 242, 234, 0.42); background: linear-gradient(145deg, rgba(36, 81, 72, 0.94), rgba(13, 38, 35, 0.98)); }
.map-stop:disabled { opacity: 0.46; cursor: not-allowed; }
.map-stop-number, .map-stop-state, .map-stop strong, .map-stop small { display: block; }
.map-stop-number { color: var(--ember); font-family: Georgia, serif; font-size: 1.5rem; }
.map-stop strong { margin-top: 24px; font-family: Georgia, serif; font-size: 1.22rem; font-weight: 400; }
.map-stop small { margin-top: 4px; color: var(--muted); }
.map-stop .map-stop-biome { color: var(--paper); font-family: Georgia, serif; font-style: italic; }
.map-stop-state { margin-top: 11px; color: var(--river-bright); font-size: 0.62rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }

.instrument-panel {
  display: grid;
  grid-template-columns: 0.7fr 0.7fr 1.6fr 1fr;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px 16px 0 0;
  background: rgba(7, 19, 17, 0.72);
}
.instrument { padding: 15px 18px; border-right: 1px solid var(--line); }
.instrument:last-child { border-right: 0; }
.instrument span, .instrument small, .instrument strong { display: block; }
.instrument span { color: var(--muted); font-size: 0.63rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; }
.instrument strong { margin-top: 3px; font-family: Georgia, serif; font-size: 1.45rem; font-weight: 400; }
.instrument small { margin-top: 2px; color: #6f8175; font-size: 0.67rem; }
.status-instrument strong { color: var(--river-bright); }

.board-wrap {
  position: relative;
  display: grid;
  grid-template-columns: 84px minmax(320px, 760px) 84px;
  align-items: center;
  justify-content: center;
  min-height: 610px;
  padding: 30px 20px;
  border: 1px solid var(--line);
  border-top: 0;
  border-radius: 0 0 20px 20px;
  background:
    linear-gradient(rgba(7, 19, 17, 0.63), rgba(7, 19, 17, 0.8)),
    repeating-radial-gradient(ellipse at 30% 20%, transparent 0 36px, rgba(169, 242, 234, 0.035) 37px 38px, transparent 39px 55px),
    #132a27;
  box-shadow: var(--shadow);
}

.board {
  --size: 6;
  display: grid;
  grid-template-columns: repeat(var(--size), minmax(0, 1fr));
  gap: clamp(4px, 0.8vw, 9px);
  width: 100%;
  max-width: 660px;
  margin: auto;
  padding: clamp(10px, 2vw, 20px);
  border: 1px solid rgba(216, 228, 207, 0.12);
  border-radius: 24px;
  background: rgba(5, 14, 13, 0.47);
  box-shadow: inset 0 0 55px rgba(0, 0, 0, 0.38), 0 18px 48px rgba(0, 0, 0, 0.27);
}

.tile {
  position: relative;
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: 17%;
  background: transparent;
  cursor: pointer;
  transition: transform 180ms ease, filter 180ms ease;
  -webkit-tap-highlight-color: transparent;
}
.tile:hover { transform: translateY(-2px); filter: brightness(1.12); }
.tile:active { transform: translateY(0) scale(0.97); }
.tile svg { display: block; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 7px 7px rgba(0, 0, 0, 0.28)); }
.stone { fill: url(#bed-gradient); stroke: rgba(223, 231, 211, 0.14); stroke-width: 1.4; }
.tile:nth-child(3n+1) .stone { fill: #3b4941; }
.tile:nth-child(4n) .stone { fill: #34443e; }
.channel-bed path { fill: none; stroke: #172c2a; stroke-width: 24; stroke-linecap: butt; stroke-linejoin: round; }
.channel-bed path.bank { stroke: #9b8a69; stroke-width: 32; opacity: 0.32; }
.channel-water path { fill: none; stroke: #2d8e9b; stroke-width: 14; stroke-linecap: butt; stroke-linejoin: round; opacity: 0.1; transition: opacity 280ms ease; }
.tile.wet .channel-bed path:not(.bank) { stroke: #176f7d; stroke-width: 19; }
.tile.wet .channel-water path {
  opacity: 1;
  stroke: #6eeef0;
  stroke-width: 10;
  stroke-dasharray: 18 7;
  filter: drop-shadow(0 0 3px #bffff8) drop-shadow(0 0 8px rgba(79, 199, 207, 0.9));
  animation: water-arrives 520ms ease-out both, water-current 1.15s linear infinite;
  animation-delay: calc(var(--flow-step, 0) * 120ms), calc(var(--flow-step, 0) * 120ms + 520ms);
}
.tile.wet svg { filter: drop-shadow(0 8px 8px rgba(0,0,0,.28)) drop-shadow(0 0 14px rgba(79, 199, 207, .48)); }
.tile.source.wet .source-marker span, .tile.outlet.wet .outlet-marker span { color: #071f20; background: var(--river-bright); box-shadow: 0 0 18px rgba(79, 199, 207, 0.7); }
.tile.leaking .leak-mark { opacity: 1; animation: pulse-leak 1.4s ease-in-out infinite; }
.tile.leaking::before {
  content: "Leak · " attr(data-tile-number);
  position: absolute;
  z-index: 7;
  top: 7px;
  right: 7px;
  padding: 5px 7px;
  border: 1px solid #ffc386;
  border-radius: 999px;
  color: #241207;
  background: #f0a05e;
  box-shadow: 0 0 18px rgba(240, 160, 94, 0.72);
  font-size: 0.48rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  pointer-events: none;
}
.tile.hint::after {
  content: "";
  position: absolute;
  inset: -5px;
  border: 2px solid var(--river-bright);
  border-radius: 20%;
  box-shadow: 0 0 0 4px rgba(169, 242, 234, 0.12), 0 0 28px rgba(79, 199, 207, 0.45);
  pointer-events: none;
  animation: hint-breathe 1.6s ease-in-out infinite;
}
.debris-mark { opacity: 0; transition: opacity 180ms ease; }
.tile.debris .debris-mark { opacity: 1; }
.debris-mark path { fill: none; stroke: #c4925f; stroke-width: 7; stroke-linecap: round; }
.debris-mark circle { fill: #8a5f3c; }
.leak-mark { opacity: 0; fill: rgba(214, 138, 74, 0.18); stroke: #f0a05e; stroke-width: 4; pointer-events: none; }
.tile-number { position: absolute; right: 10%; bottom: 8%; color: rgba(242, 234, 215, 0.27); font-size: clamp(0.48rem, 1vw, 0.65rem); font-weight: 800; }

.edge-marker {
  position: absolute;
  top: 50%;
  z-index: 6;
  display: flex;
  align-items: center;
  color: var(--river-bright);
  font-size: 0.56rem;
  font-weight: 900;
  letter-spacing: 0.11em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
  filter: drop-shadow(0 3px 7px rgba(0, 0, 0, 0.72));
}
.edge-marker[hidden] { display: none; }
.edge-marker span { padding: 6px 8px; border: 1px solid rgba(169, 242, 234, 0.48); border-radius: 999px; background: rgba(5, 31, 31, 0.94); }
.edge-marker i { width: 22px; height: 3px; background: linear-gradient(90deg, var(--river-bright), var(--river)); box-shadow: 0 0 11px rgba(79, 199, 207, 0.8); }
.edge-marker b { color: #d8fff8; font-size: 0.82rem; text-shadow: 0 0 10px var(--river-bright); animation: source-pulse 1.8s ease-in-out infinite; }
.source-marker { right: calc(100% - 8px); transform: translateY(-50%); }
.outlet-marker { left: calc(100% - 8px); transform: translateY(-50%); }
.tile.source { z-index: 3; }
.tile.source svg { filter: drop-shadow(0 8px 8px rgba(0,0,0,.28)) drop-shadow(0 0 12px rgba(79, 199, 207, .44)); }
.tile.source:not(.wet) .channel-water path { opacity: 0.28; }

.bank-label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 0.65rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; writing-mode: vertical-rl; }
.spring-label { justify-self: end; transform: rotate(180deg); }
.outlet-label { justify-self: start; }
.bank-label i { display: block; width: 2px; height: 42px; background: linear-gradient(var(--river), transparent); }

.message {
  display: flex;
  align-items: center;
  gap: 15px;
  max-width: 760px;
  min-height: 68px;
  margin: 22px auto 0;
  padding: 12px 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(13, 37, 36, 0.74);
}
.message-mark { color: var(--river-bright); font-size: 2rem; }
.message strong, .message span { display: block; }
.message strong { font-family: Georgia, serif; font-weight: 400; }
.message div span { margin-top: 3px; color: var(--muted); font-size: 0.82rem; }
.message.success { border-color: rgba(169, 242, 234, 0.4); background: rgba(27, 76, 67, 0.66); }
.message.warning .message-mark { color: var(--ember); }

.flow-report {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 760px;
  margin: 10px auto 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(7, 24, 22, 0.82);
}
.flow-report[hidden] { display: none; }
.flow-check { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 11px 14px; border-right: 1px solid var(--line); }
.flow-check:last-child { border-right: 0; }
.flow-check > span { display: grid; flex: 0 0 26px; place-items: center; width: 26px; height: 26px; border: 1px solid currentColor; border-radius: 50%; font-weight: 900; }
.flow-check strong, .flow-check small { display: block; }
.flow-check strong { color: var(--ink); font-family: Georgia, serif; font-size: 0.82rem; font-weight: 400; }
.flow-check small { margin-top: 2px; overflow: hidden; color: var(--muted); font-size: 0.65rem; text-overflow: ellipsis; white-space: nowrap; }
.flow-check[data-state="pass"] { color: var(--river-bright); }
.flow-check[data-state="warn"] { color: #f0a05e; background: rgba(214, 138, 74, 0.08); }
.flow-check[data-state="fail"] { color: #dc806b; background: rgba(194, 88, 69, 0.08); }

.restoration-card {
  display: grid;
  grid-template-columns: minmax(220px, 0.8fr) minmax(320px, 1.4fr);
  max-width: 900px;
  margin: 18px auto 0;
  overflow: hidden;
  border: 1px solid rgba(169, 242, 234, 0.28);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(24, 67, 60, 0.94), rgba(9, 26, 24, 0.98));
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.3), 0 0 38px var(--level-glow);
  animation: restoration-arrives 700ms ease both;
}
.restoration-card[hidden] { display: none; }
.restoration-art {
  position: relative;
  min-height: 190px;
  overflow: hidden;
  background:
    radial-gradient(circle at 64% 38%, rgba(218, 243, 209, 0.22), transparent 8%),
    linear-gradient(155deg, var(--level-land), transparent 55%),
    linear-gradient(180deg, #173934 0%, #0d2524 100%);
}
.restoration-rings, .restoration-rings::before, .restoration-rings::after {
  position: absolute;
  inset: 18px 30px;
  content: "";
  border: 1px solid rgba(206, 241, 226, 0.16);
  border-radius: 48% 52% 41% 59% / 55% 38% 62% 45%;
  transform: rotate(-9deg);
}
.restoration-rings::before { inset: 17px; transform: rotate(15deg); }
.restoration-rings::after { inset: 34px; transform: rotate(-17deg); }
.restoration-river {
  position: absolute;
  top: -16%;
  left: 43%;
  width: 23px;
  height: 140%;
  border-radius: 50%;
  background: linear-gradient(90deg, rgba(169, 242, 234, 0.2), var(--river-bright), rgba(79, 199, 207, 0.15));
  box-shadow: 0 0 24px rgba(79, 199, 207, 0.45);
  transform: rotate(21deg) skewY(-28deg);
}
.restoration-copy { align-self: center; padding: 28px clamp(24px, 4vw, 44px); }
.restoration-copy h2 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.35rem); line-height: 1.05; }
.restoration-copy p { max-width: 560px; margin: 12px 0 18px; color: var(--paper); font-family: Georgia, serif; font-size: 0.98rem; line-height: 1.6; }
.restoration-copy strong { color: var(--river-bright); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; }
body.restored .board-wrap { box-shadow: var(--shadow), 0 0 46px var(--level-glow); }

.controls { display: flex; justify-content: center; gap: 12px; padding: 22px 0 30px; }
.button {
  min-height: 50px;
  padding: 0 22px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink);
  background: rgba(19, 42, 39, 0.8);
  font-weight: 800;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}
.button:hover { transform: translateY(-2px); border-color: rgba(169, 242, 234, 0.38); }
.flow-button { min-width: 190px; color: #082322; background: linear-gradient(135deg, var(--river-bright), var(--river)); border-color: transparent; box-shadow: 0 8px 30px rgba(79, 199, 207, 0.18); }
.flow-button:hover { background: linear-gradient(135deg, #c5fff7, #5cd9dd); }
.button[hidden] { display: none; }
.button:disabled { opacity: 0.38; cursor: not-allowed; transform: none; }

footer { display: flex; justify-content: space-between; gap: 16px; padding: 12px 4px 0; border-top: 1px solid var(--line); color: #617167; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@keyframes water-arrives {
  0% { opacity: 0; stroke-width: 3; }
  60% { opacity: 1; }
  100% { opacity: 1; stroke-width: 10; }
}
@keyframes water-current { to { stroke-dashoffset: -50; } }
@keyframes pulse-leak { 50% { transform: scale(1.08); opacity: 0.56; } }
@keyframes hint-breathe { 50% { opacity: 0.48; transform: scale(1.025); } }
@keyframes source-pulse { 50% { opacity: 0.58; transform: scale(0.78); } }
@keyframes restoration-arrives {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 760px) {
  .game-shell { width: min(100% - 20px, 680px); padding-top: 12px; }
  .masthead, .briefing { align-items: flex-start; }
  .masthead { flex-direction: column; }
  .briefing { flex-direction: column; padding-top: 22px; }
  .weather { display: none; }
  .field-notes { grid-template-columns: 1fr; }
  .map-heading { align-items: flex-start; flex-direction: column; }
  .map-route { grid-template-columns: 1fr; }
  .map-stop { min-height: 118px; }
  .map-stop strong { margin-top: 12px; }
  .restoration-card { grid-template-columns: 1fr; }
  .restoration-art { min-height: 135px; }
  .flow-report { grid-template-columns: 1fr; }
  .flow-check { border-right: 0; border-bottom: 1px solid var(--line); }
  .flow-check:last-child { border-bottom: 0; }
  .instrument-panel { grid-template-columns: 1fr 1fr; }
  .instrument:nth-child(2) { border-right: 0; }
  .instrument:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .board-wrap { grid-template-columns: 28px minmax(260px, 1fr) 28px; min-height: auto; padding: 24px 4px; }
  .bank-label span { display: none; }
  .board { padding: 8px; border-radius: 17px; }
  .edge-marker { top: 4px; font-size: 0.48rem; transform: none; }
  .edge-marker i { width: 8px; }
  .source-marker { right: auto; left: 4px; }
  .outlet-marker { right: 4px; left: auto; flex-direction: row-reverse; }
  .source-marker b, .source-marker i, .outlet-marker b, .outlet-marker i { display: none; }
  .controls { flex-wrap: wrap; }
  .flow-button { order: -1; width: 100%; }
  footer { flex-direction: column; align-items: center; }
}

@media (max-width: 430px) {
  .mast-actions { width: 100%; }
  .icon-button { flex: 1; justify-content: center; }
  .board-wrap { grid-template-columns: 16px minmax(250px, 1fr) 16px; }
  .board { gap: 4px; }
  .message { margin-top: 14px; }
  .secondary { flex: 1; padding-inline: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
}
