/* Isolated poster system; also loaded on its own inside the public Shadow DOM. */
.paper-v2, .paper-v2 * { box-sizing:border-box; }
.paper-v2 {
  --paper:#f5ead9; --accent:#ba6f72; --ink:#684238; --wash:#dcc4b0;
  position:relative; display:block; width:100%; aspect-ratio:5/7; overflow:hidden;
  padding:0; isolation:isolate; container-type:inline-size;
  background:var(--paper); color:var(--ink); text-align:left;
  font-family:Georgia,"Songti SC","SimSun",serif;
}
.paper-v2::before,.paper-v2::after { content:none; }
.paper-v2.theme-cream-ribbon { --paper:#fff2d8;--accent:#b67574;--ink:#76503e;--wash:#dfc697; }
.paper-v2.theme-vanilla-window { --paper:#eff0df;--accent:#77865c;--ink:#465a3a;--wash:#b7c298; }
.paper-v2.theme-oat-morning { --paper:#ead8bb;--accent:#98734e;--ink:#62472f;--wash:#b6a17f; }
.paper-v2.theme-blush-heart { --paper:#fbe1e6;--accent:#bd445e;--ink:#8b3647;--wash:#e5a6b4; }
.paper-v2.theme-rose-glow { --paper:#f4d7dd;--accent:#b76074;--ink:#763748;--wash:#d99ba9; }
.paper-v2.theme-pink-confetti { --paper:#ffe4e9;--accent:#d57596;--ink:#8b4564;--wash:#eab8d2; }
.paper-v2.theme-midnight-spotlight { --paper:#172343;--accent:#d4ad6c;--ink:#fbe9c5;--wash:#526187; }
.paper-v2.theme-gold-encore { --paper:#29231f;--accent:#c79b57;--ink:#f4ddb5;--wash:#665440; }
.paper-v2.theme-violet-starlight { --paper:#48335f;--accent:#dabada;--ink:#fff0eb;--wash:#9170a1; }
.paper-v2.theme-one-polaroid { --paper:#f6ede3;--accent:#a83743;--ink:#772d36;--wash:#d3a3a0; }
.paper-v2.theme-taped-memories { --paper:#d7bea0;--accent:#9c533e;--ink:#5b3b2d;--wash:#b39167; }
.paper-v2.theme-film-strip { --paper:#e2cfb0;--accent:#a04b3b;--ink:#48342e;--wash:#bda381; }
.paper-v2.theme-three-chapters { --paper:#f4e4cd;--accent:#9b6e4d;--ink:#70533e;--wash:#c6ac8c; }
.paper-v2.theme-days-together { --paper:#e1eeed;--accent:#648d89;--ink:#3d676a;--wash:#a9c7c3; }
.paper-v2.theme-three-stars { --paper:#293447;--accent:#c5aa7b;--ink:#f7e3ba;--wash:#637386; }
.paper-v2.theme-ivory-letter { --paper:#f6ecdf;--accent:#c28d84;--ink:#7f574f;--wash:#dbbfa7; }
.paper-v2.theme-kraft-note { --paper:#d3b38c;--accent:#8e5c43;--ink:#52372c;--wash:#b08b69; }
.paper-v2.theme-blue-aerogram { --paper:#eeeadd;--accent:#548093;--ink:#386178;--wash:#b4c5c8; }
.paper-v2.theme-editorial-serif { --paper:#f7eee0;--accent:#a63f4c;--ink:#772c3b;--wash:#d7b8a5; }
.paper-v2.theme-bold-cover { --paper:#ed625b;--accent:#952e3a;--ink:#632534;--wash:#f6b28c; }
.paper-v2.theme-mono-profile { --paper:#e7dfcc;--accent:#6f6356;--ink:#3d3830;--wash:#b8ad98;filter:none; }
.paper-v2.theme-birthday-wish { --paper:#fff1b8;--accent:#7cabc4;--ink:#5a7c9f;--wash:#d4dcbd; }
.paper-v2.theme-balloon-day { --paper:#dff0f2;--accent:#ae7296;--ink:#576889;--wash:#b6d2e5; }
.paper-v2.theme-confetti-hour { --paper:#ffecb7;--accent:#9971ca;--ink:#7151a2;--wash:#d6b6eb; }
.paper-v2.theme-concert-ticket { --paper:#e6ddd0;--accent:#b9514f;--ink:#833e3a;--wash:#b8ad9b; }
.paper-v2.theme-our-star-map { --paper:#152b46;--accent:#bba778;--ink:#f2e1c2;--wash:#536d8a; }
.paper-v2.theme-memory-film { --paper:#623e37;--accent:#e0b885;--ink:#f4dfbe;--wash:#9e7357; }
.paper-v2.theme-photo-booth { --paper:#efdcd6;--accent:#a64f5d;--ink:#713b44;--wash:#d4acb2; }
.paper-v2.theme-lilac-calendar { --paper:#e9ddff;--accent:#9977d3;--ink:#6d4a9d;--wash:#c6a9ed; }
.paper-v2.theme-cherry-love-letter { --paper:#f8e6dc;--accent:#b5474d;--ink:#863c40;--wash:#dea2a1; }

/* Paper textures are geometric: all representational artwork comes from the original raster atlas. */
.paper-v2.surface-gingham { background-image:linear-gradient(90deg,transparent 50%,color-mix(in srgb,var(--wash) 34%,transparent) 50%),linear-gradient(transparent 50%,color-mix(in srgb,var(--wash) 38%,transparent) 50%); background-size:9% 6.43%; }
.paper-v2.surface-grid { background-image:linear-gradient(color-mix(in srgb,var(--accent) 17%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--accent) 17%,transparent) 1px,transparent 1px);background-size:5% 3.57%; }
.paper-v2.surface-stripe { background-image:repeating-linear-gradient(105deg,transparent 0 6%,color-mix(in srgb,var(--wash) 35%,transparent) 6% 12%); }
.paper-v2.surface-linen { background-image:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff30 3px 4px),repeating-linear-gradient(90deg,transparent 0 3px,#ffffff30 3px 4px); }
.paper-v2.surface-newsprint { background-image:repeating-linear-gradient(0deg,transparent 0 3px,#50391d0b 3px 4px),linear-gradient(115deg,#ffffff38,transparent 35%,#5a332119); }
.paper-v2.surface-night { background-image:radial-gradient(ellipse at 25% 0%,var(--wash),transparent 58%),radial-gradient(circle,#e9d9b066 .5px,transparent 1px);background-size:100% 100%,6% 4.3%; }
.paper-v2.surface-airmail { background-image:repeating-linear-gradient(135deg,#ac4a50 0 2%,#f9f1df 2% 4%,#52778f 4% 6%,#f9f1df 6% 8%); }
.paper-v2 .paper-underlay { position:absolute;z-index:0;inset:4%;background:color-mix(in srgb,var(--paper) 89%,white);border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);box-shadow:0 1cqw 3cqw #36241414;transform:rotate(-1deg); }
.paper-v2.surface-newsprint .paper-underlay { inset:6% 4%;transform:rotate(2deg);background:color-mix(in srgb,var(--paper) 65%,#fffcf0);border:1cqw double var(--wash); }
.paper-v2.surface-night .paper-underlay { background:transparent;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);transform:none;inset:3%; }
.paper-v2 .paper-edition { position:absolute;z-index:3;top:3.2%;left:6%;right:6%;display:flex;justify-content:space-between;font:700 1.7cqw/1.2 Arial,sans-serif;letter-spacing:.2em; }
.paper-v2 .paper-headline { position:absolute;z-index:4;top:7.2%;left:8%;right:8%;text-align:center; }
.paper-v2 .paper-headline p { margin:0 0 1cqw;font:700 1.8cqw/1.4 Arial,sans-serif;letter-spacing:.2em; }
.paper-v2 .paper-headline h3 { margin:0;color:var(--accent);font:italic 700 8cqw/1.03 Georgia,"Times New Roman",serif;letter-spacing:-.055em;text-wrap:balance;text-shadow:.3cqw .3cqw 0 color-mix(in srgb,var(--paper) 75%,white); }
.paper-v2 .paper-headline>span { display:block;margin-top:1.8cqw;font:700 3.3cqw/1.5 "Songti SC","SimSun",serif;letter-spacing:.08em; }
.paper-v2 .photos { position:absolute;z-index:2;inset:25% 15% 38%; }
.paper-v2 .photo { position:absolute;inset:0;display:block;min-width:0;min-height:0;padding:0;overflow:hidden;border:1.5cqw solid #fff9ed;border-bottom-width:5cqw;border-radius:0;background:var(--wash);box-shadow:.6cqw 1cqw 2.8cqw #3c2a302b;color:var(--ink);transform:none; }
.paper-v2 .photo::before,.paper-v2 .photo::after { content:none; }
.paper-v2 .photo img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%; }
.paper-v2 .photo small { position:absolute;z-index:2;bottom:0;right:2%;padding:.6cqw 1cqw;background:#fff9ed;font:500 1.3cqw/1.1 Arial,sans-serif;letter-spacing:.08em;color:#776456; }
.paper-v2 .photo i { position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);padding:1.5cqw 2cqw;width:max-content;max-width:95%;border:1px dashed currentColor;border-radius:1cqw;background:#fffcf0e8;color:#6a4b4a;font:600 2.4cqw/1.3 Arial,"Microsoft YaHei",sans-serif;letter-spacing:0;opacity:1; }
.paper-v2 .photo.has-image i { display:none; }
.paper-v2 button.photo { cursor:pointer;appearance:none; }
.paper-v2 button.photo.has-image:hover i,.paper-v2 button.photo:focus-visible i { display:block; }
.paper-v2 .photo.is-active { outline:.8cqw solid #a33762;outline-offset:.5cqw;box-shadow:0 0 0 1.8cqw #fff5; }
.paper-v2 .copy { position:absolute;z-index:4;inset:66% 9% 8%;padding:3.6cqw 4.3cqw;background:#fffaf0f5;color:#644c44;box-shadow:.3cqw .6cqw 2cqw #59402c14;transform:rotate(-1deg);border:1px solid #b39c7c38; }
.paper-v2 .letter-salutation { margin:0 0 1.6cqw;font:italic 700 3.1cqw/1.2 Georgia,"SimSun",serif;color:var(--accent); }
.paper-v2 .message { margin:0;max-width:none;font:400 3.1cqw/1.65 "Songti SC","SimSun",serif;letter-spacing:.02em;white-space:normal;overflow-wrap:anywhere;word-break:break-word; }
.paper-v2.text-long .message { font-size:2.85cqw;line-height:1.6; }
.paper-v2 .signature { margin:2cqw 0 0;text-align:right;font:500 2.5cqw/1.4 "Songti SC","SimSun",serif;color:#74574f;opacity:1;overflow-wrap:anywhere; }
.paper-v2 .paper-footer { position:absolute;z-index:5;bottom:3%;left:7%;right:7%;display:flex;align-items:center;justify-content:space-between;font:500 1.8cqw/1.2 "Microsoft YaHei",sans-serif;letter-spacing:.08em; }
.paper-v2 .paper-footer b { font:italic 700 3.5cqw/1 Georgia,serif; }

/* Each motif is a small independent image so previews and exported PNGs load only what they use. */
.paper-v2 .paper-sticker { position:absolute;z-index:5;display:block;pointer-events:none;background-repeat:no-repeat;background-position:center;background-size:100% 100%;filter:drop-shadow(.2cqw .5cqw .25cqw #34211420); }
.paper-v2 .sticker-position-0 { width:30%;left:-2%;top:43%;transform:rotate(-9deg); }
.paper-v2 .sticker-position-1 { width:28%;right:-1%;top:49%;transform:rotate(9deg); }
.paper-v2 .sticker-position-2 { width:19%;right:1%;top:16%;transform:rotate(13deg); }
.paper-v2 .sticker-cake { aspect-ratio:337/344;background-image:url('/templates/assets/stickers/cake.webp'); }
.paper-v2 .sticker-bouquet { aspect-ratio:304/350;background-image:url('/templates/assets/stickers/bouquet.webp'); }
.paper-v2 .sticker-bear { aspect-ratio:285/328;background-image:url('/templates/assets/stickers/bear.webp'); }
.paper-v2 .sticker-bow { aspect-ratio:304/320;background-image:url('/templates/assets/stickers/bow.webp'); }
.paper-v2 .sticker-balloons { aspect-ratio:320/298;background-image:url('/templates/assets/stickers/balloons.webp'); }
.paper-v2 .sticker-letter { aspect-ratio:291/289;background-image:url('/templates/assets/stickers/letter.webp'); }
.paper-v2 .sticker-moon { aspect-ratio:290/287;background-image:url('/templates/assets/stickers/moon.webp'); }
.paper-v2 .sticker-cassette { aspect-ratio:309/260;background-image:url('/templates/assets/stickers/cassette.webp'); }
.paper-v2 .sticker-cherries { aspect-ratio:310/280;background-image:url('/templates/assets/stickers/cherries.webp'); }
.paper-v2 .sticker-gift { aspect-ratio:291/287;background-image:url('/templates/assets/stickers/gift.webp'); }
.paper-v2 .sticker-daisy { aspect-ratio:301/305;background-image:url('/templates/assets/stickers/daisy.webp'); }
.paper-v2 .sticker-bunting { aspect-ratio:322/236;background-image:url('/templates/assets/stickers/bunting.webp'); }
.paper-v2 .sticker-partyhat { aspect-ratio:325/328;background-image:url('/templates/assets/stickers/partyhat.webp'); }
.paper-v2 .sticker-medallion { aspect-ratio:296/319;background-image:url('/templates/assets/stickers/medallion.webp'); }
.paper-v2 .sticker-butterfly { aspect-ratio:292/314;background-image:url('/templates/assets/stickers/butterfly.webp'); }
.paper-v2 .sticker-cupcake { aspect-ratio:256/326;background-image:url('/templates/assets/stickers/cupcake.webp'); }

/* Different structures, not just different colors. Every photo slot keeps its original index. */
.paper-v2.design-polaroid .photos { inset:25% 17% 38%;transform:rotate(-4deg); }
.paper-v2.design-polaroid .photo { border-width:2cqw;border-bottom-width:6cqw; }
.paper-v2.design-polaroid .copy { transform:rotate(1deg); }
.paper-v2.design-polaroid.theme-blush-heart .photos { transform:rotate(3deg);left:18%; }
.paper-v2.design-arch .photos { inset:25% 20% 38%; }
.paper-v2.design-arch .photo { border-radius:48% 48% 1% 1%;border-width:1.8cqw;outline:1px solid var(--accent);outline-offset:1.5cqw; }
.paper-v2.design-arch .photo small { display:none; }
.paper-v2.design-arch .sticker-position-0 { top:40%;width:32%; }
.paper-v2.design-round .photos { inset:24% 24% auto;height:auto;aspect-ratio:1; }
.paper-v2.design-round .photo { border-radius:50%;border-width:2.3cqw;outline:1px dashed var(--accent);outline-offset:1.2cqw; }
.paper-v2.design-round .photo small { display:none; }
.paper-v2.design-round .copy { top:65%;border-radius:2cqw;transform:none; }
.paper-v2.design-round .sticker-position-0 { top:41%;left:0;width:33%; }
.paper-v2.design-round .sticker-position-1 { top:43%;right:0; }
.paper-v2.design-duo .photos { inset:25% 8% 38%; }
.paper-v2.design-duo .photo-1 { inset:0 42% 12% 0;transform:rotate(-7deg); }
.paper-v2.design-duo .photo-2 { inset:12% 0 0 44%;transform:rotate(7deg); }
.paper-v2.design-duo .sticker-position-0 { top:43%;width:27%; }
.paper-v2.design-duo .sticker-position-1 { top:47%;width:25%; }
.paper-v2.design-trio .photos { inset:25% 6% 37%; }
.paper-v2.design-trio .photo-1 { inset:0 62% 25% 0;transform:rotate(-7deg); }
.paper-v2.design-trio .photo-2 { inset:13% 29% 6% 32%;transform:rotate(5deg); }
.paper-v2.design-trio .photo-3 { inset:1% 0 24% 65%;transform:rotate(9deg); }
.paper-v2.design-trio .sticker-position-0 { top:46%;width:25%; }
.paper-v2.design-trio .sticker-position-1 { top:45%;width:22%; }
.paper-v2.design-trio .sticker-position-2 { top:19%;width:20%; }
.paper-v2.design-film .photos { inset:27% 6% 38%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2cqw;padding:4cqw 2.5cqw;background:#382b25;border-top:1.3cqw dashed #efe0bf;border-bottom:1.3cqw dashed #efe0bf;transform:rotate(-3deg); }
.paper-v2.design-film .photo { position:relative;inset:auto;border:0;border-bottom:2.6cqw solid #fff9ed; }
.paper-v2.design-film .sticker-position-0 { top:49%;width:30%; }
.paper-v2.design-film .sticker-position-1 { top:51%;width:23%; }
.paper-v2.design-timeline .photos { inset:28% 7% 39%;display:flex;align-items:center;gap:4%; }
.paper-v2.design-timeline .photo { position:relative;inset:auto;flex:1;height:88%;transform:rotate(-4deg); }
.paper-v2.design-timeline .photo-2 { transform:translateY(-5%) rotate(3deg); }
.paper-v2.design-timeline .photo-3 { transform:translateY(5%) rotate(-2deg); }
.paper-v2.design-timeline .sticker-position-0 { top:48%;width:24%; }
.paper-v2.design-timeline .sticker-position-1 { top:49%;width:24%; }
.paper-v2.theme-three-stars .photo { height:auto;aspect-ratio:1;border-radius:50%;border-width:1cqw; }
.paper-v2.theme-three-stars .photo small { display:none; }
.paper-v2.design-split .photos { inset:26% 47% 14% 7%;transform:rotate(-4deg); }
.paper-v2.design-split .copy { inset:28% 7% 10% 55%;padding:3cqw;transform:rotate(2deg); }
.paper-v2.design-split .signature { margin-top:4cqw; }
.paper-v2.design-split .sticker-position-0 { top:70%;left:-1%;width:29%; }
.paper-v2.design-split .sticker-position-1 { top:17%;right:0;width:22%; }
.paper-v2.design-split .sticker-position-2 { top:80%;right:0;width:19%; }
.paper-v2.theme-mono-profile .photo img { filter:grayscale(1); }
.paper-v2.design-letter .paper-underlay { inset:5%;transform:rotate(-2deg); }
.paper-v2.design-letter .paper-headline { left:9%;right:39%;top:12%;text-align:left; }
.paper-v2.design-letter .paper-headline h3 { font-size:7cqw; }
.paper-v2.design-letter .photos { inset:13% 9% 65% 65%;transform:rotate(8deg); }
.paper-v2.design-letter .photo { border-width:1.5cqw;border-bottom-width:3cqw; }
.paper-v2.design-letter .copy { inset:39% 10% 11%;padding:4cqw 5cqw;transform:rotate(-2deg);background-color:#fffaf0;background-image:repeating-linear-gradient(transparent 0 6.45cqw,#b0967c30 6.45cqw 6.6cqw);border:1cqw double #c1a99580; }
.paper-v2.design-letter .message { font-size:3.5cqw;line-height:1.88; }
.paper-v2.design-letter .letter-salutation { margin-bottom:3cqw; }
.paper-v2.design-letter .signature { margin-top:4cqw; }
.paper-v2.design-letter .sticker-position-0 { top:76%;left:0;width:25%; }
.paper-v2.design-letter .sticker-position-1 { top:26%;right:0;width:27%; }
.paper-v2.design-letter .sticker-position-2 { top:1%;right:auto;left:3%;width:19%; }
.paper-v2.design-cover .photos { inset:3% 4% 29%; }
.paper-v2.design-cover .photo { border:0; }
.paper-v2.design-cover .photo img { object-position:center 18%; }
.paper-v2.design-cover .paper-edition { color:white;text-shadow:0 1px 3px #000b; }
.paper-v2.design-cover .paper-headline { top:9%;left:7%;right:7%;padding:2cqw 3cqw;background:#fff7e9e8;transform:rotate(-3deg); }
.paper-v2.design-cover .paper-headline h3 { font-size:7.7cqw; }
.paper-v2.design-cover .paper-headline>span { font-size:3cqw; }
.paper-v2.design-cover .copy { inset:67% 7% 7%;transform:rotate(1deg); }
.paper-v2.design-cover .sticker-position-0 { top:49%;left:0;width:31%; }
.paper-v2.design-cover .sticker-position-1 { top:54%;right:0;width:28%; }
.paper-v2.design-cover .sticker-position-2 { top:23%;right:0;width:17%; }
.paper-v2.theme-gold-encore .paper-headline,.paper-v2.theme-memory-film .paper-headline { background:#221c18ce;color:#f4dfb8; }
.paper-v2.design-ticket .paper-underlay { inset:5%;transform:none;border:1px dashed var(--accent); }
.paper-v2.design-ticket .photos { inset:28% 10% 40%; }
.paper-v2.design-ticket .photo { border:1cqw solid #fff8e9; }
.paper-v2.design-ticket .paper-headline h3 { font:900 6.5cqw/1.02 Arial,sans-serif;letter-spacing:-.06em; }
.paper-v2.design-ticket .copy { border-top:.6cqw dashed var(--accent);box-shadow:none; }
.paper-v2.design-ticket .sticker-position-0 { top:48%;width:32%; }
.paper-v2.design-ticket .sticker-position-1 { top:50%;width:26%; }
.paper-v2.design-booth .photos { inset:25% 14% 37%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:2cqw;transform:rotate(-3deg); }
.paper-v2.design-booth .photo { position:relative;inset:auto;border-width:1cqw;border-bottom-width:3cqw; }
.paper-v2.design-booth .sticker-position-0 { top:48%;width:23%; }
.paper-v2.design-booth .sticker-position-1 { top:47%;width:25%; }
.paper-v2.design-calendar .paper-underlay { inset:24% 8% 7%;transform:none;border:1.5cqw solid var(--accent);border-top:4cqw solid var(--accent);border-radius:2cqw; }
.paper-v2.design-calendar .photos { inset:29% 28% auto;aspect-ratio:1; }
.paper-v2.design-calendar .photo { border-radius:50%;border:1.2cqw solid var(--accent); }
.paper-v2.design-calendar .photo small { display:none; }
.paper-v2.design-calendar .copy { inset:65% 13% 11%;padding:3cqw;border-radius:2cqw;background:#f8f3ff;transform:none;color:#644983; }
.paper-v2.design-calendar.text-long .message { font-size:2.6cqw; }
.paper-v2.design-calendar .sticker-position-0 { top:37%;left:-1%;width:25%; }
.paper-v2.design-calendar .sticker-position-1 { top:47%;right:0;width:25%; }
.paper-v2.design-calendar .sticker-position-2 { top:18%;right:22%;width:54%; }
.paper-v2.theme-birthday-wish .sticker-position-1 { top:20%;right:16%;width:64%; }
.paper-v2.theme-confetti-hour .sticker-position-0 { top:20%;left:17%;width:65%; }
.paper-v2.theme-confetti-hour .sticker-position-2 { top:46%;right:0;width:24%; }
.paper-v2.theme-cream-ribbon .sticker-position-0 { top:19%;left:7%;width:26%; }
.paper-v2.theme-cream-ribbon .sticker-position-2 { top:50%;right:auto;left:-2%;width:28%; }
.paper-v2.theme-blush-heart .sticker-position-2 { top:20%;right:5%;width:26%; }
.paper-v2.theme-cherry-love-letter .sticker-position-0 { top:78%;width:25%; }
.paper-v2.theme-three-chapters .paper-headline h3 { font-size:6.5cqw; }
.paper-v2.theme-photo-booth .paper-headline h3,.paper-v2.theme-days-together .paper-headline h3,.paper-v2.theme-film-strip .paper-headline h3 { font-size:6.8cqw; }
@media print { .paper-v2 { print-color-adjust:exact;-webkit-print-color-adjust:exact;break-inside:avoid; } }
@media (prefers-reduced-motion:reduce) { .template-card > .template { transition:none; } }
