@font-face{font-family:BlueCustard;src:url('../assets-v2/Blue_Custard_v1.01.otf') format('opentype');font-display:swap}
@font-face{font-family:Amatic;src:url('../assets-v2/AmaticSC-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Amatic;src:url('../assets-v2/AmaticSC-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
*{box-sizing:border-box}html{background:#e2ebef;color:#25324d;color-scheme:light;scrollbar-color:#90b5ca #e2ebef}body{margin:0;padding:24px 12px;font-family:BlueCustard,sans-serif}a{color:inherit;text-decoration:none;text-underline-offset:.18em}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible{outline:3px solid #154d74;outline-offset:5px}::selection{background:#f2bb80;color:#25324d}img{display:block;max-width:100%}p,h1{margin:0}.invitation{container-type:inline-size;position:relative;isolation:isolate;width:min(100%,440px);margin:auto;overflow:hidden;text-align:center;break-inside:avoid}.episode-opening{display:flex;align-items:center;flex-direction:column;text-transform:uppercase}.episode-opening span{font-size:4.4cqw;line-height:1.15}.wordmark{width:100%;height:auto}.birthday{line-height:1.03}h1{font-weight:400;line-height:1.05}h1 span{display:block}.venue,.rsvp{display:block;position:relative}.venue span,.venue strong,.rsvp span,.rsvp strong{display:block;font-weight:400}.review-tools{display:flex;align-items:center;justify-content:center;gap:20px;margin:22px auto 0;font:13px/1.5 system-ui,sans-serif;max-width:440px}.review-tools a{text-decoration:underline}.review-tools button{font:inherit;color:inherit;border:0;border-bottom:1px solid currentColor;padding:0;background:none;cursor:pointer}
/* Reference one: flat polka-dot card with real character portraits at its edges. */
.parade{background-color:#eaf6fc;background-image:radial-gradient(circle at 18% 4%,#cfe9f3 0 7.2%,transparent 7.4%),radial-gradient(circle at 64% 1%,#d2eaf3 0 6.7%,transparent 6.9%),radial-gradient(circle at 40% 18%,#d7edf5 0 5.2%,transparent 5.4%),radial-gradient(circle at 92% 22%,#d2eaf3 0 7%,transparent 7.2%),radial-gradient(circle at 52% 43%,#d4edf6 0 6.8%,transparent 7%),radial-gradient(circle at 12% 57%,#d0eaf4 0 7%,transparent 7.2%),radial-gradient(circle at 78% 65%,#d4edf6 0 7%,transparent 7.2%),radial-gradient(circle at 25% 87%,#d0eaf4 0 7.5%,transparent 7.7%),radial-gradient(circle at 64% 100%,#d0eaf4 0 7.5%,transparent 7.7%);color:#29334e}
.parade-content{position:relative;z-index:2;width:65%;margin:auto;padding:12.5cqw 0 9cqw}.parade .wordmark{width:110%;max-width:none;margin:1.2cqw 0 -.4cqw}.parade h1{font-size:7.2cqw;margin-top:5cqw}.parade .birthday{font-size:6.5cqw;color:#3483ad;margin-top:4cqw}.event-date{margin-top:5.5cqw}.month{font-size:5cqw;text-transform:uppercase}.date-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:1.5cqw;margin-top:.8cqw}.day,.time{font-size:4.4cqw;padding:2cqw 0;border-block:1px solid #83b6d0;white-space:nowrap}.date{color:#3483ad;font-size:10cqw;line-height:1.1}.date small{font-size:4.1cqw;vertical-align:top;position:relative;top:.7cqw}.parade .venue{font-size:3.65cqw;line-height:1.4;margin-top:5.5cqw;white-space:nowrap}.parade .venue strong{font-size:4.15cqw;margin-bottom:1.2cqw}.parade .rsvp{margin-top:5cqw;font-size:4.3cqw;line-height:1.45}.characters{position:absolute;inset-block:0;width:20%;z-index:1;display:grid;grid-template-rows:repeat(5,1fr);pointer-events:none}.characters.left{left:0}.characters.right{right:0}.character{position:relative;overflow:hidden}.character img{position:absolute;max-width:none;width:172%;top:-12%;}.left .character img{left:-66%}.right .character img{right:-58%}.character.bluey img{top:-15%;width:175%;left:-61%}.character.coco img{top:-12%;left:-61%}.character.winton img{top:-26%;left:-60%}.character.indy img{top:-10%;width:160%;left:-53%}.character.muffin img{top:-25%;width:166%;left:-60%}.character.mackenzie img{width:360%;top:-137%;right:-149%}.character.honey img{width:178%;top:-17%;right:-59%}.character.rusty img{top:-6%;right:-67%}.character.chloe img{top:-22%;right:-60%}.character.bingo img{top:-20%;right:-58%}
/* Reference two: cream paper, scalloped confetti frame, a warm party-hat hug. */
.party-hug{background:#f6eee3;color:#32332f}.scallops{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.hug-content{position:relative;width:80%;margin:auto;padding:12cqw 0 10cqw}.party-hug .episode-opening span{font:700 5.6cqw/1.1 Amatic,sans-serif;letter-spacing:.03em;color:#365e7c}.party-hug .wordmark{width:77%;margin:1.6cqw 0 -.2cqw}.party-hug h1{font-size:6.9cqw;color:#b94f25;margin-top:3cqw}.party-hug .birthday{font-size:5.5cqw;margin-top:3cqw;color:#b94f25}.hug-art{mix-blend-mode:multiply;width:63%;height:auto;margin:1.8cqw auto 0}.hug-date{font:700 6cqw/1.2 Amatic,sans-serif;margin-top:1cqw}.hug-date span,.hug-date strong{display:block}.hug-date strong{font-weight:700;margin-top:.4cqw}.party-hug .venue{font:700 5.4cqw/1.2 Amatic,sans-serif;margin-top:3cqw}.party-hug .venue strong{font-weight:700;font-size:6cqw;margin-bottom:.4cqw}.party-hug .rsvp{font:700 5.8cqw/1.2 Amatic,sans-serif;margin-top:3cqw}.party-hug .rsvp strong{font-weight:700}
.character.bluey img{width:210%;left:-78%;top:-19%}.character.coco img{width:200%;left:-73%;top:-15%}.character.winton img{width:200%;left:-71%;top:-28%}.character.indy img{width:185%;left:-68%;top:-10%}.character.muffin img{width:195%;left:-68%;top:-25%}.character.mackenzie img{width:370%;top:-81%;right:-139%;transform:scaleX(-1)}.character.rusty img{width:190%;right:-54%;top:-2%;transform:scaleX(-1)}.character.honey img{width:196%;right:-65%;top:-17%}.character.chloe img{width:198%;right:-67%;top:-22%}.character.bingo img{width:198%;right:-68%;top:-20%}
.party-hug h1,.party-hug .birthday{color:#c75525}
@media(max-width:350px){body{padding:10px 7px}.parade-content{width:67%;padding-block:12cqw 9cqw}.parade .venue{font-size:4.05cqw}.parade .venue strong{font-size:4.3cqw}.parade .rsvp{font-size:4.6cqw}.party-hug .venue{font-size:5.8cqw}.party-hug .rsvp{font-size:6.1cqw}.review-tools{gap:16px;font-size:12px}}
@media(prefers-reduced-motion:no-preference){a{transition:color .15s ease-out}a:hover{color:#14618a}.party-hug a:hover{color:#a54121}}
@page{size:Letter;margin:.5in}
@media print{html,body{background:white;margin:0;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}.invitation{width:5.4in;max-width:none;margin:0 auto;break-inside:avoid;box-shadow:none}.review-tools{display:none}.invitation a{color:inherit;text-decoration:none}.party-hug{width:4.7in}.parade-content{padding-top:10.5cqw;padding-bottom:8cqw}}
