:root {
  --cg-novena-bg: #03070c;
  --cg-novena-panel: #07111d;
  --cg-novena-panel-2: #0b1522;
  --cg-novena-gold: #ffbe00;
  --cg-novena-gold-soft: #866500;
  --cg-novena-ivory: #fff8eb;
  --cg-novena-blue: #a8c9ff;
  --cg-novena-muted: #9eabc0;
  --cg-novena-line: rgba(173, 194, 224, .2);
  --cg-novena-gold-line: rgba(255, 190, 0, .42);
  --cg-novena-sans: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --cg-novena-serif: Georgia, "Times New Roman", serif;
}

.cg33k-interactive-novenas-page {
  background: var(--cg-novena-bg);
}

.cg-novenas-app,
.cg-novenas-app * {
  box-sizing: border-box;
}

.cg-novenas-app {
  width: min(1460px, calc(100% - 32px));
  margin: 28px auto 70px;
  color: var(--cg-novena-ivory);
  font-family: var(--cg-novena-sans);
  color-scheme: dark;
}

.cg-novenas-app [hidden] {
  display: none !important;
}

.cg-novenas-app :where(button, input, select, textarea, a) {
  font: inherit;
}

.cg-novenas-app :where(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--cg-novena-blue);
  outline-offset: 3px;
}

.cg-novenas-app h1,
.cg-novenas-app h2,
.cg-novenas-app h3 {
  margin: 0;
  color: var(--cg-novena-ivory);
  font-family: var(--cg-novena-serif);
  font-weight: 500;
}

.cg-novenas-kicker,
.cg-novenas-app legend,
.cg-novenas-app label > span:first-child {
  color: var(--cg-novena-gold);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.cg-novenas-gold-cross {
  display: inline-block;
  width: 30px;
  height: 42px;
  position: relative;
  color: var(--cg-novena-gold);
}

.cg-novenas-gold-cross::before,
.cg-novenas-gold-cross::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  background: currentColor;
}

.cg-novenas-gold-cross::before { width: 4px; height: 40px; }
.cg-novenas-gold-cross::after { width: 28px; height: 4px; top: 39%; }

.cg-novenas-button,
.cg-novenas-text-button,
.cg-novenas-reader-tools button,
.cg-novenas-day-timeline button,
.cg-novenas-day-card {
  border: 1px solid var(--cg-novena-line);
  border-radius: 0;
  background: #07101b;
  color: var(--cg-novena-ivory);
  cursor: pointer;
  font-weight: 800;
}

.cg-novenas-button {
  min-height: 48px;
  padding: 12px 18px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.cg-novenas-button:hover,
.cg-novenas-reader-tools button:hover,
.cg-novenas-day-card:hover {
  border-color: var(--cg-novena-gold);
}

.cg-novenas-button-primary {
  border-color: var(--cg-novena-gold);
  background: var(--cg-novena-gold);
  color: #05080d;
}

.cg-novenas-button-primary:hover {
  background: #ffd04c;
}

.cg-novenas-text-button {
  min-height: 44px;
  margin-bottom: 14px;
  padding: 8px 12px;
  color: var(--cg-novena-blue);
}

.cg-novenas-hero {
  min-height: 0;
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: clamp(46px, 6vw, 78px) 24px clamp(72px, 8vw, 104px);
  border: 1px solid var(--cg-novena-gold-line);
  background:
    radial-gradient(circle at 50% 100%, rgba(255, 190, 0, .17), transparent 38%),
    linear-gradient(180deg, rgba(3, 8, 15, .97), rgba(5, 12, 20, .98)),
    repeating-linear-gradient(90deg, transparent 0 84px, rgba(122, 173, 232, .035) 84px 85px);
}

.cg-novenas-hero > div:first-child {
  width: min(900px, 100%);
  position: relative;
  z-index: 2;
  padding: 0;
  text-align: center;
}

.cg-novenas-hero h1 {
  margin: 9px auto 16px;
  font-size: clamp(44px, 5.5vw, 76px);
  line-height: 1.02;
}

.cg-novenas-hero > div:first-child > p:not(.cg-novenas-kicker):not(.cg-novenas-hero-note) {
  max-width: 760px;
  margin: 0 auto;
  color: var(--cg-novena-blue);
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.55;
}

.cg-novenas-hero .cg-novenas-hero-note {
  margin-top: 13px;
  color: #d8c68e;
  font-family: var(--cg-novena-serif);
  font-size: 15px;
  font-style: italic;
}

.cg-novenas-candles {
  width: min(680px, 90%);
  height: 74px;
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: 0;
  translate: -50% 0;
  display: flex;
  align-items: end;
  justify-content: center;
  gap: clamp(16px, 2.4vw, 34px);
  padding: 0 20px;
  opacity: .34;
  background: radial-gradient(ellipse at center bottom, rgba(255, 156, 31, .34), transparent 68%);
}

.cg-novenas-candles i {
  width: clamp(5px, .7vw, 9px);
  height: clamp(26px, 4vw, 52px);
  position: relative;
  display: block;
  background: linear-gradient(90deg, #c9aa69, #f5dfaa 45%, #9b753c);
  box-shadow: 0 0 24px rgba(255, 179, 67, .12);
}

.cg-novenas-candles i:nth-child(2n) { height: clamp(19px, 3vw, 38px); }
.cg-novenas-candles i:nth-child(3n) { height: clamp(34px, 5vw, 62px); }
.cg-novenas-candles i::before { content: ""; position: absolute; left: 50%; bottom: calc(100% + 2px); width: 7px; height: 15px; translate: -50% 0; border-radius: 50% 50% 48% 48%; background: #ffbe00; box-shadow: 0 0 17px 6px rgba(255, 166, 36, .28); clip-path: polygon(50% 0, 92% 66%, 69% 100%, 31% 100%, 8% 66%); }

.cg-novenas-prototype-notice {
  margin: 16px 0 28px;
  padding: 14px 16px;
  border-left: 3px solid var(--cg-novena-gold);
  background: rgba(255, 190, 0, .08);
  color: #f2df9f;
  line-height: 1.5;
}

.cg-novenas-library-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin: 6px 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--cg-novena-line);
}

.cg-novenas-library-heading h2 {
  margin: 4px 0 0;
  font-size: clamp(34px, 4vw, 52px);
}

.cg-novenas-library-heading > p {
  margin: 0 0 4px;
  color: var(--cg-novena-blue);
  font-size: 13px;
}

.cg-novenas-library-tools {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(220px, .7fr);
  gap: 12px;
  margin: 0 0 18px;
  padding: 16px;
  border: 1px solid var(--cg-novena-line);
  background: rgba(7, 16, 27, .72);
}

.cg-novenas-library-tools label,
.cg-novenas-prepare-form > label {
  display: grid;
  gap: 7px;
}

.cg-novenas-app :where(input, select, textarea) {
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid var(--cg-novena-line);
  border-radius: 0;
  background: #050c15;
  color: var(--cg-novena-ivory);
}

.cg-novenas-catalog {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.cg-novenas-card {
  min-height: 330px;
  display: flex;
  flex-direction: column;
  padding: 20px;
  border: 1px solid var(--cg-novena-line);
  background: linear-gradient(155deg, rgba(13, 25, 40, .92), rgba(4, 9, 16, .98));
  transition: border-color 160ms ease, translate 160ms ease, box-shadow 160ms ease;
}
.cg-novenas-card:not(.is-demo) { border-color: var(--cg-novena-gold-line); }
.cg-novenas-card.is-demo { opacity: .82; }
.cg-novenas-card:hover { translate: 0 -2px; border-color: var(--cg-novena-gold); box-shadow: 0 14px 34px rgba(0, 0, 0, .2); }

.cg-novenas-card-topline {
  min-height: 35px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 15px;
}

.cg-novenas-card-number {
  color: var(--cg-novena-gold);
  font-size: 12px;
  font-weight: 900;
}

.cg-novenas-demo-badge {
  width: fit-content;
  max-width: 78%;
  margin: 0;
  padding: 5px 8px;
  border: 1px solid var(--cg-novena-gold-line);
  color: #f2d57f;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cg-novenas-demo-badge.is-source,
.cg-novenas-card:not(.is-demo) .cg-novenas-demo-badge { background: rgba(255, 190, 0, .1); color: var(--cg-novena-gold); }

.cg-novenas-card h3 {
  margin-bottom: 12px;
  font-size: clamp(25px, 2.2vw, 32px);
  line-height: 1.12;
}

.cg-novenas-card-schedule {
  color: var(--cg-novena-gold);
  font-size: 12px;
  font-weight: 800;
}

.cg-novenas-card-description {
  min-height: 3.1em;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--cg-novena-blue);
  line-height: 1.55;
}

.cg-novenas-card-meta {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  margin: 18px 0 14px;
  color: var(--cg-novena-muted);
  font-size: 12px;
}

.cg-novenas-card-actions {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr);
  gap: 8px;
}

.cg-novenas-card-actions .cg-novenas-button {
  width: 100%;
  min-width: 0;
  padding-inline: 11px;
  font-size: 10px;
}

.cg-novenas-button-stream {
  border-color: var(--cg-novena-gold-line);
  background: rgba(255, 190, 0, .055);
  color: var(--cg-novena-gold);
}

.cg-novenas-button-stream:hover { background: rgba(255, 190, 0, .12); }

.cg-novenas-catalog-more {
  display: flex;
  justify-content: center;
  padding: 24px 0 6px;
}

.cg-novenas-catalog-more .cg-novenas-button {
  min-width: min(320px, 100%);
}

.cg-novenas-prepare,
.cg-novenas-journey,
.cg-novenas-complete {
  min-height: 620px;
  padding: clamp(18px, 4vw, 54px);
  border: 1px solid var(--cg-novena-gold-line);
  background: var(--cg-novena-bg);
}

.cg-novenas-prepare-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  margin-bottom: 18px;
}

.cg-novenas-prepare-heading .cg-novenas-text-button { margin: 0; }
.cg-novenas-prepare-heading h2 { font-size: clamp(30px, 3.1vw, 46px); }
.cg-novenas-prepare-heading p:last-child { max-width: 720px; margin: 7px 0 0; color: var(--cg-novena-muted); line-height: 1.55; }

.cg-novenas-prepare-grid {
  display: grid;
  grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr);
  border: 1px solid var(--cg-novena-line);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .25);
}

.cg-novenas-preview-art {
  min-height: 590px;
  padding: clamp(28px, 3.5vw, 46px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 30px;
  background:
    radial-gradient(circle at 50% 38%, rgba(255, 190, 0, .14), transparent 31%),
    repeating-linear-gradient(90deg, transparent 0 70px, rgba(122, 173, 232, .03) 70px 71px),
    #071421 center/cover no-repeat;
}

.cg-novenas-preview-art.has-artwork {
  background-position: center;
  background-size: cover;
}

.cg-novenas-preview-art h2 {
  max-width: 680px;
  font-size: clamp(36px, 4.5vw, 62px);
  line-height: 1.02;
}

.cg-novenas-preview-copy {
  max-width: 680px;
  padding: 22px 0 0;
  border-top: 1px solid var(--cg-novena-gold-line);
}

.cg-novenas-preview-copy p:last-child { max-width: 630px; color: var(--cg-novena-blue); font-size: 17px; line-height: 1.6; }

.cg-novenas-preview-journey {
  display: grid;
  gap: 12px;
  padding: 18px;
  border: 1px solid var(--cg-novena-gold-line);
  background: rgba(3, 8, 14, .82);
  backdrop-filter: blur(6px);
}

.cg-novenas-preview-journey > p:last-child { margin: 0; color: var(--cg-novena-muted); font-size: 12px; line-height: 1.5; }
.cg-novenas-preview-journey .cg-novenas-schedule { margin: 0; }
.cg-novenas-preview-journey .cg-novenas-mini-timeline { padding-bottom: 2px; }

.cg-novenas-prepare-form {
  padding: clamp(24px, 3vw, 40px);
  display: grid;
  align-content: start;
  gap: 15px;
  border-left: 1px solid var(--cg-novena-gold-line);
}

.cg-novenas-preparation-intro h3 { font-size: clamp(27px, 2.6vw, 38px); }
.cg-novenas-preparation-intro p:last-child { margin: 7px 0 0; color: var(--cg-novena-muted); line-height: 1.5; }

.cg-novenas-prepare-basics {
  display: grid;
  grid-template-columns: minmax(170px, .7fr) minmax(0, 1.3fr);
  gap: 12px;
  align-items: start;
}

.cg-novenas-prepare-basics > label { display: grid; gap: 8px; }
.cg-novenas-prepare-basics textarea { min-height: 84px; }

.cg-novenas-prepare-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.cg-novenas-prepare-options .cg-novenas-stream-fieldset { grid-column: 1 / -1; }

.cg-novenas-schedule { color: var(--cg-novena-gold); font-weight: 850; }
.cg-novenas-timezone { margin: -7px 0 0; color: var(--cg-novena-muted); font-size: 13px; line-height: 1.5; }
.cg-novenas-prepare-form fieldset { display: flex; align-content: start; flex-wrap: wrap; gap: 10px 18px; min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--cg-novena-line); background: rgba(7, 17, 29, .42); }
.cg-novenas-prepare-form fieldset > div { flex: 1 1 100%; display: grid; gap: 8px; }
.cg-novenas-prepare-form fieldset > label:has(select) { flex: 1 1 210px; display: grid; align-items: stretch; }
.cg-novenas-prepare-form fieldset label,
.cg-novenas-dialog > label { display: flex; align-items: center; gap: 9px; min-height: 38px; }
.cg-novenas-prepare-form input[type="checkbox"],
.cg-novenas-dialog input[type="checkbox"] { width: 20px; min-height: 20px; accent-color: var(--cg-novena-gold); }

.cg-novenas-mini-timeline,
.cg-novenas-day-timeline {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--cg-novena-gold-soft) transparent;
}

.cg-novenas-mini-timeline span {
  min-width: 42px;
  min-height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--cg-novena-line);
  color: var(--cg-novena-blue);
}

.cg-novenas-actions { display: flex; flex-wrap: wrap; gap: 10px; }

.cg-novenas-prepare-actions .cg-novenas-button-primary,
.cg-novenas-prepare-actions .cg-novenas-button-stream { flex: 1 1 190px; }

.cg-novenas-key-help,
.cg-novenas-shortcuts {
  margin: 0;
  color: var(--cg-novena-muted);
  font-size: 11px;
  line-height: 1.55;
  text-align: center;
}

.cg-novenas-key-help strong,
.cg-novenas-shortcuts strong { color: var(--cg-novena-blue); }

.cg-novenas-shortcuts { margin-top: 16px; }

.cg-novenas-section-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.cg-novenas-section-heading h2 { font-size: clamp(38px, 5vw, 70px); }
.cg-novenas-section-heading p:last-child { color: var(--cg-novena-blue); }
.cg-novenas-section-heading > div:last-child { display: flex; align-items: start; gap: 8px; }

.cg-novenas-day-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.cg-novenas-day-card {
  min-height: 150px;
  padding: 18px;
  display: grid;
  gap: 7px;
  text-align: left;
}

.cg-novenas-day-card span { color: var(--cg-novena-gold); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.cg-novenas-day-card strong { color: var(--cg-novena-ivory); font-family: var(--cg-novena-serif); font-size: 24px; font-weight: 500; }
.cg-novenas-day-card small { color: var(--cg-novena-muted); }
.cg-novenas-day-card.is-completed { border-color: var(--cg-novena-gold); background: #171406; }
.cg-novenas-day-card.is-today { border-color: var(--cg-novena-blue); box-shadow: inset 3px 0 var(--cg-novena-blue); }
.cg-novenas-day-card.is-missed { border-color: rgba(255, 190, 0, .3); }

.cg-novenas-reader {
  border: 1px solid var(--cg-novena-gold-line);
  background: var(--cg-novena-bg);
}

.cg-novenas-reader-tools {
  min-height: 76px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 18px;
  border-bottom: 1px solid var(--cg-novena-line);
}

.cg-novenas-reader-tools > div { display: grid; gap: 4px; }
.cg-novenas-reader-tools strong { color: var(--cg-novena-gold); font-family: var(--cg-novena-serif); letter-spacing: .04em; }
.cg-novenas-reader-tools span { color: var(--cg-novena-blue); font-size: 12px; }
.cg-novenas-reader-tools nav { display: flex; gap: 7px; }
.cg-novenas-reader-tools button { min-height: 42px; padding: 8px 12px; font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }

.cg-novenas-day-timeline {
  padding: 10px 14px;
  border-bottom: 1px solid var(--cg-novena-gold-line);
}

.cg-novenas-day-timeline button {
  min-width: 112px;
  min-height: 62px;
  padding: 8px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 7px;
  text-align: left;
}

.cg-novenas-day-timeline button span { grid-column: 1 / -1; color: var(--cg-novena-muted); font-size: 9px; text-transform: uppercase; }
.cg-novenas-day-timeline button strong { color: var(--cg-novena-gold); }
.cg-novenas-day-timeline button small { align-self: center; color: var(--cg-novena-blue); white-space: nowrap; }
.cg-novenas-day-timeline button.is-active,
.cg-novenas-day-timeline button.is-completed { border-color: var(--cg-novena-gold); background: #181404; }

.cg-novenas-reader-grid {
  min-height: 680px;
  display: grid;
  grid-template-columns: minmax(290px, .72fr) minmax(0, 1.28fr);
}

.cg-novenas-art {
  min-height: 680px;
  padding: 36px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid var(--cg-novena-gold-line);
  background:
    radial-gradient(circle at 50% 35%, rgba(255, 190, 0, .14), transparent 35%),
    repeating-linear-gradient(90deg, transparent 0 70px, rgba(122, 173, 232, .03) 70px 71px),
    #071421 center/cover no-repeat;
}

.cg-novenas-art.has-artwork { background-position: center; background-size: cover; }
.cg-novenas-art div { padding: 18px; background: rgba(2, 7, 12, .84); }
.cg-novenas-art p { margin: 0 0 6px; color: var(--cg-novena-gold); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.cg-novenas-art strong { color: var(--cg-novena-ivory); font-family: var(--cg-novena-serif); font-size: 28px; font-weight: 500; }

.cg-novenas-prayer-card {
  min-width: 0;
  padding: clamp(28px, 5vw, 72px);
  display: flex;
  flex-direction: column;
}

.cg-novenas-progress { display: flex; justify-content: space-between; gap: 12px; color: var(--cg-novena-blue); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.cg-novenas-progress-bar { height: 3px; margin: 10px 0 36px; overflow: hidden; background: var(--cg-novena-line); }
.cg-novenas-progress-bar span { height: 100%; display: block; background: var(--cg-novena-gold); }
.cg-novenas-prayer-card h1 { max-width: 980px; margin: 8px 0 28px; font-size: clamp(42px, 5.3vw, 78px); line-height: 1.02; }
.cg-novenas-unit-text { max-width: 900px; color: var(--cg-novena-ivory); font-family: var(--cg-novena-serif); font-size: clamp(24px, 2.25vw, 38px); line-height: 1.55; white-space: pre-line; }
.cg-novenas-app[data-text-scale="small"] .cg-novenas-unit-text { font-size: clamp(20px, 1.85vw, 31px); }
.cg-novenas-app[data-text-scale="large"] .cg-novenas-unit-text { font-size: clamp(27px, 2.7vw, 44px); }
.cg-novenas-text-size { display: flex; gap: 7px; }
.cg-novenas-text-size button,
.cg-novenas-choice-grid button { min-width: 48px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--cg-novena-line); background: #07101b; color: var(--cg-novena-ivory); cursor: pointer; }
.cg-novenas-text-size button[aria-pressed="true"],
.cg-novenas-choice-grid button[aria-pressed="true"] { border-color: var(--cg-novena-gold); background: rgba(255, 190, 0, .13); color: var(--cg-novena-gold); }
.cg-novenas-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.cg-novenas-help { margin: 8px 0 0; color: var(--cg-novena-muted); font-size: 12px; line-height: 1.45; }
.cg-novenas-app.is-high-contrast { --cg-novena-bg: #000; --cg-novena-panel: #000; --cg-novena-ivory: #fff; --cg-novena-blue: #d7e7ff; --cg-novena-line: rgba(255,255,255,.72); }
.cg-novenas-app.hide-section-progress [data-section-progress] { visibility: hidden; }
.cg-novenas-app.hide-total-progress [data-total-progress] { visibility: hidden; }
.cg-novenas-private-intention { max-width: 880px; margin: 0 0 20px; padding: 13px 16px; border-left: 3px solid var(--cg-novena-gold); background: rgba(255, 190, 0, .06); }
.cg-novenas-private-intention span { color: var(--cg-novena-gold); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.cg-novenas-private-intention p { margin: 7px 0 0; color: #eedfae; font-style: italic; }
.cg-novenas-source-line { margin-top: 25px; color: var(--cg-novena-muted); font-size: 12px; }
.cg-novenas-linked-practice { width: fit-content; margin-top: 20px; color: var(--cg-novena-gold); font-weight: 850; }

.cg-novenas-navigation {
  margin-top: auto;
  padding-top: 34px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.cg-novenas-navigation .cg-novenas-button { min-width: 180px; }
.cg-novenas-navigation button:disabled { opacity: .38; cursor: not-allowed; }

.cg-novenas-complete {
  min-height: 72vh;
  display: grid;
  place-content: center;
  justify-items: center;
  text-align: center;
}

.cg-novenas-complete h1 { margin: 8px 0 16px; font-size: clamp(48px, 7vw, 94px); }
.cg-novenas-complete > p:not(.cg-novenas-kicker) { max-width: 760px; color: var(--cg-novena-blue); font-size: 19px; line-height: 1.6; }

.cg-novenas-dialog-scrim { position: fixed; z-index: 999970; inset: 0; background: rgba(0, 0, 0, .76); }
.cg-novenas-dialog { width: min(560px, calc(100% - 28px)); max-height: min(760px, calc(100dvh - 34px)); overflow-y: auto; position: fixed; z-index: 999980; left: 50%; top: 50%; translate: -50% -50%; padding: 28px; border: 1px solid var(--cg-novena-gold-line); background: #03080f; box-shadow: 0 30px 90px #000; }
.cg-novenas-dialog h2 { margin-bottom: 18px; font-size: 40px; }
.cg-novenas-dialog > label { margin: 8px 0; }
.cg-novenas-dialog-close { position: absolute; right: 14px; top: 10px; border: 0; background: transparent; color: var(--cg-novena-ivory); font-size: 28px; cursor: pointer; }

.cg-novenas-music { width: min(390px, calc(100% - 24px)); position: fixed; z-index: 999960; right: 12px; bottom: 12px; padding: 8px; border: 1px solid var(--cg-novena-gold-line); background: #03080f; }
.cg-novenas-music iframe { width: 100%; height: 120px; border: 0; }
.cg-novenas-music > button { position: absolute; right: 0; top: -34px; width: 34px; height: 34px; border: 1px solid var(--cg-novena-line); background: #03080f; color: var(--cg-novena-ivory); }

.cg-novenas-feature {
  width: min(1615px, calc(100% - 32px));
  min-height: 255px;
  margin: 16px auto;
  overflow: hidden;
  border: 1px solid var(--cg-novena-gold-line);
  background:
    linear-gradient(90deg, rgba(2, 6, 11, .98) 0 35%, rgba(2, 6, 11, .5) 72%, rgba(2, 6, 11, .24)),
    var(--cg-novenas-feature-image, radial-gradient(circle at 78% 55%, rgba(255, 180, 47, .36), transparent 24%)),
    #070d15 center/cover no-repeat;
  color: var(--cg-novena-ivory);
}
.cg-novenas-feature-content { max-width: 780px; padding: 34px 58px; }
.cg-novenas-feature-content > p { margin: 0 0 8px; color: var(--cg-novena-gold); font: 800 11px/1.2 var(--cg-novena-sans); letter-spacing: .11em; text-transform: uppercase; }
.cg-novenas-feature h2 { margin: 0 0 8px; color: var(--cg-novena-ivory); font: 500 clamp(38px, 4vw, 62px)/1.05 var(--cg-novena-serif); }
.cg-novenas-feature-content > div { margin-bottom: 20px; color: var(--cg-novena-blue); font: 17px/1.5 var(--cg-novena-sans); }

.cg-novenas-discovery-card,
.cg-novenas-landing {
  width: min(1615px, calc(100% - 32px));
  margin: 34px auto;
  color: var(--cg-novena-ivory);
  font-family: var(--cg-novena-sans);
}
.cg-novenas-discovery-card *,
.cg-novenas-landing * { box-sizing: border-box; }
.cg-novenas-discovery-card .cg-novenas-button,
.cg-novenas-landing .cg-novenas-button {
  max-width: 100%;
  height: auto;
  min-height: 52px;
  overflow: hidden;
  padding: 14px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  line-height: 1.35 !important;
  text-align: center;
  text-decoration: none !important;
  white-space: normal;
}
.cg-novenas-discovery-card {
  min-height: 270px;
  display: grid;
  align-content: center;
  justify-items: start;
  padding: clamp(28px, 5vw, 64px);
  border: 1px solid var(--cg-novena-gold-line);
  background:
    linear-gradient(90deg, rgba(2, 6, 11, .98) 0 44%, rgba(2, 6, 11, .52) 76%, rgba(2, 6, 11, .84)),
    radial-gradient(circle at 82% 50%, rgba(255, 180, 47, .28), transparent 31%),
    #070d15;
}
.cg-novenas-discovery-card h2,
.cg-novenas-landing h2,
.cg-novenas-landing h3 { color: var(--cg-novena-ivory); font-family: var(--cg-novena-serif); font-weight: 500; }
.cg-novenas-discovery-card h2 { margin: 4px 0 10px; font-size: clamp(38px, 5vw, 64px); }
.cg-novenas-discovery-card > p:not(.cg-novenas-kicker) { max-width: 700px; margin: 0 0 22px; color: var(--cg-novena-blue); font-size: 18px; line-height: 1.6; }
.cg-novenas-landing { border: 1px solid var(--cg-novena-gold-line); background: #050b12; }
.cg-novenas-landing-hero { padding: clamp(30px, 5vw, 72px); border-bottom: 1px solid var(--cg-novena-gold-line); background: radial-gradient(circle at 82% 35%, rgba(255,180,47,.2), transparent 30%), #07101b; text-align: center; }
.cg-novenas-landing-hero h2 { margin: 6px auto 14px; font-size: clamp(42px, 6vw, 76px); }
.cg-novenas-landing-hero > p:not(.cg-novenas-kicker) { max-width: 880px; margin: 0 auto 24px; color: var(--cg-novena-blue); font-size: 19px; line-height: 1.65; }
.cg-novenas-landing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--cg-novena-line); }
.cg-novenas-landing-grid article { min-width: 0; padding: 28px; background: #060c14; }
.cg-novenas-landing-grid h3 { margin: 5px 0 10px; font-size: clamp(26px, 2.3vw, 38px); line-height: 1.12; }
.cg-novenas-landing-grid article > p:not(.cg-novenas-kicker) { color: var(--cg-novena-blue); line-height: 1.55; }
.cg-novenas-landing-grid a { color: var(--cg-novena-gold); font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }

body.cg-novenas-focus > :not(.cg-novenas-app):not(#wpadminbar) { display: none !important; }
body.cg-novenas-focus .cg-novenas-app { width: 100%; margin: 0; }
body.cg-novenas-focus .cg-novenas-reader { min-height: 100dvh; border: 0; }

html.cg-novenas-stream,
html.cg-novenas-stream body,
body.cg33k-novenas-stream-mode,
body.cg33k-novenas-stream-mode .cg-novenas-app {
  width: 100%;
  min-width: 100%;
  height: 100%;
  min-height: 100dvh;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

body.cg33k-novenas-stream-mode .cg-novenas-app { max-width: none; }
body.cg33k-novenas-stream-mode .cg-novenas-reader { height: 100dvh; border: 0; }
body.cg33k-novenas-stream-mode .cg-novenas-reader-tools { min-height: 7vh; padding: 1.2vh 3vw; }
body.cg33k-novenas-stream-mode .cg-novenas-reader-tools nav { display: none; }
body.cg33k-novenas-stream-mode .cg-novenas-reader-grid { height: calc(100dvh - 7vh); min-height: 0; }
body.cg33k-novenas-stream-mode .cg-novenas-art { min-height: 0; }
body.cg33k-novenas-stream-mode .cg-novenas-prayer-card { height: 100%; min-height: 0; overflow: hidden; padding: 4vh 4.5vw; }
body.cg33k-novenas-stream-mode .cg-novenas-prayer-card h1 { margin: 1vh 0 2vh; font-size: clamp(42px, 5vw, 86px); }
body.cg33k-novenas-stream-mode .cg-novenas-unit-text { max-width: 100%; line-height: 1.42; }
body.cg33k-novenas-stream-mode .cg-novenas-source-line { margin-top: 2vh; }
body.cg33k-novenas-stream-mode .cg-novenas-app.is-fitting .cg-novenas-prayer-card { visibility: hidden; }
body.cg33k-novenas-stream-mode .cg-novenas-navigation,
body.cg33k-novenas-stream-mode .cg-novenas-day-timeline { display: none !important; }
body.cg33k-novenas-stream-mode .cg-novenas-app[data-stream-layout="reading"] .cg-novenas-reader-grid { grid-template-columns: 1fr; }
body.cg33k-novenas-stream-mode .cg-novenas-app[data-stream-layout="reading"] .cg-novenas-art { display: none; }
body.cg33k-novenas-stream-mode .cg-novenas-app.is-stream-tight .cg-novenas-reader-grid { grid-template-columns: 1fr; }
body.cg33k-novenas-stream-mode .cg-novenas-app.is-stream-tight .cg-novenas-art { display: none; }
body.cg33k-novenas-stream-mode .cg-novenas-app.is-stream-tight .cg-novenas-prayer-card { padding: 2.3vh 4vw; }
body.cg33k-novenas-stream-mode .cg-novenas-app.is-stream-tight .cg-novenas-progress-bar { margin-bottom: 1.2vh; }
body.cg33k-novenas-stream-mode .cg-novenas-app.is-stream-tight .cg-novenas-prayer-card h1 { font-size: clamp(38px, 4.2vw, 68px); }
body.cg33k-novenas-stream-mode .cg-novenas-app[data-stream-background="dark"] .cg-novenas-art,
body.cg33k-novenas-stream-mode .cg-novenas-app[data-stream-background="minimal"] .cg-novenas-art { background-image: none !important; background-color: #03070c; }
body.cg33k-novenas-stream-mode .cg-novenas-app[data-stream-background="light"] .cg-novenas-reader,
body.cg33k-novenas-stream-mode .cg-novenas-app[data-stream-background="light"] .cg-novenas-prayer-card { background: #f2eee4; color: #07101b; }
body.cg33k-novenas-stream-mode .cg-novenas-app[data-stream-background="light"] :where(h1,.cg-novenas-unit-text) { color: #07101b; }
body.cg33k-novenas-stream-mode .cg-novenas-app[data-stream-background="light"] .cg-novenas-reader-tools { background: #f2eee4; }
.cg-novenas-stream-ui { position: fixed; z-index: 1000002; inset: 0; pointer-events: none; }
.cg-novenas-stream-options-button { position: absolute; right: 18px; top: 16px; min-height: 42px; padding: 8px 14px; border: 1px solid var(--cg-novena-gold-line); background: rgba(3,7,12,.88); color: var(--cg-novena-ivory); opacity: .18; pointer-events: auto; cursor: pointer; text-transform: uppercase; letter-spacing: .08em; }
.cg-novenas-stream-ui:hover .cg-novenas-stream-options-button,
.cg-novenas-stream-options-button:focus-visible,
.cg-novenas-stream-options-button[aria-expanded="true"] { opacity: 1; }
.cg-novenas-stream-options { width: min(430px, calc(100% - 28px)); max-height: calc(100dvh - 28px); overflow: auto; position: absolute; right: 14px; top: 14px; padding: 22px; border: 1px solid var(--cg-novena-gold-line); background: rgba(3, 8, 15, .98); box-shadow: 0 28px 90px #000; pointer-events: auto; }
.cg-novenas-stream-options-heading { display: flex; justify-content: space-between; gap: 14px; align-items: start; }
.cg-novenas-stream-options-heading h2 { font-size: 34px; }
.cg-novenas-stream-options-heading > button { border: 0; background: transparent; color: var(--cg-novena-ivory); font-size: 28px; cursor: pointer; }
.cg-novenas-stream-options fieldset { margin: 14px 0; padding: 13px; border: 1px solid var(--cg-novena-line); }
.cg-novenas-stream-options > label { display: flex; gap: 9px; align-items: center; margin: 10px 0; }
.cg-novenas-stream-options input[type="checkbox"] { width: 20px; min-height: 20px; accent-color: var(--cg-novena-gold); }
.cg-novenas-stream-wait { height: 100dvh; display: grid; place-content: center; justify-items: center; text-align: center; }
.cg-novenas-stream-wait h1 { font-size: clamp(50px, 8vw, 106px); }
.cg-novenas-stream-wait p { color: var(--cg-novena-blue); font-size: 20px; }

@media (max-width: 1100px) {
  .cg-novenas-landing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cg-novenas-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cg-novenas-prepare-grid { grid-template-columns: 1fr; }
  .cg-novenas-preview-art { min-height: 420px; gap: 26px; }
  .cg-novenas-prepare-form { border-left: 0; border-top: 1px solid var(--cg-novena-gold-line); }
}

@media (max-width: 820px) {
  .cg-novenas-discovery-card,
  .cg-novenas-landing { width: calc(100% - 20px); margin: 20px auto; }
  .cg-novenas-discovery-card { padding: 28px 20px; }
  .cg-novenas-landing-hero .cg-novenas-button { width: 100%; }
  .cg-novenas-landing-grid { grid-template-columns: 1fr; }
  .cg-novenas-landing-grid article { padding: 24px 20px; }
  .cg-novenas-app { width: 100%; margin: 0; overflow-x: clip; }
  .cg-novenas-hero { padding: 42px 20px 72px; }
  .cg-novenas-hero h1 { font-size: clamp(40px, 11.5vw, 58px); }
  .cg-novenas-candles { height: 58px; min-height: 0; padding: 0 12px; }
  .cg-novenas-library { padding-bottom: 26px; }
  .cg-novenas-prototype-notice,
  .cg-novenas-library-heading,
  .cg-novenas-library-tools,
  .cg-novenas-catalog,
  .cg-novenas-catalog-more,
  .cg-novenas-empty { margin-left: 14px; margin-right: 14px; }
  .cg-novenas-library-heading { display: grid; align-items: start; }
  .cg-novenas-library-tools { grid-template-columns: 1fr; }
  .cg-novenas-catalog { grid-template-columns: 1fr; }
  .cg-novenas-card { min-height: 0; }
  .cg-novenas-prepare,
  .cg-novenas-journey,
  .cg-novenas-complete { min-height: 100dvh; padding: 14px; }
  .cg-novenas-prepare-heading { grid-template-columns: 1fr; gap: 12px; }
  .cg-novenas-prepare-heading .cg-novenas-text-button { justify-self: start; }
  .cg-novenas-preview-art { min-height: 300px; padding: 25px; gap: 36px; }
  .cg-novenas-preview-art h2 { font-size: clamp(34px, 10vw, 46px); }
  .cg-novenas-prepare-form { padding: 22px 16px; }
  .cg-novenas-prepare-basics,
  .cg-novenas-prepare-options { grid-template-columns: 1fr; }
  .cg-novenas-prepare-options .cg-novenas-stream-fieldset { grid-column: auto; }
  .cg-novenas-prepare-actions { display: grid; grid-template-columns: 1fr; }
  .cg-novenas-prepare-actions .cg-novenas-button { width: 100%; }
  .cg-novenas-card-actions { grid-template-columns: 1fr 1fr; }
  .cg-novenas-section-heading { display: grid; }
  .cg-novenas-section-heading > div:last-child { flex-wrap: wrap; }
  .cg-novenas-day-grid { grid-template-columns: 1fr; }
  .cg-novenas-day-card { min-height: 110px; }
  .cg-novenas-reader-tools { grid-template-columns: 1fr; padding: 9px 10px; }
  .cg-novenas-reader-tools nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cg-novenas-reader-tools button { min-width: 0; padding-inline: 4px; font-size: 8px; }
  .cg-novenas-day-timeline { padding: 7px 9px; }
  .cg-novenas-day-timeline button { min-width: 102px; min-height: 54px; }
  .cg-novenas-reader-grid { min-height: 0; display: flex; flex-direction: column; }
  .cg-novenas-art { min-height: 118px; padding: 12px; border-right: 0; border-bottom: 1px solid var(--cg-novena-gold-line); background-position: center 34%; }
  .cg-novenas-art .cg-novenas-gold-cross { display: none; }
  .cg-novenas-art div { width: 100%; padding: 10px 12px; }
  .cg-novenas-art strong { font-size: 22px; }
  .cg-novenas-prayer-card { min-height: calc(100dvh - 245px); padding: 18px 15px calc(98px + env(safe-area-inset-bottom)); }
  .cg-novenas-progress-bar { margin-bottom: 20px; }
  .cg-novenas-prayer-card h1 { margin-bottom: 18px; font-size: clamp(36px, 11vw, 52px); }
  .cg-novenas-unit-text { font-size: clamp(22px, 6.2vw, 29px); line-height: 1.5; }
  .cg-novenas-navigation { position: fixed; z-index: 999950; left: 0; right: 0; bottom: 0; margin: 0; padding: 9px max(12px, env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); border-top: 1px solid var(--cg-novena-gold-line); background: rgba(3, 8, 14, .97); box-shadow: 0 -14px 40px rgba(0, 0, 0, .5); }
  .cg-novenas-navigation .cg-novenas-button { flex: 1 1 50%; min-width: 0; min-height: 52px; padding-inline: 7px; }
  .cg-novenas-app :where(button, a, input, select, textarea) { touch-action: manipulation; }
  .cg-novenas-feature { width: 100%; min-height: 310px; }
  .cg-novenas-feature-content { padding: 30px 22px; }
  .cg-novenas-music { bottom: calc(82px + env(safe-area-inset-bottom)); }
}

@media (orientation: landscape) and (max-height: 540px) and (max-width: 980px) {
  .cg-novenas-app { width: 100%; margin: 0; overflow-x: clip; }
  .cg-novenas-reader-tools { grid-template-columns: minmax(160px, .8fr) minmax(0, 1.4fr); }
  .cg-novenas-reader-tools > div span { display: none; }
  .cg-novenas-reader-tools nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cg-novenas-reader-tools button { min-width: 0; padding-inline: 5px; font-size: 8px; }
  .cg-novenas-day-timeline button { min-height: 44px; }
  .cg-novenas-reader-grid { min-height: 0; display: block; }
  .cg-novenas-art { display: none; }
  .cg-novenas-prayer-card { min-height: calc(100dvh - 145px); padding: 12px 18px calc(66px + env(safe-area-inset-bottom)); }
  .cg-novenas-progress-bar { margin: 5px 0 10px; }
  .cg-novenas-prayer-card h1 { font-size: clamp(30px, 5vw, 43px); }
  .cg-novenas-unit-text { font-size: 20px; }
  .cg-novenas-navigation { position: fixed; z-index: 999950; left: 0; right: 0; bottom: 0; margin: 0; padding: 5px max(12px, env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); border-top: 1px solid var(--cg-novena-gold-line); background: rgba(3, 8, 14, .97); box-shadow: 0 -10px 28px rgba(0, 0, 0, .5); }
  .cg-novenas-navigation .cg-novenas-button { min-height: 44px; }
  .cg-novenas-music { bottom: calc(60px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) {
  .cg-novenas-app *,
  .cg-novenas-feature * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

@media (prefers-contrast: more) {
  .cg-novenas-app { --cg-novena-line: rgba(255, 255, 255, .65); --cg-novena-blue: #d8e6ff; }
}
