@import url('https://fonts.googleapis.com/css2?family=Cormorant:wght@400;500&family=Instrument+Serif&family=PT+Serif:wght@400;700&family=Playfair+Display:wght@400;600;700&family=Roboto+Condensed:wght@700&display=swap');

/* Lightweight looping samples on collection cards. Links and full intros are unchanged. */
.gallery .card{--op-delay:0s}.gallery .card:nth-child(2){--op-delay:-1.2s}.gallery .card:nth-child(3){--op-delay:-2.4s}.gallery .card:nth-child(4){--op-delay:-.6s}
.gallery .opening-preview{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;background:#f4e6ea;animation:op-scene 7.4s ease-in-out infinite;animation-delay:var(--op-delay)}
.gallery .op-stage{position:absolute;inset:22% 10% 20%;perspective:800px}
.gallery .op-paper{position:absolute;inset:4%;border:1px solid #d7b7c1;background:#fff9f3;box-shadow:0 16px 35px #5d384e26;animation:op-paper 7.4s ease-in-out infinite;animation-delay:var(--op-delay)}
.gallery .op-door{position:absolute;inset:0 50% 0 0;border:1px solid #d0adb9;background:radial-gradient(ellipse at 10% 90%,#d6b2c466,transparent 65%),linear-gradient(115deg,#fff9f2,#ecd9df);transform-origin:left center;animation:op-left 7.4s ease-in-out infinite;animation-delay:var(--op-delay)}
.gallery .op-door::after{content:'';position:absolute;inset:9px;border:1px solid #c399ab77;border-radius:70% 0 65% 0}
.gallery .op-right{inset:0 0 0 50%;transform-origin:right center;animation-name:op-right}
.gallery .op-names{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:22px;text-align:center;color:#633e50;font:27px/1.2 'Cormorant Garamond',Georgia,serif;overflow-wrap:anywhere;animation:op-type 7.4s ease-in-out infinite;animation-delay:var(--op-delay)}
.gallery .op-names small{font:8px/1.7 Manrope,Arial,sans-serif;letter-spacing:1.2px;text-transform:uppercase}
.gallery .op-flap,.gallery .op-seal{display:none}
.gallery .opening-badge{position:absolute;right:12px;bottom:12px;z-index:4;padding:6px 10px;border:1px solid #c8bcb288;border-radius:2px;background:#fffaf1eb;color:#514b43;font:8px/1.5 Manrope,Arial,sans-serif;letter-spacing:.5px;pointer-events:none}
.gallery .italian-summer .opening-preview{background:#f3f0e5}
.gallery .italian-summer .op-stage{inset:28% 9% 24%}
.gallery .italian-summer .op-paper{inset:4% 6%;background:#fffdf4;border-color:#b8bea3;animation-name:op-letter}
.gallery .italian-summer .op-door{inset:0;transform:none;animation:none;border-color:#cabc9f;background:linear-gradient(25deg,#dccbad,#f1e5cb);clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%)}
.gallery .italian-summer .op-door::after{display:none}.gallery .italian-summer .op-right{background:linear-gradient(0deg,#e4d5b7,#fbf1dc);clip-path:polygon(0 100%,50% 43%,100% 100%)}
.gallery .italian-summer .op-flap{display:block;position:absolute;inset:0 0 43%;background:linear-gradient(#fbf2df,#deceb0);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:center top;animation:op-flap 7.4s ease-in-out infinite;animation-delay:var(--op-delay)}
.gallery .italian-summer .op-seal{display:block;position:absolute;left:43%;top:40%;width:14%;aspect-ratio:1;border-radius:47% 53% 49% 51%;background:radial-gradient(circle at 35% 30%,#9ba487,#526044 75%);box-shadow:inset 0 0 0 3px #758263,1px 3px 6px #3c452f55;animation:op-type 7.4s ease-in-out infinite;animation-delay:var(--op-delay);z-index:4}
.gallery .italian-summer .op-seal::after{content:'';position:absolute;inset:15%;background:url('/art/italian-olive.svg') center/contain no-repeat;filter:brightness(0) invert(.8)}
.gallery .italian-summer .op-names{justify-content:end;gap:5px;padding:0 12px 8%;font-size:23px;color:#48533a}.gallery .italian-summer .op-names small{font-size:7px}
.gallery .royal-classic .opening-preview{background:transparent}.gallery .royal-classic .op-stage{inset:0}
.gallery .royal-classic .op-paper{display:none}.gallery .royal-classic .op-door{border:0;background:linear-gradient(180deg,#18040d55,transparent 25%,#1a040a77),repeating-linear-gradient(90deg,#290812 0%,#64192d 8%,#9c435522 12%,#370c1c 20%);box-shadow:inset -14px 0 25px #16030b66;transform-origin:left top;animation-name:op-curtain-left}
.gallery .royal-classic .op-right{transform-origin:right top;animation-name:op-curtain-right}.gallery .royal-classic .op-door::after{inset:12px 0 24px;border:0;border-top:2px solid #cfac6e88;border-bottom:1px solid #cfac6e88;border-radius:0}
.gallery .royal-classic .op-names{color:#f5dfb8;font-family:Prata,Georgia,serif;font-size:24px;padding:25px;gap:22px}.gallery .royal-classic .op-names small{color:#e0c18b}
.gallery .modern-editorial .opening-preview{background:#242528}.gallery .modern-editorial .op-stage{inset:9% 18% 12%;perspective:850px}
.gallery .modern-editorial .op-paper{inset:0;transform-origin:left center;border:1px solid #c9c7c0;background:linear-gradient(0deg,#192f9c 0 12%,transparent 12% 77%,#f4f2ea 77%),url('/photos/modern-editorial.jpg') center/cover;box-shadow:12px 18px 30px #0007;animation-name:op-magazine}
.gallery .modern-editorial .op-door{display:none}.gallery .modern-editorial .op-names{align-items:start;justify-content:space-between;text-align:left;padding:14px 12px 22%;color:#fff;font:600 26px/1 Manrope,Arial,sans-serif;letter-spacing:-1px;text-shadow:0 2px 8px #0005;transform-origin:left center;animation-name:op-magazine}
.gallery .modern-editorial .op-names small{order:-1;color:#192f9c;text-shadow:none;font-size:13px;line-height:1;letter-spacing:-.5px;font-weight:600;max-width:120px}
@keyframes op-scene{0%,48%{opacity:1}65%,92%{opacity:0}100%{opacity:1}}
@keyframes op-type{0%,24%{opacity:1}38%,94%{opacity:0}100%{opacity:1}}
@keyframes op-left{0%,24%,100%{transform:rotateY(0)}50%,94%{transform:rotateY(-150deg)}}
@keyframes op-right{0%,24%,100%{transform:rotateY(0)}50%,94%{transform:rotateY(150deg)}}
@keyframes op-paper{0%,25%,100%{transform:scale(1);opacity:1}57%,94%{transform:scale(1.28);opacity:0}}
@keyframes op-letter{0%,30%,100%{transform:translateY(0)}53%,94%{transform:translateY(-55%)}}
@keyframes op-flap{0%,24%,100%{transform:rotateX(0)}40%,94%{transform:rotateX(-178deg)}}
@keyframes op-curtain-left{0%,24%,100%{transform:translateX(0)}52%,94%{transform:translateX(-105%)}}
@keyframes op-curtain-right{0%,24%,100%{transform:translateX(0)}52%,94%{transform:translateX(105%)}}
@keyframes op-magazine{0%,24%,100%{transform:rotateY(0);opacity:1}56%,94%{transform:rotateY(-115deg);opacity:0}}
@media(max-width:700px){.gallery .op-names{font-size:25px}.gallery .royal-classic .op-names{font-size:21px}.gallery .modern-editorial .op-names{font-size:24px}}
@media(prefers-reduced-motion:reduce){.gallery .opening-preview{display:none}.gallery .opening-preview *{animation:none!important}}

.gallery .botanical-garden .preview { background: #e3e8d8; }
.gallery .botanical-garden .preview-name { color: #2f432f; }
.gallery .botanical-garden .preview img { border-radius: 48% 48% 0 0 / 34% 34% 0 0; }
.gallery .botanical-garden .opening-preview { background: url('/art/garden-sprig.svg') left bottom / auto 80% no-repeat, #edf0e4; }
.gallery .botanical-garden .op-stage { inset: 10% 10% 20%; }
.gallery .botanical-garden .op-paper { display: none; }
.gallery .botanical-garden .op-door {
  inset: 6% 41% 36%;
  border-radius: 56% 44% 55% 45% / 62% 62% 38% 38%;
  border-color: #bd9d82;
  background: radial-gradient(ellipse at 32% 20%, #fff4dd, #e8c4a3 65%, #b27f6a);
  transform-origin: center 96%;
  animation-name: op-bloom-left;
}
.gallery .botanical-garden .op-door::after { display: none; }
.gallery .botanical-garden .op-right { animation-name: op-bloom-right; }
.gallery .botanical-garden .op-names { justify-content: end; gap: 5px; padding: 0; color: #304633; }
@keyframes op-bloom-left { 0%, 22%, 100% { transform: rotate(-7deg); } 50%, 94% { transform: rotate(-68deg) scale(1.15); } }
@keyframes op-bloom-right { 0%, 22%, 100% { transform: rotate(7deg); } 50%, 94% { transform: rotate(68deg) scale(1.15); } }
.gallery .retro-love .preview { background: linear-gradient(145deg, #fff0d7 55%, #e9a175 55% 63%, #b74d2f 63% 70%, #5b2031 70%); }
.gallery .retro-love .preview-name { color: #5b2031; }
.gallery .retro-love .preview img { transform: rotate(3deg); border: 5px solid #fff0d7; filter: sepia(.22); }
.gallery .retro-love .opening-preview { background: #edb18a; }
.gallery .retro-love .op-stage { inset: 14% 15%; }
.gallery .retro-love .op-paper {
  inset: 5% auto 5% 45%;
  aspect-ratio: 1;
  border: 0;
  border-radius: 50%;
  background: radial-gradient(circle, #5b2031 0 4%, #e9a175 5% 21%, transparent 22%),
              conic-gradient(transparent, #ffffff35, transparent 35%, transparent 62%, #ffffff25, transparent),
              repeating-radial-gradient(circle, #18171b 0 2px, #333033 3px, #211e23 4px);
  animation-name: op-record;
}
.gallery .retro-love .op-door { display: none; }
.gallery .retro-love .op-names {
  inset: 0 25% 0 0;
  background: #fff0d7;
  color: #5b2031;
  border: 1px solid #5b2031;
  transform: rotate(-5deg);
  box-shadow: 4px 7px 16px #54203145;
  animation: none;
}
@keyframes op-record { 0%, 22%, 100% { transform: translateX(0) rotate(0); } 53%, 94% { transform: translateX(40%) rotate(330deg); } }

.gallery .rustic-boho .preview { background: #efe0c9; }
.gallery .rustic-boho .preview-name { color: #623d2e; }
.gallery .rustic-boho .preview img { object-position: center 8%; }
.gallery .midnight-elegance .preview { background: #1a181c; color: #e8d6be; }
.gallery .midnight-elegance .preview-name { color: #eedfc9; }
.gallery .midnight-elegance .preview img { filter: saturate(.62) brightness(.77); }
.gallery .midnight-elegance .opening-preview {
  background:
    radial-gradient(circle at 19% 35%, #e4bf8b 0 1px, transparent 3px),
    radial-gradient(circle at 34% 72%, #c9a579 0 1px, transparent 2px),
    radial-gradient(circle at 79% 29%, #efcca0 0 1px, transparent 2px),
    radial-gradient(circle at 89% 65%, #ad875f 0 1px, transparent 3px), #151318;
}
.gallery .midnight-elegance .op-door { display: none; }
.gallery .midnight-elegance .op-paper { inset: -20%; border: 0; box-shadow: none; background: radial-gradient(ellipse,#b28b5675,transparent 65%); animation-name: op-starlight; }
.gallery .midnight-elegance .op-names { color: #eedfc9; animation-name: op-starlight; }
@keyframes op-starlight { 0%,21%,100% { opacity: .64; } 47%,78% { opacity: 1; } }

.gallery .french-chateau .preview { background: #e1e9ee; }
.gallery .french-chateau .preview-name { color: #273f53; }
.gallery .french-chateau .opening-preview { background: transparent; }
.gallery .french-chateau .op-stage { inset: 0; }
.gallery .french-chateau .op-paper { display: none; }
.gallery .french-chateau .op-door { border-color: #849aac; background: linear-gradient(115deg,#becfdc,#e6eef3,#b9cbd7); }
.gallery .french-chateau .op-door::after { inset: 8%; border: 4px double #9f9278; border-radius: 46% 46% 0 0 / 14% 14% 0 0; }
.gallery .french-chateau .op-names { color: #273f53; text-shadow: 0 1px #fff5; }
.gallery .minimal-ivory .preview { background: #f5f1e8; }
.gallery .minimal-ivory .preview-name { color: #242421; text-align: left; }
.gallery .minimal-ivory .opening-preview { background: #e8e3d8; }
.gallery .minimal-ivory .op-stage { inset: 16% 13% 20%; }
.gallery .minimal-ivory .op-paper { inset: 0; background: #faf7f0; border: 0; box-shadow: 0 10px 30px #3d35221a; }
.gallery .minimal-ivory .op-left { display: none; }
.gallery .minimal-ivory .op-right { inset: 0 0 0 59%; border: 0; border-left: 1px solid #c8beb0; transform-origin: left; background: linear-gradient(90deg,#e3dcd0,#f2ede3 14%); z-index: 4; animation-name: op-ivory-fold; }
.gallery .minimal-ivory .op-right::after { display: none; }
.gallery .minimal-ivory .op-names { color: #242421; text-align: left; align-items: start; gap: 7px; padding: 12px 44% 12px 7%; font-size: clamp(18px,3vw,30px); }
@keyframes op-ivory-fold { 0%,24%,100% { transform: rotateY(0); opacity: 1; } 54%,93% { transform: rotateY(-165deg); opacity: 0; } }

.gallery .ocean-breeze .preview { background: #e1ece9; }
.gallery .ocean-breeze .preview-name { color: #173e4c; }
.gallery .ocean-breeze .opening-preview { background: transparent; }
.gallery .ocean-breeze .op-stage { inset: 0; animation: op-tide 7.4s ease-in-out infinite; }
.gallery .ocean-breeze .op-paper { inset: 0 0 -8%; border: 0; border-radius: 0 0 54% 39% / 0 0 10% 6%; box-shadow: none; animation: none; background: linear-gradient(#f3f4eb 48%,#85aab4 48.3%,#d9e7e3); }
.gallery .ocean-breeze .op-door { display: none; }
.gallery .ocean-breeze .op-names { color: #173e4c; }
@keyframes op-tide { 0%,24%,100% { transform: translateY(0); } 59%,95% { transform: translateY(-113%); } }

.gallery .art-deco .preview {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  background: #211d1b;
  color: #f3e7d1;
}
.gallery .art-deco .preview > img {
  grid-row: 2;
  min-height: 0;
}
.gallery .art-deco .preview > .preview-name {
  position: static;
  grid-row: 1;
  padding: .65em .35em .55em;
  border-bottom: 1px solid #a88854;
  color: #f3e7d1;
  font-size: clamp(22px, 3.3vw, 39px);
  line-height: 1.2;
}
.gallery .art-deco .opening-preview { background: transparent; }
.gallery .art-deco .op-stage { inset: 0; }
.gallery .art-deco .op-paper { display: none; }
.gallery .art-deco .op-door { background: url('/art/deco-panel.svg') center / 95% 96% no-repeat, #211d1b; border: 0; transform: none; animation-name: op-deco-left; }
.gallery .art-deco .op-right { animation-name: op-deco-right; }
.gallery .art-deco .op-door::after { display: none; }
.gallery .art-deco .op-names { color: #f3e7d1; font-family: Prata,Georgia,serif; text-shadow: 0 1px 9px #000; }
@keyframes op-deco-left { 0%,27%,100% { transform: translateX(0); } 54%,95% { transform: translateX(-105%); } }
@keyframes op-deco-right { 0%,27%,100% { transform: translateX(0); } 54%,95% { transform: translateX(105%); } }

.gallery .cinema-love .preview { background: #211f20; color: #f2ebe0; }
.gallery .cinema-love .preview-name, .gallery .cinema-love .op-names { color: #f2ebe0; }
.gallery .cinema-love .opening-preview { background: #211f20; }
.gallery .cinema-love .op-door, .gallery .cinema-love .op-paper { display: none; }
.gallery .cinema-love .op-stage { inset: 8% 12% 15%; }
.gallery .cinema-love .op-stage::before { content: ""; display: block; width: 18%; aspect-ratio: 1; border: 3px double #71635b; border-radius: 50%; margin: 4% auto; background: conic-gradient(#b49586 90deg,#e8dfd0 90deg); animation: op-projector 1s linear infinite; }
@keyframes op-projector { to { transform: rotate(1turn); } }
.gallery .wildflower-meadow .preview { background: #eee8d9; }
.gallery .wildflower-meadow .preview-name, .gallery .wildflower-meadow .op-names { color: #536143; }
.gallery .wildflower-meadow .opening-preview { background: #f5f0e2; }
.gallery .wildflower-meadow .op-stage { inset: 0; }
.gallery .wildflower-meadow .op-paper { display: none; }
.gallery .wildflower-meadow .op-door { border: 0; background: url('/art/wildflower-stems.svg') center bottom / contain no-repeat; animation-name: op-curtain-left; }
.gallery .wildflower-meadow .op-right { animation-name: op-curtain-right; }
.gallery .wildflower-meadow .op-door::after { display: none; }

.gallery .newspaper-wedding .preview { background: #e8e1d4; }
.gallery .newspaper-wedding .preview img { filter: grayscale(1); }
.gallery .newspaper-wedding .opening-preview { background: #d9d1c1; }
.gallery .newspaper-wedding .op-paper { background: #f0ebdf; border-color: #8d8175; }
.gallery .newspaper-wedding .op-left { display: none; }
.gallery .newspaper-wedding .op-right { inset: 60% 4% 4%; transform-origin: top; background: repeating-linear-gradient(#b5aa99 0 1px,#eee8d9 1px 6px); animation-name: op-news-fold; }
.gallery .newspaper-wedding .op-right::after { display: none; }
.gallery .newspaper-wedding .op-names { color: #392e27; }
@keyframes op-news-fold { 0%,23%,100% { transform: rotateX(0); } 52%,95% { transform: rotateX(-177deg); } }
.gallery .cherry-romance .preview { background: #5f2138; color: #f7e7da; }
.gallery .cherry-romance .preview-name { color: #f7e7da; }
.gallery .cherry-romance .opening-preview { background: #682641; }
.gallery .cherry-romance .op-paper { background: #f7ede3; border: 4px double #be8a92; }
.gallery .cherry-romance .op-door { display: none; }
.gallery .cherry-romance .op-seal { display: block; position: absolute; left: 0; right: 0; bottom: 19%; height: 9px; background: linear-gradient(#621b33,#be6884,#621b33); animation: op-ribbon-pull 7.4s ease-in-out infinite; z-index: 4; }
.gallery .cherry-romance .op-names { color: #60283c; }
@keyframes op-ribbon-pull { 0%,23%,100% { transform: none; opacity: 1; } 54%,95% { transform: translateX(69%) rotate(12deg); opacity: 0; } }

.gallery .winter-fairytale .preview { background: #e3edf1; }
.gallery .winter-fairytale .preview-name { color: #314656; }
.gallery .winter-fairytale .opening-preview { background: url('/art/winter-frost.svg') left top / 73% auto no-repeat,radial-gradient(ellipse,#ecf6fa,#a6bfcc); }
.gallery .winter-fairytale .op-door, .gallery .winter-fairytale .op-paper { display: none; }
.gallery .winter-fairytale .op-names { color: #314656; }
.gallery .tropical-paradise .preview { background: #143c2d; color: #f9eed5; }
.gallery .tropical-paradise .preview-name, .gallery .tropical-paradise .op-names { color: #f9eed5; }
.gallery .tropical-paradise .opening-preview { background: #143c2d; }
.gallery .tropical-paradise .op-stage { inset: 0; }
.gallery .tropical-paradise .op-paper { display: none; }
.gallery .tropical-paradise .op-door { border: 0; background: url('/art/tropical-leaf.svg') center / contain no-repeat; animation-name: op-curtain-left; }
.gallery .tropical-paradise .op-door::after { display: none; }
.gallery .tropical-paradise .op-right { animation-name: op-curtain-right; }

.gallery .celestial-love .preview { background: #23283c; color: #f1eadf; }
.gallery .celestial-love .preview-name, .gallery .celestial-love .op-names { color: #f1eadf; }
.gallery .celestial-love .opening-preview { background: #23283c; }
.gallery .celestial-love .op-stage { inset: 0; }
.gallery .celestial-love .op-paper { inset: 0; border: 0; box-shadow: none; background: url('/art/celestial-chart.svg') center / auto 125% no-repeat; animation-name: op-chart; }
.gallery .celestial-love .op-door { display: none; }
@keyframes op-chart { 0%,22%,100% { transform: scale(.82) rotate(-13deg); opacity: .5; } 52%,94% { transform: scale(1.1); opacity: 1; } }
.gallery .old-money .preview { background: #ebe5d0; }
.gallery .old-money .preview-name { color: #354232; }

/* Feedback on individual gallery cards. */
.gallery .royal-classic .op-door {
  background: linear-gradient(#10030b70, transparent 46%, #10030b91),
    repeating-linear-gradient(90deg, #20070f 0%, #4a1425 8%, #59192e 12%, #290a18 20%);
}
.gallery .royal-classic .op-left { right: 49.8%; }
.gallery .royal-classic .op-right { left: 49.8%; }
.gallery .retro-love .op-stage { inset: 24% 18% 26%; }
.gallery .retro-love .op-paper { inset: auto auto auto 46%; top: 50%; width: 57%; translate: 0 -50%; }
.gallery .retro-love .op-names { inset: 6% 30% 6% 0; padding: 12px; }

.gallery .card .reviewed-cover {
  display: grid;
  place-items: center;
  padding: 0;
  container-type: inline-size;
}
.reviewed-sheet { width: 87%; height: 85%; display: grid; min-width: 0; }
.reviewed-title { display: grid; align-content: center; justify-items: center; text-align: center; }
.reviewed-names { font: 400 clamp(27px, 9cqw, 62px)/.98 'Cormorant Garamond', Georgia, serif; }
.reviewed-kicker { font: 600 clamp(8px, 2cqw, 11px)/1.4 Manrope, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.gallery .reviewed-sheet figure { min-height: 0; min-width: 0; overflow: hidden; }
.gallery .reviewed-sheet img { width: 100%; height: 100%; object-fit: cover; }
.gallery .botanical-garden .reviewed-cover { background: #e5e9db; color: #334634; }
.botanical-garden .reviewed-sheet {
  position: relative;
  grid-template-columns: .9fr 1fr;
  gap: 5%;
  padding: 5%;
  border: 1px solid #a7b095;
  background: #f7f4e9;
}
.botanical-garden .reviewed-sheet figure { border: 1px solid #87977b; padding: 4px; border-radius: 50% 50% 0 0 / 32% 32% 0 0; }
.gallery .botanical-garden .reviewed-sheet img { border-radius: inherit; object-position: 50% 42%; }
.botanical-garden .reviewed-sheet::after {
  content: ""; position: absolute; left: -5%; bottom: -5%; width: 24%; height: 48%;
  background: url('/art/garden-sprig.svg') bottom left / contain no-repeat; pointer-events: none;
}

.gallery .wildflower-meadow .reviewed-cover { background: #f2eedd; color: #485239; }
.wildflower-meadow .reviewed-sheet {
  grid-template-rows: 1fr 2fr;
  padding: 5%;
  border: 1px solid #b1ae8c;
  background: url('/art/wildflower-stems.svg') 94% 2% / 27% 40% no-repeat, #f7f3e7;
}
.wildflower-meadow .reviewed-title { padding-right: 15%; }
.gallery .wildflower-meadow .reviewed-sheet img { object-position: 50% 70%; }

.gallery .newspaper-wedding .reviewed-cover { background: #d7d0c4; color: #211f1b; }
.newspaper-wedding .reviewed-sheet {
  grid-template-rows: auto 1fr;
  gap: 3%;
  padding: 4%;
  background: #f6f0e3;
  box-shadow: 2px 7px 14px #211d2538;
}
.newspaper-wedding .reviewed-title { border-block: 3px double; padding-block: 4%; gap: 6px; }
.newspaper-wedding .reviewed-names { font-weight: 600; }
.gallery .newspaper-wedding .reviewed-sheet img { filter: grayscale(1); object-position: 50% 67%; }

.gallery .cherry-romance .reviewed-cover {
  background: linear-gradient(140deg, #651e38, #3d1026);
  color: #f7e6dd;
}
.cherry-romance .reviewed-sheet {
  padding: 5%;
  border: 3px double #d8a6ab;
  background: radial-gradient(ellipse at 50% 27%, #782b47, #4c132a 75%);
}
.cherry-romance .reviewed-title { border: 1px solid #d8a6ab76; padding: 6%; }
.cherry-romance .reviewed-names { font-style: italic; }

.gallery .card .reviewed-motion {
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 18px;
  opacity: 1;
  animation: none;
}
.gallery .card.preview-playing .reviewed-motion { animation: reviewed-reveal 2.5s ease both; }
@keyframes reviewed-reveal { 0%, 58% { opacity: 1; } 85%, 100% { opacity: 0; } }
.gallery .cinema-love .reviewed-motion { background: #211f20; color: #f2ebe0; }
.reviewed-leader {
  display: grid; place-items: center; isolation: isolate; position: relative;
  width: clamp(92px, 14vw, 156px); aspect-ratio: 1; border-radius: 50%;
  border: 4px double #514b48; color: #242021; background: #d7cfc0;
}
.reviewed-leader::before {
  content: ""; position: absolute; z-index: -1; inset: 9%; border-radius: 50%;
  border: 1px solid #6e645e; background: conic-gradient(#81726875 92deg, transparent 93deg);
}
.reviewed-leader i {
  grid-area: 1/1;
  visibility: hidden;
  font: 700 clamp(46px, 8vw, 84px)/1 "Roboto Condensed", Arial, sans-serif;
}
.reviewed-leader i:first-child { visibility: visible; }
.gallery .cinema-love.preview-playing .reviewed-leader::before { animation: reviewed-sweep .4s linear 3; }
.gallery .cinema-love.preview-playing .reviewed-leader i { animation: reviewed-digit .4s steps(1,end) forwards; }
.gallery .cinema-love.preview-playing .reviewed-leader i:nth-child(2) { animation-delay: .4s; }
.gallery .cinema-love.preview-playing .reviewed-leader i:nth-child(3) { animation-delay: .8s; }
@keyframes reviewed-sweep { to { transform: rotate(1turn); } }
@keyframes reviewed-digit { from { visibility: visible; } to { visibility: hidden; } }
.reviewed-credit { font: 400 clamp(24px, 4vw, 42px)/1.1 'Cormorant Garamond', Georgia, serif; }

.gallery .rustic-boho .reviewed-motion {
  inset: auto 0 0;
  height: 100%;
  background: #f2e4cf;
  pointer-events: none;
  visibility: hidden;
}
@media (prefers-reduced-motion: no-preference) {
  .gallery .rustic-boho.preview-playing .preview > img {
    animation: meadow-print-develop 1.4s ease-out both;
  }
  .gallery .rustic-boho.card.preview-playing .reviewed-motion {
    visibility: visible;
    animation: meadow-paper-clear 1.15s ease-out both;
  }
}
@keyframes meadow-print-develop {
  from { filter: sepia(.65) saturate(.55) brightness(1.14) contrast(.8); }
  to { filter: none; }
}
@keyframes meadow-paper-clear {
  from { opacity: .74; }
  to { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery .card .reviewed-motion { display: none; }
}
.gallery .royal-classic .preview img { object-position: 54% 47%; }
.gallery .minimal-ivory .preview img { object-position: 52% 53%; }
.gallery .ocean-breeze .preview img { object-position: 77% 57%; }
.gallery .art-deco .preview img { object-position: 52% top; }
.gallery .tropical-paradise .preview img { object-position: 52% 53%; }

@font-face {
  font-family: "Gallery Marck Script";
  src: url("/fonts/MarckScript-Regular.ttf") format("truetype");
  font-display: swap;
}
.gallery .card {
  --preview-font: "Cormorant Garamond", Georgia, serif;
  --preview-weight: 400;
  --preview-style: normal;
}
.gallery .royal-classic, .gallery .art-deco { --preview-font: Prata, Georgia, serif; }
.gallery .modern-editorial { --preview-font: Manrope, Arial, sans-serif; --preview-weight: 600; }
.gallery .retro-love { --preview-font: "Playfair Display", Georgia, serif; --preview-weight: 700; }
.gallery .minimal-ivory { --preview-font: "Playfair Display", Georgia, serif; }
.gallery .tropical-paradise { --preview-font: "Playfair Display", Georgia, serif; --preview-weight: 600; }
.gallery .midnight-elegance { --preview-font: Cormorant, "Cormorant Garamond", Georgia, serif; }
.gallery .rustic-boho { --preview-font: "Instrument Serif", "Cormorant Garamond", Georgia, serif; }
.gallery .newspaper-wedding { --preview-font: "PT Serif", Georgia, serif; --preview-weight: 700; }
.gallery .cinema-love { --preview-font: "Roboto Condensed", Arial, sans-serif; --preview-weight: 700; }
.gallery .cherry-romance { --preview-weight: 500; }
.gallery :is(.ribbon-lace,.blue-heirloom,.sepia-romance,.love-doodles,.blue-porcelain) { --preview-font: "Gallery Marck Script", Georgia, serif; }
.gallery .wedding-atlas { --preview-font: Georgia, serif; --preview-style: italic; }
.gallery .card .preview :is(.preview-name,.op-names,.reviewed-names,.reviewed-credit,.mail-envelope .mail-names),
.gallery .card :is(.print-preview,.illustrated-preview,.ca-preview) > span {
  font-family: var(--preview-font);
  font-weight: var(--preview-weight);
  font-style: var(--preview-style);
}
.gallery .cinema-love .preview :is(.preview-name,.reviewed-credit) { text-transform: uppercase; }
.gallery .card-caption p { color: #626658; font-size: 12px; line-height: 1.45; }
.gallery .reviewed-title { gap: .7rem; }
.reviewed-title .reviewed-names i { font-size: .55em; margin-inline: .22em; }
.gallery .cherry-romance .reviewed-cover {
  background: url('/art/print-grain.svg'), radial-gradient(ellipse at 32% 18%,#943a52,#491126 75%);
  color:#793049;
}
.cherry-romance .reviewed-sheet {
  position:relative;
  width:76%;height:76%;padding:7%;border:3px double #b47a88;
  background:url('/art/print-grain.svg'),#fbefdf;
  box-shadow:4px 13px 26px #26081880;
}
.cherry-romance .reviewed-sheet::after {
  content:"";position:absolute;top:-12%;left:19%;width:62%;height:31%;
  background:url('/art/print-bow.svg') center/contain no-repeat;pointer-events:none;
}
.cherry-romance .reviewed-title { border:1px solid #b47a8880; padding:10% 4% 4%; }
.cherry-romance .reviewed-names > span,.cherry-romance .reviewed-names > i,
.ribbon-lace .reviewed-names > span,.ribbon-lace .reviewed-names > i { display:block; }
.cherry-romance .reviewed-names,.ribbon-lace .reviewed-names { font-size:clamp(28px,10cqw,67px); line-height:1.03; }

.gallery .tropical-paradise .reviewed-cover {background:#143c2d;color:#f9eed5}
.tropical-paradise .reviewed-sheet { grid-template-rows: 35% minmax(0,1fr); height:89%; border:1px solid #b1bf8c75; padding:3%; }
.tropical-paradise .reviewed-title { position:relative; isolation:isolate; }
.tropical-paradise .reviewed-title::before {
  content:"";position:absolute;inset:2% auto 0 -2%;width:32%;z-index:-1;opacity:.55;
  background:url('/art/tropical-leaf.svg') left center/contain no-repeat;
}
.tropical-paradise .reviewed-names {font-size:clamp(24px,8.5cqw,55px)}
.gallery .tropical-paradise .reviewed-sheet img {object-position:center 60%;filter:saturate(.87)}

.gallery .ribbon-lace .reviewed-cover {
  background:url('/art/print-grain.svg'), radial-gradient(ellipse at 48% 26%,#777553,#4f5036 78%);
  color:#813d52;
}
.ribbon-lace .reviewed-sheet {
  position:relative;width:77%;height:76%;padding:13% 9% 5%;
  background:url('/art/ribbon-lace.svg') center/100% 100% no-repeat;
  filter:drop-shadow(3px 10px 8px #25221682);
}
.ribbon-lace .reviewed-sheet::before {
  content:"";position:absolute;width:64%;height:33%;left:18%;top:-10%;
  background:url('/art/print-bow.svg') center/contain no-repeat;pointer-events:none;
}

.gallery .winter-fairytale .preview {
  display:grid;grid-template-rows:minmax(0,1fr) auto;padding:0;background:#eaf2f5;
}
.gallery .winter-fairytale .preview > img {min-height:0;object-position:center 53%}
.gallery .winter-fairytale .preview > .preview-name {
  position:static;display:block;padding:.4em .3em .5em;color:#243e52;
  font-size:clamp(27px,4vw,46px);line-height:1.05;background:#eaf2f5;
}
.gallery .winter-fairytale .preview > small:not(.opening-badge) {display:none}
.gallery .winter-fairytale .opening-badge {bottom:auto;top:12px}

.gallery .celestial-love .reviewed-motion {
  background:url('/art/celestial-chart.svg') center/cover no-repeat,#23283c;
  color:#f1eadf;
}
.reviewed-constellation {width:clamp(150px,22vw,290px);overflow:visible;fill:#f3ddac}
.reviewed-constellation path {fill:none;stroke:#e0d3b4;stroke-width:1.15;stroke-dasharray:1;stroke-dashoffset:1}
.reviewed-constellation circle {transform:translate(var(--x),var(--y))}
.gallery .card.preview-playing .reviewed-constellation circle {animation:reviewed-gather .6s ease-in-out both}
.gallery .card.preview-playing .reviewed-constellation circle:nth-of-type(2n) {animation-delay:.075s}
.gallery .card.preview-playing .reviewed-constellation path {animation:reviewed-trace .57s .62s ease-out both}
@keyframes reviewed-gather {to {transform:translate(0,0)}}
@keyframes reviewed-trace {to {stroke-dashoffset:0}}

.gallery .love-doodles .doodle-figures {transform-origin:center bottom;transform-box:fill-box}
@media (prefers-reduced-motion:no-preference) {
  .gallery .love-doodles.preview-playing .doodle-figures {
    animation:doodle-dance 5s ease-in-out infinite;
  }
}
@keyframes doodle-dance {
  7% {transform:translateY(-4px) rotate(-4deg)}
  15% {transform:translateY(-3px) rotate(4deg)}
  22% {transform:rotate(-1.5deg)}
  29%, 100% {transform:none}
}

.gallery .art-deco .op-door::after {
  display: block;
  inset: 0;
  border: 0;
  border-radius: 0;
  background: url('/art/deco-panel.svg') center / 95% 96% no-repeat;
  opacity: 0;
  animation: op-deco-light 7.4s ease-in-out infinite;
  animation-delay: var(--op-delay);
}
@keyframes op-deco-light {
  0%, 18%, 58%, 100% { opacity: 0; }
  32%, 43% { opacity: 1; filter: brightness(1.8) drop-shadow(0 0 7px #efc77d); }
}

.gallery :is(.rustic-boho,.french-chateau,.minimal-ivory) .preview {
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  padding: 0;
}
.gallery :is(.rustic-boho,.french-chateau,.minimal-ivory) .preview > img {
  grid-row: 2;
  min-height: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none;
  border: 0;
}
.gallery :is(.rustic-boho,.french-chateau,.minimal-ivory) .preview > .preview-name {
  position: static;
  grid-row: 1;
  padding: .5em .25em;
  max-width: none;
  text-align: center;
  font-size: clamp(24px,3.3vw,42px);
  line-height: 1.1;
}
.gallery .rustic-boho .preview > .preview-name { background: #f2e4cf; color: #623d2e; }
.gallery .french-chateau .preview > .preview-name { background: #eaf0f3; color: #253e56; }
.gallery .minimal-ivory .preview > .preview-name { background: #faf5e9; color: #39342e; }

.gallery .cherry-romance .reviewed-cover { display: block; }
.cherry-preview-portrait {
  height: 100%;
  display: grid;
  grid-template-rows: minmax(0,1fr) auto;
  background: #fbefdf;
}
.gallery .cherry-preview-portrait img { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center 43%; }
.cherry-preview-portrait .reviewed-names {
  padding: .55em .35em;
  text-align: center;
  font-size: clamp(25px,8cqw,51px);
}
.cherry-preview-opening {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: url('/art/print-grain.svg'), radial-gradient(ellipse at 32% 18%,#943a52,#491126 75%);
  pointer-events: none;
}
.gallery .cherry-romance.preview-playing .cherry-preview-opening { animation: cherry-preview-reveal .65s .95s ease both; }
.gallery .cherry-romance.preview-playing .reviewed-sheet { animation: cherry-preview-lift .8s .4s ease both; }
.gallery .cherry-romance.preview-playing .reviewed-sheet::after { animation: cherry-preview-untie .65s ease both; }
@keyframes cherry-preview-untie { to { opacity: 0; transform: translate(28%,-38%) rotate(16deg) scale(.72); } }
@keyframes cherry-preview-lift { to { opacity: 0; transform: translateY(-17%) rotate(-4deg); } }
@keyframes cherry-preview-reveal { to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .cherry-preview-opening { display: none; }
}

.gallery .cinema-love .preview {
  display: grid;
  grid-template-rows: minmax(0,1fr) auto;
}
.gallery .cinema-love .preview > img { min-height: 0; }
.gallery .cinema-love .preview > .preview-name {
  position: static;
  padding: .55em .35em;
  background: #211f20;
  color: #f2ebe0;
  font-size: clamp(24px,3.3vw,42px);
  line-height: 1.1;
}
.gallery .cinema-love .preview > small { display: none; }
.gallery .cinema-love .opening-badge { top: 12px; bottom: auto; }

.gallery .old-money .preview {
  display: grid;
  grid-template-rows: minmax(0,1fr) auto;
}
.gallery .old-money .preview > img { min-height: 0; }
.gallery .old-money .preview > .preview-name {
  position: static;
  padding: .46em .35em .52em;
  background: #354232;
  color: #fbf6e7;
  font-size: clamp(25px,3.3vw,44px);
  line-height: 1.1;
}
.gallery .old-money .preview > small { display: none; }
.gallery .old-money .opening-badge { top: 12px; bottom: auto; }

.gallery .retro-love .preview {
  display: grid;
  grid-template-rows: minmax(0,1fr) auto;
}
.gallery .retro-love .preview > img { min-height: 0; transform: none; }
.gallery .retro-love .preview > .preview-name {
  position: static;
  padding: .46em .35em .52em;
  background: #5b2031;
  color: #fff0d7;
  font-size: clamp(25px,3.3vw,44px);
  line-height: 1.1;
}
.gallery .retro-love .preview > small { display: none; }
.gallery .retro-love .opening-badge { top: 12px; bottom: auto; }

.gallery .blue-porcelain .ca-preview,.gallery .wedding-atlas .ca-preview {
  display: grid;
  grid-template-rows: minmax(0,1fr) auto;
  gap: 0;
  padding: 6%;
}
.gallery .blue-porcelain .ca-preview { background: #e2ebf4; }
.gallery .ca-preview figure {
  min-width: 0;
  min-height: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  padding: .4rem;
  border: 1px solid #829bb8;
  background: #f9fbf8;
}
.gallery .ca-preview img { display:block; width:100%;height:100%;object-fit:cover;object-position:center 45%; }
.gallery .blue-porcelain .ca-preview > span {
  width:100%;padding:.65em .3em;
  border:3px double #829bb8;
  background:#f9fbf8;
}
.gallery .wedding-atlas .ca-preview { background:url('/art/atlas-map.svg') center/cover no-repeat; }
.gallery .wedding-atlas .ca-preview figure { border-color:#a19070;transform:rotate(-2deg); }
.gallery .wedding-atlas .ca-preview > span { z-index:1;margin-top:-.3rem; }
.gallery .winter-fairytale .opening-preview {
  background:
    linear-gradient(155deg,#d7e4ebcd,#edf4f7e8 49%,#b7ccd8dc),
    url('/photos/winter-fairytale.jpg') center 35%/cover;
}
.gallery .winter-fairytale .op-stage {
  inset: 19% 11%;
  border: 3px double #718da1;
  background: linear-gradient(145deg,#f7fbfbe8,#e5eff3d9);
  box-shadow: 0 12px 32px #25425726;
}
.gallery .winter-fairytale .op-stage::before,
.gallery .winter-fairytale .op-stage::after {
  content: "";
  position: absolute;
  width: 28%;
  height: 25%;
  background: url('/art/winter-frost.svg') top left/contain no-repeat;
  opacity: .3;
}
.gallery .winter-fairytale .op-stage::before { inset: 5% auto auto 5%; }
.gallery .winter-fairytale .op-stage::after { inset: auto 5% 5% auto; transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) {
  .gallery .ribbon-lace .cherry-preview-opening, .sepia-preview-page { display: none; }
}
.tropical-paradise .reviewed-title::before {
  background-image: url('/art/tropical-frond.svg');
  inset: -10% auto -10% -1%;
  opacity: .83;
  width: 35%;
}
.tropical-paradise .reviewed-title::after {
  content: "";
  position: absolute;
  inset: -10% -1% -10% auto;
  z-index: -1;
  width: 35%;
  background: url('/art/tropical-frond.svg') left center/contain no-repeat;
  opacity: .65;
  transform: scaleX(-1);
}

.gallery .royal-classic.card .preview {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
  padding: 22px clamp(14px, 3vw, 30px);
}
.gallery .royal-classic.card .preview > img {
  grid-row: 2;
  min-height: 0;
  transform: none;
}
.gallery .royal-classic.card .preview > .preview-name {
  position: static;
  grid-row: 1;
  min-width: 0;
  color: #672b3f;
  font-size: clamp(22px, 2.8vw, 34px);
  line-height: 1.25;
  text-wrap: balance;
}
.gallery .royal-classic.card .preview > small { display: none; }

.gallery .winter-fairytale .opening-preview,
.gallery .winter-fairytale .op-names { animation: none; }
.gallery .winter-fairytale.preview-playing .opening-preview {
  animation: winter-glass-clear 1.45s .5s ease both;
}
.gallery .winter-fairytale .op-stage { overflow: hidden; }
.gallery .winter-fairytale .op-stage::before {
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  background: linear-gradient(112deg, transparent 35%, #fff9 50%, transparent 65%);
}
.gallery .winter-fairytale.preview-playing .op-stage::before {
  animation: winter-glass-shimmer 1.15s .15s ease both;
}
@keyframes winter-glass-clear {
  35% { opacity: 1; }
  to { opacity: 0; transform: scale(1.035); }
}
@keyframes winter-glass-shimmer {
  from { opacity: .2; transform: translateX(-90%); }
  45% { opacity: .8; }
  to { opacity: 0; transform: translateX(90%); }
}

.gallery .ribbon-lace .reviewed-cover { display: block; }
.gallery .ribbon-lace .cherry-preview-opening {
  background: url('/art/print-grain.svg'), radial-gradient(ellipse at 48% 26%, #777553, #4f5036 78%);
}
.gallery .ribbon-lace .cherry-preview-portrait img { object-position: center 35%; }
.gallery .ribbon-lace.preview-playing .cherry-preview-opening {
  animation: cherry-preview-reveal .65s 1s ease both;
}
.gallery .ribbon-lace.preview-playing .reviewed-sheet {
  animation: cherry-preview-lift .8s .45s ease both;
}
.gallery .ribbon-lace.preview-playing .reviewed-sheet::before {
  transform-origin: center 30%;
  animation: ribbon-preview-release .65s ease both;
}
@keyframes ribbon-preview-release {
  25% { transform: rotate(-5deg); }
  to { opacity: 0; transform: translate(24%, -18%) rotate(12deg); }
}

.gallery .sepia-preview-print {
  position: relative;
  width: 90%;
  border-radius: 50%;
  perspective: 650px;
}
.gallery .sepia-romance .sepia-preview-print img { width: 100%; }
.sepia-preview-page {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 3px double #a98667;
  background: url('/art/sepia-botanical.svg') center / auto 90% no-repeat,
    url('/art/print-grain.svg'), linear-gradient(90deg, #ceb693, #f4e5cc 20%, #efddbe);
  transform-origin: left center;
}
.gallery .sepia-romance.preview-playing .sepia-preview-page {
  animation: sepia-preview-turn 6s cubic-bezier(.4,.1,.25,1) infinite;
}
@keyframes sepia-preview-turn {
  10% { opacity: 1; transform: rotateY(-65deg); }
  20%, 80% { opacity: 0; transform: rotateY(-115deg); }
  81% { opacity: 0; transform: none; }
  94%, 100% { opacity: 1; transform: none; }
}

.atlas-preview-route {
  display: none;
  position: absolute;
  inset: 0;
  background: url('/art/atlas-map.svg') center/cover no-repeat;
  pointer-events: none;
}
.atlas-preview-route svg {
  position: absolute;
  left: 17%;
  top: 35%;
  width: 22%;
  filter: drop-shadow(0 3px 3px #58453344);
}
@media (prefers-reduced-motion: no-preference) {
  .wedding-atlas.preview-playing .atlas-preview-route {
    display: block;
    animation: atlas-preview-reveal .65s 1.15s ease both;
  }
  .wedding-atlas.preview-playing .atlas-preview-route svg {
    animation: atlas-preview-walk 1.5s ease-in-out both;
  }
}
@keyframes atlas-preview-reveal { to { opacity: 0; } }
@keyframes atlas-preview-walk {
  33% { transform: translate(65%, -18%) rotate(-5deg); }
  66% { transform: translate(136%, 13%) rotate(4deg); }
  to { transform: translate(175%, 45%); }
}

.gallery .blue-heirloom .print-preview::before {
  inset: 50% 5% auto;
  aspect-ratio: 560 / 380;
  transform: translateY(-50%);
}
.gallery .blue-heirloom .print-preview::after {
  inset: auto auto calc(50% + min(27%, 30cqw)) 4%;
  width: 30%;
  height: 20%;
}
.gallery .heirloom-preview-content {
  position: absolute;
  inset: 50% 5% auto;
  aspect-ratio: 560 / 380;
  padding: 7% 12% 6%;
  transform: translateY(-50%);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: .55rem;
  min-width: 0;
}
.gallery .heirloom-preview-content img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: 62% 28%;
  border: 1px solid #8495a0;
  padding: 3px;
  background: #f6eddc;
  filter: saturate(.72);
}
.gallery .heirloom-preview-content span {
  font-family: var(--preview-font);
  font-size: clamp(1rem, 2.5vw, 1.85rem);
  font-style: normal;
}

.gallery .rustic-boho .reviewed-cover { background: #e5dac6; }
.gallery .rustic-boho .reviewed-sheet {
  width: 80%;
  height: 82%;
  grid-template-rows: minmax(0, 1fr) auto;
  padding: 4%;
  background: #fff8ea;
  transform: rotate(-2deg);
  box-shadow: 0 10px 24px #62452d35;
}
.gallery .rustic-boho .reviewed-title { grid-row: 2; padding-top: .75rem; color: #623d2e; }
.gallery .rustic-boho .reviewed-names { font-size: clamp(22px, 8cqw, 40px); }
.gallery .rustic-boho .reviewed-sheet figure { grid-row: 1; }
.gallery .rustic-boho .reviewed-sheet img { object-position: center top; }
