/*! Dreamweave interactive experiences: shared styles. Scoped to .dwx-app so Divi can't leak in. */
.dwx-app {
  --dwx-bg: #010F2A; --dwx-surface: #0A1A3A; --dwx-soft: #12244A; --dwx-line: #24345C; --dwx-line-strong: #3B4B78;
  --dwx-ink: #EDE4D3; --dwx-cream: #F0E0C8; --dwx-muted: #B9B2AC; --dwx-gold: #D9B98A; --dwx-lav: #B6A4CE; --dwx-ice: #C7B9DC;
  --dwx-serif: "Cormorant", "Cormorant Garamond", Georgia, serif;
  --dwx-sans: "Karla", system-ui, -apple-system, "Segoe UI", sans-serif;
  box-sizing: border-box; max-width: 960px; margin: 0 auto; color: var(--dwx-ink);
  font-family: var(--dwx-sans); font-size: 17px; line-height: 1.65; text-align: left; color-scheme: dark;
}
.dwx-app *, .dwx-app *::before, .dwx-app *::after { box-sizing: border-box; }
.dwx-app [hidden] { display: none !important; }
.dwx-app p, .dwx-app h2, .dwx-app h3, .dwx-app fieldset, .dwx-app legend, .dwx-app ul { margin: 0; padding: 0; border: 0; }
.dwx-app .dwx-card {
  position: relative; overflow: hidden; border-radius: 16px; border: 1px solid var(--dwx-line);
  background-color: var(--dwx-bg);
  background-image:
    radial-gradient(1px 1px at 12% 8%, rgba(255,255,255,.6), transparent 60%), radial-gradient(1px 1px at 78% 5%, rgba(255,255,255,.5), transparent 60%),
    radial-gradient(1.5px 1.5px at 42% 12%, rgba(255,255,255,.5), transparent 60%), radial-gradient(1px 1px at 90% 18%, rgba(255,255,255,.45), transparent 60%),
    radial-gradient(900px 520px at 0% -160px, rgba(182,164,206,.16), transparent 70%), radial-gradient(800px 460px at 100% -120px, rgba(217,185,138,.12), transparent 70%);
  background-repeat: no-repeat; box-shadow: 0 24px 60px -30px rgba(0,0,0,.7);
}
.dwx-app .dwx-stage { position: relative; min-height: 420px; }
.dwx-app .dwx-pad { padding: 32px; }
.dwx-app .dwx-wordmark { display: inline-flex; align-items: center; gap: 10px; color: var(--dwx-gold); font-family: var(--dwx-serif); font-size: 1.3rem; font-weight: 600; letter-spacing: .02em; margin-bottom: 14px; }
.dwx-app .dwx-wordmark span { color: var(--dwx-cream); }
.dwx-app .dwx-mark { width: 28px; height: 28px; flex: none; }
.dwx-app .dwx-h { font-family: var(--dwx-serif); font-weight: 500; font-size: clamp(1.9rem, 4.6vw, 2.6rem); line-height: 1.1; color: var(--dwx-cream); margin: 0 0 12px; padding: 0; }
.dwx-app .dwx-h em { color: var(--dwx-gold); }
.dwx-app .dwx-h:focus { outline: none; }
.dwx-app .dwx-sub { font-family: var(--dwx-serif); font-weight: 500; font-size: 1.45rem; color: var(--dwx-cream); margin: 26px 0 12px; padding: 0; }
.dwx-app .dwx-lead { color: var(--dwx-muted); max-width: 62ch; }
.dwx-app .dwx-lead + .dwx-lead { margin-top: 10px; }
.dwx-app .dwx-note { font-size: 14.5px; color: var(--dwx-muted); border-left: 2px solid var(--dwx-line-strong); padding-left: 14px; margin: 18px 0; max-width: 62ch; }
.dwx-app .dwx-small { font-size: 13.5px; color: var(--dwx-muted); }
.dwx-app .dwx-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 18px; }
.dwx-app .dwx-admin-note { margin: 0 0 12px; padding: 10px 14px; border-radius: 10px; border: 1px dashed var(--dwx-gold); color: var(--dwx-gold); font-size: 14px; }

/* Buttons and choices */
.dwx-app .dwx-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 11px 20px; margin: 0;
  font: inherit; font-size: 15px; font-weight: 600; line-height: 1.2; cursor: pointer; text-decoration: none; text-align: center;
  color: var(--dwx-ink); background: transparent; border: 1px solid var(--dwx-line-strong); border-radius: 999px;
  transition: border-color .15s, filter .15s, transform .1s, background-color .15s;
}
.dwx-app .dwx-btn:hover { border-color: var(--dwx-gold); color: var(--dwx-ink); }
.dwx-app .dwx-btn:active { transform: translateY(1px); }
.dwx-app .dwx-btn-primary { background: var(--dwx-gold); border-color: var(--dwx-gold); color: var(--dwx-bg); font-weight: 700; }
.dwx-app .dwx-btn-primary:hover { filter: brightness(1.08); color: var(--dwx-bg); }
.dwx-app .dwx-btn-sm { min-height: 36px; padding: 6px 14px; font-size: 13.5px; }
.dwx-app .dwx-btn[disabled] { opacity: .45; cursor: default; }
.dwx-app :focus-visible { outline: 2px solid var(--dwx-gold); outline-offset: 2px; }
.dwx-app .dwx-choices { display: grid; gap: 10px; margin-top: 22px; }
.dwx-app .dwx-choice {
  display: block; width: 100%; text-align: left; padding: 14px 18px; border-radius: 12px; cursor: pointer;
  border: 1px solid var(--dwx-line); background: var(--dwx-surface); color: var(--dwx-cream);
  font-family: var(--dwx-serif); font-size: 1.3rem; font-style: italic; line-height: 1.3; transition: border-color .15s, background-color .15s;
}
.dwx-app .dwx-choice:hover, .dwx-app .dwx-choice:focus-visible { border-color: var(--dwx-gold); background: var(--dwx-soft); }
.dwx-app .dwx-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--dwx-line-strong); background: transparent; color: var(--dwx-ink); font: inherit; font-size: 15px; cursor: pointer; }
.dwx-app .dwx-chip[aria-pressed="true"] { border-color: var(--dwx-gold); background: var(--dwx-soft); box-shadow: inset 0 0 0 1px var(--dwx-gold); }
.dwx-app .dwx-chip:hover { border-color: var(--dwx-gold); }

/* Narrator */
.dwx-app .dwx-narr { padding: 36px 32px 28px; display: flex; flex-direction: column; gap: 18px; min-height: 380px; }
.dwx-app .dwx-place { font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--dwx-lav); text-align: center; }
.dwx-app .dwx-line { flex: 1; display: flex; align-items: center; justify-content: center; text-align: center; min-height: 6.5em; font-family: var(--dwx-serif); font-style: italic; font-weight: 500; font-size: clamp(1.45rem, 3.6vw, 2rem); line-height: 1.4; color: var(--dwx-cream); max-width: 34ch; margin: 0 auto; }
.dwx-app .dwx-line.is-in { animation: dwx-fade 1.8s ease; }
.dwx-app .dwx-controls { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: center; padding-top: 12px; border-top: 1px solid var(--dwx-line); }
.dwx-app .dwx-toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; color: var(--dwx-muted); cursor: pointer; }
.dwx-app .dwx-toggle input { accent-color: var(--dwx-gold); width: 16px; height: 16px; margin: 0; }
@keyframes dwx-fade { from { opacity: 0; filter: blur(3px); transform: translateY(4px); } to { opacity: 1; filter: none; transform: none; } }

/* End screen */
.dwx-app .dwx-recs { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.dwx-app .dwx-rec { display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: 12px; border: 1px solid var(--dwx-line); background: var(--dwx-surface); text-decoration: none; color: var(--dwx-ink); transition: border-color .15s; }
.dwx-app .dwx-rec:hover { border-color: var(--dwx-gold); color: var(--dwx-ink); }
.dwx-app .dwx-rec img, .dwx-app .dwx-rec-art { width: 64px; height: 64px; flex: none; border-radius: 8px; object-fit: cover; }
.dwx-app .dwx-rec-art { display: flex; align-items: center; justify-content: center; background: var(--dwx-soft); color: var(--dwx-gold); }
.dwx-app .dwx-rec-body { display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 1.4; color: var(--dwx-muted); }
.dwx-app .dwx-rec-body strong { font-family: var(--dwx-serif); font-size: 1.2rem; font-weight: 600; color: var(--dwx-cream); }
.dwx-app .dwx-end-links { margin-top: 26px; }
.dwx-app .dwx-closed .dwx-lead { margin-bottom: 18px; font-size: 1.1rem; }

/* Canvas backdrops sit behind the stage content */
.dwx-app .dwx-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: .9; }
.dwx-app .dwx-over { position: relative; z-index: 1; }

@media (max-width: 600px) {
  .dwx-app .dwx-pad { padding: 24px 20px; }
  .dwx-app .dwx-narr { padding: 28px 18px 22px; }
  .dwx-app .dwx-controls { gap: 8px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .dwx-app .dwx-line.is-in { animation: none; }
}
