.hero-section:before{top:3%;bottom:3%}
.balloons{top:1%;height:98%}
.ribbon-copy-blue{inset:14% 18% 43%;filter:drop-shadow(0 1px 1px #062e61)}
.ribbon-copy-gold{inset:23% 14% 27%;filter:drop-shadow(0 1px 1px #d4a94f)}
.hero-section:before{top:8%;bottom:8%}
.balloons{top:8%;width:15%;height:84%;object-fit:cover}
.balloons-left{left:0;object-position:left center}
.balloons-right{right:0;object-position:right center}
.invited{top:16%}
.characters{top:23%;left:26%;width:48%}
.ribbon-blue{top:56%;left:26%;width:48%}
.hero-section h1{top:66%;left:23%;width:54%}
.ribbon-gold{top:75%;left:26%;width:48%}
.invited span,.ribbon-copy span{transform:translateY(var(--curve-y))}
html,body{background-color:#0b5ba8!important;overflow-x:clip}
body{background-image:linear-gradient(180deg,#07509a 0%,#2388cb 43%,#8ed2f1 74%,#d9f2ff 100%)!important;background-size:auto!important;background-attachment:fixed}
.hero-section:before{top:1%;bottom:1%}
.hero-section>.balloons{top:5%;width:auto!important;height:90%!important;object-fit:contain!important}
.hero-section>.balloons-left{left:-4%;object-position:center}
.hero-section>.balloons-right{right:-12%;object-position:center}
.invited{top:19%}
.ribbon .ribbon-copy{position:absolute;inset:0;width:100%;height:100%;overflow:visible;font-family:Georgia,serif;font-size:clamp(50px,7vw,68px);font-weight:700;fill:#fff;filter:drop-shadow(0 3px 2px #08366f)}
.ribbon-gold .ribbon-copy{font-size:clamp(42px,6vw,56px);fill:#173f78;filter:drop-shadow(0 2px 1px #fff4cf)}
.paw-icon{display:inline-block;width:.5em;height:.5em;margin:0 .07em;vertical-align:.12em;fill:#1764b1;filter:drop-shadow(0 2px 0 #fff)}
.characters{top:24%;left:10%;width:80%}
.ribbon-blue{top:71.5%;left:26%;width:48%}
.hero-section h1{top:80.5%;left:23%;width:54%}
.countdown-section{position:relative;margin-top:14px;padding:22px 18px 20px;border:3px solid #e5b74e;border-radius:clamp(22px,6vw,42px);background:linear-gradient(145deg,#fffef8,#fff9e9);box-shadow:0 10px 24px #063f7830;text-align:center}
.countdown-section:before{content:"";position:absolute;inset:8px;border:2px dashed #d59a16;border-radius:clamp(16px,5vw,34px);pointer-events:none}
.countdown-section h2{position:relative;display:flex;width:100%;align-items:center;justify-content:center;gap:clamp(8px,2vw,18px);margin:0 auto 18px;color:#113e78;font-family:Georgia,serif;font-size:clamp(22px,5.5vw,38px);font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em}.countdown-section h2 span{color:#2477bd;font-size:.8em}
.countdown-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(7px,2.4vw,18px);margin:0;padding:0;list-style:none}
.time-unit{position:relative;min-width:0;text-align:center}.time-unit:not(:last-child):after{content:":";position:absolute;top:28%;right:calc(clamp(7px,2.4vw,18px) / -2);transform:translate(50%,-50%);color:#113e78;font-family:Georgia,serif;font-size:clamp(18px,5vw,34px);font-weight:700}
.time-unit strong{display:grid;place-items:center;aspect-ratio:1/1;min-width:0;border:2px solid #edcb7a;border-radius:clamp(14px,4vw,28px);background:linear-gradient(145deg,#f8f5e9,#fffdf6 55%,#f3ead1);color:#174879;font-family:Georgia,serif;font-size:clamp(32px,10vw,66px);line-height:1;text-align:center;text-shadow:0 2px 1px #fff,0 -2px 2px #082e5866,1px 0 1px #fff;box-shadow:inset 0 5px 12px #9f7a2c30,inset 0 -4px 8px #fff,0 3px 7px #7c5c1714}
.time-unit span{display:block;margin-top:9px;color:#113b73;font-family:Georgia,serif;font-size:clamp(10px,2.6vw,16px);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:390px){.countdown-section{padding-inline:12px}.countdown-grid{gap:6px}.time-unit:not(:last-child):after{right:-3px}.time-unit span{font-size:9px;letter-spacing:0}}
.reception-section{position:relative;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;width:100%;aspect-ratio:2048/758;margin-top:18px;padding:clamp(38px,7.5vw,52px) clamp(30px,7vw,46px) clamp(16px,3vw,22px);overflow:hidden;background:url("assets/reception-frame.png") center/contain no-repeat;color:#173f78}
.reception-section h2{position:absolute;top:clamp(20px,4vw,29px);left:50%;margin:0;transform:translateX(-50%);font-family:Georgia,serif;font-size:clamp(19px,4vw,28px);text-transform:uppercase;white-space:nowrap}
.reception-schedule{display:grid;grid-template-columns:1fr 1fr;gap:clamp(5px,1.4vw,10px);padding-right:clamp(8px,2vw,16px);border-right:2px solid #e1b047}.reception-schedule p{display:grid;grid-template-columns:auto 1fr;align-content:center;margin:0;text-align:left}.event-icon{grid-row:1/3;margin-right:5px;font-size:clamp(21px,4.5vw,32px)}.reception-schedule strong{font-family:Georgia,serif;font-size:clamp(12px,2.7vw,18px)}.reception-schedule small{font-size:clamp(9px,2vw,13px);line-height:1.15}
.map-button{grid-column:1/3;justify-self:center;min-width:68%;margin-top:5px;padding:7px 14px;border:2px solid #f4c05e;border-radius:999px;color:#fff;background:linear-gradient(#f7a640,#e87b1f);font-family:"Fredoka",Arial,sans-serif;font-size:clamp(12px,2.5vw,16px);font-weight:700;letter-spacing:.02em;text-align:center;text-decoration:none;box-shadow:inset 0 2px #ffd994,0 3px 5px #8d4c1630}
.venue-card{justify-self:center;width:86%;min-width:0;max-width:100%;overflow:hidden;text-align:center}.venue-card img{display:block;width:min(62%,105px);max-width:100%;height:auto;margin:0 auto 2px}.venue-card h3{max-width:100%;margin:0;font-family:Georgia,serif;font-size:clamp(12px,2.5vw,17px);overflow-wrap:anywhere}.venue-card p{max-width:100%;margin:2px 0 0;font-size:clamp(8px,1.8vw,12px);line-height:1.15;overflow-wrap:anywhere}
@media(max-width:420px){.reception-section{grid-template-columns:1.25fr .75fr;padding:31px 26px 11px 24px}.reception-section h2{top:13px;font-size:17px}.reception-schedule{gap:3px;padding-right:6px;border-right-width:1px}.event-icon{margin-right:2px;font-size:18px}.reception-schedule strong{font-size:10px}.reception-schedule small{font-size:8px}.map-button{min-width:84%;margin-top:2px;padding:4px 7px;border-width:1px;font-size:10px}.venue-card{width:78%}.venue-card img{width:46%}.venue-card h3{font-size:9px}.venue-card p{font-size:7px}}
.dress-code-section{position:relative;container-type:inline-size;width:100%;aspect-ratio:2200/700;margin-top:18px;overflow:hidden;contain:paint;background:url("assets/dress-code-card.png?v=2") center/contain no-repeat;color:#174879}
.paw-defs{position:absolute;width:0;height:0;overflow:hidden}
.dress-code-section h2{position:absolute;top:14%;left:10%;display:grid;width:57%;height:30%;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(1px,1cqw,8px);overflow:hidden;margin:0;font-family:Georgia,serif;font-size:clamp(14px,4.3cqw,29px);line-height:.96;text-align:center;text-transform:uppercase;letter-spacing:0}.dress-code-section h2 span{min-width:0;overflow-wrap:break-word}.dress-code-section h2 .paw-icon{width:.82em;height:.82em;flex:none;fill:#1764b1}
.dress-code-section p{position:absolute;top:44%;left:10%;display:grid;width:57%;height:40%;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(2px,1.2cqw,9px);overflow:hidden;margin:0;font-family:Georgia,serif;font-size:clamp(12px,3.7cqw,23px);line-height:1.03;text-align:center}.dress-code-section p>span:first-child{min-width:0;overflow-wrap:break-word}.dress-code-section p strong{font-size:1.08em;color:#c87917}.color-paws{display:flex;min-width:0;align-items:center;gap:clamp(2px,.8cqw,6px)}.color-paws .paw-icon{width:clamp(18px,4.7cqw,35px);height:clamp(18px,4.7cqw,35px);filter:drop-shadow(0 2px 1px #173f7830)}.paw-blue{fill:#1764b1}.paw-orange{fill:#ff8a18}.paw-cream{fill:#f3c95e}
.gift-section{position:relative;container-type:inline-size;width:100%;aspect-ratio:8/3;margin-top:18px;overflow:hidden;contain:paint;background:url("assets/gift-card.png?v=2") center/contain no-repeat;color:#174879}
.gift-section h2{position:absolute;top:11%;left:20%;display:flex;width:60%;height:20%;align-items:center;justify-content:center;gap:clamp(2px,1cqw,8px);overflow:hidden;margin:0;text-align:center;font-family:Georgia,serif;font-size:clamp(12px,3.4cqw,30px);line-height:1;text-transform:uppercase;letter-spacing:.02em}.gift-section h2 .paw-icon{width:.9em;height:.9em;flex:none}.paw-gold{fill:#d99a16;filter:drop-shadow(0 2px 1px #8b580830)}
.gift-section>img{position:absolute;left:9%;bottom:10%;width:31%;height:62%;object-fit:contain}
.gift-section>p{position:absolute;left:36%;top:35%;width:52%;height:53%;overflow:hidden;margin:0;font-family:Georgia,serif;font-size:clamp(8.5px,3cqw,22px);line-height:1.08;text-align:center}.gift-section>p strong{display:block;margin-top:clamp(3px,.8cqw,8px);color:#c78316;font-size:1.1em;text-transform:uppercase;letter-spacing:.02em}
@media(max-width:420px){.gift-section>img{left:6%;bottom:14%;width:35%;height:58%}}

.rsvp-section{position:relative;container-type:inline-size;width:100%;aspect-ratio:3/2;margin-top:18px;overflow:hidden;contain:paint;background:url("assets/rsvp-card.png?v=2") center/contain no-repeat;color:#fff}
.rsvp-section h2{position:absolute;top:10%;left:13%;width:37%;height:18%;overflow:hidden;margin:0;color:#f2c557;font-family:Georgia,serif;font-size:clamp(15px,4.1cqw,41px);line-height:1.02;text-align:left;text-transform:uppercase;text-shadow:0 2px 2px #061d3d}
.rsvp-section .rsvp-lead{position:absolute;top:30%;left:13%;width:31%;height:19%;overflow:hidden;margin:0;font-family:"Fredoka",Arial,sans-serif;font-size:clamp(11px,2.9cqw,29px);line-height:1.13;text-align:left;text-shadow:0 1px 1px #061d3d}
.rsvp-section .rsvp-button{position:absolute;top:51%;left:11%;display:flex;box-sizing:border-box;width:33%;height:14%;overflow:hidden;align-items:center;justify-content:center;gap:clamp(2px,.7cqw,7px);margin:0;padding:clamp(3px,.8cqw,8px);border:clamp(1px,.35cqw,3px) solid #f8d56c;border-radius:999px;color:#65410b;background:linear-gradient(#ffe9a1,#dca72c);font-family:"Fredoka",Arial,sans-serif;font-size:clamp(10px,2.3cqw,23px);font-weight:700;text-transform:uppercase;box-shadow:inset 0 2px #fff4bd,0 3px 7px #001d42aa}.rsvp-button .paw-icon{width:1.2em;height:1.2em;flex:none;fill:#9b6a16}
.rsvp-section .rsvp-closing{position:absolute;left:17%;bottom:7%;display:flex;width:51%;height:15%;align-items:center;justify-content:center;overflow:hidden;margin:0;color:#164a80;font-family:Georgia,serif;font-size:clamp(13px,3.2cqw,32px);font-style:italic;font-weight:700;line-height:1.06;text-align:center;transform:rotate(-1deg)}
.ribbon-gold{top:86.5%;left:26%;width:48%}
