

.inv-canvas {
  container-type: inline-size;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  background: var(--inv-ground);
  color: var(--inv-ink);
  font-family: var(--inv-body);

  --inv-eyebrow: clamp(0.66rem, 2.9cqi, 0.95rem);

  --inv-title: clamp(1.55rem, var(--inv-scale-title, 9.4cqi), 4.75rem);
  --inv-host: clamp(0.95rem, var(--inv-scale-secondary, 4cqi), 1.45rem);
  --inv-label: clamp(0.6rem, 2.5cqi, 0.78rem);
  --inv-value: clamp(0.95rem, calc(var(--inv-scale-secondary, 4cqi) * 1.025), 1.3rem);
  --inv-body-size: clamp(0.9rem, var(--inv-scale-detail, 3.7cqi), 1.05rem);
  --inv-meta: clamp(0.75rem, calc(var(--inv-scale-detail, 3.7cqi) * 0.84), 0.9rem);

  --inv-optical-from: 1.5rem;
  --inv-optical-rate: 0.028;
  --inv-optical: max(0em, (1em - var(--inv-optical-from)) * var(--inv-optical-rate));
  --inv-pad: clamp(1.25rem, 7cqi, 3.25rem);
  --inv-gap: clamp(0.7rem, 3.2cqi, 1.5rem);
  --inv-rule: color-mix(in srgb, var(--inv-accent) 55%, transparent);

  --inv-scrim: color-mix(in oklab, var(--inv-ground) 92%, transparent);

  --inv-edge-band: 14cqi;

  --inv-vignette: 0;
  --inv-grain: 0;
}

.inv-canvas--page {
  min-height: 30rem;

  --inv-gutter: 12%;
  --inv-band: 8cqi;
}
.inv-canvas--thumb {
  --inv-eyebrow: clamp(0.42rem, 3.4cqi, 0.7rem);

  --inv-title: clamp(0.85rem, calc(var(--inv-scale-title, 9.4cqi) * 1.064), 2.1rem);
  --inv-host: clamp(0.5rem, calc(var(--inv-scale-secondary, 4cqi) * 1.05), 0.85rem);
  --inv-label: clamp(0.38rem, 2.7cqi, 0.6rem);
  --inv-value: clamp(0.5rem, calc(var(--inv-scale-secondary, 4cqi) * 1.05), 0.85rem);
  --inv-meta: clamp(0.42rem, calc(var(--inv-scale-detail, 3.7cqi) * 0.86), 0.65rem);
  --inv-pad: clamp(0.7rem, 7cqi, 1.5rem);
  --inv-gap: clamp(0.3rem, 3cqi, 0.7rem);
  height: 100%;
}

.inv-canvas--thumb .inv-art { min-height: 100%; justify-content: center; }
.inv-thumb { position: relative; width: 100%; }

.inv-canvas--thumb .inv-art { max-height: 100%; }

.inv-canvas--thumb .inv-art > .inv-panel { min-height: 0; display: flex; flex-direction: column; }
.inv-canvas--thumb .inv-panel__body { min-height: 0; }

.inv-canvas--thumb .inv-portrait__archbox { flex: 0 1 26cqi; min-height: 0; }
.inv-canvas--thumb .inv-party__art { flex: 0 1 auto; min-height: 0; }

.inv-canvas--thumb.inv-canvas .inv-art--party { padding-block: clamp(0.4rem, 3cqi, 0.9rem); }

.inv-canvas--thumb[data-language="typographic"] {
  --inv-title: clamp(1.1rem, calc(var(--inv-scale-title, 9.4cqi) * 1.39), 3.6rem);
}
.inv-canvas--thumb[data-language="typographic"] .inv-divider i { display: none; }
.inv-canvas--thumb[data-language="typographic"] .inv-divider { gap: 0; }

.inv-scene {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
  background-image: var(--inv-scene-glows, none), var(--inv-scene-ground, none);
}
.inv-scene::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 72% at 50% 46%, transparent 55%, rgb(0 0 0 / var(--inv-vignette)) 100%);
}

.inv-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: var(--inv-grain);
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 220px 220px;
}
.inv-canvas--thumb .inv-scene::after { display: none; }

.inv-bokeh {
  position: absolute;
  border-radius: 50%;
  translate: -50% -50%;
  pointer-events: none;
  background: radial-gradient(circle, var(--inv-accent) 0%, color-mix(in oklab, var(--inv-accent) 55%, transparent) 34%, transparent 68%);
}

.inv-column {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--inv-gap);
  width: 100%;
  min-width: 0;
  align-items: inherit;
  text-align: inherit;
  background: var(--inv-scrim);
  border-radius: clamp(0.4rem, 1.6cqi, 0.9rem);
  padding: clamp(0.5rem, 2.4cqi, 1.1rem) clamp(0.6rem, 2.6cqi, 1.25rem);
}

.inv-canvas[data-language="typographic"] .inv-column { border-block: 1px solid var(--inv-rule); border-radius: 0; }

.inv-panel { position: relative; width: 100%; min-width: 0; }
.inv-panel__head { display: block; width: 100%; height: auto; overflow: visible; margin-bottom: -1px; }
.inv-panel__fill { fill: var(--inv-scrim); }
.inv-panel__line { fill: none; stroke: var(--inv-accent); stroke-width: 1; }
.inv-panel__body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--inv-gap);
  align-items: center;
  text-align: center;
  min-width: 0;
  margin-inline: 0.6%;
  background: var(--inv-scrim);
  border: 1px solid var(--inv-accent);
  border-top: 0;
  padding: clamp(0.9rem, 4.5cqi, 2.25rem) clamp(0.9rem, 4.5cqi, 2.25rem) clamp(1.2rem, 5.5cqi, 2.75rem);
}
.inv-panel--arch .inv-panel__body,
.inv-panel--scallop .inv-panel__body { margin-top: -9%; }

.inv-panel--mat .inv-panel__body { border-top: 1px solid var(--inv-accent); }
.inv-panel--mat .inv-panel__body::before {
  content: "";
  position: absolute;
  inset: clamp(4px, 1.4cqi, 10px);
  border: 1px solid var(--inv-rule);
  pointer-events: none;
}
.inv-panel__body .inv-when { width: 100%; }
.inv-panel__body .inv-when__cell { align-items: center; text-align: center; }
.inv-panel__body .inv-details { justify-content: center; text-align: center; }
.inv-panel__body .inv-desc { text-align: left; margin-inline: auto; max-width: 46ch; }
.inv-panel__body .inv-icon { margin-inline: auto; }
.inv-panel__body .inv-desc__mark { text-align: center; }

.inv-title--gold,
.inv-blessing--gold { color: var(--inv-ink); }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .inv-title--gold,
  .inv-blessing--gold {
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
      linear-gradient(172deg,
        color-mix(in oklab, var(--inv-accent) 55%, var(--inv-ink)) 0%,
        var(--inv-accent) 18%,
        var(--inv-accent) 34%,
        color-mix(in oklab, var(--inv-accent) 80%, var(--inv-ink-muted)) 47%,
        color-mix(in oklab, var(--inv-accent) 55%, var(--inv-ink)) 58%,
        var(--inv-accent) 74%,
        color-mix(in oklab, var(--inv-accent) 80%, var(--inv-ink-muted)) 100%);
    background-size: 160px 160px, 100% 100%;
    background-blend-mode: soft-light, normal;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    padding-bottom: 0.06em;
  }
}

.inv-blessing {
  margin: 0;
  font-family: var(--inv-blessing, var(--inv-display));
  font-size: calc(var(--inv-title) * 0.6);
  font-weight: var(--inv-blessing-weight, 400);
  line-height: 1.3;
  letter-spacing: normal;
  text-transform: none;
  color: var(--inv-ink);
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.inv-banner__band .inv-blessing { color: var(--inv-ground); }

.inv-canvas[data-secondary-face="script"] .inv-host {
  font-family: var(--inv-face-script, var(--inv-display));
  font-size: calc(var(--inv-host) * 1.45);
  color: var(--inv-ink);
  line-height: 1.15;
}
.inv-canvas[data-secondary-face="script"] .inv-host__label {
  font-family: var(--inv-body);
  font-size: var(--inv-label);
  color: var(--inv-ink-muted);
}

.inv-label--quiet {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.inv-when[data-weight="quiet"] .inv-when__value,
.inv-details[data-weight="quiet"] .inv-when__value { font-size: var(--inv-meta); color: var(--inv-ink-muted); }
.inv-host[data-weight="quiet"] { font-size: var(--inv-meta); color: var(--inv-ink-muted); }
.inv-desc[data-weight="quiet"] { font-size: var(--inv-meta); color: var(--inv-ink-muted); }
.inv-when[data-weight="lead"] .inv-when__value { font-size: calc(var(--inv-value) * 1.18); color: var(--inv-ink); font-family: var(--inv-display); }
.inv-host[data-weight="lead"] { font-size: calc(var(--inv-host) * 1.15); color: var(--inv-ink); font-family: var(--inv-display); }

.inv-divider--motif { display: block; width: clamp(2rem, 9cqi, 3.6rem); aspect-ratio: 1; margin-inline: auto; flex: 0 0 auto; }
.inv-divider--motif > svg { display: block; width: 100%; height: 100%; }
.inv-canvas--thumb .inv-divider--motif { width: clamp(1.1rem, 8cqi, 2rem); }

.inv-field { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.inv-field__layer { position: absolute; inset: 0; will-change: transform; }
.inv-field__item {
  position: absolute;
  display: block;

  translate: -50% -50%;
}
.inv-field__item > svg { display: block; width: 100%; height: 100%; }

@media (prefers-reduced-motion: no-preference) {

  .inv-field__layer--drift-slow { animation: inv-drift-slow 12s ease-in-out infinite alternate; }
  .inv-field__layer--drift-fast { animation: inv-drift-fast 17s ease-in-out infinite alternate; }
}

.inv-canvas--page .inv-art--poster,
.inv-canvas--page .inv-art--editorial,
.inv-canvas--page .inv-frame__rule,
.inv-canvas--page .inv-banner__band,
.inv-canvas--page .inv-ticket__stub {
  padding-inline: max(var(--inv-pad), var(--inv-gutter));
  padding-block: max(var(--inv-pad), var(--inv-band));
}

.inv-canvas--page .inv-art--poster { padding-block: max(clamp(2rem, 11cqi, 4.5rem), var(--inv-band)); }

.inv-canvas--page .inv-art--arch {
  padding-inline: max(var(--inv-pad), var(--inv-gutter));
  padding-block: max(var(--inv-pad), var(--inv-edge-band));
}

@media (prefers-reduced-motion: no-preference) {
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-scene { animation: inv-enter-fade 700ms 0ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-cancelled { animation: inv-enter-fade 200ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-field { animation: inv-enter-rise 550ms 100ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-panel { animation: inv-enter-settle 550ms 160ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-greeting { animation: inv-enter-rise 420ms 220ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-title { animation: inv-enter-settle 650ms 330ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-blessing { animation: inv-enter-settle 650ms 330ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-date { animation: inv-enter-settle 650ms 330ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-host { animation: inv-enter-rise 420ms 440ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-when { animation: inv-enter-rise 420ms 520ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-details { animation: inv-enter-rise 420ms 600ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-desc { animation: inv-enter-rise 420ms 680ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="lamp-lit"] .inv-slot { animation: inv-enter-rise 420ms 760ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-scene { animation: inv-enter-fade 600ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-cancelled { animation: inv-enter-fade 200ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-field { animation: inv-enter-fade 420ms 120ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-divider--motif { animation: inv-enter-settle 560ms 200ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-greeting { animation: inv-enter-rise 360ms 260ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-title { animation: inv-enter-settle 560ms 320ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-blessing { animation: inv-enter-settle 560ms 320ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-date { animation: inv-enter-settle 560ms 320ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-host { animation: inv-enter-rise 360ms 460ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-when { animation: inv-enter-rise 360ms 540ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-details { animation: inv-enter-rise 360ms 620ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-desc { animation: inv-enter-rise 360ms 700ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="craft"] .inv-slot { animation: inv-enter-rise 360ms 780ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-cancelled { animation: inv-enter-fade 200ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-greeting { animation: inv-enter-fade 300ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-title { animation: inv-enter-line 420ms 80ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-blessing { animation: inv-enter-line 420ms 80ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-date { animation: inv-enter-line 420ms 80ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-host { animation: inv-enter-rise 200ms 300ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-when { animation: inv-enter-rise 200ms 380ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-details { animation: inv-enter-rise 200ms 460ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-desc { animation: inv-enter-rise 200ms 540ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-slot { animation: inv-enter-rise 200ms 620ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="editorial"] .inv-field { animation: inv-enter-fade 250ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-scene { animation: inv-enter-fade 250ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-cancelled { animation: inv-enter-fade 200ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-field { animation: inv-enter-fade 300ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-greeting { animation: inv-enter-rise 300ms 300ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-title { animation: inv-enter-rise 380ms 340ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-blessing { animation: inv-enter-rise 380ms 340ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-date { animation: inv-enter-rise 380ms 340ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-when { animation: inv-enter-rise 380ms 400ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-host { animation: inv-enter-rise 380ms 460ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-details { animation: inv-enter-rise 380ms 520ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-desc { animation: inv-enter-rise 380ms 580ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-slot { animation: inv-enter-fade 300ms 700ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-scene { animation: inv-enter-fade 700ms 0ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-cancelled { animation: inv-enter-fade 200ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-greeting { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-title { animation: inv-enter-push 900ms 100ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-blessing { animation: inv-enter-push 900ms 100ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-date { animation: inv-enter-push 900ms 100ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-host { animation: inv-enter-fade 300ms 500ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-when { animation: inv-enter-fade 300ms 600ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-details { animation: inv-enter-fade 300ms 700ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-desc { animation: inv-enter-fade 300ms 800ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="cinematic"] .inv-slot { animation: inv-enter-fade 300ms 900ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-cancelled { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-greeting { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-title { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-blessing { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-date { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-host { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-when { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-details { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-desc { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="typographic"] .inv-slot { animation: inv-enter-fade 400ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-scene { animation: inv-enter-fade 460ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-cancelled { animation: inv-enter-fade 200ms 0ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-field { animation: inv-enter-pop 460ms 80ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-greeting { animation: inv-enter-rise 340ms 260ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-title { animation: inv-enter-settle 560ms 320ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-blessing { animation: inv-enter-settle 560ms 320ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-date { animation: inv-enter-settle 560ms 320ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-host { animation: inv-enter-rise 340ms 460ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-when { animation: inv-enter-rise 340ms 540ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-details { animation: inv-enter-rise 340ms 620ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-desc { animation: inv-enter-rise 340ms 700ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="festival-colour"] .inv-slot { animation: inv-enter-rise 340ms 780ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-scene,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-cancelled,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-field,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-panel,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-greeting,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-title,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-blessing,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-date,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-host,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-when,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-details,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-desc,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="lamp-lit"] .inv-slot { animation: inv-hold 900ms step-end backwards; }
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-scene,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-cancelled,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-field,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-divider--motif,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-greeting,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-title,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-blessing,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-date,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-host,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-when,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-details,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-desc,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="craft"] .inv-slot { animation: inv-hold 900ms step-end backwards; }
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-cancelled,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-greeting,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-title,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-blessing,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-date,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-host,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-when,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-details,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-desc,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-slot,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="editorial"] .inv-field { animation: inv-hold 900ms step-end backwards; }
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-scene,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-cancelled,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-field,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-greeting,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-title,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-blessing,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-date,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-when,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-host,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-details,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-desc,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-slot { animation: inv-hold 900ms step-end backwards; }
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-scene,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-cancelled,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-greeting,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-title,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-blessing,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-date,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-host,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-when,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-details,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-desc,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="cinematic"] .inv-slot { animation: inv-hold 900ms step-end backwards; }
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-cancelled,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-greeting,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-title,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-blessing,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-date,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-host,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-when,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-details,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-desc,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="typographic"] .inv-slot { animation: inv-hold 900ms step-end backwards; }
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-scene,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-cancelled,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-field,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-greeting,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-title,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-blessing,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-date,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-host,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-when,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-details,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-desc,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="festival-colour"] .inv-slot { animation: inv-hold 900ms step-end backwards; }
  .inv-canvas--page[data-language="lamp-lit"] .inv-flame { animation: inv-flame-breathe 3.6s 1180ms ease-in-out infinite alternate; }
}

@keyframes inv-hold {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes inv-enter-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes inv-enter-rise {
  from { opacity: 0; transform: translate3d(0, 8px, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes inv-enter-pop {
  from { opacity: 0; transform: scale(0.92); }
  to { opacity: 1; transform: none; }
}
@keyframes inv-enter-push {
  from { opacity: 0; transform: scale(1.04); }
  to { opacity: 1; transform: none; }
}
@keyframes inv-enter-line {
  from { opacity: 0; transform: translate3d(0, 0.35em, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes inv-enter-settle {
  from { opacity: 0; transform: translate3d(0, 20px, 0) scale(0.96); }
  to { opacity: 1; transform: none; }
}

.inv-flame { transform-box: fill-box; transform-origin: 50% 100%; }
@keyframes inv-flame-breathe {
  from { opacity: 0.94; transform: scale(1, 1); }
  to { opacity: 1; transform: scale(1.015, 1.03); }
}

@keyframes inv-drift-slow {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(1%, -1.8cqi, 0); }
}
@keyframes inv-drift-fast {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-1.6%, 2cqi, 0); }
}

.inv-art {
  display: flex;
  flex-direction: column;
  gap: var(--inv-gap);
  padding: var(--inv-pad);
}

.inv-slot {
  margin-top: auto;
  padding-top: var(--inv-gap);
  align-self: stretch;
  width: 100%;
  text-align: initial;
}

.inv-art,
.inv-banner__band,
.inv-ticket__stub,
.inv-split__plate,
.inv-bleed__mat,
.inv-scroll__band { position: relative; z-index: 0; }

.inv-greeting {
  display: flex;
  flex-direction: column;
  gap: 0.35em;
  font-family: var(--inv-display);
  font-size: var(--inv-eyebrow);
  font-weight: 500;
  letter-spacing: 0.22em;

  line-height: 1.4;
  text-transform: uppercase;
  color: var(--inv-ink-muted);
}
.inv-title {
  margin: 0;

  color: var(--inv-ink);
  font-family: var(--inv-display);

  font-size: calc(var(--inv-title) * var(--inv-title-factor, 1));
  font-weight: var(--inv-display-weight);

  letter-spacing: calc(var(--inv-tracking-length, var(--inv-tracking)) - var(--inv-optical));
  text-transform: var(--inv-display-transform);
  line-height: 1.04;

  text-wrap: balance;
  overflow-wrap: anywhere;
}

.inv-canvas--thumb .inv-title { hyphens: auto; }

@container style(--inv-tracking: 0) { .inv-title { --inv-tracking-length: 0em; } }
.inv-host {
  margin: 0;
  font-size: var(--inv-host);
  color: var(--inv-ink);
  overflow-wrap: anywhere;
}
.inv-host__label {
  display: block;
  color: var(--inv-ink-muted);
  font-size: 0.72em;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 0.2em;
}
.inv-host__label + .inv-host__label { margin-top: -0.1em; }

.inv-icon {
  display: block;
  width: 1.55em;
  height: 1.55em;
  margin-bottom: 0.3em;
  color: var(--inv-accent);
  flex: 0 0 auto;
}

.inv-when__sub .inv-icon { display: inline-block; width: 1.15em; height: 1.15em; margin: 0 0.3em -0.2em 0; }
.inv-desc__mark { display: block; }
.inv-desc__mark .inv-icon { width: 1.4em; height: 1.4em; margin-bottom: 0.1em; }
.inv-art--poster .inv-icon,
.inv-art--frame .inv-icon,
.inv-art--scroll .inv-icon,
.inv-cardbox .inv-icon { margin-inline: auto; }
.inv-art--poster .inv-desc__mark,
.inv-art--frame .inv-desc__mark,
.inv-art--scroll .inv-desc__mark,
.inv-cardbox .inv-desc__mark { text-align: center; }

.inv-canvas--thumb .inv-icon,
.inv-canvas--thumb .inv-desc__mark { display: none; }

.inv-when { display: grid; gap: var(--inv-gap); grid-template-columns: 1fr; }
@container (min-width: 48rem) { .inv-when { grid-template-columns: 1fr 1fr; } }
.inv-when__cell { display: flex; flex-direction: column; gap: 0.3em; min-width: 0; }
.inv-when__label {
  font-family: var(--inv-display);
  font-size: var(--inv-label);
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--inv-ink-muted);
}

.inv-when__value { color: var(--inv-ink); font-size: var(--inv-value); line-height: 1.35; overflow-wrap: anywhere; text-wrap: pretty; max-width: 34ch; }
.inv-when__moment { display: inline-block; max-width: 100%; }
.inv-when__clock { white-space: nowrap; }
.inv-when__sub { font-size: var(--inv-meta); color: var(--inv-ink-muted); overflow-wrap: anywhere; text-wrap: pretty; max-width: 38ch; }

.inv-details { display: flex; flex-wrap: wrap; gap: var(--inv-gap); }

.inv-details__item { display: flex; flex-direction: column; gap: 0.25em; min-width: 0; flex: 1 1 10rem; max-width: 30ch; }
.inv-desc { display: flex; flex-direction: column; gap: 0.6em; font-size: var(--inv-body-size); line-height: 1.6; color: var(--inv-ink); }

.inv-art--poster .inv-desc,
.inv-art--frame .inv-desc,
.inv-art--scroll .inv-desc,
.inv-cardbox .inv-desc { text-align: left; margin-inline: auto; }
.inv-desc p { margin: 0; overflow-wrap: anywhere; }

.inv-cancelled {
  display: flex;
  align-items: center;
  gap: 0.6em;

  background: var(--inv-ink);
  color: var(--inv-ground);
  padding: 0.7em 1em;
  font-family: var(--inv-display);
  font-weight: 700;
  font-size: var(--inv-value);
  letter-spacing: 0.02em;
}
.inv-cancelled svg { flex: 0 0 auto; }

.inv-secondary {
  display: block;
  opacity: 0.92;
  letter-spacing: normal;
  text-transform: none;
  line-height: 1.5;
}

.inv-greeting > [lang]:not([lang="en"]),
.inv-host__label[lang]:not([lang="en"]),
.inv-when__label[lang]:not([lang="en"]),
.inv-cancelled[lang]:not([lang="en"]),
.inv-ticket__month[lang]:not([lang="en"]),
.inv-date__day[lang]:not([lang="en"]),
.inv-date__names[lang]:not([lang="en"]),
.inv-date__year[lang]:not([lang="en"]),
.inv-plate-waiting[lang]:not([lang="en"]),
.inv-title[data-script="non-latin"] {
  letter-spacing: normal;
  text-transform: none;
}
.inv-note {
  font-size: var(--inv-meta);
  line-height: 1.5;
  color: var(--inv-ink-muted);
  padding: 0.8em var(--inv-pad) 1.1em;
  border-top: 1px solid var(--inv-rule);
  background: var(--inv-ground);
  margin: 0;
}

.inv-divider { display: flex; align-items: center; gap: 0.75em; width: 100%; }
.inv-divider::before, .inv-divider::after { content: ""; flex: 1; height: 1px; background: var(--inv-rule); }
.inv-divider i { width: 0.45em; height: 0.45em; background: var(--inv-accent); rotate: 45deg; flex: 0 0 auto; }

.inv-art--poster { align-items: center; text-align: center; padding-block: clamp(2rem, 11cqi, 4.5rem); }
.inv-art--poster .inv-when { width: 100%; }
.inv-art--poster .inv-when__cell { align-items: center; text-align: center; }
.inv-art--poster .inv-details { justify-content: center; text-align: center; }
.inv-art--poster .inv-desc { max-width: 46ch; }

.inv-art--arch { align-items: center; text-align: center; padding-block: max(var(--inv-pad), var(--inv-edge-band)); }

.inv-canvas--thumb .inv-art--arch { padding-inline: clamp(0.5rem, 4cqi, 1rem); padding-block: 10cqi; }
.inv-canvas--thumb .inv-panel--arch .inv-panel__body,
.inv-canvas--thumb .inv-panel--scallop .inv-panel__body { margin-top: -15%; padding-top: clamp(0.6rem, 3cqi, 1rem); }

.inv-art--arch .inv-field[data-zone="edge"] { z-index: 1; }
.inv-art--arch .inv-panel { z-index: 0; }

.inv-art--card { padding: clamp(0.85rem, 5cqi, 2.25rem); }
.inv-cardbox {
  display: flex;
  flex-direction: column;
  gap: var(--inv-gap);
  background: var(--inv-card);
  color: var(--inv-card-ink);
  padding: var(--inv-pad);
  text-align: center;
  align-items: center;
  border: 1px solid var(--inv-rule);
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.06), 0 12px 28px -18px rgb(0 0 0 / 0.35);
}
.inv-cardbox .inv-title, .inv-cardbox .inv-blessing, .inv-cardbox .inv-host, .inv-cardbox .inv-when__value, .inv-cardbox .inv-desc { color: var(--inv-card-ink); }
.inv-cardbox .inv-when { width: 100%; }
.inv-cardbox .inv-when__cell { align-items: center; text-align: center; }
.inv-cardbox .inv-details { justify-content: center; }

.inv-art--split { display: grid; grid-template-columns: 1fr; gap: 0; padding: 0; }
@container (min-width: 39rem) { .inv-art--split { grid-template-columns: minmax(0, 38%) minmax(24rem, 1fr); } }
.inv-split__plate {
  position: relative;
  overflow: hidden;
  min-height: 32cqi;
  background: var(--inv-accent-soft);
}
@container (min-width: 39rem) { .inv-split__plate { min-height: 100%; } }

.inv-plate-mark {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
}
.inv-plate-mark__motif { display: block; width: min(58%, 30cqi); max-height: 78%; aspect-ratio: 1; }
.inv-plate-mark__motif > svg { display: block; width: 100%; height: 100%; }

.inv-split__plate--empty,
.inv-bleed__mat--empty {
  background: var(--inv-card);
  display: grid;
  place-items: center;
}
.inv-split__plate--empty::after,
.inv-bleed__mat--empty::after {
  content: "";
  position: absolute;
  inset: clamp(0.6rem, 4cqi, 1.25rem);
  border: 2px solid var(--inv-accent);
  pointer-events: none;
}
.inv-canvas--thumb .inv-split__plate--empty::after,
.inv-canvas--thumb .inv-bleed__mat--empty::after { inset: 6%; }

.inv-bleed__mat--empty + .inv-bleed__riser { display: none; }
.inv-plate-waiting {
  font-family: var(--inv-body);
  font-size: clamp(0.7rem, 4.2cqi, 1rem);
  font-variant-caps: all-small-caps;
  letter-spacing: 0.12em;
  color: var(--inv-ink-muted);
}
.inv-split__body { display: flex; flex-direction: column; gap: var(--inv-gap); padding: var(--inv-pad); min-width: 0; container-type: inline-size; }
.inv-art--split .inv-when { grid-template-columns: 1fr; }
@container (min-width: 27rem) { .inv-art--split .inv-when { grid-template-columns: 1fr 1fr; } }

.inv-art--banner { padding: 0; gap: 0; }
.inv-banner__band {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  background: var(--inv-ink);
  color: var(--inv-ground);
  padding: var(--inv-pad);
  overflow: hidden;
}
.inv-banner__band .inv-greeting { color: var(--inv-ground); opacity: 0.82; }
.inv-banner__band .inv-title { color: var(--inv-ground); }
.inv-banner__rule { height: 4px; background: var(--inv-accent); }
.inv-banner__body { display: flex; flex-direction: column; gap: var(--inv-gap); padding: var(--inv-pad); min-width: 0; }

.inv-art--banner[data-edges] .inv-banner__body { position: relative; z-index: 0; }
.inv-canvas--page .inv-art--banner[data-edges] .inv-banner__body {
  padding-block: max(var(--inv-pad), var(--inv-edge-band));
}

.inv-canvas--thumb .inv-art--poster[data-edges] { padding-block: 13cqi; }

.inv-art--frame { padding: clamp(0.7rem, 4cqi, 1.75rem); }
.inv-frame__rule {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--inv-gap);
  align-items: center;
  text-align: center;
  padding: var(--inv-pad);
  border: 1px solid var(--inv-accent);
}

.inv-frame__rule::before {
  content: "";
  position: absolute;
  inset: clamp(4px, 1.4cqi, 10px);
  border: 1px solid var(--inv-rule);
  pointer-events: none;
}
.inv-art--frame .inv-when { width: 100%; }
.inv-art--frame .inv-when__cell { align-items: center; text-align: center; }
.inv-art--frame .inv-details { justify-content: center; }

.inv-art--editorial { align-items: stretch; text-align: left; }
.inv-editorial__hr { height: 3px; background: var(--inv-ink); width: min(38%, 9rem); }
.inv-art--editorial .inv-when { grid-template-columns: 1fr; gap: 0.9em; }
.inv-art--editorial .inv-when__cell {
  display: grid;
  grid-template-columns: minmax(4.5rem, 26%) 1fr;
  gap: 0.4em 1em;
  align-items: baseline;
  border-top: 1px solid var(--inv-rule);
  padding-top: 0.7em;
}
.inv-art--editorial .inv-when__sub { grid-column: 2; }
.inv-art--editorial .inv-desc { max-width: 62ch; }

.inv-edge-frame {
  position: absolute;
  inset: 6cqi;
  border: 1px solid var(--inv-accent);
  background: var(--inv-scrim);
  z-index: -1;
  pointer-events: none;
}

.inv-canvas[data-language="editorial"] .inv-greeting {
  color: color-mix(in srgb, var(--inv-accent) 75%, var(--inv-ink));
}

.inv-art--ticket { display: grid; grid-template-columns: 1fr; padding: 0; gap: 0; }
@container (min-width: 32rem) { .inv-art--ticket { grid-template-columns: minmax(8rem, 0.42fr) 1fr; } }
.inv-ticket__stub {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.15em;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--inv-pad);
  overflow: hidden;

  background: var(--inv-scrim);

  border-bottom: 2px dashed var(--inv-rule);
}
@container (min-width: 32rem) {
  .inv-ticket__stub { border-bottom: 0; border-right: 2px dashed var(--inv-rule); }
}

.inv-ticket__notch {
  position: absolute;
  width: 1.5rem; height: 1.5rem;
  border-radius: 50%;
  background: var(--inv-ground);
  border: 1px solid var(--inv-rule);
}
.inv-ticket__notch--a { left: -0.75rem; bottom: -0.75rem; }
.inv-ticket__notch--b { right: -0.75rem; bottom: -0.75rem; }
@container (min-width: 32rem) {
  .inv-ticket__notch--a { left: auto; bottom: auto; right: -0.75rem; top: -0.75rem; }
  .inv-ticket__notch--b { left: auto; right: -0.75rem; bottom: -0.75rem; }
}
.inv-ticket__day { color: var(--inv-ink); font-family: var(--inv-display); font-weight: var(--inv-display-weight); font-size: clamp(2.2rem, 15cqi, 5rem); line-height: 0.95; }
.inv-ticket__month { font-family: var(--inv-display); font-size: var(--inv-eyebrow); letter-spacing: 0.28em; text-transform: uppercase; color: var(--inv-ink-muted); }
.inv-ticket__body { display: flex; flex-direction: column; gap: var(--inv-gap); padding: var(--inv-pad); min-width: 0; }

.inv-art--date {
  align-items: center;
  text-align: center;
  justify-content: center;
  padding-inline: 8cqi;
  padding-block: clamp(2rem, 12cqi, 5rem);
}
.inv-canvas .inv-art--date .inv-column { border-block: 0; gap: calc(var(--inv-gap) * 1.1); }
.inv-art--date .inv-title,
.inv-art--date .inv-host,
.inv-art--date .inv-when,
.inv-art--date .inv-details,
.inv-art--date .inv-desc { max-width: 70cqi; margin-inline: auto; }

.inv-art--date[data-dated="false"] .inv-title { max-width: none; }
.inv-art--date .inv-when { width: 100%; }
.inv-art--date .inv-when__cell { align-items: center; text-align: center; }
.inv-art--date .inv-details { justify-content: center; text-align: center; }

.inv-art--date[data-dated="true"] { --inv-title: clamp(1.35rem, 8cqi, 3.4rem); }
.inv-canvas--thumb .inv-art--date[data-dated="true"] { --inv-title: clamp(0.72rem, 8.6cqi, 1.7rem); }
.inv-canvas--thumb .inv-art--date { padding-block: var(--inv-pad); }
.inv-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(0.2rem, 1.6cqi, 0.8rem);
  width: 100%;
  margin-block: clamp(0.2rem, 2cqi, 1rem) clamp(0.1rem, 1cqi, 0.5rem);
}

.inv-date__row {
  display: flex;
  align-items: last baseline;
  justify-content: center;
  gap: clamp(0.45rem, 3.2cqi, 1.5rem);
}
.inv-date__day {
  font-family: var(--inv-display);
  font-weight: 700;
  font-size: clamp(3.2rem, 34cqi, 12.5rem);

  line-height: 1;
  margin-top: -0.2em;
  letter-spacing: -0.03em;
  color: var(--inv-ink);
}
.inv-date__names {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: start;
  gap: 0.45em;
  font-family: var(--inv-body);
  font-weight: 500;
  font-size: clamp(0.7rem, 4cqi, 1.35rem);
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--inv-ink);
}
.inv-date__weekday { color: var(--inv-ink-muted); }
.inv-date__year {
  font-family: var(--inv-body);
  font-weight: 500;
  font-size: clamp(0.66rem, 3.4cqi, 1.1rem);
  letter-spacing: 0.32em;
  padding-inline-start: 0.32em;
  color: var(--inv-ink-muted);
}

.inv-date__rule {
  display: block;
  width: 40%;
  height: 1px;
  margin-top: clamp(0.3rem, 2.4cqi, 1.2rem);
  background: var(--inv-accent);
}
.inv-canvas--thumb .inv-date__day { font-size: clamp(2rem, 34cqi, 5rem); color: var(--inv-ink); }
.inv-canvas--thumb .inv-date__names { font-size: clamp(0.42rem, 4.4cqi, 0.8rem); color: var(--inv-ink); }
.inv-canvas--thumb .inv-date__year { font-size: clamp(0.38rem, 3.6cqi, 0.66rem); color: var(--inv-ink-muted); }

.inv-art--scroll { align-items: center; text-align: center; padding-inline: clamp(1.5rem, 9cqi, 5rem); gap: calc(var(--inv-gap) * 1.15); }
.inv-scroll__band { position: relative; width: 100%; height: clamp(2.25rem, 11cqi, 4.5rem); overflow: hidden; flex: 0 0 auto; }
.inv-scroll__band--top { border-bottom: 2px solid var(--inv-accent); }
.inv-scroll__band--foot { border-top: 2px solid var(--inv-accent); }
.inv-art--scroll .inv-when { width: 100%; }
.inv-art--scroll .inv-when__cell { align-items: center; text-align: center; }
.inv-art--scroll .inv-details { justify-content: center; }
.inv-art--scroll .inv-desc { max-width: 44ch; }

.inv-canvas[data-language="playful"] {
  --inv-party-fill-a: #FFCE4A;
  --inv-party-fill-b: #FB6E2E;

  --inv-party-wedge: color-mix(in oklab, var(--inv-card) 68%, var(--inv-party-teal));
  --inv-party-teal: #62D8F2;
}

.inv-canvas[data-language="playful"] .inv-scene {
  background-image:
    var(--inv-scene-glows, none),
    linear-gradient(200deg,
      color-mix(in oklab, var(--inv-ground) 86%, var(--inv-accent-soft)) 0%,
      var(--inv-ground) 50%,
      color-mix(in oklab, var(--inv-ground) 84%, var(--inv-card)) 100%);
}

.inv-party__wedge {
  position: absolute;
  z-index: -1;
  pointer-events: none;
  left: -30cqi;
  bottom: -38cqi;
  width: 190cqi;
  height: 80cqi;
  border-radius: 40cqi;
  rotate: var(--inv-wedge-angle, -16deg);
  transform-origin: 20% 100%;
  background: linear-gradient(90deg, var(--inv-party-wedge, var(--inv-card)) 0%, color-mix(in oklab, var(--inv-party-wedge, var(--inv-card)) 55%, transparent) 100%);
}

.inv-art--party { align-items: stretch; text-align: left; }
.inv-canvas--page .inv-art--party {
  padding-inline: max(var(--inv-pad), var(--inv-gutter));
  padding-block: max(var(--inv-pad), var(--inv-band));
}

.inv-party__art {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: end;
  min-height: clamp(11rem, 62cqi, 22rem);
  pointer-events: none;
}
.inv-canvas--page .inv-party__art { margin-inline: min(0px, calc(var(--inv-pad) - var(--inv-gutter))); }

.inv-party__art[data-numeral="none"] { grid-template-columns: 1fr; }
.inv-party__art[data-numeral="none"] .inv-party__balloons { justify-self: start; width: clamp(9rem, 54cqi, 18rem); margin-right: 0; }

.inv-party__numeral {
  position: relative;
  z-index: 2;
  display: grid;
  align-self: end;
  margin-left: -0.02em;
  font-family: var(--inv-display);
  font-weight: 800;
  font-size: clamp(9rem, 64cqi, 22rem);
  line-height: 0.82;
  color: var(--inv-ink);
  rotate: -6deg;
  transform-origin: 40% 60%;
  filter: drop-shadow(0 0.04em 0.06em color-mix(in oklab, var(--inv-ink) 18%, transparent));
  user-select: none;
}
.inv-party__numeral[data-digits="2"] { font-size: clamp(6rem, 46cqi, 15rem); color: var(--inv-ink); }
.inv-party__numeral[data-digits="3"] { font-size: clamp(4.5rem, 34cqi, 11rem); color: var(--inv-ink); }
.inv-party__numeral > span { grid-area: 1 / 1; display: block; position: relative; }
.inv-party__numeral-shadow { z-index: 0; color: var(--inv-accent); transform: translate(0.06em, 0.05em); }
.inv-party__numeral-stroke { z-index: 1; -webkit-text-stroke: 0.07em var(--inv-ground); color: var(--inv-ground); }
.inv-party__numeral-fill { z-index: 2; color: var(--inv-party-fill-a, var(--inv-accent)); }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .inv-party__numeral-fill {
    background-image: linear-gradient(165deg, var(--inv-party-fill-a) 5%, var(--inv-party-fill-b) 80%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
}

.inv-party__balloons {
  position: relative;
  z-index: 1;
  justify-self: end;
  align-self: end;
  width: clamp(7rem, 36cqi, 15rem);
  height: auto;
  margin-right: -4%;
  transform-origin: 50% 100%;
}

.inv-party__confetti {
  position: absolute;
  left: -6%;
  top: -8%;
  width: 112%;
  height: 104%;
  z-index: 0;
  overflow: visible;
}

.inv-party__sparkle { position: absolute; z-index: 3; width: clamp(1.4rem, 7cqi, 2.6rem); height: auto; }
.inv-party__sparkle--a { left: -4%; top: 2%; }
.inv-party__sparkle--b { left: 44%; top: -10%; width: clamp(1rem, 5cqi, 1.8rem); }

.inv-art--party .inv-column { align-items: flex-start; text-align: left; max-width: 34rem; }
.inv-art--party .inv-title { max-width: 12ch; }
.inv-art--party .inv-when { grid-template-columns: 1fr; gap: 0.5em; width: 100%; }
.inv-art--party .inv-when__cell { align-items: flex-start; text-align: left; }
.inv-canvas[data-language="playful"] .inv-when__value { font-weight: 700; color: var(--inv-ink); }
.inv-canvas[data-language="playful"] .inv-host { font-family: var(--inv-display); font-weight: 500; color: var(--inv-ink); max-width: 26ch; }
.inv-art--party .inv-details { justify-content: flex-start; text-align: left; }
.inv-art--party .inv-desc { text-align: left; max-width: 46ch; }

@container (min-width: 40rem) {
  .inv-canvas--page .inv-art--party {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 5fr);
    grid-template-rows: auto auto;
    column-gap: 4cqi;
    align-items: center;
    padding-inline: max(var(--inv-pad), 7%);
    --inv-title: clamp(1.55rem, 8.4cqi, 4.8rem);
  }

  .inv-canvas--page .inv-art--party[data-title="long"] { --inv-title: clamp(1.55rem, 7cqi, 2.9rem); }
  .inv-canvas--page .inv-art--party > .inv-party__art {
    grid-column: 1;
    grid-row: 1;
    min-height: 0;
    margin-inline: 0;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    align-items: start;
  }
  .inv-canvas--page .inv-art--party > .inv-column { grid-column: 2; grid-row: 1; }
  .inv-canvas--page .inv-art--party > .inv-slot { grid-column: 1 / -1; grid-row: 2; }
  .inv-canvas--page .inv-art--party .inv-party__balloons { grid-row: 1; justify-self: end; width: clamp(6rem, 17cqi, 18rem); margin-right: 0; margin-bottom: -6%; }
  .inv-canvas--page .inv-art--party .inv-party__numeral { grid-row: 2; justify-self: start; font-size: clamp(9rem, 30cqi, 22rem); color: var(--inv-ink); }
  .inv-canvas--page .inv-art--party .inv-party__numeral[data-digits="2"] { font-size: clamp(6rem, 22cqi, 15rem); color: var(--inv-ink); }
  .inv-canvas--page .inv-art--party .inv-party__numeral[data-digits="3"] { font-size: clamp(4.5rem, 16cqi, 11rem); color: var(--inv-ink); }
  .inv-canvas--page .inv-art--party .inv-party__art[data-numeral="none"] .inv-party__balloons { justify-self: center; width: clamp(9rem, 26cqi, 18rem); margin-bottom: 0; }

  .inv-canvas--page .inv-art--party .inv-party__sparkle--a { left: -3%; top: 44%; }
  .inv-canvas--page .inv-art--party .inv-party__sparkle--b { left: 46%; top: 36%; }

  .inv-canvas--page .inv-art--party .inv-party__wedge { left: -20cqi; bottom: -30cqi; width: 170cqi; height: 46cqi; border-radius: 23cqi; }
}
@container (min-width: 52rem) {
  .inv-canvas--page .inv-art--party {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 6cqi;
    --inv-title: clamp(2rem, 11cqi, 4.8rem);
  }
  .inv-canvas--page .inv-art--party[data-title="long"] { --inv-title: clamp(1.8rem, 8cqi, 3.2rem); }

  .inv-canvas--page .inv-art--party > .inv-party__art { grid-template-columns: auto 1fr; grid-template-rows: auto; align-items: end; }
  .inv-canvas--page .inv-art--party .inv-party__balloons { grid-row: auto; grid-column: 2; justify-self: end; align-self: end; width: clamp(7rem, 17cqi, 18rem); margin-right: -4%; margin-bottom: 0; }
  .inv-canvas--page .inv-art--party .inv-party__numeral { grid-row: auto; grid-column: 1; font-size: clamp(14rem, 34cqi, 30rem); color: var(--inv-ink); }
  .inv-canvas--page .inv-art--party .inv-party__numeral[data-digits="2"] { font-size: clamp(9rem, 24cqi, 20rem); color: var(--inv-ink); }
  .inv-canvas--page .inv-art--party .inv-party__numeral[data-digits="3"] { font-size: clamp(6.5rem, 17cqi, 14rem); color: var(--inv-ink); }
  .inv-canvas--page .inv-art--party .inv-party__art[data-numeral="none"] { grid-template-columns: 1fr; }
  .inv-canvas--page .inv-art--party .inv-party__art[data-numeral="none"] .inv-party__balloons { grid-column: 1; justify-self: center; width: clamp(10rem, 28cqi, 20rem); margin-right: 0; }
  .inv-canvas--page .inv-art--party .inv-party__sparkle--a { left: -4%; top: 2%; }
  .inv-canvas--page .inv-art--party .inv-party__sparkle--b { left: 44%; top: -10%; }
}

.inv-canvas--thumb .inv-art--party { padding: clamp(0.6rem, 6cqi, 1.4rem); justify-content: center; }
.inv-canvas--thumb .inv-party__art { min-height: 0; grid-template-columns: 1fr; }
.inv-canvas--thumb .inv-party__art .inv-party__balloons { width: 40cqi; margin: 0; justify-self: end; }

.inv-canvas[data-language="playful"] .inv-art--portrait {
  --inv-party-glow: color-mix(in oklab, #FFCE4A 72%, transparent);
  --inv-party-ring: conic-gradient(from 210deg, #62D8F2, #FFCE4A 22%, #FF9866 42%, #6EE2AC 60%, #B9ACF7 80%, #62D8F2);
}

.inv-canvas[data-language="playful"] .inv-portrait__stage { padding: clamp(2.5rem, 12cqi, 3.5rem) 0 clamp(1.75rem, 13cqi, 3.25rem); }

.inv-canvas[data-language="playful"] .inv-portrait__disc { width: min(74cqi, 24rem); container-type: inline-size; }
.inv-canvas[data-language="playful"] .inv-portrait__halo { background: radial-gradient(circle, var(--inv-party-glow) 0%, transparent 64%); }
.inv-canvas[data-language="playful"] .inv-portrait__ring { background: var(--inv-party-ring); }
.inv-canvas[data-language="playful"] .inv-portrait__frame--circle { box-shadow: 0 0 0 clamp(4px, 1.9cqi, 7px) var(--inv-ground); }

.inv-canvas[data-language="playful"] .inv-portrait__confetti { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }

.inv-canvas[data-language="playful"] .inv-party__arc { position: absolute; inset: -30%; width: 160%; height: 160%; z-index: 1; pointer-events: none; overflow: visible; }

.inv-canvas[data-language="playful"] .inv-portrait__disc .inv-party__numeral {
  position: absolute;
  right: -10%;
  bottom: -14.000000000000002%;
  z-index: 2;
  margin: 0;
  align-self: auto;
  font-size: 46cqi;
  line-height: 0.9;
  rotate: -7deg;
  transform-origin: 50% 50%;
  filter: drop-shadow(0 1.2cqi 2.2cqi color-mix(in oklab, var(--inv-ink) 24%, transparent));
  color: var(--inv-ink);
}
.inv-canvas[data-language="playful"] .inv-portrait__disc .inv-party__numeral[data-digits="2"] { font-size: 28.52cqi; color: var(--inv-ink); }
.inv-canvas[data-language="playful"] .inv-portrait__disc .inv-party__numeral[data-digits="3"] { font-size: 23cqi; color: var(--inv-ink); }
.inv-canvas[data-language="playful"] .inv-portrait__disc .inv-party__numeral-shadow { display: none; }
.inv-canvas[data-language="playful"] .inv-portrait__disc .inv-party__numeral-stroke { -webkit-text-stroke: 0.11em var(--inv-ground); }

.inv-canvas[data-language="playful"] .inv-portrait__balloons { position: absolute; left: 50%; bottom: 4%; translate: -50% 0; width: 58%; height: auto; }

.inv-canvas--thumb[data-language="playful"] .inv-portrait__disc { width: 46cqi; }
.inv-canvas--thumb[data-language="playful"] .inv-portrait__stage { padding: 3cqi 0 1.5cqi; }

@container (min-width: 40rem) {
  .inv-canvas--page[data-language="playful"] .inv-art--portrait {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 3cqi;
    align-items: center;
    text-align: left;
    padding-inline: max(var(--inv-pad), 7%);
    --inv-title: clamp(1.55rem, 8.4cqi, 4.8rem);
    --inv-value: clamp(0.95rem, 2.8cqi, 1.15rem);
  }
  .inv-canvas--page[data-language="playful"] .inv-art--portrait[data-title="long"] { --inv-title: clamp(1.55rem, 6.4cqi, 2.9rem); }

  .inv-canvas--page[data-language="playful"] .inv-art--portrait > .inv-portrait__stage { grid-column: 1; grid-row: 1; width: auto; padding: 4cqi 4cqi 5cqi 0; }

  .inv-canvas--page[data-language="playful"] .inv-art--portrait .inv-portrait__disc { width: min(30cqi, 20rem); }
  .inv-canvas--page[data-language="playful"] .inv-art--portrait > .inv-portrait__body { display: contents; }
  .inv-canvas--page[data-language="playful"] .inv-art--portrait .inv-column { grid-column: 2; grid-row: 1; align-items: flex-start; text-align: left; max-width: 34rem; }
  .inv-canvas--page[data-language="playful"] .inv-art--portrait .inv-slot { grid-column: 1 / -1; grid-row: 2; }

  .inv-canvas--page[data-language="playful"] .inv-art--portrait .inv-when { grid-template-columns: 1fr; }
  .inv-canvas--page[data-language="playful"] .inv-art--portrait .inv-when__cell { align-items: flex-start; text-align: left; }
  .inv-canvas--page[data-language="playful"] .inv-art--portrait .inv-details { justify-content: flex-start; text-align: left; }
  .inv-canvas--page[data-language="playful"] .inv-art--portrait .inv-desc { margin-inline: 0; }
}
@container (min-width: 52rem) {
  .inv-canvas--page[data-language="playful"] .inv-art--portrait {
    column-gap: 5cqi;
    --inv-title: clamp(2rem, 11cqi, 4.8rem);
    --inv-value: clamp(0.95rem, calc(var(--inv-scale-secondary, 4cqi) * 1.025), 1.3rem);
  }
  .inv-canvas--page[data-language="playful"] .inv-art--portrait[data-title="long"] { --inv-title: clamp(1.8rem, 8cqi, 3.2rem); }
  .inv-canvas--page[data-language="playful"] .inv-art--portrait .inv-portrait__disc { width: min(42cqi, 24rem); }
}

@media (prefers-reduced-motion: no-preference) {
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-party__wedge { animation: inv-party-slide 450ms 0ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-party__numeral { animation: inv-party-spring 460ms 150ms cubic-bezier(0.34, 1.56, 0.64, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-party__balloons { animation: inv-party-rise 500ms 220ms cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-party__confetti { animation: inv-enter-fade 300ms 350ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-party__sparkle { animation: inv-enter-fade 250ms 450ms ease-out backwards; }
  .inv-canvas--entrance[data-entrance~="play"][data-language="playful"] .inv-party__arc { animation: inv-enter-fade 360ms 200ms ease-out backwards; }
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-party__wedge,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-party__numeral,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-party__balloons,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-party__confetti,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-party__sparkle,
  html[data-js="on"] .inv-canvas--entrance[data-entrance="pending"][data-language="playful"] .inv-party__arc { animation: inv-hold 900ms step-end backwards; }
}
@keyframes inv-party-slide {
  from { opacity: 0; transform: translate3d(0, 10cqi, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes inv-party-spring {
  0% { opacity: 0; transform: scale(0.2); }
  70% { opacity: 1; transform: scale(1.07); }
  100% { opacity: 1; transform: none; }
}
@keyframes inv-party-rise {
  from { opacity: 0; transform: translate3d(0, 28px, 0); }
  to { opacity: 1; transform: none; }
}

.inv-canvas--page[data-language="craft"] .inv-scene {
  background-image:
    repeating-linear-gradient(52deg, color-mix(in oklab, var(--inv-ink) 4%, transparent) 0 1px, transparent 1px 7px),
    var(--inv-scene-glows, none),
    var(--inv-scene-ground, none);
}

.inv-canvas--page[data-language="craft"] .inv-scene::before {
  background: radial-gradient(ellipse 84% 76% at 50% 44%, transparent 52%, color-mix(in srgb, var(--inv-ink) calc(var(--inv-vignette) * 100%), transparent) 100%);
}

.inv-canvas--page[data-language="craft"] { --inv-mat-pad: clamp(0.95rem, 5cqi, 2.3rem); }
.inv-canvas--page[data-language="craft"] .inv-column { padding: var(--inv-mat-pad); }
.inv-canvas[data-language="craft"] .inv-column,
.inv-canvas[data-language="craft"] .inv-cardbox {
  border-radius: 0;
  border: 1px solid var(--inv-rule);
}

.inv-canvas[data-language="craft"] .inv-cardbox { position: relative; }
.inv-canvas--page[data-language="craft"] .inv-column::before,
.inv-canvas--page[data-language="craft"] .inv-cardbox::before {
  content: "";
  position: absolute;
  inset: clamp(3px, 1.2cqi, 9px);
  border: 1px solid color-mix(in srgb, var(--inv-accent) 30%, transparent);
  pointer-events: none;
}

.inv-canvas[data-language="craft"] .inv-frame__rule::before,
.inv-canvas--page[data-language="craft"] .inv-frame__rule .inv-column::before { display: none; }

.inv-canvas--page[data-language="craft"] .inv-divider--motif {
  width: clamp(6rem, 42cqi, 14rem);
  align-self: flex-start;
  margin-inline: calc(var(--inv-mat-pad) * -2.2) auto;

  filter: opacity(0.72);
}

.inv-canvas--page[data-language="craft"] .inv-field {
  -webkit-mask-image: linear-gradient(to right, rgb(0 0 0) 0 15%, rgb(0 0 0 / 0.28) 50%, rgb(0 0 0) 85% 100%);
  mask-image: linear-gradient(to right, rgb(0 0 0) 0 15%, rgb(0 0 0 / 0.28) 50%, rgb(0 0 0) 85% 100%);
}

.inv-story {
  position: relative;
  width: 100%;
  background: var(--inv-ground);
  color: var(--inv-ink);
  font-family: var(--inv-body, inherit);

  --inv-rule: color-mix(in srgb, var(--inv-accent) 55%, transparent);
  --inv-scrim: color-mix(in oklab, var(--inv-ground) 92%, transparent);
}
.inv-story__scene {
  position: relative;
  container-type: inline-size;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 4cqi, 2rem);
  padding: clamp(2rem, 9cqi, 4.5rem) clamp(1.25rem, 7cqi, 3.25rem);
  min-height: 72svh;

  content-visibility: auto;
  contain-intrinsic-size: auto 72svh;
}

.inv-story__scene--hero {
  padding: 0;
  min-height: 0;
  gap: 0;
  content-visibility: visible;
  contain-intrinsic-size: none;
}
.inv-story__scene--rsvp {
  content-visibility: visible;
  contain-intrinsic-size: none;
}

.inv-story__scene:not(.inv-story__scene--hero) {
  background-image: radial-gradient(
    ellipse 92% 55% at 80% 6%,
    color-mix(in oklab, var(--inv-accent-soft) 26%, transparent) 0%,
    transparent 70%
  );
}
.inv-story__scene:not(.inv-story__scene--hero):nth-of-type(even) {
  background-image: radial-gradient(
    ellipse 96% 60% at 14% 96%,
    color-mix(in oklab, var(--inv-accent) 12%, transparent) 0%,
    transparent 72%
  );
}

.inv-story__words,
.inv-story__reply {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 34rem;
  display: flex;
  flex-direction: column;
  gap: clamp(0.9rem, 4cqi, 1.6rem);
}
.inv-story__words {
  background: var(--inv-scrim);
  border-radius: clamp(0.5rem, 2cqi, 1rem);
  padding: clamp(1.25rem, 6cqi, 2.5rem);
}
.inv-story__block { display: flex; flex-direction: column; gap: 0.35rem; min-width: 0; }
.inv-story__label {
  font-family: var(--inv-body, inherit);
  font-size: var(--inv-label, 0.72rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--inv-accent, currentColor);
}

.inv-story__sentence {
  font-family: var(--inv-display, inherit);
  font-weight: var(--inv-display-weight, 700);
  font-size: clamp(1.35rem, 6.5cqi, 2.4rem);
  line-height: 1.18;

  color: var(--inv-ink);
  text-wrap: pretty;
  margin: 0;

  overflow-wrap: anywhere;
}

.inv-story__label[lang]:not([lang="en"]) {
  letter-spacing: normal;
  text-transform: none;
}
.inv-story__line {
  font-size: var(--inv-body-size, 1rem);
  line-height: 1.6;
  color: var(--inv-ink-muted, currentColor);
  margin: 0;
  overflow-wrap: anywhere;
}

.inv-story__mark {
  position: absolute;
  z-index: 0;
  inset-inline-end: -6cqi;
  inset-block-start: 6cqi;
  width: min(46cqi, 15rem);
  aspect-ratio: 1;
  pointer-events: none;
  filter: opacity(0.16);
}
.inv-story__mark > svg { display: block; width: 100%; height: 100%; }

.inv-story__cue {
  position: absolute;
  z-index: 1;
  inset-block-end: clamp(1rem, 4cqi, 2rem);
  inset-inline-start: 50%;
  width: 0.85rem;
  height: 0.85rem;
  translate: -50% 0;
  border-right: 2px solid var(--inv-accent, currentColor);
  border-bottom: 2px solid var(--inv-accent, currentColor);
  rotate: 45deg;
  filter: opacity(0.55);
}

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .inv-story__reveal {
      animation-name: inv-story-rise;
      animation-duration: auto;
      animation-timing-function: linear;
      animation-fill-mode: backwards;
      animation-timeline: view();
      animation-range: entry 6% entry 44%;
    }
  }

  @supports not (animation-timeline: view()) {
    html[data-js="on"] .inv-story__reveal { animation: inv-story-hold 900ms step-end backwards; }
    html[data-js="on"] .inv-story__reveal[data-shown] {
      animation: none;
      transition: opacity 480ms cubic-bezier(0.2, 0.7, 0.2, 1), transform 480ms cubic-bezier(0.2, 0.7, 0.2, 1);
    }
    html[data-js="on"] .inv-story__reveal[data-shown="0"] { opacity: 0; transform: translate3d(0, 10px, 0); }
    html[data-js="on"] .inv-story__reveal[data-shown="1"] { opacity: 1; transform: none; }
  }
}
@keyframes inv-story-rise {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes inv-story-hold {
  from { opacity: 0; }
  to { opacity: 1; }
}

.inv-burst {
  position: absolute;

  inset: 0;

  z-index: -1;
  display: block;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  overflow: clip;
  overflow-clip-margin: 10px;
}
.inv-burst__paper { position: absolute; inset: 0; width: 100%; height: 100%; }
.inv-burst__spark { position: absolute; width: clamp(1rem, 4cqi, 1.6rem); height: auto; }
.inv-burst__spark--left { left: 6%; top: 12%; }
.inv-burst__spark--right { right: 8%; top: 26%; }

.inv-burst rect, .inv-burst circle { fill: var(--inv-accent, currentColor); }
.inv-burst rect:nth-of-type(3n+2), .inv-burst circle:nth-of-type(3n+2) { fill: var(--inv-accent-soft, currentColor); }
.inv-burst rect:nth-of-type(3n), .inv-burst circle:nth-of-type(3n) { fill: color-mix(in oklab, var(--inv-accent, currentColor) 55%, var(--inv-card, transparent)); }
.inv-burst path { stroke: var(--inv-accent, currentColor); }
.inv-burst__paper--far { opacity: 0.55; }
@media (prefers-reduced-motion: no-preference) {
  .inv-burst { animation: inv-burst-layer 1400ms ease-out; }
  .inv-burst__paper--near { animation: inv-burst-near 1400ms cubic-bezier(0.2, 0.7, 0.2, 1); }
  .inv-burst__paper--far { animation: inv-burst-far 1400ms cubic-bezier(0.2, 0.7, 0.2, 1); }
  .inv-burst__spark { animation: inv-burst-spark 980ms ease-out; }
}
@keyframes inv-burst-layer {
  0% { opacity: 0; }
  12% { opacity: 1; }
  70% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes inv-burst-near {
  from { transform: scale(0.35); }
  to { transform: scale(1.18); }
}
@keyframes inv-burst-far {
  from { transform: scale(0.5) rotate(-6deg); }
  to { transform: scale(1.5) rotate(4deg); }
}
@keyframes inv-burst-spark {
  0% { opacity: 0; transform: scale(0.2); }
  40% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0; transform: scale(0.9); }
}

@media (min-width: 48rem) {
  .inv-story__scene { min-height: 78svh; padding-block: clamp(3rem, 8vh, 6rem); }
  .inv-story__scene--hero { min-height: 0; padding-block: 0; }
}

.inv-canvas :focus-visible:not([data-testid="rsvp-form"] *) {
  outline: 2px solid var(--inv-ink, currentColor);
  outline-offset: 2px;
  border-radius: 3px;
}

.inv-art--bleed {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0;
  min-height: 100%;
}
.inv-bleed__mat { flex: 1 1 auto; min-height: 40cqi; }
.inv-bleed__riser {
  flex: 0 0 auto;
  height: clamp(2rem, 14cqi, 6rem);
  background: linear-gradient(180deg, transparent 0%, var(--inv-ground) 100%);
  pointer-events: none;
}

.inv-bleed__plaque {
  position: relative;
  flex: 0 0 auto;
  background: var(--inv-ground);
}
.inv-canvas--page .inv-bleed__plaque {
  padding-inline: max(var(--inv-pad), var(--inv-gutter));
  padding-block: max(clamp(1rem, 5cqi, 2.25rem), var(--inv-band));
}
.inv-canvas--thumb .inv-bleed__riser { height: clamp(1rem, 10cqi, 2.5rem); }
.inv-canvas--thumb .inv-bleed__plaque { padding: var(--inv-pad); }

