@font-face{font-family:LanternTitle;src:url('../fonts/ParisDisplay.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:LanternText;src:url('../fonts/static-mona-sans-latin-wdth-normal.woff2') format('woff2');font-weight:400;font-display:swap}:root{--display:LanternTitle,Georgia,serif;--body:LanternText,Arial,sans-serif}.cosmos-layer::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse,transparent 30%,#080e2390);box-shadow:inset 0 0 90px #060b1e55}.lantern-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%;transition:opacity 1.8s}.opening .lantern-cover,.entered .lantern-cover{opacity:0}.immersive-light .lantern-cover{opacity:1}.hero{color:#fff0d5;min-height:940px;height:100svh}.hero::before{z-index:1;background:linear-gradient(#0b152ccf 0%,#0b152ca8 45%,transparent 85%)}.hero-copy{padding-top:90px;max-width:1000px}.hero h1{font-family:LanternTitle;font-weight:500;font-size:clamp(4rem,7vw,7rem);letter-spacing:-.04em;text-shadow:0 2px 22px #030717}.hero-title{font:italic 500 2rem/1.4 LanternTitle;max-width:570px;text-shadow:0 2px 18px #030717}.guest-label{font-size:10px;letter-spacing:.22em;color:#ead5b1}.hero-date{font-size:12px;color:#f4e2c4}.hero .open-note{font-size:10px;color:#e4d0ab}.hero .open-button{font-size:12px;padding:13px 27px;border-radius:30px}.topline{font-size:11px}.scene-caption{z-index:2;font-family:LanternTitle}.flight-copy{background:#111b2be6;border:1px solid #a08a6355;padding:28px;max-width:620px;color:#f9e7c7;text-shadow:none}.flight-copy h2{font-family:LanternTitle;font-size:3rem}.flight-copy p{font-size:12px}.flight-stage{background:linear-gradient(transparent 35%,#0c152cc9)}.countdown-section{background:#172532;min-height:calc(100svh + 80px);padding:100px 5% 70px}.anniversary-label{display:block;font-size:10px;letter-spacing:.22em;color:#cab38c;margin-bottom:35px}.countdown-inner{max-width:1100px;width:100%}.countdown-inner h2{font-family:LanternTitle;font-size:clamp(2.8rem,4.5vw,4.2rem);max-width:800px;margin-inline:auto}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:30px 0}.countdown>div{background-image:var(--lantern);background-size:contain;background-position:center;background-repeat:no-repeat;aspect-ratio:3/4;padding:32% 12% 25%;display:flex;flex-direction:column;justify-content:center}.countdown strong{font:500 3.8rem/1 LanternTitle;color:#4b3c31;text-shadow:0 1px 5px #fff9}.countdown span{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:#51402e;margin-top:12px}.event-day{font-size:12px}.countdown-section #agenda{border:1px solid #a5906c;border-radius:30px;padding:10px 25px;font-size:12px}.garden-table{margin:0;position:relative;border:1px solid #9c8e7255;padding:15px}.garden-table img{width:100%;display:block}.garden-table figcaption{font:italic 500 1.3rem LanternTitle;text-align:center;padding:20px 10px 8px;color:#d7c19b}.portrait-frame{border:1px solid #bcb6a766;border-radius:50% 50% 0 0;padding:20px;transform:none}.portrait-inner{border-radius:50% 50% 0 0}.frame-shutter{display:none}.monogram,.signature,.photo-caption{font-family:LanternTitle}.programme-section{display:block;background:#272b39;padding:95px 8%;text-align:center}.vow-program>span{font-size:9px;letter-spacing:.22em;color:#bdad94}.vow-program h2{font:italic 500 3.8rem/1.2 LanternTitle;margin-top:25px!important}.programme-section ol{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #96897288;padding:45px 35px;max-width:1100px;margin:55px auto 0;gap:35px;counter-reset:chapter;position:relative}.programme-section ol::before{content:'✧';position:absolute;top:-23px;left:calc(50% - 25px);width:50px;background:#272b39;font-size:28px;color:#dac298}.programme-section li{padding:0;transform:none;counter-increment:chapter}.programme-section li::before{content:counter(chapter,upper-roman);position:static;display:block;background:none;font:500 2rem LanternTitle;color:#ab987b;margin-bottom:25px}.programme-section time{font-size:11px;letter-spacing:.16em}.programme-section h3{font:500 1.8rem LanternTitle;margin:18px 0}.programme-section li p{font-size:13px;margin:auto}.dress-section h2{font-family:LanternTitle;font-style:italic}.light-mode,footer .light-mode{position:static!important;display:block;margin:30px auto 0;background:none;border:0;border-bottom:1px solid #d9c19855;color:#c4b79f;font-size:11px;padding:8px 0;min-height:44px}.arrival-section>div{background:#132334d9;padding:30px;border:1px solid #9f8a6555}.arrival-section h2{font-family:LanternTitle}@media(max-width:700px){.hero{height:940px;min-height:940px}.hero-copy{padding:80px 25px 0}.hero h1{font-size:3.65rem;line-height:1.12}.hero-title{font-size:1.6rem;line-height:1.4;max-width:290px}.hero::before{background:linear-gradient(#0c162bcf,#0c162ba8 48%,transparent 85%)}.hero-date{font-size:12px}.lantern-cover{object-position:center bottom}.topline{font-size:10px;padding:24px 20px}.topline span{display:none}.flight-stage{display:flex;align-items:flex-end;padding:0 24px 65px}.flight-copy{padding:24px}.flight-copy h2{font-size:2.2rem}.countdown-section{padding:70px 24px;display:block}.anniversary-label{font-size:8px;letter-spacing:.15em}.countdown{grid-template-columns:1fr 1fr;gap:15px 0;max-width:420px;margin:30px auto}.countdown strong{font-size:2.8rem}.countdown span{font-size:8px;letter-spacing:.07em}.countdown-inner h2{font-size:2.7rem}.garden-table{order:-1;padding:10px}.vow-program h2{font-size:2.8rem}.programme-section{padding:75px 26px}.programme-section ol{grid-template-columns:1fr;padding:35px 24px;gap:40px}.programme-section li::before{margin-bottom:12px}.programme-section li p{max-width:27ch}.arrival-section>div{padding:24px}.arrival-section h2{font-size:2.5rem}}@media(prefers-reduced-motion:reduce){.lantern-cover{transition:none;opacity:1}}

.demo-note{max-width:38rem;margin:1rem auto 1.5rem;color:inherit;opacity:.76;font-size:.8rem;line-height:1.5;text-align:center}

/* Presenças penduradas no jardim; cada recado é uma memória guardada em papel. */
#guest-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:22px 16px;max-width:900px;margin-top:38px}
#guest-list li{position:relative;min-width:0;padding:25px 17px 18px;border:1px solid #b9a276;border-radius:8px 8px 18px 18px;background:#ead8b2;color:#34453d;box-shadow:0 10px 20px #091d2380}
#guest-list li::before{content:'';position:absolute;top:-13px;left:50%;width:1px;height:20px;background:#d9be87;box-shadow:0 18px 0 2px #a0764d}
#guest-list small{display:block;margin:5px 0 0;color:#627063}
#messages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;columns:auto;margin-top:38px}
#messages>p{grid-column:1/-1}
#messages blockquote{position:relative;min-width:0;margin:0;padding:30px 25px 25px;border:1px solid #d1b77f;border-radius:3px;background:#f1e3c5;color:#39453e;box-shadow:0 10px 24px #0b162666}
#messages blockquote::before{content:'';position:absolute;top:0;right:0;border-left:20px solid #d1b77f;border-bottom:20px solid transparent}
#messages blockquote cite{color:#6e674f}
@media(max-width:800px){#messages{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){#messages{grid-template-columns:1fr}}

/* Uma lembrança iluminada ocupa o arco após a confirmação. */
#celebracao{position:relative;isolation:isolate;display:flex;justify-content:flex-end;align-items:center;min-height:100svh;overflow:hidden;padding:70px 8vw;background:linear-gradient(90deg,#0b1721a3,#13233375 55%,#0b1721bd),url('../img/jardim-polido.webp') center 62%/cover;color:#f9e8c5}
#celebracao .celebration-scene{position:absolute;inset:0;z-index:0;max-width:none;pointer-events:none}
#celebracao .celebration-light{position:absolute;width:28vw;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#f7d18e80 0%,#e6b47633 24%,transparent 68%);filter:blur(15px)}
#celebracao .light-one{top:7%;left:9%}
#celebracao .light-two{bottom:1%;left:31%;transform:scale(.65)}
#celebracao .celebration-lantern{position:absolute;left:11%;top:12%;width:min(32vw,360px);height:auto;filter:drop-shadow(0 0 45px #efbd715c) drop-shadow(0 20px 22px #07151dbb);animation:lantern-gentle 6s ease-in-out infinite alternate}
#celebracao .celebration-copy{position:relative;z-index:2;width:min(100%,510px);padding:clamp(28px,4vw,48px);border:1px solid #d6b879a3;background:#142433ee;box-shadow:inset 0 0 0 5px #d4b67614,0 25px 70px #071019c4;text-align:left}
#celebracao .celebration-copy::before,#celebracao .celebration-copy::after{content:'✦';position:absolute;color:#cdae73;font-size:14px}
#celebracao .celebration-copy::before{top:13px;left:16px}#celebracao .celebration-copy::after{right:16px;bottom:13px}
#celebracao .celebration-eyebrow{display:block;margin-bottom:27px;color:#d7b97f;font:600 10px var(--body);letter-spacing:.24em;text-transform:uppercase}
#celebracao #celebration-guest{font:clamp(1.5rem,3vw,2.5rem)/1.15 var(--display);color:#ffebbf;overflow-wrap:anywhere}
#celebracao h2{font-size:clamp(2.2rem,4vw,3.6rem);line-height:1.05;color:#f5e4bf}
#celebracao .primary{background:#d5b97e;color:#1c2a31}
@keyframes lantern-gentle{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-10px) rotate(1deg)}}
@media(max-width:700px){#celebracao{margin:0 -24px;align-items:flex-end;min-height:100svh;padding:36px 24px 50px;background-position:center 57%}#celebracao .celebration-lantern{top:4%;left:50%;width:210px;transform:translateX(-50%);animation:none}#celebracao .celebration-copy{width:100%;padding:27px 25px}#celebracao .celebration-eyebrow{margin-bottom:16px}#celebracao h2{margin:12px 0 20px}#celebracao .light-one{left:20%;top:5%;width:60vw}#celebracao .light-two{display:none}}
@media(prefers-reduced-motion:reduce){#celebracao .celebration-lantern{animation:none}}
