/* Preview-only theme + seasonal kit for local ECCnew */
:root,
html[data-theme="signal"] {
  --bg: #05060a;
  --bg-2: #08090e;
  --bg-3: #0c0e14;
  --line: #f4f1ea1a;
  --text: #f4f1ea;
  --muted: #9a948c;
  --accent: #f2040c;
  --accent-2: #ff2d2d;
  --cta-top: #ff2a2a;
  --cta-mid: #f2040c;
  --cta-bot: #c4030a;
  --cta-glow: #f2040c;
}
html[data-theme="blueprint"] {
  --bg: #061018;
  --bg-2: #0a1822;
  --bg-3: #102230;
  --line: #9ad8ee22;
  --text: #e8f4fa;
  --muted: #8aa8b6;
  --accent: #2eb5e0;
  --accent-2: #6ed4f5;
  --cta-top: #5ecfff;
  --cta-mid: #2eb5e0;
  --cta-bot: #1a8fb8;
  --cta-glow: #2eb5e0;
  --nav: rgba(232, 244, 250, 0.78);
  --nav-strong: #fff;
  --surface: #0a1822;
  --input-bg: #061018;
  --foot-link: #c9d6dc;
  --hero-veil-0: rgba(7, 20, 28, 0.95);
  --hero-veil-1: rgba(7, 20, 28, 0.88);
  --hero-veil-2: rgba(7, 20, 28, 0.45);
  --hero-veil-3: rgba(7, 20, 28, 0.12);
  --hero-veil-4: rgba(7, 20, 28, 0.05);
  --hero-lead: rgba(244, 241, 234, 0.82);
  --hero-call: rgba(244, 241, 234, 0.7);
  --band-bg: rgba(6, 16, 24, 0.78);
  --lead: #c9d6dc;
  --ink-on-accent: #ffffff;
}
html[data-theme="blueprint"][data-scheme="light"] {
  /* Crisp plan sheet — white field, ink lines, cyan only on highlights */
  --bg: #ffffff;
  --bg-2: #f7f9fc;
  --bg-3: #eef3f7;
  --line: rgba(15, 23, 42, 0.10);
  --text: #0f172a;
  --muted: #475569;
  --accent: #1a8fb8;
  --accent-2: #2eb5e0;
  --cta-top: #3db8e0;
  --cta-mid: #1a8fb8;
  --cta-bot: #147394;
  --cta-glow: #1a8fb8;
  --nav: rgba(15, 36, 48, 0.72);
  --nav-strong: #0f172a;
  --surface: #ffffff;
  --input-bg: #ffffff;
  --foot-link: #0f172a;
  --hero-veil-0: rgba(255, 255, 255, 0.97);
  --hero-veil-1: rgba(255, 255, 255, 0.92);
  --hero-veil-2: rgba(255, 255, 255, 0.72);
  --hero-veil-3: rgba(255, 255, 255, 0.35);
  --hero-veil-4: rgba(255, 255, 255, 0.12);
  --hero-lead: rgba(15, 23, 42, 0.78);
  --hero-call: rgba(15, 23, 42, 0.62);
  --band-bg: rgba(255, 255, 255, 0.94);
  --lead: #3d5360;
  --ink-on-accent: #ffffff;
}
@media (prefers-color-scheme: light) {
  html[data-theme="blueprint"]:not([data-scheme="dark"]) {
    --bg: #ffffff;
    --bg-2: #f7f9fc;
    --bg-3: #eef3f7;
    --line: rgba(15, 23, 42, 0.10);
    --text: #0f172a;
    --muted: #475569;
    --accent: #1a8fb8;
    --accent-2: #2eb5e0;
    --cta-top: #3db8e0;
    --cta-mid: #1a8fb8;
    --cta-bot: #147394;
    --cta-glow: #1a8fb8;
    --nav: rgba(15, 36, 48, 0.72);
    --nav-strong: #0f172a;
    --surface: #ffffff;
    --input-bg: #ffffff;
    --foot-link: #0f172a;
    --hero-veil-0: rgba(255, 255, 255, 0.97);
    --hero-veil-1: rgba(255, 255, 255, 0.92);
    --hero-veil-2: rgba(255, 255, 255, 0.72);
    --hero-veil-3: rgba(255, 255, 255, 0.35);
    --hero-veil-4: rgba(255, 255, 255, 0.12);
    --hero-lead: rgba(15, 23, 42, 0.78);
    --hero-call: rgba(15, 23, 42, 0.62);
    --band-bg: rgba(255, 255, 255, 0.94);
    --lead: #3d5360;
    --ink-on-accent: #ffffff;
  }
}
html[data-theme="blueprint"][data-scheme="dark"] {
  --bg: #061018;
  --bg-2: #0a1822;
  --bg-3: #102230;
  --line: #9ad8ee22;
  --text: #e8f4fa;
  --muted: #8aa8b6;
  --accent: #2eb5e0;
  --accent-2: #6ed4f5;
  --cta-top: #5ecfff;
  --cta-mid: #2eb5e0;
  --cta-bot: #1a8fb8;
  --cta-glow: #2eb5e0;
  --nav: rgba(232, 244, 250, 0.78);
  --nav-strong: #fff;
  --surface: #0a1822;
  --input-bg: #061018;
  --foot-link: #c9d6dc;
  --hero-veil-0: rgba(7, 20, 28, 0.95);
  --hero-veil-1: rgba(7, 20, 28, 0.88);
  --hero-veil-2: rgba(7, 20, 28, 0.45);
  --hero-veil-3: rgba(7, 20, 28, 0.12);
  --hero-veil-4: rgba(7, 20, 28, 0.05);
  --hero-lead: rgba(244, 241, 234, 0.82);
  --hero-call: rgba(244, 241, 234, 0.7);
  --band-bg: rgba(6, 16, 24, 0.78);
  --lead: #c9d6dc;
  --ink-on-accent: #ffffff;
}
html[data-theme="steel"] {
  --bg: #0b0d12;
  --bg-2: #12151c;
  --bg-3: #181c26;
  --line: #c5d0dc22;
  --text: #e6eaf0;
  --muted: #8b95a3;
  --accent: #8aa4b8;
  --accent-2: #b7c9d6;
  --cta-top: #b7c9d6;
  --cta-mid: #8aa4b8;
  --cta-bot: #5e7386;
  --cta-glow: #8aa4b8;
}
html[data-theme="paper"] {
  --bg: #ffffff;
  --bg-2: #f7f9fc;
  --bg-3: #eef3f7;
  --line: #1c191422;
  --text: #1c1914;
  --muted: #6b6458;
  --accent: #1f4e79;
  --accent-2: #2d6a9f;
  --cta-top: #3a7eb5;
  --cta-mid: #1f4e79;
  --cta-bot: #163a5c;
  --cta-glow: #1f4e79;
}
html, body { background: var(--bg); color: var(--text); }
.cta-primary,
a.cta-primary {
  color: #fff !important;
  background: linear-gradient(180deg, var(--cta-top) 0%, var(--cta-mid) 55%, var(--cta-bot) 100%) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--cta-glow) 35%, transparent),
    0 8px 18px color-mix(in srgb, var(--cta-glow) 18%, transparent) !important;
}
.cta-primary:hover,
a.cta-primary:hover {
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-2) 50%, transparent),
    0 10px 22px color-mix(in srgb, var(--cta-glow) 24%, transparent) !important;
}

#ecc-theme-kit {
  position: fixed;
  left: 14px;
  bottom: 14px;
  z-index: 9999;
  width: 228px;
  padding: 12px 12px 10px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--bg-2) 92%, transparent);
  color: var(--text);
  font: 12px/1.35 ui-sans-serif, system-ui, sans-serif;
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px #0006;
}
#ecc-theme-kit h4 {
  margin: 0 0 8px;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
}
#ecc-theme-kit .swatches {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
#ecc-theme-kit button.swatch {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 7px 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg-3);
  color: var(--text);
  cursor: pointer;
  text-align: left;
  font: inherit;
}
#ecc-theme-kit button.swatch[aria-pressed="true"] {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
}
#ecc-theme-kit .dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex: 0 0 12px;
}
#ecc-theme-kit select {
  width: 100%;
  margin-top: 8px;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--bg-3);
  color: var(--text);
  font: inherit;
}
#ecc-theme-kit .note {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 10px;
}

#ecc-season {
  position: fixed;
  inset: 0;
  z-index: 30; /* below .ecc-top (50) so leaves never cover FAQ/nav */
  pointer-events: none;
  overflow: hidden;
}
#ecc-season .ecc-season-rail {
  position: absolute;
  top: 4.75rem; /* clear sticky header band */
  right: 0;
  bottom: 0;
  width: min(32vw, 420px);
  pointer-events: none;
  overflow: hidden;
}

#ecc-season .ecc-fall-wrap {
  position: absolute;
  top: -8%;
  pointer-events: none;
  opacity: 0.7;
  animation-name: ecc-fall;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-fill-mode: both;
  transform-origin: 50% 50%;
  will-change: transform, opacity;
}
#ecc-season .ecc-fall-icon,
#ecc-season .ecc-leaf {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
@keyframes ecc-fall {
  0% { transform: translate3d(0, -8vh, 0) rotate(-18deg); opacity: 0; }
  8% { opacity: 0.55; }
  50% { opacity: 0.42; }
  78% { opacity: 0.42; }
  100% { transform: translate3d(var(--dx, 40px), 108vh, 0) rotate(var(--rot, 280deg)); opacity: 0; }
}

#ecc-season .ecc-fall-wrap.ecc-ghost {
  opacity: 0.45;
  animation-name: ecc-fall-ghost;
}
@keyframes ecc-fall-ghost {
  0% { transform: translate3d(0, -8vh, 0) rotate(-8deg); opacity: 0; }
  10% { opacity: 0.38; }
  50% { opacity: 0.32; }
  100% { transform: translate3d(var(--dx, 30px), 108vh, 0) rotate(var(--rot, 40deg)); opacity: 0; }
}

/* Memorial Day: gentle drift, lower opacity, subtle flag shadow */
#ecc-season .ecc-fall-wrap.ecc-memorial {
  opacity: 0.55;
  animation-name: ecc-fall-memorial;
}
@keyframes ecc-fall-memorial {
  0% { transform: translate3d(0, -6vh, 0) rotate(-6deg); opacity: 0; }
  12% { opacity: 0.58; }
  55% { opacity: 0.48; }
  100% { transform: translate3d(var(--dx, 18px), 108vh, 0) rotate(var(--rot, 24deg)); opacity: 0; }
}
#ecc-season .ecc-flag-icon {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 19 / 10;
  object-fit: contain;
  filter: drop-shadow(0 1px 2px rgba(15, 23, 42, 0.22));
}
#ecc-season .ecc-star-memorial {
  filter: drop-shadow(0 0 3px rgba(29, 78, 216, 0.35));
}

#ecc-season .ecc-pumpkin-icon {
  filter: drop-shadow(0 0 5px rgba(244, 144, 12, 0.38));
}

#ecc-season .ecc-light-string {
  position: absolute;
  left: 3%;
  right: 3%;
  bottom: 4px;
  height: 22px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  pointer-events: none;
  border-top: 1px solid rgba(196, 160, 80, 0.32);
  padding-top: 6px;
}
#ecc-season .ecc-bulb {
  width: 7px;
  height: 10px;
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 6px currentColor;
  animation-name: ecc-bulb-blink;
  animation-duration: 2.2s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}
@keyframes ecc-bulb-blink {
  0%, 100% { opacity: 0.42; filter: brightness(0.8); }
  50% { opacity: 0.92; filter: brightness(1.35); }
}

#ecc-season .ecc-frost-edge {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 42px;
  pointer-events: none;
  background:
    radial-gradient(ellipse 8px 5px at 12% 80%, rgba(230, 244, 255, 0.35), transparent 70%),
    radial-gradient(ellipse 6px 4px at 28% 90%, rgba(210, 232, 255, 0.28), transparent 70%),
    radial-gradient(ellipse 7px 4px at 47% 78%, rgba(230, 244, 255, 0.3), transparent 70%),
    radial-gradient(ellipse 5px 3px at 63% 88%, rgba(200, 228, 255, 0.26), transparent 70%),
    radial-gradient(ellipse 8px 5px at 81% 82%, rgba(230, 244, 255, 0.32), transparent 70%),
    radial-gradient(ellipse 6px 4px at 93% 92%, rgba(210, 232, 255, 0.24), transparent 70%),
    linear-gradient(to top, rgba(210, 230, 255, 0.2), rgba(210, 230, 255, 0.07) 45%, transparent);
}



#ecc-season .ecc-bloom-garden {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: visible;
}
#ecc-season .ecc-bloom-plant {
  position: absolute;
  display: block;
  pointer-events: none;
  transform-origin: 50% 100%;
  will-change: transform;
  animation: ecc-bloom-sway 5.2s ease-in-out calc(var(--bloom-delay, 0s) + 3.2s) infinite;
}
#ecc-season .ecc-bloom-svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
#ecc-season .ecc-bloom-stem {
  fill: none;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: ecc-bloom-stem-grow 2.1s ease-out var(--bloom-delay, 0s) forwards;
}
#ecc-season .ecc-bloom-leaf {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  animation: ecc-bloom-leaf-sprout 0.7s cubic-bezier(0.22, 1.2, 0.36, 1) calc(var(--bloom-delay, 0s) + 1.35s) forwards;
}
#ecc-season .ecc-bloom-head {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.18));
  animation: ecc-bloom-head-in 0.55s ease-out calc(var(--bloom-delay, 0s) + 1.85s) forwards;
}
#ecc-season .ecc-bloom-bud {
  opacity: 1;
  transform-box: fill-box;
  transform-origin: center;
  animation: ecc-bloom-bud-fade 0.55s ease-in calc(var(--bloom-delay, 0s) + 2.35s) forwards;
}
#ecc-season .ecc-bloom-petals,
#ecc-season .ecc-bloom-floret {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  animation: ecc-bloom-petals-open 1.15s cubic-bezier(0.18, 1.25, 0.32, 1) calc(var(--bloom-delay, 0s) + 2.25s) forwards;
}
#ecc-season .ecc-bloom-petal {
  transform-box: fill-box;
  transform-origin: center bottom;
}
#ecc-season .ecc-bloom-center {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  animation: ecc-bloom-center-in 0.5s ease-out calc(var(--bloom-delay, 0s) + 2.7s) forwards;
}
@keyframes ecc-bloom-stem-grow {
  to { stroke-dashoffset: 0; }
}
@keyframes ecc-bloom-leaf-sprout {
  0% { opacity: 0; }
  100% { opacity: 0.9; }
}
@keyframes ecc-bloom-head-in {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes ecc-bloom-bud-fade {
  0% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes ecc-bloom-petals-open {
  0% { opacity: 0; transform: scale(0.12); }
  62% { opacity: 1; transform: scale(1.12); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes ecc-bloom-center-in {
  0% { opacity: 0; transform: scale(0.4); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes ecc-bloom-sway {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(var(--bloom-sway, 4deg)); }
}

/* Legacy vine selectors kept as no-ops if old markup briefly appears */
#ecc-season .ecc-vine-overlay { position: absolute; inset: 0; pointer-events: none; }
#ecc-season .ecc-fall-wrap {
  z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
  #ecc-season .ecc-bloom-stem,
  #ecc-season .ecc-bloom-leaf,
  #ecc-season .ecc-bloom-head,
  #ecc-season .ecc-bloom-bud,
  #ecc-season .ecc-bloom-petals,
  #ecc-season .ecc-bloom-floret,
  #ecc-season .ecc-bloom-center,
  #ecc-season .ecc-bloom-plant {
    animation: none !important;
  }
  #ecc-season .ecc-bloom-stem { stroke-dashoffset: 0; }
  #ecc-season .ecc-bloom-leaf,
  #ecc-season .ecc-bloom-head,
  #ecc-season .ecc-bloom-petals,
  #ecc-season .ecc-bloom-floret,
  #ecc-season .ecc-bloom-center { opacity: 1 !important; transform: none !important; }
  #ecc-season .ecc-bloom-bud { opacity: 0 !important; }
}

