/* ════════════════════════════════════════════════════════════════════
   FISH KORAVI · KORAVI MISSION
   Command Center CTA · Build My Trip sheet · Mission briefing ·
   Floating "MISSION ACTIVE" bar · Adapt Plan sheet.
   Scoped by data-kmsn-* / .kmsn-* so nothing else on the page is touched.
   Mobile-first, 390px target. Safe-area aware.
   ═══════════════════════════════════════════════════════════════════════ */

/* ─── Build My Trip · primary Home CTA ───────────────────────── */
.kmsn-cta-wrap {
  display: block;
  margin: 8px auto 22px;
  max-width: var(--k-measure, 960px);
  padding: 0 14px;
}
.kmsn-cta {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  padding: 20px 22px 22px;
  border-radius: 20px;
  border: 1px solid rgba(77, 227, 255, 0.28);
  background:
    linear-gradient(155deg, rgba(9, 32, 51, 0.94) 0%, rgba(6, 22, 38, 0.96) 100%),
    radial-gradient(120% 80% at 100% 0%, rgba(77, 227, 255, 0.14), transparent 60%);
  box-shadow: 0 18px 44px -20px rgba(0, 0, 0, 0.65), inset 0 1px 0 rgba(255, 255, 255, 0.05);
  overflow: hidden;
}
.kmsn-cta.is-fresh {
  border-color: rgba(110, 255, 160, 0.28);
  background:
    linear-gradient(155deg, rgba(8, 24, 16, 0.94) 0%, rgba(4, 16, 10, 0.96) 100%),
    radial-gradient(120% 80% at 100% 0%, rgba(110, 255, 160, 0.14), transparent 60%);
}
.kmsn-cta::after {
  content: "";
  position: absolute;
  inset: auto -30% -60% auto;
  width: 260px; height: 260px;
  background: radial-gradient(closest-side, rgba(77, 227, 255, 0.18), transparent 70%);
  filter: blur(20px);
  pointer-events: none;
}
.kmsn-cta.is-fresh::after { background: radial-gradient(closest-side, rgba(110, 255, 160, 0.18), transparent 70%); }

.kmsn-cta-eyebrow {
  font-family: "Oswald", sans-serif;
  font-size: 0.66rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #4de3ff;
  margin: 0;
}
.kmsn-cta.is-fresh .kmsn-cta-eyebrow { color: #6effa0; }

.kmsn-cta-title {
  font-family: "Oswald", sans-serif;
  font-size: clamp(1.35rem, 5vw, 1.75rem);
  line-height: 1.15;
  letter-spacing: 0.5px;
  color: #f5fbff;
  margin: 2px 0 0;
}
.kmsn-cta-sub {
  font-size: 0.9rem;
  line-height: 1.5;
  color: #b0c9d8;
  margin: 4px 0 0;
}

.kmsn-cta-btn {
  --btn-bg: linear-gradient(180deg, #4de3ff 0%, #2ea8c6 100%);
  --btn-shadow: 0 8px 24px -6px rgba(77, 227, 255, 0.55), inset 0 1px 0 rgba(255,255,255,0.35);
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 54px;
  padding: 14px 22px;
  border-radius: 999px;
  border: 0;
  background: var(--btn-bg);
  color: #041623;
  font-family: "Oswald", sans-serif;
  font-size: 1rem;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--btn-shadow);
  transition: transform 0.12s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.kmsn-cta.is-fresh .kmsn-cta-btn {
  --btn-bg: linear-gradient(180deg, #6effa0 0%, #3fbf74 100%);
  --btn-shadow: 0 8px 24px -6px rgba(110, 255, 160, 0.5), inset 0 1px 0 rgba(255,255,255,0.35);
}
.kmsn-cta-btn:hover { transform: translateY(-1px); filter: brightness(1.05); }
.kmsn-cta-btn:active { transform: translateY(0) scale(0.98); }
.kmsn-cta-btn svg { width: 18px; height: 18px; }

.kmsn-cta-hint {
  margin-top: 6px;
  font-size: 0.72rem;
  color: #7d95a8;
  letter-spacing: 0.4px;
}

/* ─── Sheet (Build Trip · Mission briefing · Adapt) ──────────── */
.kmsn-sheet-back {
  position: fixed; inset: 0;
  background: rgba(2, 10, 18, 0.72);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 4000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
}
.kmsn-sheet-back.is-open { opacity: 1; pointer-events: auto; }

.kmsn-sheet {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 4001;
  max-height: calc(100vh - 40px);
  background: linear-gradient(180deg, #081e30 0%, #05131f 100%);
  border-top: 1px solid rgba(77, 227, 255, 0.32);
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -20px 60px -20px rgba(0, 0, 0, 0.85);
  transform: translateY(100%);
  transition: transform 0.28s cubic-bezier(0.22, 0.9, 0.32, 1);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.kmsn-sheet.is-fresh { background: linear-gradient(180deg, #071b12 0%, #04120b 100%); border-top-color: rgba(110, 255, 160, 0.32); }
.kmsn-sheet.is-open { transform: translateY(0); }

.kmsn-sheet-grip {
  align-self: center;
  width: 42px; height: 4px;
  background: rgba(255,255,255,0.2);
  border-radius: 999px;
  margin: 10px 0 4px;
  flex-shrink: 0;
}
.kmsn-sheet-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 20px 12px;
  flex-shrink: 0;
}
.kmsn-sheet-title {
  font-family: "Oswald", sans-serif;
  font-size: 1.05rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #f5fbff;
  margin: 0;
}
.kmsn-sheet-close {
  background: transparent; border: 0;
  color: #b0c9d8;
  padding: 8px;
  cursor: pointer;
  border-radius: 999px;
  transition: background 0.15s ease;
}
.kmsn-sheet-close:hover { background: rgba(255,255,255,0.06); }
.kmsn-sheet-body {
  overflow-y: auto;
  padding: 4px 20px calc(28px + env(safe-area-inset-bottom));
  -webkit-overflow-scrolling: touch;
}

/* ─── Build Trip form ────────────────────────────────────────── */
.kmsn-field {
  margin-bottom: 18px;
  padding: 14px 16px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 14px;
}
.kmsn-field-eyebrow {
  font-family: "Oswald", sans-serif;
  font-size: 0.62rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #4de3ff;
  margin: 0 0 6px;
}
.kmsn-sheet.is-fresh .kmsn-field-eyebrow { color: #6effa0; }
.kmsn-field-value {
  font-family: "Oswald", sans-serif;
  font-size: 1.1rem;
  color: #f5fbff;
  letter-spacing: 0.4px;
  line-height: 1.35;
}
.kmsn-field-note { font-size: 0.78rem; color: #7d95a8; margin-top: 4px; }
.kmsn-field-link {
  display: inline-block;
  margin-top: 8px;
  font-family: "Oswald", sans-serif;
  font-size: 0.72rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #4de3ff;
  text-decoration: none;
  cursor: pointer;
}
.kmsn-sheet.is-fresh .kmsn-field-link { color: #6effa0; }
.kmsn-field-link:hover { text-decoration: underline; }

.kmsn-select {
  width: 100%;
  padding: 12px 14px;
  background: #0c2233;
  border: 1px solid rgba(77, 227, 255, 0.28);
  border-radius: 12px;
  color: #eafff4;
  font-family: "Source Sans 3", sans-serif;
  font-size: 0.95rem;
  outline: none;
  margin-top: 8px;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234de3ff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
}
.kmsn-sheet.is-fresh .kmsn-select { background-color: #0b1e14; border-color: rgba(110, 255, 160, 0.28); }

/* ─── Mission briefing sections ──────────────────────────────── */
.kmsn-hero {
  display: block;
  text-align: left;
  padding: 6px 0 18px;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  margin-bottom: 18px;
}
.kmsn-hero-eyebrow {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 0.68rem;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #4de3ff;
  margin: 0 0 4px;
}
.kmsn-sheet.is-fresh .kmsn-hero-eyebrow { color: #6effa0; }
.kmsn-hero-place {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 1.5rem;
  color: #f5fbff;
  letter-spacing: 0.4px;
  margin: 0 0 4px;
  line-height: 1.15;
}
.kmsn-hero-meta { display: block; font-size: 0.82rem; color: #b0c9d8; }
.kmsn-hero-score {
  display: flex; align-items: baseline; gap: 12px;
  margin-top: 14px;
}
.kmsn-hero-score-num {
  font-family: "JetBrains Mono", "Oswald", monospace;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  color: #4de3ff;
}
.kmsn-sheet.is-fresh .kmsn-hero-score-num { color: #6effa0; }
.kmsn-hero-score-slash { font-size: 0.9rem; color: #7d95a8; margin-left: -6px; }
.kmsn-hero-score-label {
  font-family: "Oswald", sans-serif;
  font-size: 0.85rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #f5fbff;
  padding: 3px 10px;
  border-radius: 999px;
  border: 1px solid rgba(77, 227, 255, 0.4);
  background: rgba(77, 227, 255, 0.08);
}
.kmsn-sheet.is-fresh .kmsn-hero-score-label { border-color: rgba(110, 255, 160, 0.4); background: rgba(110, 255, 160, 0.08); }
.kmsn-hero-line { display: block; font-size: 0.88rem; color: #b0c9d8; margin-top: 8px; line-height: 1.5; }

.kmsn-section { margin-bottom: 22px; }
.kmsn-section-title {
  font-family: "Oswald", sans-serif;
  font-size: 0.72rem;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #7d95a8;
  margin: 0 0 10px;
}

.kmsn-timeline { display: flex; flex-direction: column; gap: 10px; }
.kmsn-time-row {
  display: flex; gap: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.05);
}
.kmsn-time-row.is-prime {
  background: rgba(77, 227, 255, 0.06);
  border-color: rgba(77, 227, 255, 0.35);
}
.kmsn-sheet.is-fresh .kmsn-time-row.is-prime {
  background: rgba(110, 255, 160, 0.06);
  border-color: rgba(110, 255, 160, 0.35);
}
.kmsn-time-when {
  font-family: "JetBrains Mono", "Oswald", monospace;
  font-size: 0.88rem;
  color: #4de3ff;
  flex-shrink: 0;
  min-width: 96px;
  letter-spacing: 0.4px;
}
.kmsn-sheet.is-fresh .kmsn-time-when { color: #6effa0; }
.kmsn-time-body { flex: 1; min-width: 0; }
.kmsn-time-label {
  font-family: "Oswald", sans-serif;
  font-size: 0.9rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #f5fbff;
}
.kmsn-time-note { font-size: 0.82rem; color: #b0c9d8; margin-top: 3px; line-height: 1.4; }

.kmsn-target-grid {
  display: grid; gap: 10px;
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 500px) { .kmsn-target-grid { grid-template-columns: 1fr; } }
.kmsn-target-card {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
}
.kmsn-target-card.is-primary {
  background: rgba(255, 190, 60, 0.05);
  border-color: rgba(255, 190, 60, 0.35);
}
.kmsn-target-eyebrow {
  font-family: "Oswald", sans-serif;
  font-size: 0.6rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #7d95a8;
  margin: 0 0 5px;
}
.kmsn-target-card.is-primary .kmsn-target-eyebrow { color: #ffbe3c; }
.kmsn-target-name {
  font-family: "Oswald", sans-serif;
  font-size: 1.2rem;
  color: #f5fbff;
  letter-spacing: 0.4px;
}
.kmsn-target-note { font-size: 0.78rem; color: #b0c9d8; margin-top: 4px; line-height: 1.4; }

.kmsn-block {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.05);
}
.kmsn-block strong { color: #f5fbff; font-weight: 600; }
.kmsn-block p { margin: 0; font-size: 0.9rem; line-height: 1.55; color: #b0c9d8; }
.kmsn-block p + p { margin-top: 6px; }

.kmsn-map-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(77, 227, 255, 0.35);
  color: #4de3ff;
  background: transparent;
  font-family: "Oswald", sans-serif;
  font-size: 0.72rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}
.kmsn-sheet.is-fresh .kmsn-map-link { color: #6effa0; border-color: rgba(110, 255, 160, 0.35); }
.kmsn-map-link:hover { background: rgba(77,227,255,0.08); }

.kmsn-steps { counter-reset: kmsn-step; display: flex; flex-direction: column; gap: 10px; }
.kmsn-step {
  counter-increment: kmsn-step;
  display: flex; gap: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.05);
}
.kmsn-step::before {
  content: counter(kmsn-step);
  font-family: "JetBrains Mono", "Oswald", monospace;
  font-size: 1rem;
  font-weight: 700;
  color: #4de3ff;
  min-width: 22px;
  flex-shrink: 0;
}
.kmsn-sheet.is-fresh .kmsn-step::before { color: #6effa0; }
.kmsn-step-title {
  font-family: "Oswald", sans-serif;
  font-size: 0.85rem;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: #f5fbff;
  margin: 0 0 3px;
}
.kmsn-step-body { font-size: 0.85rem; line-height: 1.5; color: #b0c9d8; }

/* Sheet primary CTA */
.kmsn-primary {
  width: 100%;
  min-height: 54px;
  padding: 14px 22px;
  border-radius: 999px;
  border: 0;
  background: linear-gradient(180deg, #4de3ff 0%, #2ea8c6 100%);
  color: #041623;
  font-family: "Oswald", sans-serif;
  font-size: 1rem;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 8px 24px -6px rgba(77, 227, 255, 0.55), inset 0 1px 0 rgba(255,255,255,0.35);
  transition: transform 0.12s ease, filter 0.2s ease;
  margin-top: 6px;
}
.kmsn-sheet.is-fresh .kmsn-primary { background: linear-gradient(180deg, #6effa0 0%, #3fbf74 100%); box-shadow: 0 8px 24px -6px rgba(110, 255, 160, 0.5), inset 0 1px 0 rgba(255,255,255,0.35); }
.kmsn-primary:hover { transform: translateY(-1px); filter: brightness(1.05); }
.kmsn-primary:active { transform: translateY(0) scale(0.98); }
.kmsn-primary.is-danger { background: linear-gradient(180deg, #ff6b6b 0%, #c0392b 100%); color: #fff; box-shadow: 0 8px 24px -6px rgba(255, 107, 107, 0.5); }

/* Secondary actions (View Map, Ask Koravi, Adapt, End) */
.kmsn-actions {
  display: grid; gap: 10px;
  grid-template-columns: 1fr 1fr;
  margin-top: 14px;
}
.kmsn-action {
  min-height: 46px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.03);
  color: #eaf6ff;
  font-family: "Oswald", sans-serif;
  font-size: 0.78rem;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.kmsn-action:hover { background: rgba(77,227,255,0.08); border-color: rgba(77,227,255,0.35); }
.kmsn-sheet.is-fresh .kmsn-action:hover { background: rgba(110, 255, 160, 0.08); border-color: rgba(110, 255, 160, 0.35); }
.kmsn-action svg { width: 15px; height: 15px; }
.kmsn-action.is-wide { grid-column: 1 / -1; }

/* ─── Active Mission bar (floating above bottom nav) ─────────── */
.kmsn-active-bar {
  position: fixed;
  left: 10px; right: 10px;
  bottom: calc(84px + env(safe-area-inset-bottom));
  z-index: 3900;
  display: none;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(9, 32, 51, 0.96), rgba(6, 22, 38, 0.96));
  border: 1px solid rgba(77, 227, 255, 0.45);
  box-shadow: 0 12px 32px -12px rgba(0,0,0,0.7), inset 0 1px 0 rgba(255,255,255,0.06),
              0 0 24px -6px rgba(77, 227, 255, 0.35);
  cursor: pointer;
  color: #eaf6ff;
  font-family: "Oswald", sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.5px;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
  overflow: hidden;
  max-width: 640px;
  margin: 0 auto;
}
.kmsn-active-bar.is-fresh {
  border-color: rgba(110, 255, 160, 0.45);
  box-shadow: 0 12px 32px -12px rgba(0,0,0,0.7), inset 0 1px 0 rgba(255,255,255,0.06),
              0 0 24px -6px rgba(110, 255, 160, 0.35);
}
.kmsn-active-bar.is-visible { display: flex; }
.kmsn-active-bar:hover { transform: translateY(-1px); }
.kmsn-active-dot {
  width: 8px; height: 8px; border-radius: 999px;
  background: #4de3ff;
  box-shadow: 0 0 12px #4de3ff;
  flex-shrink: 0;
  animation: kmsn-pulse 1.8s ease-in-out infinite;
}
.kmsn-active-bar.is-fresh .kmsn-active-dot { background: #6effa0; box-shadow: 0 0 12px #6effa0; }
@keyframes kmsn-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.35); }
}
.kmsn-active-eyebrow {
  font-size: 0.6rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #4de3ff;
  flex-shrink: 0;
}
.kmsn-active-bar.is-fresh .kmsn-active-eyebrow { color: #6effa0; }
.kmsn-active-target {
  font-weight: 600;
  color: #f5fbff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 1;
  min-width: 0;
}
.kmsn-active-window {
  font-size: 0.72rem;
  color: #b0c9d8;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}
.kmsn-active-arrow {
  flex-shrink: 0;
  color: #b0c9d8;
}
.kmsn-active-arrow svg { width: 16px; height: 16px; display: block; }

/* Hide the active bar when a sheet is open so it never obscures dialogs. */
body.kmsn-sheet-open .kmsn-active-bar { display: none !important; }

/* Push page content up slightly on mobile so the bar never overlaps
   long-scrolling content or the Log Catch form controls. */
@media (max-width: 720px) {
  body.kmsn-active-on { padding-bottom: 148px !important; }
}
@media (min-width: 721px) {
  .kmsn-active-bar { bottom: 20px; }
  body.kmsn-active-on { padding-bottom: 90px; }
}

/* ─── Adapt Plan suggestions ─────────────────────────────────── */
.kmsn-adapt-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.kmsn-adapt-item {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-left: 3px solid #4de3ff;
}
.kmsn-sheet.is-fresh .kmsn-adapt-item { border-left-color: #6effa0; }
.kmsn-adapt-item.is-primary { background: rgba(77, 227, 255, 0.06); border-color: rgba(77, 227, 255, 0.28); }
.kmsn-sheet.is-fresh .kmsn-adapt-item.is-primary { background: rgba(110, 255, 160, 0.06); border-color: rgba(110, 255, 160, 0.28); }
.kmsn-adapt-verb {
  font-family: "Oswald", sans-serif;
  font-size: 0.9rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #f5fbff;
  margin: 0 0 5px;
}
.kmsn-adapt-note { font-size: 0.87rem; line-height: 1.5; color: #b0c9d8; }
.kmsn-adapt-why {
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(255,255,255,0.02);
  border: 1px dashed rgba(255,255,255,0.1);
  font-size: 0.82rem;
  color: #7d95a8;
  line-height: 1.5;
}
.kmsn-adapt-why strong {
  font-family: "Oswald", sans-serif;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #f5fbff;
  font-size: 0.7rem;
  display: block;
  margin-bottom: 3px;
}


/* ═══════════════════════════════════════════════════════════════
   HOME CONSOLIDATION · Progressive disclosure for deeper intel
   Mission owns the actionable journey — everything else collapses
   behind ONE restrained "More Detail" reveal. Preserves all DOM
   the underlying engines depend on; only presentation changes.
   ═══════════════════════════════════════════════════════════════ */
.kmsn-more-wrap {
  display: block;
  margin: 4px auto 28px;
  max-width: var(--k-measure, 960px);
  padding: 0 14px;
}
.kmsn-more {
  border: 1px solid rgba(77, 227, 255, 0.14);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(9, 26, 42, 0.55) 0%, rgba(6, 20, 34, 0.35) 100%);
  overflow: hidden;
  transition: border-color 0.2s ease;
}
.kmsn-more[open] {
  border-color: rgba(77, 227, 255, 0.28);
}
.is-fresh .kmsn-more,
.kmsn-more.is-fresh {
  border-color: rgba(110, 255, 160, 0.14);
}
.is-fresh .kmsn-more[open],
.kmsn-more.is-fresh[open] {
  border-color: rgba(110, 255, 160, 0.28);
}
.kmsn-more-summary {
  list-style: none;
  cursor: pointer;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.kmsn-more-summary::-webkit-details-marker { display: none; }
.kmsn-more-summary::marker { content: ""; }
.kmsn-more-summary-label {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.kmsn-more-eyebrow {
  font-family: "Oswald", sans-serif;
  font-size: 0.64rem;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: #4de3ff;
  margin: 0;
}
.is-fresh .kmsn-more-eyebrow,
.kmsn-more.is-fresh .kmsn-more-eyebrow { color: #6effa0; }
.kmsn-more-title {
  font-family: "Oswald", sans-serif;
  font-size: 0.98rem;
  letter-spacing: 0.6px;
  color: #eaf6ff;
  margin: 0;
}
.kmsn-more-note {
  font-size: 0.74rem;
  color: #7d95a8;
  margin: 0;
  letter-spacing: 0.2px;
}
.kmsn-more-chevron {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(77, 227, 255, 0.08);
  border: 1px solid rgba(77, 227, 255, 0.28);
  color: #4de3ff;
  transition: transform 0.25s ease, background-color 0.2s ease;
}
.is-fresh .kmsn-more-chevron,
.kmsn-more.is-fresh .kmsn-more-chevron {
  background: rgba(110, 255, 160, 0.08);
  border-color: rgba(110, 255, 160, 0.28);
  color: #6effa0;
}
.kmsn-more[open] .kmsn-more-chevron { transform: rotate(180deg); }
.kmsn-more-chevron svg { width: 16px; height: 16px; }
.kmsn-more-body {
  padding: 4px 4px 16px;
  border-top: 1px solid rgba(77, 227, 255, 0.10);
}
.is-fresh .kmsn-more-body,
.kmsn-more.is-fresh .kmsn-more-body {
  border-top-color: rgba(110, 255, 160, 0.10);
}
/* Sections moved into More Detail get slightly reduced visual weight
   so they read as secondary, not competing with Mission. */
.kmsn-more-body > section,
.kmsn-more-body > div {
  margin-top: 14px;
}
.kmsn-more-body > section:first-child,
.kmsn-more-body > div:first-child {
  margin-top: 6px;
}
/* Hide the redundant Home tools tile row — bottom nav already
   exposes Explore, Catch ID (inside Guide), Guide. */
.k-home-tools[hidden] { display: none !important; }

@media (max-width: 430px) {
  .kmsn-more-wrap { margin: 2px auto 22px; padding: 0 12px; }
  .kmsn-more-summary { padding: 14px 16px; }
  .kmsn-more-title { font-size: 0.92rem; }
  .kmsn-more-note { font-size: 0.7rem; }
}

/* ════════════════════════════════════════════════════════════════════
   THE KORAVI CALL · Home hero
   One dominant editorial conclusion. Deep-ocean atmosphere, no photo
   dependency, restrained depth. The score/conditions instrument below
   is demoted to quiet supporting evidence (see §is-kcall-quiet).
   ═══════════════════════════════════════════════════════════════════ */
.kcall-wrap {
  display: block;
  position: relative;
  overflow: visible;
  margin: 6px auto 18px;
  max-width: var(--k-measure, 960px);
  padding: 0 14px;
}
.kcall {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: block;
  border-radius: 26px;
  border: 1px solid rgba(77, 227, 255, 0.16);
  background:
    radial-gradient(135% 95% at 8% -10%, rgba(77, 227, 255, 0.16), transparent 58%),
    radial-gradient(120% 90% at 105% 108%, rgba(255, 183, 77, 0.13), transparent 62%),
    linear-gradient(168deg, #0b2338 0%, #061726 46%, #030d18 100%);
  box-shadow:
    0 34px 70px -34px rgba(0, 0, 0, 0.9),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.kcall.is-fresh {
  border-color: rgba(110, 255, 160, 0.16);
  background:
    radial-gradient(135% 95% at 8% -10%, rgba(110, 255, 160, 0.15), transparent 58%),
    radial-gradient(120% 90% at 105% 108%, rgba(255, 183, 77, 0.12), transparent 62%),
    linear-gradient(168deg, #0a2018 0%, #05150f 46%, #020b07 100%);
}
/* Grain + a single soft horizon line: depth without imagery. */
.kcall-grain {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.5;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}
.kcall::after {
  content: none;
}
.kcall.is-fresh::after { content: none; }

.kcall-inner {
  position: relative;
  z-index: 1;
  padding: 30px 24px 26px;
  text-align: left;
}
.kcall-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 26px;
}
.kcall-eyebrow {
  font-family: "Oswald", sans-serif;
  font-size: 0.64rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #4de3ff;
  white-space: nowrap;
}
.kcall.is-fresh .kcall-eyebrow { color: #6effa0; }
.kcall-place {
  font-family: "Oswald", sans-serif;
  font-size: 0.64rem;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: rgba(176, 201, 216, 0.7);
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 56%;
}
.kcall-headline {
  font-family: "Oswald", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: clamp(2.1rem, 9.8vw, 3.1rem);
  line-height: 0.94;
  letter-spacing: -0.5px;
  margin: 0;
  color: #f2fbff;
  text-wrap: balance;
  text-shadow: 0 6px 26px rgba(0, 0, 0, 0.55);
}
.kcall.is-fresh .kcall-headline { color: #f2fff6; }

/* ── status line under the headline (window closed etc.) ── */
.kcall-status {
  margin-top: 14px;
  display: block;
}
.kcall-status[hidden] { display: none !important; }
.kcall-status-main {
  display: block;
  font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
  font-size: 1.02rem;
  line-height: 1.4;
  color: #ffc766;
}
.kcall-status-sub {
  display: block;
  margin-top: 2px;
  font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
  font-size: 0.9rem;
  color: rgba(207, 228, 240, 0.78);
}
.kcall-status-sub:empty { display: none; }

/* ── the strategy brief: ONE surface, thin separators, no cards ── */
.kcall-rows {
  margin-top: 24px;
  display: block;
}
.kcall-rows:empty { display: none; }
.kcall-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: start;
  gap: 0 14px;
  padding: 16px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.kcall-row:first-child { border-top: 0; padding-top: 4px; }
.kcall-row-icon {
  display: block;
  width: 24px;
  height: 24px;
  margin-top: 12px;
  color: rgba(77, 227, 255, 0.82);
}
.kcall.is-fresh .kcall-row-icon { color: rgba(110, 255, 160, 0.8); }
.kcall-row-icon svg { width: 100%; height: 100%; display: block; }
.kcall-row-body { min-width: 0; }
.kcall-row-label {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 0.6rem;
  letter-spacing: 3.2px;
  text-transform: uppercase;
  color: rgba(176, 201, 216, 0.62);
  margin-bottom: 5px;
}
.kcall-row-primary {
  display: block;
  font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
  font-weight: 600;
  font-size: 1.06rem;
  line-height: 1.32;
  color: #f2fbff;
  overflow-wrap: break-word;
}
.kcall-row-sec {
  display: block;
  margin-top: 4px;
  font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
  font-size: 0.88rem;
  line-height: 1.5;
  color: rgba(207, 228, 240, 0.76);
  overflow-wrap: break-word;
}
.kcall-row-chip {
  align-self: center;
  max-width: 96px;
  text-align: center;
  font-family: "Oswald", sans-serif;
  font-size: 0.56rem;
  letter-spacing: 1.8px;
  line-height: 1.25;
  text-transform: uppercase;
  color: #9df0c2;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(110, 255, 160, 0.28);
  background: rgba(24, 84, 60, 0.34);
}
.kcall-row-time .kcall-row-primary {
  font-family: "Oswald", sans-serif;
  font-weight: 600;
  font-size: 1.34rem;
  letter-spacing: 1px;
  color: #ffc766;
}
.kcall-cta {
  margin-top: 26px;
  width: 100%;
  min-height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-family: "Oswald", sans-serif;
  font-size: 1rem;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: #04121d;
  background: linear-gradient(100deg, #4de3ff 0%, #7ef0ff 52%, #b8f7ff 100%);
  box-shadow: 0 16px 34px -16px rgba(77, 227, 255, 0.7);
  transition: transform 180ms ease, box-shadow 220ms ease, filter 180ms ease;
}
.kcall.is-fresh .kcall-cta {
  color: #04180e;
  background: linear-gradient(100deg, #6effa0 0%, #a6ffc6 55%, #d6ffe6 100%);
  box-shadow: 0 16px 34px -16px rgba(110, 255, 160, 0.6);
}
.kcall-cta svg { width: 18px; height: 18px; }
.kcall-cta:hover { transform: translateY(-2px); filter: brightness(1.04); }
.kcall-cta:active { transform: translateY(0) scale(0.985); }
.kcall-cta:focus-visible { outline: 2px solid #ffc766; outline-offset: 3px; }

.kcall-foot {
  margin-top: 20px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
}
.kcall-wiz {
  font-family: "Oswald", sans-serif;
  font-size: 0.66rem;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: rgba(176, 201, 216, 0.82);
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.035);
}
.kcall-alt {
  font-family: "Oswald", sans-serif;
  font-size: 0.64rem;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  color: rgba(176, 201, 216, 0.5);
}
.kcall-alt:empty { display: none; }

@media (prefers-reduced-motion: no-preference) {
  .kcall.is-ready .kcall-eyebrow,
  .kcall.is-ready .kcall-headline,
  .kcall.is-ready .kcall-status,
  .kcall.is-ready .kcall-rows,
  .kcall.is-ready .kcall-cta,
  .kcall.is-ready .kcall-foot {
    animation: kcall-rise 620ms cubic-bezier(0.22, 0.68, 0.24, 1) both;
  }
  .kcall.is-ready .kcall-headline { animation-delay: 70ms; }
  .kcall.is-ready .kcall-status { animation-delay: 150ms; }
  .kcall.is-ready .kcall-rows { animation-delay: 220ms; }
  .kcall.is-ready .kcall-cta { animation-delay: 320ms; }
  .kcall.is-ready .kcall-foot { animation-delay: 390ms; }
}
@keyframes kcall-rise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 430px) {
  .kcall-wrap { padding: 0 12px; margin-bottom: 14px; }
  .kcall-inner { padding: 24px 18px 20px; }
  .kcall-top { margin-bottom: 20px; }
  .kcall-row { grid-template-columns: 26px minmax(0, 1fr) auto; gap: 0 12px; padding: 14px 0; }
  .kcall-row-icon { width: 21px; height: 21px; margin-top: 11px; }
  .kcall-row-primary { font-size: 1.01rem; }
  .kcall-row-chip { max-width: 84px; font-size: 0.53rem; letter-spacing: 1.4px; padding: 6px 8px; }
}
@media (min-width: 760px) {
  .kcall-inner { padding: 46px 44px 38px; }
  .kcall-headline { font-size: 3.2rem; }
  .kcall-cta { width: auto; min-width: 280px; padding: 0 34px; }
}

/* ── Build My Trip block is folded into the hero CTA ── */
.kmsn-cta-wrap[hidden] { display: none !important; }

/* ════════════════════════════════════════════════════════════════════
   HOME LOCATION MODULE  ("Fishing at" instrument, is-kcall-quiet)
   Compact marine-instrument panel at the TOP of Home: place + CHANGE,
   water type + temp, the three location actions inline, then the live
   conditions strip. Same nodes, same listeners — presentation only.
   ═══════════════════════════════════════════════════════════════════ */
#tab-home .fko-hero.is-kcall-quiet {
  padding: 0;
  min-height: 0;
  margin: 12px 0 14px;
  border-radius: 20px;
  border: 1px solid rgba(77, 227, 255, 0.18);
  background: linear-gradient(180deg, rgba(9, 30, 48, 0.88), rgba(4, 15, 25, 0.92));
  box-shadow: 0 0 0 1px rgba(77, 227, 255, 0.05), 0 16px 34px -28px rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
#tab-home .fko-hero.is-kcall-quiet.is-fresh,
#tab-home .fko-hero.is-kcall-quiet.fko-fresh { border-color: rgba(110, 255, 160, 0.18); }
#tab-home .fko-hero.is-kcall-quiet .fko-hero-media,
#tab-home .fko-hero.is-kcall-quiet .fko-hero-shade,
#tab-home .fko-hero.is-kcall-quiet .fko-outlook-label,
#tab-home .fko-hero.is-kcall-quiet .fko-opp,
#tab-home .fko-hero.is-kcall-quiet .fko-hud-hint {
  display: none !important;
}
#tab-home .fko-hero.is-kcall-quiet.is-wiz-demoted .fko-score { display: none !important; }
#tab-home .fko-hero.is-kcall-quiet .fko-hero-inner { padding: 14px 14px 12px; }

#tab-home .fko-hero.is-kcall-quiet .fko-ctx { text-align: left; }
#tab-home .fko-hero.is-kcall-quiet .fko-kicker { font-size: 0.56rem; opacity: 0.72; }
#tab-home .fko-hero.is-kcall-quiet .fko-place-row {
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  margin-top: 2px;
}
#tab-home .fko-hero.is-kcall-quiet .fko-place {
  font-size: 1.26rem !important;
  letter-spacing: 0.02em;
  margin: 0;
}
#tab-home .fko-hero.is-kcall-quiet .fko-ctx-meta {
  justify-content: flex-start;
  gap: 10px;
  margin-top: 7px;
  font-size: 0.62rem;
}
#tab-home .fko-hero.is-kcall-quiet .fko-ctx-sub { color: rgba(206, 232, 245, 0.82); }

/* The location actions are permanently inline — no collapsed sheet. */
#tab-home .fko-hero.is-kcall-quiet .fko-sheet { grid-template-rows: 1fr; }
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body {
  margin-top: 12px;
  padding: 0;
  background: none;
  border: 0;
  overflow: visible;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 8px;
}
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > * { width: 100%; margin: 0 !important; }
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > #salt-use-gps,
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > #salt-search-toggle,
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > .saltwater-link {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 16px;
  border-radius: 14px;
  font-family: 'Oswald', sans-serif;
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: background-color 160ms ease, border-color 160ms ease, transform 120ms ease;
}
/* USE MY LOCATION stays the strongest action. */
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > #salt-use-gps {
  color: #f2fbff;
  background: rgba(77, 227, 255, 0.12);
  border: 1px solid rgba(77, 227, 255, 0.55);
  box-shadow: inset 0 0 20px -12px rgba(77, 227, 255, 0.9);
}
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > #salt-search-toggle {
  color: #dff2fb;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(77, 227, 255, 0.26);
}
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > .saltwater-link {
  color: #7fdcf5;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: none;
  text-decoration: none;
}
#tab-home .fko-hero.fko-fresh.is-kcall-quiet .fko-sheet-body > .saltwater-link { color: #8ff2bb; }
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > #salt-use-gps:active,
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > #salt-search-toggle:active,
#tab-home .fko-hero.is-kcall-quiet .fko-sheet-body > .saltwater-link:active { transform: scale(0.985); }
/* Freshwater: the water search IS the location search — flatten its own
   card so it reads as part of the instrument, and promote NEAR ME. */
#tab-home .fko-hero.is-kcall-quiet .lake-search-wrap { padding: 0; max-width: none; }
#tab-home .fko-hero.is-kcall-quiet .lake-search-inner {
  background: none;
  border: 0;
  padding: 0;
}
#tab-home .fko-hero.is-kcall-quiet .lake-search-label {
  font-size: 0.56rem;
  letter-spacing: 0.2em;
  margin-bottom: 8px;
  opacity: 0.8;
}
#tab-home .fko-hero.is-kcall-quiet .lake-search-row { gap: 8px; flex-wrap: wrap; flex-direction: row !important; }
#tab-home .fko-hero.is-kcall-quiet .lake-search-row input {
  flex: 1 1 100%;
  min-width: 0;
  min-height: 46px;
  padding: 12px 14px;
  border-radius: 14px;
  font-size: 0.9rem;
}
#tab-home .fko-hero.is-kcall-quiet #lake-gps-btn,
#tab-home .fko-hero.is-kcall-quiet #lake-search-btn {
  flex: 1 1 0;
  min-width: 0;
  min-height: 46px;
  padding: 0 14px !important;
  border-radius: 14px !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
}
#tab-home .fko-hero.is-kcall-quiet #lake-gps-btn {
  color: #f0fff7 !important;
  background: rgba(110, 255, 160, 0.13) !important;
  border: 1px solid rgba(110, 255, 160, 0.5) !important;
  box-shadow: inset 0 0 20px -12px rgba(110, 255, 160, 0.9) !important;
}
#tab-home .fko-hero.is-kcall-quiet #lake-search-btn {
  color: #dff6ea;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(110, 255, 160, 0.24);
}

#tab-home .fko-hero.is-kcall-quiet .fko-hud {
  margin-top: 12px;
  padding: 10px 2px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
}
#tab-home .fko-hero.is-kcall-quiet .fko-hud-cell { background: transparent; }
.kcall-foot[hidden]{display:none !important;}
.kcall-place[hidden]{display:none !important;}

/* ════════════════════════════════════════════════════════════════════
   KORAVI CALL · SIGNATURE FRAME  (v2 — real-device luminance)
   The BASE state is luminous on its own: a 3px illuminated perimeter
   with light bleeding into the dark background, an inner glow so the
   edge does not look pasted on, and layered depth shadows. The slow
   travelling arc is enhancement only. One composited transform, no
   assets, no library; all motion inside prefers-reduced-motion.
   ═══════════════════════════════════════════════════════════════════ */
.kcall {
  position: relative;
  z-index: 1;
  border: 0;
  box-shadow:
    /* crisp illuminated edge */
    0 0 0 1px rgba(77, 227, 255, 0.5),
    /* ONE tight bloom hugging the card */
    0 0 12px -3px rgba(77, 227, 255, 0.3),
    /* restrained depth behind the card */
    0 26px 56px -34px rgba(0, 0, 0, 0.9),
    /* subtle inner illumination + top highlight */
    inset 0 0 22px -12px rgba(77, 227, 255, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.kcall.is-fresh {
  box-shadow:
    0 0 0 1px rgba(110, 255, 160, 0.46),
    0 0 12px -3px rgba(110, 255, 160, 0.28),
    0 26px 56px -34px rgba(0, 0, 0, 0.9),
    inset 0 0 22px -12px rgba(110, 255, 160, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
/* Prime/active opportunity earns a localized amber warmth. */
.kcall.is-prime {
  box-shadow:
    0 0 0 1px rgba(255, 199, 102, 0.44),
    0 0 12px -3px rgba(255, 199, 102, 0.26),
    0 26px 56px -34px rgba(0, 0, 0, 0.9),
    inset 0 0 22px -12px rgba(255, 199, 102, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.11);
}

.kcall-ring {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  pointer-events: none;
  padding: 2px;
  opacity: 1;
  /* full-perimeter luminous base — visible with animation at its dimmest */
  background:
    linear-gradient(150deg,
      rgba(77, 227, 255, 0.95) 0%,
      rgba(77, 227, 255, 0.4) 26%,
      rgba(120, 220, 255, 0.28) 48%,
      rgba(255, 199, 102, 0.42) 72%,
      rgba(77, 227, 255, 0.85) 100%);
  -webkit-mask: linear-gradient(#000, #000) content-box, linear-gradient(#000, #000);
  mask: linear-gradient(#000, #000) content-box, linear-gradient(#000, #000);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  filter: saturate(1.15);
}
.kcall.is-fresh .kcall-ring {
  background:
    linear-gradient(150deg,
      rgba(110, 255, 160, 0.92) 0%,
      rgba(110, 255, 160, 0.36) 26%,
      rgba(160, 245, 210, 0.26) 48%,
      rgba(255, 199, 102, 0.36) 72%,
      rgba(110, 255, 160, 0.8) 100%);
}
.kcall-ring-arc {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 190%;
  aspect-ratio: 1 / 1;
  transform: translate(-50%, -50%) rotate(-30deg);
  background: conic-gradient(from 0deg,
    rgba(255, 255, 255, 0) 0deg,
    rgba(255, 255, 255, 0) 186deg,
    rgba(180, 245, 255, 0.7) 236deg,
    rgba(240, 254, 255, 1) 258deg,
    rgba(255, 214, 140, 0.75) 280deg,
    rgba(255, 255, 255, 0) 318deg,
    rgba(255, 255, 255, 0) 360deg);
  will-change: transform;
}
.kcall.is-fresh .kcall-ring-arc {
  background: conic-gradient(from 0deg,
    rgba(255, 255, 255, 0) 0deg,
    rgba(255, 255, 255, 0) 186deg,
    rgba(190, 255, 220, 0.68) 236deg,
    rgba(240, 255, 246, 1) 258deg,
    rgba(255, 214, 140, 0.7) 280deg,
    rgba(255, 255, 255, 0) 318deg,
    rgba(255, 255, 255, 0) 360deg);
}
/* A second, wider soft halo just outside the frame so the light reads
   as bleeding into the ocean background rather than stopping at 1px. */
.kcall-glow {
  position: absolute;
  inset: -6px 10px -8px;
  border-radius: 34px;
  pointer-events: none;
  z-index: 0;
  background: radial-gradient(58% 38% at 50% 4%, rgba(77, 227, 255, 0.13), transparent 74%),
    radial-gradient(54% 34% at 50% 98%, rgba(77, 227, 255, 0.09), transparent 76%);
  filter: blur(10px);
}
.kcall-wrap.is-fresh .kcall-glow {
  background: radial-gradient(58% 38% at 50% 4%, rgba(110, 255, 160, 0.12), transparent 74%),
    radial-gradient(54% 34% at 50% 98%, rgba(110, 255, 160, 0.08), transparent 76%);
}
.kcall-wrap.is-prime .kcall-glow {
  background: radial-gradient(58% 38% at 50% 4%, rgba(77, 227, 255, 0.12), transparent 74%),
    radial-gradient(56% 36% at 50% 98%, rgba(255, 183, 77, 0.12), transparent 76%);
}

@media (prefers-reduced-motion: no-preference) {
  .kcall-ring-arc { animation: kcall-orbit 34s linear infinite; }
  .kcall.is-loading .kcall-ring-arc { animation-duration: 8s; }
  /* narrow band so the frame is never dim */
  .kcall-ring { animation: kcall-breathe 11s ease-in-out infinite; }
  .kcall-glow { animation: kcall-halo 11s ease-in-out infinite; }
  /* one-time reveal illumination when the completed call lands */
  .kcall.is-revealed::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(104deg, transparent 34%, rgba(200, 248, 255, 0.2) 50%, transparent 66%);
    animation: kcall-sweep 1150ms cubic-bezier(0.3, 0.7, 0.2, 1) 1 both;
  }
}
@keyframes kcall-orbit {
  from { transform: translate(-50%, -50%) rotate(-30deg); }
  to { transform: translate(-50%, -50%) rotate(330deg); }
}
@keyframes kcall-breathe {
  0%, 100% { opacity: 0.86; }
  50% { opacity: 1; }
}
@keyframes kcall-halo {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 0.9; }
}
@keyframes kcall-sweep {
  from { opacity: 0; transform: translateX(-28%); }
  35% { opacity: 1; }
  to { opacity: 0; transform: translateX(28%); }
}

/* ── neutral readiness state: no provisional species, ever ── */
.kcall.is-loading .kcall-headline {
  color: rgba(207, 228, 240, 0.62);
  font-size: clamp(1.7rem, 7.6vw, 2.3rem);
  letter-spacing: 0.4px;
}
.kcall.is-loading .kcall-inner { padding-bottom: 22px; }
.kcall.is-loading .kcall-cta { opacity: 0.94; }
@media (prefers-reduced-motion: no-preference) {
  .kcall.is-loading .kcall-headline { animation: kcall-dim 2.4s ease-in-out infinite; }
}
@keyframes kcall-dim {
  0%, 100% { opacity: 0.62; }
  50% { opacity: 1; }
}
