@font-face{font-family:Story;src:url('../fonts/instrument-serif-latin-400-normal.woff2') format('woff2');font-display:swap}@font-face{font-family:Mona;src:url('../fonts/mona-sans-latin-wdth-normal.woff2') format('woff2');font-weight:200 900;font-display:swap}:root{--display:Story,Georgia,serif;--body:Mona,Arial,sans-serif;--ink:#314d43;--gold:#d6b06d}.cosmos-layer{background:radial-gradient(ellipse at 15% 16%,#fff4cb 0,#f3dca155 12%,transparent 35%),linear-gradient(#5a9d9d,#bfd2b2 70%,#8da888)}.cosmos-layer::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse,transparent 48%,#2b4e3a33);pointer-events:none}.hero{height:110svh;min-height:1000px;color:#fff0cc}.cover-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;transition:opacity 1.8s}.opening .cover-art,.entered .cover-art{opacity:0}.hero::before{background:linear-gradient(90deg,#173e39d9,transparent 90%);z-index:1}.hero-copy{position:relative;z-index:2;padding:110px 0 100px 7vw;max-width:700px;width:60%}.hero h1{font:400 clamp(7rem,14vw,13rem)/.9 var(--display);letter-spacing:-.05em;margin:30px 0}.hero-title{font-size:2.7rem;line-height:1.05;max-width:430px}.guest-label{font-size:13px;color:#f4dfb2;letter-spacing:.12em;font-variant:small-caps}.hero-date{color:#f5e3c0;font-size:13px}.hero .open-button{background:linear-gradient(#e5c78b,#cfa769);border:1px solid #fbe5b0;color:#2f493d;box-shadow:0 10px 35px #132f2a44}.hero .open-note{color:#efdfbe;font-size:11px}.topline{font-size:12px;z-index:3}.flight-stage{background:linear-gradient(transparent 50%,#193e35e8)}.flight-copy h2{font-family:Story;font-size:4.5rem;line-height:1.02}.flight-copy p{font-size:13px;color:#efe4c8}.arrival-section h2{font-size:4rem;text-shadow:0 2px 12px #254c3b}.arrival-section{background:linear-gradient(transparent 35%,#204436ee)}footer .light-mode{position:static;background:none;border:0;border-bottom:1px solid #b8bd9a;border-radius:0;color:#ddd4b6;font-size:11px;padding:8px;margin:10px auto 20px;display:inline-block;min-height:44px}.countdown-section{background:radial-gradient(ellipse at top,#efe0b4,#cfccaa);padding:100px 6vw;min-height:720px}.clock-orbit{display:none}.countdown-inner{width:100%;max-width:1100px}.countdown-inner h2{font-size:4rem;max-width:700px;margin:auto}.event-day{color:#5c6d55;font-size:13px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:850px;margin:45px auto}.countdown>div{background:linear-gradient(120deg,#435f4a,#253f37);clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%);padding:25px 10px 45px;border-top:4px solid #b99955;filter:drop-shadow(0 10px 10px #1e3b3922)}.countdown strong{font:400 4.5rem/1.15 Story;color:#f1dcaa}.countdown span{color:#d9d4b2;font-size:11px;letter-spacing:.08em}.countdown-section #agenda{padding:12px 28px;border:1px solid #526b56;background:#f3e8c8;box-shadow:4px 4px 0 #b8b38d;font-size:12px;color:#345442}.portrait-section{background:#d9d7b8;grid-template-columns:1fr 1.1fr}.portrait-frame{padding:0;border:0;transform:none;border-radius:0}.portrait-inner{background:none;aspect-ratio:4/5;border-radius:0;overflow:visible}.shield-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.portrait-star,.frame-shutter{display:none}.monogram{position:relative;color:#f2e4b8;font:400 7rem Story;top:-5%;text-shadow:0 3px 10px #46523b44}.photo-caption{text-align:center;display:block}.portrait-copy h2{font-size:4rem}.portrait-copy p{font-size:15px;line-height:1.9}.invitation{background:linear-gradient(110deg,#f4ead0,#e5d5ae)}.prose{max-width:750px}.prose p:not(.signature){font-size:17px;line-height:1.9}.place-section{background:#f3ead3;display:grid;grid-template-columns:1.1fr 1fr;padding:100px 6vw;gap:6%;align-items:center}.treasure-map{order:-1;position:relative;transform:rotate(-2deg);filter:drop-shadow(0 12px 16px #6e593233)}.treasure-map img{width:100%;height:auto;display:block;mix-blend-mode:multiply}.map-inscription{position:absolute;left:27%;right:12%;top:57%;text-align:center;color:#4c5737}.map-inscription span,.map-inscription small{display:block;font:400 12px Mona}.map-inscription strong{display:block;font:400 2.3rem/1.05 Story;margin:10px 0}.place-copy h2{font-size:4rem}.place-copy p,.place-copy address{font-size:14px}.programme-section{background:#27473d;color:#f1dfb7;padding:110px 6vw}.programme-section h2{text-align:center;font-size:4rem}.programme-section ol{border:0;display:grid;grid-template-columns:repeat(3,1fr);gap:36px;max-width:1200px;margin:60px auto 0;padding:0}.programme-section li{display:flex;flex-direction:column;align-items:center;text-align:center;padding:45px 30px 65px;gap:20px;background:linear-gradient(110deg,#e0c58b,#bfa367);color:#2b4638;clip-path:polygon(0 0,100% 0,100% 100%,50% 92%,0 100%);border-top:6px solid #f0ddb3;box-shadow:inset 10px 0 #fff2c511,inset -10px 0 #6f613311}.programme-section li::before{display:none}.programme-section time{font:600 13px Mona;color:#3f583f;letter-spacing:.12em;border-bottom:1px solid #6e784d77;padding:0 20px 15px}.programme-section h3{font-size:2.3rem;margin-bottom:15px}.programme-section p{font-size:14px;line-height:1.8}.dress-section{background:#c3cba3}.dress-section h2,.rsvp-intro h2{font-size:4rem}.rsvp-panel{border:5px double #b79f6c;background:#f6edcf;box-shadow:0 15px 50px #23423722}.bridge-open .rsvp-section{background:transparent}.bridge-open #ponte-celebracao{background:linear-gradient(transparent 45%,#234635e8)}
@media(max-width:700px){.hero{height:1030px;min-height:1030px}.hero-copy{width:100%;padding:80px 25px 40px;text-align:center}.hero h1{font-size:7.7rem;margin:25px 0 20px}.hero-title{font-size:2.3rem;max-width:310px;margin:auto}.guest-label{margin:auto;font-size:12px}.hero::before{background:linear-gradient(#183f3966,#173e3966 60%,transparent);z-index:1}.hero-date{margin-top:25px}.hero .open-note{margin:12px auto}.topline{font-size:11px}.cover-art{object-position:center 60%}.flight-copy h2{font-size:3rem}.countdown-section{padding:75px 22px;min-height:760px}.countdown-inner h2{font-size:3rem}.countdown{grid-template-columns:repeat(2,1fr);max-width:320px;gap:15px;margin:35px auto}.countdown>div{padding:18px 8px 32px}.countdown strong{font-size:3.5rem}.countdown span{font-size:10px}.portrait-section{display:flex;flex-direction:column;padding:80px 24px}.portrait-frame{max-width:300px}.portrait-copy h2,.place-copy h2,.dress-section h2,.rsvp-intro h2{font-size:3rem}.place-section{display:flex;flex-direction:column;padding:65px 24px;gap:50px}.treasure-map{width:100%;max-width:480px}.map-inscription strong{font-size:1.7rem}.map-inscription span,.map-inscription small{font-size:10px}.programme-section{padding:80px 25px}.programme-section h2{font-size:3rem}.programme-section ol{grid-template-columns:1fr;gap:28px;margin-top:40px}.programme-section li{padding:30px 35px 55px}.programme-section h3{font-size:2.3rem}.arrival-section h2{font-size:3rem}}
@media(prefers-reduced-motion:reduce){.cover-art{transition:none}.treasure-map{transform:none}}
.countdown-section{min-height:calc(100svh + 80px)}

/* 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:#284b41ed;color:#fff0d2;border:1px solid #e3c591b8;box-shadow:0 2px 12px #18392f66;font-size:13px;line-height:1.45}
.entered .hero .open-note{display:none}
@media(prefers-reduced-motion:reduce){.hero .open-note{display:none}}

/* Pergaminhos e convocação do reino. */
#lista .story-kicker,#recados .story-kicker{font:700 .67rem/1.5 Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#725235}
#lista #guest-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:0;list-style:none}
#lista #guest-list li,#recados #messages blockquote{background:#f6e8cd;color:#43382d;border:1px solid #b89c6d;box-shadow:3px 5px 0 #916f4a;padding:20px;transform:rotate(-.5deg)}
#lista #guest-list li:nth-child(even),#recados #messages blockquote:nth-child(even){transform:rotate(.6deg)}
#recados #messages{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}

#lista .demo-disclaimer,#recados .demo-disclaimer{font-size:.78rem;letter-spacing:.02em;opacity:.78;margin:8px 0 20px}
/* Ilustração em camadas: o castelo da capa permanece no percurso. */
.hero{height:100svh;min-height:680px}
.cosmos-layer{overflow:hidden}
.cosmos-layer #cosmos-poster{object-position:center 63%}
.depth-vignette{position:absolute;inset:0;background:linear-gradient(#173f3c20,#173f3c00 42%,#173f3c59);pointer-events:none}
.flight-section{height:165svh;overflow:clip}
.flight-stage{height:100svh;position:sticky;top:0;display:flex;align-items:flex-end;padding:clamp(30px,6vw,90px);isolation:isolate;overflow:hidden;background:#1f5149}
.flight-art{position:absolute;inset:0;z-index:-1;overflow:hidden}
.flight-art .art-back{width:100%;height:105%;object-fit:cover;object-position:center 58%;transform:translateY(calc(var(--p,0) * -22px)) scale(1.03);will-change:transform}
.castle-art::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#183e39bf,transparent 70%),linear-gradient(transparent 35%,#183e39ad)}
.castle-arch{position:absolute;left:50%;bottom:3%;width:21%;height:30%;transform:translate(-50%,calc(var(--p,0) * 12px));border:6px solid #e9ca8cb0;border-bottom:0;border-radius:50% 50% 0 0;box-shadow:0 0 0 5px #31594c70,0 0 35px #ffdc8a70;opacity:.8}
.castle-flag{position:absolute;top:27%;font:1.4rem Georgia,serif;color:#fff1c9;background:#ab6d31d9;clip-path:polygon(0 0,100% 0,80% 100%,40% 73%,0 100%);width:38px;height:64px;text-align:center;padding-top:10px;transform:translateY(calc(var(--p,0) * -19px));filter:drop-shadow(0 8px 7px #23483a70)}
.flag-one{left:31%}.flag-two{right:25%;top:34%;transform:translateY(calc(var(--p,0) * -29px))}
.near-leaves{position:absolute;left:-2%;bottom:-4%;width:40%;height:33%;background:radial-gradient(ellipse at 20% 90%,#162f20 0 16%,transparent 17%),radial-gradient(ellipse at 50% 100%,#315d2b 0 22%,transparent 23%),radial-gradient(ellipse at 80% 100%,#204f31 0 18%,transparent 19%);filter:blur(2px);transform:translateY(calc(var(--p,0) * 25px));opacity:.8}
.flight-copy{position:relative;z-index:2;max-width:540px;padding:28px 32px;background:#21473bd9;border-left:3px solid #e8c181;color:#fff1d5;text-shadow:none;box-shadow:0 18px 45px #123d3655}
.flight-copy h2{font-size:clamp(2.6rem,5vw,4.5rem)}
.flight-progress i{transform:scaleX(var(--p,0));transition:transform .1s linear}
.arrival-section{min-height:72svh;padding:65px 8vw;background:linear-gradient(#173b3180,#173b31e8)}
.arrival-section>div{background:#f7e9cfea;color:#284938;padding:28px 34px;border:1px solid #cfaa6d;box-shadow:0 20px 50px #173d3299}
.arrival-section h2,.arrival-section p{color:#284938;text-shadow:none}
.arrival-section .primary{background:#315a47;color:#fff3d4}
@media(max-width:700px){.hero{height:100svh;min-height:680px}.flight-section{height:145svh}.flight-stage{height:100svh;padding:24px;display:flex;align-items:flex-end}.flight-art .art-back{object-position:54% 62%}.flight-copy{padding:18px 20px;max-width:100%;margin-bottom:20px}.flight-copy h2{font-size:2.6rem}.castle-arch{width:42%;height:25%;bottom:13%}.flag-one{left:12%}.flag-two{right:10%}.arrival-section{min-height:72svh;padding:35px 22px}.arrival-section>div{padding:23px}.arrival-section h2{font-size:2.5rem}}
@media(prefers-reduced-motion:reduce){.flight-art .art-back,.castle-arch,.castle-flag,.near-leaves{transform:none;will-change:auto}.flight-progress i{transform:scaleX(1);transition:none}}
/* Leitura da chamada sobre as torres claras da ilustração. */
.hero-title{position:relative;isolation:isolate;text-shadow:0 2px 6px #173e39,0 0 16px #173e39}
.hero-title::before{content:'';position:absolute;z-index:-1;inset:-.35em -.4em;background:#173e39b8;filter:blur(14px);border-radius:35%;pointer-events:none}
/* Passagem suave entre a capa e a viagem, sem repetir o céu em corte seco. */
.hero::after{content:'';position:absolute;left:0;right:0;bottom:0;height:28svh;background:linear-gradient(transparent,#173f38 98%);pointer-events:none;z-index:1}
.flight-stage::before{content:'';position:absolute;left:0;right:0;top:0;height:29svh;background:linear-gradient(#173f38,transparent);pointer-events:none;z-index:1}
.hero .scene-caption{position:relative;z-index:2;color:#f6e8c8;text-shadow:0 2px 6px #173f38}
/* Celebração ilustrada no lugar da cena 3D, com ponte e ingresso visíveis. */
#ponte-celebracao[hidden]{display:none!important}
#ponte-celebracao{min-height:72svh;position:relative;margin:0 -8vw;padding:55px 8vw;background:linear-gradient(90deg,#173e39dc,#173e3990 55%,#173e3955),url('../img/castelo-ilustrado.webp') center 68%/cover no-repeat;color:#fff2d5;align-items:center}
#ponte-celebracao::before{content:'✦   ELIO · VII   ✦';position:absolute;top:8%;left:8%;font:700 .7rem Arial,sans-serif;letter-spacing:.22em;border-top:1px solid #f3d6a7;border-bottom:1px solid #f3d6a7;padding:10px 0}
#ponte-celebracao>div{position:relative;background:#1b463bcc;border:1px solid #d9b978;padding:28px 34px;box-shadow:0 18px 40px #163d36a3}
#ponte-celebracao #bridge-guest{font:700 1rem Arial,sans-serif;letter-spacing:.08em;color:#ffe8b1}
@media(max-width:700px){#ponte-celebracao{min-height:68svh;margin:0 -24px;padding:70px 24px 30px}#ponte-celebracao::before{left:24px}#ponte-celebracao>div{padding:22px}}

@media(max-width:700px){.hero .scene-caption{position:absolute;left:20px;right:20px;bottom:20px;max-width:calc(100% - 40px);margin:0;text-align:center;font-size:clamp(1rem,4.5vw,1.2rem);line-height:1.2;overflow-wrap:normal;text-wrap:balance}}
