/* ======================================================
   COMPONENTS — FINAL CLEANED
   Buttons, forms, cards, modals, shop, realms, contact UI
   Newsletter-plugin-specific rules removed. Duplicate exact blocks removed.
   ====================================================== */

:root {
  --veil-sigil-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Ccircle cx='100' cy='100' r='72' fill='none' stroke='rgba(255,255,255,0.25)' stroke-width='2'/%3E%3Cpath d='M100 28 L120 80 L172 100 L120 120 L100 172 L80 120 L28 100 L80 80 Z' fill='none' stroke='rgba(255,255,255,0.3)' stroke-width='2'/%3E%3C/svg%3E");
}

/* ======================================================
   COMPONENTS
   Buttons, menus, forms, cards
   ====================================================== */

/* ======================
   BUTTONS
   ====================== */
button,
input[type="submit"],
.wp-block-button__link,
.ct-button {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.95rem;
  padding: 0.75em 1.25em;
  border-radius: var(--radius-md);
  border: none;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

/* Neutral baseline — tuned later */
button,
.wp-block-button__link {
  background-color: var(--veil-violet);
  color: #ffffff;
}

button:hover,
.wp-block-button__link:hover {
  background-color: var(--veil-indigo);
}

/* ======================
   FORMS
   ====================== */

input,
textarea,
select {
  font-family: var(--font-ui);
  font-size: 0.95rem;
  padding: 0.6em 0.7em;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(0,0,0,.25);
  color: var(--text-base);
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--veil-violet);
}

/* ======================
   NAVIGATION / MENUS
   ====================== */

nav,
.menu {
  font-family: var(--font-ui);
}

.menu a {
  color: var(--text-base);
  transition: color .2s ease;
}

.menu a:hover {
  color: var(--veil-violet);
}

/* ======================
   CARDS / BOXES
   ====================== */

.card,
.veil-card {
  background: rgba(255,255,255,.04);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  box-shadow: var(--shadow-soft);
}

/* ======================
   NOTICES
   ====================== */

.notice,
.alert {
  padding: 1rem 1.25rem;
  border-radius: var(--radius-md);
  background: rgba(255,255,255,.06);
  color: var(--text-base);
}
/* === BOOK GRID === */
.book-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

@media (max-width: 768px) {
  .book-grid {
    grid-template-columns: 1fr;
  }
}

.book-card {
  background: rgba(20, 14, 40, 0.85);
  border-radius: 18px;
  padding: 18px 16px 22px;
  text-align: center;
  box-shadow:
    inset 0 0 0 1px rgba(200,170,255,.08),
    0 18px 40px rgba(10,5,25,.55);
  transition: transform .25s ease, box-shadow .25s ease;
}

.book-card:hover {
  transform: translateY(-3px);
  box-shadow:
    inset 0 0 0 1px rgba(200,170,255,.12),
    0 26px 55px rgba(20,10,45,.75);
}

/* === COVER === */

/* === CONTENT === */
.book-card-content {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}

.book-card-content .lv-sub {
  max-width: 40ch;
}

/* === BUTTON === */
/* ===============================
   BOOK GRID — BLOCKSY OVERRIDES
   =============================== */

/* Force image sizing inside Blocksy content */
.ct-entry-content .book-card-thumb img,
.entry-content .book-card-thumb img {
  width: 88px;
  max-width: 88px;
  height: auto;
  border-radius: 6px;
  box-shadow: 0 8px 18px rgba(0,0,0,.45);
  transition: transform .25s ease, box-shadow .25s ease;
}

.ct-entry-content .book-card:hover .book-card-thumb img,
.entry-content .book-card:hover .book-card-thumb img {
  transform: scale(1.04);
  box-shadow: 0 12px 26px rgba(0,0,0,.55);
}
/* ===============================
   VEIL BUTTON — BLOCKSY SAFE
   =============================== */

/* ===============================
   BOOK GRID — INFO CARD
   =============================== */

.book-card--info {
  background:
    radial-gradient(120% 140% at 50% -10%, rgba(70,50,120,.55), transparent 60%),
    linear-gradient(180deg, #1b152d, #141024);

  border-radius: 16px;
  box-shadow:
    inset 0 0 0 1px rgba(200,170,255,.08),
    0 16px 36px rgba(20,10,40,.45);
}

.book-card--info .book-card-content {
  justify-content: center;
}

.book-format-list {
  list-style: none;
  padding: 0;
  margin: 12px auto 0;
  max-width: 420px;
  text-align: left;
  line-height: 1.7;
}

.book-format-list li {
  color: #e6e4f2;
}
/* ===============================
   HOME — BOOK SHELF GRID
   =============================== */

.lv-shelf-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
  align-items: stretch;
}

@media (max-width: 1024px) {
  .lv-shelf-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .lv-shelf-grid {
    grid-template-columns: 1fr;
  }
}
.lv-book {
  background:
    linear-gradient(180deg, #1b152d, #141024);
  border-radius: 18px;
  padding: 1.5rem 1.25rem 1.75rem;
  text-align: center;
  box-shadow:
    inset 0 0 0 1px rgba(200,170,255,.08),
    0 16px 36px rgba(20,10,40,.45);
}

.lv-book-cover img {
  width: 120px;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(0,0,0,.55);
}
.lv-book-locked {
  position: relative;
  opacity: .85;
}

.lv-book-locked .lv-coming {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #7f1d1d, #991b1b);
  color: #fff;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  box-shadow: 0 0 12px rgba(220,38,38,.55);
}
.veil-btn-muted {
  opacity: .6;
  cursor: default;
  filter: grayscale(.4);
}
/* ===============================
   HOME — BOOK COVER SIZE FIX
   =============================== */

.lv-book-cover {
  display: flex;
  justify-content: center;
  margin-bottom: 1rem;
}

.lv-book-cover img {
  width: 110px !important;      /* hard cap */
  max-width: 110px !important;
  height: auto !important;

  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(0,0,0,.55);
}
.lv-book:hover .lv-book-cover img {
  transform: scale(1.04);
  transition: transform .25s ease;
}
/* ===============================
   HOME PAGE — BOOK POSTER LOCK
   =============================== */

.lv-home-books .lv-book-cover {
  display: flex;
  justify-content: center;
}

.lv-home-books .lv-book-cover img {
  width: 110px !important;
  max-width: 110px !important;
  height: auto !important;

  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(0,0,0,.55);
}
/* ===============================
   ENTER THE VEIL — TEXT COLOR FIX
   =============================== */

.lv-veil,
.lv-veil p,
.lv-veil .lv-subtext,
.lv-veil .lv-sub,
.lv-veil strong,
.lv-veil em {
  color: #E6E4F2; /* Moonlight body text */
}

/* Headings stay luminous */
.lv-veil h1,
.lv-veil h2,
.lv-veil h3 {
  color: transparent; /* keeps your glow + gradient */
}

/* Links inside Veil */
.lv-veil a {
  color: var(--veil-moonlight);
}

.lv-veil a:hover {
  color: var(--veil-arcane);
  text-shadow: 0 0 6px var(--veil-glow-soft);
}
/* =========================================
   VEIL SECTIONS — FORCE TEXT COLOR (BLOCKSY)
   ========================================= */

/* Catch Blocksy + Gutenberg wrappers */
.lv-veil,
.lv-veil * {
  color: #E6E4F2;
}

/* Restore heading glow (override the override) */
.lv-veil h1,
.lv-veil h2,
.lv-veil h3 {
  color: transparent !important;
}

/* Strong/em emphasis clarity */
.lv-veil strong {
  color: #F5F3FF;
}

.lv-veil em {
  color: #DDD6FE;
}
/* ===============================
   HOME HERO — TEXT COLOR FIX
   =============================== */

.lv-home-hero,
.lv-home-hero p,
.lv-home-hero .lv-hero-sub {
  color: #E6E4F2; /* Moonlight body text */
}

/* Hero title keeps glow / gradient */
.lv-home-hero .lv-hero-title {
  color: transparent !important;
}

/* Buttons already styled, but ensure contrast */
/* =====================================
   VEIL BUTTON SYSTEM — RECTANGULAR
   ===================================== */

/* Base Veil Button */

/* Hover / Focus */
/* Active */
/* =====================================
   VEIL BUTTON — OUTLINE VARIANT
   ===================================== */

.veil-btn-outline {
  background: transparent;
  color: var(--veil-moonlight);

  border: 1px solid rgba(200,170,255,.55);

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.06),
    0 4px 14px rgba(0,0,0,.35);
}

.veil-btn-outline:hover,
.veil-btn-outline:focus-visible {
  background: rgba(124,58,237,.15);
  color: #FFFFFF;

  border-color: var(--veil-arcane);

  box-shadow:
    0 0 18px rgba(124,58,237,.45),
    inset 0 0 0 1px rgba(255,255,255,.18);
}
/* =====================================
   EVENTS / SHORTCODE CONTENT OVERRIDES
   ===================================== */

.lv-ink-wrap .events,
.lv-ink-wrap .events *,
.lv-ink-wrap .event,
.lv-ink-wrap .event *,
.lv-ink-wrap .tribe-events,
.lv-ink-wrap .tribe-events * {
  color: #E6E4F2 !important;
}
/* =====================================
   VEIL SUBTEXT
   ===================================== */

.lv-sub {
  color: #CFCBE6;
}

.lv-obs-wrap .lv-sub,
.lv-ink-wrap .lv-sub {
  color: #CFCBE6;
}
/* ===============================
   VEIL BUTTON — OUTLINE
   =============================== */

.veil-btn-outline {
  background: transparent;
  color: var(--veil-moonlight);

  border: 1px solid rgba(180,140,255,.55);

  box-shadow: none;
}

.veil-btn-outline:hover {
  color: #FFFFFF;

  background: rgba(124,58,237,.12);
  border-color: var(--veil-arcane);

  box-shadow:
    0 0 14px rgba(124,58,237,.35);
}
/* ===============================
   VEIL BUTTON — LOCKED / COMING SOON
   =============================== */

/* ===============================
   RESET BLOCKSY BUTTON SHAPES
   =============================== */

/* ===============================
   VEIL BUTTON — PRIMARY
   =============================== */

/* ===============================
   VEIL BUTTON — OUTLINE
   =============================== */

/* ===============================
   FORCE LIGHT TEXT IN VEIL SECTIONS
   =============================== */

.lv-ink-wrap,
.lv-obs-wrap,
.lv-home-books,
.veil-mist-wrap {
  color: #E6E4F2;
}

.lv-ink-wrap p,
.lv-obs-wrap p,
.lv-home-books p,
.veil-mist-wrap p {
  color: inherit;
}
/* ===============================
   VEIL — SUBTLE HOVER GLOW TIMING
   =============================== */

.veil-btn-outline:hover,
.veil-btn-outline:focus-visible {
  box-shadow:
    0 0 0 1px rgba(200,160,255,.35),
    0 0 18px rgba(160,120,255,.35);
}
/* ===============================
   BLOOD MOON ACCENT STATE
   =============================== */

.veil-bloodmoon {
  --veil-accent: #B11226;
  --veil-glow: rgba(177,18,38,.6);
}

/* ===============================
   MEMBERSHIP TIER — ASCENDANT
   =============================== */

/* ===============================
   BLOOD MOON — PULSE EFFECT
   =============================== */

@keyframes bloodmoon-pulse {
  0%, 100% {
    box-shadow:
      0 0 18px rgba(177,18,38,.45),
      inset 0 0 0 1px rgba(255,255,255,.12);
  }
  50% {
    box-shadow:
      0 0 34px rgba(177,18,38,.75),
      inset 0 0 0 1px rgba(255,255,255,.2);
  }
}
/* ===============================
   MEMBERSHIP — GLOW SCALING
   =============================== */

/* ===============================
   VEIL — SIGIL HOVER EFFECT
   =============================== */

/* Blood Moon overrides only when active */
.veil-bloodmoon-active {
  --veil-accent: #B11226;
  --veil-glow: rgba(177,18,38,.75);
}
/* ===============================
   BOOK AURA VARIABLES
   =============================== */

.veil-book-awakening {
  --veil-accent: #7C3AED;   /* Arcane Violet */
  --veil-glow: rgba(124,58,237,.6);
}

.veil-book-descent {
  --veil-accent: #2563EB;   /* Cold Moon Blue */
  --veil-glow: rgba(37,99,235,.55);
}

.veil-book-bloodmoon {
  --veil-accent: #B11226;   /* Crimson */
  --veil-glow: rgba(177,18,38,.7);
}

/* Apply automatically */
/* ===============================
   SIGIL — MEMBERSHIP TIERS
   =============================== */

/* Initiate — faint */

/* Acolyte — steady */

/* Ascendant — rotating sigil */

@keyframes sigil-rotate {
  from { transform: rotate(0deg) scale(1); }
  to   { transform: rotate(360deg) scale(1.05); }
}
/* ===============================
   VEIL — NIGHTFALL MODE
   =============================== */

.veil-nightfall {
  background-color: #0B0814;
}

.veil-nightfall .lv-h2,
.veil-nightfall .lv-h3 {
  text-shadow: 0 0 18px rgba(120,80,200,.35);
}
/* ===============================
   VEIL — NIGHTFALL MODE (TIME)
   =============================== */

.veil-nightfall {
  --veil-bg: #0A0814;
  --veil-text: #D8D6E8;
  --veil-glow-soft: rgba(140,100,255,.25);
  --veil-glow-hard: rgba(160,120,255,.45);
}

.veil-nightfall body,
.veil-nightfall .site {
  background-color: var(--veil-bg);
}

/* Headings deepen */
.veil-nightfall h1,
.veil-nightfall h2,
.veil-nightfall h3 {
  text-shadow:
    0 0 18px rgba(120,90,200,.35),
    0 0 36px rgba(90,60,160,.25);
}

/* Buttons feel heavier */
/* ===============================
   VEIL — BLOOD MOON + NIGHTFALL
   =============================== */

.veil-nightfall.veil-bloodmoon {
  --veil-accent: #B11226;
  --veil-glow-hard: rgba(177,18,38,.75);
}

/* Headings */
.veil-nightfall.veil-bloodmoon h1,
.veil-nightfall.veil-bloodmoon h2 {
  text-shadow:
    0 0 18px rgba(177,18,38,.6),
    0 0 48px rgba(120,0,20,.55);
}

/* Buttons */
.veil-nightfall-user {
  --veil-glow-soft: rgba(140,100,255,.18);
  --veil-glow-hard: rgba(160,120,255,.28);
}
/* Night homepage */
.veil-home-night .lv-home-hero {
  background:
    radial-gradient(120% 120% at 50% -10%, rgba(80,60,160,.45), transparent 60%);
}

/* Blood Moon homepage */
.veil-home-bloodmoon .lv-home-hero h1 {
  color: #FEE2E2;
  text-shadow:
    0 0 24px rgba(177,18,38,.75),
    0 0 64px rgba(120,0,20,.65);
}
/* ===============================
   VEIL — SEASONAL HOOKS
   =============================== */

.veil-season-autumn {}
.veil-season-winter {}
.veil-season-spring {}
.veil-season-summer {}
.lv-cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  align-items:center;
  justify-content:center; /* center under the title */
  margin:14px 0 8px;
}

/* Transparent/outline button */
.veil-btn-outline{
  background: transparent !important;
  border: 1px solid rgba(231, 69, 112, .75); /* crimson outline */
  color: var(--veil-moonlight, #F5F3FF) !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.35);
}

.veil-btn-outline:hover,
.veil-btn-outline:focus-visible{
  border-color: rgba(231, 69, 112, 1);
  box-shadow:
    0 10px 26px rgba(0,0,0,.45),
    0 0 18px rgba(231, 69, 112, .35);
  transform: translateY(-1px);
}
/* === Descent Preview Button — Crimson Veil === */
.veil-btn-descent{
  background: transparent !important;

  border: 1px solid rgba(227,69,112,.85); /* rich crimson */
  color: #FFE4ED !important;

  box-shadow:
    0 6px 18px rgba(0,0,0,.45),
    inset 0 0 0 1px rgba(255,255,255,.08);

  transition:
    transform .2s ease,
    box-shadow .2s ease,
    border-color .2s ease,
    color .2s ease;
}

.veil-btn-descent:hover,
.veil-btn-descent:focus-visible{
  border-color: rgba(255,92,135,1);
  color: #FFFFFF !important;

  box-shadow:
    0 10px 26px rgba(227,69,112,.55),
    0 0 22px rgba(227,69,112,.45);

  transform: translateY(-1px);
}
.lv-legal-hub .elementor-column[data-settings*="gradient"] {
  box-shadow:
    inset 0 0 0 1px rgba(167,139,250,.15),
    0 12px 30px rgba(10,6,30,.55);
  border-radius: 14px;
}
/* =========================================
   LEGAL HUB — ELEMENTOR COLOR OVERRIDES
   ========================================= */

/* Base text */
.lv-legal-hub .elementor-widget-text-editor,
.lv-legal-hub .elementor-widget-text-editor p {
  color: #E6E4F2 !important;
}

/* Card headings */
.lv-legal-hub .elementor-heading-title {
  color: var(--veil-moonlight) !important;
  text-shadow: 0 0 8px rgba(167,139,250,.35);
}

/* Section headings (H2 like "Manage Consent") */
.lv-legal-hub h2.elementor-heading-title {
  color: var(--veil-moonlight) !important;
  text-shadow: 0 0 10px rgba(167,139,250,.45);
}

/* Muted helper text */
.lv-legal-hub .elementor-widget-text-editor p small,
.lv-legal-hub .elementor-widget-text-editor .lv-sub {
  color: rgba(230,228,242,.75) !important;
}

/* Links */
.lv-legal-hub a:not(.elementor-button) {
  color: var(--veil-arcane) !important;
  text-decoration: none;
}

.lv-legal-hub a:not(.elementor-button):hover {
  color: var(--veil-moonlight) !important;
  text-shadow: 0 0 6px var(--veil-glow-soft);
}

/* Forms (labels + inputs) */
.lv-legal-hub label,
.lv-legal-hub .elementor-field-label {
  color: #E6E4F2 !important;
}

.lv-legal-hub input,
.lv-legal-hub textarea,
.lv-legal-hub select {
  color: #E6E4F2;
  background-color: rgba(20,16,40,.6);
  border-color: rgba(167,139,250,.35);
}

/* Select caret + icons */
.lv-legal-hub .elementor-select-wrapper svg {
  fill: #E6E4F2;
}

.veil-modal-inner {
  background: radial-gradient(circle at top, #1e1b3a, #0f1020);
  padding: 2rem;
  border-radius: 14px;
  width: min(420px, 90%);
  color: #e9e7ff;
}

.veil-disabled {
  opacity: .6;
  pointer-events: none;
}
.veil-atelier {
   max-width: 980px;      /* controls total width */
  margin: 4rem auto;          /* centers the entire section */
  padding: 3rem 2rem;

  background: radial-gradient(circle at top, #1b1a38, #0f1020);
  border-radius: 18px;
  text-align: center;
}
.veil-atelier-grid {
  justify-items: center;
}
.veil-has-sigil {
  position: relative;
  overflow: hidden;
}

.veil-has-sigil::before {
  content: "";
  position: absolute;
  inset: -20%;
  background: url("/wp-content/themes/blocksy-child/assets/images/veil-sigil.svg") center / 420px no-repeat;
  opacity: 0.045; /* VERY subtle */
  filter: blur(0.4px);
  pointer-events: none;
  z-index: 0;
}

.veil-atelier > * {
  position: relative;
  z-index: 1;
}
/* Default Moonlight */
.veil-atelier {
  --veil-accent: var(--veil-moonlight);
  --veil-glow: rgba(167,139,250,.45);
}

/* Blood Moon Mode */
body.veil-blood-moon .veil-atelier {
  --veil-accent: var(--veil-crimson);
  --veil-glow: rgba(227,69,112,.55);
}
.veil-atelier h2 {
  color: var(--veil-accent);
  text-shadow: 0 0 14px var(--veil-glow);
}
.veil-atelier-card {
  background: linear-gradient(180deg, #181832, #0e0e1d);
  border-radius: 14px;
  padding: 1.75rem;
  transition: transform .25s ease, box-shadow .25s ease;
  box-shadow: 0 8px 22px rgba(0,0,0,.35);
}

.veil-atelier-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 14px 36px rgba(0,0,0,.55),
    0 0 26px var(--veil-glow);
}
.veil-atelier-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, var(--veil-accent), transparent 70%);
  opacity: 0;
  transition: opacity .3s ease;
  pointer-events: none;
}

.veil-atelier-card:hover::after {
  opacity: 0.12;
}
 /* Grid */
  .lv-shop-grid{
    display:grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-top: 18px;
    align-items: stretch;
  }
  @media (max-width: 980px){
    .lv-shop-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 640px){
    .lv-shop-grid{ grid-template-columns: 1fr; }
  }

  .lv-shop-card{
    position:relative;
    padding: 18px;
    border-radius: 16px;
    background: rgba(18, 14, 30, .55);
    box-shadow: 0 18px 40px rgba(0,0,0,.35), inset 0 0 0 1px rgba(233,231,255,.08);
    display:flex;
    flex-direction:column;
    gap: 10px;
    text-align:center;
  }

  .lv-shop-thumb{
    display:flex;
    justify-content:center;
    margin-top: 6px;
    position:relative;
  }

  /* Smaller covers */
  .lv-shop-thumb img{
    width: 92px;
    max-width: 92px;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 10px 22px rgba(0,0,0,.45);
    transition: transform .2s ease, box-shadow .2s ease;
  }
  .lv-shop-card:hover .lv-shop-thumb img{
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(0,0,0,.55);
  }

  .lv-coming-badge{
    position:absolute;
    top:-8px;
    right: 10px;
    font-size: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(227,69,112,.18);
    color: rgba(233,231,255,.95);
    box-shadow: inset 0 0 0 1px rgba(227,69,112,.35);
    backdrop-filter: blur(6px);
  }

  .lv-card-title{
    margin: 6px 0 0;
    color: rgba(233,231,255,.98);
    font-size: 18px;
    letter-spacing: .02em;
  }

  .lv-actions{
    margin-top:auto;
    display:flex;
    justify-content:center;
    gap: 10px;
    flex-wrap: wrap;
  }

  /* Popup */
  .lv-shop-modal{ position:fixed; inset:0; z-index:99999; display:none; }
  .lv-shop-modal.is-open{ display:block; }

  .lv-shop-modal__backdrop{
    position:absolute; inset:0;
    background: rgba(6,4,12,.66);
    backdrop-filter: blur(6px);
    opacity:0;
    animation: lvVeilIn .22s ease forwards;
  }

  .lv-shop-modal__panel{
    position: relative;
    width: min(720px, calc(100% - 26px));
    margin: 10vh auto 0;
    border-radius: 18px;
    padding: 22px 18px 18px;
    background: radial-gradient(120% 150% at 50% 0%, rgba(44,34,78,.92), rgba(16,12,28,.92));
    box-shadow: 0 26px 70px rgba(0,0,0,.55), inset 0 0 0 1px rgba(233,231,255,.10);
    transform: translateY(10px);
    opacity:0;
    animation: lvPanelIn .24s ease forwards;
    overflow: hidden;
  }

  .lv-sigil-watermark{
    position:absolute;
    inset: -20px auto auto -10px;
    width: 180px;
    opacity: .22;
    filter: blur(.2px);
    pointer-events:none;
    animation: lvSigilPulse 6.5s ease-in-out infinite;
  }

  .lv-shop-modal__close{
    position:absolute; top: 10px; right: 12px;
    width: 38px; height: 38px;
    border-radius: 10px;
    border: 1px solid rgba(233,231,255,.14);
    background: rgba(10,8,20,.45);
    color: rgba(233,231,255,.9);
    font-size: 22px;
    cursor:pointer;
  }

  .lv-shop-form{
    display:grid;
    gap: 12px;
    margin-top: 12px;
  }
  .lv-shop-label{
    display:grid;
    gap: 6px;
    color: rgba(233,231,255,.90);
    font-weight: 600;
    font-size: 13px;
  }
  .lv-shop-label select{
    width: 100%;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(233,231,255,.14);
    background: rgba(10,8,20,.35);
    color: rgba(233,231,255,.92);
    outline: none;
  }
  .lv-shop-check{
    display:flex;
    gap: 8px;
    align-items:center;
    color: rgba(233,231,255,.86);
    font-size: 13px;
  }

  .lv-shop-cta{
    display:flex;
    gap: 10px;
    justify-content:flex-end;
    flex-wrap: wrap;
    margin-top: 4px;
  }

  @keyframes lvVeilIn{
    to{ opacity:1; }
  }
  @keyframes lvPanelIn{
    to{ opacity:1; transform: translateY(0); }
  }
  @keyframes lvSigilPulse{
    0%,100%{ transform: translateY(0) scale(1); opacity:.22; }
    50%{ transform: translateY(-2px) scale(1.02); opacity:.28; }
  }
  .lv-book-card img {
  width: 100px;          /* was 140px */
  max-width: 100%;
  height: auto;
  margin-bottom: .75rem;
  border-radius: 6px;
  box-shadow: 0 8px 18px rgba(0,0,0,.45);
}
.lv-book-card {
  padding: 1.25rem 1rem 1.5rem;
}
.lv-book-card {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.lv-book-card img {
  width: 90px;
  flex-shrink: 0;
}
.lv-book-card-content {
  flex: 1;
  text-align: left;
}
.lv-books-section {
  text-align: center;
}
.lv-book-desc {
  color: var(--veil-text-soft);
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0.25rem 0 0.75rem;
}
/* =========================
   VEIL BUTTON — RECTANGULAR
========================= */

.veil-btn-outline {
  background:
    var(--veil-sigil-svg) center/80% no-repeat,
    rgba(255,255,255,0.03);

  color: #e9e7ff;
  border: 1px solid rgba(233,231,255,0.45);
  box-shadow: none;
}

.veil-btn-outline:hover {
  background:
    var(--veil-sigil-svg) center/80% no-repeat,
    rgba(233,231,255,0.08);

  box-shadow:
    0 0 14px rgba(233,231,255,0.35);
}

/* === Dialog Shell === */
.veil-shop-dialog {
  border: none;
  padding: 0;
  background: transparent;
}

.veil-shop-dialog::backdrop {
  background: rgba(6, 8, 20, 0.88);
  backdrop-filter: blur(7px);
}

/* === Inner === */
.veil-dialog-inner {
  position: relative;
  background: linear-gradient(
    180deg,
    rgba(16,18,42,0.97),
    rgba(8,10,22,0.97)
  );
  border-radius: 14px;
  padding: 2.2rem;
  max-width: 760px;
  box-shadow: 0 35px 90px rgba(0,0,0,.7);
  z-index: 2;
}

/* === Sigil Watermark === */
.veil-dialog-sigil {
  position: absolute;
  inset: 0;
  background:
    var(--veil-sigil-svg) center / 320px no-repeat;
  opacity: 0.06;
  pointer-events: none;
  z-index: 1;
}

/* === Close === */
.veil-dialog-close {
  position: absolute;
  top: 14px;
  right: 14px;
  background: transparent;
  border: none;
  font-size: 1.4rem;
  color: #c7c9ff;
  cursor: pointer;
  z-index: 3;
}

/* === Blood Moon Accent (activated by JS) === */
.veil-shop-dialog.is-blood-moon .veil-dialog-inner {
  box-shadow:
    0 0 0 1px rgba(180,30,60,.45),
    0 0 38px rgba(180,30,60,.45),
    0 35px 90px rgba(0,0,0,.8);
}

.veil-shop-dialog.is-blood-moon h2 {
  color: #ffb4c4;
  text-shadow: 0 0 12px rgba(180,30,60,.6);
}

.veil-modal-inner {
  position: relative;
  width: 100%;
  height: 100%;
  overflow-y: auto;
}

.veil-modal-content {
  max-width: 560px;
  margin: 10vh auto;
  padding: 2.5rem;
  background: #0c0f18;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  color: #fff;
  text-align: center;
}

.veil-modal-close {
  position: fixed;
  top: 20px;
  right: 24px;
  font-size: 26px;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
}
/* Make button behave EXACTLY like veil <a> buttons */

/* Ensure hover/focus states match */

/* Prevent size jumps */

/* Make button behave EXACTLY like veil <a> buttons */

/* Ensure hover/focus states match */

/* Prevent size jumps */

/* Disable card click interception */
.lv-shop-card {
  pointer-events: none;
}

/* Re-enable clicks ONLY for real interactive elements */
.lv-shop-card a,
.lv-shop-card button,
.lv-shop-card .veil-notify-trigger {
  pointer-events: auto;
}

/* Ensure Notify button sits above overlays */
.veil-notify-trigger {
  position: relative;
  z-index: 100;
}

/* Undo common modal/container resets */
#veil-notify-modal .veil-modal-content {
  overflow: visible !important;
}

/* =========================
   VEIL NOTIFY MODAL – FORCE VISIBILITY
========================= */

.veil-modal-inner {
  background: #0b0b0d;
  max-width: 640px;
  width: 90%;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 0 60px rgba(180, 40, 60, 0.35);
}

.veil-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  color: #fff;
  font-size: 1.25rem;
  cursor: pointer;
}
a.veil-btn.veil-btn-blood.veil-notify-trigger{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem 1rem;      /* tighten it */
  font-size: .95rem;
  border-radius: 999px;
}

a.veil-btn.veil-btn-blood .veil-sigil{
  display:inline-flex;
  width: 28px;
  height: 28px;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.25);
}
/* HARD OVERRIDE – DEBUG */

/* Veil outline button base */

/* Hover glow */

/* Pressed state */
/* Veil outline button base */

/* Hover glow */

/* Pressed state */
@keyframes veil-pulse {
  0% {
    box-shadow:
      0 0 0 rgba(138, 14, 26, 0),
      0 0 10px rgba(138, 14, 26, 0.25);
  }
  50% {
    box-shadow:
      0 0 0 rgba(138, 14, 26, 0),
      0 0 18px rgba(138, 14, 26, 0.55);
  }
  100% {
    box-shadow:
      0 0 0 rgba(138, 14, 26, 0),
      0 0 10px rgba(138, 14, 26, 0.25);
  }
}

/* Default fallback */
:root {
  --veil-glow: rgba(138, 14, 26, 0.6);        /* Crimson fallback */
  --veil-glow-soft: rgba(138, 14, 26, 0.35);
  --veil-accent: #8a0e1a;
}

/* Realm palettes */
.veil-realm-unbound { --veil-glow: rgba(140, 140, 140, 0.55); }
.veil-realm-ashfall { --veil-glow: rgba(255, 115, 85, 0.65); }
.veil-realm-elderglen { --veil-glow: rgba(120, 190, 140, 0.65); }
.veil-realm-moonreach { --veil-glow: rgba(120, 160, 255, 0.7); }

@keyframes codex-flicker {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}

.veil-realm-unbound {
  --veil-glow: rgba(140, 140, 140, 0.55);
  --veil-glow-soft: rgba(140, 140, 140, 0.3);
  --veil-accent: #b0b0b0;
}
.veil-realm-moonreach {
  --veil-glow: rgba(120, 160, 255, 0.75);
  --veil-glow-soft: rgba(120, 160, 255, 0.4);
  --veil-accent: #9fb8ff;
}
.veil-realm-elderglen {
  --veil-glow: rgba(120, 190, 140, 0.7);
  --veil-glow-soft: rgba(120, 190, 140, 0.4);
  --veil-accent: #8fd6a5;
}
.veil-realm-ashfall {
  --veil-glow: rgba(255, 115, 85, 0.75);
  --veil-glow-soft: rgba(255, 115, 85, 0.4);
  --veil-accent: #ff8b6a;
}
.veil-realm-marrowbrook {
  --veil-glow: rgba(165, 40, 55, 0.75);
  --veil-glow-soft: rgba(165, 40, 55, 0.4);
  --veil-accent: #b93a4c;
}
.veil-realm-sanctum {
  --veil-glow: rgba(190, 180, 150, 0.7);
  --veil-glow-soft: rgba(190, 180, 150, 0.4);
  --veil-accent: #d2c9a8;
}
.veil-realm-abyssal {
  --veil-glow: rgba(160, 120, 255, 0.8);
  --veil-glow-soft: rgba(160, 120, 255, 0.45);
  --veil-accent: #b79cff;
}
.veil-realm-riftlands {
  --veil-glow: rgba(140,180,200,0.65);
  --veil-glow-soft: rgba(140,180,200,0.35);
  --veil-accent: #9fcad8;
}
.veil-realm-nexus {
  --veil-glow: rgba(90,170,200,0.8);
  --veil-glow-soft: rgba(90,170,200,0.45);
  --veil-accent: #7fc4da;
}
/* The Silver Marches — frost-silver, windswept */
.veil-realm-silver-marches{
  --veil-glow: rgba(210,230,255,0.78);
  --veil-glow-soft: rgba(210,230,255,0.42);
  --veil-accent: #d7e6ff;
}

/* Thornwake — bramble green with toxic violet undertone */
.veil-realm-thornwake{
  --veil-glow: rgba(90,190,120,0.74);
  --veil-glow-soft: rgba(90,190,120,0.38);
  --veil-accent: #66d08c;
}

/* The Obsidian Coast — black glass, sea-sheen teal */
.veil-realm-obsidian-coast{
  --veil-glow: rgba(40,180,170,0.72);
  --veil-glow-soft: rgba(40,180,170,0.36);
  --veil-accent: #3dd6c9;
}

/* The Umbral Expanse — shadow violet, dim starlight */
.veil-realm-umbral-expanse{
  --veil-glow: rgba(120,95,180,0.78);
  --veil-glow-soft: rgba(120,95,180,0.42);
  --veil-accent: #b29cff;
}

/* The Shattered Veil — fractured prism, unstable cyan-magenta */
.veil-realm-shattered-veil{
  --veil-glow: rgba(140,230,255,0.82);
  --veil-glow-soft: rgba(255,120,220,0.26);
  --veil-accent: #7fe9ff;
}

/* The Astral Deep — cosmic blue, aurora shimmer */
.veil-realm-astral-deep{
  --veil-glow: rgba(70,145,255,0.85);
  --veil-glow-soft: rgba(70,145,255,0.45);
  --veil-accent: #79b2ff;
}

/* Gloamreach — dusk gold + smoke, candlelight in fog */
.veil-realm-gloamreach{
  --veil-glow: rgba(210,170,90,0.78);
  --veil-glow-soft: rgba(210,170,90,0.42);
  --veil-accent: #e0b56a;
}

/* Noctyrr — moonless night, cold indigo with razor edge */
.veil-realm-noctyrr{
  --veil-glow: rgba(90,105,170,0.82);
  --veil-glow-soft: rgba(90,105,170,0.44);
  --veil-accent: #9aa7ff;
}

/* The Voidward — defensive wardlight against the Void (pale ward-green) */
.veil-realm-voidward{
  --veil-glow: rgba(120,235,200,0.78);
  --veil-glow-soft: rgba(120,235,200,0.40);
  --veil-accent: #7ff0d3;
}

.veil-bloodmoon {
  --veil-glow: rgba(180,0,30,0.9);
  --veil-glow-soft: rgba(180,0,30,0.55);
  --veil-accent: #ff3344;
}
.veil-codex-only {
  --veil-glow: rgba(120,0,140,0.75);
  --veil-glow-soft: rgba(120,0,140,0.4);
  --veil-accent: #d18cff;
}

.veil-accent-text {
  color: var(--veil-accent);
}
/* === Veil Account / Entry Button === */
.veil-btn-account {
  position: relative;
  border: 1px solid rgba(255,255,255,.35);
  color: var(--veil-silver);
  background: transparent;
  overflow: hidden;
}

/* Realm glow (default fallback) */
.veil-btn-account::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  box-shadow: 0 0 18px rgba(180,180,255,.45);
  opacity: .75;
  pointer-events: none;
}

/* Realm-specific glow */
body.veil-realm-sanctum .veil-btn-account::after { box-shadow: 0 0 22px #c7d2fe; }
body.veil-realm-abyssal .veil-btn-account::after { box-shadow: 0 0 22px #7dd3fc; }
body.veil-realm-riftlands .veil-btn-account::after { box-shadow: 0 0 22px #a78bfa; }
body.veil-realm-nexus .veil-btn-account::after { box-shadow: 0 0 22px #fca5a5; }
/* =========================
   VEIL REALM GLOW PALETTES
   ========================= */

/* Core realms (already defined, kept for reference)
-------------------------------------------------- */
/*
body.veil-realm-sanctum  { #c7d2fe }  Moonlight / Silver
body.veil-realm-abyssal  { #7dd3fc }  Deep Blue
body.veil-realm-riftlands{ #a78bfa }  Arcane Violet
body.veil-realm-nexus    { #fca5a5 }  Crimson Nexus
*/

/* Expanded realms
-------------------------------------------------- */

/* The Silver Marches — cold moonsteel, clarity */
body.veil-realm-silver-marches .veil-btn-account::after {
  box-shadow: 0 0 22px rgba(216, 222, 255, 0.85);
}

/* Thornwake — verdant decay, living bramble */
body.veil-realm-thornwake .veil-btn-account::after {
  box-shadow: 0 0 22px rgba(34, 197, 94, 0.85);
}

/* The Obsidian Coast — volcanic glass, ash */
body.veil-realm-obsidian-coast .veil-btn-account::after {
  box-shadow: 0 0 22px rgba(88, 28, 135, 0.9);
}

/* The Umbral Expanse — shadow without void */
body.veil-realm-umbral-expanse .veil-btn-account::after {
  box-shadow: 0 0 22px rgba(75, 85, 99, 0.95);
}

/* The Shattered Veil — fractured magic, prismatic */
body.veil-realm-shattered-veil .veil-btn-account::after {
  box-shadow:
    0 0 14px rgba(167, 139, 250, 0.8),
    0 0 28px rgba(236, 72, 153, 0.6);
}

/* The Astral Deep — cosmic blue-violet */
body.veil-realm-astral-deep .veil-btn-account::after {
  box-shadow: 0 0 26px rgba(99, 102, 241, 0.9);
}

/* Gloamreach — dusk amber, dying light */
body.veil-realm-gloamreach .veil-btn-account::after {
  box-shadow: 0 0 22px rgba(251, 191, 36, 0.85);
}

/* Noctyrr — true night, starless */
body.veil-realm-noctyrr .veil-btn-account::after {
  box-shadow: 0 0 26px rgba(17, 24, 39, 0.95);
}

/* The Voidward — containment, forbidden seal */
body.veil-realm-voidward .veil-btn-account::after {
  box-shadow:
    0 0 18px rgba(220, 38, 38, 0.9),
    inset 0 0 12px rgba(0,0,0,0.8);
}

/* Hover flare */
.veil-btn-account:hover {
  transform: translateY(-1px);
}

/* Base sigil */
.veil-nav-sigil {
  display: inline-block;
  margin-right: 6px;
  opacity: .75;
  animation: veil-sigil-float 6s ease-in-out infinite;
}

/* Float animation */
@keyframes veil-sigil-float {
  0%,100% { transform: translateY(0); opacity:.7; }
  50%     { transform: translateY(-3px); opacity:1; }
}

/* Realm tinting */
body[class*="veil-realm-"] .veil-nav-sigil {
  filter: drop-shadow(0 0 8px currentColor);
}

/* Optional: hover intensify */
.menu-item:hover .veil-nav-sigil {
  animation-duration: 2.5s;
}
/* Hide account / veil buttons for guests */
body.veil-guest .veil-btn-account {
  display: none;
}
#veil-cinematic {
  position: fixed;
  inset: 0;
  background: radial-gradient(circle at center, #0f172a, #000);
  z-index: 9999;
  display: grid;
  place-items: center;
  animation: veil-fade-in .8s ease;
}

#veil-cinematic.fade-out {
  animation: veil-fade-out 1.2s ease forwards;
}

.veil-cinematic-inner {
  text-align: center;
  color: #e5e7eb;
}

.veil-cinematic-inner .sigil {
  font-size: 4rem;
  display: block;
  margin-bottom: 12px;
  animation: veil-pulse 2.5s ease infinite;
}

@keyframes veil-pulse {
  0%,100% { opacity:.7; }
  50%     { opacity:1; }
}

@keyframes veil-fade-in {
  from { opacity:0; }
  to   { opacity:1; }
}

@keyframes veil-fade-out {
  to { opacity:0; visibility:hidden; }
}
/* Base sigil */
.veil-nav-has-sigil > a::before {
  content: "☾";
  display: inline-block;
  margin-right: 0.5em;
  font-size: 1.1em;
  opacity: 0.85;
  transition: transform .3s ease, filter .3s ease;
}

/* Hover animation */
.veil-nav-has-sigil > a:hover::before {
  transform: rotate(-12deg) scale(1.1);
  filter: drop-shadow(0 0 6px currentColor);
}
body.veil-realm-nexus .veil-nav-has-sigil > a::before {
  color: #fca5a5;
  text-shadow: 0 0 10px #fca5a5;
}

body.veil-realm-abyssal .veil-nav-has-sigil > a::before {
  color: #7dd3fc;
  text-shadow: 0 0 10px #7dd3fc;
}
/* Hide all Veil nav variants by default */
.veil-nav-join,
.veil-nav-continue,
.veil-nav-enter {
  display: none;
}

/* Logged out */
body.veil-state-logged-out .veil-nav-join {
  display: block;
}

/* Logged in but not complete */
body.veil-state-incomplete .veil-nav-continue {
  display: block;
}

/* Fully complete */
body.veil-state-complete .veil-nav-enter {
  display: block;
}

/* Kill /account everywhere */
.menu-item a[href*="/account"] {
  display: none !important;
}
.veil-first-entry .veil-nav-has-sigil > a::before {
  animation: veilSigilPulse 2.5s ease-out 1;
}

@keyframes veilSigilPulse {
  0%   { transform: scale(0.6); opacity: 0; }
  40%  { transform: scale(1.25); opacity: 1; }
  70%  { transform: scale(0.95); }
  100% { transform: scale(1); }
}
/* Blood Moon overrides ALL realms */
body.veil-blood-moon .veil-nav-has-sigil > a::before {
  color: #dc2626;
  text-shadow:
    0 0 6px #dc2626,
    0 0 14px rgba(220,38,38,.85),
    0 0 28px rgba(220,38,38,.6);
  animation: bloodMoonFlicker 3s infinite;
}

@keyframes bloodMoonFlicker {
  0%,100% { opacity: 1; }
  45% { opacity: .75; }
  60% { opacity: 1; }
}
/* =========================
   VEIL REALMS — PALETTE TOKENS
   ========================= */

:root{
  --veil-realm-glow: rgba(199,210,254,.85); /* fallback */
  --veil-realm-accent: #c7d2fe;
}

/* Existing realms you already use */
body.veil-realm-sanctum { --veil-realm-accent:#c7d2fe; --veil-realm-glow: rgba(199,210,254,.85); } /* moonlight */
body.veil-realm-abyssal { --veil-realm-accent:#7dd3fc; --veil-realm-glow: rgba(125,211,252,.85); } /* deepwater */
body.veil-realm-riftlands{ --veil-realm-accent:#a78bfa; --veil-realm-glow: rgba(167,139,250,.85); } /* violet */
body.veil-realm-nexus   { --veil-realm-accent:#fca5a5; --veil-realm-glow: rgba(252,165,165,.85); } /* rose */

/* Missing realms you called out */
body.veil-realm-the-silver-marches { --veil-realm-accent:#e5e7eb; --veil-realm-glow: rgba(229,231,235,.85); } /* silver/ash */
body.veil-realm-thornwake          { --veil-realm-accent:#34d399; --veil-realm-glow: rgba(52,211,153,.85); }  /* verdant thorn */
body.veil-realm-the-obsidian-coast { --veil-realm-accent:#60a5fa; --veil-realm-glow: rgba(96,165,250,.85); }  /* storm blue */
body.veil-realm-the-umbral-expanse { --veil-realm-accent:#94a3b8; --veil-realm-glow: rgba(148,163,184,.85); } /* slate umbra */
body.veil-realm-the-shattered-veil { --veil-realm-accent:#f472b6; --veil-realm-glow: rgba(244,114,182,.85); } /* fractured magenta */
body.veil-realm-the-astral-deep    { --veil-realm-accent:#22d3ee; --veil-realm-glow: rgba(34,211,238,.85); }  /* astral cyan */
body.veil-realm-gloamreach         { --veil-realm-accent:#fbbf24; --veil-realm-glow: rgba(251,191,36,.85); }  /* ember gold */
body.veil-realm-noctyrr            { --veil-realm-accent:#818cf8; --veil-realm-glow: rgba(129,140,248,.85); } /* midnight indigo */
body.veil-realm-the-voidward       { --veil-realm-accent:#fb7185; --veil-realm-glow: rgba(251,113,133,.85); } /* void-rose */

/* If your slugger drops "the-" or uses different slugs, add aliases (cheap insurance) */
body.veil-realm-silver-marches { --veil-realm-accent:#e5e7eb; --veil-realm-glow: rgba(229,231,235,.85); }
body.veil-realm-obsidian-coast { --veil-realm-accent:#60a5fa; --veil-realm-glow: rgba(96,165,250,.85); }
body.veil-realm-umbral-expanse { --veil-realm-accent:#94a3b8; --veil-realm-glow: rgba(148,163,184,.85); }
body.veil-realm-shattered-veil { --veil-realm-accent:#f472b6; --veil-realm-glow: rgba(244,114,182,.85); }
body.veil-realm-astral-deep    { --veil-realm-accent:#22d3ee; --veil-realm-glow: rgba(34,211,238,.85); }
body.veil-realm-voidward       { --veil-realm-accent:#fb7185; --veil-realm-glow: rgba(251,113,133,.85); }
/* =====================================================
   VEIL LEGAL — DROPDOWN / DETAILS STYLING
   Blocksy-safe | Theme-color driven
===================================================== */

/* 1️⃣ Reset inline color + font overrides */
.veil-legal * {
  color: inherit !important;
  font-family: inherit !important;
}

/* 2️⃣ Container spacing */
.veil-legal {
  max-width: 900px;
  margin: 0 auto;
}

/* 3️⃣ Details block */
.veil-legal details {
  margin-bottom: 1.75rem;
  background: rgba(20, 20, 25, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  padding: 1rem 1.25rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Open state emphasis */
.veil-legal details[open] {
  border-color: var(--paletteColor1, #ca3a2e);
  box-shadow: 0 0 0 1px rgba(202, 58, 46, 0.25);
}

/* 4️⃣ Summary (clickable header) */
.veil-legal summary {
  cursor: pointer;
  list-style: none;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding-right: 2rem;
  position: relative;
}

/* Remove default marker */
.veil-legal summary::-webkit-details-marker {
  display: none;
}

/* Custom chevron */
.veil-legal summary::after {
  content: "▾";
  position: absolute;
  right: 0;
  top: 0;
  font-size: 1.2em;
  transition: transform 0.2s ease;
}

/* Rotate chevron when open */
.veil-legal details[open] summary::after {
  transform: rotate(180deg);
}

/* 5️⃣ Content spacing */
.veil-legal details > div {
  margin-top: 1rem;
  line-height: 1.65;
}

/* 6️⃣ Headings inside dropdowns */
.veil-legal h2,
.veil-legal h4 {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 1.5rem;
}

/* 7️⃣ Lists */
.veil-legal ul {
  margin-left: 1.75rem;
  margin-top: 0.5rem;
}

.veil-legal li {
  margin-bottom: 0.4rem;
}

/* 8️⃣ Paragraph spacing */
.veil-legal p {
  margin-bottom: 0.85rem;
}

/* 9️⃣ Links inherit your global underline rules */
.veil-legal a {
  font-weight: 500;
}

/* 🔟 Reduced-motion respect */
@media (prefers-reduced-motion: reduce) {
  .veil-legal * {
    transition: none !important;
  }
}
  
/* =====================================================
   Atelier — From the Books (CLEAN FINAL)
   Horizontal cards, stable sizing, locked colors
   ===================================================== */

/* ---------- Card Layout ---------- */
section[aria-label="From the Books"] .veil-card--book {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 18px;
  align-items: center;

  padding: 14px;
  text-align: left;
}

/* ---------- Cover Image ---------- */
section[aria-label="From the Books"] .veil-card--book img {
  width: 160px;
  max-width: 160px;
  height: auto;
  margin: 0;
  border-radius: 8px;
}

/* ---------- Text ---------- */
section[aria-label="From the Books"] .veil-card--book h3 {
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 6px;
}

section[aria-label="From the Books"] .veil-card--book .lv-sub {
  font-size: 0.95rem;
  line-height: 1.55;
  opacity: 0.85;
  margin: 0 0 10px;
}

/* ---------- Button (BASE) ---------- */
section[aria-label="From the Books"] .veil-card--book .veil-btn {
  display: inline-block;
  width: auto;
  padding: 6px 14px;
  font-size: 0.85rem;
  line-height: 1.2;
  white-space: nowrap;
}

/* =====================================================
   Book Button Colors (LOCKED & SIMPLE)
   ===================================================== */

/* Awakening */
section[aria-label="From the Books"]
.veil-book-awakening.veil-btn-outline {
  color: #6fa6c9;
  border-color: #6fa6c9;
}
section[aria-label="From the Books"]
.veil-book-awakening.veil-btn-outline:hover {
  box-shadow: 0 0 12px rgba(111,166,201,0.45);
}

/* Descent */
section[aria-label="From the Books"]
.veil-book-descent.veil-btn-outline {
  color: #b32020;
  border-color: #b32020;
}
section[aria-label="From the Books"]
.veil-book-descent.veil-btn-outline:hover {
  box-shadow: 0 0 14px rgba(179,32,32,0.55);
}

/* Blood Moon — gradient + pulse */
section[aria-label="From the Books"]
.veil-book-blood-moon.veil-btn-outline {
  border-color: #8a264f;

  background-image: linear-gradient(
    120deg,
    #b32020,
    #7b2c6f
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;

  animation: bloodMoonPulse 6.5s ease-in-out infinite;
}

section[aria-label="From the Books"]
.veil-book-blood-moon.veil-btn-outline:hover {
  box-shadow:
    0 0 16px rgba(179,32,32,0.55),
    0 0 22px rgba(123,44,111,0.65);
}

/* ---------- Blood Moon Pulse ---------- */
@keyframes bloodMoonPulse {
  0% {
    box-shadow:
      0 0 6px rgba(179,32,32,0.25),
      0 0 10px rgba(123,44,111,0.30);
  }
  50% {
    box-shadow:
      0 0 14px rgba(179,32,32,0.55),
      0 0 22px rgba(123,44,111,0.60);
  }
  100% {
    box-shadow:
      0 0 6px rgba(179,32,32,0.25),
      0 0 10px rgba(123,44,111,0.30);
  }
}

/* =====================================================
   Mobile: Stack Cleanly
   ===================================================== */
@media (max-width: 640px) {
  section[aria-label="From the Books"] .veil-card--book {
    grid-template-columns: 1fr;
    text-align: center;
  }

  section[aria-label="From the Books"] .veil-card--book img {
    margin: 0 auto 10px;
  }
}
/* ===== FORCE ATELIER BOOK CARDS ===== */

.veil-card--book {
  display: grid !important;
  grid-template-columns: 160px 1fr !important;
  gap: 18px !important;
  align-items: center !important;
  padding: 14px !important;
}

.veil-card--book img {
  width: 160px !important;
  max-width: 160px !important;
  height: auto !important;
  margin: 0 !important;
}

.veil-card--book h3 {
  font-size: 1.45rem !important;
  font-weight: 700 !important;
  margin-bottom: 6px !important;
}

.veil-card--book .lv-sub {
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
  opacity: 0.85 !important;
}

.veil-card--book .veil-btn {
  width: auto !important;
  padding: 6px 14px !important;
  font-size: 0.85rem !important;
  display: inline-block !important;
}

/* Button colors */

@media (max-width: 640px) {
  .veil-card--book {
    grid-template-columns: 1fr !important;
    text-align: center !important;
  }

  .veil-card--book img {
    margin: 0 auto 10px !important;
  }
}

@keyframes bloodMoonPulse {
  0% { box-shadow: 0 0 6px rgba(179,32,32,.25); }
  50% { box-shadow: 0 0 18px rgba(179,32,32,.6); }
  100% { box-shadow: 0 0 6px rgba(179,32,32,.25); }
}
/* =====================================================
   ATELIER — FROM THE BOOKS (FINAL HARD LOCK)
   ===================================================== */

/* FORCE grid (override Blocksy flex) */
section[aria-label="From the Books"] .lv-card-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)) !important;
  gap: 28px !important;
}

/* FORCE horizontal cards */
section[aria-label="From the Books"] .veil-card--book {
  display: grid !important;
  grid-template-columns: 160px 1fr !important;
  align-items: center !important;
  gap: 18px !important;
}

/* Cover size */
section[aria-label="From the Books"] .veil-card--book img {
  width: 160px !important;
  max-width: 160px !important;
  height: auto !important;
  margin: 0 !important;
}

/* Button MUST NOT be full width */
section[aria-label="From the Books"] .veil-card--book .veil-btn {
  width: auto !important;
  min-width: unset !important;
  max-width: fit-content !important;
  display: inline-block !important;
  padding: 6px 14px !important;
  font-size: 0.85rem !important;
}

/* Mobile fallback */
@media (max-width: 640px) {
  section[aria-label="From the Books"] .lv-card-grid {
    grid-template-columns: 1fr !important;
  }

  section[aria-label="From the Books"] .veil-card--book {
    grid-template-columns: 1fr !important;
    text-align: center;
  }

  section[aria-label="From the Books"] .veil-card--book img {
    margin: 0 auto 10px !important;
  }
}
/* =====================================================
   ATELIER — BOOK CARD CONTENT STACK (FINAL REORDER)
   ===================================================== */

/* Force text content to stack vertically */
section[aria-label="From the Books"] .veil-card--book {
  align-items: start !important;
}

/* Create a vertical flow for non-image content */
section[aria-label="From the Books"] .veil-card--book > :not(img) {
  display: block;
}

/* Title spacing */
section[aria-label="From the Books"] .veil-card--book h3 {
  margin-top: 2px !important;
  margin-bottom: 6px !important;
}

/* Description spacing */
section[aria-label="From the Books"] .veil-card--book .lv-sub {
  margin-bottom: 10px !important;
}

/* Button always sits under text */
section[aria-label="From the Books"] .veil-card--book .veil-btn {
  margin-top: 4px !important;
}
/* =====================================================
   ATELIER — BOOK CARD FINAL POLISH
   ===================================================== */

/* Ensure card layout: image left, content right */
section[aria-label="From the Books"] .veil-card--book {
  display: grid !important;
  grid-template-columns: 160px 1fr !important;
  gap: 20px !important;
  align-items: center !important;
  position: relative;
}

/* Subtle vertical divider */
section[aria-label="From the Books"] .veil-card--book::after {
  content: "";
  position: absolute;
  left: 180px;
  top: 10%;
  bottom: 10%;
  width: 1px;
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(255,255,255,0.15),
    transparent
  );
}

/* Text stack on the right */
section[aria-label="From the Books"] .veil-card--book > :not(img):not(.lv-coming-badge) {
  grid-column: 2;
}

/* Title */
section[aria-label="From the Books"] .veil-card--book h3 {
  margin: 0 0 6px;
  font-size: 1.5rem;
  font-weight: 700;
}

/* Description (fade-in) */
section[aria-label="From the Books"] .veil-card--book .lv-sub {
  opacity: 0;
  transform: translateY(6px);
  animation: fadeInDesc 0.8s ease-out forwards;
  animation-delay: 0.2s;
  margin-bottom: 10px;
}

/* Button hover animation ONLY */
section[aria-label="From the Books"] .veil-card--book .veil-btn {
  transition:
    box-shadow 0.3s ease,
    background-color 0.3s ease,
    transform 0.3s ease;
}

section[aria-label="From the Books"] .veil-card--book .veil-btn:hover {
  transform: translateY(-1px);
}

/* ===============================
   Blood Moon — Coming Soon Badge
   =============================== */

section[aria-label="From the Books"] .veil-card--book .lv-coming-badge {
  position: absolute;
  top: 8px;
  right: 10px;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 999px;
  background: linear-gradient(
    120deg,
    #b32020,
    #7b2c6f
  );
  color: #fff;
  box-shadow: 0 0 10px rgba(179,32,32,.45);
}

/* ===============================
   Blood Moon — Pulse Sync
   =============================== */

/* Sync pulse timing to sigil rotation (28s base → 7s quarter) */

/* Pulse stays subtle */
@keyframes bloodMoonPulse {
  0% {
    box-shadow:
      0 0 6px rgba(179,32,32,.25),
      0 0 10px rgba(123,44,111,.3);
  }
  50% {
    box-shadow:
      0 0 16px rgba(179,32,32,.6),
      0 0 24px rgba(123,44,111,.65);
  }
  100% {
    box-shadow:
      0 0 6px rgba(179,32,32,.25),
      0 0 10px rgba(123,44,111,.3);
  }
}

/* ===============================
   Mobile Adjustments
   =============================== */

@media (max-width: 640px) {
  section[aria-label="From the Books"] .veil-card--book {
    grid-template-columns: 1fr !important;
    text-align: center;
  }

  section[aria-label="From the Books"] .veil-card--book::after {
    display: none;
  }

  section[aria-label="From the Books"] .veil-card--book img {
    margin: 0 auto 10px;
  }

  section[aria-label="From the Books"] .veil-card--book > :not(img):not(.lv-coming-badge) {
    grid-column: 1;
  }
}

/* ===============================
   Fade-in Keyframes
   =============================== */

@keyframes fadeInDesc {
  to {
    opacity: 0.85;
    transform: translateY(0);
  }
}
/* =====================================================
   ATELIER — BOOK TEXT SPACING REFINEMENT
   ===================================================== */

/* Vertically center text stack relative to image */
section[aria-label="From the Books"] .veil-card--book {
  align-items: center !important;
}

/* Tighten title spacing */
section[aria-label="From the Books"] .veil-card--book h3 {
  margin-bottom: 4px !important;
}

/* Tighten description spacing */
section[aria-label="From the Books"] .veil-card--book .lv-sub {
  margin-top: 0 !important;
  margin-bottom: 8px !important;
}

/* Button sits closer, still breathable */
section[aria-label="From the Books"] .veil-card--book .veil-btn {
  margin-top: 2px !important;
}

/* Optional: slight visual centering tweak */
section[aria-label="From the Books"] .veil-card--book > :not(img):not(.lv-coming-badge) {
  align-self: center;
}
/* =====================================================
   ATELIER — FIX H3 HEADING EXCESS PADDING
   ===================================================== */

section[aria-label="From the Books"] .veil-card--book h3 {
  margin-top: 0 !important;
  margin-bottom: 4px !important;
  padding: 0 !important;
  line-height: 1.2;
}
/* =========================
   Atelier Showcase Strip
   ========================= */

.veil-atelier-strip {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  padding: 10px 2px 14px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.veil-atelier-card {
  min-width: 240px;
  max-width: 240px;
  scroll-snap-align: start;

  background: rgba(6,6,10,0.55);
  border: 1px solid rgba(161,42,42,0.25);
  border-radius: 14px;
  padding: 12px;

  box-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

.veil-atelier-img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
  margin-bottom: 10px;
}

.veil-atelier-title {
  font-size: 0.98rem;
  line-height: 1.3;
  margin: 0 0 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.veil-atelier-price {
  font-size: 0.9rem;
  opacity: 0.8;
  margin-bottom: 10px;
}

.veil-atelier-cta {
  display: inline-block;
  width: auto;
  padding: 6px 14px;
  font-size: 0.85rem;
}
.veil-atelier-disclaimer {
  text-align: center;
  font-size: 0.85rem;
  opacity: 0.7;
  margin-top: 10px;
}
.veil-etsy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
}

.veil-etsy-item {
  text-decoration: none;
  color: inherit;
  background: rgba(10,10,10,.6);
  border: 1px solid rgba(139,30,45,.4);
  padding: 0.75rem;
  transition: transform .2s ease, box-shadow .2s ease;
}

.veil-etsy-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 24px rgba(139,30,45,.6);
}

.veil-etsy-title {
  display: block;
  font-family: Cinzel, serif;
  margin-top: .5rem;
}

.veil-etsy-price {
  color: #8B1E2D;
  font-weight: 600;
}
.veil-codex-entry {
  background: #0b0f14;
  color: #E5E7EB; !important
  padding: 2rem;
}
.veil-codex-entry h1,
.veil-codex-entry h2,
.veil-codex-entry h3 {
  color: #ffffff;
}
.veil-codex-entry p,
.veil-codex-entry li {
  color: #d1d5db;
}
.veil-codex-entry a {
  color: #93c5fd;
  text-decoration: underline;
}

.veil-codex-entry a:hover {
  color: #f87171; /* Veil crimson vibe */
}
.veil-codex-section {
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  border-radius: 12px;
}
.veil-codex-lock {
  background: rgba(139, 30, 45, 0.08);
  border: 1px solid rgba(139, 30, 45, 0.4);
  padding: 1.5rem;
  border-radius: 12px;
}

.veil-codex-lock h2 {
  color: #f87171;
}
.veil-codex-meta {
  font-size: 0.9rem;
  color: #9ca3af;
}
/* ================================
   Londyn Contact Form - Veil Style
   ================================ */

.frm_forms.with_frm_style {
  max-width: 850px;
  margin: 0 auto;
  padding: 2rem;
  border-radius: 24px;
  background:
    radial-gradient(circle at top, rgba(124, 60, 255, 0.22), transparent 42%),
    linear-gradient(180deg, rgba(15, 8, 26, 0.96), rgba(7, 4, 12, 0.98));
  border: 1px solid rgba(230, 210, 255, 0.18);
  box-shadow:
    0 24px 65px rgba(0, 0, 0, 0.55),
    0 0 38px rgba(124, 60, 255, 0.18);
}

.frm_forms.with_frm_style label {
  color: #f8f3ff !important;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.frm_forms.with_frm_style input,
.frm_forms.with_frm_style textarea,
.frm_forms.with_frm_style select {
  background: rgba(8, 5, 15, 0.92) !important;
  color: #fff !important;
  border: 1px solid rgba(230, 210, 255, 0.25) !important;
  border-radius: 14px !important;
  padding: 0.8rem 0.95rem !important;
  box-shadow: inset 0 0 14px rgba(124, 60, 255, 0.08);
}

.frm_forms.with_frm_style input:focus,
.frm_forms.with_frm_style textarea:focus,
.frm_forms.with_frm_style select:focus {
  border-color: rgba(227, 69, 112, 0.85) !important;
  box-shadow:
    0 0 18px rgba(227, 69, 112, 0.35),
    inset 0 0 14px rgba(124, 60, 255, 0.1);
  outline: none !important;
}

.frm_forms.with_frm_style textarea {
  min-height: 160px;
}

.frm_forms.with_frm_style .frm_submit button {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(227, 69, 112, 0.85) !important;
  border-radius: 999px !important;
  padding: 0.85rem 1.4rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em;
  box-shadow:
    0 0 18px rgba(227, 69, 112, 0.55),
    0 0 36px rgba(124, 60, 255, 0.22);
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.frm_forms.with_frm_style .frm_submit button:hover {
  transform: translateY(-2px);
  box-shadow:
    0 0 24px rgba(227, 69, 112, 0.75),
    0 0 46px rgba(124, 60, 255, 0.32);
}

.frm_error,
.frm_error_style {
  color: #ff9db5 !important;
}

.frm_message {
  border-radius: 18px !important;
  background: rgba(30, 10, 20, 0.95) !important;
  color: #fff !important;
  border: 1px solid rgba(227, 69, 112, 0.45) !important;
}
/* ================================
   CONTACT PAGE FINAL
   ================================ */

.lv-contact-hero,
.lv-contact-layout {
  opacity: 0;
  transform: translateY(28px);
  filter: blur(8px);
  transition: opacity 900ms ease, transform 900ms ease, filter 900ms ease;
}

.lv-contact-hero.is-visible,
.lv-contact-layout.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.lv-contact-hero {
  text-align: center;
  padding: 2rem 1rem;
  background:
    radial-gradient(circle at top, rgba(124, 60, 255, 0.22), transparent 45%),
    linear-gradient(180deg, #100817, #07040d);
}

.lv-contact-inner {
  max-width: 760px;
  margin: 0 auto;
}

.lv-contact-inner p,
.lv-contact-sub,
.lv-side-title,
.lv-contact-note,
.lv-contact-note p {
  text-align: center;
  color: #f2eaff;
}

.lv-contact-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.65fr) !important;
  gap: 1.75rem !important;
  max-width: 1120px;
  margin: 0 auto;
  padding: 2rem 1rem 3rem;
  align-items: start;
}

.lv-contact-form-card,
.lv-contact-side-panel {
  border-radius: 22px;
  background:
    radial-gradient(circle at top, rgba(124, 60, 255, 0.18), transparent 42%),
    linear-gradient(180deg, rgba(15, 8, 26, 0.96), rgba(7, 4, 12, 0.98));
  border: 1px solid rgba(230, 210, 255, 0.18);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
}

.lv-contact-form-card {
  padding: 2rem;
}

.lv-contact-side-panel {
  position: sticky;
  top: 100px;
  padding: 1.5rem;
  text-align: center;
  isolation: isolate;
}

.lv-contact-side-panel::before {
  content: "";
  position: absolute;
  inset: -18px;
  z-index: -1;
  border-radius: 30px;
  background:
    radial-gradient(circle at 50% 20%, rgba(227, 69, 112, 0.3), transparent 45%),
    radial-gradient(circle at 50% 85%, rgba(124, 60, 255, 0.26), transparent 55%);
  filter: blur(20px);
  opacity: 0.95;
}

.lv-side-title {
  margin-top: 0;
  margin-bottom: 1rem;
  color: #fff;
  text-shadow: 0 0 14px rgba(227, 69, 112, 0.45);
}

.lv-contact-buttons {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  align-items: center;
}

.lv-contact-buttons .veil-btn {
  width: 100%;
  max-width: 360px;
  text-align: center;
}

.lv-contact-layout.is-visible .lv-contact-buttons .veil-btn {
  animation: lv-side-button-rise 650ms ease both;
}

.lv-contact-buttons .veil-btn:nth-child(1) { animation-delay: 100ms; }
.lv-contact-buttons .veil-btn:nth-child(2) { animation-delay: 200ms; }
.lv-contact-buttons .veil-btn:nth-child(3) { animation-delay: 300ms; }
.lv-contact-buttons .veil-btn:nth-child(4) { animation-delay: 400ms; }
.lv-contact-buttons .veil-btn:nth-child(5) { animation-delay: 500ms; }

@keyframes lv-side-button-rise {
  from {
    opacity: 0;
    transform: translateY(14px);
    filter: blur(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

.lv-contact-note {
  margin-top: 1.25rem;
  padding: 1rem;
  border-radius: 16px;
  background: rgba(227, 69, 112, 0.12);
  border: 1px solid rgba(227, 69, 112, 0.3);
}

/* Book-aligned button glows */
.lv-contact-buttons .veil-btn-awakening:hover {
  box-shadow:
    0 0 22px rgba(60, 255, 220, 0.65),
    0 0 42px rgba(40, 140, 255, 0.42) !important;
}

.lv-contact-buttons .veil-btn-descent:hover {
  box-shadow:
    0 0 22px rgba(227, 69, 112, 0.72),
    0 0 42px rgba(120, 10, 38, 0.48) !important;
}

.lv-contact-buttons .veil-btn-bloodmoon:hover {
  box-shadow:
    0 0 26px rgba(255, 40, 70, 0.8),
    0 0 50px rgba(170, 10, 38, 0.55) !important;
}

.lv-contact-buttons .veil-btn-outline:hover {
  box-shadow:
    0 0 22px rgba(180, 150, 255, 0.58),
    0 0 42px rgba(124, 60, 255, 0.34) !important;
}

.lv-contact-buttons .veil-btn-purple:hover {
  box-shadow:
    0 0 24px rgba(155, 99, 255, 0.7),
    0 0 46px rgba(124, 60, 255, 0.45) !important;
}

/* Formidable alignment */
.lv-contact-form-card .frm_forms {
  text-align: center;
}

.lv-contact-form-card .frm_form_field {
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}

/* Mobile */
@media (max-width: 900px) {
  .lv-contact-layout {
    grid-template-columns: 1fr !important;
  }

  .lv-contact-side-panel {
    position: static;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lv-contact-hero,
  .lv-contact-layout,
  .lv-contact-buttons .veil-btn {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
    animation: none !important;
  }
}
/* Force Contact page content wide enough for side panel */
body.page .entry-content:has(.lv-contact-layout),
body.page .ct-container:has(.lv-contact-layout),
body.page .ct-container-full:has(.lv-contact-layout) {
  max-width: 1200px !important;
  width: 100% !important;
}

/* Force desktop two-column layout */
.lv-contact-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 700px) minmax(280px, 360px) !important;
  justify-content: center !important;
  align-items: start !important;
  gap: 1.75rem !important;
  width: 100% !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Prevent children from forcing stacking */
.lv-contact-form-card {
  min-width: 0 !important;
  grid-column: 1 !important;
}

.lv-contact-side-panel {
  min-width: 280px !important;
  grid-column: 2 !important;
}

/* Mobile stacks */
@media (max-width: 900px) {
  .lv-contact-layout {
    grid-template-columns: 1fr !important;
  }

  .lv-contact-form-card,
  .lv-contact-side-panel {
    grid-column: auto !important;
  }
}
/* Force the contact content area wide */
body.page .entry-content,
body.page .ct-container,
body.page .ct-container-full,
body.page article,
body.page .site-main {
  max-width: 100% !important;
}

/* Main two-column contact layout */
.lv-contact-layout {
  width: min(1200px, 96vw) !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 2rem 1rem 3rem !important;

  display: grid !important;
  grid-template-columns: minmax(0, 760px) 340px !important;
  gap: 2rem !important;
  align-items: start !important;
}

/* Left form */
.lv-contact-form-card {
  grid-column: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
}

/* Right side panel */
.lv-contact-side-panel {
  grid-column: 2 !important;
  width: 340px !important;
  min-width: 300px !important;
  position: sticky !important;
  top: 100px !important;
}

/* Mobile */
@media (max-width: 950px) {
  .lv-contact-layout {
    grid-template-columns: 1fr !important;
  }

  .lv-contact-form-card,
  .lv-contact-side-panel {
    grid-column: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    position: static !important;
  }
}
/* ================================
   CONTACT PAGE - HARD FIX
   ================================ */

/* Force page content wide */
body.page .entry-content,
body.page .ct-container,
body.page .ct-container-full,
body.page .site-main,
body.page article {
  max-width: 100% !important;
  width: 100% !important;
}

/* Hero */
.lv-contact-hero {
  opacity: 0;
  transform: translateY(28px);
  filter: blur(8px);
  transition: opacity 900ms ease, transform 900ms ease, filter 900ms ease;
  text-align: center !important;
  padding: 2rem 1rem;
  background:
    radial-gradient(circle at top, rgba(124, 60, 255, 0.22), transparent 45%),
    linear-gradient(180deg, #100817, #07040d);
}

.lv-contact-hero.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.lv-contact-inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center !important;
}

.lv-contact-inner p {
  color: #eee5ff !important;
  text-align: center !important;
  margin: 0 auto !important;
}

/* Main layout: FORCE SIDE BY SIDE */
.lv-contact-layout {
  opacity: 0;
  transform: translateY(28px);
  filter: blur(8px);
  transition: opacity 900ms ease, transform 900ms ease, filter 900ms ease;

  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  align-items: flex-start !important;

  gap: 2rem !important;
  width: 100% !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 2rem 1rem 3rem !important;
  box-sizing: border-box !important;
}

.lv-contact-layout.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* Form column */
.lv-contact-form-card {
  flex: 0 1 760px !important;
  width: 760px !important;
  max-width: 760px !important;
  min-width: 0 !important;

  padding: 2rem;
  border-radius: 22px;
  background:
    radial-gradient(circle at top, rgba(124, 60, 255, 0.18), transparent 42%),
    linear-gradient(180deg, rgba(15, 8, 26, 0.96), rgba(7, 4, 12, 0.98));
  border: 1px solid rgba(230, 210, 255, 0.18);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
  box-sizing: border-box !important;
}

/* Side panel column */
.lv-contact-side-panel {
  flex: 0 0 320px !important;
  width: 320px !important;
  max-width: 320px !important;
  min-width: 320px !important;

  position: sticky !important;
  top: 100px !important;

  padding: 1.5rem;
  border-radius: 22px;
  background:
    radial-gradient(circle at top, rgba(227, 69, 112, 0.14), transparent 42%),
    linear-gradient(180deg, rgba(15, 8, 26, 0.96), rgba(7, 4, 12, 0.98));
  border: 1px solid rgba(230, 210, 255, 0.18);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
  text-align: center !important;
  isolation: isolate;
  box-sizing: border-box !important;
}

/* Glow aura */
.lv-contact-side-panel::before {
  content: "";
  position: absolute;
  inset: -18px;
  z-index: -1;
  border-radius: 30px;
  background:
    radial-gradient(circle at 50% 20%, rgba(227, 69, 112, 0.32), transparent 45%),
    radial-gradient(circle at 50% 85%, rgba(124, 60, 255, 0.28), transparent 55%);
  filter: blur(20px);
  opacity: 0.95;
}

/* Text */
.lv-contact-sub,
.lv-side-title,
.lv-contact-note,
.lv-contact-note p {
  color: #f2eaff !important;
  text-align: center !important;
}

.lv-side-title {
  margin-top: 0;
  margin-bottom: 1rem;
  color: #fff !important;
  text-shadow: 0 0 14px rgba(227, 69, 112, 0.45);
}

/* Buttons */
.lv-contact-buttons {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.85rem !important;
  align-items: stretch !important;
}

.lv-contact-buttons .veil-btn {
  width: 100% !important;
  max-width: 100% !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

/* Stagger animation */
.lv-contact-layout.is-visible .lv-contact-buttons .veil-btn {
  animation: lv-side-button-rise 650ms ease both;
}

/* Note */
.lv-contact-note {
  margin-top: 1.25rem;
  padding: 1rem;
  border-radius: 16px;
  background: rgba(227, 69, 112, 0.12);
  border: 1px solid rgba(227, 69, 112, 0.3);
}

/* Formidable */
.lv-contact-form-card .frm_forms {
  text-align: center !important;
}

.lv-contact-form-card .frm_form_field {
  max-width: 620px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Mobile stack */
@media (max-width: 980px) {
  .lv-contact-layout {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
  }

  .lv-contact-form-card,
  .lv-contact-side-panel {
    width: 100% !important;
    max-width: 760px !important;
    min-width: 0 !important;
    flex: 0 1 auto !important;
  }

  .lv-contact-side-panel {
    position: static !important;
  }
}
.lv-contact-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 760px) 320px !important;
  max-width: 1120px !important;
  gap: 2rem !important;
  margin: 0 auto !important;
  align-items: start !important;
}

@media (max-width: 980px) {
  .lv-contact-layout {
    grid-template-columns: 1fr !important;
  }
}
.lv-contact-template .lv-contact-layout {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  width: min(1180px, 96vw) !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
}

.lv-contact-template .lv-contact-form-card {
  flex: 1 1 760px !important;
  max-width: 760px !important;
}

.lv-contact-template .lv-contact-side-panel {
  flex: 0 0 320px !important;
  max-width: 320px !important;
}

@media (max-width: 980px) {
  .lv-contact-template .lv-contact-layout {
    flex-direction: column !important;
  }

  .lv-contact-template .lv-contact-form-card,
  .lv-contact-template .lv-contact-side-panel {
    max-width: 760px !important;
    width: 100% !important;
  }
}
.frm_forms .frm_form_title,
.frm_forms h2.frm_form_title,
.frm_forms h3.frm_form_title {

  /* Base color (soft violet) */
  color: #e2d9ff !important;

  text-align: center;
  font-weight: 700;
  letter-spacing: 0.06em;

  /* Multi-layer glow (THIS is the key) */
  text-shadow:
    0 0 4px rgba(255,255,255,0.9),
    0 0 10px rgba(210,190,255,0.85),
    0 0 18px rgba(180,140,255,0.7),
    0 0 36px rgba(140,90,255,0.6),
    0 0 60px rgba(120,60,255,0.45);
}
.frm_forms .frm_form_title {
  background: linear-gradient(
    to bottom,
    #ffffff 0%,
    #e6dcff 40%,
    #cbb7ff 70%,
    #b89aff 100%
  );

  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.frm_forms .frm_form_title {
  animation: veil-glow 4s ease-in-out infinite alternate;
}

@keyframes veil-glow {
  from {
    text-shadow:
      0 0 6px rgba(200,180,255,0.6),
      0 0 18px rgba(150,100,255,0.5);
  }
  to {
    text-shadow:
      0 0 10px rgba(255,255,255,0.95),
      0 0 24px rgba(180,140,255,0.8),
      0 0 50px rgba(120,60,255,0.6);
  }
}
.frm_forms .frm_form_title,
.frm_forms h2.frm_form_title,
.frm_forms h3.frm_form_title {
  all: unset;
  display: block;
  text-align: center;

  font-weight: 700;
  letter-spacing: 0.06em;

  background: linear-gradient(
    to bottom,
    #ffffff 0%,
    #e6dcff 35%,
    #cbb7ff 65%,
    #b89aff 100%
  );

  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;

  text-shadow:
    0 0 4px rgba(255,255,255,0.9),
    0 0 10px rgba(210,190,255,0.85),
    0 0 18px rgba(180,140,255,0.7),
    0 0 36px rgba(140,90,255,0.6),
    0 0 60px rgba(120,60,255,0.45);
}
/* ================================
   FORM TEXT (BODY + PLACEHOLDERS)
   ================================ */

/* Form description / paragraph text */
.frm_forms .frm_description,
.frm_forms .frm_form_field p,
.frm_forms .frm_html_container,
.lv-contact-sub {
  font-size: 1.1rem !important;
  line-height: 1.6 !important;
  color: #e7ddff !important;
}

/* Placeholder text (the faint text inside inputs) */
.frm_forms input::placeholder,
.frm_forms textarea::placeholder {
  font-size: 1rem !important;
  color: rgba(220, 210, 255, 0.7) !important;
  opacity: 1 !important; /* needed for some browsers */
}

/* Select dropdown placeholder-like text */
.frm_forms select {
  font-size: 1rem !important;
  color: #dcd3ff !important;
}

/* Help text under fields */
.frm_forms .frm_description {
  margin-top: 0.3rem;
  font-size: 0.95rem !important;
  color: rgba(220, 210, 255, 0.75) !important;
}

/* Make field labels slightly larger too (optional but looks better) */
.frm_forms label,
.frm_forms .frm_primary_label {
  font-size: 1.05rem !important;
}
.frm_forms input::placeholder,
.frm_forms textarea::placeholder {
  text-shadow:
    0 0 6px rgba(180, 140, 255, 0.25);
}
/* ================================
   Formidable: placeholder fade + focus glow
   ================================ */

/* Smooth placeholder fade */
.frm_forms input::placeholder,
.frm_forms textarea::placeholder {
  color: rgba(220, 210, 255, 0.72) !important;
  opacity: 1 !important;
  transition: opacity 220ms ease, color 220ms ease;
}

.frm_forms input:focus::placeholder,
.frm_forms textarea:focus::placeholder {
  opacity: 0.22 !important;
  color: rgba(220, 210, 255, 0.35) !important;
}

/* Base field transition */
.frm_forms input,
.frm_forms textarea,
.frm_forms select {
  transition:
    border-color 220ms ease,
    box-shadow 220ms ease,
    background-color 220ms ease;
}

/* Default focus glow: Veil violet */
.frm_forms input:focus,
.frm_forms textarea:focus,
.frm_forms select:focus {
  outline: none !important;
  border-color: rgba(180, 140, 255, 0.85) !important;
  box-shadow:
    0 0 0 2px rgba(180, 140, 255, 0.18),
    0 0 18px rgba(124, 60, 255, 0.38),
    inset 0 0 12px rgba(124, 60, 255, 0.12) !important;
}

/* Book-theme optional classes */
.frm-theme-awakening .frm_forms input:focus,
.frm-theme-awakening .frm_forms textarea:focus,
.frm-theme-awakening .frm_forms select:focus {
  border-color: rgba(80, 255, 220, 0.85) !important;
  box-shadow:
    0 0 0 2px rgba(80, 255, 220, 0.16),
    0 0 20px rgba(40, 160, 255, 0.38),
    inset 0 0 12px rgba(80, 255, 220, 0.1) !important;
}

.frm-theme-descent .frm_forms input:focus,
.frm-theme-descent .frm_forms textarea:focus,
.frm-theme-descent .frm_forms select:focus {
  border-color: rgba(227, 69, 112, 0.9) !important;
  box-shadow:
    0 0 0 2px rgba(227, 69, 112, 0.16),
    0 0 20px rgba(227, 69, 112, 0.42),
    inset 0 0 12px rgba(227, 69, 112, 0.1) !important;
}

.frm-theme-bloodmoon .frm_forms input:focus,
.frm-theme-bloodmoon .frm_forms textarea:focus,
.frm-theme-bloodmoon .frm_forms select:focus {
  border-color: rgba(255, 55, 90, 0.95) !important;
  box-shadow:
    0 0 0 2px rgba(255, 55, 90, 0.18),
    0 0 22px rgba(255, 40, 70, 0.5),
    inset 0 0 12px rgba(255, 55, 90, 0.12) !important;
}
/* Fix selected dropdown text visibility */
.frm_forms select,
.frm_forms select option {
  color: #f8f3ff !important;
  background-color: #100817 !important;
}

.frm_forms select {
  -webkit-text-fill-color: #f8f3ff !important;
  opacity: 1 !important;
}

/* Placeholder/empty selected option */
.frm_forms select:invalid,
.frm_forms select option[value=""] {
  color: rgba(230, 220, 255, 0.75) !important;
}

/* Focus state */
.frm_forms select:focus {
  color: #ffffff !important;
  background-color: #12091d !important;
}
/* Formidable Select2 dropdown selected value */
.frm_forms .select2-container .select2-selection__rendered {
  color: #f8f3ff !important;
}

.frm_forms .select2-container .select2-selection {
  background: #100817 !important;
  border-color: rgba(230, 210, 255, 0.25) !important;
}
/* ======================================================
   FORM DROPDOWN VISIBILITY FIX
   ARC / Contact / Fluent / PMPro / Profile Builder
   ====================================================== */

select,
form select,
.ff-el-form-control select,
.fluentform select,
.fluentform .ff-el-form-control,
.pmpro_form select,
.wppb-form-field select {
	min-height: 48px !important;
	height: auto !important;
	line-height: 1.4 !important;
	padding: 0.75rem 2.75rem 0.75rem 1rem !important;

	color: #f8f3ff !important;
	background-color: #100817 !important;
	border: 1px solid rgba(230, 210, 255, 0.35) !important;
	border-radius: 12px !important;

	appearance: auto !important;
	-webkit-appearance: menulist !important;
}

select option,
form select option,
.fluentform select option,
.pmpro_form select option,
.wppb-form-field select option {
	color: #100817 !important;
	background: #ffffff !important;
	font-size: 1rem !important;
	line-height: 1.5 !important;
	padding: 0.5rem !important;
}

select:focus,
.fluentform select:focus,
.pmpro_form select:focus,
.wppb-form-field select:focus {
	outline: none !important;
	border-color: rgba(227, 69, 112, 0.85) !important;
	box-shadow: 0 0 0 3px rgba(227, 69, 112, 0.22) !important;
}

/* ======================================================
   VEIL BUTTON SYSTEM — SINGLE SOURCE OF TRUTH
   ====================================================== */

.veil-btn {
  --veil-accent: var(--veil-accent, var(--veil-arcane, #7c3aed));
  --veil-accent-deep: color-mix(in srgb, var(--veil-accent) 70%, #000 30%);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.75rem 1.4rem;
  box-sizing: border-box;
  overflow: hidden;
  font-family: var(--font-ui, inherit);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #f5f3ff !important;
  text-decoration: none !important;
  cursor: pointer;
  background:
    var(--veil-sigil-svg) center/80% no-repeat,
    linear-gradient(135deg, var(--veil-accent), var(--veil-accent-deep));
  border: 1px solid color-mix(in srgb, var(--veil-accent) 60%, #fff 40%);
  border-radius: 6px;
  box-shadow:
    0 8px 22px rgba(0,0,0,0.45),
    0 0 18px color-mix(in srgb, var(--veil-accent) 45%, transparent),
    inset 0 0 0 1px rgba(255,255,255,0.08);
  transition:
    transform 0.22s ease,
    box-shadow 0.35s cubic-bezier(.22,.61,.36,1),
    filter 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    background-color 0.25s ease;
}

.veil-btn:hover,
.veil-btn:focus-visible {
  transform: translateY(-1px);
  filter: brightness(1.15);
  color: #ffffff !important;
  box-shadow:
    0 12px 30px rgba(0,0,0,0.55),
    0 0 26px color-mix(in srgb, var(--veil-accent) 60%, transparent),
    inset 0 0 0 1px rgba(255,255,255,0.18);
}

.veil-btn:active { transform: translateY(0); filter: brightness(1.05); }

.veil-btn[aria-disabled="true"],
.veil-btn.veil-btn-muted,
.veil-btn-muted {
  opacity: 0.6;
  cursor: default;
  pointer-events: none;
  filter: grayscale(40%);
}

.veil-btn-outline,
.veil-btn.veil-btn-outline {
  background:
    var(--veil-sigil-svg) center/80% no-repeat,
    rgba(255,255,255,0.03);
  color: var(--veil-moonlight, #f5f3ff) !important;
  border: 1px solid color-mix(in srgb, var(--veil-accent, #8A0E1A) 65%, #ffffff 35%);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.06),
    0 8px 22px rgba(0,0,0,0.35);
}

.veil-btn-outline:hover,
.veil-btn-outline:focus-visible,
.veil-btn.veil-btn-outline:hover,
.veil-btn.veil-btn-outline:focus-visible {
  color: #ffffff !important;
  background:
    var(--veil-sigil-svg) center/80% no-repeat,
    rgba(255,255,255,0.08);
  border-color: var(--veil-accent, #8A0E1A);
  box-shadow:
    0 0 0 1px var(--veil-glow-soft, rgba(138,14,26,0.35)),
    0 0 16px var(--veil-glow, rgba(138,14,26,0.6)),
    0 0 36px var(--veil-glow, rgba(138,14,26,0.6));
}

.veil-btn.crimson,
.veil-btn-blood,
.veil-btn-bloodmoon,
.veil-btn.bloodmoon { --veil-accent: #be123c; }
.veil-btn.moonlight { --veil-accent: var(--veil-moonlight, #4f46e5); }
.veil-btn-purple { --veil-accent: #7c3cff; }
.veil-btn-awakening { --veil-accent: #2bdcc3; }

.veil-btn-descent {
  --veil-accent: #e34570;
  background:
    var(--veil-sigil-svg) center/80% no-repeat,
    rgba(28, 5, 13, 0.24) !important;
  border-color: rgba(227,69,112,.85) !important;
  color: #FFE4ED !important;
}

.veil-btn-descent:hover,
.veil-btn-descent:focus-visible {
  border-color: rgba(255,92,135,1) !important;
  box-shadow:
    0 10px 26px rgba(227,69,112,.55),
    0 0 22px rgba(227,69,112,.45) !important;
}

.veil-book-awakening { --veil-accent: #7C3AED; --veil-glow: rgba(124,58,237,.6); }
.veil-book-descent { --veil-accent: #2563EB; --veil-glow: rgba(37,99,235,.55); }
.veil-book-bloodmoon { --veil-accent: #B11226; --veil-glow: rgba(177,18,38,.7); }

.veil-bloodmoon,
.veil-bloodmoon-active,
body.blood-moon {
  --veil-accent: #B11226;
  --veil-glow: rgba(177,18,38,.75);
  --veil-glow-soft: rgba(177,18,38,.45);
}

@keyframes bloodmoon-pulse {
  0%, 100% { box-shadow: 0 0 18px rgba(177,18,38,.45), inset 0 0 0 1px rgba(255,255,255,.12); }
  50% { box-shadow: 0 0 34px rgba(177,18,38,.75), inset 0 0 0 1px rgba(255,255,255,.2); }
}

.veil-bloodmoon .veil-btn { animation: bloodmoon-pulse 4.5s ease-in-out infinite; }

.veil-btn::after {
  content: "☾";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 1.4rem;
  color: color-mix(in srgb, var(--veil-accent, #8A0E1A) 70%, transparent);
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 0.3s ease, transform 0.4s ease;
  pointer-events: none;
}

.veil-btn:hover::after,
.veil-btn:focus-visible::after { opacity: 0.45; transform: scale(1); }
body.veil-initiate .veil-btn::after { content: "◍"; opacity: .25; }
body.veil-acolyte .veil-btn::after { content: "◎"; opacity: .45; }
body.veil-ascendant .veil-btn::after { content: "⟡"; opacity: .7; animation: sigil-rotate 6s linear infinite; }

@keyframes sigil-rotate { from { transform: rotate(0deg) scale(1); } to { transform: rotate(360deg) scale(1.05); } }

body.single-codex_entry .veil-btn::after,
body.single-veil_codex_entry .veil-btn::after {
  content: "✶";
  font-size: 1.6rem;
  color: rgba(180, 200, 255, 0.75);
}
body.single-codex_entry .veil-btn:hover::after,
body.single-veil_codex_entry .veil-btn:hover::after { animation: codex-flicker 1.2s infinite; }

a.veil-btn.veil-btn-blood.veil-notify-trigger {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem 1rem;
  font-size: .95rem;
  border-radius: 999px;
}

a.veil-btn.veil-btn-blood .veil-sigil {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.25);
}

/* ======================================================
   VEIL MODAL SYSTEM — SINGLE SOURCE OF TRUTH
   ====================================================== */

.veil-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(5, 5, 10, 0.88);
  backdrop-filter: blur(6px);
}

.veil-modal.is-open { display: flex; }

.veil-modal-inner,
.veil-modal-content {
  position: relative;
  max-width: 640px;
  width: min(90%, 640px);
  max-height: calc(100vh - 3rem);
  overflow-y: auto;
  padding: 2rem;
  background: radial-gradient(circle at top, #1e1b3a, #0b0b0d);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  color: #ffffff;
  box-shadow: 0 0 60px rgba(180, 40, 60, 0.35);
  text-align: center;
}

.veil-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  color: #ffffff;
  font-size: 1.25rem;
  cursor: pointer;
}
.veil-sigil-divider {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 3rem auto;
  color: #d3b16a;
}

.veil-sigil-divider::before,
.veil-sigil-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(211, 177, 106, 0.8));
}

.veil-sigil-divider::after {
  background: linear-gradient(to left, transparent, rgba(211, 177, 106, 0.8));
}

.veil-sigil-divider span {
  width: 92px;
  height: 92px;
  margin: 0 1.5rem;
  border: 1px solid rgba(211, 177, 106, 0.75);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1.4rem;
  background: radial-gradient(circle, rgba(211, 177, 106, 0.16), rgba(5, 10, 20, 0.95));
  box-shadow:
    0 0 25px rgba(211, 177, 106, 0.25),
    inset 0 0 18px rgba(211, 177, 106, 0.18);
}
.veil-about-hero {
  position: relative;
  min-height: 230px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background:
    linear-gradient(rgba(5, 10, 20, 0.35), rgba(5, 10, 20, 0.75)),
    url("/wp-content/uploads/about-veil-hero.png") center center / cover no-repeat;
  border-bottom: 1px solid rgba(211, 177, 106, 0.45);
  overflow: hidden;
}

.veil-about-hero__overlay {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at center, rgba(80, 120, 180, 0.18), transparent 55%),
    linear-gradient(90deg, rgba(3, 8, 18, 0.9), transparent 45%, rgba(3, 8, 18, 0.9));
  pointer-events: none;
}

.veil-about-hero__content {
  position: relative;
  z-index: 2;
  padding: 3rem 1.5rem;
}

.veil-about-hero h1 {
  margin: 0;
  font-family: "Cinzel", serif;
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #f5ead6;
  text-shadow: 0 0 18px rgba(0, 0, 0, 0.9);
}

.veil-ornament {
  width: 260px;
  max-width: 80%;
  margin: 0.4rem auto 0.6rem;
  color: #d3b16a;
  font-size: 1.4rem;
  position: relative;
}
.londyn-logo-wrap {
  position: relative;
  overflow: hidden;
}

.londyn-logo-wrap::before {
  content: "";
  position: absolute;
  inset: 15%;

  background:
    radial-gradient(circle,
      rgba(90,166,173,.22),
      transparent 70%);

  filter: blur(35px);

  animation:
    veilPulse 5s ease-in-out infinite alternate,
    mistFloat 8s ease-in-out infinite alternate;

  z-index: 1;
}

.londyn-logo {
  position: relative;
  z-index: 2;

  animation:
    logoFloat 6s ease-in-out infinite alternate;

  transition:
    transform .35s ease,
    filter .35s ease;

  filter:
    drop-shadow(0 0 18px rgba(90,166,173,.28))
    drop-shadow(0 0 45px rgba(139,0,15,.14));
}

.londyn-logo:hover {
  transform: scale(1.03);

  filter:
    drop-shadow(0 0 28px rgba(90,166,173,.45))
    drop-shadow(0 0 60px rgba(139,0,15,.22));
}
.jason-author-wrap {
  position: relative;
  overflow: hidden;
}

/* moving mist */
.jason-author-wrap::before {
  content: "";
  position: absolute;
  inset: -10%;

  background:
    radial-gradient(circle at 30% 20%,
      rgba(90,166,173,.16),
      transparent 38%),

    radial-gradient(circle at 70% 80%,
      rgba(139,0,15,.12),
      transparent 40%);

  filter: blur(30px);

  animation:
    mistFloat 10s ease-in-out infinite alternate;

  z-index: 1;
}

/* shimmer sweep */
.jason-author-wrap::after {
  content: "";
  position: absolute;
  top: -20%;
  left: -120%;

  width: 70%;
  height: 140%;

  background:
    linear-gradient(
      115deg,
      transparent,
      rgba(255,255,255,.08),
      transparent
    );

  transform: rotate(12deg);

  transition: all .8s ease;

  z-index: 3;
}

.jason-author-wrap:hover::after {
  left: 140%;
}

.jason-author-image {
  position: relative;
  z-index: 2;

  animation:
    authorFloat 7s ease-in-out infinite alternate;

  filter:
    grayscale(15%)
    contrast(1.08)
    brightness(.94);

  transition:
    transform .45s ease,
    filter .45s ease,
    box-shadow .45s ease;

  box-shadow:
    0 0 35px rgba(0,0,0,.5),
    0 0 45px rgba(90,166,173,.16),
    inset -18px 0 28px rgba(139,0,15,.12);
}

.jason-author-image:hover {
  transform:
    scale(1.02)
    translateY(-4px);

  filter:
    grayscale(5%)
    contrast(1.12)
    brightness(1);

  box-shadow:
    0 0 40px rgba(0,0,0,.65),
    0 0 65px rgba(90,166,173,.22),
    0 0 40px rgba(139,0,15,.18);
}
@keyframes logoFloat {
  from {
    transform: translateY(-4px);
  }

  to {
    transform: translateY(6px);
  }
}

@keyframes authorFloat {
  from {
    transform: translateY(-5px);
  }

  to {
    transform: translateY(5px);
  }
}

@keyframes mistFloat {
  from {
    transform:
      translateX(-15px)
      translateY(8px);
  }

  to {
    transform:
      translateX(18px)
      translateY(-10px);
  }
}

@keyframes veilPulse {
  from {
    opacity: .45;
    transform: scale(1);
  }

  to {
    opacity: .75;
    transform: scale(1.05);
  }
}

.veil-ornament::before,
.veil-ornament::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 42%;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(211, 177, 106, 0.85));
}

.veil-ornament::before {
  right: 58%;
}

.veil-ornament::after {
  left: 58%;
  background: linear-gradient(to left, transparent, rgba(211, 177, 106, 0.85));
}

.veil-about-hero p {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.35rem;
  color: #e8dcc7;
}

.veil-breadcrumbs {
  padding: 1rem 8%;
  background: rgba(5, 8, 14, 0.92);
  border-bottom: 1px solid rgba(211, 177, 106, 0.25);
  font-family: "Cinzel", serif;
  font-size: 0.9rem;
  color: #d8c7a3;
}

.veil-breadcrumbs a {
  color: #f0dfba;
  text-decoration: none;
}

.veil-breadcrumbs a:hover {
  color: #ffffff;
}

.veil-breadcrumbs span {
  margin-left: 0.6rem;
}
.londyn-logo-wrap {
  width: 100%;
  height: 100%;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 2rem;
}

.londyn-logo {
  max-width: 100%;
  width: 320px;
  height: auto;

  object-fit: contain;

  filter:
    drop-shadow(0 0 18px rgba(90,166,173,.25))
    drop-shadow(0 0 35px rgba(139,0,15,.18));
}
.about-split {
  display: flex;
  align-items: center;
  gap: 3rem;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto 4rem;
}

.about-split-publishing .about-copy {
  flex: 0 0 66.666%;
  max-width: 66.666%;
}

.about-split-publishing .about-media {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}

.about-split-author .about-media {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}

.about-split-author .about-copy {
  flex: 0 0 66.666%;
  max-width: 66.666%;
}

.about-media img {
  width: 100%;
  height: auto;
  display: block;
}

/* Divider stays full width */
.veil-sigil-divider {
  width: 100%;
  max-width: 1200px;
  margin: 3rem auto;
}

/* Mobile stack */
@media (max-width: 768px) {
  .about-split {
    flex-direction: column;
  }

  .about-split-publishing .about-copy,
  .about-split-publishing .about-media,
  .about-split-author .about-media,
  .about-split-author .about-copy {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.jason-author-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 2rem;

  display: flex;
  align-items: center;
  justify-content: center;

  overflow: hidden;
}

/* Floating mist overlay */
.jason-author-wrap::before {
  content: "";
  position: absolute;
  inset: 8%;
  z-index: 2;
  pointer-events: none;

  background:
    radial-gradient(circle at 30% 20%, rgba(90,166,173,.18), transparent 35%),
    linear-gradient(120deg, transparent 20%, rgba(210,230,235,.12) 45%, transparent 70%);

  filter: blur(12px);
  opacity: .55;
  animation: authorMistDrift 8s ease-in-out infinite alternate;
}

/* Blood moon rim lighting */
.jason-author-wrap::after {
  content: "";
  position: absolute;
  inset: 2rem;
  z-index: 1;
  pointer-events: none;

  border-radius: 18px;
  box-shadow:
    inset -28px 0 45px rgba(139,0,15,.34),
    0 0 38px rgba(139,0,15,.22);
}

.jason-author-image {
  position: relative;
  z-index: 1;

  width: 100%;
  max-width: 420px;
  height: auto;
  display: block;

  border-radius: 18px;
  object-fit: cover;

  filter:
    grayscale(18%)
    contrast(1.08)
    brightness(.92);

  border: 1px solid rgba(211,177,106,.24);

  box-shadow:
    0 0 28px rgba(0,0,0,.55),
    0 0 38px rgba(90,166,173,.24),
    0 0 70px rgba(90,166,173,.12);
    
  transition:
    filter .35s ease,
    transform .35s ease,
    box-shadow .35s ease;
}

/* Animated shimmer on hover */
.jason-author-image:hover {
  transform: translateY(-3px) scale(1.015);

  filter:
    grayscale(8%)
    contrast(1.12)
    brightness(1);

  box-shadow:
    0 0 35px rgba(0,0,0,.6),
    0 0 42px rgba(90,166,173,.35),
    0 0 85px rgba(139,0,15,.18);
}

.jason-author-wrap:hover::before {
  opacity: .85;
}

@keyframes authorMistDrift {
  from {
    transform: translateX(-16px) translateY(8px);
  }

  to {
    transform: translateX(18px) translateY(-10px);
  }
}
.about-split {
  display: flex;
  align-items: center;
  gap: 3rem;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto 4rem;
}

.about-split-publishing .about-copy {
  flex: 0 0 66.666%;
  max-width: 66.666%;
}

.about-split-publishing .about-media {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}

.about-split-author .about-media {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}

.about-split-author .about-copy {
  flex: 0 0 66.666%;
  max-width: 66.666%;
}

.about-media img {
  width: 100%;
  height: auto;
  display: block;
}

/* Divider stays full width */
.veil-sigil-divider {
  width: 100%;
  max-width: 1200px;
  margin: 3rem auto;
}

/* Mobile stack */
@media (max-width: 768px) {
  .about-split {
    flex-direction: column;
  }

  .about-split-publishing .about-copy,
  .about-split-publishing .about-media,
  .about-split-author .about-media,
  .about-split-author .about-copy {
    flex: 0 0 100%;
    max-width: 100%;
  }
}