/*! Singles product-journey bones — solid structure, not flashy Enchant
 * Shared by rose PDP + pumpkin PDP. Cream-on-dark · frosted glass light. */
:root {
  --pj-cream: #fff8ee;
  --pj-cream-soft: rgba(255, 248, 238, 0.86);
  --pj-muted: rgba(255, 248, 238, 0.58);
  --pj-honey: #e8b84a;
  --pj-glass: rgba(220, 200, 255, 0.38);
  --pj-radius: 18px;
  --pj-font: "Source Sans 3", system-ui, sans-serif;
  --pj-serif: "Cormorant Garamond", Georgia, serif;
}

/* ── Breadcrumb ─────────────────────────────────────────── */
.pj-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
  margin: 0 0 1.15rem;
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(220, 200, 255, 0.28);
  background: rgba(12, 8, 28, 0.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--pj-muted);
  list-style: none;
}
.pj-crumb li { display: inline-flex; align-items: center; gap: 0.45rem; }
.pj-crumb li:not(:last-child)::after {
  content: "/";
  color: rgba(255, 248, 238, 0.28);
  font-weight: 600;
  margin-left: 0.1rem;
}
.pj-crumb a {
  color: #d4b8ff;
  text-decoration: none;
  font-weight: 700;
}
.pj-crumb a:hover { color: #ffd978; }
.pj-crumb [aria-current="page"] {
  color: var(--pj-cream-soft);
  font-weight: 800;
}

/* ── Hero / buy skeleton ────────────────────────────────── */
.pj-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-bottom: 1.75rem;
}
@media (min-width: 860px) {
  .pj-hero { grid-template-columns: 1.05fr 0.95fr; align-items: start; }
}

.pj-hero__shot {
  position: relative;
  border-radius: var(--pj-radius);
  overflow: hidden;
  border: 1.5px solid var(--pj-glass);
  background: rgba(12, 8, 28, 0.65);
  box-shadow: 0 0 28px rgba(140, 100, 220, 0.22), 0 10px 28px rgba(0, 0, 0, 0.32);
  aspect-ratio: 4 / 3;
}
.pj-hero__shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pj-hero__badge {
  position: absolute;
  left: 0.8rem;
  bottom: 0.8rem;
  padding: 0.32rem 0.7rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(12, 8, 28, 0.78);
  border: 1px solid rgba(255, 200, 180, 0.4);
  color: #ffd978;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.pj-buy {
  padding: 1.15rem 1.2rem 1.3rem;
  border-radius: var(--pj-radius);
  border: 1.5px solid var(--pj-glass);
  background: linear-gradient(165deg, rgba(255, 248, 255, 0.1), rgba(20, 12, 40, 0.55));
  backdrop-filter: blur(14px) saturate(1.15);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14);
}
.pj-buy__eyebrow {
  margin: 0 0 0.3rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pj-honey);
}
.pj-buy__title {
  margin: 0 0 0.25rem;
  font-family: var(--pj-serif);
  font-weight: 600;
  font-size: clamp(1.55rem, 3.2vw, 2.05rem);
  color: var(--pj-cream);
  line-height: 1.2;
}
.pj-buy__meta {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--pj-muted);
}
.pj-buy__price {
  margin: 0 0 0.65rem;
  font-size: 1.85rem;
  font-weight: 800;
  color: #ffd978;
  letter-spacing: 0.02em;
}
.pj-buy__price span {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--pj-muted);
  letter-spacing: 0.04em;
}
.pj-buy__craft {
  margin: 0 0 1rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--pj-cream-soft);
  line-height: 1.5;
}
.pj-buy__craft em { color: #f0b8c8; font-style: italic; }
.pj-buy__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
  margin-bottom: 0.55rem;
}
.pj-buy__selected {
  margin: 0 0 0.35rem;
  min-height: 1.2em;
  font-size: 0.82rem;
  font-weight: 700;
  color: #d4b8ff;
}
.pj-buy__note {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--pj-muted);
}

/* Buttons (bones) */
.pj-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  border: 1.5px solid rgba(255, 217, 120, 0.55);
  background: linear-gradient(180deg, rgba(232, 184, 74, 0.28), rgba(120, 70, 40, 0.35));
  color: var(--pj-cream);
  font-family: var(--pj-font);
  font-size: 0.88rem;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pj-btn:hover {
  border-color: #ffd978;
  box-shadow: 0 0 16px rgba(232, 184, 74, 0.28);
}
.pj-btn--ghost {
  background: rgba(12, 8, 28, 0.45);
  border-color: rgba(220, 200, 255, 0.4);
  color: var(--pj-cream-soft);
}
.pj-btn--ghost:hover { border-color: rgba(212, 184, 255, 0.75); color: #ffd978; }
.pj-btn--icon {
  width: 2.6rem;
  height: 2.6rem;
  padding: 0;
  font-size: 1.15rem;
  background: rgba(12, 8, 28, 0.55);
  border-color: rgba(220, 200, 255, 0.45);
}
.pj-btn--icon[hidden] { display: none !important; }
.pj-btn--icon[aria-expanded="true"] {
  border-color: #ffd978;
  box-shadow: 0 0 14px rgba(232, 184, 74, 0.35);
}

/* ── Palette gate shell ─────────────────────────────────── */
.pj-palette { margin-top: 0.75rem; }
.pj-palette__panel {
  margin-top: 0.65rem;
  padding: 0.85rem 0.9rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(220, 200, 255, 0.32);
  background: rgba(8, 5, 18, 0.72);
}
.pj-palette__panel[hidden] { display: none !important; }
.pj-palette__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.pj-palette__head h3 {
  margin: 0;
  font-family: var(--pj-serif);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--pj-cream);
}
.pj-palette__close {
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 999px;
  border: 1px solid rgba(220, 200, 255, 0.35);
  background: transparent;
  color: var(--pj-cream);
  font-size: 1.1rem;
  cursor: pointer;
  line-height: 1;
}
.pj-palette__hint {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--pj-muted);
}
.pj-palette__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
  gap: 0.45rem;
}
.pj-swatch {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0.45rem;
  border-radius: 10px;
  border: 1px solid rgba(220, 200, 255, 0.28);
  background: rgba(16, 10, 32, 0.65);
  color: var(--pj-cream);
  cursor: pointer;
  font-family: var(--pj-font);
  text-align: left;
}
.pj-swatch:hover { border-color: rgba(255, 217, 120, 0.55); }
.pj-swatch.is-active {
  border-color: #ffd978;
  box-shadow: 0 0 12px rgba(232, 184, 74, 0.25);
}
.pj-swatch__triple { display: flex; height: 1.35rem; border-radius: 6px; overflow: hidden; }
.pj-swatch__dot { flex: 1; min-width: 0; }
.pj-swatch__n {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--pj-muted);
  line-height: 1.25;
}
.pj-swatch--freeform { border-style: dashed; }

/* ── Section shells ─────────────────────────────────────── */
.pj-section {
  margin: 2rem 0 0;
}
.pj-section__head { margin-bottom: 1rem; max-width: 36rem; }
.pj-section__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pj-honey);
}
.pj-section__title {
  margin: 0 0 0.35rem;
  font-family: var(--pj-serif);
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 600;
  color: var(--pj-cream);
}
.pj-section__lede {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--pj-muted);
}

/* ── Ship mount frame ───────────────────────────────────── */
.pj-ship-wrap { max-width: 640px; }
.pj-ship-mount .esp__panel,
.pj-ship-mount .sg-glass {
  /* light structure only — no Enchant glitter */
}

/* ── Reserve strip ──────────────────────────────────────── */
.pj-reserve {
  margin-top: 2rem;
  padding: 1.15rem 1.2rem 1.35rem;
  border-radius: var(--pj-radius);
  border: 1.5px solid rgba(220, 200, 255, 0.35);
  background: linear-gradient(165deg, rgba(255, 248, 255, 0.08), rgba(18, 10, 36, 0.6));
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  max-width: 520px;
}
.pj-reserve__title {
  margin: 0 0 0.25rem;
  font-family: var(--pj-serif);
  font-size: 1.35rem;
  font-weight: 600;
}
.pj-reserve__lede {
  margin: 0 0 0.9rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--pj-muted);
}
.pj-reserve__form {
  display: grid;
  gap: 0.65rem;
}
.pj-reserve__field label {
  display: block;
  margin-bottom: 0.2rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pj-muted);
}
.pj-reserve__field input {
  width: 100%;
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  border: 1px solid rgba(220, 200, 255, 0.35);
  background: rgba(8, 5, 16, 0.65);
  color: var(--pj-cream);
  font-family: var(--pj-font);
  font-size: 0.95rem;
  font-weight: 600;
}
.pj-reserve__field input:focus {
  outline: none;
  border-color: rgba(255, 217, 120, 0.65);
  box-shadow: 0 0 0 2px rgba(232, 184, 74, 0.2);
}
.pj-reserve__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.25rem;
}
.pj-reserve__msg {
  margin: 0.55rem 0 0;
  font-size: 0.85rem;
  font-weight: 700;
  color: #c8f0c0;
  min-height: 1.2em;
}
.pj-reserve__msg.is-error { color: #ffb0b8; }
.pj-reserve__chip {
  display: inline-block;
  margin-bottom: 0.55rem;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(180, 60, 90, 0.35);
  border: 1px solid rgba(255, 200, 180, 0.35);
  color: #ffd978;
}

/* Foot note inside bones pages */
.pj-foot {
  margin-top: 2.25rem;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--pj-muted);
}
.pj-foot a { color: #d4b8ff; text-decoration: none; font-weight: 700; }
.pj-foot a:hover { color: #ffd978; }

/* ═══════════════════════════════════════════════════════════
   ENCHANT conjure pass — glass · shimmer hooks · drawer · embers
   Bones stay; this layer elevates boutique feel. Calm + reduced-motion safe.
   ═══════════════════════════════════════════════════════════ */

:root {
  --pj-glow-violet: rgba(140, 100, 220, 0.42);
  --pj-glow-rose: rgba(255, 120, 180, 0.38);
  --pj-glow-honey: rgba(232, 184, 74, 0.4);
  --pj-glow-pumpkin: rgba(240, 140, 80, 0.38);
  --pj-inset: inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 0 28px rgba(200, 160, 255, 0.08);
}

/* Ethereal page veil (hub + PDPs can opt in via .pj-enchant) */
.pj-enchant {
  position: relative;
  isolation: isolate;
}
.pj-enchant::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(160, 90, 220, 0.18), transparent 42%),
    radial-gradient(ellipse at 80% 12%, rgba(232, 120, 160, 0.12), transparent 38%),
    radial-gradient(ellipse at 50% 100%, rgba(232, 184, 74, 0.08), transparent 40%);
  opacity: 0.9;
}
.pj-enchant > * { position: relative; z-index: 1; }

/* Premium crumb */
.pj-crumb {
  box-shadow: 0 0 18px rgba(140, 100, 220, 0.16), var(--pj-inset);
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.pj-crumb:hover {
  border-color: rgba(255, 217, 120, 0.4);
  box-shadow: 0 0 22px rgba(232, 184, 74, 0.18), var(--pj-inset);
}

/* Hero shot — premium glass frame */
.pj-hero__shot {
  box-shadow:
    0 0 36px var(--pj-glow-violet),
    0 0 64px rgba(255, 160, 200, 0.12),
    0 14px 36px rgba(0, 0, 0, 0.38),
    var(--pj-inset);
  transition: box-shadow 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
}
.pj-hero__shot:hover {
  border-color: rgba(255, 217, 120, 0.55);
  box-shadow:
    0 0 44px var(--pj-glow-honey),
    0 16px 40px rgba(0, 0, 0, 0.4),
    var(--pj-inset);
}
.pj-hero__shot img {
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.pj-hero__shot:hover img {
  transform: scale(1.03);
}

/* Buy panel — boutique glass */
.pj-buy {
  box-shadow:
    0 0 32px var(--pj-glow-violet),
    0 0 56px rgba(255, 160, 200, 0.1),
    var(--pj-inset);
  position: relative;
  overflow: hidden;
}
.pj-buy::after {
  content: "";
  position: absolute;
  top: -40%;
  right: -20%;
  width: 55%;
  height: 80%;
  background: radial-gradient(circle, rgba(255, 217, 120, 0.12), transparent 70%);
  pointer-events: none;
}
.pj-buy__title {
  text-shadow: 0 0 18px rgba(180, 140, 255, 0.35);
}
.pj-buy__price {
  text-shadow: 0 0 20px rgba(232, 184, 74, 0.35);
}

/* Buttons — rock-star hover */
.pj-btn {
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.18s ease, background 0.2s ease;
}
.pj-btn:hover {
  transform: translateY(-1px);
}
.pj-btn:active { transform: translateY(0); }
.pj-btn:focus-visible {
  outline: 2px solid #b08ad4;
  outline-offset: 3px;
}

/* ── Palette glass drawer ───────────────────────────────── */
.pj-palette__panel {
  margin-top: 0.75rem;
  padding: 1rem 1.05rem 1.15rem;
  border-radius: 16px;
  border: 1.5px solid rgba(220, 200, 255, 0.42);
  background:
    linear-gradient(168deg, rgba(255, 255, 255, 0.12), rgba(30, 18, 55, 0.62) 55%, rgba(18, 12, 40, 0.5));
  backdrop-filter: blur(18px) saturate(1.25);
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
  box-shadow:
    0 0 32px var(--pj-glow-violet),
    0 12px 28px rgba(0, 0, 0, 0.28),
    var(--pj-inset);
  transform-origin: top center;
  animation: pj-drawer-in 0.35s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.pj-palette__panel[hidden] {
  display: none !important;
  animation: none;
}
.pj-palette__panel.is-open {
  display: block;
}
@keyframes pj-drawer-in {
  from { opacity: 0; transform: translateY(-8px) scaleY(0.96); }
  to { opacity: 1; transform: none; }
}
.pj-palette__head h3 {
  text-shadow: 0 0 14px rgba(180, 140, 255, 0.35);
}
.pj-palette__close {
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.pj-palette__close:hover {
  border-color: rgba(255, 217, 120, 0.65);
  box-shadow: 0 0 12px rgba(232, 184, 74, 0.25);
  transform: rotate(90deg);
}
.pj-swatch {
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}
.pj-swatch:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 217, 120, 0.65);
  box-shadow: 0 0 14px rgba(232, 184, 74, 0.22);
}
.pj-swatch:focus-visible {
  outline: 2px solid #b08ad4;
  outline-offset: 2px;
}

/* Section titles — shimmer-ready glow */
.pj-section__title {
  text-shadow: 0 0 16px rgba(180, 140, 255, 0.28);
}

/* Ship mount — nested glass polish */
.pj-ship-mount .esp__panel.sg-glass,
.pj-ship-mount .esp__panel {
  border-radius: 18px;
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.pj-ship-wrap {
  filter: drop-shadow(0 0 18px rgba(140, 100, 220, 0.18));
}

/* Reserve — magical but honest */
.pj-reserve {
  position: relative;
  overflow: hidden;
  box-shadow:
    0 0 36px var(--pj-glow-violet),
    0 0 48px rgba(255, 160, 200, 0.1),
    var(--pj-inset);
  max-width: 540px;
}
.pj-reserve::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(255, 217, 120, 0.45), rgba(180, 120, 255, 0.35), rgba(255, 140, 180, 0.25));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  opacity: 0.65;
}
.pj-reserve__title {
  text-shadow: 0 0 16px rgba(180, 140, 255, 0.35);
}
.pj-reserve__field input {
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.pj-reserve__field input:hover {
  border-color: rgba(220, 200, 255, 0.5);
}

/* Glass polygon lightbox (shared class for rose + future) */
.pj-lb,
.lb {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(4, 2, 12, 0.86);
  backdrop-filter: blur(16px) saturate(1.15);
  -webkit-backdrop-filter: blur(16px) saturate(1.15);
}
.pj-lb.is-open,
.lb.is-open { display: flex; }
.pj-lb__frame,
.lb__frame {
  position: relative;
  max-width: min(920px, 96vw);
  max-height: 88vh;
  border-radius: 22px;
  border: 1.5px solid rgba(220, 200, 255, 0.45);
  background: linear-gradient(165deg, rgba(255, 248, 255, 0.14), rgba(20, 12, 40, 0.78));
  box-shadow:
    0 0 56px rgba(140, 100, 220, 0.48),
    0 0 80px rgba(255, 140, 180, 0.12),
    var(--pj-inset);
  overflow: hidden;
  clip-path: polygon(2.2% 0%, 97.8% 0%, 100% 2.8%, 100% 97.2%, 97.8% 100%, 2.2% 100%, 0% 97.2%, 0% 2.8%);
}
.pj-lb__nav, .pj-lb__close,
.lb__nav, .lb__close {
  appearance: none;
  cursor: pointer;
  border: 1.5px solid rgba(200, 180, 255, 0.45);
  background: rgba(12, 8, 28, 0.78);
  color: var(--pj-cream);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 999px;
  width: 2.7rem;
  height: 2.7rem;
  font-size: 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  z-index: 2;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}
.pj-lb__nav:hover, .pj-lb__close:hover,
.lb__nav:hover, .lb__close:hover {
  border-color: #ffd978;
  box-shadow: 0 0 16px rgba(232, 184, 74, 0.35);
  transform: scale(1.05);
}
.lb__close, .pj-lb__close { top: 0.75rem; right: 0.75rem; }
.lb__nav--prev, .pj-lb__nav--prev { left: 0.75rem; top: 50%; transform: translateY(-50%); }
.lb__nav--next, .pj-lb__nav--next { right: 0.75rem; top: 50%; transform: translateY(-50%); }
.lb__nav--prev:hover, .pj-lb__nav--prev:hover,
.lb__nav--next:hover, .pj-lb__nav--next:hover { transform: translateY(-50%) scale(1.05); }

/* Ambient calm-safe embers */
.pj-ember-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.pj-ember {
  position: absolute;
  bottom: -8px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff0b8 0%, #ffe566 30%, #e8b84a 58%, transparent 78%);
  box-shadow: 0 0 6px rgba(255, 200, 90, 0.4);
  opacity: 0;
  animation: pj-ember-drift var(--pj-ember-dur, 9s) ease-in-out infinite;
  animation-delay: var(--pj-ember-delay, 0s);
}
.pj-ember--rose {
  background: radial-gradient(circle, #ffe8f0 0%, #f0a0b8 35%, #c06090 65%, transparent 80%);
  box-shadow: 0 0 7px rgba(255, 140, 180, 0.35);
}
.pj-ember--violet {
  background: radial-gradient(circle, #f0e6ff 0%, #b08ad4 40%, #7050a0 70%, transparent 85%);
  box-shadow: 0 0 7px rgba(160, 120, 220, 0.35);
}
@keyframes pj-ember-drift {
  0% { transform: translate(0, 0) scale(0.6); opacity: 0; }
  8% { opacity: 0.75; }
  50% { opacity: 0.55; }
  100% { transform: translate(var(--pj-ember-x, 20px), -72vh) scale(0.15); opacity: 0; }
}

html.calm-mode .pj-ember-layer,
body.calm .pj-ember-layer,
html.calm-mode .pj-enchant::before {
  display: none !important;
}
html.calm-mode .pj-hero__shot:hover img,
body.calm .pj-hero__shot:hover img {
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .pj-ember-layer { display: none !important; }
  .pj-palette__panel { animation: none !important; }
  .pj-btn:hover,
  .pj-swatch:hover,
  .pj-hero__shot:hover img,
  .door:hover,
  .shape-card:hover {
    transform: none !important;
  }
  .pj-hero__shot img,
  .pj-btn,
  .pj-swatch,
  .pj-palette__close {
    transition: none !important;
  }
}

/* Enchant-friendly tokens (bones stay structural) */
.pj-crumb {
  backdrop-filter: blur(12px) saturate(1.15);
  -webkit-backdrop-filter: blur(12px) saturate(1.15);
}
.pj-hero__shot {
  box-shadow: 0 0 28px rgba(140, 100, 220, 0.22), 0 10px 28px rgba(0, 0, 0, 0.32), inset 0 1px 0 rgba(255,255,255,0.12);
}
.pj-buy, .pj-reserve {
  border-color: rgba(220, 200, 255, 0.34);
}
