/* AQDERA Sprint 13 — image-led openings. Artwork is the scene; CSS only enhances. */

.theme-world{
  position:fixed;inset:0;z-index:1200;display:grid;place-items:center;
  overflow:hidden;background:var(--tw-bg,#0a0908);color:var(--tw-ink,#f3e5c2);
  -webkit-tap-highlight-color:transparent;isolation:isolate;
}
.theme-world.theme-world--contained{
  position:absolute;inset:0;z-index:20;border-radius:inherit;
}
.theme-world__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

.theme-world__art{
  position:absolute;inset:0;overflow:hidden;
  transform:scale(1.04);transition:transform 1.55s cubic-bezier(.22,.61,.36,1);
}
.theme-world.is-art-ready .theme-world__art{transform:scale(1.01)}
.theme-world.is-opening .theme-world__art{transform:scale(1.1)}
.theme-world.is-revealing .theme-world__art{transform:scale(1.14);filter:brightness(1.06)}

.theme-world__picture,.theme-world__photo{
  position:absolute;inset:0;width:100%;height:100%;
  display:block;object-fit:cover;object-position:center;
}
.theme-world__vignette{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 42%, transparent 0 28%, color-mix(in srgb, var(--tw-bg) 35%, transparent) 58%, color-mix(in srgb, var(--tw-bg) 78%, #000) 100%),
    linear-gradient(180deg, color-mix(in srgb, var(--tw-bg) 25%, transparent), transparent 28%, transparent 72%, color-mix(in srgb, var(--tw-bg) 55%, transparent));
}
.theme-world__light{
  position:absolute;inset:0;pointer-events:none;opacity:0;
  mix-blend-mode:soft-light;transition:opacity .9s ease, transform 1.6s ease;
}
.theme-world.is-armed .theme-world__light{opacity:.55}
.theme-world.is-signature .theme-world__light{opacity:.9}

.theme-world__light--gold-halo{
  background:radial-gradient(circle at 50% 45%, #f0d090aa 0 8%, transparent 34%);
}
.theme-world__light--ring-travel{
  background:conic-gradient(from 210deg, transparent 0 62%, #e0c07888 70%, transparent 82%);
  transform:scale(.72);border-radius:50%;inset:18%;
}
.theme-world.is-signature .theme-world__light--ring-travel{transform:scale(1.05) rotate(28deg)}
.theme-world__light--textile-release{
  background:linear-gradient(105deg, transparent 40%, #fff4 48%, transparent 56%);
  transform:translateX(-18%);
}
.theme-world.is-signature .theme-world__light--textile-release{transform:translateX(12%);opacity:.8}
.theme-world__light--light-bloom,
.theme-world__light--soft-bloom{
  background:radial-gradient(circle at 50% 46%, #fff8e8cc 0 10%, transparent 42%);
}
.theme-world__light--tassel-settle{
  background:radial-gradient(circle at 50% 30%, #fff8 0 6%, transparent 30%);
}
.theme-world__light--leaf-frame{
  background:radial-gradient(circle at 50% 48%, #fff6 0 12%, transparent 40%);
}
.theme-world__light--stitch-complete{
  background:linear-gradient(180deg, transparent, #8b1e2d22 40%, transparent);
}
.theme-world__light--silk-flow{
  background:linear-gradient(115deg, transparent 30%, #fff9 46%, transparent 58%);
  transform:translateX(-24%);
}
.theme-world.is-signature .theme-world__light--silk-flow{transform:translateX(18%)}
.theme-world__light--graze-light{
  background:linear-gradient(105deg, transparent 28%, #fff8 44%, transparent 55%);
  transform:translateX(-30%);
}
.theme-world.is-signature .theme-world__light--graze-light{transform:translateX(22%)}
.theme-world__light--depth-push{
  background:radial-gradient(ellipse at 50% 55%, #fff5 0 18%, transparent 55%);
}
.theme-world__light--petal-open{
  background:radial-gradient(circle at 50% 48%, #ffb6c140 0 12%, transparent 40%);
}


/* Rose Fountain flagship art-direction layer pack.
   These are decorative overlays only; live names/content remain HTML and reusable. */
.theme-world__decor{
  position:absolute;z-index:2;pointer-events:none;user-select:none;
  max-width:none;opacity:0;
  /* Opacity + transform only — never animate filter/blur (mobile repaint cost). */
  transition:transform 1.65s cubic-bezier(.22,.61,.36,1),opacity .9s ease;
}
.theme-world[data-slug="rose-fountain"] .theme-world__vignette{opacity:.34}
.theme-world[data-slug="rose-fountain"] .theme-world__decor--floral-left{
  left:-7%;top:-2%;width:min(72vw,520px);height:auto;
  transform:translate3d(-7%,1%,0) scale(1.06) rotate(-1.5deg);
  transform-origin:left center;
}
.theme-world[data-slug="rose-fountain"] .theme-world__decor--fountain-right{
  right:-9%;bottom:-3%;width:min(66vw,500px);height:auto;
  transform:translate3d(8%,2%,0) scale(1.05) rotate(1deg);
  transform-origin:right bottom;
}
.theme-world[data-slug="rose-fountain"] .theme-world__decor--petals{
  inset:0;width:100%;height:100%;object-fit:cover;
  transform:scale(1.03);opacity:0;
}
.theme-world[data-slug="rose-fountain"].is-mounted .theme-world__decor{opacity:.92}
.theme-world[data-slug="rose-fountain"].is-art-ready .theme-world__decor--floral-left{
  transform:translate3d(0,0,0) scale(1) rotate(0deg);
}
.theme-world[data-slug="rose-fountain"].is-art-ready .theme-world__decor--fountain-right{
  transform:translate3d(0,0,0) scale(1) rotate(0deg);
}
.theme-world[data-slug="rose-fountain"].is-art-ready .theme-world__decor--petals{opacity:.55}
.theme-world[data-slug="rose-fountain"].is-signature .theme-world__decor--floral-left{
  transform:translate3d(-2.5%,0,0) scale(1.025) rotate(-.5deg);
}
.theme-world[data-slug="rose-fountain"].is-signature .theme-world__decor--fountain-right{
  transform:translate3d(2.5%,0,0) scale(1.025) rotate(.5deg);
}
.theme-world[data-slug="rose-fountain"].is-opening .theme-world__decor--floral-left{
  transform:translate3d(-10%,0,0) scale(1.05);
}
.theme-world[data-slug="rose-fountain"].is-opening .theme-world__decor--fountain-right{
  transform:translate3d(10%,0,0) scale(1.05);
}
.theme-world[data-slug="rose-fountain"].is-revealing .theme-world__decor{opacity:.2}
@media (max-width:520px){
  .theme-world[data-slug="rose-fountain"] .theme-world__decor--floral-left{left:-20%;width:92vw}
  .theme-world[data-slug="rose-fountain"] .theme-world__decor--fountain-right{right:-22%;width:86vw}
  /* Soften multi-layer motion on phones — still cinematic, fewer concurrent transforms. */
  .theme-world[data-slug="rose-fountain"].is-signature .theme-world__decor--floral-left,
  .theme-world[data-slug="rose-fountain"].is-signature .theme-world__decor--fountain-right{
    transform:none;
  }
}
/* Preview lite: near-instant, transform/opacity only, no continuous seal pulse. */
.theme-world[data-preview-lite="1"] .theme-world__decor{
  transition:opacity .42s ease,transform .55s cubic-bezier(.22,.61,.36,1);
}
.theme-world[data-preview-lite="1"] .theme-world__art{
  transition:opacity .4s ease,transform .55s cubic-bezier(.22,.61,.36,1);
}
.theme-world[data-preview-lite="1"].is-opening .theme-world__art{transform:scale(1.04)}
.theme-world[data-preview-lite="1"].is-revealing .theme-world__art{transform:scale(1.06);filter:none}
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"] .theme-world__decor--floral-left,
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"] .theme-world__decor--fountain-right{
  transform:none;
}
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"].is-mounted .theme-world__decor{opacity:.88}
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"].is-art-ready .theme-world__decor--petals{opacity:.4}
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"].is-signature .theme-world__decor--floral-left,
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"].is-signature .theme-world__decor--fountain-right,
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"].is-opening .theme-world__decor--floral-left,
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"].is-opening .theme-world__decor--fountain-right{
  transform:none;
}
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"].is-opening .theme-world__decor--floral-left{opacity:.55}
.theme-world[data-preview-lite="1"][data-slug="rose-fountain"].is-opening .theme-world__decor--fountain-right{opacity:.55}
.theme-world[data-preview-lite="1"].is-armed .theme-world__seal-art{animation:none}
.theme-world[data-preview-lite="1"] .theme-world__light{transition:opacity .35s ease;transform:none !important}
@media (prefers-reduced-motion:reduce){
  .theme-world__decor{transition:opacity .16s linear !important;transform:none !important}
  .theme-world[data-slug="rose-fountain"].is-mounted .theme-world__decor{opacity:.82}
  .theme-world[data-preview-lite="1"] .theme-world__decor,
  .theme-world[data-preview-lite="1"] .theme-world__art{transition:opacity .16s linear !important;transform:none !important}
}

.theme-world__stage{
  position:relative;z-index:4;display:grid;place-items:center;
  width:min(78vw,280px);aspect-ratio:1;pointer-events:none;
}

/* Artwork already paints the decorative frame — place live title inside that empty region. */
.theme-world[data-frame-in-art="1"] .theme-world__vignette{opacity:.18}
.theme-world[data-frame-in-art="1"] .theme-world__frame{display:none !important}
.theme-world[data-frame-in-art="1"] .theme-world__stage{
  position:absolute;inset:auto;margin:0;aspect-ratio:auto;
  display:grid;place-items:center;pointer-events:none;z-index:5;
}
.theme-world[data-frame="midnight-halo"][data-frame-in-art="1"] .theme-world__stage{
  top:34%;left:50%;transform:translateX(-50%);
  width:min(58vw,230px);height:min(58vw,230px);
}
.theme-world[data-frame="birthday-balloon"][data-frame-in-art="1"] .theme-world__stage{
  /* Visually center inside the balloon wreath empty field */
  top:46%;left:50%;transform:translate(-50%, -50%);
  width:min(70vw,292px);height:min(48vw,210px);
}
.theme-world[data-frame="newborn-frame"][data-frame-in-art="1"] .theme-world__stage{
  /* Center of the gold rectangular frame — taller stage so short names can grow */
  top:48.5%;left:50%;transform:translate(-50%, -50%);
  width:min(74vw,320px);height:min(34vw,152px);
}
.theme-world[data-frame="floral-bloom"][data-frame-in-art="1"] .theme-world__stage{
  /* Must beat [data-frame-in-art="1"] inset:auto — otherwise translate(-50%,-50%) clips the monogram left */
  top:42%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);
  width:min(62vw,260px);height:min(62vw,260px);
}
@media (max-width:520px){
  .theme-world[data-frame="floral-bloom"][data-frame-in-art="1"] .theme-world__stage{
    top:43%;width:min(68vw,255px);height:min(68vw,255px);
  }
}

/* Per-theme opening frame — shape/ornament varies by data-frame (openingKind). */
.theme-world__frame{
  position:absolute;inset:6%;display:grid;place-items:center;
  opacity:.5;transform:scale(.94);
  transition:opacity .55s ease, transform .9s cubic-bezier(.22,.61,.36,1);
  pointer-events:none;
}
.theme-world.is-mounted .theme-world__frame{opacity:.78;transform:scale(1)}
.theme-world.is-armed .theme-world__frame{opacity:.92}
.theme-world.is-signature .theme-world__frame{opacity:1;transform:scale(1.04)}
.theme-world__frame-outer,
.theme-world__frame-mid,
.theme-world__frame-inner{
  position:absolute;inset:0;box-sizing:border-box;
  border:1px solid color-mix(in srgb, var(--tw-accent) 40%, transparent);
  box-shadow:0 0 36px color-mix(in srgb, var(--tw-accent) 14%, transparent);
}
.theme-world__frame-mid{inset:7%;border-color:color-mix(in srgb, var(--tw-accent) 22%, transparent);box-shadow:none}
.theme-world__frame-inner{inset:14%;border-color:color-mix(in srgb, var(--tw-accent) 55%, transparent);box-shadow:none}
/* Frame accents stay hidden unless a specific data-frame rule paints + places them.
   A blanket is-mounted opacity previously turned unset ornaments into center squares. */
.theme-world__frame-ornament{
  position:absolute;width:0;height:0;opacity:0;background:none;color:var(--tw-accent);
  pointer-events:none;display:none;
}

/* midnight-halo — classic dual rings */
.theme-world__frame[data-frame="midnight-halo"] .theme-world__frame-outer,
.theme-world__frame[data-frame="midnight-halo"] .theme-world__frame-mid,
.theme-world__frame[data-frame="midnight-halo"] .theme-world__frame-inner{border-radius:50%}
.theme-world__frame[data-frame="midnight-halo"] .theme-world__frame-ornament--a,
.theme-world__frame[data-frame="midnight-halo"] .theme-world__frame-ornament--b{
  display:block;top:8%;width:10px;height:8px;opacity:.7;background:currentColor;
  clip-path:polygon(0 100%,0 45%,20% 60%,50% 0,80% 60%,100% 45%,100% 100%);
}
.theme-world__frame[data-frame="midnight-halo"] .theme-world__frame-ornament--a{left:50%;transform:translateX(-120%)}
.theme-world__frame[data-frame="midnight-halo"] .theme-world__frame-ornament--b{left:50%;transform:translateX(20%)}

/* heritage-textile — soft cushion / rounded square */
.theme-world__frame[data-frame="heritage-textile"] .theme-world__frame-outer,
.theme-world__frame[data-frame="heritage-textile"] .theme-world__frame-mid,
.theme-world__frame[data-frame="heritage-textile"] .theme-world__frame-inner{border-radius:28%}
.theme-world__frame[data-frame="heritage-textile"] .theme-world__frame-outer{
  border-width:2px;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--tw-accent) 35%, transparent) 0 8px, transparent 8px) top left / 28% 2px no-repeat,
    linear-gradient(0deg, color-mix(in srgb, var(--tw-accent) 35%, transparent) 0 8px, transparent 8px) top left / 2px 28% no-repeat,
    linear-gradient(270deg, color-mix(in srgb, var(--tw-accent) 35%, transparent) 0 8px, transparent 8px) top right / 28% 2px no-repeat,
    linear-gradient(0deg, color-mix(in srgb, var(--tw-accent) 35%, transparent) 0 8px, transparent 8px) top right / 2px 28% no-repeat,
    linear-gradient(90deg, color-mix(in srgb, var(--tw-accent) 35%, transparent) 0 8px, transparent 8px) bottom left / 28% 2px no-repeat,
    linear-gradient(180deg, color-mix(in srgb, var(--tw-accent) 35%, transparent) 0 8px, transparent 8px) bottom left / 2px 28% no-repeat,
    linear-gradient(270deg, color-mix(in srgb, var(--tw-accent) 35%, transparent) 0 8px, transparent 8px) bottom right / 28% 2px no-repeat,
    linear-gradient(180deg, color-mix(in srgb, var(--tw-accent) 35%, transparent) 0 8px, transparent 8px) bottom right / 2px 28% no-repeat;
}

/* obsidian-ring — sharp octagon */
.theme-world__frame[data-frame="obsidian-ring"] .theme-world__frame-outer,
.theme-world__frame[data-frame="obsidian-ring"] .theme-world__frame-mid,
.theme-world__frame[data-frame="obsidian-ring"] .theme-world__frame-inner{
  border-radius:0;
  clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);
}
.theme-world__frame[data-frame="obsidian-ring"] .theme-world__frame-outer{border-width:2px}

/* palace-bloom — tall oval / crest */
.theme-world__frame[data-frame="palace-bloom"] .theme-world__frame-outer,
.theme-world__frame[data-frame="palace-bloom"] .theme-world__frame-mid,
.theme-world__frame[data-frame="palace-bloom"] .theme-world__frame-inner{
  border-radius:48% 48% 42% 42% / 40% 40% 58% 58%;
}
.theme-world__frame[data-frame="palace-bloom"] .theme-world__frame-ornament--a{
  display:block;top:2%;left:50%;width:14px;height:10px;transform:translateX(-50%);
  background:currentColor;
  clip-path:polygon(50% 0,65% 40%,100% 45%,72% 68%,80% 100%,50% 82%,20% 100%,28% 68%,0 45%,35% 40%);
  opacity:.85;
}

/* floral-bloom — scalloped circle */
.theme-world__frame[data-frame="floral-bloom"] .theme-world__frame-outer,
.theme-world__frame[data-frame="floral-bloom"] .theme-world__frame-mid,
.theme-world__frame[data-frame="floral-bloom"] .theme-world__frame-inner{
  border-radius:50%;
  clip-path:polygon(
    50% 0%, 61% 7%, 74% 4%, 79% 16%, 91% 18%, 89% 31%, 100% 38%, 94% 50%,
    100% 62%, 89% 69%, 91% 82%, 79% 84%, 74% 96%, 61% 93%, 50% 100%,
    39% 93%, 26% 96%, 21% 84%, 9% 82%, 11% 69%, 0% 62%, 6% 50%,
    0% 38%, 11% 31%, 9% 18%, 21% 16%, 26% 4%, 39% 7%
  );
}

/* graduation-academic — shield */
.theme-world__frame[data-frame="graduation-academic"] .theme-world__frame-outer,
.theme-world__frame[data-frame="graduation-academic"] .theme-world__frame-mid,
.theme-world__frame[data-frame="graduation-academic"] .theme-world__frame-inner{
  border-radius:0;
  clip-path:polygon(50% 0, 100% 12%, 100% 58%, 50% 100%, 0 58%, 0 12%);
}
.theme-world__frame[data-frame="graduation-academic"] .theme-world__frame-outer{border-width:2px}

/* botanical-frame — rounded diamond leaf */
.theme-world__frame[data-frame="botanical-frame"] .theme-world__frame-outer,
.theme-world__frame[data-frame="botanical-frame"] .theme-world__frame-mid,
.theme-world__frame[data-frame="botanical-frame"] .theme-world__frame-inner{
  border-radius:32% 68% 32% 68% / 68% 32% 68% 32%;
  transform:rotate(0deg);
}
.theme-world__frame[data-frame="botanical-frame"] .theme-world__frame-ornament--a,
.theme-world__frame[data-frame="botanical-frame"] .theme-world__frame-ornament--b{
  display:block;width:16px;height:10px;opacity:.7;background:currentColor;
  clip-path:ellipse(50% 40% at 50% 50%);
}
.theme-world__frame[data-frame="botanical-frame"] .theme-world__frame-ornament--a{top:4%;left:50%;transform:translateX(-50%) rotate(-18deg)}
.theme-world__frame[data-frame="botanical-frame"] .theme-world__frame-ornament--b{bottom:4%;left:50%;transform:translateX(-50%) rotate(18deg)}

/* tatreez-stitch — geometric diamond */
.theme-world__frame[data-frame="tatreez-stitch"] .theme-world__frame-outer,
.theme-world__frame[data-frame="tatreez-stitch"] .theme-world__frame-mid,
.theme-world__frame[data-frame="tatreez-stitch"] .theme-world__frame-inner{
  border-radius:0;transform:rotate(45deg);inset:16%;
}
.theme-world__frame[data-frame="tatreez-stitch"] .theme-world__frame-mid{inset:22%}
.theme-world__frame[data-frame="tatreez-stitch"] .theme-world__frame-inner{inset:28%}
.theme-world__frame[data-frame="tatreez-stitch"] .theme-world__frame-outer{
  border-style:dashed;border-width:1.5px;
}

/* silk-flow — soft horizontal capsule */
.theme-world__frame[data-frame="silk-flow"] .theme-world__frame-outer,
.theme-world__frame[data-frame="silk-flow"] .theme-world__frame-mid,
.theme-world__frame[data-frame="silk-flow"] .theme-world__frame-inner{
  border-radius:999px;inset:18% 4%;
}
.theme-world__frame[data-frame="silk-flow"] .theme-world__frame-mid{inset:24% 10%}
.theme-world__frame[data-frame="silk-flow"] .theme-world__frame-inner{inset:30% 16%}

/* marble-etch — thin rectangular cartouche */
.theme-world__frame[data-frame="marble-etch"] .theme-world__frame-outer,
.theme-world__frame[data-frame="marble-etch"] .theme-world__frame-mid,
.theme-world__frame[data-frame="marble-etch"] .theme-world__frame-inner{
  border-radius:4px;inset:10% 14%;
}
.theme-world__frame[data-frame="marble-etch"] .theme-world__frame-mid{inset:14% 18%}
.theme-world__frame[data-frame="marble-etch"] .theme-world__frame-inner{inset:18% 22%;border-style:double;border-width:3px}

/* italian-parallax — classical arch (concentric, not filled) */
.theme-world__frame[data-frame="italian-parallax"] .theme-world__frame-outer,
.theme-world__frame[data-frame="italian-parallax"] .theme-world__frame-mid,
.theme-world__frame[data-frame="italian-parallax"] .theme-world__frame-inner{
  border-radius:50% 50% 8% 8% / 38% 38% 8% 8%;
  inset:4% 12% 8%;
  background:transparent;
}
.theme-world__frame[data-frame="italian-parallax"] .theme-world__frame-mid{inset:8% 16% 12%}
.theme-world__frame[data-frame="italian-parallax"] .theme-world__frame-inner{inset:12% 20% 16%}
.theme-world__monogram[data-style="italian-editorial"]:not(.is-ar){
  letter-spacing:.14em;font-style:italic;
  color:#f3e2c8;
  text-shadow:
    0 1px 0 #3a241c88,
    0 2px 16px #3a241caa,
    0 0 1px #3a241c;
}
.theme-world__monogram[data-style="italian-editorial"].is-ar{
  letter-spacing:.04em;font-style:normal;
  color:#f3e2c8;
  text-shadow:
    0 1px 0 #3a241c88,
    0 2px 16px #3a241caa,
    0 0 1px #3a241c;
}

/* petal-bloom — quatrefoil */
.theme-world__frame[data-frame="petal-bloom"] .theme-world__frame-outer,
.theme-world__frame[data-frame="petal-bloom"] .theme-world__frame-mid,
.theme-world__frame[data-frame="petal-bloom"] .theme-world__frame-inner{
  border-radius:50%;
  clip-path:polygon(
    50% 4%, 62% 18%, 82% 14%, 78% 34%, 96% 50%, 78% 66%, 82% 86%, 62% 82%,
    50% 96%, 38% 82%, 18% 86%, 22% 66%, 4% 50%, 22% 34%, 18% 14%, 38% 18%
  );
}

/* birthday-candlelight — soft oval glow frame (celebration, not wedding) */
.theme-world__frame[data-frame="birthday-candlelight"] .theme-world__frame-outer,
.theme-world__frame[data-frame="birthday-candlelight"] .theme-world__frame-mid,
.theme-world__frame[data-frame="birthday-candlelight"] .theme-world__frame-inner{
  border-radius:46% / 40%;
}
.theme-world__frame[data-frame="birthday-candlelight"] .theme-world__frame-outer{
  border-width:1.5px;
  box-shadow:0 0 40px color-mix(in srgb, var(--tw-accent, #d4b896) 28%, transparent);
}
.theme-world__frame[data-frame="birthday-candlelight"] .theme-world__frame-ornament--a,
.theme-world__frame[data-frame="birthday-candlelight"] .theme-world__frame-ornament--b{
  width:42%;height:2px;border:0;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--tw-accent,#d4b896),transparent);
  opacity:.55;
}
.theme-world__frame[data-frame="birthday-candlelight"] .theme-world__frame-ornament--a{top:8%;left:50%;transform:translateX(-50%)}
.theme-world__frame[data-frame="birthday-candlelight"] .theme-world__frame-ornament--b{bottom:8%;left:50%;transform:translateX(-50%)}
.theme-world__monogram[data-style="celebration-serif"]{
  letter-spacing:.1em;
  text-shadow:0 0 28px color-mix(in srgb, var(--tw-accent,#d4b896) 45%, transparent);
}

/* Collision-proof monogram: ONLY initials + real &. No ornaments / marks / diamonds. */
.theme-world .theme-world__monogram,
.theme-world__monogram{
  position:relative;z-index:5;
  display:inline-grid !important;
  grid-template-columns:max-content max-content max-content;
  grid-auto-flow:column;
  align-items:center;justify-content:center;justify-items:center;
  /* Generous gap so script swashes (Great Vibes etc.) never collide with & */
  column-gap:.48em;row-gap:0;
  flex-direction:unset !important;flex-wrap:nowrap !important;
  writing-mode:horizontal-tb !important;
  direction:ltr !important; /* initials stay A & B order even when opening is RTL */
  unicode-bidi:isolate;white-space:nowrap !important;
  width:auto;max-width:none;min-width:0;
  /* Prefer the theme name face so each world reads as its own type identity */
  font-family:var(--tw-font-name, var(--tw-font-opening, Georgia, serif));
  font-size:clamp(2.8rem, 12vw, 4.2rem);font-weight:var(--tw-name-weight, 600);line-height:1;
  letter-spacing:var(--tw-letter-name, var(--tw-letter-opening,.18em));
  color:var(--tw-accent,#d5b46b);
  text-shadow:0 2px 24px color-mix(in srgb, var(--tw-bg) 55%, transparent), 0 0 1px color-mix(in srgb, var(--tw-ink) 40%, transparent);
  opacity:0;transform:translateY(8px) scale(.98);
  transition:opacity .55s ease, transform .7s cubic-bezier(.22,.61,.36,1);
}
.theme-world .theme-world__monogram--solo,
.theme-world__monogram--solo{
  grid-template-columns:max-content;
}
.theme-world .theme-world__monogram .tw-a,
.theme-world .theme-world__monogram .tw-b,
.theme-world .theme-world__monogram .tw-solo,
.theme-world__monogram .tw-a,
.theme-world__monogram .tw-b,
.theme-world__monogram .tw-solo{
  display:block;grid-row:1;line-height:1;
  font-family:inherit;color:inherit;
  min-width:0.55em;text-align:center;
  white-space:nowrap !important;writing-mode:horizontal-tb !important;
  background:none !important;border:0 !important;box-shadow:none !important;
  text-shadow:0 2px 18px color-mix(in srgb, var(--tw-bg) 45%, transparent), 0 0 1px color-mix(in srgb, var(--tw-ink) 55%, transparent);
}
.theme-world .theme-world__monogram .tw-a,
.theme-world__monogram .tw-a{grid-column:1}
.theme-world .theme-world__monogram .tw-join,
.theme-world__monogram .tw-join{grid-column:2}
.theme-world .theme-world__monogram .tw-b,
.theme-world__monogram .tw-b{grid-column:3}
/* Arabic initials: never rely on Latin-only name faces (Bodoni/Allura .notdef boxes). */
.theme-world .theme-world__monogram.is-ar,
.theme-world__monogram.is-ar{
  font-family:var(--tw-font-opening-ar, "Aref Ruqaa", Amiri, "Noto Naskh Arabic", serif);
  letter-spacing:.04em;font-style:normal;
}
html[dir=rtl] .theme-world .theme-world__monogram,
[dir=rtl] .theme-world .theme-world__monogram,
html[dir=rtl] .theme-world__monogram,
[dir=rtl] .theme-world__monogram{
  direction:ltr !important;grid-auto-flow:column;writing-mode:horizontal-tb !important;
}
/* Appear as soon as the overlay mounts — don't wait on hero decode. */
.theme-world.is-mounted .theme-world__monogram{opacity:.88;transform:none}
.theme-world.is-art-ready .theme-world__monogram{opacity:.96}
.theme-world.is-opening .theme-world__monogram{opacity:.2;transform:scale(1.08)}
/* Real ampersand only — never a CSS bar/diamond/ornament. Force Latin serif.
   Extra horizontal padding keeps & clear of neighboring glyph swashes. */
.theme-world .theme-world__monogram .tw-join,
.theme-world__monogram .tw-join{
  display:block;grid-row:1;
  width:auto;height:auto;min-width:0.85em;
  margin:0;padding:0 .32em;border:0 !important;
  background:none !important;opacity:.95;
  transform:none !important;box-shadow:none !important;filter:none !important;
  text-shadow:none !important;
  -webkit-text-stroke:0 !important;
  font-family:"Times New Roman",Times,Georgia,serif !important;
  font-size:.55em;font-style:italic;font-weight:400;letter-spacing:0;
  line-height:1;color:inherit;-webkit-font-smoothing:antialiased;
  font-variant-ligatures:none;font-feature-settings:"liga" 0;
  white-space:nowrap !important;writing-mode:horizontal-tb !important;
  text-align:center;
}
.theme-world .theme-world__monogram .tw-a::before,
.theme-world .theme-world__monogram .tw-a::after,
.theme-world .theme-world__monogram .tw-b::before,
.theme-world .theme-world__monogram .tw-b::after,
.theme-world .theme-world__monogram .tw-join::before,
.theme-world .theme-world__monogram .tw-join::after,
.theme-world .theme-world__monogram::before,
.theme-world .theme-world__monogram::after,
.theme-world__monogram .tw-a::before,
.theme-world__monogram .tw-a::after,
.theme-world__monogram .tw-b::before,
.theme-world__monogram .tw-b::after,
.theme-world__monogram .tw-join::before,
.theme-world__monogram .tw-join::after,
.theme-world__monogram::before,
.theme-world__monogram::after{
  content:none !important;display:none !important;
  background:none !important;border:0 !important;box-shadow:none !important;
  width:0 !important;height:0 !important;
}
/* Keep letter glow on initials only — do not let Florence contrast shadow fill the join gap */
.theme-world__monogram[data-style="italian-editorial"] .tw-a,
.theme-world__monogram[data-style="italian-editorial"] .tw-b{
  text-shadow:
    0 1px 0 #3a241c66,
    0 2px 10px #3a241c55;
}
.theme-world__monogram[data-style="italian-editorial"] .tw-join{
  text-shadow:none !important;
  color:inherit;
}
/* Ornaments / awaiting diamond marks retired — never paint them */
.theme-world__monogram .tw-ornament,
.theme-world__monogram .tw-mark,
.tw-ornament,
.tw-mark,
.theme-world__monogram--awaiting{
  display:none !important;width:0 !important;height:0 !important;
  margin:0 !important;padding:0 !important;border:0 !important;
  background:none !important;opacity:0 !important;transform:none !important;
}
.theme-world__monogram[data-style="romantic-script"]{
  font-weight:400;letter-spacing:.02em;
  column-gap:.72em; /* script swashes need generous air around & */
}
.theme-world__monogram[data-style="romantic-script"] .tw-a,
.theme-world__monogram[data-style="romantic-script"] .tw-b{
  padding-inline:.1em;
}
.theme-world__monogram[data-style="romantic-script"] .tw-join{
  min-width:1em;padding:0 .4em;font-size:.48em;
}
.theme-world__monogram[data-style="engraved-minimal"]{
  color:color-mix(in srgb, var(--tw-ink) 80%, #fff);
  text-shadow:0 1px 0 #fff8, 0 0 1px #0004;
}
.theme-world__monogram[data-style="palatial-serif"]{letter-spacing:.22em}
.theme-world__monogram[data-style="botanical-serif"]{letter-spacing:.1em}
.theme-world__monogram[data-style="editorial-serif"]{letter-spacing:.16em;font-weight:500}
.theme-world__monogram[data-style="tatreez-serif"]{color:#8b1e2d}
.theme-world__monogram[data-style="academic-serif"]{color:#1a2744;letter-spacing:.2em}
.theme-world__monogram[data-style="obsidian-ring"]{color:#e8d4a0}

/* Full name inside artwork frames (birthday / newborn) */
.theme-world .theme-world__monogram--name,
.theme-world__monogram--name{
  grid-template-columns:minmax(0,1fr) !important;
  width:100%;max-width:100%;
  height:100%;
  font-size:clamp(2.3rem, 11.4vw, 3.85rem);
  line-height:1.02;text-align:center;
  padding:0 .1em;
  place-items:center;
  align-content:center;
  justify-items:center;
}
.theme-world__monogram--name .tw-name{
  display:block;max-width:100%;width:max-content;margin-inline:auto;
  overflow:visible;
  white-space:nowrap;line-height:1.05;
  font-family:var(--tw-font-name, inherit);color:inherit;
  font-weight:var(--tw-name-weight, 400);
  letter-spacing:var(--tw-letter-name, 0.02em);
  text-align:center;
}
.theme-world__monogram--name.is-ar .tw-name{
  white-space:nowrap;
  line-height:1.15;
}
/* Hanging gold monogram — matches wreath linework */
.theme-world__monogram[data-style="hanging-gold"]{
  color:#d4af37;
  font-size:clamp(2.4rem, 11vw, 3.6rem);
  letter-spacing:.14em;
  text-shadow:
    0 1px 0 #8a702288,
    0 10px 18px rgba(0,0,0,.45),
    0 2px 0 rgba(255,230,160,.18);
  transform:translateY(-6%);
}
.theme-world.is-mounted .theme-world__monogram[data-style="hanging-gold"]{
  transform:translateY(0);
  transition:opacity .55s ease, transform .85s cubic-bezier(.22,.61,.36,1);
}
.theme-world__monogram[data-style="hanging-gold"] .tw-join{
  color:inherit;opacity:.95;font-size:.48em;
}
/* Birthday script — rose-gold inside balloon wreath */
.theme-world__monogram[data-style="birthday-script"]{
  color:#c4897a;
  font-weight:400;letter-spacing:.02em;
  font-size:clamp(2.55rem, 12.8vw, 4.15rem);
  text-shadow:0 1px 0 #fff8, 0 2px 10px #c4897a33;
}
.theme-world__monogram[data-style="birthday-script"].is-ar{
  font-size:clamp(2.4rem, 11.4vw, 3.75rem);
}
/* Newborn Diwani / flowing script inside gold rectangle */
.theme-world__monogram[data-style="newborn-diwani"]{
  color:#b8924a;
  font-weight:500;letter-spacing:.02em;
  font-size:clamp(2.5rem, 11.8vw, 3.85rem);
  text-shadow:0 1px 0 #fff6, 0 1px 8px #b8924a22;
}
.theme-world__monogram[data-style="newborn-diwani"].is-ar{
  font-size:clamp(2.55rem, 12vw, 3.9rem);
}

.theme-world.is-armed{cursor:pointer}
.theme-world__hit{
  position:absolute;inset:0;z-index:8;border:0;padding:0;margin:0;
  background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.theme-world__hit[aria-disabled="true"]{cursor:default;pointer-events:none}
.theme-world.is-armed .theme-world__hit{pointer-events:auto}

/* Guest/preview skip — always available; does not wait on seal arming. */
.theme-world__skip{
  position:absolute;z-index:12;
  top:max(14px, env(safe-area-inset-top));
  inset-inline-end:max(14px, env(safe-area-inset-right));
  border:1px solid color-mix(in srgb, var(--tw-line, #c4a574) 55%, transparent);
  border-radius:999px;
  padding:0.55rem 0.95rem;
  min-height:44px;
  background:color-mix(in srgb, var(--tw-bg, #0a0908) 55%, transparent);
  color:var(--tw-ink, #f3e5c2);
  font:600 0.82rem/1.2 var(--tw-font-body, system-ui, sans-serif);
  letter-spacing:0.04em;
  cursor:pointer;
  backdrop-filter:blur(8px);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.theme-world__skip:hover,
.theme-world__skip:focus-visible{
  outline:2px solid color-mix(in srgb, var(--tw-accent, #c4a574) 70%, transparent);
  outline-offset:2px;
}
.theme-world.is-opening .theme-world__skip,
.theme-world.is-complete .theme-world__skip{
  opacity:0;pointer-events:none;
}

/* Wax seal — fixed AQDERA brand CTA; sized ~72% of prior so it clears art frames. */
.theme-world__cta,
.theme-world__cta--seal{
  position:absolute;z-index:10;left:50%;
  bottom:max(28px, calc(env(safe-area-inset-bottom) + 18px));
  transform:translateX(-50%);
  width:clamp(86px, 24.5vw, 122px);
  height:clamp(86px, 24.5vw, 122px);
  border:0;border-radius:0;padding:0;margin:0;
  background:transparent;color:inherit;
  display:grid;place-items:center;cursor:pointer;opacity:.55;
  transition:opacity .45s ease, transform .45s ease;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
  appearance:none;-webkit-appearance:none;
}
/* Framed-art openings keep extra clearance under the decorative frame. */
.theme-world[data-frame-in-art="1"] .theme-world__cta{
  bottom:max(22px, calc(env(safe-area-inset-bottom) + 14px));
}
.theme-world[data-frame="midnight-halo"][data-frame-in-art="1"] .theme-world__cta{
  /* Stay clear of wreath + rings in the lower field */
  bottom:max(32px, calc(env(safe-area-inset-bottom) + 22px));
}
.theme-world__cta[aria-disabled="true"]{cursor:default}
.theme-world.is-armed .theme-world__cta{opacity:1}
.theme-world__cta:not([aria-disabled="true"]):hover,
.theme-world__cta:not([aria-disabled="true"]):focus-visible{
  transform:translateX(-50%) scale(1.04);
  outline:none;
}
.theme-world__cta:focus-visible{
  filter:drop-shadow(0 0 0 2px color-mix(in srgb, var(--tw-accent) 55%, transparent));
}
.theme-world__seal{
  position:relative;display:grid;place-items:center;
  width:100%;height:100%;pointer-events:none;
}
.theme-world__seal-art{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;user-select:none;-webkit-user-drag:none;
  filter:drop-shadow(0 10px 22px rgba(0,0,0,.28));
}
.theme-world__cta-label--sr{
  position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);
}
/* Retired pill affordances — keep harmless if old markup appears. */
.theme-world__cta-ring,
.theme-world__cta-mark{display:none !important}
.theme-world.is-opening .theme-world__cta{
  opacity:0;pointer-events:none;transition:opacity .28s ease, transform .4s ease;
  transform:translateX(-50%) scale(.92);
}

@keyframes tw-pulse{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.8;transform:scale(1.04)}}
.theme-world.is-armed .theme-world__seal-art{
  animation:tw-seal-breathe 2.8s ease-in-out infinite;
}
@keyframes tw-seal-breathe{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.025)}
}

/* Fade starts quickly after tap so invitation content is usable without a long wait. */
.theme-world.is-revealing{
  opacity:0;pointer-events:none;
  transition:opacity .32s ease;
}
.theme-world.is-complete{opacity:0;pointer-events:none;transition:opacity .22s ease}
body.theme-world-active{overflow:hidden;overscroll-behavior:none}
body.invite-reveal-started .invite-sheet,
body.invite-reveal-started #invitationCard,
body.invite-reveal-started .invitation-card{
  visibility:visible;
}

/* Clear the fixed preview chrome so the seal never collides with Use/Back pills. */
body:has(.preview-chrome) .theme-world__cta{
  bottom:max(96px, calc(env(safe-area-inset-bottom) + 78px));
}
/* Hide preview chrome during the ceremonial opening so no clipped gold/red pills peek through. */
body.theme-world-active .preview-chrome{
  display:none !important;
}
body.invite-entered .preview-chrome,
body:not(.theme-world-active) .preview-chrome{
  display:flex;
}

@media (prefers-reduced-motion: reduce){
  .theme-world.is-armed .theme-world__seal-art{animation:none}
  .theme-world__art,
  .theme-world.is-opening .theme-world__art,
  .theme-world.is-revealing .theme-world__art{
    transition-duration:.2s !important;transform:none !important;
  }
  .theme-world.is-reduced-opening.is-opening,
  .theme-world.is-reduced-opening.is-revealing{
    opacity:0;pointer-events:none;transition:opacity .2s ease;
  }
}

@media (max-width:420px){
  .theme-world__cta{
    width:clamp(78px, 27vw, 108px);
    height:clamp(78px, 27vw, 108px);
    bottom:max(22px, calc(env(safe-area-inset-bottom) + 14px));
  }
  .theme-world__monogram{font-size:clamp(2.4rem, 11vw, 3.6rem)}
  .theme-world__monogram--name{font-size:clamp(2.15rem, 11.4vw, 3.35rem)}
  .theme-world__monogram[data-style="birthday-script"]{font-size:clamp(2.25rem, 12.2vw, 3.6rem)}
  .theme-world__monogram[data-style="newborn-diwani"]{font-size:clamp(2.2rem, 11.8vw, 3.4rem)}
}
