@font-face{font-family:CloudTitle;src:url('../fonts/instrument-serif-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:CloudText;src:url('../fonts/ParisText.woff2') format('woff2');font-weight:400;font-display:swap}:root{--display:CloudTitle,Georgia,serif;--body:CloudText,Arial,sans-serif}.cosmos-layer::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 130px #4f735a25;background:radial-gradient(ellipse at 40% 10%,#fff4dc30,transparent 55%)}.balloon-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%;transition:opacity 1.8s}.opening .balloon-cover,.entered .balloon-cover{opacity:0}.immersive-light .balloon-cover{opacity:1}.hero{color:#304f48;min-height:940px;height:100svh}.hero::before{z-index:1;background:linear-gradient(90deg,#fff2dce8 12%,#fff2dcad 40%,transparent 75%)}.hero-copy{padding-top:90px;max-width:800px}.hero h1{font-family:CloudTitle;font-size:8rem;letter-spacing:-.03em}.hero-title{font:400 2.6rem/1.15 CloudTitle;max-width:430px}.guest-label{color:#426357;font-size:11px;letter-spacing:.18em;text-transform:uppercase}.hero-date{color:#36584c;font-size:13px}.hero .open-button{background:#3b6458;color:#fff1cf;border-radius:35px}.hero .open-note{color:#476858;font-size:11px}.topline{color:#315449;font-size:12px}.topline span{color:#537164}.scene-caption{z-index:2;color:#315449;font-family:CloudTitle}.flight-copy{color:#203f37;text-shadow:0 1px 8px #fff8;background:#fff0d4cc;padding:25px 30px;border-radius:3px;max-width:650px}.flight-copy h2{font-family:CloudTitle}.flight-copy p{font-size:13px}.flight-stage{background:linear-gradient(transparent 50%,#fff0d466)}.flight-progress{background:#385e4b44}.flight-progress i{background:#4b705d}.countdown-section{background:#f0e5cb;color:#3c5b4d;min-height:calc(100svh + 80px);display:grid;grid-template-columns:1fr 1.1fr;gap:6%;padding:95px 8%;text-align:left}.basket-art{width:100%;max-width:450px;justify-self:center;filter:drop-shadow(0 20px 18px #6c57311c)}.countdown-inner{max-width:600px}.countdown-inner h2{font-family:CloudTitle;font-size:3.8rem}.countdown{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 20px;margin:35px 0}.countdown>div{border:1px solid #bda77b;background:#fff5df;box-shadow:3px 5px 0 #d6c5a4;border-radius:50% 50% 5px 5px;padding:35px 20px 20px;position:relative;text-align:center}.countdown>div::before{content:'';position:absolute;top:13px;left:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:#c5b185}.countdown strong{font:400 3.7rem CloudTitle;color:#3b6756}.countdown span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-top:5px}.event-day{color:#526d59;font-size:13px}.countdown-section #agenda{font-size:12px;border:1px solid #a99d75;padding:10px 25px;border-radius:25px}.portrait-frame{border:0;box-shadow:0 16px 35px #47644220}.frame-shutter{display:none}.monogram{font-family:CloudTitle}.photo-caption,.signature{font-family:CloudTitle}.flight-map{margin:0;background:#fff5de;padding:15px;transform:rotate(-2deg);box-shadow:8px 12px 0 #cdbd96}.flight-map img{width:100%;display:block}.flight-map figcaption{text-align:center;padding:22px 8px 12px}.flight-map figcaption span{display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase}.flight-map figcaption strong{font:400 1.8rem CloudTitle;display:block;margin-top:8px}.programme-section{display:block;padding:95px 7%;background:#e5e6cf}.postcard-title{text-align:center}.postcard-title span{font-size:10px;letter-spacing:.2em}.postcard-title h2{font:400 4.2rem/1.05 CloudTitle;margin-top:25px!important}.programme-section ol{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;border:0;margin:55px auto 0;max-width:1150px}.programme-section li{padding:35px 25px;background:#fcf0d5;border:1px solid #b7b28d;box-shadow:4px 6px 0 #b2bea14d;transform:rotate(-3deg)}.programme-section li:nth-child(2){transform:rotate(2deg)}.programme-section li:nth-child(3){transform:rotate(-1deg)}.programme-section li::before{content:'✉';position:static;display:block;font-size:24px;background:none;color:#8b9d7b;margin-bottom:25px}.programme-section time{font-size:11px;letter-spacing:.15em}.programme-section h3{font:400 2rem CloudTitle}.programme-section li p{font-size:13px}.light-mode,footer .light-mode{position:static!important;display:block;margin:30px auto 0;background:none;border:0;border-bottom:1px solid #b4c4a680;color:#dacfae;padding:8px 0;min-height:44px;font-size:11px}.arrival-section>div{background:#365c4bc9;padding:30px}.arrival-section h2{font-family:CloudTitle}.rsvp-intro h2{font-family:CloudTitle}@media(max-width:700px){.hero{height:940px;min-height:940px}.hero-copy{padding:70px 24px 0;width:100%;max-width:none;text-align:left}.hero h1{font-size:5.9rem;line-height:1;margin:18px 0}.hero-title{font-size:2rem;max-width:295px}.hero-date{font-size:12px;margin-top:23px}.hero .open-button{margin-top:25px;font-size:13px}.hero .open-note{font-size:10px}.hero::before{background:linear-gradient(#fff2dcbb,#fff2dc60 45%,transparent 70%)}.balloon-cover{object-position:center bottom}.topline{font-size:10px;padding:24px}.flight-stage{padding:0 24px 65px;display:flex;align-items:flex-end}.flight-copy{padding:22px}.flight-copy h2{font-size:2.4rem}.flight-copy p{font-size:12px}.countdown-section{grid-template-columns:1fr;padding:60px 26px;gap:35px}.basket-art{max-width:230px}.countdown-inner h2{font-size:3rem;text-align:center}.countdown-inner{text-align:center}.countdown{gap:18px}.countdown strong{font-size:3.3rem}.countdown>div{padding:32px 15px 20px}.flight-map{order:-1}.programme-section ol{grid-template-columns:1fr;gap:30px;max-width:360px}.programme-section li{padding:28px}.postcard-title h2{font-size:3.1rem}.arrival-section>div{padding:25px}.arrival-section h2{font-size:2.6rem}.scene-caption{font-size:1.3rem}}@media(prefers-reduced-motion:reduce){.balloon-cover{transition:none;opacity:1}}

/* Instrução legível sobre a arte da capa. */
.hero .open-note{display:table;max-width:min(100%,24rem);padding:.45rem .8rem;border-radius:999px;background:#f9f1dcf0;color:#315768;border:1px solid #fff8e4b8;box-shadow:0 2px 12px #3d61702e;font-size:13px;line-height:1.45}
.entered .hero .open-note{display:none}
@media(prefers-reduced-motion:reduce){.hero .open-note{display:none}}

/* Cartões de embarque e bilhetes da chegada. */
#lista .story-kicker,#recados .story-kicker{font:700 .68rem/1.5 Arial,sans-serif;letter-spacing:.19em;text-transform:uppercase;color:#315b70}
#lista #guest-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;padding:0;list-style:none}
#lista #guest-list li{background:#fff9ed;color:#244758;border:2px dashed #88b6c0;border-radius:18px;padding:22px 18px;box-shadow:0 8px 25px #3d687526}
#lista #guest-list li::before{content:'EMBARQUE  ✦';display:block;font-size:.62rem;font-weight:700;letter-spacing:.18em;margin-bottom:11px;color:#326c83}
#recados #messages{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:16px}
#recados #messages blockquote{background:#fff9ed;color:#244758;border-radius:20px 20px 20px 4px;border:1px solid #9cbfc5;padding:22px;box-shadow:0 10px 26px #3d687526}

#lista .demo-disclaimer,#recados .demo-disclaimer{font-size:.78rem;letter-spacing:.02em;opacity:.78;margin:8px 0 20px}

/* Travessia mais breve, com a mesma progressão da cena 3D. */
.flight-section{height:290svh}
@media(max-width:700px){.flight-section{height:250svh}}
@media(prefers-reduced-motion:reduce){.flight-section,.immersive-light .flight-section{height:100svh}}

/* Cartão de embarque entre nuvens: uma cena completa mesmo sem WebGL. */
#celebracao{position:relative;isolation:isolate;display:flex;align-items:center;min-height:100svh;overflow:hidden;padding:70px 8vw;background:radial-gradient(ellipse at 72% 77%,#ffedc8,transparent 45%),linear-gradient(180deg,#91c3cc 0%,#d4dfd2 57%,#efd8ab 100%);color:#315d5b}
#celebracao .celebration-scene{position:absolute;inset:0;z-index:0;max-width:none;pointer-events:none}
#celebracao .celebration-cloud{position:absolute;width:220px;height:58px;border-radius:50%;background:#fff9e4bd;filter:blur(3px);box-shadow:65px -17px 0 15px #fff9e4b0,-45px 10px 0 5px #fff9e499}
#celebracao .cloud-one{top:24%;right:7%;transform:scale(.85)}
#celebracao .cloud-two{bottom:17%;right:36%;transform:scale(.6);opacity:.8}
#celebracao .celebration-balloon{position:absolute;right:10%;top:8%;width:min(30vw,290px);height:min(70vh,530px);filter:drop-shadow(0 20px 25px #536f6966);animation:balloon-gentle 7s ease-in-out infinite alternate}
#celebracao .balloon-envelope{position:absolute;top:0;left:5%;width:90%;height:58%;border-radius:49% 49% 43% 43% / 53% 53% 47% 47%;background:repeating-linear-gradient(90deg,#efddaf 0 17%,#c78364 17% 34%,#e6bd88 34% 51%,#a5ad87 51% 68%);box-shadow:inset 28px 4px 35px #fff9dc88,inset -22px -20px 35px #62492d55}
#celebracao .celebration-balloon img{position:absolute;left:16%;bottom:0;width:68%;height:auto;object-fit:contain}
#celebracao .celebration-copy{position:relative;z-index:2;max-width:470px;padding:clamp(25px,4vw,48px);border:1px solid #fff8e5;background:#fbf1d9ed;box-shadow:0 24px 70px #506a6055;text-align:left}
#celebracao .celebration-eyebrow{display:block;margin-bottom:25px;color:#6b877d;font:600 10px var(--body);letter-spacing:.24em;text-transform:uppercase}
#celebracao #celebration-guest{font:clamp(1.4rem,3vw,2.4rem)/1.15 var(--display);color:#315b5a;overflow-wrap:anywhere}
#celebracao h2{font-size:clamp(2.2rem,4vw,3.6rem);line-height:1.05;color:#315b5a}
#celebracao .primary{background:#3e6d6b;color:#fff5db}
@keyframes balloon-gentle{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-14px) rotate(1deg)}}
@media(max-width:700px){#celebracao{margin:0 -24px;align-items:flex-end;min-height:100svh;padding:36px 24px 50px}#celebracao .celebration-balloon{top:4%;right:12%;width:195px;height:340px}#celebracao .celebration-copy{width:100%;padding:27px 25px}#celebracao .celebration-eyebrow{margin-bottom:15px}#celebracao h2{margin:12px 0 20px}#celebracao .cloud-one{top:21%;right:18%}#celebracao .cloud-two{bottom:42%;right:42%}}
@media(prefers-reduced-motion:reduce){#celebracao .celebration-balloon{animation:none}}
