/* Téo · original watercolor identity. The artwork and lettering come from the supplied PDF. */
:root{--paper:#fff;--ink:#34516a;--muted:#637789;--blue:#b8e8f7;--orange:#ff914d;--peach:#ffd6bc;--yellow:#fee699;--green:#d2ffdc;--leaf:#8dbd57;--blue-deep:#426d93;--line:#dce9ef;--heading:'Balsamiq Sans','Trebuchet MS',sans-serif;--sans:'Nunito',Arial,sans-serif;--dock-offset:98px;--beat:.6s}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--dock-offset)}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);overflow-x:clip}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--heading);font-weight:400;line-height:1.18}h1:focus,h2:focus{outline:none}em{font-style:normal;font-weight:inherit}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--blue-deep);outline-offset:5px}::selection{background:var(--yellow)}[hidden]{display:none!important}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.icon{width:21px;height:21px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.wrap{width:min(1140px,calc(100% - 88px));margin-inline:auto}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;line-height:1.7;text-transform:uppercase;letter-spacing:1.8px;font-weight:800}.tiny-star{font-size:21px;color:#d88556;line-height:1}.button{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:52px;border-radius:999px;padding:13px 23px;font-size:14px;font-weight:800;line-height:1.45;transition:background .2s,transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.primary{background:var(--orange);color:#40352b;box-shadow:0 4px 0 #edbd9b40}.primary:hover{background:#ffa468;box-shadow:0 7px 20px #e5b99c45}.dark{background:var(--blue-deep);color:#fff}.dark:hover{background:#315a7c}.button:disabled{opacity:.6}.text-link,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;background:transparent;padding:4px 0;font-size:12px;font-weight:700;line-height:1.5}.text-link:hover,.text-button:hover{color:#a3542c}.text-link .icon,.text-button .icon{width:17px;height:17px}.round-button{display:grid;place-items:center;flex-shrink:0;min-width:44px;width:44px;height:44px;border-radius:50%;background:white;border:1px solid var(--line);transition:background .2s}.round-button:hover{background:#edf8fc}.round-button .icon{width:17px;height:17px}.skip-link{position:fixed;top:10px;left:10px;transform:translateY(-170%);z-index:150;background:var(--ink);color:white;padding:12px 20px;border-radius:10px}.skip-link:focus{transform:translateY(0)}
.brand-trim{height:23px;background:#fff url('./assets/identidade/estampa-lacos.webp') center 28%/260px 390px repeat-x;border-bottom:1px solid #e9f2f6}.pattern-ribbon{height:32px;background:#fff url('./assets/identidade/estampa-lacos.webp') center 39%/270px 405px repeat-x}.ribbon-soft{background-position:center 73%}.footer-trim{height:31px;background-position:center 61%}
/* The first encounter: actual photograph, original lettering and watercolor friends. */
.site-header{height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:16px}.wordmark img{width:73px;height:auto}.wordmark small{display:block;max-width:90px;font-size:9px;line-height:1.6;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;border-left:1px solid var(--line);padding-left:16px}.site-header nav{display:flex;gap:28px;margin-left:auto;font-size:13px;font-weight:700}.site-header nav a{padding:13px 0}.site-header nav a:hover{color:#ac643a}.header-controls{display:flex;align-items:center;gap:8px}.sound-button{display:flex;align-items:center;gap:8px;min-height:44px;border-radius:24px;border:1px solid var(--line);padding:9px 14px;background:transparent;font-size:11px;font-weight:700}.sound-button[aria-pressed=true]{background:var(--blue-deep);color:white;border-color:var(--blue-deep)}.sound-button .icon{width:17px;height:17px}.motion-button{background:transparent}.scene{scroll-margin-top:0}.hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:26px;padding-top:43px}.hero-copy{position:relative;z-index:2}.hero-copy h1{margin:12px 0 20px;width:267px}.hero-copy h1 img{width:100%;height:auto}.hero-subtitle{font-family:var(--heading);font-size:25px;line-height:1.4;color:var(--ink)}.hero-description{max-width:360px;margin-top:15px;font-size:14px;line-height:1.8;color:var(--muted)}.hero-date{display:flex;gap:12px;align-items:center;margin-top:23px}.hero-date>.icon{width:27px;height:27px;color:var(--blue-deep)}.hero-date>span{display:flex;flex-direction:column}.hero-date strong{font-size:14px;font-weight:800}.hero-date small{font-size:12px;color:var(--muted)}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:23px}.hero-actions>.text-link{font-size:12px}.hero-art{position:relative;min-width:0;height:525px;isolation:isolate;align-self:center}.arch{position:absolute;inset:45px 29px 33px 27px;border-radius:48% 48% 44% 44%;background:#edf9fe;border:7px solid #f7fcff;box-shadow:0 0 0 1px #dceff8;transform:rotate(-4deg)}.arch:before{content:'';position:absolute;inset:7px;border-radius:inherit;background:url('./assets/identidade/estampa-poas.webp') center/360px 540px;opacity:.36}.arch:after{content:'';position:absolute;inset:17px;border:1px dashed #a4cbe3;border-radius:inherit}.hero-ground{position:absolute;bottom:21px;left:3%;width:94%;height:31px;background:#eff7e6;border-radius:50%;z-index:2;opacity:.8}.hero-art>img{position:absolute;width:auto;max-width:none;object-fit:contain;transform-origin:50% 96%}.hero-art>.hero-teo{height:408px;left:calc(50% - 83px);bottom:45px;z-index:4;filter:drop-shadow(0 6px 3px #38566b10)}.hero-art>.hero-dog{height:213px;bottom:23px;left:-8px;z-index:5}.hero-art>.hero-duck{height:150px;bottom:22px;right:25%;z-index:6}.hero-art>.hero-croc{height:211px;bottom:24px;right:-12px;z-index:5}.hero-art>.art-one{height:172px;right:68px;top:37px;z-index:2;transform:rotate(9deg);opacity:.9}.hello-bubble{position:absolute;top:42px;left:3%;z-index:5;background:#fff;border:1px solid #dcebf1;padding:10px 15px;border-radius:18px 18px 2px 18px;box-shadow:0 4px 18px #51768e0d;font-family:var(--heading);font-size:17px;transform:rotate(-6deg)}.hello-bubble span{color:#bd7852;margin-left:3px}.art-dot{position:absolute;z-index:1;border-radius:50%;opacity:.8}.dot-one{top:153px;right:3%;width:18px;height:18px;background:var(--yellow)}.dot-two{top:195px;left:4%;width:12px;height:12px;background:var(--peach)}.floating-note{position:absolute;top:7px;right:24px;font-size:47px;font-family:Georgia,serif;transform:rotate(14deg);color:#92b954;z-index:2}.scene-active .hero-teo{animation:photo-arrive .8s ease-out 1}.scene-active .hero-dog{animation:arrive .65s .1s backwards}.scene-active .hero-duck{animation:arrive .65s .22s backwards}.scene-active .hero-croc{animation:arrive .65s .34s backwards}.welcome-bottom{display:grid;grid-template-columns:1.18fr 1fr auto;align-items:center;gap:30px;padding:27px 0 29px;margin-top:45px;border-top:1px solid var(--line)}.little-memory{display:flex;align-items:center;gap:19px}.memory-crest{width:125px;flex-shrink:0}.little-memory p{font-size:12px;line-height:1.8}.little-memory em{font-family:var(--heading);font-size:14px;color:var(--blue-deep)}.countdown-block{border-left:1px solid var(--line);padding-left:34px}.countdown-block>.eyebrow{font-size:9px;letter-spacing:1.25px}.countdown{display:flex;gap:16px;align-items:center;margin-top:7px}.countdown>span{display:flex;flex-direction:column;align-items:center;min-width:47px}.countdown strong{font-family:var(--heading);font-weight:400;font-size:36px;line-height:1.15;font-variant-numeric:tabular-nums}.countdown small{font-size:10px;color:var(--muted)}.countdown>b{font-weight:400;color:#acc6d4;font-size:18px;margin-bottom:12px}.countdown-block>p:last-child{font-size:10px;color:var(--muted);margin-top:5px}.scroll-cue{display:flex;flex-direction:column;align-items:center;font-family:var(--heading);font-size:12px;gap:10px}.scroll-cue>span:last-child{display:grid;place-items:center;width:40px;height:49px;border-radius:30px;border:1px solid #c5deec;font-size:22px;font-family:var(--sans)}
/* A small companion follows the visitor without replacing page content. */
.companion{position:fixed;z-index:50;top:12px;left:50%;transform:translateX(-50%);width:min(490px,calc(100% - 28px));border:1px solid #cde5f1;border-radius:20px;background:#fffffff7;box-shadow:0 6px 28px #33597618;backdrop-filter:blur(12px);padding:4px 12px 9px;animation:dock-appear .3s ease-out}.companion-bar{display:flex;align-items:center;gap:12px;min-height:62px}.companion-cast{position:relative;width:115px;height:60px;flex-shrink:0}.companion-cast img{position:absolute;width:auto;max-width:none;bottom:2px;transform-origin:50% 100%}.mini-teo{height:56px;left:40px;z-index:2}.mini-dog{height:40px;left:0;z-index:3}.mini-duck{height:31px;left:64px;z-index:4}.mini-croc{height:41px;right:-2px;z-index:3}.companion-copy{flex:1;min-width:0;line-height:1.3}.companion-copy>span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:800}.companion-copy>strong{display:block;font-family:var(--heading);font-size:16px;font-weight:400;margin-top:4px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.companion .round-button{background:transparent;border:0}.companion.is-expanded #companion-expand .icon{transform:rotate(180deg)}.companion-reveal{padding:5px 6px 9px;border-top:1px solid var(--line)}.companion-reveal>p{font-size:13px;padding-top:9px;line-height:1.65}.companion-reveal>div{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:4px}.scene-progress{display:flex;gap:5px;padding:0 6px}.scene-progress i{height:3px;background:#edf4f7;flex:1;border-radius:3px;transition:background .3s}.scene-progress i.is-complete{background:#a9cfe3}.scene-progress i.is-active{background:var(--orange)}.companion.is-reacting .mini-teo{animation:mini-hop .55s ease-in-out 2}.companion[data-scene=party] .mini-duck{animation:mini-hop .7s ease-in-out 2}.companion[data-scene=band] .companion-cast img{animation:band-bop .6s ease-in-out 3}.companion[data-scene=rsvp] .mini-teo{animation:mini-hop .7s ease-in-out 2}
/* A paper invitation inside the story. */
.party{position:relative;background:#eff9fd;padding:76px 0 78px}.party-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:76px;align-items:center}.scene-number{display:inline-grid;place-items:center;width:29px;height:29px;border:1px solid #b7d6e6;border-radius:50%;font-size:10px;letter-spacing:0;color:var(--blue-deep);font-weight:800;background:#ffffff90}h2{font-size:clamp(36px,4.5vw,52px);letter-spacing:-1.2px}h2 em{color:var(--blue-deep)}.party-intro h2,.rsvp-story h2{margin-top:19px}.section-lead{color:var(--muted);font-size:15px;line-height:1.8;margin-top:19px}.date-scene{position:relative;width:298px;height:238px;margin-top:24px}.date-croc{position:absolute;z-index:2;height:225px;width:auto;bottom:0;left:-24px;transform-origin:50% 90%}.date-sign{position:absolute;right:-8px;top:22px;z-index:1;background:white;border:1px solid #c7e2ef;border-radius:13px;width:139px;text-align:center;box-shadow:0 7px 0 #d6e9f45e;padding:12px 0 13px;transform:rotate(7deg);transform-origin:50% 0}.date-sign>span{display:block;text-transform:uppercase;font-size:10px;letter-spacing:1.8px;font-weight:800}.date-sign strong{font-family:var(--heading);font-size:72px;font-weight:400;line-height:1.15;color:var(--blue-deep)}.date-sign small{display:block;font-size:10px}.date-spark{position:absolute;right:-29px;top:-9px;color:#e8b753;font-size:38px}.scene-active .date-sign{animation:sign-unroll .8s both}.scene-active .date-croc{animation:hello-wave 1.1s both}.event-ticket{position:relative;border-radius:22px;background:white;border:1px solid #c7dfec;box-shadow:0 7px 0 #d5eaf34a;overflow:visible}.ticket-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 29px;border-bottom:1px dashed #c5dce9;font-family:var(--heading);font-size:17px;background:#fafeff;border-radius:22px 22px 0 0}.ticket-top>.icon{color:#cb8a5a}.ticket-body{padding:28px 29px 20px}.event-row{display:flex;align-items:start;gap:16px}.event-row+.event-row{margin-top:27px}.event-icon{width:40px;height:40px;display:grid;place-items:center;background:#e8f6fd;border-radius:50%;flex-shrink:0;margin-top:3px}.event-icon>.icon{width:19px;height:19px}.detail-label{display:block;text-transform:uppercase;letter-spacing:1.4px;font-size:9px;font-weight:800;margin-bottom:8px;color:var(--muted)}.event-row h3{font-size:25px;letter-spacing:-.3px}.event-row p{font-size:14px;line-height:1.7;color:var(--muted);margin-top:7px}.ticket-actions{display:flex;align-items:center;gap:23px;flex-wrap:wrap;padding:22px 29px 29px}.ticket-actions>.button{min-height:49px;font-size:13px;padding:12px 20px}.ticket-actions>.text-link{font-size:12px}.map-duck{position:absolute;right:-25px;top:-58px;width:80px;transform:rotate(7deg);pointer-events:none}.map-duck img{width:75px;max-width:none}.map-duck span{display:block;position:absolute;left:-85px;top:12px;width:107px;background:#fff0bc;border:1px solid #f5e0a5;border-radius:9px;padding:5px 8px;text-align:center;font-family:var(--heading);font-size:11px;transform:rotate(-12deg)}.scene-active .map-duck{animation:map-hop .6s .5s 2}.gifts{margin-top:24px;background:#fff5ea;border:1px solid #efdcca;border-radius:15px;overflow:hidden}.gifts summary{display:flex;align-items:center;gap:14px;cursor:pointer;list-style:none;padding:17px 21px;min-height:83px}.gifts summary::-webkit-details-marker{display:none}.gift-symbol{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;color:#9e633e}.gifts summary strong{display:block;font-family:var(--heading);font-size:20px;font-weight:400}.gifts summary small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.gift-chevron{margin-left:auto;width:18px;height:18px;transition:transform .2s}.gifts[open] .gift-chevron{transform:rotate(45deg)}.gift-content{padding:5px 26px 24px}.gift-content h3{font-size:23px}.gift-content p{font-size:13px;margin-top:13px;color:var(--muted)}.store-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:15px 0}.store-list li{background:white;border:1px solid #ebd5bf;padding:5px 12px;border-radius:25px;font-size:12px;font-weight:700}.gift-content .small-text{font-size:11px}.gift-content>.text-link{margin-top:9px;color:#895334}
/* Musicians use their original instruments: guitar, maracas, drum. */
.band-section{position:relative;padding:80px 0 72px;background:white;isolation:isolate}.band-section:before,.band-section:after{content:'';position:absolute;top:10%;bottom:12%;width:min(10%,130px);z-index:-1;background:url('./assets/identidade/estampa-banda.webp') center/680px auto;opacity:.18;pointer-events:none}.band-section:before{left:0;mask-image:linear-gradient(to right,#000,transparent)}.band-section:after{right:0;mask-image:linear-gradient(to left,#000,transparent)}.section-heading{text-align:center}.section-heading>.eyebrow{justify-content:center}.section-heading h2{margin-top:18px}.section-heading .section-lead{margin-top:17px}.band-progress{display:flex;align-items:center;justify-content:center;gap:8px;margin:27px auto 25px}.band-progress>span{display:grid;place-items:center;width:31px;height:31px;border:1px solid #cee2ec;border-radius:50%;color:#7699b0;font-family:Georgia,serif;font-size:17px;transition:all .25s}.band-progress>span.is-on{background:var(--blue);border-color:#91cfe4;color:var(--ink);transform:rotate(-8deg)}.band-progress>i{height:1px;width:29px;background:#d5e7ef}.musicians{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;width:min(850px,100%);margin:auto}.musician{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;border:1px solid #e0edf3;border-radius:24px;background:white;padding:16px 15px 21px;transition:border-color .25s,transform .2s,box-shadow .25s}.musician:hover{border-color:#aacfe1;box-shadow:0 8px 25px #7aa4bc10;transform:translateY(-4px)}.musician:active{transform:translateY(1px)}.musician-art{display:block;position:relative;width:100%;height:231px;isolation:isolate}.musician-halo{display:none}.musician-art img{position:absolute;height:100%;width:100%;object-fit:contain;bottom:0;left:0;transform-origin:50% 95%}.dog .musician-art img{height:101%}.fox .musician-art img{height:94%}.monkey .musician-art img{height:96%}.musician-note{position:absolute;right:3%;top:6%;color:#cf9152;font-size:34px;font-family:Georgia,serif;opacity:0;transform:scale(.5) rotate(-14deg);transition:opacity .2s,transform .2s}.musician[aria-pressed=true]{border-color:#8ebfd6;box-shadow:0 0 0 3px #d6eef882}.musician[aria-pressed=true] .musician-art img{animation:band-bop var(--beat) ease-in-out infinite}.musician[aria-pressed=true] .musician-note{opacity:1;transform:scale(1) rotate(14deg)}.musician-name{font-family:var(--heading);font-size:25px;line-height:1.2;margin-top:18px}.musician-instrument{font-size:12px;color:var(--muted);margin-top:7px}.instrument-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#f6fbfd;border:1px solid #cfe2ed;border-radius:30px;padding:9px 16px;margin-top:17px;font-size:11px;font-weight:800;min-height:42px;min-width:120px;transition:background .25s}.instrument-toggle .icon{width:14px;height:14px}.musician[aria-pressed=true] .instrument-toggle{background:var(--blue-deep);color:white;border-color:var(--blue-deep)}.band-conductor{text-align:center;padding-top:28px}.band-count{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.3px;color:var(--muted)}#band-announcement{font-family:var(--heading);font-size:21px;margin-top:8px;min-height:1.6em}.band-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:20px}.band-controls .button{font-size:13px;min-height:49px}.band-controls .text-button{font-size:12px;text-decoration:underline;text-underline-offset:4px}.sound-note{font-size:11px;margin-top:12px;color:var(--muted)}.band-finale{display:flex;justify-content:center;align-items:center;gap:23px;margin:24px auto 0;padding:13px 25px;border-radius:15px;background:#fff4c9;width:max-content;max-width:100%;text-align:center;animation:arrive .4s ease-out}.band-finale>span{color:#bb864c;font-size:27px}.band-finale p{font-size:12px;line-height:1.6}.band-finale strong{font-family:var(--heading);font-size:21px;font-weight:400}.band-section:not(.scene-active) .musician-art img{animation-play-state:paused}#band-reset:disabled{opacity:.4}
/* RSVP stays direct and never claims a WhatsApp message has already been sent. */
.confirmation{background:#fff8ee;padding:76px 0 0}.rsvp-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:84px;align-items:start}.rsvp-story .section-lead{font-size:14px}.farewell-art{position:relative;width:310px;height:300px;margin:25px 0 -8px;isolation:isolate}.farewell-halo{position:absolute;inset:30px 30px 4px 0;border-radius:45% 48% 43% 40%;background:#edf5e5;transform:rotate(4deg)}.farewell-halo:before{content:'';position:absolute;inset:9px;border:1px dashed #c2d4ac;border-radius:inherit}.farewell-art>img{height:100%;width:auto;position:absolute;left:42px;bottom:0;transform-origin:50% 95%}.farewell-sign{position:absolute;right:-7px;bottom:52px;padding:14px 17px;max-width:180px;background:white;border:1px solid #f1d9c5;box-shadow:0 4px 0 #f3e6d76e;border-radius:11px;font-family:var(--heading);font-size:19px;line-height:1.4;text-align:center;transform:rotate(5deg);z-index:2;overflow-wrap:anywhere}.farewell-sign span{display:block;color:#ae704b;font-size:25px}.farewell-note{position:absolute;right:13px;top:36px;font-family:Georgia,serif;font-size:43px;transform:rotate(15deg);color:#cc9b4e}.scene-active .farewell-art>img,.rsvp-story.is-reacting .farewell-art>img{animation:photo-arrive .8s ease-out 1}.rsvp-story.is-reacting .farewell-sign{animation:sign-unroll .55s ease-out 1}.rsvp-form{padding:31px 32px 29px;border-radius:23px;background:white;border:1px solid #eadfce;box-shadow:0 8px 0 #eadfcb30}.form-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:23px;margin-bottom:23px;border-bottom:1px dashed #dfdcd2;font-family:var(--heading);font-size:22px;line-height:1.35}.form-heading .icon{color:#c88659}.rsvp-form label{display:block;font-size:13px;font-weight:800;margin-bottom:9px}.rsvp-form>input,.share-fallback input{width:100%;min-width:0;background:#fffdf9;border:1px solid #d9e0df;border-radius:11px;padding:14px 15px;color:var(--ink);font-size:16px;min-height:54px}.rsvp-form>input::placeholder{font-size:13px;color:#75818a}.guest-counts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.count-field label small{display:block;font-size:11px;font-weight:500;color:var(--muted);margin-top:2px}.stepper{display:flex;align-items:center;justify-content:space-between;gap:2px;border:1px solid #d9e0df;border-radius:11px;overflow:hidden;background:#fffdf9}.stepper button{height:48px;width:44px;flex-shrink:0;display:grid;place-items:center;background:transparent}.stepper button:hover{background:#eaf5fb}.stepper button:disabled{opacity:.35}.stepper button>.icon{width:15px;height:15px}.stepper input{appearance:textfield;-moz-appearance:textfield;border:0;background:transparent;width:40px;min-width:0;padding:0;text-align:center;font-size:17px;color:var(--ink)}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.guest-ticket{display:flex;gap:12px;align-items:center;padding:15px;background:#eff8fc;border-radius:10px;margin-top:23px;min-height:57px}.guest-ticket .icon{width:18px;height:18px;color:var(--blue-deep)}.guest-ticket p{font-size:12px;line-height:1.6;overflow-wrap:anywhere}.rsvp-submit{width:100%;font-size:13px;margin-top:19px;gap:9px;min-height:56px;padding:13px 16px}.rsvp-submit .icon{width:19px;height:19px}.form-note{font-size:11px;line-height:1.7;color:var(--muted);margin:13px auto 0;text-align:center;max-width:340px}.rsvp-feedback{margin-top:17px;border-top:1px solid var(--line);padding-top:15px}.rsvp-feedback>p{font-size:13px;font-weight:800}.rsvp-feedback>.text-link{font-size:11px;color:var(--blue-deep);justify-content:start}.farewell{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:30px;border-top:1px solid #e9dfcf;margin-top:47px;padding:28px 0 36px}.farewell>div:first-child{position:relative;min-height:91px;padding-left:142px;display:flex;flex-direction:column;justify-content:center}.footer-crest{position:absolute;left:0;top:0;width:122px}.farewell>.footer-actions{display:flex;align-items:center;gap:23px}.farewell .eyebrow{font-size:9px;letter-spacing:1.4px}.farewell p{font-family:var(--heading);font-size:29px;line-height:1.4;margin-top:4px}.farewell p>em{color:var(--blue-deep)}.farewell p>span{color:#b88359;margin-left:9px;font-size:24px}.farewell small{font-size:11px;color:var(--muted)}.footer-actions>.text-button{font-size:12px}.share-fallback{width:100%;max-width:500px}.share-fallback label{display:block;font-size:12px;margin-bottom:7px}.share-fallback input{font-size:13px}.mobile-rsvp{display:none}.gift-shortcut{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:6px;min-height:44px;padding:8px 11px;background:#fff5ea;border:1px solid #e8d1bc;border-radius:24px;color:#805139;font-size:12px;font-weight:800;line-height:1.2;white-space:nowrap;transition:background .2s,border-color .2s}.gift-shortcut:hover{background:#ffead6;border-color:#d8b99e}.gift-shortcut .icon{width:16px;height:16px;flex-shrink:0}.companion-gift{font-size:11px;gap:5px;padding-inline:10px}.companion-gift .icon{width:15px;height:15px}.toast{position:fixed;z-index:90;bottom:25px;left:50%;transform:translate(-50%,20px);width:max-content;max-width:calc(100% - 40px);background:var(--ink);color:white;border-radius:13px;padding:13px 18px;font-size:13px;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.confetti-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:80}.confetti{position:absolute;top:-18px;width:7px;height:13px;animation:confetti-fall 2.6s ease-out both}
/* Opening curtain: all artwork remains unaltered. Sound is a separate choice. */
.intro{position:fixed;inset:0;width:100%;height:100%;height:100svh;max-width:none;max-height:none;margin:0;border:0;padding:30px;background:white;color:var(--ink);overflow-x:hidden;overflow-y:auto;isolation:isolate}.intro[open]{display:grid;place-items:center}.intro::backdrop{background:white}.intro:before{content:'';position:absolute;inset:0;z-index:-1;background:url('./assets/identidade/estampa-poas.webp') center/490px 735px;opacity:.14}.intro-content{position:relative;z-index:3;max-width:680px;width:100%;text-align:center;margin:auto;transition:opacity .4s,transform .65s}.intro-cover>.eyebrow{justify-content:center;font-size:10px;letter-spacing:1.7px;margin-bottom:15px}.intro-heading h2{font-size:39px;letter-spacing:-.9px;line-height:1.22}.intro-heading h2 em{color:var(--blue-deep)}.intro-art{position:relative;width:440px;max-width:100%;height:275px;margin:20px auto 0}.intro-halo{position:absolute;inset:24px 12px 1px 30px;background:#f5fbff;border:1px solid #e4f2f9;border-radius:50%}.intro-teo{position:absolute;left:9%;height:93%;width:auto;max-width:none;bottom:0;z-index:3}.intro-band{position:absolute;right:-1%;bottom:-3px;width:76%;height:auto;max-width:none;z-index:2}.intro-cover>p{font-size:15px;margin-top:20px}.intro-cover>.button{margin-top:20px;min-width:253px;font-size:14px}.intro-cover>.text-button{display:flex;width:max-content;margin:7px auto 0;font-size:12px}.intro-cover>.intro-date{font-size:11px;letter-spacing:.5px;margin-top:6px}.intro-date>span{padding-inline:7px;color:#a56e40}.curtain{position:absolute;top:0;bottom:0;width:15%;min-height:100%;z-index:2;background:#d4edf9 url('./assets/identidade/estampa-listras.webp') center/220px 330px;box-shadow:inset -8px 0 20px #679cbe19;transition:transform .75s cubic-bezier(.25,.7,.2,1)}.curtain-left{left:0;border-radius:0 0 70% 0;transform:translateX(-35%)}.curtain-right{right:0;border-radius:0 0 0 70%;transform:translateX(35%);box-shadow:inset 8px 0 20px #679cbe19}.intro.is-opening .curtain-left{transform:translateX(-120%)}.intro.is-opening .curtain-right{transform:translateX(120%)}.intro.is-opening .intro-content{opacity:0;transform:translateY(18px) scale(.97)}body.intro-open{overflow:hidden}.intro-open .companion,.intro-open .mobile-rsvp{visibility:hidden}
@keyframes photo-arrive{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes hello-wave{0%,100%{transform:rotate(0) translateY(0)}20%{transform:rotate(-3deg) translateY(-4px)}45%{transform:rotate(2deg) translateY(-1px)}70%{transform:rotate(-2deg) translateY(-4px)}}@keyframes arrive{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes band-bop{0%,100%{transform:rotate(-1.3deg) translateY(0)}50%{transform:rotate(1.3deg) translateY(-5px)}}@keyframes mini-hop{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes map-hop{0%,100%{transform:translateY(0) rotate(7deg)}50%{transform:translateY(-7px) rotate(3deg)}}@keyframes sign-unroll{from{transform:rotate(-7deg) translateY(-6px);opacity:0}to{transform:rotate(6deg) translateY(0);opacity:1}}@keyframes dock-appear{from{opacity:0;translate:0 -15px}to{opacity:1;translate:0 0}}@keyframes confetti-fall{to{transform:translate(var(--drift),105vh) rotate(var(--spin));opacity:0}}
.page-hidden *{animation-play-state:paused!important}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation:none!important;transition:none!important}.motion-paused .confetti-layer{display:none}
/* Tablet. */
@media(max-width:1080px){.wrap{width:calc(100% - 64px)}.wordmark small{display:none}.site-header nav{gap:22px}.hero-grid{gap:14px}.hero-copy h1{width:238px}.hero-subtitle{font-size:23px}.hero-description{font-size:13px}.hero-actions{gap:16px}.hero-actions>.button{font-size:12px;padding-inline:20px}.hero-actions>.text-link{font-size:11px}.hero-art{height:490px}.hero-art>.hero-teo{height:383px;left:calc(50% - 78px);bottom:44px}.hero-art>.hero-dog{height:190px;left:-15px}.hero-art>.hero-duck{height:134px;right:24%}.hero-art>.hero-croc{height:190px;right:-18px}.hero-art>.art-one{right:40px;height:154px;top:37px}.hello-bubble{left:0;top:43px;font-size:15px}.floating-note{right:10px}.welcome-bottom{gap:22px}.memory-crest{width:100px}.little-memory{gap:14px}.little-memory p{font-size:11px}.little-memory em{font-size:13px}.countdown-block{padding-left:25px}.countdown-block>.eyebrow{font-size:8px}.party-grid,.rsvp-grid{gap:54px}.ticket-body{padding-inline:23px}.ticket-actions{padding-inline:23px;gap:15px}.event-row h3{font-size:23px}.rsvp-form{padding-inline:25px}.guest-counts{gap:16px}.farewell .footer-actions{flex-direction:column;align-items:end;gap:0}.musicians{gap:20px}.musician-art{height:210px}.musician-name{font-size:23px}.date-scene{width:270px}.date-croc{height:210px}.date-sign{width:125px}}
@media(max-width:820px){.site-header{height:86px}.site-header nav{gap:16px;font-size:12px}.header-controls{gap:5px}.sound-button{font-size:10px;padding-inline:11px}.hero-grid{grid-template-columns:1fr 1fr;gap:10px;padding-top:33px}.hero-copy>.eyebrow{font-size:8px;letter-spacing:1.2px}.hero-copy h1{width:211px}.hero-subtitle{font-size:21px}.hero-description{font-size:12px}.hero-art{height:430px}.hero-art>.hero-teo{height:345px;left:calc(50% - 70px);bottom:34px}.hero-art>.hero-dog{height:153px;bottom:15px;left:-16px}.hero-art>.hero-duck{height:112px;bottom:14px;right:21%}.hero-art>.hero-croc{height:157px;bottom:17px;right:-26px}.hero-art>.art-one{height:123px;right:21px;top:24px}.hello-bubble{top:4px;font-size:12px;padding:7px 10px;left:0}.arch{inset:22px 3px 30px 3px}.hero-ground{bottom:15px;left:0;width:100%}.floating-note{font-size:35px;top:-7px;right:4px}.hero-date strong{font-size:12px}.hero-date small{font-size:11px}.hero-actions{display:block;margin-top:18px}.hero-actions .text-link{display:flex;justify-content:start;margin-top:7px}.welcome-bottom{grid-template-columns:1.1fr 1fr;margin-top:32px}.scroll-cue{display:none}.memory-crest{width:89px}.little-memory{gap:11px}.little-memory p{font-size:10px}.little-memory em{font-size:12px}.countdown-block{padding-left:21px}.countdown{gap:11px}.countdown strong{font-size:32px}.party{padding:60px 0}.party-grid{grid-template-columns:.83fr 1.17fr;gap:30px}h2{font-size:40px}.party-intro .eyebrow,.rsvp-story .eyebrow{font-size:8px;letter-spacing:1px}.section-lead{font-size:13px}.date-scene{width:214px;height:205px}.date-croc{height:180px;left:-25px}.date-sign{right:-11px;width:108px;top:20px}.date-sign strong{font-size:59px}.date-sign>span{font-size:8px}.date-sign small{font-size:9px}.date-spark{right:-12px;top:-13px;font-size:29px}.ticket-top{padding:17px 20px;font-size:15px}.ticket-body{padding:24px 20px 17px}.event-row{gap:12px}.event-row h3{font-size:21px}.event-row p{font-size:12px}.event-icon{width:32px;height:32px}.detail-label{font-size:8px}.ticket-actions{padding:18px 20px 23px;gap:12px}.ticket-actions>.button{font-size:11px;min-height:45px;padding-inline:16px}.ticket-actions>.text-link{font-size:11px}.map-duck{right:-16px;top:-48px;width:66px}.map-duck img{width:61px}.map-duck span{font-size:10px;width:95px;left:-80px;top:13px}.gifts summary{padding:15px}.gifts summary strong{font-size:18px}.gifts summary small{font-size:10px}.gift-content{padding-inline:20px}.band-section{padding:62px 0}.musicians{gap:15px}.musician{padding:12px 10px 17px;border-radius:20px}.musician-art{height:184px}.musician-name{font-size:21px}.musician-instrument{font-size:11px}.confirmation{padding-top:60px}.rsvp-grid{gap:32px;grid-template-columns:.85fr 1.15fr}.rsvp-form{padding:25px 20px}.form-heading{font-size:19px}.guest-counts{gap:12px}.stepper button{width:35px}.rsvp-submit{font-size:11px;padding-inline:12px}.farewell-art{width:235px;height:270px}.farewell-art>img{left:20px}.farewell-sign{font-size:16px;max-width:148px;right:-4px;bottom:38px}.farewell-note{right:2px;top:25px}.farewell>div:first-child{padding-left:112px}.footer-crest{width:96px;top:9px}.farewell small{font-size:10px}.farewell .eyebrow{font-size:8px}.footer-actions>.text-button{font-size:11px}}
/* Mobile: put Téo near the top, then the invitation's practical actions. */
@media(max-width:640px){:root{--dock-offset:95px}.wrap{width:calc(100% - 40px)}.brand-trim{height:18px;background-size:220px 330px}.site-header{height:73px;gap:12px}.wordmark img{width:61px}.site-header nav{display:none}.header-controls{margin-left:auto;gap:6px}.sound-button{font-size:11px;padding:8px 11px;min-height:42px}.motion-button{width:40px;min-width:40px;height:42px;border-color:transparent}.hero-grid{display:flex;flex-direction:column;align-items:center;gap:0;padding-top:25px}.hero-copy{display:contents;text-align:center}.hero-copy>.eyebrow{order:0;justify-content:center;font-size:9px;letter-spacing:1.2px;gap:8px}.tiny-star{font-size:18px}.hero-copy h1{order:1;width:198px;margin:11px 0 11px}.hero-subtitle{order:2;text-align:center;font-size:21px;line-height:1.4}.hero-art{order:3;align-self:center;flex-shrink:0;width:min(370px,100%);height:337px;margin-top:23px}.hero-description{order:4;max-width:320px;text-align:center;margin:32px auto 0;font-size:13px;line-height:1.8}.hero-date{order:5;justify-content:center;margin-top:17px;text-align:left;gap:10px}.hero-date strong{font-size:14px}.hero-date small{font-size:12px}.hero-date>.icon{width:25px;height:25px}.hero-actions{order:6;display:flex;justify-content:center;gap:17px;margin-top:20px}.hero-actions>.button{min-height:49px;font-size:12px;padding:12px 19px}.hero-actions>.text-link{margin:0;font-size:11px}.arch{inset:18px 9px 15px 8px;border-width:5px}.arch:before{background-size:290px 435px}.arch:after{inset:12px}.hero-art>.hero-teo{height:286px;left:calc(50% - 58px);bottom:21px}.hero-art>.hero-dog{height:151px;left:-11px;bottom:7px}.hero-art>.hero-duck{height:107px;right:24%;bottom:5px}.hero-art>.hero-croc{height:151px;right:-10px;bottom:7px}.hero-art>.art-one{height:113px;right:33px;top:20px}.hero-ground{bottom:8px;left:3%;width:94%;height:22px}.hello-bubble{font-size:12px;top:5px;left:0;padding:7px 10px}.floating-note{font-size:31px;top:-7px;right:8px}.dot-one{top:110px;right:2%;width:13px;height:13px}.dot-two{top:131px;left:3%;width:9px;height:9px}.welcome-bottom{display:flex;flex-direction:column;gap:23px;padding:24px 0 27px;margin-top:31px}.little-memory{gap:17px;width:max-content;max-width:100%}.memory-crest{width:104px}.little-memory p{font-size:12px}.little-memory em{font-size:13px}.countdown-block{border-left:0;border-top:1px solid var(--line);padding:22px 0 0;width:100%;text-align:center}.countdown-block>.eyebrow{justify-content:center;font-size:9px}.countdown{justify-content:center;gap:19px;margin-top:10px}.countdown strong{font-size:35px}.countdown>span{min-width:45px}.countdown-block>p:last-child{font-size:10px}.pattern-ribbon{height:26px;background-size:230px 345px}.companion{top:8px;padding:3px 8px 8px;border-radius:17px}.companion-bar{gap:8px;min-height:55px}.companion-cast{width:95px;height:55px}.mini-teo{height:51px;left:33px}.mini-dog{height:34px;left:0}.mini-duck{height:27px;left:53px}.mini-croc{height:35px;right:-3px}.companion-copy>span{font-size:7px;letter-spacing:.4px}.companion-copy>strong{font-size:14px}.companion .round-button{width:40px;min-width:40px;height:44px}.companion-reveal>p{font-size:12px}.companion-reveal .text-button,.companion-reveal .text-link{font-size:12px}.party{padding:47px 0 49px}.party-grid{display:block}.party-intro{position:relative;padding-bottom:35px;min-height:215px}.party-intro>.eyebrow{font-size:9px;letter-spacing:1.2px}h2{font-size:38px;letter-spacing:-.8px}.party-intro h2,.rsvp-story h2{margin-top:17px}.party-intro h2{max-width:69%;font-size:35px}.party-intro .section-lead{font-size:13px;margin-top:16px;max-width:62%}.date-scene{position:absolute;width:142px;height:174px;right:-9px;bottom:19px;margin:0}.date-croc{height:148px;left:-13px;bottom:-2px;z-index:2}.date-sign{width:73px;right:0;top:0;padding:7px 0 8px;border-radius:8px;z-index:1}.date-sign>span{font-size:6px;letter-spacing:1px}.date-sign strong{font-size:41px}.date-sign small{font-size:7px}.date-spark{font-size:22px;right:71px;top:-12px}.event-ticket{border-radius:18px}.ticket-top{padding:17px 21px;font-size:15px;border-radius:18px 18px 0 0}.ticket-body{padding:25px 21px 17px}.event-icon{width:34px;height:34px}.event-row{gap:13px}.event-row h3{font-size:23px;letter-spacing:-.3px}.event-row p{font-size:13px;margin-top:8px}.event-row+.event-row{margin-top:26px}.detail-label{font-size:8px;letter-spacing:1.25px}.ticket-actions{padding:17px 21px 24px;justify-content:space-between;gap:8px}.ticket-actions>.button{font-size:12px;padding:11px 17px;min-height:48px}.ticket-actions>.text-link{font-size:11px;gap:6px}.map-duck{top:auto;bottom:91px;right:10px;width:54px;transform:rotate(7deg)}.map-duck img{width:54px}.map-duck span{display:none}.gifts{margin-top:19px;border-radius:13px}.gifts summary{min-height:79px;padding:16px 18px}.gifts summary strong{font-size:20px}.gifts summary small{font-size:11px}.gift-content h3{font-size:21px}.gift-content p{font-size:13px}.gift-content>.text-link{font-size:12px}.band-section{padding:51px 0 49px}.section-heading>.eyebrow{font-size:9px;letter-spacing:1.2px}.section-heading h2{font-size:35px;margin-top:17px;line-height:1.23}.section-heading .section-lead{font-size:13px;margin-top:17px}.band-progress{margin-top:23px;margin-bottom:23px}.musicians{gap:8px;width:100%;margin-inline:auto}.musician{padding:9px 5px 12px;border-radius:15px}.musician:hover{transform:none}.musician-art{height:128px}.musician-name{font-size:16px;margin-top:11px;letter-spacing:-.3px}.musician-instrument{font-size:10px;margin-top:6px;line-height:1.5;max-width:92px;min-height:30px}.instrument-toggle{font-size:10px;padding:7px 8px;gap:4px;min-width:0;width:calc(100% - 2px);margin-top:11px;min-height:39px}.instrument-toggle>.icon{width:12px;height:12px}.musician-note{font-size:25px;top:6%;right:0}.band-conductor{padding-top:23px}.band-count{font-size:9px;letter-spacing:1.2px}#band-announcement{font-size:20px;line-height:1.45;margin-top:9px;min-height:29px}.band-controls{margin-top:19px;gap:20px}.band-controls .button{font-size:12px;min-height:49px;padding:12px 20px}.band-controls .text-button{font-size:11px}.sound-note{font-size:11px;line-height:1.7;max-width:295px;margin:12px auto 0}.band-finale{margin-top:21px;padding:12px 22px;gap:20px}.band-finale strong{font-size:21px}.confirmation{padding-top:49px}.rsvp-grid{display:block}.rsvp-story{position:relative;padding-bottom:32px;min-height:218px}.rsvp-story>.eyebrow{font-size:8px;letter-spacing:.8px;gap:7px}.rsvp-story h2{max-width:65%;font-size:37px}.rsvp-story .section-lead{max-width:65%;font-size:12px;line-height:1.8;margin-top:16px}.farewell-art{position:absolute;width:126px;height:182px;right:-2px;bottom:12px;margin:0}.farewell-halo{inset:13px 0 7px 0}.farewell-halo:before{inset:7px}.farewell-art>img{height:100%;left:24px}.farewell-sign{font-size:13px;right:-2px;bottom:-3px;padding:7px 9px;max-width:127px;line-height:1.3;box-shadow:0 3px 0 #f3e6d76e}.farewell-sign span{display:inline;font-size:16px;margin-left:3px}.farewell-note{font-size:27px;right:-2px;top:4px}.rsvp-form{padding:25px 23px 23px;border-radius:20px}.form-heading{font-size:22px;padding-bottom:21px;margin-bottom:21px}.rsvp-form label{font-size:13px}.guest-counts{gap:22px;margin-top:23px}.count-field label small{font-size:10px}.stepper{min-height:49px}.stepper button{width:40px;height:48px}.guest-ticket{margin-top:22px;padding:13px;min-height:55px}.guest-ticket p{font-size:11px}.rsvp-submit{font-size:12px;min-height:56px;margin-top:18px;padding-inline:12px}.form-note{font-size:10px;max-width:280px}.farewell{display:block;padding:30px 0 87px;margin-top:35px;text-align:center}.farewell>div:first-child{padding:0;min-height:0;display:flex;align-items:center}.footer-crest{position:static;width:147px;margin:0 auto 16px}.farewell .eyebrow{justify-content:center;font-size:9px}.farewell p{font-size:30px}.farewell small{font-size:10px}.farewell .footer-actions{align-items:center;gap:0;margin-top:18px}.footer-actions>.text-button{font-size:12px;min-height:44px}.share-fallback{margin:13px auto 0;text-align:left}.companion-gift{display:none}.mobile-rsvp{display:grid;grid-template-columns:minmax(0,1fr) auto auto;position:fixed;z-index:45;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));align-items:center;gap:7px;background:#fffffff5;border:1px solid #d2e5ef;padding:7px 8px 7px 11px;border-radius:32px;box-shadow:0 4px 22px #42688720;backdrop-filter:blur(12px);transition:transform .25s,opacity .25s}.mobile-rsvp>span{font-size:11px;font-weight:800;white-space:nowrap}.mobile-rsvp i{font-style:normal;color:#91aabd;padding-inline:3px}.mobile-rsvp>a{display:flex;align-items:center;justify-content:center;min-width:0;gap:5px;font-size:12px;font-weight:800;border-radius:25px;padding:10px 12px;min-height:44px;white-space:nowrap}.mobile-rsvp>.mobile-gift{background:#fff5ea;color:#805139;border:1px solid #e8d1bc}.mobile-rsvp>.rsvp-shortcut{background:var(--orange);color:#40352b;border:1px solid transparent}.mobile-rsvp .icon{width:16px;height:16px;flex-shrink:0}.mobile-rsvp.is-hidden{transform:translateY(130%);opacity:0;pointer-events:none}.toast{bottom:90px;font-size:12px}.intro{padding:24px 23px}.intro-cover>.eyebrow{font-size:9px;letter-spacing:1.3px;margin-bottom:16px}.intro-heading h2{font-size:32px;letter-spacing:-.7px;line-height:1.22}.intro-art{height:235px;width:335px;margin-top:20px}.intro-teo{left:5%;height:92%}.intro-band{width:79%;right:-2%}.intro-halo{inset:24px 0 0 3px}.intro-cover>p{font-size:14px;margin-top:19px}.intro-cover>.button{font-size:13px;margin-top:19px;min-height:52px}.intro-cover>.text-button{font-size:12px;margin-top:7px}.intro-cover>.intro-date{font-size:10px;margin-top:5px}.curtain{width:7%;opacity:.9}.footer-trim{height:25px}}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.hero-copy>.eyebrow{font-size:8px;letter-spacing:1px}.hero-copy h1{width:184px}.hero-subtitle{font-size:20px}.hero-art{height:310px}.hero-art>.hero-teo{height:266px;left:calc(50% - 54px);bottom:18px}.hero-art>.hero-dog{height:133px;left:-13px}.hero-art>.hero-croc{height:136px;right:-12px}.hero-art>.hero-duck{height:97px;right:23%}.hero-art>.art-one{height:102px;right:22px}.hello-bubble{font-size:11px;padding:6px 9px}.hero-actions{gap:12px}.hero-actions>.text-link{font-size:10px}.hero-actions>.button{padding-inline:15px}.hero-description{font-size:12px}.little-memory{gap:12px}.memory-crest{width:88px}.little-memory p{font-size:11px}.little-memory em{font-size:12px}.party-intro h2,.rsvp-story h2{font-size:32px}.party-intro{min-height:212px}.party-intro .section-lead{font-size:12px}.date-scene{right:-9px;width:122px;bottom:23px}.date-croc{height:131px;left:-16px}.date-sign{right:0;width:65px;top:14px}.date-sign strong{font-size:37px}.event-row h3{font-size:21px}.ticket-body{padding-inline:17px}.ticket-actions{padding-inline:17px;gap:9px}.ticket-actions>.button{padding-inline:14px;font-size:11px}.ticket-actions>.text-link{font-size:10px}.map-duck{right:8px;width:46px}.map-duck img{width:46px}.section-heading h2{font-size:31px}.section-heading .section-lead{font-size:12px}.musicians{gap:6px}.musician{padding-inline:4px}.musician-art{height:112px}.musician-name{font-size:14px}.musician-instrument{font-size:9px}.instrument-toggle{font-size:9px;padding-inline:5px;gap:3px}.rsvp-form{padding:23px 17px}.guest-counts{gap:14px}.stepper button{width:34px}.rsvp-submit{font-size:11px}.farewell-art{width:112px;height:167px}.farewell-art>img{left:20px}.farewell-sign{max-width:117px;font-size:12px}.rsvp-story .section-lead{font-size:11px}.companion-cast{width:84px}.mini-teo{left:28px}.mini-duck{left:46px}.mini-croc{right:-5px}.companion-copy>strong{font-size:13px}.companion-copy>span{font-size:6.4px}.sound-button{font-size:10px}.sound-button .icon{width:15px}.intro-heading h2{font-size:29px}.intro-art{height:213px}.intro-cover>.eyebrow{font-size:8px}.intro-cover>p{font-size:13px}.intro-cover>.button{min-width:235px}}
@media(max-height:690px){.intro-heading h2{font-size:32px}.intro-art{height:205px;width:350px;margin-top:12px}.intro-cover>.eyebrow{margin-bottom:10px}.intro-cover>p{margin-top:12px}.intro-cover>.button{margin-top:13px}.intro-cover>.text-button{margin-top:3px}.intro-cover>.intro-date{margin-top:3px}}
@media(max-height:490px){.intro[open]{display:block}.intro-content{padding-block:9px}.intro-heading h2{font-size:27px}.intro-art{height:152px;width:270px;margin-top:8px}.intro-cover>p{font-size:12px;margin-top:8px}.intro-cover>.button{min-height:47px;margin-top:10px}.companion-reveal{max-height:110px;overflow:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.confetti-layer{display:none}.intro.is-opening .intro-content{opacity:1;transform:none}}

/* Gift message and size suggestions. */
.party-details{min-width:0}.party-grid{row-gap:25px}.party-grid>.gifts{grid-column:1/-1;margin-top:0}.gift-content{padding:8px 28px 26px}.gift-letter{max-width:790px;margin:0 auto;padding:18px 0 26px}.gift-letter .gift-letter-kicker{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:800;color:#95613f;margin:0 0 13px}.gift-letter h3{font-size:29px}.gift-letter>p{font-size:14px;line-height:1.75}.gift-size-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;list-style:none;padding:0;margin:24px 0}.gift-size-list li{display:flex;gap:10px;align-items:center;min-width:0}.gift-item-icon{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid #efdcca;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:20px;font-weight:400;line-height:1;letter-spacing:normal;white-space:nowrap}.gift-size-list strong{display:block;font-size:13px;color:var(--ink)}.gift-size-list small{display:block;font-size:11px;color:var(--muted);line-height:1.6}.gift-letter .gift-letter-love{color:var(--ink);font-weight:700;margin-top:20px}.gift-letter-love span{color:#a66b43;font-size:21px;white-space:nowrap}.gift-letter .gift-letter-signature{color:var(--ink);margin-top:13px;font-size:13px}.gift-letter-signature em{font-family:var(--heading);font-size:23px;color:#95613f;margin-left:4px}.gift-help{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e9d6c2;margin-top:22px;padding-top:18px}.gift-content .gift-help p{font-size:12px;margin:0}.gift-help .text-link{font-size:12px;color:#895334;white-space:nowrap}
@media(max-width:900px){.gift-size-list{grid-template-columns:1fr;row-gap:16px}.gift-letter h3{font-size:26px}}
@media(max-width:640px){.party-grid>.gifts{margin-top:22px}.gift-content{padding:6px 17px 20px}.gift-letter{padding:12px 0 23px}.gift-letter h3{font-size:25px;max-width:280px}.gift-letter>p{font-size:13px}.gift-size-list{grid-template-columns:1fr;gap:16px;margin:21px 0}.gift-size-list strong{font-size:13px}.gift-size-list small{font-size:12px}.gift-help{display:block;margin-top:18px;padding-top:15px}.gift-help .text-link{margin-top:7px}.gift-letter .gift-letter-love{font-size:13px}}

@media(max-width:360px){.mobile-rsvp{left:10px;right:10px;gap:6px;padding-left:10px}.mobile-rsvp>span{font-size:10px}.mobile-rsvp>a{font-size:11px;padding-inline:10px}.mobile-rsvp i{padding-inline:1px}.mobile-rsvp .icon{width:15px;height:15px}}

/* Original store logos displayed in the invitation ink palette. */
.gift-store-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:224px;list-style:none;padding:0;margin:16px 0}.gift-store-list li{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.gift-store-logo{display:flex;align-items:center;justify-content:center;width:100%;height:68px;padding:6px;overflow:hidden;background:#fffaf3;border:1px solid #e8ded0;border-radius:10px;isolation:isolate}.gift-store-logo img{display:block;width:auto;height:auto;max-width:100%;max-height:54px;object-fit:contain;flex-shrink:0;filter:grayscale(1);filter:url(#store-logo-ink);mix-blend-mode:multiply}.gift-store-tiptop img{width:132%;max-width:100px;max-height:none;transform:translateY(-1px)}.gift-store-name{font-size:11px;font-weight:700;line-height:1.4;color:var(--ink);white-space:nowrap}.gift-letter .gift-store-note{font-size:13px;line-height:1.7;color:var(--ink);margin-top:12px}
:root{--rsvp-success:#547e46;--rsvp-error:#943c32}
.rsvp-fields{border:0;padding:0;margin:0;min-width:0}
.rsvp-fields>input{width:100%;min-width:0;background:#fffdf9;border:1px solid #d9e0df;border-radius:11px;padding:14px 15px;color:var(--ink);font-size:16px;min-height:54px}
.rsvp-fields>input::placeholder{font-size:13px;color:#75818a}
.rsvp-fields>input+label{margin-top:18px}
.rsvp-fields>.guest-phone-note{font-size:10px;line-height:1.6;color:var(--muted);margin-top:8px}
.rsvp-fields input[aria-invalid=true]{border-color:var(--rsvp-error);background:#fffaf7}
.rsvp-form .rsvp-feedback{padding:13px 15px;border:1px solid #ebd5c9;border-radius:12px;background:#fff9f5;color:var(--rsvp-error)}
.rsvp-form .rsvp-feedback>p{font-size:12px;line-height:1.7;font-weight:600}
.rsvp-form .rsvp-feedback[data-state=sending]{border-color:#d5e6ee;background:#f3faff;color:var(--blue-deep)}
.rsvp-spinner{display:none;width:18px;height:18px;flex-shrink:0;border:2px solid #6e4d2935;border-top-color:#6e4d29;border-radius:50%;animation:rsvp-spin .8s linear infinite}
.rsvp-form[data-state=sending] .rsvp-spinner{display:block}
.rsvp-form[data-state=sending] .rsvp-submit>.icon{display:none}
.rsvp-form[data-state=sending] .rsvp-submit{opacity:1;cursor:wait}
.rsvp-success{padding:16px 4px 5px;text-align:center;outline:none;scroll-margin-top:110px}
.rsvp-success-mark{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 21px;border:1px solid #cfdfc8;border-radius:50%;background:#edf5e8;color:var(--rsvp-success);box-shadow:0 0 0 7px #f6faf3}
.rsvp-success-mark>.icon{width:27px;height:27px;stroke-width:2}
.rsvp-success h3{max-width:330px;margin:0 auto;font-size:29px;line-height:1.3;color:var(--blue-deep)}
.rsvp-success>p{max-width:310px;margin:16px auto 0;font-size:13px;line-height:1.8;color:var(--muted)}
.rsvp-success-heart{display:block;margin:16px auto 9px;color:#d89062;font:35px/1.3 var(--heading)}
.rsvp-success>.text-button{min-height:44px;font-size:12px;color:var(--blue-deep)}
.rsvp-success>.text-button>.icon{width:16px;height:16px}
@keyframes rsvp-spin{to{transform:rotate(360deg)}}
@media(max-width:640px){.rsvp-success{padding-block:13px 3px}.rsvp-success h3{font-size:27px}.rsvp-success>p{font-size:12px}}
