/* The invitation's second edition. Loops belong to the nursery scene;
   UI fields stay still. Scene loops pause out of view and in hidden tabs. */
:root{--muted:#715958;--ease-bloom:cubic-bezier(.16,1,.3,1)}
::selection{background:#e7bac4;color:#533d3d}
input,textarea{caret-color:var(--rose)}
html{scrollbar-color:#c49a9f var(--paper);scrollbar-width:thin}
body{overflow-x:clip}
h1,h2,h3{text-wrap:balance}
.cover{padding-top:38px;background:radial-gradient(ellipse at 75% 50%,#eedbd277,transparent 64%),var(--paper)}
.cover-frame{border-color:#d7bcb5;inset:20px;border-radius:165px 165px 9px 9px}
.cover-frame.frame-inner{inset:27px;border-radius:157px 157px 6px 6px;border-color:#e8d6cf}
.cover-brand{position:relative}
.cover-brand .little-bow{transform:scale(1.25);margin-bottom:13px}
.cover-layout{max-width:1080px;gap:45px;padding:20px 0 8px}
.cover h1{font-size:clamp(39px,4.2vw,56px);line-height:1.1;max-width:460px}
.cover-copy .eyebrow{font-size:9px;letter-spacing:.19em}
.cover-note{margin-top:19px;font-size:13px}
.cover-art{padding:0;min-width:0}
.envelope-button{margin-top:42px;width:308px;filter:drop-shadow(0 17px 20px #754c3e0c)}
.envelope{height:183px;border:1px solid #d5a99f;transform:rotate(-5deg);box-shadow:0 16px 30px #6c3e3720}
.envelope-pocket{background:linear-gradient(130deg,#edc8b9,#dcaea3)}
.envelope-pocket:after{background:linear-gradient(0deg,#efd0c4,#e7bcaf)}
.envelope-flap{background:linear-gradient(170deg,#ebc9bc,#dfb5a9)}
.envelope-letter{inset:9px 16px;font-size:13px;padding:17px 12px;border:1px solid #dac5b9;outline:1px solid #f2e4da;outline-offset:-6px}
.envelope-letter strong{font-size:39px;color:var(--rose);line-height:1.2;font-style:italic;margin-top:2px}
.envelope-letter small{font-family:var(--sans);font-size:7px;letter-spacing:.2em;display:block;margin-top:8px;color:var(--rose)}
.wax-seal{top:67px;width:58px;height:58px;left:calc(50% - 29px);background:radial-gradient(circle at 30% 25%,#bc8090,#985365);border-color:#c9919c;box-shadow:0 4px 7px #603d4440,inset 1px 1px 5px #e6b1bb66}
.open-label{margin-top:22px;font-size:11px}
.cover.opening .envelope-letter{transform:translateY(-115px) rotate(3deg)}
.cover-footer{padding-top:10px;font-size:10px}
.cover-copy>.motion-toggle{align-self:center;margin:12px auto 0;font-size:10px;min-height:30px}
.experience-controls{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:5px;margin:12px auto 0;position:relative;z-index:1}
.experience-controls .motion-toggle,.music-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:10px/1.2 var(--sans);color:var(--muted);border:0;background:none;min-height:32px;border-radius:20px;padding:7px 9px;cursor:pointer}
.music-toggle:hover{background:#e7d0c566;color:var(--rose-dark)}
.music-symbol{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:2px;width:12px;height:13px;color:currentColor}
.music-symbol i{display:block;width:2px;height:6px;background:currentColor;border-radius:1px;transform-origin:50% 50%}
.music-symbol i:nth-child(2){height:12px}.music-symbol i:nth-child(3){height:8px}
body[data-audio-state=playing] .music-symbol i{animation:music-bar 1.5s ease-in-out infinite}
body[data-audio-state=playing] .music-symbol i:nth-child(2){animation-delay:-.6s}
body[data-audio-state=playing] .music-symbol i:nth-child(3){animation-delay:-1.1s}
body.music-paused .music-symbol:after{content:'';position:absolute;width:17px;height:1px;background:currentColor;transform:rotate(-45deg)}
body.music-paused .music-symbol i{opacity:.45}
.music-compact{width:30px;height:30px;min-height:30px;border:1px solid var(--line);padding:7px}
.hero-register{font-size:13px;margin:2px 0 0}
.success-card .success-return{font-size:10px!important;line-height:1.8;margin:17px auto 10px;max-width:320px;color:var(--muted)}
.success-actions{display:flex;align-items:center;justify-content:center;gap:22px}
.success-actions .text-link{font-size:11px}
#details-title:focus{outline:none}
@keyframes music-bar{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1)}}
body.motion-paused .music-symbol i,body.tab-hidden .music-symbol i{animation-play-state:paused!important}
body.motion-paused .cover-copy>.motion-toggle{color:var(--rose-dark);background:#efdad3;border:1px solid #c499a0;font-weight:800;padding:10px 16px;font-size:11px}
.cover-layout{position:relative;z-index:1}
.cover-brand,.cover-footer{position:relative;z-index:1}
.opening-balloon-layer{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.released-balloon{position:absolute;display:block;pointer-events:none;--balloon-color:#db9fa5;--balloon-light:#f3c3c1;--balloon-deep:#c58c96}
.release-ivory{--balloon-color:#e3d1b9;--balloon-light:#fbefda;--balloon-deep:#d6c0a6}
.release-rose{--balloon-color:#d7a1a9;--balloon-light:#f7d7cf;--balloon-deep:#bf8995}
.reply-balloon-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.reply-viewport-balloons{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:8}
.rsvp-section[data-submitted=true] .rsvp-inner>.reply-illustration,.rsvp-section[data-submitted=true] #response-title,.rsvp-section[data-submitted=true] .rsvp-inner>.section-intro{display:none}
.rsvp-section[data-submitted=true] .success-card{margin-top:0}
.rsvp-inner{position:relative;z-index:1}
.reply-illustration{position:relative;width:126px;height:93px;margin:0 auto 19px;perspective:600px}
.reply-paper{position:absolute;left:21px;top:0;width:84px;height:78px;background:#fff9ef;border:1px solid #d8b8ac;border-radius:3px;padding:9px 4px;z-index:1;transform:translateY(-9px);box-shadow:0 3px 6px #8754530c}
.reply-paper>span{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--rose-dark)}
.reply-paper i{position:absolute;left:35px;top:36px;width:12px;height:12px;background:#c88b9b;transform:rotate(-45deg);border-radius:2px}
.reply-paper i:before,.reply-paper i:after{content:'';position:absolute;width:12px;height:12px;border-radius:50%;background:inherit;top:-6px;left:0}
.reply-paper i:after{left:6px;top:0}
.reply-pocket{position:absolute;left:8px;right:8px;height:53px;bottom:7px;background:linear-gradient(145deg,#e9bfb4,#d9a8a1);clip-path:polygon(0 0,50% 35%,100% 0,100% 100%,0 100%);border-radius:3px;z-index:2;box-shadow:0 6px 9px #87545314}
.reply-pocket:before{content:'';position:absolute;inset:0;background:#ebc8bd;clip-path:polygon(0 100%,50% 28%,100% 100%)}
.reply-flap{position:absolute;left:8px;right:8px;top:33px;height:35px;background:#d7a7a0;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;transform:rotateX(165deg);z-index:3}
.reply-glint{position:absolute;width:12px;height:12px;background:#b78d70;clip-path:polygon(50% 0,62% 38%,100% 50%,61% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.glint-left{left:-9px;top:32px;width:9px;height:9px;opacity:.6}.glint-right{right:-6px;top:7px}
.rsvp-section[data-attendance=no] .reply-paper{transform:translateY(15px)}
.rsvp-section[data-attendance=no] .reply-flap{transform:rotateX(0deg)}
.rsvp-section[data-attendance=no] .reply-glint{opacity:.35}
.rsvp-form .submit{margin-top:20px}
.success-heart.decline-emblem{position:relative;width:88px;height:58px;margin:9px auto 23px;background:#e9c4b9;border:1px solid #c49696;border-radius:4px;font-size:0;line-height:1;box-shadow:0 5px 8px #87545312}
.decline-emblem:before{content:'';position:absolute;inset:0;background:#dcb1a8;clip-path:polygon(0 0,100% 0,50% 58%)}
.decline-emblem:after{content:'E';position:absolute;top:18px;left:32px;font:25px/1 var(--serif);color:var(--rose-dark)}
body.motion-paused .js-reveal{opacity:1;transform:none}

/* A genuinely layered character: every balloon has its own anchor,
   head, curved string and timing, separate from the watercolor bear. */
.nursery-scene{position:relative;width:100%;height:555px;isolation:isolate}
.scene-arch{position:absolute;inset:30% 1% 3%;border-radius:49% 49% 5px 5px;background:linear-gradient(145deg,#edd4cb66,#eedbd3);border:1px solid #e0bfb2;z-index:0}
.scene-stitch{position:absolute;inset:calc(30% + 9px) calc(1% + 9px) calc(3% + 9px);border:1px dashed #d5b3a780;border-radius:48% 48% 4px 4px;z-index:0}
.cover-art .scene-teddy,.hero-art .scene-teddy{position:absolute;bottom:0;left:0;width:100%;height:auto;max-height:none;max-width:none;object-fit:contain;z-index:2;margin:0;transform-origin:50% 95%;animation:bear-breathe 6.5s ease-in-out infinite}
.cover-art .scene-teddy{width:88%;left:6%}.hero-art .scene-teddy{width:92%;left:4%}
.balloon-flight{position:absolute;width:28%;height:72%;left:51%;top:0;transform-origin:50% 100%;z-index:1;animation:balloon-anchor 6.6s ease-in-out infinite;--balloon-height:148px;--balloon-color:#db9fa5;--balloon-light:#f3c3c1;--balloon-deep:#c58c96;--sway:5deg}
.balloon-sway{position:relative;width:100%;height:100%;animation:balloon-bob 5s ease-in-out infinite}
.balloon-skin{position:relative;display:block;width:100%;height:var(--balloon-height);border-radius:49% 51% 46% 46%/45% 45% 55% 55%;background:radial-gradient(ellipse at 29% 24%,#fff8ed99 0,transparent 46%),radial-gradient(ellipse at 37% 29%,var(--balloon-light) 10%,var(--balloon-color) 61%,var(--balloon-deep));border:1px solid #bc7e7c44;box-shadow:inset -6px -6px 16px #8c575415,inset 2px 2px 7px #fff9f0aa}
.balloon-skin:before{content:'';position:absolute;width:16%;height:32%;top:15%;left:17%;border-radius:50%;transform:rotate(25deg);background:linear-gradient(#fff9f0a6,#fff7ef00)}
.balloon-skin:after{content:'';position:absolute;bottom:-5px;left:calc(50% - 5px);width:10px;height:9px;background:var(--balloon-color);clip-path:polygon(50% 0,100% 100%,0 100%)}
.balloon-skin i{position:absolute;bottom:-8px;left:calc(50% - 3px);width:6px;height:3px;border-bottom:1px solid #ab8574;border-radius:50%}
.balloon-thread{position:absolute;top:calc(var(--balloon-height) + 6px);left:15%;width:70%;height:calc(100% - var(--balloon-height) - 6px);overflow:visible;fill:none;stroke:#ad897699;stroke-width:.9;vector-effect:non-scaling-stroke}
.balloon-ivory{left:26%;top:9%;width:24%;height:65%;--balloon-height:129px;--balloon-color:#e3d1b9;--balloon-light:#fbefda;--balloon-deep:#d6c0a6;--sway:-7deg;animation-duration:7.7s;animation-delay:-3s;z-index:0}
.balloon-ivory .balloon-sway{animation-duration:6s;animation-delay:-2s}
.balloon-blush{top:-3%;left:53%;animation-delay:-1.5s;--sway:6deg}
.balloon-rose{left:72%;top:16%;width:25%;height:61%;--balloon-height:136px;--balloon-color:#d7a1a9;--balloon-light:#f7d7cf;--balloon-deep:#bf8995;--sway:8deg;animation-duration:5.8s;animation-delay:-4s}
.balloon-rose .balloon-sway{animation-delay:-3s;animation-duration:5.5s}
.scene-star{position:absolute;width:23px;height:23px;background:#ba8e72;clip-path:polygon(50% 0,60% 37%,100% 50%,60% 60%,50% 100%,40% 61%,0 50%,39% 38%);opacity:.6;z-index:3;animation:star-bloom 4.8s ease-in-out infinite}
.star-one{left:10%;top:28%}.star-two{right:0;top:47%;width:16px;height:16px;animation-delay:-2s}.star-three{left:38%;top:1%;width:12px;height:12px;animation-delay:-1s}
.scene-cloud{position:absolute;width:91px;height:23px;border-radius:50px;background:#fff9f0bd;z-index:0;animation:cloud-drift 10s ease-in-out infinite}
.scene-cloud:before,.scene-cloud:after{content:'';position:absolute;background:inherit;border-radius:50%;bottom:6px;width:43px;height:40px;left:15px}.scene-cloud:after{width:31px;height:30px;left:45px}
.cloud-one{left:3%;top:17%;transform:rotate(-5deg)}.cloud-two{right:-4%;top:38%;width:75px;opacity:.65;animation-duration:12s;animation-delay:-6s}
.motion-scene:not(.in-view) .ambient-loop,body.motion-paused .ambient-loop,body.tab-hidden .ambient-loop{animation-play-state:paused!important}

/* Quiet petals pass behind the invitation, never over form text. */
.petal-garden{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.cover,main{position:relative;z-index:1}
.garden-petal{position:absolute;left:8%;top:-30px;width:9px;height:16px;border-radius:75% 0 70% 10%;background:#d6a1ab;opacity:0;animation:petal-fall 22s linear infinite}
.petal-1{left:23%;animation-duration:27s;animation-delay:-15s;width:7px;height:12px}.petal-2{left:40%;animation-duration:24s;animation-delay:-7s}.petal-3{left:58%;animation-duration:29s;animation-delay:-20s;width:6px;height:11px}.petal-4{left:76%;animation-duration:26s;animation-delay:-4s}.petal-5{left:91%;animation-duration:25s;animation-delay:-18s;width:8px;height:13px}.petal-6{left:3%;animation-duration:28s;animation-delay:-12s}.petal-7{left:96%;animation-duration:23s;animation-delay:-10s}
.celebration-petal{position:fixed;width:9px;height:16px;border-radius:70% 0 65% 12%;background:#c88e9b;pointer-events:none;z-index:8}
.celebration-petal:nth-of-type(even){background:#e2b7a6;width:7px;height:12px}
.motion-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:none;padding:6px 8px;font-size:9px;line-height:1.2;color:var(--muted);border-radius:20px;min-height:27px}
.motion-toggle:hover{background:#e7d0c566;color:var(--rose-dark)}
.motion-symbol{display:block;width:10px;height:10px;border-left:2px solid currentColor;border-right:2px solid currentColor;opacity:.7}
.motion-paused .motion-symbol{border:0;background:currentColor;clip-path:polygon(5% 0,100% 50%,5% 100%)}
.nav-actions{display:flex;align-items:center;gap:20px}
.motion-compact{width:30px;height:30px;border:1px solid var(--line)}
.nav{padding-top:25px;padding-bottom:20px}
.nav-confirm{font-size:11px;color:var(--rose-dark)}
.hero{gap:45px;max-width:1180px;padding-top:35px;padding-bottom:80px}
.hero h1{font-style:italic;font-size:clamp(92px,9vw,128px);line-height:1.17;letter-spacing:-.035em;margin-left:-6px;padding-bottom:5px;margin-bottom:5px}
.hero-intro{margin-top:23px;font-size:16px}
.hero-description{font-size:15px;line-height:1.85;margin-bottom:20px;max-width:355px}
.hero-signature{margin-top:22px}
.hero-signature strong{font-weight:600}
.hero-art{padding:0}
.hero-art>.nursery-scene{height:550px}
.hero-art>p{font-size:26px;margin-top:2px;padding:0}
.ornament{margin-bottom:25px}
.details-link{display:inline-flex;gap:24px;align-items:center;margin-top:26px;padding:8px 0;color:var(--rose-dark);font-size:12px;font-weight:700;text-decoration:none;border-bottom:1px solid #cb9ca1}
.details-link span{font-size:20px;line-height:1;transition:transform 180ms ease}
.details-link:hover span{transform:translateY(3px)}
.ribbon-bow{display:block;position:relative;width:65px;height:46px;margin:0 auto;color:#b97788}
.ribbon-bow:before,.ribbon-bow:after{content:'';position:absolute;top:2px;width:32px;height:25px;border:2px solid currentColor;background:linear-gradient(145deg,#f4d2d066,#e3b2bb33);box-shadow:inset 1px 2px 3px #fff8ef88}
.ribbon-bow:before{left:0;border-radius:70% 70% 5% 70%;transform:rotate(19deg)}
.ribbon-bow:after{right:0;border-radius:70% 70% 70% 5%;transform:rotate(-19deg)}
.ribbon-bow i{position:absolute;left:27px;top:15px;width:11px;height:12px;border-radius:3px;background:#c38998;box-shadow:inset 2px 0 2px #dfb3bd;z-index:1}
.ribbon-bow i:before,.ribbon-bow i:after{content:'';position:absolute;width:13px;height:25px;top:8px;background:linear-gradient(90deg,#bf8192,#dbacb7);clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);transform:rotate(21deg);left:-5px}
.ribbon-bow i:after{left:5px;transform:rotate(-21deg)}
.hero-bow{margin:0 0 14px;transform:rotate(-8deg)}
.celebration{border-top:0;max-width:930px;padding-top:34px;padding-bottom:62px}
.section-flourish{display:flex;align-items:center;justify-content:center;gap:25px;margin:0 0 30px}
.section-flourish>span:not(.ribbon-bow){height:1px;width:145px;max-width:20%;background:var(--line)}
.section-flourish>.ribbon-bow{margin:0;transform:scale(.8)}
.celebration h2{font-size:clamp(39px,4vw,52px);max-width:550px;margin-top:0;margin-bottom:20px}
.celebration>.section-intro{max-width:410px;line-height:1.85}
.event-details{margin:44px 10px 48px}
.event-item{padding:8px 25px 31px}
.event-item h3{font-size:32px;margin-top:12px;margin-bottom:8px}
.event-item p{font-size:12px}
.event-item.venue{padding-top:30px}
.event-item.venue h3{font-size:32px}
.detail-label{font-size:9px;letter-spacing:.18em}
.gift-note{position:relative;grid-template-columns:160px 1fr;gap:30px;align-items:center;border:0;background:var(--white);padding:39px 45px;border-radius:4px;box-shadow:0 12px 35px #794e3f12;transform:rotate(-.8deg);min-height:210px}
.gift-note:before{content:'';position:absolute;inset:9px;border:1px solid #dec5b9;pointer-events:none;border-radius:2px}
.gift-note:after{content:'';position:absolute;top:-8px;left:45%;width:80px;height:20px;background:#d6b0a948;transform:rotate(5deg)}
.gift-note h3{font-size:43px;color:var(--rose-dark);margin-bottom:14px;line-height:1.12}
.gift-note p:last-child{font-size:14px;line-height:1.85;max-width:410px}
.gift-illustration{position:relative;width:138px;height:128px;margin:0 auto;animation:gift-sway 6s ease-in-out infinite;transform-origin:50% 80%}
.gift-letter{position:absolute;top:6px;left:17px;width:105px;height:105px;background:#fdf7ef;border:1px solid #dfc7ba;transform:rotate(-8deg);padding:12px 5px;font-family:var(--serif);font-size:16px;text-align:center;color:var(--rose-dark);line-height:1.3;box-shadow:0 4px 6px #6c453d0a}
.gift-letter span{display:block;font-size:12px;font-style:italic;margin-top:3px}
.gift-illustration>.gift-envelope{position:absolute;bottom:0;left:3px;width:132px;height:77px;padding-top:28px;border-color:#cd9c96;background:linear-gradient(140deg,#edd1c1,#e2b8ad);font-size:24px;box-shadow:0 6px 10px #794e3f12;transform:rotate(4deg);clip-path:polygon(0 0,50% 30%,100% 0,100% 100%,0 100%)}
.gift-illustration>.gift-envelope:before{display:none}
.gift-spark{position:absolute;top:-7px;right:-10px;width:14px;height:14px;background:#bd8e73;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.invitation-response{text-align:center;margin-top:42px}
.invitation-response>p{font-family:var(--serif);font-size:29px;margin-bottom:19px}
.response-actions{display:flex;justify-content:center;align-items:center;gap:25px}
.response-actions>.button{padding:17px 29px;border-radius:5px;box-shadow:0 7px 16px #8b4b591c}
.decline-link{border:0;background:none;font-size:11px;color:var(--muted);text-decoration:underline;text-underline-offset:5px;padding:10px}
.rsvp-section{position:relative;z-index:3;background:linear-gradient(135deg,#f0dfda,#f2e3dd);border-top:1px solid #e8cfc6}
.rsvp-inner{padding-top:55px;padding-bottom:60px}
.rsvp-inner>.ribbon-bow{transform:scale(.75);margin-bottom:10px}
.rsvp-inner h2{font-size:46px;margin-top:10px}
.rsvp-form{border-radius:8px;padding:35px 37px;box-shadow:0 14px 32px #794e3f0b}
.attendance-options label span{min-height:72px}
.attendance-options input:checked+span{background:#f7e9e4;border-color:#b87988;box-shadow:inset 0 0 0 1px #b8798820}
.rsvp-form input:not([type=checkbox]):not([type=radio]){padding:13px;background:#fffcf8}
.rsvp-form .consent{margin-top:28px;line-height:1.8;font-size:11px}
.privacy-note{margin-top:15px;line-height:1.7}
.footer{position:relative;padding-top:52px;padding-bottom:30px;background:radial-gradient(ellipse at 50% 100%,#edd5cb55,transparent 65%)}
.footer>.little-bow{transform:scale(1.4)}
.footer>p{margin-top:27px}
.footer-name{font-style:italic;font-size:58px}
.invitation-enter .hero-copy{animation:invitation-unfold 750ms var(--ease-bloom) both}
.invitation-enter .hero-art{animation:scene-arrive 900ms var(--ease-bloom) both}
.gift-note.js-reveal.visible{transform:rotate(-.8deg)}

@keyframes balloon-anchor{0%,100%{transform:rotate(calc(var(--sway) * -1))}50%{transform:rotate(var(--sway))}}
@keyframes balloon-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-14px) rotate(2deg)}}
@keyframes bear-breathe{0%,100%{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-4px) rotate(.6deg)}}
@keyframes star-bloom{0%,100%{opacity:.28;transform:rotate(-12deg) scale(.85)}50%{opacity:.8;transform:rotate(12deg) scale(1.15)}}
@keyframes cloud-drift{0%,100%{transform:translateX(-7px)}50%{transform:translateX(12px)}}
@keyframes petal-fall{0%{opacity:0;transform:translate3d(0,-30px,0) rotate(0)}8%,84%{opacity:.2}100%{opacity:0;transform:translate3d(65px,110dvh,0) rotate(470deg)}}
@keyframes gift-sway{0%,100%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(3deg) translateY(-5px)}}
@keyframes invitation-unfold{from{opacity:.55;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes scene-arrive{from{opacity:.55;transform:translateY(25px) rotate(2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@media(min-width:1500px){.cover-layout{max-width:1140px}.nursery-scene{height:590px}.hero-art>.nursery-scene{height:590px}.balloon-flight{--balloon-height:158px}.balloon-ivory{--balloon-height:139px}.balloon-rose{--balloon-height:145px}}
@media(max-width:767px){
 .cover{padding:27px 29px 20px}.cover-frame{inset:11px;border-radius:115px 115px 6px 6px}.cover-frame.frame-inner{inset:17px;border-radius:109px 109px 3px 3px}
 .cover-brand{font-size:8px}.cover-brand .little-bow{margin-bottom:9px;transform:scale(1.1)}
 .cover-layout{gap:0;max-width:420px;padding:21px 0 2px}
 .cover-copy .eyebrow{font-size:7px;letter-spacing:.15em}
 .cover h1{font-size:32px;max-width:300px;line-height:1.1;margin-top:12px;margin-bottom:10px}
 .cover-note{margin-top:0;font-size:11px}
 .cover-art{width:100%;height:327px;margin-top:14px;max-width:330px}
 .nursery-scene{height:327px;width:100%}
 .cover-art .scene-teddy{left:6%;width:88%;bottom:0}
 .scene-arch{inset:31% 5% 5%;border-radius:48% 48% 3px 3px}.scene-stitch{inset:calc(31% + 6px) calc(5% + 6px) calc(5% + 6px);border-radius:47% 47% 3px 3px}
 .balloon-flight{width:29%;--balloon-height:102px;height:68%;left:48%;top:0}
 .balloon-ivory{width:24%;--balloon-height:86px;left:26%;top:9%;height:64%}
 .balloon-rose{width:25%;--balloon-height:91px;left:72%;top:14%;height:60%}
 .balloon-skin{box-shadow:inset -4px -4px 10px #8c575410,inset 1px 1px 5px #fff9f0aa}
 .balloon-thread{stroke-width:1.1}
 .star-one{left:6%;top:31%;width:18px;height:18px}.star-two{right:0;top:52%;width:12px;height:12px}.star-three{width:9px;height:9px}
 .scene-cloud{width:58px;height:16px}.scene-cloud:before{width:27px;height:26px;left:8px;bottom:4px}.scene-cloud:after{width:23px;height:20px;left:29px;bottom:4px}
 .cloud-one{left:1%;top:21%}.cloud-two{right:-3%;top:40%;width:52px}
 .envelope-button{width:244px;margin-top:-19px;filter:none}.envelope{height:144px}
 .envelope-letter{padding-top:12px;font-size:11px}.envelope-letter strong{font-size:32px}.envelope-letter small{font-size:6px;margin-top:5px}
 .wax-seal{width:49px;height:49px;left:calc(50% - 24px);top:49px;font-size:27px}
 .open-label{margin-top:16px;font-size:10px}.cover.opening .envelope-letter{transform:translateY(-92px) rotate(3deg)}
 .cover-footer{font-size:8px;line-height:1.6;max-width:270px;padding-top:15px}.cover-copy>.motion-toggle{order:5;font-size:8px;margin-top:8px;min-height:25px}
 .experience-controls{order:5;align-self:center;margin-top:7px;gap:2px;max-width:100%}
 .experience-controls .motion-toggle,.experience-controls .music-toggle{font-size:8px;min-height:29px;padding:7px 8px;gap:6px}
 .music-compact{width:27px;height:27px;min-height:27px;padding:6px}
 .nav-actions{gap:10px}.hero-register{font-size:12px;padding:15px 23px;margin-top:1px}
 .success-actions{flex-direction:column;gap:4px}.success-actions .text-link{font-size:11px}.success-card .success-return{font-size:9px!important;max-width:250px}
 body.motion-paused .cover-copy>.motion-toggle{font-size:10px;padding:9px 14px}
 .reply-illustration{transform:scale(.86);margin-top:-2px;margin-bottom:6px}
 .nav{padding:23px 22px 16px}.nav-actions{gap:13px}.nav-confirm{font-size:10px;max-width:none}.motion-compact{width:27px;height:27px;min-height:27px;padding:7px}.motion-symbol{width:9px;height:9px}
 .hero{padding:20px 24px 40px;gap:13px}.hero-bow{margin:0 auto 14px;transform:scale(.8) rotate(-8deg);height:40px}
 .hero-intro{font-size:13px;margin-top:12px}.hero h1{font-size:86px;line-height:1.17;margin-left:-3px;margin-top:0;margin-bottom:0}
 .hero .ornament{margin-top:9px;margin-bottom:20px}.hero-description{font-size:13px;max-width:300px;line-height:1.9;margin-bottom:0}.hero-signature{margin-top:20px;font-size:10px}.hero-signature strong{font-size:13px;margin-top:6px}
 .details-link{font-size:11px;margin-top:18px;gap:18px;padding:6px 0}.details-link span{font-size:17px}
 .hero-art{width:315px;max-width:100%;margin-top:18px}.hero-art>.nursery-scene{height:350px}.hero-art .scene-teddy{left:4%;width:92%;bottom:0}
 .hero-art>p{font-size:24px;margin-top:4px}
 .celebration{padding:18px 24px 44px}.section-flourish{margin-bottom:22px;gap:20px}.section-flourish>.ribbon-bow{transform:scale(.67);height:40px}
 .celebration h2{font-size:38px;max-width:320px;margin-bottom:17px}.celebration>.section-intro{max-width:290px;font-size:12px;line-height:1.9}
 .event-details{margin:30px 0 36px}.event-item{padding:8px 8px 25px}.event-item h3{font-size:26px;margin-top:11px}.event-item p{font-size:10px;line-height:1.8}.detail-label{font-size:8px}
 .event-item.venue{padding-top:25px}.event-item.venue h3{font-size:28px;max-width:280px}.venue p{max-width:270px}
 .gift-note{padding:27px 24px 31px;gap:17px;grid-template-columns:1fr;min-height:0;transform:rotate(-1deg)}
 .gift-illustration{transform:scale(.85);margin-top:-3px;margin-bottom:-4px;width:138px;height:121px}
 .gift-note:after{width:65px;left:calc(50% - 32px)}.gift-note h3{font-size:39px;margin-bottom:14px}.gift-note p:last-child{font-size:12px;line-height:1.9;max-width:280px;margin:auto}
 .invitation-response{margin-top:35px}.invitation-response>p{font-size:27px;max-width:280px;margin:0 auto 20px;line-height:1.3}
 .response-actions{flex-direction:column;gap:10px}.response-actions>.button{width:100%;max-width:310px;font-size:12px;padding:16px 18px}.decline-link{font-size:11px;padding:10px}
 .rsvp-inner{padding:39px 18px 45px}.rsvp-inner h2{font-size:37px;margin-top:6px}.rsvp-inner>.ribbon-bow{transform:scale(.65);margin-bottom:0;height:38px}
 .rsvp-form{padding:25px 19px}.attendance-options label span{min-height:73px}.rsvp-form .consent{font-size:10px;margin-top:22px}.rsvp-form input:not([type=checkbox]):not([type=radio]){padding:12px;font-size:16px}.companion-header{margin-top:25px;margin-bottom:23px}
 .footer{padding-top:41px}.footer-name{font-size:55px}.garden-petal{width:6px;height:10px}.petal-2,.petal-3,.petal-6,.petal-7{display:none}
}
@media(max-width:360px){
 .cover{padding:26px 25px 18px}.cover-layout{padding-top:16px}.cover h1{font-size:29px;max-width:270px}.cover-note{font-size:10px}.cover-copy .eyebrow{font-size:6px;letter-spacing:.13em}
 .cover-art{height:280px;max-width:285px;margin-top:14px}.nursery-scene{height:280px}.cover-art .scene-teddy{width:87%;left:6.5%}.balloon-flight{--balloon-height:90px}.balloon-ivory{--balloon-height:77px}.balloon-rose{--balloon-height:83px}
 .envelope-button{width:220px;margin-top:-12px}.envelope{height:132px}.wax-seal{top:44px;width:46px;height:46px;left:calc(50% - 23px)}.cover-footer{padding-top:20px;font-size:7px}.open-label{font-size:9px}
 .nav{padding:19px 18px 13px}.nav-actions{gap:8px}.nav-confirm{font-size:9px}.hero h1{font-size:76px}.hero{padding-left:22px;padding-right:22px}.hero-art>.nursery-scene{height:315px}
 .nav-actions{gap:6px}.experience-controls .motion-toggle,.experience-controls .music-toggle{font-size:7px;padding-left:6px;padding-right:6px}
 .celebration{padding-left:21px;padding-right:21px}.celebration h2{font-size:34px}.event-item h3{font-size:23px}.event-item.venue h3{font-size:26px}.gift-note{padding-left:22px;padding-right:22px}.gift-note h3{font-size:35px}.gift-note p:last-child{font-size:11px}.invitation-response>p{font-size:25px}
 .rsvp-inner{padding-left:15px;padding-right:15px}.rsvp-form{padding-left:17px;padding-right:17px}.attendance-options label span{min-height:0}.rsvp-inner h2{font-size:34px}
}
@media(prefers-reduced-motion:reduce){
 .petal-garden{display:none}.ambient-loop{animation:none!important}.balloon-blush{transform:rotate(2deg)}.balloon-ivory{transform:rotate(-7deg)}.balloon-rose{transform:rotate(6deg)}
 .invitation-enter .hero-copy,.invitation-enter .hero-art{animation:none!important}.motion-toggle{display:inline-flex}.cover.leaving{transform:none;transition:opacity 120ms ease!important}.gift-note{transform:none}.celebration-petal{display:none}
 /* A visitor may explicitly enable decorative motion using the control. */
 body.motion-forced .balloon-flight{animation:balloon-anchor 6.6s ease-in-out infinite!important}
 body.motion-forced .balloon-ivory{animation-duration:7.7s!important;animation-delay:-3s!important}
 body.motion-forced .balloon-blush{animation-delay:-1.5s!important}
 body.motion-forced .balloon-rose{animation-duration:5.8s!important;animation-delay:-4s!important}
 body.motion-forced .balloon-sway{animation:balloon-bob 5s ease-in-out infinite!important}
 body.motion-forced .scene-teddy{animation:bear-breathe 6.5s ease-in-out infinite!important}
 body.motion-forced .scene-star{animation:star-bloom 4.8s ease-in-out infinite!important}
 body.motion-forced .scene-cloud{animation:cloud-drift 10s ease-in-out infinite!important}
 body.motion-forced .gift-illustration{animation:gift-sway 6s ease-in-out infinite!important}
 body.motion-forced .petal-garden{display:block}
 body.motion-forced .garden-petal{animation:petal-fall 22s linear infinite!important}
 body.motion-forced .celebration-petal{display:block}
 body.motion-forced .envelope-flap{transition:transform 650ms var(--ease)!important}
 body.motion-forced .envelope-letter{transition:transform 750ms .15s var(--ease)!important}
 body.motion-forced .wax-seal{transition:opacity 180ms ease,transform 300ms var(--ease)!important}
 body.motion-forced .invitation-enter .hero-copy{animation:invitation-unfold 750ms var(--ease-bloom) both!important}
 body.motion-forced .invitation-enter .hero-art{animation:scene-arrive 900ms var(--ease-bloom) both!important}
 body.motion-forced[data-audio-state=playing] .music-symbol i{animation:music-bar 1.5s ease-in-out infinite!important}
 body.motion-forced.tab-hidden .ambient-loop,body.motion-forced .motion-scene:not(.in-view) .ambient-loop{animation-play-state:paused!important}
}
