/* V2030 reference world: cool sea, ivory type, firelight from the lower right.
   All new worlds implement these tokens; product controls retain their logic. */
html[data-ambient-theme="hochzeit"] {
  --ambient-primary: #edb578;
  --ambient-secondary: #7195a9;
  --ambient-spark: #ffe1b9;
  --ambient-grade-warm: #d79c44;
  --ambient-grade-cool: #3b607b;
  --ambient-opacity: calc(.24 * var(--ambient-glow-strength));
  --ambient-glow-strength: 1.3;
  --ambient-radius: 42%;
  --ambient-speed: 23s;
  --ambient-position-x: 78%;
  --ambient-position-y: 82%;
  --surface-opacity: 96%;
  --motion-speed: 260ms;
  --particle-intensity: .13;
  --ambient-background: #111820;
  --ambient-surface: #1d252c;
  --ambient-text: #fff4e5;
  --ambient-muted: #cec5b9;
  --ambient-line: #535451;
  --ambient-ease: cubic-bezier(.16,1,.3,1);
  --occasion-bg: var(--ambient-background);
  --occasion-paper: var(--ambient-surface);
  --occasion-ink: var(--ambient-text);
  --occasion-muted: var(--ambient-muted);
  --occasion-line: var(--ambient-line);
  --occasion-accent: #ebc59b;
  --occasion-onaccent: #24201b;
  --occasion-ornament: var(--ambient-primary);
  scrollbar-color: var(--ambient-line) var(--ambient-background);
}
html[data-ambient-theme] ::selection { background: #ebc59b; color: #24201b; }
html[data-ambient-theme] :is(a,button,input,select,textarea,summary):focus-visible { outline: 2px solid var(--ambient-primary); outline-offset: 5px; }
html[data-ambient-theme] :is(input,textarea) { caret-color: var(--accent); }
html[data-ambient-theme] a { text-underline-offset: .22em; }
/* Bridge legacy inline palette values only on marketing. Private saved designs
   keep their own variables and are deliberately excluded from this adapter. */
html.sales-page[data-marketing="true"][data-ambient-theme] {
  --bg: var(--ambient-background)!important; --paper: var(--ambient-surface)!important;
  --ink: var(--ambient-text)!important; --muted: var(--ambient-muted)!important;
  --accent: var(--occasion-accent)!important; --onaccent: var(--occasion-onaccent)!important;
  --line: var(--ambient-line)!important; --soft: var(--ambient-surface)!important;
}

/* Serverseitig gelieferte Szene bis zum Skriptstart (src/public-pages.js): Bildausschnitt wie in ambient-config.js. */
html[data-ambient-theme="hochzeit"] .ambient-static { --scene-focal-point: center 60%; --scene-mobile-focal-point: center center; }
html[data-ambient-theme="party"] .ambient-static { --scene-focal-point: center 54%; --scene-mobile-focal-point: center center; }
html[data-ambient-theme="jga"] .ambient-static { --scene-focal-point: center 52%; --scene-mobile-focal-point: center center; }
html[data-ambient-theme="event"] .ambient-static { --scene-focal-point: center 58%; --scene-mobile-focal-point: center center; }

/* 1 media, 2 shade, 3 grading, 4 light, 5 sparse sparks. Content sits above. */
.ambient-host { isolation: isolate; }
.ambient-scene { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; background: var(--ambient-background); }
.ambient-scene > div { position: absolute; inset: 0; }
.ambient-media { transform: translate3d(0,var(--ambient-scroll-offset,0px),0) scale(1.055); }
html[data-marketing="true"] .ambient-media { transform: var(--theme-scene-transform,translate3d(0,var(--ambient-scroll-offset,0px),0) scale(1.055)); opacity:var(--theme-scene-opacity,1); }
html[data-marketing="true"] .ambient-media { filter: brightness(var(--theme-media-brightness,1)); }
.ambient-media :is(picture,img,video) { display: block; width: 100%; height: 100%; }
.ambient-media picture[hidden] { display: none; }
.ambient-media img,.ambient-media video { object-fit: cover; object-position: var(--scene-focal-point,center); }
.ambient-media video { position: absolute; inset: 0; opacity: 0; transition: opacity 900ms ease; }
.ambient-media video.is-playing { opacity: 1; }
.ambient-shade { background: linear-gradient(90deg,#0b121ad9 0%,#0b121a96 35%,#0b121a0a 72%),linear-gradient(0deg,var(--ambient-background),transparent 24%,transparent 85%,#0b121a45); }
html[data-marketing="true"] .ambient-shade { opacity:var(--theme-shade-opacity,1); }
html[data-marketing="true"] .ambient-shade::after { content:"";position:absolute;inset:0;background:var(--theme-tint-color,#000000);opacity:var(--theme-tint-alpha,0); }
html[data-marketing="true"][data-site-motion="on"] :is(.ambient-light,.ambient-fx) { opacity:0!important;animation:none!important; }
.ambient-grade { background: linear-gradient(135deg,color-mix(in srgb,var(--ambient-grade-cool) 11%,transparent),transparent 48%,color-mix(in srgb,var(--ambient-grade-warm) 13%,transparent)); mix-blend-mode: soft-light; }
.ambient-light { background: radial-gradient(ellipse var(--ambient-radius) 32% at var(--ambient-position-x) var(--ambient-position-y),color-mix(in srgb,var(--ambient-primary) 33%,transparent),transparent 76%),radial-gradient(ellipse 55% 26% at 8% 34%,color-mix(in srgb,var(--ambient-secondary) 14%,transparent),transparent 78%); opacity: var(--ambient-opacity); transform-origin: var(--ambient-position-x) var(--ambient-position-y); animation: ambient-breathe var(--ambient-speed) ease-in-out infinite alternate; }
.ambient-fx { background: radial-gradient(circle at 73% 71%,var(--ambient-spark) 0 1px,transparent 2px),radial-gradient(circle at 77% 66%,var(--ambient-spark) 0 1px,transparent 2px),radial-gradient(circle at 74% 59%,var(--ambient-spark) 0 1px,transparent 2px); opacity: var(--particle-intensity); animation: ambient-embers 29s ease-in-out infinite alternate; }
@keyframes ambient-breathe { 0%,100% { opacity: calc(var(--ambient-opacity) * .62); transform: scale(.97) translate3d(-.5%,.4%,0); } 43% { opacity: var(--ambient-opacity); transform: scale(1.04) translate3d(.8%,-.4%,0); } 72% { opacity: calc(var(--ambient-opacity) * .82); transform: scale(1.01); } }
@keyframes ambient-embers { to { transform: translate3d(-8px,-22px,0); opacity: calc(var(--particle-intensity) * .45); } }

html[data-ambient-theme] .homepage-hero-v2.ambient-host { min-height: 780px; height: min(900px,calc(100svh - 76px)); padding: 0!important; background-image: none; }
html[data-ambient-theme] .homepage-hero-v2::before,html[data-ambient-theme] .homepage-hero-v2::after { content: none; }
html[data-ambient-theme] .homepage-hero-v2 .v2-hero-copy { position: absolute; top: 11%; left: max(6%,calc((100% - 1180px)/2)); width: min(47%,570px); margin: 0; text-align: left; text-shadow: 0 3px 24px #09101888; }
html[data-ambient-theme] #start .v2-hero-copy h1 { font-size: clamp(38px,4.2vw,60px); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; margin-bottom: 18px; }
html[data-ambient-theme] .homepage-theme .v2-hero-copy h1 em { color: var(--occasion-accent)!important; }
html[data-ambient-theme] .homepage-theme .eyebrow { display: none; }
html[data-ambient-theme] .v2-hero-summary { max-width: 42ch; margin: 0; font-size: clamp(14px,1.15vw,16px); font-weight: 400; line-height: 1.6; color: var(--ambient-text)!important; }
/* ambient-engine.js ersetzt die Umbrüche durch Leerzeichen; vor dem Skriptstart gilt dasselbe Umbruchbild. */
html[data-ambient-theme] .homepage-hero-v2 .v2-hero-summary br { display: none; }
html[data-ambient-theme] .v2-hero-link { margin-top: 18px; padding: 7px 15px; min-height: 44px; border: 0; border-radius: 9px; background: var(--occasion-accent); color: var(--occasion-onaccent)!important; font-size: 13px; font-weight: 500; text-shadow: none; box-shadow: inset 0 1px 0 #fff6,0 8px 24px #080c144d; }
html[data-ambient-theme] .homepage-hero-v2 .v2-arrival-stage { position: absolute; width: 390px; height: 330px; bottom: 54px; left: max(3%,calc((100% - 1240px)/2)); margin: 0; overflow: hidden; }
html[data-ambient-theme] .homepage-hero-v2 .v2-phone-anchor { top: 50%; left: 50%; }
html[data-ambient-theme] .homepage-hero-v2 .v2-device { width: 144px; border-radius: 25px; padding: 5px; }
html[data-ambient-theme] .homepage-hero-v2 .v2-device-screen { border-radius: 19px; }
html[data-ambient-theme] .homepage-hero-v2 .v2-device::before { top: 8px; height: 10px; }
html[data-ambient-theme] .homepage-hero-v2 .v2-flight-photo { width: 52px; will-change: auto; border-color: #d6b78960; box-shadow: 0 10px 24px #080d1799; }
html[data-ambient-theme] .homepage-hero-v2 .v2-flight-photo:nth-child(n+7) { display: none; }
html[data-ambient-theme] .homepage-hero-v2 .is-flight-ready .v2-flight-photo { animation-name: ambient-photo-arrival; }
@keyframes ambient-photo-arrival { 0% { opacity: 0; transform: translate3d(0,0,0) rotate(var(--flight-rotation)) scale(.8); } 14%,65% { opacity: var(--flight-peak,.24); } 100% { opacity: 0; transform: translate3d(var(--flight-dx),var(--flight-dy),0) rotate(0) scale(.12); } }
html[data-ambient-theme] .homepage-hero-v2 .v2-album-tag { top: auto; bottom: 4px; }
.ambient-controls { position: absolute; z-index: 5; inset: auto max(6%,calc((100% - 1180px)/2)) 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.ambient-scroll,.ambient-toggle { min-height: 44px; color: var(--ambient-text)!important; font-family: inherit; font-size: 13px; line-height: 1.4; background: #111820b3; border: 1px solid #d6b78955; border-radius: 12px; padding: 10px 14px; text-decoration: none; }
.ambient-scroll { display: inline-flex; align-items: center; gap: 12px; }
.ambient-scroll::before { content: ''; height: 22px; width: 1px; background: linear-gradient(transparent,var(--ambient-primary)); }
.ambient-toggle { cursor: pointer; font-size: 12px; }
.ambient-toggle[hidden] { display: none; }

/* Light is directional: a reflected rim, a warm edge, a pool at the close. */
html[data-ambient-theme] .homepage-theme .sales-section { padding-block: clamp(36px,5vw,72px); border-top-color: color-mix(in srgb,var(--ambient-primary) 22%,var(--ambient-background)); }
html[data-ambient-theme] .homepage-theme h2 { font-size: clamp(26px,3vw,40px); font-weight: 400; letter-spacing: -.025em; text-wrap: balance; line-height: 1.16; }
html[data-ambient-theme] .homepage-theme h3 { font-size: 20px; font-weight: 400; letter-spacing: -.015em; }
html[data-ambient-theme] .homepage-theme .v2-feature-row p { font-size: 14px; line-height: 1.5; }
html[data-ambient-theme] .v2-story-device figcaption { color: var(--ambient-muted); font-size: 12px; }
html[data-ambient-theme] .homepage-theme .v2-theme-selector { padding-block: 32px; }
html[data-ambient-theme] .v2-theme-pill.is-selected { background: #ebc59b16; border-color: #ebc59b70; box-shadow: inset 0 1px 0 #ebc59b45; }
html[data-ambient-theme] .v2-story-device-body { filter: drop-shadow(12px 24px 35px #050b12); }
html[data-ambient-theme] .v2-feature-row { border-color: var(--ambient-line); }
html[data-ambient-theme] .v2-feature-row > span { display: none; }
html[data-ambient-theme] .v2-feature-row { grid-template-columns: 1fr; }
html[data-ambient-theme] .v2-step-grid li { background: linear-gradient(135deg,#edb5780b,transparent 60%),var(--ambient-surface); border-color: transparent; box-shadow: inset 0 1px 0 #edb57830; }
html[data-ambient-theme] .v2-package-slide[data-position="active"] { background: radial-gradient(ellipse at 95% 100%,#edb57812,transparent 65%),var(--ambient-surface); border-color: var(--ambient-line); }
html.sales-page[data-ambient-theme] .homepage-theme :is(.v2-package-action,.contact-invite .button) { background: var(--occasion-accent); color: var(--occasion-onaccent)!important; border-radius: 9px; min-height: 44px; padding: 7px 15px; font-size: 13px; font-weight: 500; }
html[data-ambient-theme] .homepage-theme .contact-invite { background: radial-gradient(ellipse 80% 80% at 80% 100%,#edb5781c,transparent 78%); }
html[data-ambient-theme] :is(.v2-hero-link,.v2-package-action,.ambient-toggle,.v2-theme-pill) { transition: background-color var(--motion-speed) ease,color var(--motion-speed) ease,transform var(--motion-speed) var(--ambient-ease); }
@media(hover:hover) {
  html[data-ambient-theme] :is(.v2-hero-link,.v2-package-action):hover { background: #f7d7af; transform: translateY(-2px); }
  html[data-ambient-theme] .ambient-toggle:hover { background: #26333d; }
  html[data-ambient-theme] .v2-feature-row:hover { background: linear-gradient(90deg,transparent,#edb57808); }
}

html[data-event-theme][data-ambient-theme] body > .ambient-scene { position: fixed; z-index: -1; }
html[data-event-theme][data-ambient-theme] body::before,html[data-event-theme][data-ambient-theme] body::after { content: none; }
html[data-event-theme][data-ambient-theme] body > .wedding-art { display: none; }
html[data-event-theme][data-ambient-theme] .ambient-shade { background: linear-gradient(#111820b8,#111820ec 85%); }
html[data-event-theme][data-ambient-theme] .ambient-controls { position: relative; inset: auto; justify-content: center; padding: 8px 16px 90px; }
html[data-event-theme][data-ambient-theme] :is(.panel,.event-heading,.guestbook-panel,.owner-dashboard) { background: color-mix(in srgb,var(--event-theme-paper) var(--surface-opacity),transparent); box-shadow: inset 0 1px 0 color-mix(in srgb,var(--event-theme-ornament) 26%,transparent); }
html[data-event-theme][data-ambient-theme] .media { box-shadow: 0 8px 24px #050c1626; }
html[data-event-theme][data-ambient-theme] .media :is(img,video) { filter: none; }
html[data-event-theme][data-ambient-theme] :is(.photobooth,.photo-composer) { background: var(--event-theme-paper); }

html[data-ambient-quality="gentle"] { --ambient-opacity: calc(.16 * var(--ambient-glow-strength)); --particle-intensity: 0; }
html[data-ambient-quality="gentle"] .ambient-fx,html[data-ambient-quality="still"] .ambient-fx { display: none; }
html[data-ambient-quality="gentle"] .ambient-media,html[data-ambient-quality="still"] .ambient-media { transform: var(--theme-scene-transform-flat,none); }
html[data-ambient-quality="gentle"] .homepage-hero-v2 .v2-flight-photo:nth-child(n+4) { display: none; }
html[data-ambient-quality="still"] :is(.ambient-light,.ambient-fx,.v2-flight-photo) { animation: none!important; }
html[data-ambient-quality="still"] .v2-flight-photo { display: none; }
.ambient-host[data-ambient-running="false"] :is(.ambient-light,.ambient-fx,.v2-flight-photo) { animation-play-state: paused!important; }
.v2-flight-photo[hidden] { display:none!important; }
html[data-ambient-quality="still"] :is(.homepage-theme,.sales-section) { opacity: 1; transition: none; }
html[data-ambient-quality="still"] { scroll-behavior: auto; }
html[data-ambient-quality="gentle"] .ambient-grade,html[data-ambient-quality="still"] .ambient-grade { mix-blend-mode: normal; opacity: .45; }
html[data-ambient-quality="still"] body>header { backdrop-filter: none; }
html[data-ambient-theme] body>header .public-language { flex: 0 0 auto; margin-left: auto; }

/* Kopfabstand unabhängig davon, ob event-app.js schon data-event-role gesetzt hat (gleicher Wert wie experience-v2.css). */
@media(max-width:600px) {
  html.sales-page[data-marketing="true"][data-ambient-theme] body>header { padding: 10px 12px; gap: 6px; margin-bottom: 8px; }
}
@media(max-width:760px) {
  html.sales-page[data-marketing="true"][data-ambient-theme] body>header { position: static; backdrop-filter: none; }
  html[data-ambient-theme] .homepage-hero-v2.ambient-host { height: auto; min-height: clamp(650px,88svh,760px); }
  html[data-ambient-theme] .homepage-hero-v2 .v2-hero-copy { top: 30px; left: 24px; width: calc(100% - 48px); text-align: left; }
  html[data-ambient-theme] #start .v2-hero-copy h1 { font-size: clamp(30px,8vw,38px); line-height: 1.1; margin-bottom: 15px; }
  html[data-ambient-theme] .v2-hero-summary { max-width: 38ch; font-size: 14px; }
  html[data-ambient-theme] .v2-hero-link { margin-top: 16px; }
  .ambient-media img,.ambient-media video { object-position: var(--scene-mobile-focal-point,center); }
  .ambient-shade { background: linear-gradient(180deg,#0c1520ed 0%,#0c1520b0 25%,#0c15200a 52%,#11182015 72%,var(--ambient-background) 98%); }
  /* Mobile keeps the requested photo-to-phone signature, with three faint
     photos and a smaller device beside, not on top of, the couple. */
  html[data-ambient-theme] .homepage-hero-v2 .v2-arrival-stage { display: block; position: absolute; left: auto; right: -14px; bottom: 70px; width: 220px; height: 245px; opacity: .82; }
  html[data-ambient-theme] .homepage-hero-v2 .v2-device { width: 100px; }
  html[data-ambient-theme] .homepage-hero-v2 .v2-device-screen { border-radius: 16px; }
  html[data-ambient-theme] .homepage-hero-v2 .v2-album-tag { font-size: 10px; white-space: nowrap; }
  html[data-ambient-theme] .homepage-hero-v2 .v2-flight-photo { width: 40px; }
  html[data-ambient-theme] .homepage-hero-v2 .v2-flight-photo:nth-child(n+4) { display: none; }
  .ambient-controls { inset-inline: 20px; bottom: 20px; gap: 8px; }
  .ambient-scroll,.ambient-toggle { padding: 9px 10px; font-size: 11px; }
  html[data-ambient-theme] .public-language { flex: 0 0 auto; margin-left: auto; }
  html[data-ambient-theme] .public-nav { flex-wrap: wrap; }
  html.sales-page[data-ambient-theme] body>header .public-nav-actions { display: grid; grid-template-columns: 1.2fr 1fr; width: 100%; margin: 0; gap: 8px; }
  html.sales-page[data-marketing="true"][data-ambient-theme] body>header .public-nav .public-nav-actions a { min-width: 0; white-space: normal; text-align: center; padding: 6px 10px; line-height: 1.25; font-size: 12px; }
}
@media(prefers-reduced-motion:reduce) {
  html[data-ambient-theme] { scroll-behavior: auto; }
  html[data-ambient-theme] :is(.ambient-light,.ambient-fx,.v2-flight-photo) { animation: none!important; }
  html[data-ambient-theme] .ambient-media { transform: var(--theme-scene-transform-flat,none); }
  html[data-ambient-theme] :is(.v2-hero-link,.v2-package-action):hover { transform: none; }
}

/* V2030 app rhythm. Compact visual weight, full-size touch targets. Saved
   event colours remain authoritative; atmosphere never recolours guest media. */
html.experience-v2[data-event-theme] {
  --app-font: 'Avenir Next','Segoe UI',sans-serif;
  --app-title-size: clamp(20px,4.8vw,26px);
  --app-control-size: 13px;
  --app-control-radius: 8px;
}
html.experience-v2[data-event-theme] body { font-family: var(--app-font); }
html.experience-v2[data-event-theme] :is(button,.button,summary) { font-family: var(--app-font); font-weight: 500; }
html.experience-v2[data-event-theme] :is(input,textarea,select) { font-family: var(--app-font); font-size: 16px; }
html.experience-v2[data-event-theme] :is(.photobooth,.photo-composer,.owner-dashboard) h2 { font-family: var(--app-font); font-size: 20px; font-weight: 500; letter-spacing: -.02em; }
html.experience-v2[data-guest-shell=ready] body>header .brand-name { font-size: 14px; font-weight: 500; }
html.experience-v2[data-guest-shell=ready] .event-heading #eventTitle { font: 500 var(--app-title-size)/1.2 var(--app-font); letter-spacing: -.025em; }
html.experience-v2[data-guest-shell=ready][data-event-role=guest] .event-heading { margin-bottom: 10px; padding-block: 5px 10px; }
html.experience-v2[data-guest-shell=ready] .event-heading #eventDate { font-weight: 400; letter-spacing: .025em; }
html.experience-v2[data-guest-shell=ready] .guest-mini-qr { border-radius: 8px; box-shadow: none; }
html.experience-v2[data-guest-shell=ready] :is(.guest-section-head,.guest-latest-head,.guest-photos-head) h2 { font: 500 14px/1.3 var(--app-font); letter-spacing: -.015em; }
html.experience-v2[data-guest-shell=ready] :is(.guest-section-head,.guest-latest-head) button { min-height: 44px; font-size: 12px; font-weight: 400; }
html.experience-v2[data-guest-shell=ready] .guest-live { margin-bottom: 14px; }
html.experience-v2[data-guest-shell=ready] .guest-live-frame { border-radius: 12px; box-shadow: none; background: color-mix(in srgb,var(--guest-ink) 6%,var(--guest-paper)); }
html.experience-v2[data-guest-shell=ready] .guest-live-frame .guest-live-center { border: 0; border-radius: 5px; box-shadow: 0 8px 18px #0002; }
html.experience-v2[data-guest-shell=ready] .guest-live-frame .guest-live-side { border: 1px solid color-mix(in srgb,var(--guest-paper) 70%,transparent); border-radius: 4px; box-shadow: none; }
html.experience-v2[data-guest-shell=ready] .guest-live-frame .guest-live-empty { color: var(--guest-ink); text-shadow: none; }
html.experience-v2[data-guest-shell=ready] .guest-live-frame .guest-live-empty span { font: 500 18px/1.3 var(--app-font); }
html.experience-v2[data-guest-shell=ready] .guest-live-empty svg { stroke: var(--guest-accent); }
html.experience-v2[data-guest-shell=ready][data-ambient-theme] .guest-atmosphere { display: none; }
html.experience-v2[data-guest-shell=ready] .guest-bottom-nav { min-height: 58px; grid-template-columns: repeat(5,minmax(0,1fr)) 44px; gap: 2px; padding: 4px; border-radius: 14px; background: var(--guest-paper); box-shadow: 0 5px 18px #00000012; backdrop-filter: none; }
html.experience-v2[data-guest-shell=ready] .guest-bottom-nav button { min-width: 44px; min-height: 48px; border-radius: 8px; font-size: 10px; font-weight: 400; }
html.experience-v2[data-guest-shell=ready] .guest-bottom-nav button svg { width: 20px; height: 20px; stroke-width: 1.5; }
html.experience-v2[data-guest-shell=ready] .guest-bottom-nav button[data-target=photo] { width: 100%; min-width: 44px; height: 48px; min-height: 48px; margin: 0; padding: 4px 1px; border: 0; border-radius: 8px; background: color-mix(in srgb,var(--guest-accent) 13%,var(--guest-paper)); color: var(--guest-ink); box-shadow: none; }
html.experience-v2[data-guest-shell=ready] .guest-bottom-nav .guest-heart-action svg { filter: none; stroke-width: 1.5; }
html.experience-v2[data-guest-shell=ready] :is(.guest-more>h2,.guestbook-panel>summary,.guest-sheet h2,#empty h2) { font: 500 20px/1.25 var(--app-font); letter-spacing: -.02em; }
html.experience-v2[data-guest-shell=ready] .guestbook-panel { padding-block: 6px 16px; background: transparent; box-shadow: none; }
html.experience-v2[data-guest-shell=ready] .guest-more-group h3 { font-weight: 500; font-size: 12px; text-transform: none; letter-spacing: 0; }
html.experience-v2[data-guest-shell=ready] .guest-more-link { min-height: 44px; padding: 4px 2px; gap: 10px; font-size: 13px; font-weight: 400; }
html.experience-v2[data-guest-shell=ready] .guest-more-legal>summary { min-height: 44px; font-size: 13px; font-weight: 500; }
html.experience-v2[data-guest-shell=ready] .guest-option { min-height: 48px; padding: 7px 10px; gap: 10px; font-size: 13px; font-weight: 500; border-radius: var(--app-control-radius); }
html.experience-v2[data-guest-shell=ready] .guest-option svg { width: 20px; height: 20px; stroke-width: 1.5; }
html.experience-v2[data-guest-shell=ready] :is(.guest-sheet-close,.guest-view-switch button) { min-height: 44px; min-width: 44px; }
html.experience-v2[data-guest-shell=ready] #gallery .photo-like { min-width: 44px; min-height: 44px; }
html.experience-v2[data-guest-shell=ready] #gallery .media-body { font-size: 11px; }
html.experience-v2[data-guest-shell=ready] .ambient-controls { padding-top: 0; }
html.experience-v2[data-guest-shell=ready] .guest-live-frame { background: transparent; }
html.experience-v2[data-guest-shell=ready] :is(input,textarea,select) { font-weight: 400; padding: 9px 11px; border-radius: 8px; }
html.experience-v2[data-guest-shell=ready] .guestbook-panel>p { margin-block: 12px; font-size: 14px; font-weight: 400; line-height: 1.5; }
html.experience-v2[data-guest-shell=ready] .guestbook-panel label { font-size: 12px; font-weight: 400; }
html.experience-v2[data-guest-shell=ready] .guestbook-panel button { min-height: 44px; padding: 7px 12px; border-radius: 8px; font-size: 13px; }
html.experience-v2[data-guest-shell=ready] .guestbook-entry { padding: 12px; border: 0; box-shadow: none; border-radius: 12px; }
html.experience-v2[data-guest-shell=ready] :is(.guestbook-entry,#gallery .media-body) strong { font-size: 12px; font-weight: 500; }
html.experience-v2[data-guest-shell=ready] #gallery .social-actions :is(.photo-like,.photo-comment-button) { min-width: 44px; min-height: 44px; padding: 4px; border: 0; border-radius: 6px; background: transparent; color: var(--guest-ink); box-shadow: none; }
html.experience-v2[data-guest-shell=ready] #gallery .social-actions .photo-like[aria-pressed=true] { color: var(--guest-heart); }
html.experience-v2[data-guest-shell=ready] body>footer::before { display: none; }
/* Miniature album previews scale their contents with the device, not the page
   heading scale. This keeps the 100px mobile hero phone a complete preview. */
html[data-ambient-theme] .v2-device-screen { container-type: inline-size; }
html[data-ambient-theme] .homepage-theme .v2-app-event h2 { font: 400 8cqw/1.1 Georgia,serif; margin: 1.5cqw 0 1cqw; letter-spacing: -.02em; }
html[data-ambient-theme] .v2-app-event { padding: 4cqw 5cqw 3cqw; }
html[data-ambient-theme] .v2-app-event small { font-size: 2.7cqw; }
html[data-ambient-theme] .v2-app-event p { font-size: 3.5cqw; }
html[data-ambient-theme] .v2-app-status { height: 11cqw; padding: 3cqw 6cqw 0; font-size: 3.5cqw; }
html[data-ambient-theme] .v2-app-status span:last-child { font-size: 3cqw; letter-spacing: .7cqw; }
html[data-ambient-theme] .v2-app-bar { gap: 3cqw; padding: 3cqw 4.5cqw; font-size: 3.8cqw; }
html[data-ambient-theme] .v2-app-bar img { width: 9.6cqw; height: 9.6cqw; }
html[data-ambient-theme] .v2-app-bar strong { font-size: 3.8cqw; letter-spacing: -.1cqw; }
html[data-ambient-theme] .v2-app-cover { min-height: 0; }
html[data-ambient-theme] .v2-app-toolbar { padding: 3cqw 4.5cqw 2cqw; font-size: 3cqw; }
html[data-ambient-theme] .v2-app-grid { gap: 1.5cqw; padding: 0 4cqw 2.5cqw; }
html[data-ambient-theme] .v2-app-grid img { min-height: 13cqw; max-height: 32cqw; border-radius: 2cqw; }
html[data-ambient-theme] .v2-app-action { margin: 0 3.5cqw 2cqw; padding: 3cqw 2cqw; border-radius: 3cqw; font-size: 3.5cqw; }
html[data-ambient-theme] .v2-app-tabs { padding: 3cqw 1.5cqw; font-size: 3cqw; }

/* Detail refinement: preserve the world, let individual photos and controls float. */
html[data-ambient-theme=hochzeit] { --ambient-glow-strength: 2.4; --ambient-speed: 14s; }
html[data-ambient-quality=gentle][data-ambient-theme=hochzeit] { --ambient-opacity: .52; }
html[data-ambient-theme] .ambient-light { background: radial-gradient(ellipse var(--ambient-radius) 34% at var(--ambient-position-x) var(--ambient-position-y),color-mix(in srgb,var(--ambient-primary) 66%,transparent),transparent 78%),radial-gradient(ellipse 34% 26% at 18% 91%,color-mix(in srgb,var(--ambient-primary) 55%,transparent),transparent 74%),radial-gradient(ellipse 54% 28% at 20% 42%,color-mix(in srgb,var(--ambient-secondary) 28%,transparent),transparent 82%); }
html[data-event-theme][data-ambient-theme] .ambient-shade { background: linear-gradient(#111820b8 0%,#11182088 45%,#111820a6 100%); }
html.experience-v2[data-guest-shell=ready] .guest-live-frame,
html.experience-v2[data-guest-shell=ready] .guest-live-frame .guest-live-center,
html.experience-v2[data-guest-shell=ready] .guest-live-frame .guest-live-center :is(img,video) { background: transparent; border: 0; box-shadow: none; }
html.experience-v2[data-guest-shell=ready] .guest-live-frame::after { content: none; }
html.experience-v2[data-guest-shell=ready] .guest-live-frame .guest-live-center { inset: 3% 14%; transition: none; transform-origin: center; backface-visibility: hidden; }
html.experience-v2[data-guest-shell=ready] .guest-live-frame .guest-live-center img { border-radius: 5px; }
html.experience-v2[data-guest-shell=ready] .guest-live-frame .guest-live-side { border: 0; opacity: .25; }
html.experience-v2[data-guest-shell=ready] .guest-live-outgoing { pointer-events: none; }
html.experience-v2[data-guest-shell=ready][data-guest-view=start] #gallery.gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
html.experience-v2[data-guest-shell=ready][data-guest-view=start] #gallery .media:nth-child(n+7) { display: none; }
html.experience-v2[data-guest-shell=ready] #gallery .media { background: transparent; border: 0; }
html.experience-v2[data-guest-shell=ready] #gallery .media-body { display: flex; flex-direction: column; gap: 0; padding: 0 1px 2px; min-height: 0; }
html.experience-v2[data-guest-shell=ready] #gallery .media-body>strong { font-size: 10px; line-height: 1.25; font-weight: 400; padding: 2px 1px 0; }
html.experience-v2[data-guest-shell=ready] #gallery .photo-social { border: 0; margin: 0; padding: 0; }
html.experience-v2[data-guest-shell=ready] #gallery .social-actions { position: static; display: flex; margin: 0; padding: 0; gap: 0; }
html.experience-v2[data-guest-shell=ready] #gallery .social-actions button { padding: 0; gap: 3px; font-size: 10px; }
html.experience-v2[data-guest-shell=ready] #gallery .social-actions svg { width: 14px; height: 14px; stroke-width: 1.5; }
html.experience-v2[data-guest-shell=ready] .guest-view-switch { padding: 0; gap: 0; background: transparent; }
html.experience-v2[data-guest-shell=ready] .guest-view-switch button { padding: 4px; background: transparent; box-shadow: none; }
html.experience-v2[data-guest-shell=ready] .guest-view-switch svg { width: 15px; height: 15px; stroke-width: 1.5; }
html.experience-v2[data-guest-shell=ready] .guest-view-switch button[aria-pressed=true] { color: var(--guest-ink); background: color-mix(in srgb,var(--guest-accent) 8%,transparent); }
html.experience-v2[data-guest-shell=ready] .guest-bottom-nav { inset-inline: 10px; width: min(calc(100% - 20px),420px); margin-inline: auto; grid-template-columns: repeat(7,44px); justify-content: space-between; gap: 3px; padding: 0; min-height: 44px; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; transform: none; }
html.experience-v2[data-event-theme][data-guest-shell=ready] .guest-bottom-nav button,
html.experience-v2[data-guest-shell=ready] .guest-bottom-nav button[data-target=photo],
html.experience-v2[data-guest-shell=ready] .guest-bottom-nav .guest-heart-action { width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 2px 0; gap: 1px; border: 1px solid color-mix(in srgb,var(--guest-ink) 34%,transparent); border-radius: 50%; background: color-mix(in srgb,var(--guest-paper) 88%,transparent); box-shadow: none; font-size: 8px; }
html.experience-v2[data-guest-shell=ready] .guest-bottom-nav button[aria-current=page] { border-color: var(--guest-accent); background: color-mix(in srgb,var(--guest-accent) 18%,var(--guest-paper)); }
html.experience-v2[data-guest-shell=ready] .guest-more-footer { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 0 8px; }
html.experience-v2[data-guest-shell=ready] .guest-more-footer>h3 { grid-column: 1/-1; }
/* 17.10.2026: Am Handy untereinander statt gequetscht neben dem Sprachwechsel. */
@media (max-width: 480px) { html.experience-v2[data-guest-shell=ready] .guest-more-footer { grid-template-columns: minmax(0,1fr); gap: 6px 0; } html.experience-v2[data-guest-shell=ready] .guest-more-footer .language-setting { margin-top: 2px; } }
html.experience-v2[data-guest-shell=ready] .guest-more-footer .next-celebration>summary { min-height: 44px; display: flex; align-items: center; font-size: 11px; font-weight: 400; line-height: 1.35; }
html.experience-v2[data-guest-shell=ready] .guest-more-footer .next-celebration>summary::before { display: none; }
html.experience-v2[data-guest-shell=ready] .guest-more .language-setting { margin: 0; align-self: start; gap: 0; }
html.experience-v2[data-guest-shell=ready] .language-control { padding: 0; border: 0; background: transparent; box-shadow: none; gap: 0; }
html.experience-v2[data-guest-shell=ready] .language-control button { min-width: 44px; min-height: 44px; padding: 3px; border: 0; background: transparent; font-size: 10px; font-weight: 400; }
html.experience-v2[data-guest-shell=ready] .language-control button[aria-pressed=true] { color: var(--guest-accent); text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:760px) {
  html[data-ambient-theme] .ambient-media { transform: var(--theme-scene-transform-flat,none); }
  html[data-event-theme][data-ambient-theme] .ambient-scene { height: 100svh; bottom: auto; }
  html[data-ambient-theme] .ambient-media img { object-position: var(--scene-mobile-focal-point,center); }
  html[data-ambient-theme] .homepage-hero-v2 .ambient-shade { background: linear-gradient(#0c1520b3,transparent 40%,transparent 85%,var(--ambient-background)); }
}


@media(max-width:350px) {
  html.experience-v2[data-guest-shell=ready] { scrollbar-width: none; }
  html.experience-v2[data-guest-shell=ready]::-webkit-scrollbar { display: none; }
  html.experience-v2[data-guest-shell=ready] .guest-bottom-nav { display: grid; grid-template-columns: repeat(3,44px) 54px repeat(3,44px); justify-content: space-between; inset-inline: 1px; width: calc(100% - 2px); max-width: none; gap: 0; }
  html[data-guest-shell=ready] body { padding-bottom: calc(110px + env(safe-area-inset-bottom)); }
}

/* The three additional occasions share the wedding engine and UI geometry.
   Only scene colours, light and pace change. Guest media remains unfiltered. */
html[data-ambient-theme=party],html[data-ambient-theme=jga],html[data-ambient-theme=event]{
  --ambient-opacity:.56;--surface-opacity:96%;--motion-speed:260ms;
  --ambient-radius:42%;--ambient-ease:cubic-bezier(.16,1,.3,1);
  --occasion-bg:var(--ambient-background);--occasion-paper:var(--ambient-surface);
  --occasion-ink:var(--ambient-text);--occasion-muted:var(--ambient-muted);
  --occasion-line:var(--ambient-line);--occasion-ornament:var(--ambient-primary);
  scrollbar-color:var(--ambient-line) var(--ambient-background);
}
html[data-ambient-theme=party]{
  --ambient-primary:#b380ef;--ambient-secondary:#587fda;--ambient-spark:#ffd092;
  --ambient-grade-warm:#cb69aa;--ambient-grade-cool:#3456a8;
  --ambient-background:#0b1020;--ambient-surface:#172038;--ambient-text:#f5f3ff;
  --ambient-muted:#c5c4df;--ambient-line:#53517b;
  --ambient-speed:11s;--ambient-position-x:70%;--ambient-position-y:72%;
  --particle-intensity:.28;--occasion-accent:#d3a5f5;--occasion-onaccent:#1a1130;
}
html[data-ambient-theme=jga]{
  --ambient-primary:#f17acb;--ambient-secondary:#63d6e9;--ambient-spark:#ffdf91;
  --ambient-grade-warm:#d975bc;--ambient-grade-cool:#557bd0;
  --ambient-background:#170d25;--ambient-surface:#2b193c;--ambient-text:#fff3fc;
  --ambient-muted:#e0c9e2;--ambient-line:#79547f;
  --ambient-speed:9s;--ambient-position-x:67%;--ambient-position-y:72%;
  --particle-intensity:.36;--occasion-accent:#ff9bd2;--occasion-onaccent:#2d1230;
}
html[data-ambient-theme=event]{
  --ambient-primary:#c27786;--ambient-secondary:#d6a36c;--ambient-spark:#f5d4a1;
  --ambient-grade-warm:#8d3e55;--ambient-grade-cool:#303348;
  --ambient-background:#15111b;--ambient-surface:#27202b;--ambient-text:#faf0e8;
  --ambient-muted:#d0bec5;--ambient-line:#65505b;
  --ambient-speed:22s;--ambient-position-x:76%;--ambient-position-y:64%;
  --ambient-opacity:.36;--particle-intensity:.08;
  --occasion-accent:#e6b878;--occasion-onaccent:#2d1c20;
}
html[data-ambient-theme=party] .ambient-shade,
html[data-ambient-theme=jga] .ambient-shade{
  background:linear-gradient(180deg,#090d20c9 0%,#090d2054 44%,transparent 70%,var(--ambient-background) 100%);
}
html[data-ambient-theme=event] .ambient-shade{
  background:linear-gradient(180deg,#15111bbd 0%,#15111b55 48%,#15111b33 70%,var(--ambient-background) 100%);
}
html[data-event-theme][data-ambient-theme=party] .ambient-shade,
html[data-event-theme][data-ambient-theme=jga] .ambient-shade,
html[data-event-theme][data-ambient-theme=event] .ambient-shade{
  background:linear-gradient(180deg,color-mix(in srgb,var(--ambient-background) 72%,transparent),color-mix(in srgb,var(--ambient-background) 88%,transparent) 80%,var(--ambient-background));
}
html[data-ambient-theme=party] .ambient-light{
  background:radial-gradient(ellipse 38% 34% at 70% 78%,#e061c884,transparent 78%),radial-gradient(ellipse 30% 31% at 18% 64%,#566aff7a,transparent 78%),radial-gradient(ellipse 25% 20% at 80% 48%,#ffc68145,transparent 80%);
  animation:occasion-electric-light 11s ease-in-out infinite;mix-blend-mode:screen;
}
html[data-ambient-theme=jga] .ambient-light{
  background:radial-gradient(ellipse 36% 30% at 68% 76%,#ff6fc48c,transparent 78%),radial-gradient(ellipse 35% 28% at 19% 52%,#47d9e483,transparent 78%),radial-gradient(ellipse 26% 22% at 81% 40%,#f8b85c76,transparent 80%);
  animation:occasion-electric-light 9s ease-in-out infinite;mix-blend-mode:screen;
}
html[data-ambient-theme=event] .ambient-light{
  background:radial-gradient(ellipse 32% 30% at 74% 64%,#b6506f5b,transparent 80%),radial-gradient(ellipse 30% 26% at 85% 80%,#e2a05e3f,transparent 82%);
  animation:occasion-candle-memory 22s ease-in-out infinite;mix-blend-mode:screen;
}
html[data-ambient-theme=party] .ambient-fx{
  background:linear-gradient(152deg,transparent 46.5%,#7efaab75 46.6%,transparent 46.75%),linear-gradient(28deg,transparent 53%,#7efaab65 53.1%,transparent 53.25%),radial-gradient(circle at 82% 44%,#ffe0ae 0 1px,transparent 2px);
  opacity:.22;animation:occasion-laser-drift 16s ease-in-out infinite alternate;
}
html[data-ambient-theme=jga] .ambient-fx{
  background:radial-gradient(circle at 15% 25%,#ffdb86 0 2px,transparent 3px),radial-gradient(circle at 76% 18%,#68e1ef 0 2px,transparent 3px),radial-gradient(circle at 87% 58%,#ff8dce 0 2px,transparent 3px),radial-gradient(circle at 40% 70%,#ffe094 0 1px,transparent 2px);
  opacity:.34;animation:occasion-confetti-drift 18s ease-in-out infinite alternate;
}
html[data-ambient-theme=event] .ambient-fx{background:radial-gradient(circle at 80% 36%,#e8bf8a 0 1px,transparent 2px),radial-gradient(circle at 65% 72%,#c07780 0 1px,transparent 2px);opacity:.2;animation:occasion-confetti-drift 26s ease-in-out infinite alternate}
html[data-ambient-theme=event] .ambient-scroll{background:transparent;border-color:color-mix(in srgb,var(--occasion-accent) 50%,transparent)}
html[data-ambient-theme=party] ::selection,html[data-ambient-theme=jga] ::selection,html[data-ambient-theme=event] ::selection{background:var(--occasion-accent);color:var(--occasion-onaccent)}
html[data-ambient-quality=gentle]:is([data-ambient-theme=party],[data-ambient-theme=jga]){--ambient-opacity:.42}
html[data-ambient-quality=gentle][data-ambient-theme=event]{--ambient-opacity:.2}
@keyframes occasion-electric-light{0%,100%{opacity:.3;transform:scale(.99)}48%{opacity:.72;transform:scale(1.02)}58%{opacity:.9;transform:scale(1.025)}75%{opacity:.5;transform:scale(1.005)}}
@keyframes occasion-candle-memory{0%,100%{opacity:.23;transform:scale(1)}55%{opacity:.42;transform:scale(1.015)}}
@keyframes occasion-laser-drift{to{opacity:.12;transform:translate3d(6px,-8px,0)}}
@keyframes occasion-confetti-drift{to{opacity:.19;transform:translate3d(-6px,-16px,0)}}

/* Public scenes: light follows plausible lamps, screens and reflections. */
html.sales-page[data-marketing="true"][data-home-theme="hochzeit"] #start .ambient-fx{
  background:radial-gradient(ellipse 9% 1.4% at 18% 76%,#ffe0a762,transparent 85%),radial-gradient(ellipse 6% 1% at 31% 82%,#ffcc805d,transparent 86%),radial-gradient(ellipse 12% 1.3% at 34% 60%,#c7dddf3d,transparent 84%),radial-gradient(circle at 81% 79%,#ffe4af 0 1px,transparent 3px),radial-gradient(circle at 88% 67%,#ffcf83 0 1px,transparent 3px);
  opacity:.52;mix-blend-mode:screen;animation:wedding-water-glimmer 15s ease-in-out infinite alternate;
}
@keyframes wedding-water-glimmer{
  from{opacity:.28;transform:translate3d(-5px,1px,0)}
  to{opacity:.58;transform:translate3d(7px,-2px,0)}
}
html.sales-page[data-marketing="true"][data-home-theme="party"] #start .ambient-light{
  background:radial-gradient(ellipse 17% 20% at 87% 18%,#ffd4a167,transparent 80%),radial-gradient(ellipse 18% 23% at 44% 56%,#ffe2b34a,transparent 82%),radial-gradient(ellipse 12% 18% at 78% 71%,#c2d9fa53,transparent 82%),radial-gradient(ellipse 11% 17% at 25% 75%,#d8e9ff4a,transparent 80%);
  animation:occasion-lamp-breathe 12s ease-in-out infinite alternate;
}
html.sales-page[data-marketing="true"][data-home-theme="party"] #start .ambient-fx{
  background:radial-gradient(circle at 70% 14%,#ffe0aa80 0 1px,transparent 4px),radial-gradient(circle at 85% 9%,#ffd4a870 0 1px,transparent 4px),radial-gradient(circle at 52% 61%,#ffcf9070 0 1px,transparent 4px);
  opacity:.34;animation:occasion-lamp-breathe 16s ease-in-out infinite alternate;
}
html.sales-page[data-marketing="true"][data-home-theme="jga"] #start .ambient-light{
  background:radial-gradient(ellipse 15% 20% at 57% 16%,#ffdca767,transparent 80%),radial-gradient(ellipse 14% 19% at 91% 35%,#f7b6874d,transparent 83%),radial-gradient(ellipse 9% 14% at 17% 83%,#b8dfff61,transparent 80%),radial-gradient(ellipse 10% 15% at 85% 79%,#d7e9ff57,transparent 80%);
  animation:occasion-lamp-breathe 9s ease-in-out infinite alternate;
}
html.sales-page[data-marketing="true"][data-home-theme="event"] #start .ambient-light{
  background:radial-gradient(ellipse 16% 21% at 72% 69%,#f5bc7759,transparent 82%),radial-gradient(ellipse 12% 16% at 28% 54%,#ffdaa344,transparent 80%),radial-gradient(ellipse 34% 34% at 67% 82%,#b7696650,transparent 84%);
  animation:occasion-lamp-breathe 18s ease-in-out infinite alternate;
}
@keyframes occasion-lamp-breathe{
  from{opacity:.38;transform:translate3d(-2px,1px,0) scale(.995)}
  to{opacity:.72;transform:translate3d(3px,-2px,0) scale(1.014)}
}
html.sales-page[data-marketing="true"][data-home-theme="party"] #start .v2-flight-photo{
  --flight-peak:.68;animation-name:occasion-photo-arrival;animation-duration:calc(var(--flight-duration) * .72);animation-delay:calc(var(--flight-delay) * .72);
}
html.sales-page[data-marketing="true"][data-home-theme="jga"] #start .v2-flight-photo{
  --flight-peak:.82;animation-name:occasion-photo-arrival;animation-duration:calc(var(--flight-duration) * .52);animation-delay:calc(var(--flight-delay) * .52);
}
html.sales-page[data-marketing="true"][data-home-theme="event"] #start .v2-flight-photo{
  --flight-peak:.54;animation-name:occasion-photo-arrival;
}
@keyframes occasion-photo-arrival{
  0%{opacity:0;transform:translate3d(0,0,0) rotate(var(--flight-rotation)) scale(.8)}
  17%,68%{opacity:var(--flight-peak)}
  100%{opacity:0;transform:translate3d(var(--flight-dx),var(--flight-dy),0) rotate(0) scale(.12)}
}
html.sales-page[data-marketing="true"] #start .v2-story-device .v2-device,
html.sales-page[data-marketing="true"] #start .v2-package-device .v2-device{
  box-shadow:inset 1px 0 0 #ffffff35,inset -2px 0 0 #0009,10px 20px 30px #0009,0 1px 1px #ffffff24;
}
html.sales-page[data-marketing="true"][data-home-theme] .product-screen-frame{
  box-shadow:8px 17px 28px #0006,inset 1px 0 0 #ffffff1f;
}

