/* Original birthday scenes and Valentine paper keepsakes, shared with miniatures. */
:is(.c-design-pixelquest,.c-design-monsterhugs,.c-design-paperheart,.c-design-togetheralways) .c-invitation{max-width:1000px;margin:auto}
.rf-cover{position:relative!important;container-type:inline-size;isolation:isolate;display:flex!important;flex-direction:column;align-items:center;height:auto!important;min-height:0!important;padding:7% 6%!important;overflow:hidden;text-align:center;background:var(--c-bg);color:var(--c-ink)}
.rf-cover p{margin:0;white-space:pre-line;overflow-wrap:anywhere;max-width:100%}
.rf-cover .rf-title{display:block;position:relative;max-width:100%;margin:4cqw 0;font:400 calc(10cqw * var(--c-scale,1))/1.08 var(--c-heading);letter-spacing:-.035em;white-space:pre-line;overflow-wrap:anywhere;color:var(--c-accent)}
.rf-eyebrow{font:600 1.6cqw/1.8 var(--c-body);letter-spacing:.2em}
.rf-name{font:400 4cqw/1.4 var(--c-heading)}
.rf-cover .rf-intro{font:400 2.6cqw/1.8 var(--c-body);margin:4cqw auto;max-width:90%}
.rf-cover .rf-subtitle{font:500 1.4cqw/1.8 var(--c-body);letter-spacing:.14em;margin-top:4cqw}
.rf-date{display:block;font:500 2cqw/1.6 var(--c-body);margin-top:2cqw}
.rf-button{display:inline-flex;align-items:center;justify-content:center;gap:2cqw;min-height:44px;margin-top:3cqw;padding:2cqw 4cqw;font:600 2.3cqw/1.4 var(--c-body);color:var(--c-ink);text-decoration:none;border:1px solid currentColor}
.rf-portrait{position:relative;width:52%;margin:6cqw auto 0;aspect-ratio:3/4;padding:1.5cqw;background:var(--c-white);transform:rotate(-4deg);box-shadow:0 2cqw 4cqw #0002}
.rf-portrait .c-photo{height:100%;width:100%;margin:0}.rf-portrait figcaption{display:none}
.rf-cover a:focus-visible{outline:3px solid var(--c-accent);outline-offset:6px}

/* A handheld game, pixel landscape and chunky controller buttons. */
.rf-pixelquest{background:radial-gradient(circle at 20% 20%,#69509655,transparent 40%),var(--c-bg);padding-top:4%!important}
.rf-game-top{display:flex;justify-content:space-between;width:100%;font:700 1.8cqw/1.6 monospace;color:var(--c-accent);letter-spacing:.1em;margin-bottom:4cqw}
.rf-console{width:91%;padding:3cqw;background:var(--c-secondary);border:1cqw solid var(--c-ink);border-radius:4cqw 4cqw 12cqw 4cqw;box-shadow:1.5cqw 1.5cqw 0 color-mix(in srgb,var(--c-accent) 40%,transparent);rotate:-2deg}
.rf-game-screen{position:relative;border:2cqw solid color-mix(in srgb,var(--c-bg) 72%,var(--c-secondary));background:var(--c-bg);padding:4cqw 2cqw 3cqw;box-shadow:inset 0 0 0 .5cqw var(--c-accent);overflow:hidden}
.rf-game-screen:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(transparent 0 3px,#fff03 3px 4px);pointer-events:none}
.rf-game-screen .rf-title{font-weight:800;font-size:calc(8.8cqw * var(--c-scale,1));letter-spacing:-.045em;text-shadow:.45cqw .45cqw 0 #0006}
.rf-game-screen .rf-name{font-size:3.8cqw}.rf-game-screen .rf-eyebrow{font-size:1.35cqw}
.rf-game-world{position:relative;width:100%;height:23cqw;margin:1cqw 0 3cqw;color:var(--c-accent)}
.rf-pixel-friend{position:absolute;width:15cqw;height:15cqw;left:calc(50% - 7.5cqw);bottom:4cqw}
.rf-pixel-ground{position:absolute;left:-4cqw;right:-4cqw;bottom:0;height:3cqw;background:repeating-linear-gradient(90deg,var(--c-accent) 0 3cqw,transparent 3cqw 3.6cqw);border-top:.7cqw solid var(--c-accent)}
.rf-pixel-star{position:absolute;left:9%;top:1cqw;font-size:5cqw;color:var(--c-secondary)}
.rf-pixel-coin{position:absolute;right:10%;top:7cqw;display:grid;place-items:center;width:6cqw;height:6cqw;border:.5cqw solid currentColor;color:#ffdb75;font-size:4cqw}
.rf-game-ready{display:block;font:700 1.6cqw/1.7 monospace;color:var(--c-accent);letter-spacing:.15em;margin-top:2cqw}
.rf-game-controls{display:flex;align-items:center;justify-content:space-between;gap:3cqw;height:17cqw;color:var(--c-bg);padding:1cqw 3cqw 0}
.rf-dpad{font-size:13cqw;line-height:1;text-shadow:.6cqw .6cqw 0 #fff5}.rf-game-controls>span:nth-child(2){font:700 1.6cqw/1.5 monospace;letter-spacing:.16em;flex:1}
.rf-game-controls i{display:grid;place-items:center;width:7cqw;height:7cqw;background:var(--c-accent);border:.5cqw solid var(--c-bg);border-radius:50%;font:700 2.2cqw monospace;box-shadow:.5cqw .7cqw 0 var(--c-bg);rotate:-20deg}.rf-game-controls i:last-child{margin-bottom:5cqw}
.rf-pixelquest .rf-button{background:var(--c-accent);color:var(--c-bg);border:0;box-shadow:.6cqw .6cqw 0 var(--c-secondary)}
.c-design-pixelquest .c-section{border-top:2px dashed color-mix(in srgb,var(--c-accent) 45%,transparent)}
.c-design-pixelquest :is(.c-section-heading h2,.c-closing h2){font-weight:800;letter-spacing:-.04em}
.c-design-pixelquest :is(.c-moment,.c-appointment){border:2px solid var(--c-secondary);padding:25px;box-shadow:6px 6px 0 color-mix(in srgb,var(--c-secondary) 35%,transparent)}
.c-design-pixelquest .c-moment-number{font-family:monospace;color:var(--c-accent)}
.c-design-pixelquest .c-opening-inner{border:4px solid var(--c-accent);box-shadow:12px 12px 0 var(--c-secondary)}

/* A lopsided parade of three friendly monsters. */
.rf-monsterhugs{background-image:radial-gradient(circle,#a45f3814 1px,transparent 1px);background-size:12px 12px}
.rf-monster-heading{position:relative;width:100%}.rf-monster-heading .rf-title{font-size:calc(11.2cqw * var(--c-scale,1));rotate:-3deg}
.rf-sticker{position:absolute;right:-3%;bottom:-5cqw;display:grid;place-items:center;width:12cqw;height:12cqw;rotate:15deg;border-radius:50%;background:var(--c-secondary);font:400 3.6cqw/1 var(--c-heading);box-shadow:.5cqw .5cqw 0 var(--c-ink)}
.rf-monster-parade{position:relative;display:flex;align-items:flex-end;justify-content:center;width:100%;height:43cqw;gap:2cqw;margin-top:4cqw}
.rf-monster{position:relative;flex:0 0 28%;height:27cqw;border:.5cqw solid var(--c-ink);border-radius:44% 42% 25% 30%;background:#a7c58e;rotate:-9deg;box-shadow:1cqw 1cqw 0 #43305d19}
.rf-monster:before,.rf-monster:after{content:'';position:absolute;width:6cqw;height:3cqw;top:52%;background:inherit;border:.5cqw solid var(--c-ink);border-radius:40%;z-index:-1}.rf-monster:before{left:-5cqw;rotate:-40deg}.rf-monster:after{right:-5cqw;rotate:40deg}
.rf-monster-pink{height:34cqw;background:#efa2ab;rotate:4deg;z-index:1;border-radius:44% 44% 20% 20%}.rf-monster-blue{height:25cqw;background:var(--c-secondary);rotate:10deg}
.rf-monster-eyes{display:flex;justify-content:center;gap:2cqw;margin-top:8cqw}.rf-monster-eyes i{position:relative;display:block;width:6cqw;height:7cqw;border:.4cqw solid var(--c-ink);border-radius:50%;background:#fffdf3}.rf-monster-eyes i:after{content:'';position:absolute;left:42%;top:36%;width:2cqw;height:3cqw;border-radius:50%;background:var(--c-ink)}
.rf-monster-pink .rf-monster-eyes i{width:11cqw;height:12cqw}.rf-monster-pink .rf-monster-eyes{margin-top:6cqw}
.rf-monster-mouth{display:block;width:7cqw;height:4cqw;margin:2cqw auto;border-radius:0 0 50% 50%;background:var(--c-ink);border-top:1cqw solid #fffdf3}
.rf-monster-feet:before,.rf-monster-feet:after{content:'';position:absolute;bottom:-3cqw;width:6cqw;height:4cqw;background:var(--c-ink);border-radius:0 0 40% 40%}.rf-monster-feet:before{left:4cqw}.rf-monster-feet:after{right:4cqw}
.rf-monster-hat{position:absolute;left:6cqw;top:-10cqw;width:11cqw;height:12cqw;clip-path:polygon(50% 0,100% 100%,0 100%);background:repeating-linear-gradient(20deg,#efba56 0 2cqw,var(--c-accent) 2cqw 3cqw);rotate:-8deg}
.rf-monster-pink .rf-monster-hat{left:14cqw;rotate:15deg}.rf-monster-blue .rf-monster-hat{background:repeating-linear-gradient(-20deg,#efba56 0 2cqw,#8a68a6 2cqw 3cqw)}
.rf-party-spark{position:absolute;left:1%;top:0;font-size:7cqw;color:var(--c-accent);rotate:-20deg}.rf-party-spark:last-child{left:auto;right:0;top:2cqw;color:#72925c}
.rf-monsterhugs .rf-intro{margin-top:7cqw}.rf-monsterhugs .rf-button{background:var(--c-accent);color:#fff6e4;border-radius:50px;border:2px solid var(--c-ink);box-shadow:.5cqw .6cqw 0 var(--c-ink)}
.c-design-monsterhugs :is(.c-section-heading h2,.c-closing h2){font-family:var(--c-heading);color:var(--c-accent)}
.c-design-monsterhugs .c-moments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.c-design-monsterhugs .c-moment{display:block;padding:30px 22px;border:2px solid var(--c-ink);border-radius:45% 45% 16px 16px;background:var(--c-secondary);rotate:-2deg}.c-design-monsterhugs .c-moment:nth-child(2){background:#efd3b8;rotate:3deg}.c-design-monsterhugs .c-moment:nth-child(3){background:#dce4b6;rotate:-3deg}
.c-design-monsterhugs .c-moment h3{font:400 32px/1.15 var(--c-heading)}.c-design-monsterhugs .c-moment-number{font:400 42px/1 var(--c-heading)}
.c-design-monsterhugs .c-opening-inner{border:3px solid var(--c-ink);border-radius:45% 45% 18px 18px;background:var(--c-secondary)}

/* The two supplied references become live, editable paper cards. */
:is(.c-design-paperheart,.c-design-togetheralways) .c-invitation{max-width:760px}
:is(.rf-paperheart,.rf-togetheralways){background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23977c64' opacity='.09' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
.rf-paperheart .rf-title{font-size:calc(11cqw * var(--c-scale,1));margin-top:5cqw}.rf-paperheart .rf-intro{font-family:var(--c-heading);font-size:3.7cqw;margin:1cqw auto}
.rf-heart-scene{position:relative;width:100%;height:68cqw;margin-top:2cqw}.rf-paper-heart{display:block;width:64%;height:100%;margin:auto;filter:drop-shadow(-1cqw 2cqw 1.5cqw #ac3d3433)}
.rf-mini-heart{position:absolute;color:#ee9485;font-size:5cqw;rotate:-20deg}.rf-heart-one{left:5%;top:8%}.rf-heart-two{right:4%;top:0;rotate:20deg}.rf-heart-three{left:6%;top:43%}.rf-heart-four{right:6%;top:52%;rotate:15deg}
.rf-love-script{position:absolute;bottom:3%;left:1%;font:400 5cqw/1.1 'Patrick Hand',cursive;color:var(--c-accent);rotate:-16deg}
.rf-paperheart:before,.rf-paperheart:after{content:'';position:absolute;z-index:-1;width:38%;height:28%;border-radius:50%;background:var(--c-secondary);opacity:.55;bottom:-8%;left:-22%;rotate:-20deg}.rf-paperheart:after{left:auto;right:-22%;bottom:-12%}
.rf-paperheart .rf-button,.rf-togetheralways .rf-button{border-width:0 0 1px;padding:1cqw 0;border-radius:0;font-size:2cqw;font-weight:400;letter-spacing:.08em}
.rf-togetheralways{padding-top:7%!important}.rf-togetheralways .rf-eyebrow{letter-spacing:.5em;line-height:2.3;font-size:1.8cqw}
.rf-hands{width:calc(100% + 14cqw);margin:-3cqw -7cqw 0;mix-blend-mode:multiply}.rf-hands img{display:block;width:100%;height:auto}
.rf-togetheralways .rf-title{font-size:calc(11cqw * var(--c-scale,1));font-style:italic;rotate:-8deg;margin:-2cqw 0 3cqw}.rf-togetheralways .rf-intro{font-family:Georgia,serif;font-size:3.5cqw;margin:3cqw auto 1cqw}
.rf-outline-heart{font:400 6cqw/1.4 Georgia,serif;color:var(--c-accent);margin:1cqw auto 3cqw}
:is(.c-design-paperheart,.c-design-togetheralways) .c-nav{font-size:10px;background:var(--c-bg);gap:15px;padding:22px}
:is(.c-design-paperheart,.c-design-togetheralways) .c-section{padding:70px 8%}
:is(.c-design-paperheart,.c-design-togetheralways) .c-section-heading h2{font-size:clamp(32px,6vw,54px);text-align:center}
:is(.c-design-paperheart,.c-design-togetheralways) .cl-letter-paper{background:color-mix(in srgb,var(--c-bg) 50%,#fffdf6);border:1px solid color-mix(in srgb,var(--c-accent) 22%,transparent)}
:is(.c-design-paperheart,.c-design-togetheralways) .c-closing{background:var(--c-bg);color:var(--c-ink)}
:is(.c-design-paperheart,.c-design-togetheralways) .c-closing h2{font-size:clamp(40px,7vw,72px);color:var(--c-accent)}
.c-design-togetheralways .cl-letter-paper{box-shadow:5px 6px 0 var(--c-secondary);rotate:-1deg}
.c-miniature .rf-cover{min-height:1100px!important;justify-content:center}.c-miniature .rf-button{min-height:0}
@media(max-width:600px){.c-design-monsterhugs .c-moments{grid-template-columns:1fr;gap:28px}.c-design-monsterhugs .c-moment{border-radius:55px 55px 14px 14px;padding:36px 25px}.rf-cover .rf-eyebrow{font-size:max(8px,1.6cqw)}.rf-cover .rf-subtitle{font-size:max(8px,1.4cqw)}.rf-cover .rf-intro{font-size:max(12px,2.6cqw)}.rf-cover .rf-button{font-size:max(12px,2.3cqw)}.rf-cover .rf-date{font-size:max(10px,2cqw)}}
