/* This theme's help stays outside the stateful journey, closed by default. */
.dw-hero h1 > span { display: block; }
.dw-help-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; padding: 20px max(24px, 4vw) calc(20px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--ivory); }
.dw-help-footer small { color: var(--muted); font-size: 9px; letter-spacing: .16em; }
.dw-help-trigger { min-height: 44px; padding: 10px 0; border: 0; background: transparent; color: var(--ink); cursor: pointer; font-size: 14px; }
.dw-help-trigger span { margin-left: 8px; color: var(--champagne); }
.dw-help-dialog { width: min(600px, calc(100% - 32px)); max-height: calc(100svh - 32px); margin: auto; padding: 0; border: 1px solid var(--line); border-radius: 24px; background: var(--paper); color: var(--ink); box-shadow: 0 24px 80px #342d2a30; overflow-y: auto; overscroll-behavior: contain; }
.dw-help-dialog::backdrop { background: #342d2a70; backdrop-filter: blur(6px); }
.dw-help-heading { position: sticky; top: 0; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 24px 28px 18px; background: var(--paper); border-bottom: 1px solid var(--line); }
.dw-help-heading p { margin: 0 0 8px; color: var(--champagne); font-size: 10px; letter-spacing: .14em; }
.dw-help-heading h2 { margin: 0; font: 400 30px/1.3 var(--serif); }
.dw-help-heading button { flex: 0 0 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--ink); font-size: 25px; cursor: pointer; }
.dw-help-content { padding: 4px 28px 24px; }
.dw-help-content section { padding-top: 20px; }
.dw-help-content h3 { margin: 0 0 8px; font-size: 16px; }
.dw-help-content p { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.85; overflow-wrap: anywhere; }
.dw-help-trigger:focus-visible, .dw-help-heading button:focus-visible { outline: 2px solid var(--champagne); outline-offset: 3px; }
@media (max-width: 600px) { .dw-help-heading { padding: 20px; } .dw-help-content { padding: 0 20px 24px; } }

:root {
  --dw-v11-ivory: #f8f4ed;
  --dw-v11-paper: #fffdf9;
  --dw-v11-ink: #352d29;
  --dw-v11-muted: #81766f;
  --dw-v11-gold: #c4975d;
  --dw-v11-line: #e7ded2;
  --dw-v11-serif: "Songti SC", "STSong", "Noto Serif SC", Georgia, serif;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.dw-header .dw-progress {
  display: none;
  opacity: 0;
  pointer-events: none;
}

.journey-active .dw-header {
  height: 96px;
  padding: 0 clamp(28px, 3.2vw, 62px);
  color: var(--dw-v11-ink);
  background: rgba(250, 247, 241, 0.94);
  border-bottom: 1px solid rgba(173, 151, 126, 0.2);
  backdrop-filter: blur(20px);
}

.journey-active .dw-brand {
  min-width: 148px;
}

.journey-active .dw-brand span {
  font-size: 16px;
  letter-spacing: 0.18em;
}

.journey-active .dw-brand small {
  color: #8d827b;
  letter-spacing: 0.32em;
}

.journey-active .dw-close {
  flex: 0 0 auto;
  padding: 10px 17px;
  border-color: #d9cbbb;
  background: rgba(255, 253, 249, 0.66);
  color: #5c5049;
  font-size: 12px;
  box-shadow: none;
}

.journey-active .dw-close span {
  margin-left: 8px;
  color: var(--dw-v11-gold);
}

.journey-active .dw-progress {
  position: static;
  width: min(660px, 52vw);
  max-width: none;
  height: 96px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  align-items: stretch;
  border: 0;
  opacity: 1;
  pointer-events: auto;
}

.journey-active .dw-progress button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 6px;
  color: #aaa19a;
  text-align: center;
}

.journey-active .dw-progress button::after {
  display: none;
}

.journey-active .dw-progress button b {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  border: 1px solid #dfd5c9;
  border-radius: 50%;
  font: 400 15px/1 var(--dw-v11-serif);
}

.journey-active .dw-progress button span {
  margin: 0;
  font-size: 10px;
  white-space: nowrap;
}

.journey-active .dw-progress button.completed,
.journey-active .dw-progress button.current {
  color: #61544c;
}

.journey-active .dw-progress button.completed b {
  border-color: #d3b890;
  color: #a47b49;
  background: rgba(244, 232, 212, 0.68);
}

.journey-active .dw-progress button.current {
  color: var(--dw-v11-ink);
  font-weight: 600;
}

.journey-active .dw-progress button.current b {
  color: #fff;
  border-color: var(--dw-v11-gold);
  background: var(--dw-v11-gold);
  box-shadow: 0 0 0 3px rgba(196, 151, 93, 0.16);
}

.journey-active .dw-main {
  min-height: 100vh;
  padding: 133px clamp(24px, 3.2vw, 62px) 34px;
  background: var(--dw-v11-ivory);
}

.journey-active .dw-layout {
  position: relative;
  z-index: 1;
  max-width: 1420px;
  min-height: calc(100vh - 146px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 690px) minmax(0, 678px);
  gap: clamp(28px, 3.2vw, 52px);
  align-items: stretch;
}

.journey-active .dw-stage {
  min-width: 0;
  padding: 10px 0 0;
}

.journey-active .dw-step[data-step="1"] {
  max-width: 620px;
  margin: 0 0 0 70px;
}

.journey-active .step-heading {
  max-width: 620px;
}

.journey-active .step-no {
  margin: 0 0 14px;
  color: var(--dw-v11-gold);
  font-size: 11px;
  letter-spacing: 0.33em;
}

.journey-active .dw-step[data-step="1"] h2 {
  font: 400 clamp(48px, 3.9vw, 60px)/1.12 var(--dw-v11-serif);
  letter-spacing: 0.02em;
}

.journey-active .dw-step[data-step="1"] .step-intro {
  margin: 20px 0 28px;
  color: var(--dw-v11-muted);
  font-size: 15px;
  line-height: 1.75;
}

.journey-active .upload-mode {
  width: 304px;
  height: 42px;
  padding: 4px;
  border-radius: 14px;
  background: rgba(234, 226, 216, 0.62);
}

.journey-active .upload-mode button {
  flex: 1;
  padding: 0 15px;
  border-radius: 11px;
  font-size: 13px;
  -webkit-appearance: none;
  appearance: none;
  outline: none;
}

.journey-active .upload-mode button:focus {
  outline: none;
}

.journey-active .upload-mode button:focus-visible {
  outline: 2px solid rgba(196, 151, 93, 0.58);
  outline-offset: 2px;
}

.journey-active .upload-mode button.active {
  border: 1px solid rgba(196, 151, 93, 0.28);
  box-shadow: 0 5px 15px rgba(78, 58, 44, 0.07);
}

.journey-active .upload-grid {
  grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr);
  gap: 15px;
  align-items: center;
  margin-top: 26px;
}

.journey-active .upload-grid.single {
  width: min(360px, 100%);
  grid-template-columns: 1fr;
}

.journey-active .upload-card {
  min-width: 0;
  padding: 13px 13px 14px;
  border-color: var(--dw-v11-line);
  border-radius: 20px;
  background: rgba(255, 253, 249, 0.68);
  box-shadow: 0 12px 34px rgba(74, 54, 41, 0.035);
}

.journey-active .upload-card header {
  height: 45px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.journey-active .upload-card header small {
  color: #766a63;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.27em;
}

.journey-active .upload-card header strong {
  margin-top: 4px;
  font: 600 17px/1 var(--dw-v11-serif);
}

.journey-active .upload-preview {
  position: relative;
  height: 300px;
  border-radius: 15px;
  isolation: isolate;
  background: #e8e3dd;
}

@supports (aspect-ratio: 4 / 5) {
  .journey-active .upload-preview {
    height: auto;
    aspect-ratio: 4 / 5;
  }
}

.journey-active .upload-preview::before {
  content: "";
  position: absolute;
  inset: -8%;
  z-index: 0;
  background-position: center top;
  background-size: cover;
  filter: grayscale(0.35) blur(8px);
  opacity: 0.25;
  transform: scale(1.04);
}

.journey-active .placeholder-a::before {
  background-image: url("/assets/ai-destination-wedding/journey-person-a-demo-v11-compat.jpg");
}

.journey-active .placeholder-b::before {
  background-image: url("/assets/ai-destination-wedding/journey-person-b-demo-v11-compat.jpg");
}

.journey-active .couple-placeholder::before {
  background-image: url("/assets/ai-destination-wedding/journey-preview-xiamen-v11.webp");
  background-position: 63% center;
}

.journey-active .upload-preview.has-photo::before {
  display: none;
}

.journey-active .upload-preview img {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.journey-active .recognized-badge {
  position: absolute;
  z-index: 3;
  right: 9px;
  bottom: 9px;
  padding: 7px 11px;
  border-radius: 999px;
  color: #fff;
  background: rgba(157, 116, 66, 0.9);
  font-size: 11px;
  backdrop-filter: blur(10px);
}

.journey-active .upload-card > p:not(.card-error) {
  min-height: 17px;
  margin: 11px 0 0;
  font-size: 11px;
}

.journey-active .card-error {
  min-height: 0;
  margin: 6px 0 0;
  color: #a55c51;
  font-size: 11px;
  line-height: 1.45;
}

.journey-active .card-error:empty {
  display: none;
}

.journey-active .upload-actions {
  margin-top: 11px;
  align-items: center;
}

.journey-active .upload-actions button {
  min-width: 98px;
  padding: 8px 15px;
  border-color: #ddc5a4;
  border-radius: 13px;
  color: #4c403a;
  background: rgba(255, 253, 249, 0.75);
  font-size: 12px;
}

.journey-active .upload-actions button[data-remove] {
  min-width: auto;
  border-color: transparent;
  color: #988a82;
  background: transparent;
}

.journey-active .upload-card.loading .upload-preview {
  opacity: 0.58;
}

.journey-active .upload-card.loading .upload-actions button:first-child {
  pointer-events: none;
}

.journey-active .couple-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #9f8e82;
}

.journey-active .couple-link span {
  font-size: 8px;
  letter-spacing: 0.22em;
}

.journey-active .couple-link b {
  margin: 8px 0;
  color: #5d514b;
  font: 300 28px/1 var(--dw-v11-serif);
}

.journey-active .couple-link i {
  margin-top: 18px;
  color: var(--dw-v11-gold);
  font: italic 13px/1.2 Georgia, serif;
}

.journey-active .height-profile {
  margin-top: 16px;
  border: 1px solid rgba(177, 142, 99, 0.24);
  border-radius: 16px;
  background: rgba(255, 252, 247, 0.74);
}

.journey-active .height-profile summary {
  min-height: 46px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
  list-style: none;
  color: #4a3f38;
  font-size: 13px;
}

.journey-active .height-profile summary::-webkit-details-marker { display: none; }
.journey-active .height-profile summary small { color: #a68a6c; font-size: 11px; }
.journey-active .height-profile summary i { margin-left: auto; color: #aa865e; font-style: normal; transition: transform .2s ease; }
.journey-active .height-profile[open] summary i { transform: rotate(180deg); }

.journey-active .height-profile-body {
  padding: 0 18px 16px;
  border-top: 1px solid rgba(177, 142, 99, 0.14);
}

.journey-active .height-fields {
  padding-top: 14px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.journey-active .height-fields label { display: grid; grid-template-columns: 66px 1fr; align-items: center; gap: 8px; color: #6f625a; font-size: 12px; }
.journey-active .height-input { height: 38px; padding: 0 12px; display: flex; align-items: center; border: 1px solid #e0d5c8; border-radius: 10px; background: #fff; }
.journey-active .height-input:focus-within { border-color: #bd8d53; box-shadow: 0 0 0 3px rgba(189, 141, 83, .1); }
.journey-active .height-input input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; color: #392f2a; font: inherit; }
.journey-active .height-input b { color: #a49386; font-size: 11px; font-weight: 400; }
.journey-active .height-error { grid-column: 2; min-height: 14px; color: #aa514c; font-size: 10px; }
.journey-active .height-profile-body > p { margin: 5px 0 0 74px; color: #9a8d84; font-size: 10px; line-height: 1.5; }
.journey-active .height-profile-body > .height-confirmation {
  margin-top: 10px;
  padding: 9px 12px;
  border: 1px solid rgba(189, 141, 83, .2);
  border-radius: 10px;
  background: rgba(189, 141, 83, .08);
  color: #745638;
  white-space: pre-line;
  font-size: 11px;
}


.journey-active .upload-footer {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.journey-active .upload-footer .primary {
  width: 100%;
  height: 54px;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 26px;
  border-radius: 15px;
  background: #bd8d53;
  box-shadow: 0 16px 32px rgba(165, 117, 62, 0.16);
  font-size: 15px;
}

.journey-active .upload-footer .primary:disabled {
  color: #9e9289;
  background: #e8e1d8;
  box-shadow: none;
  opacity: 1;
}

.journey-active .upload-footer .recognition {
  margin: 10px 0 0 3px;
  min-height: 18px;
  font-size: 11px;
}

.journey-active .journey-summary {
  position: sticky;
  top: 102px;
  min-width: 0;
  height: calc(100vh - 136px);
  min-height: 660px;
  max-height: 860px;
  padding: 13px;
  overflow: hidden;
  border: 1px solid rgba(231, 222, 210, 0.88);
  border-radius: 24px;
  background: rgba(255, 253, 249, 0.72);
  box-shadow: 0 28px 65px rgba(71, 51, 39, 0.07);
  backdrop-filter: blur(16px);
}

.journey-active .preview-heading {
  position: absolute;
  z-index: 4;
  top: 40px;
  left: 37px;
  color: var(--dw-v11-ink);
}

.journey-active .preview-heading p {
  margin: 0 0 17px;
  color: var(--dw-v11-gold);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.28em;
}

.journey-active .preview-heading h3 {
  margin: 0;
  font: 400 clamp(27px, 2vw, 34px)/1.18 var(--dw-v11-serif);
}

.journey-active .preview-heading em {
  display: block;
  margin-top: 11px;
  color: #b88a50;
  font: italic 17px/1 Georgia, serif;
}

.journey-active .journey-preview-visual {
  position: relative;
  height: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: 18px;
  background: #d8c2a7;
}

.journey-active .journey-preview-visual > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  transition: filter 0.45s ease, transform 1.1s ease;
}

.journey-active .journey-preview:not(.recognized) .journey-preview-visual > img {
  filter: saturate(0.84) brightness(1.03);
}

.journey-active .journey-preview-visual figcaption {
  position: absolute;
  z-index: 4;
  top: 25%;
  left: 37px;
  display: flex;
  flex-direction: column;
  color: #51423a;
  text-shadow: 0 1px 20px rgba(255, 255, 255, 0.65);
}

.journey-active .journey-preview-visual figcaption strong {
  font: 400 clamp(22px, 1.65vw, 29px)/1.3 var(--dw-v11-serif);
}

.journey-active .journey-preview-visual figcaption span {
  margin-top: 4px;
  font: 400 15px/1.5 var(--dw-v11-serif);
}

.journey-active .journey-preview.recognized .journey-preview-visual figcaption {
  top: 29%;
}

.journey-active .journey-preview.recognized .journey-preview-visual figcaption strong {
  color: #8e6638;
}

.journey-active .preview-people {
  position: absolute;
  z-index: 5;
  top: 15%;
  right: 24px;
  display: none;
  align-items: center;
}

.journey-active .preview-people img {
  width: 58px;
  height: 72px;
  object-fit: cover;
  border: 3px solid rgba(255, 253, 249, 0.9);
  border-radius: 13px;
  box-shadow: 0 10px 28px rgba(49, 35, 27, 0.18);
}

.journey-active .preview-people img + img {
  margin-left: -14px;
}

.journey-active .journey-preview.recognized .preview-people {
  display: flex;
}

.journey-active .preview-people img:not([src]) {
  display: none;
}

.journey-active .preview-summary {
  position: absolute;
  z-index: 4;
  left: 24px;
  bottom: 22px;
  width: min(210px, 48%);
  padding: 20px 21px;
  border: 1px solid rgba(255, 255, 255, 0.62);
  border-radius: 15px;
  color: #4f423b;
  background: rgba(255, 252, 247, 0.78);
  box-shadow: 0 16px 42px rgba(71, 50, 35, 0.11);
  backdrop-filter: blur(16px);
}

.journey-active .preview-summary dl {
  margin: 0;
}

.journey-active .preview-summary dl div {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 8px;
  align-items: baseline;
  padding: 7px 0;
  border: 0;
}

.journey-active .preview-summary dt {
  color: #96877e;
  font-size: 10px;
}

.journey-active .preview-summary dd {
  margin: 0;
  font: 400 15px/1.3 var(--dw-v11-serif);
}

.journey-active .preview-summary blockquote {
  margin: 14px 0 0;
  padding-top: 13px;
  border-top: 1px solid rgba(137, 116, 100, 0.16);
  color: #8a7c74;
  font: 400 11px/1.65 var(--dw-v11-serif);
}

.journey-active.result-active .dw-layout {
  grid-template-columns: minmax(0, 1120px);
  justify-content: center;
}

.journey-active.result-active .journey-summary {
  display: none;
}

.journey-active .result-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 24px;
}

.journey-active .result-heading h2 {
  font-size: clamp(38px, 4vw, 62px);
}

.journey-active .result-english {
  margin: 10px 0 0;
  color: var(--dw-v11-gold);
  font: italic 15px/1.3 Georgia, serif;
  letter-spacing: 0.08em;
}

.journey-active .result-count {
  flex: 0 0 auto;
  padding: 9px 15px;
  border: 1px solid var(--dw-v11-line);
  border-radius: 999px;
  color: #7b6d64;
  font-size: 10px;
  letter-spacing: 0.22em;
}

.journey-active .result-heading-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
}

.journey-active .result-music-toggle {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px 13px;
  border: 1px solid rgba(196, 151, 93, .28);
  border-radius: 999px;
  color: #655950;
  background: rgba(255, 253, 249, .72);
  box-shadow: 0 8px 24px rgba(74, 54, 41, .06);
  backdrop-filter: blur(12px);
  cursor: pointer;
  font-size: 11px;
  letter-spacing: .08em;
  transition: border-color 180ms ease, background 180ms ease, opacity 180ms ease;
}

.journey-active .result-music-toggle:hover:not(:disabled),
.journey-active .result-music-toggle[data-state="playing"] {
  border-color: rgba(196, 151, 93, .58);
  background: rgba(250, 241, 226, .9);
}

.journey-active .result-music-toggle:disabled {
  opacity: .52;
  cursor: not-allowed;
}

.journey-active .result-frame {
  margin: 0;
  border-radius: 24px;
  overflow: hidden;
  background: linear-gradient(135deg, #f0e8dc, #e6d9ca);
}

.journey-active .result-frame img {
  width: 100%;
  height: min(55vh, 560px);
  object-fit: contain;
  background: transparent;
  transition: filter 220ms ease, opacity 220ms ease, transform 220ms ease;
}

.journey-active .result-frame img.is-placeholder {
  filter: blur(16px) saturate(.8);
  opacity: .9;
  transform: scale(1.025);
}

.journey-active .result-frame img.is-reveal-pending {
  opacity: 0;
  transform: scale(.985);
}

.journey-active .result-frame img.is-first-reveal {
  animation: destinationWeddingFirstReveal 820ms cubic-bezier(.2, .72, .2, 1) both;
}

@keyframes destinationWeddingFirstReveal {
  from { opacity: 0; transform: scale(.985); }
  to { opacity: 1; transform: scale(1); }
}

.journey-active .result-frame img.is-load-failed {
  filter: saturate(.65);
  opacity: .72;
}

.journey-active .result-image-status {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  height: min(55vh, 560px);
  padding: 32px;
  color: #6f6259;
  font-size: 15px;
  letter-spacing: .08em;
  text-align: center;
}

.journey-active .result-image-status[hidden] {
  display: none;
}

/* Only the supplied transparent search mascot; no photo layers or added panel. */
.journey-active .result-frame .dw-search-loading,
.generation-copy .dw-search-loading {
  display: block;
  width: 160px;
  height: auto;
  aspect-ratio: 1;
  flex: 0 0 auto;
  object-fit: contain;
  background: transparent;
  border: 0;
  box-shadow: none;
  animation: none;
  transition: none;
  filter: none;
  transform: none;
}

.generation-scene { background: #f6f1e9; color: #6f6259; }
.generation-copy .dw-search-loading { margin: 20px auto 0; }
.generation-copy h2 { margin-top: 12px; }
.generation-copy small { color: #6f6259; }
.generation-scene .generation-copy .generation-count { border-color: #cbbdaf; }
.generation-copy .generation-line { background: #e2d9cd; }
.generation-copy .generation-line i { background: #9a826a; }

@media (max-width: 600px) {
  .journey-active .result-frame .dw-search-loading,
  .generation-copy .dw-search-loading { width: 130px; }
}

.journey-active .result-frame figcaption {
  right: 20px;
  bottom: 18px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.journey-active .result-frame figcaption b {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.52);
  border-radius: 50%;
  font: 400 14px/1 Georgia, serif;
}

.journey-active .result-frame figcaption span {
  color: #fff;
  font: 400 15px/1.2 var(--dw-v11-serif);
}

.journey-active .result-frame figcaption em {
  margin-left: auto;
  font-style: normal;
  letter-spacing: 0.22em;
}

.journey-active .result-thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.journey-active .result-step .result-progress {
  margin: 12px 0 -2px;
  color: #9b7448;
  font-size: 12px;
  letter-spacing: 0.06em;
}

.journey-active .result-step .result-thumb.is-progressive-reveal img {
  animation: dwProgressiveResultReveal 620ms cubic-bezier(.22, .72, .28, 1) var(--result-reveal-delay, 0ms) both;
}

.journey-active .result-step .result-thumb.is-progressive-reveal .result-thumb-status {
  color: #a9783e;
}

@keyframes dwProgressiveResultReveal {
  from { opacity: 0; filter: blur(5px); transform: translateY(6px); }
  to { opacity: 1; filter: blur(0); transform: translateY(0); }
}

.journey-active .result-thumb {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--dw-v11-line);
  border-radius: 16px;
  color: var(--dw-v11-ink);
  background: rgba(255, 253, 249, 0.72);
  text-align: left;
  cursor: pointer;
}

.journey-active .result-thumb.selected {
  border-color: var(--dw-v11-gold);
  box-shadow: 0 8px 24px rgba(100, 70, 45, 0.1);
}

.journey-active .result-thumb.failed {
  border-color: rgba(161, 76, 70, 0.45);
}

.journey-active .result-thumb img,
.journey-active .result-thumb .thumb-placeholder {
  width: 74px;
  height: 92px;
  border-radius: 10px;
  object-fit: cover;
  background: #e7e0d8;
  transition: opacity 180ms ease;
}

.journey-active .result-thumb small,
.journey-active .result-thumb strong,
.journey-active .result-thumb span {
  display: block;
}

.journey-active .result-thumb small {
  color: var(--dw-v11-gold);
  font-size: 9px;
  letter-spacing: 0.18em;
}

.journey-active .result-thumb strong {
  margin-top: 7px;
  font: 500 13px/1.35 var(--dw-v11-serif);
}

.journey-active .result-thumb span {
  margin-top: 4px;
  color: #9a4f49;
  font-size: 10px;
}

.journey-active .result-step .result-meta {
  margin-top: 14px;
}

.journey-active .result-action-bar {
  min-height: 46px;
  margin: 14px 0 12px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  flex-wrap: wrap;
}

.journey-active .result-action-bar button {
  flex: 0 0 auto;
  height: 46px;
  padding: 0 22px;
  white-space: nowrap;
}

.wedding-action-popover {
  position: fixed;
  z-index: 240;
  width: min(300px, calc(100vw - 24px));
  box-sizing: border-box;
  padding: 18px 18px 14px;
  border: 1px solid rgba(184, 148, 102, .5);
  border-radius: 16px;
  background: #fffaf3;
  box-shadow: 0 12px 34px rgba(71, 54, 43, .13);
  color: #3b312c;
}

.wedding-action-popover[hidden] { display: none; }
.wedding-action-popover::after {
  position: absolute;
  left: var(--popover-arrow-left, 50%);
  width: 12px;
  height: 12px;
  border-right: 1px solid rgba(184, 148, 102, .5);
  border-bottom: 1px solid rgba(184, 148, 102, .5);
  background: #fffaf3;
  content: "";
  transform: translateX(-50%) rotate(45deg);
}
.wedding-action-popover[data-placement="top"]::after { bottom: -7px; }
.wedding-action-popover[data-placement="bottom"]::after { top: -7px; transform: translateX(-50%) rotate(225deg); }
.wedding-action-popover h3 { margin: 0 0 12px; font: 500 17px/1.35 "Songti SC", "STSong", serif; }
.wedding-action-popover-row { margin: 6px 0; color: #75675f; font-size: 13px; line-height: 1.5; }
.wedding-action-popover-row strong { color: #b07d42; font-weight: 600; }
.wedding-action-popover-description { margin: 8px 0 0; color: #96857a; font-size: 12px; line-height: 1.5; }
.wedding-action-popover-error { margin: 8px 0 0; color: #b05d44; font-size: 12px; line-height: 1.5; }
.wedding-action-popover-divider { height: 1px; margin: 14px 0 12px; background: rgba(184, 148, 102, .22); }
.wedding-action-popover-actions { display: grid; grid-template-columns: 1fr 1.35fr; gap: 9px; }
.wedding-action-popover-actions button { min-width: 0; min-height: 38px; padding: 0 12px; white-space: nowrap; }
.wedding-action-popover > small { display: block; margin-top: 9px; color: #9b8b80; font-size: 10px; text-align: center; }

@media (max-width: 560px) {
  .wedding-action-popover { width: min(300px, calc(100vw - 16px)); }
}

.generation-copy .generation-count {
  margin-top: 22px;
  padding: 7px 14px;
  border: 1px solid rgba(255, 255, 255, 0.36);
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: 0.2em;
}

@media (max-width: 1280px) and (min-width: 901px) {
  .journey-active .dw-header {
    padding-inline: 26px;
  }

  .journey-active .dw-brand {
    min-width: 118px;
  }

  .journey-active .dw-progress {
    width: min(600px, 55vw);
  }

  .journey-active .dw-main {
    padding-inline: 26px;
  }

  .journey-active .dw-layout {
    grid-template-columns: minmax(0, 61fr) minmax(330px, 39fr);
    gap: 28px;
  }

  .journey-active .upload-grid {
    grid-template-columns: minmax(0, 1fr) 50px minmax(0, 1fr);
    gap: 10px;
  }

  .journey-active .couple-link i {
    font-size: 11px;
  }
}

@media (max-height: 820px) and (min-width: 901px) {
  .journey-active .dw-main {
    padding-top: 102px;
  }

  .journey-active .dw-stage {
    padding-top: 0;
  }

  .journey-active .step-no {
    margin-bottom: 8px;
  }

  .journey-active .dw-step[data-step="1"] h2 {
    font-size: 40px;
  }

  .journey-active .dw-step[data-step="1"] .step-intro {
    margin: 10px 0 14px;
    line-height: 1.55;
  }

  .journey-active .upload-grid {
    margin-top: 14px;
  }

  .journey-active .upload-card {
    padding: 10px;
  }

  .journey-active .upload-card header {
    height: 38px;
  }

  .journey-active .upload-footer {
    margin-top: 12px;
  }

  .journey-active .journey-summary {
    top: 96px;
    height: calc(100vh - 112px);
    min-height: 610px;
  }

  .journey-active .dw-step[data-step="1"] .upload-preview {
    height: 168px;
    height: clamp(160px, 21.5vh, 175px);
  }

  .journey-active .dw-step[data-step="1"] .upload-card { padding: 8px; }
  .journey-active .dw-step[data-step="1"] .upload-card header { height: 34px; }
  .journey-active .dw-step[data-step="1"] .upload-card > p:not(.card-error),
  .journey-active .dw-step[data-step="1"] .upload-actions { margin-top: 5px; }
  .journey-active .dw-step[data-step="1"] .upload-actions button { padding-top: 5px; padding-bottom: 5px; }
  .journey-active .dw-step[data-step="1"] .height-profile summary { min-height: 40px; }
  .journey-active .dw-step[data-step="1"] .height-profile-body { padding-bottom: 8px; }
  .journey-active .dw-step[data-step="1"] .height-fields { padding-top: 8px; }
  .journey-active .dw-step[data-step="1"] .height-input { height: 34px; }
  .journey-active .dw-step[data-step="1"] .height-profile-body > .height-confirmation { padding: 6px 8px; line-height: 1.35; }
  .journey-active .dw-step[data-step="1"] .upload-footer { margin-top: 4px; }
  .journey-active .dw-step[data-step="1"] .upload-footer .primary { height: 48px; }
}

@media (max-width: 900px) {
  .journey-active .dw-header {
    height: 120px;
    padding: 10px 16px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 38px 52px;
    gap: 8px;
  }

  .journey-active .dw-brand { min-width: 0; }
  .journey-active .dw-close { display: block; grid-column: 2; grid-row: 1; }

  .journey-active .dw-progress {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    height: 52px;
    min-width: 0;
  }

  .journey-active .dw-progress button { min-width: 0; padding: 0 2px; gap: 4px; }
  .journey-active .dw-progress button b { width: 25px; height: 25px; font-size: 12px; }

  .journey-active .dw-progress button span {
    display: block;
    font-size: 10px;
    margin: 0;
  }

  .journey-active .dw-main {
    padding: 144px 20px 28px;
  }

  .journey-active .dw-layout { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .journey-active .dw-step[data-step="1"] { max-width: none; margin: 0; }
  .journey-active .height-fields { grid-template-columns: minmax(0, 1fr); }

  .journey-active .upload-grid {
    grid-template-columns: 1fr;
  }

  .journey-active .couple-link {
    display: none;
  }

  .journey-active .result-heading {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .journey-active .result-thumbs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .journey-active .result-frame img {
    height: min(58vh, 620px);
  }
}

@media (max-width: 560px) {
  .journey-active .result-heading-actions {
    width: 100%;
    justify-content: space-between;
  }
}

@media (prefers-reduced-motion: reduce) {
  .journey-active .result-frame img.is-first-reveal {
    animation-duration: 1ms;
  }

  .journey-active .result-step .result-thumb.is-progressive-reveal img {
    animation: none;
  }
}

.destination-card img {
  object-position: center 48%;
  filter: saturate(.9) contrast(1.02);
}

.journey-active .destination-library-head {
  margin: -4px 0 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.journey-active .destination-categories { display: flex; gap: 8px; flex-wrap: wrap; }
.journey-active .destination-categories button { padding: 8px 14px; border: 1px solid transparent; border-radius: 999px; background: transparent; color: #93877f; cursor: pointer; font-size: 12px; }
.journey-active .destination-categories button.active { border-color: rgba(196, 151, 93, .34); background: rgba(196, 151, 93, .1); color: #9d703d; }
.journey-active .destination-library-head > span { flex: none; color: #aa9c92; font-size: 9px; letter-spacing: .16em; }

.journey-active .destination-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.journey-active .destination-card { min-height: 286px; border-radius: 18px; }
.journey-active .destination-card .card-copy { left: 17px; right: 17px; bottom: 16px; }
.journey-active .destination-card h3 { font-size: 27px; }
.journey-active .destination-card .card-copy em { display: inline-flex; width: max-content; max-width: 100%; margin-bottom: 8px; padding: 4px 8px; overflow: hidden; border: 1px solid rgba(255,255,255,.42); border-radius: 999px; color: #fff4df; background: rgba(52,42,35,.24); font: normal 9px/1.2 sans-serif; white-space: nowrap; text-overflow: ellipsis; backdrop-filter: blur(7px); }

.journey-active .destination-explore { width: 100%; margin-top: 18px; padding: 15px 20px; border: 1px solid rgba(196,151,93,.3); border-radius: 999px; color: #89663f; background: rgba(255,253,249,.62); cursor: pointer; font-size: 13px; }
.journey-active .destination-explore span { margin-left: 12px; color: #bd8d53; }

@media (max-width: 1180px) and (min-width: 901px) {
  .journey-active .destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .journey-active .destination-library-head { align-items: flex-start; flex-direction: column; }
  .journey-active .destination-grid { grid-template-columns: 1fr; }
}

/* Journey 02 selected destination: one-shot champagne particle feedback. */
.journey-active .dw-step[data-step="2"] {
  overflow-x: clip;
}

.journey-active .dw-step[data-step="2"] .destination-card {
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}

.journey-active .dw-step[data-step="2"] .destination-card.selected {
  overflow: visible;
  transform: translateY(-4px);
  border: 2px solid #d7ad70;
  box-shadow: 0 0 0 4px rgba(215, 173, 112, .13), 0 14px 32px rgba(173, 125, 68, .19), 0 0 28px rgba(235, 199, 142, .22);
}

.journey-active .dw-step[data-step="2"] .destination-card.is-selection-reveal {
  animation: dwDestinationCardSelect 180ms ease-out 1 both;
}

.journey-active .dw-step[data-step="2"] .destination-card img,
.journey-active .dw-step[data-step="2"] .destination-card::after {
  border-radius: inherit;
}

.journey-active .dw-step[data-step="2"] .destination-card.selected img {
  filter: saturate(.94) contrast(1.025) brightness(1.055);
}

.journey-active .dw-step[data-step="2"] .destination-selected-badge {
  position: absolute;
  z-index: 5;
  top: 12px;
  right: 12px;
  min-height: 30px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 248, 232, .78);
  border-radius: 999px;
  color: #9c6d35;
  background: rgba(255, 249, 237, .9);
  box-shadow: 0 7px 20px rgba(94, 62, 32, .18);
  backdrop-filter: blur(9px);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  pointer-events: none;
}

.journey-active .dw-step[data-step="2"] .destination-selection-particles {
  position: absolute;
  z-index: 6;
  inset: -10px;
  border-radius: inherit;
  pointer-events: none;
}

.journey-active .dw-step[data-step="2"] .destination-selection-particle {
  position: absolute;
  left: var(--particle-x);
  top: var(--particle-y);
  width: var(--particle-size);
  height: var(--particle-size);
  border-radius: 50%;
  opacity: 0;
  background: #e2bd82;
  box-shadow: 0 0 7px currentColor;
  animation: dwDestinationParticleScatter 600ms cubic-bezier(.18, .72, .28, 1) var(--particle-delay) 1 both;
}

.journey-active .dw-step[data-step="2"] .destination-selection-particle.tone-gold { color: #d9ad6b; background: #d9ad6b; }
.journey-active .dw-step[data-step="2"] .destination-selection-particle.tone-warm-white { color: #fff7e8; background: #fff7e8; }
.journey-active .dw-step[data-step="2"] .destination-selection-particle.tone-amber { color: #e5b56b; background: #e5b56b; }

@keyframes dwDestinationParticleScatter {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.55); }
  18% { opacity: .92; }
  100% { opacity: 0; transform: translate(calc(-50% + var(--particle-dx)), calc(-50% + var(--particle-dy))) scale(.18); }
}

@keyframes dwDestinationCardSelect {
  from { transform: translateY(0); }
  to { transform: translateY(-4px); }
}

/* Destination wedding hero re-entry action */
.dw-hero-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.dw-hero-actions .hero-cta,
.hero-resume-cta {
  min-height: 52px;
  white-space: nowrap;
}

.hero-resume-cta {
  padding: 14px 24px;
  border: 1px solid rgba(255, 255, 255, .58);
  border-radius: 999px;
  color: #fff;
  background: rgba(42, 34, 30, .25);
  box-shadow: 0 12px 30px rgba(27, 21, 18, .1);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  cursor: pointer;
  transition: transform .25s ease, background-color .25s ease, border-color .25s ease;
}

.hero-resume-cta span { margin-left: 18px; }

.hero-resume-cta:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, .82);
  background: rgba(42, 34, 30, .38);
}

.hero-resume-cta:focus-visible {
  outline: 2px solid rgba(255, 255, 255, .92);
  outline-offset: 3px;
}

@media (max-width: 720px) {
  .dw-hero-actions { gap: 10px; }
  .hero-resume-cta { padding-inline: 20px; }
}

/* Legacy re-entry styles retained for release compatibility; modal markup is no longer rendered. */
.journey-reentry {
  position: fixed;
  z-index: 180;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 30px;
  background: rgba(42, 34, 29, .42);
  backdrop-filter: blur(18px);
}

.journey-reentry-panel {
  position: relative;
  width: min(780px, calc(100vw - 48px));
  padding: 46px;
  overflow: hidden;
  border: 1px solid rgba(184, 148, 102, .28);
  border-radius: 30px;
  background:
    radial-gradient(circle at 12% 0, rgba(232, 207, 178, .34), transparent 36%),
    linear-gradient(145deg, #fffdf9, #f5eee5);
  box-shadow: 0 34px 100px rgba(51, 37, 28, .26);
}

.journey-reentry-panel::after {
  content: "";
  position: absolute;
  right: -90px;
  top: -110px;
  width: 260px;
  height: 260px;
  border: 1px solid rgba(184, 148, 102, .16);
  border-radius: 50%;
}

.journey-reentry-close {
  position: absolute;
  z-index: 2;
  right: 22px;
  top: 20px;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(87, 67, 54, .13);
  border-radius: 50%;
  color: #776a62;
  background: rgba(255, 253, 249, .72);
  font-size: 23px;
  cursor: pointer;
}

.journey-reentry-eyebrow,
.journey-reentry-no {
  color: #b18450;
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
  letter-spacing: .26em;
}

.journey-reentry-panel > h2 {
  margin: 15px 0 9px;
  color: #3a302b;
  font: 400 40px/1.24 "Songti SC", "STSong", serif;
}

.journey-reentry-subtitle {
  max-width: 590px;
  margin: 0;
  color: #81756f;
  font-size: 14px;
  line-height: 1.8;
}

.journey-reentry-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 30px;
}

.journey-reentry-card {
  position: relative;
  min-height: 250px;
  padding: 25px;
  overflow: hidden;
  border: 1px solid rgba(87, 67, 54, .14);
  border-radius: 23px;
  color: #3a302b;
  background: rgba(255, 253, 249, .84);
  text-align: left;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.journey-reentry-card:hover {
  transform: translateY(-3px);
  border-color: rgba(184, 148, 102, .58);
  box-shadow: 0 18px 42px rgba(71, 50, 37, .12);
}

.journey-reentry-card.new {
  display: flex;
  flex-direction: column;
  background: linear-gradient(145deg, #44372f, #2f2824);
  color: #fffaf3;
}

.journey-reentry-card strong {
  display: block;
  margin: 24px 0 10px;
  font: 400 27px/1.3 "Songti SC", "STSong", serif;
}

.journey-reentry-card small {
  display: block;
  color: #8a7d75;
  font-size: 12px;
  line-height: 1.7;
}

.journey-reentry-card.new small { color: rgba(255, 250, 243, .62); }
.journey-reentry-card.new .journey-reentry-no { color: #d8b681; }

.journey-reentry-card em {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 28px;
  color: inherit;
  font-size: 13px;
  font-style: normal;
  font-weight: 600;
}

.journey-reentry-card em b { font-size: 18px; font-weight: 400; }
.journey-reentry-card.previous { padding: 0; }
.journey-reentry-cover { display: block; height: 112px; overflow: hidden; background: #e8ddd2; }
.journey-reentry-cover img { width: 100%; height: 100%; object-fit: cover; }
.journey-reentry-copy { display: flex; min-height: 138px; flex-direction: column; padding: 20px 23px; }
.journey-reentry-copy strong { margin: 7px 0 5px; font-size: 23px; }
.journey-reentry-copy em { padding-top: 14px; }

@media (max-width: 720px) {
  .journey-reentry { padding: 18px; }
  .journey-reentry-panel { width: min(520px, calc(100vw - 28px)); max-height: calc(100vh - 28px); padding: 34px 24px 24px; overflow-y: auto; border-radius: 24px; }
  .journey-reentry-panel > h2 { font-size: 32px; }
  .journey-reentry-options { grid-template-columns: 1fr; }
  .journey-reentry-card { min-height: 190px; }
}

/* Insufficient creative points */
.creative-points-modal {
  position: fixed;
  z-index: 210;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(42, 34, 29, .46);
  backdrop-filter: blur(16px);
}

.creative-points-modal-panel {
  position: relative;
  width: min(520px, calc(100vw - 40px));
  padding: 42px;
  border: 1px solid rgba(184, 148, 102, .34);
  border-radius: 28px;
  background: radial-gradient(circle at 8% 0, rgba(232, 207, 178, .38), transparent 38%), linear-gradient(145deg, #fffdf9, #f5eee5);
  box-shadow: 0 34px 100px rgba(51, 37, 28, .28);
  color: #3a302b;
}

.creative-points-modal-close {
  position: absolute;
  right: 20px;
  top: 18px;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(87, 67, 54, .13);
  border-radius: 50%;
  color: #776a62;
  background: rgba(255, 253, 249, .78);
  font-size: 23px;
  cursor: pointer;
}

.creative-points-modal-eyebrow { margin: 0; color: #b18450; font-size: 10px; font-weight: 600; letter-spacing: .26em; }
.creative-points-modal-panel > h2 { margin: 14px 0 10px; font: 400 34px/1.25 "Songti SC", "STSong", serif; }
.creative-points-modal-copy { margin: 0; color: #81756f; font-size: 14px; line-height: 1.75; }
.creative-points-modal-balance { display: grid; grid-template-columns: repeat(3, 1fr); margin: 28px 0 24px; overflow: hidden; border: 1px solid rgba(184, 148, 102, .22); border-radius: 18px; background: rgba(255, 253, 249, .72); }
.creative-points-modal-balance > div { padding: 18px 16px; border-right: 1px solid rgba(184, 148, 102, .18); }
.creative-points-modal-balance > div:last-child { border-right: 0; }
.creative-points-modal-balance dt { margin-bottom: 8px; color: #8b7a6f; font-size: 11px; }
.creative-points-modal-balance dd { margin: 0; font-size: 12px; }
.creative-points-modal-balance b { margin-right: 3px; font: 500 24px/1 Georgia, serif; }
.creative-points-modal-balance .shortfall b { color: #b05d44; }
.creative-points-modal-actions { display: grid; grid-template-columns: 1fr 1.35fr; gap: 12px; }
.creative-points-modal-actions button { min-height: 48px; }
.creative-points-modal-note { display: block; margin-top: 14px; color: #9a8b81; text-align: center; }

@media (max-width: 560px) {
  .creative-points-modal { padding: 16px; }
  .creative-points-modal-panel { width: min(440px, calc(100vw - 24px)); padding: 34px 22px 24px; border-radius: 23px; }
  .creative-points-modal-panel > h2 { font-size: 29px; }
  .creative-points-modal-balance { grid-template-columns: 1fr; }
  .creative-points-modal-balance > div { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border-right: 0; border-bottom: 1px solid rgba(184, 148, 102, .18); }
  .creative-points-modal-balance > div:last-child { border-bottom: 0; }
  .creative-points-modal-balance dt { margin: 0; }
}
/* End insufficient creative points */

.dw-gift-download-slots { display: flex; gap: 8px; flex-wrap: wrap; margin: 16px 0; }
.dw-gift-download-slots button { min-height: 44px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 12px; background: transparent; color: var(--ink); }
.dw-gift-download-slots button[aria-pressed="true"] { background: #ead8bf; }
.dw-gift-download #giftDownloadFile { display: inline-flex; margin-top: 12px; min-height: 44px; align-items: center; text-decoration: none; }
.dw-gift-download #giftDownloadFile[hidden], .dw-gift-download img[hidden] { display: none; }
.dw-gift-download img { display: block; width: 100%; height: auto; margin-top: 16px; -webkit-touch-callout: default; user-select: auto; }

.dw-free-retake { margin: 16px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.dw-free-retake p { margin: 0; font-size: 13px; }
.dw-free-retake button { min-height: 44px; padding: 10px 18px; border: 1px solid #bd915e; border-radius: 12px; background: #fffaf3; color: #694e32; }
.dw-free-retake button:disabled { opacity: .55; cursor: default; }
#freeRetakeDialog textarea { display: block; box-sizing: border-box; width: 100%; max-width: 100%; margin: 10px 0 18px; padding: 12px; font: inherit; border: 1px solid #d5c4af; border-radius: 8px; }
#freeRetakeDialog .dw-help-content { overflow-y: auto; max-height: 65dvh; padding-bottom: max(20px, env(safe-area-inset-bottom)); }
#freeRetakeSubmit { min-height: 44px; }
@media (max-width: 600px) { .dw-free-retake { align-items: stretch; flex-direction: column; } }

/* P0-07: scoped anniversary form, keeps six-step positioning unchanged. */
.anniversary-form{padding:24px;margin-bottom:24px;border:1px solid #dbc8a8;border-radius:16px;background:#faf6ef;max-width:100%;box-sizing:border-box}.anniversary-form label{display:block;margin:12px 0}.anniversary-form input:not([type=checkbox]),.anniversary-form select{display:block;width:100%;max-width:100%;box-sizing:border-box;padding:12px;border:1px solid #cabfaa;border-radius:8px;background:white;color:#342d2a;font:inherit}.anniversary-names{display:flex;gap:12px}.anniversary-names label{flex:1;min-width:0}.anniversary-form p{line-height:1.6} @media(max-width:600px){.anniversary-form{padding:16px}.anniversary-names{display:block}}

/* Keep the fourth photograph's printed anniversary footer unobstructed. */
.journey-active .result-frame.anniversary-caption figcaption{position:relative;inset:auto;padding:12px 20px;color:#283e34;background:#f8f4e9}
.journey-active .result-frame.anniversary-caption figcaption span{color:#283e34}
.journey-active .result-frame.anniversary-caption figcaption b{border-color:#cbb992;flex-shrink:0}

/* PC result downloads: keep the existing controls and mobile layout intact. */
@media (min-width: 901px) {
  .journey-active .pc-result-actions .result-action-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    min-height: 0;
    margin: 16px 0 20px;
  }
  .journey-active .pc-result-actions .result-action-bar > button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 0 1 auto;
    min-height: 40px;
    height: auto;
    max-width: 100%;
    padding: 9px 16px;
    margin: 0;
    border: 1px solid #d9d0c7;
    border-radius: 10px;
    background: transparent;
    color: #514238;
    font: 400 14px/20px var(--sans);
    white-space: normal;
    overflow-wrap: anywhere;
    box-shadow: none;
    transition: background-color 160ms ease, border-color 160ms ease;
  }
  .journey-active .pc-result-actions .result-action-bar > button::before {
    content: '';
    display: block;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    background: currentColor;
    mask: var(--result-action-icon) center / contain no-repeat;
  }
  .pc-result-actions #downloadSelected {
    --result-action-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m-5-5 5 5 5-5M4 15v5h16v-5'/%3E%3C/svg%3E");
  }
  .pc-result-actions #saveJourney {
    --result-action-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='16' height='16' rx='2'/%3E%3Cpath d='M3 7H2v15h15v-1M5 15l5-5 4 4 3-2 4 5'/%3E%3Ccircle cx='16' cy='7' r='1'/%3E%3C/svg%3E");
  }
  .pc-result-actions #shareAnniversary {
    --result-action-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15V3m-4 4 4-4 4 4M7 10H4v11h16V10h-3'/%3E%3C/svg%3E");
  }
  .journey-active .pc-result-actions .result-action-bar > button:hover:not(:disabled) { background: #f0e9df; border-color: #cbbcac; }
  .journey-active .pc-result-actions .result-action-bar > button:focus-visible { outline: 2px solid #977147; outline-offset: 3px; }
  .journey-active .pc-result-actions .result-action-bar > button:disabled { opacity: .45; cursor: not-allowed; }
  .pc-result-actions #resultError:empty { display: none; }
}

/* Step 04 examples: image URLs and selection remain scoped to the style picker. */
.dw-step[data-step="4"]{container-type:inline-size;container-name:wedding-style}
.dw-step[data-step="4"] .wedding-style-example-note{font-size:12px;color:#8a7765;margin:12px 0}
.dw-step[data-step="4"] #moodGrid.wedding-style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:12px;max-width:756px}
.dw-step[data-step="4"] #moodGrid .wedding-style-card{min-width:0;display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:left;border:1px solid #e2d8ca;border-radius:10px;background:#fffcf7;box-shadow:none;transform:none;color:#594332}
.dw-step[data-step="4"] #moodGrid .wedding-style-card.selected{border-color:#b89466;background:#fcf5e9}
.dw-step[data-step="4"] #moodGrid .wedding-style-media{position:relative;display:block;flex:none;width:100%;height:0;padding:125% 0 0;margin:0;background:#eee7dc}
.dw-step[data-step="4"] #moodGrid .wedding-style-media img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.dw-step[data-step="4"] #moodGrid .wedding-style-media img[hidden]{display:none}
.dw-step[data-step="4"] #moodGrid .wedding-style-card b{font:400 17px/1.5 var(--serif);margin:10px 10px 3px}
.dw-step[data-step="4"] #moodGrid .wedding-style-copy{font-size:12px;line-height:1.6;color:#837361;margin:0 10px 12px;min-height:3.2em;overflow-wrap:anywhere}
.dw-step[data-step="4"] #moodGrid .wedding-style-check{position:absolute;top:8px;right:8px;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;font-style:normal;background:#b89466;color:#fff;visibility:hidden}
.dw-step[data-step="4"] #moodGrid .selected .wedding-style-check{visibility:visible}
.dw-step[data-step="4"] #moodGrid .image-failed::before{content:'示例暂不可用';position:absolute;inset:0;display:grid;place-items:center;font-size:12px;color:#958672}
.dw-step[data-step="4"] #moodGrid .wedding-style-card:focus-visible{outline:2px solid #95704c;outline-offset:3px}
@container wedding-style (min-width:620px){.dw-step[data-step="4"] #moodGrid.wedding-style-grid{grid-template-columns:repeat(4,minmax(0,180px))}}

/* PC result heading only. Mobile and mini-program retain the original heading. */
@media(min-width:901px){
 .journey-active.result-active.pc-result-heading-active .dw-main{padding-top:126px}
 .journey-active.result-active.pc-result-heading-active .dw-stage{padding-top:0}
 .journey-active .result-heading.pc-result-heading{display:block;margin:0 0 20px}
 .journey-active .result-heading.pc-result-heading>div:first-child{min-width:0;width:100%}
 .journey-active .result-heading.pc-result-heading .step-no,.journey-active .result-heading.pc-result-heading .result-english{display:none}
 .journey-active .result-heading.pc-result-heading h2{margin:0;color:#514238;font-family:var(--dw-v11-serif);font-size:40px;font-weight:400;line-height:1.25;letter-spacing:normal;overflow-wrap:anywhere}
 .journey-active .result-heading.pc-result-heading .result-pc-subrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;margin-top:10px;min-width:0}
 .journey-active .result-heading.pc-result-heading .result-pc-subtitle{flex:1 1 180px;min-width:0;margin:0;color:#89796c;font:400 14px/1.6 system-ui,sans-serif;letter-spacing:normal;overflow-wrap:anywhere}
 .journey-active .result-heading.pc-result-heading .result-pc-subtitle[hidden]{display:none}
 .journey-active .result-heading.pc-result-heading .result-heading-actions{margin-left:auto;align-items:center;flex:0 0 auto;max-width:100%;flex-wrap:wrap}
 .journey-active .result-heading.pc-result-heading .result-music-toggle{min-height:32px;height:32px;padding:5px 12px;line-height:20px;box-sizing:border-box;box-shadow:none}
 .journey-active .result-heading.pc-result-heading .result-count{padding:0;border:0;border-radius:0;color:#89796c;font:400 13px/1.6 system-ui,sans-serif;letter-spacing:normal}
}
@media(min-width:901px) and (max-width:1400px){.journey-active .result-heading.pc-result-heading h2{font-size:34px}}

/* Result continuation entries */
.journey-active .result-meta.result-selection-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.result-selection-link { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 14px; min-width:0; padding:18px 20px; border:1px solid #e0d6ca; border-radius:14px; background:#fffaf4; color:#514238; text-align:left; cursor:pointer; font:inherit; }
.result-selection-link>span:first-child { min-width:0; flex:1 1 100px; }
.result-selection-link small { display:block; color:#81756f; font:12px/1.5 var(--sans); }
.result-selection-link strong { display:block; margin-top:5px; font:400 17px/1.45 var(--serif); overflow-wrap:anywhere; }
.result-selection-action { flex:0 0 auto; white-space:nowrap; color:#a47b4b; font:14px/1.5 var(--sans); }
.result-selection-link:hover:not(:disabled) { background:#f5ecdf; }
.result-selection-link:focus-visible { outline:2px solid #a47b4b; outline-offset:3px; }
.result-selection-link:disabled { cursor:wait; opacity:.65; }
.result-selection-note { color:#81756f; font:12px/1.6 var(--sans); margin:8px 0 0; }
.next-city-source-link { display:inline-block; margin:12px 0; color:#896744; }
@media(max-width:760px){.journey-active .result-meta.result-selection-links{grid-template-columns:1fr}.result-selection-link{padding:14px 16px;gap:10px}.result-selection-action{font-size:13px}}
