@font-face{font-family:GalleryTitle;src:url('../fonts/SpaceTitle.woff2') format('woff2');font-weight:700;font-display:swap}@font-face{font-family:GalleryText;src:url('../fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}:root{--display:GalleryTitle,Arial,sans-serif;--body:GalleryText,monospace}body{font-family:GalleryText,monospace;font-size:13px}.gallery-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%;transition:opacity 1.8s}.opening .gallery-cover,.entered .gallery-cover{opacity:0}.immersive-light .gallery-cover{opacity:1}.cosmos-layer::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse,transparent 45%,#544c3929);pointer-events:none}.hero{min-height:1000px;height:100svh}.hero::before{background:linear-gradient(#f4eed8d9,#f4eed890 45%,transparent 80%)}.hero-copy{padding:130px 6vw 80px;max-width:1600px}.hero h1{font-family:GalleryTitle;font-weight:700;font-size:clamp(4rem,11vw,11rem);letter-spacing:-.065em;line-height:.95;margin:30px 0}.hero-title{font-family:GalleryTitle;font-weight:700;font-size:2.1rem;line-height:1.2;max-width:600px}.guest-label{font-family:GalleryText;letter-spacing:.08em;font-size:11px}.hero-date{font-size:12px}.topline{font-size:10px}.hero .open-button{font-size:12px;padding:15px 25px}.open-note{font-size:10px}.scene-caption{font-family:GalleryText;font-size:10px}.flight-copy{background:#f4f0e3ed;border-left:6px solid #1937c7;padding:25px;color:#192b82;max-width:610px}.flight-copy h2{font-family:GalleryTitle;font-size:3rem}.flight-copy p{font-size:12px}.countdown-section{background:#1b35bd;color:#fbf6e9;min-height:calc(100svh + 80px);display:grid;grid-template-columns:1fr 3fr;padding:100px 7%;gap:50px;text-align:left}.gallery-edition{font-size:12px;line-height:2;letter-spacing:.08em;border-top:1px solid #f4eed477;padding-top:18px;align-self:start}.countdown-inner{width:100%;max-width:none}.countdown-inner h2{font:700 clamp(3rem,6vw,6rem)/1.05 GalleryTitle;text-align:left;letter-spacing:-.06em;max-width:850px}.event-day{font-size:12px;margin:30px 0}.countdown{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;align-items:end;gap:20px;margin:50px 0;border-top:1px solid #f4eed488;padding-top:25px}.countdown>div{display:flex;flex-direction:column;border-right:1px solid #ffffff44;padding-right:15px}.countdown>div:last-child{border:0}.countdown strong{font:700 clamp(3rem,6vw,5.8rem)/1 GalleryTitle;letter-spacing:-.07em}.countdown>div:first-child strong{font-size:clamp(5rem,11vw,10rem)}.countdown span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-top:20px}.countdown-section #agenda{border:1px solid #f7eed8;padding:12px 20px;font-size:11px}.gallery-atelier{margin:0;background:#f4f0e7;padding:18px;box-shadow:10px 10px 0 #1937c7}.gallery-atelier img{width:100%;display:block}.gallery-atelier figcaption{font-size:10px;padding:20px 0 5px}.place-copy h2,.portrait-copy h2,.prose h2{font-family:GalleryTitle;font-weight:700}.place-section{gap:65px;padding:100px 7%}.place-copy address{font-size:13px}.frame-shutter{display:none}.portrait-frame{outline:1px solid #aaa59a;padding:15px}.signature,.monogram{font-family:GalleryTitle}.programme-section{display:block;padding:100px 7%}.gallery-index{display:grid;grid-template-columns:1fr 3fr;gap:50px}.gallery-index>span{font-size:10px;border-top:1px solid #7e7d7888;padding-top:18px}.gallery-index h2{font:700 clamp(3rem,5vw,5rem)/1.05 GalleryTitle;letter-spacing:-.06em}.programme-section ol{display:grid;grid-template-columns:repeat(3,1fr);gap:0;counter-reset:exhibition;margin-top:70px;border:0}.programme-section li{padding:30px;border-top:1px solid #7e7d7888;border-right:1px solid #7e7d7888;counter-increment:exhibition}.programme-section li:last-child{border-right:0}.programme-section li::before{position:static;display:block;content:'0' counter(exhibition);font:700 5rem GalleryTitle;background:none;color:#1937c7;margin-bottom:30px}.programme-section time{font-size:11px}.programme-section h3{font:700 1.5rem/1.15 GalleryTitle;margin:15px 0}.programme-section li p{font-size:12px}.dress-section{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;text-align:left;padding:90px 8%;background:#d5dfdc;color:#26312f}.gallery-object{margin:0;text-align:center}.gallery-object img{width:75%;max-height:550px;object-fit:contain}.gallery-object figcaption{font-size:10px;margin-top:25px}.dress-section h2{font-family:GalleryTitle;font-weight:700}.dress-section p{font-size:13px}.arrival-section>div{background:#f4f0e3e6;padding:30px}.arrival-section h2{font-family:GalleryTitle;font-weight:700}.light-mode,footer .light-mode{position:static!important;display:block;margin:30px auto 0;background:none;color:#eee9d8;border:0;border-bottom:1px solid #eee9d855;font-size:10px;min-height:44px}.rsvp-section h2,.guests-section h2,.notes-section h2{font-family:GalleryTitle;font-weight:700}@media(max-width:700px){.hero{height:950px;min-height:950px}.hero-copy{padding:70px 24px 30px}.hero h1{font-size:clamp(3.2rem,14vw,5rem);margin:25px 0}.hero-title{font-size:1.6rem;max-width:320px}.hero-date{margin-top:25px}.gallery-cover{object-position:center bottom}.topline{padding:25px 20px;font-size:9px}.hero::before{background:linear-gradient(#f4eed8ed,#f4eed8b0 43%,transparent 75%)}.flight-stage{align-items:flex-end;padding:0 24px 70px}.flight-copy{padding:22px}.flight-copy h2{font-size:2.3rem}.countdown-section{display:block;padding:75px 25px}.gallery-edition{display:block;margin-bottom:45px;font-size:9px}.countdown-inner h2{font-size:3rem}.countdown{grid-template-columns:repeat(3,1fr);gap:22px}.countdown>div:first-child{grid-column:1/-1;border:0}.countdown>div:first-child strong{font-size:8.5rem}.countdown strong{font-size:2.9rem}.countdown span{font-size:8px;margin-top:9px}.countdown>div:nth-child(2){padding-left:0}.place-section{padding:75px 25px;gap:45px}.gallery-atelier{order:-1;padding:12px;box-shadow:6px 6px 0 #1937c7}.gallery-index{display:block}.gallery-index>span{display:block;margin-bottom:35px}.gallery-index h2{font-size:2.8rem}.programme-section{padding:75px 25px}.programme-section ol{grid-template-columns:1fr;margin-top:40px}.programme-section li{border-right:0;padding:30px 0;display:grid;grid-template-columns:70px 1fr;gap:10px 22px}.programme-section li::before{grid-row:span 2;font-size:3.6rem;margin:0}.programme-section h3{font-size:1.5rem;margin-top:0}.dress-section{grid-template-columns:1fr;padding:75px 26px;gap:40px}.gallery-object img{width:70%;max-height:360px}.dress-section h2{font-size:2.7rem}.arrival-section>div{padding:22px}.arrival-section h2{font-size:2.6rem}}@media(prefers-reduced-motion:reduce){.gallery-cover{transition:none;opacity:1}}

.hero .open-note{background:#f3ebd8ed;color:#343847;padding:6px 9px;width:max-content;max-width:100%;font-size:9px}

@media(max-width:700px){.flight-stage{display:flex;align-items:flex-end}}

@media(min-width:701px){.hero{background:#f4eed8}.gallery-cover{left:auto;width:58%;object-position:center center}.hero::before{z-index:1;background:linear-gradient(90deg,#f4eed8 0%,#f4eed8f5 40%,#f4eed8b3 59%,transparent 83%)}.hero-copy{position:relative;z-index:2}.hero h1{font-size:clamp(4rem,9vw,9rem)}.hero-title{max-width:560px}}
/* Etiquetas e vozes da primeira noite. */
#lista .story-kicker,#recados .story-kicker{font:700 .66rem/1.5 Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:#1b37bf}
#lista #guest-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:0;padding:0;list-style:none;border-top:2px solid #1b37bf}
#lista #guest-list li{background:#f5f3ec;color:#1e253a;border-bottom:1px solid #acb6d5;padding:18px 14px;font-weight:700}
#lista #guest-list li::before{content:'01 /';font-size:.65rem;letter-spacing:.2em;color:#1b37bf;margin-right:12px}
#recados #messages{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
#recados #messages blockquote{background:#f5f3ec;color:#1e253a;border-left:5px solid #1b37bf;padding:22px;margin:0}
#recados #messages cite{display:block;border-top:1px solid #a9b7d7;margin-top:16px;padding-top:10px;font-style:normal;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}

#lista .demo-disclaimer,#recados .demo-disclaimer{font-size:.78rem;letter-spacing:.02em;opacity:.78;margin:8px 0 20px}
#lista #guest-list{counter-reset:exhibit}#lista #guest-list li{counter-increment:exhibit}#lista #guest-list li::before{content:counter(exhibit,decimal-leading-zero) " /"}
/* Galeria ilustrada: entrada, objeto e luz em planos editoriais. */
.hero{height:100svh;min-height:700px}
.cosmos-layer{overflow:hidden;background:#e8ded2}
.cosmos-layer #cosmos-poster{object-position:center 67%}
.depth-vignette{position:absolute;inset:0;background:linear-gradient(#f4e5cf30,transparent 45%,#142e7d26);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(25px,5vw,70px);isolation:isolate;overflow:hidden;background:#14296a}
.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 69%;transform:translateY(calc(var(--p,0) * -24px)) scale(1.04);will-change:transform}
.gallery-art::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#10267bae,transparent 65%),linear-gradient(transparent 45%,#10267b9a);pointer-events:none}
.gallery-frame{position:absolute;inset:9% 7% 11%;border:2px solid #f2dba6a8;box-shadow:0 0 0 16px #1739a253,inset 0 0 50px #ecd4a631;transform:translateY(calc(var(--p,0) * 12px));pointer-events:none}
.gallery-frame::before{content:'H / 01';position:absolute;top:18px;left:20px;color:#f9edce;font:700 12px GalleryText,monospace;letter-spacing:.18em}
.gallery-exhibit{position:absolute;right:7%;bottom:13%;width:clamp(145px,20vw,280px);padding:10px;background:#f5efe2;box-shadow:16px 18px 0 #183bd0,0 20px 50px #0b236397;transform:translateY(calc(var(--p,0) * -35px)) rotate(2deg)}
.gallery-exhibit img{width:100%;height:clamp(100px,17vw,205px);object-fit:cover}
.gallery-exhibit span{display:block;font:700 .6rem/1.5 GalleryText,monospace;letter-spacing:.12em;color:#1937bd;margin-top:8px}
.gallery-light{position:absolute;top:-20%;right:5%;width:35%;height:90%;background:linear-gradient(110deg,transparent,#fff4cf33 48%,transparent);transform:rotate(-17deg) translateX(calc(var(--p,0) * -22px));pointer-events:none}
.flight-copy{position:relative;z-index:2;max-width:480px;margin-right:auto;background:#f6f1e5f5;border-left:8px solid #1937c7;color:#1c2e7b;padding:26px 30px;text-shadow:none;box-shadow:0 20px 45px #10267b66}
.flight-copy h2{font-size:clamp(2.5rem,4.5vw,4rem)}
.flight-copy p{color:#283c87}
.flight-progress i{transform:scaleX(var(--p,0));transition:transform .1s linear}
.arrival-section{min-height:70svh;background:linear-gradient(#e9e1d4ae,#e9e1d4fa);padding:60px 8vw}
.arrival-section>div{background:#f6f1e8f5;border:1px solid #1937c7;padding:30px 36px;box-shadow:12px 12px 0 #1937c7}
@media(max-width:700px){.hero{height:100svh;min-height:700px}.flight-section{height:145svh}.flight-stage{height:100svh;padding:22px;display:flex;align-items:flex-end}.flight-art .art-back{object-position:center 68%}.gallery-frame{inset:7% 5% 10%}.gallery-exhibit{right:8%;top:24%;bottom:auto;width:145px;padding:7px}.gallery-exhibit img{height:100px}.flight-copy{max-width:100%;padding:20px;margin-bottom:8px}.flight-copy h2{font-size:2.4rem}.arrival-section{min-height:70svh;padding:35px 22px}.arrival-section>div{padding:22px}.arrival-section h2{font-size:2.5rem}}
@media(prefers-reduced-motion:reduce){.flight-art .art-back,.gallery-frame,.gallery-exhibit,.gallery-light{transform:none;will-change:auto}.flight-progress i{transform:scaleX(1);transition:none}}
/* A moldura da entrada dissolve antes da próxima sala. */
.hero::after{content:'';position:absolute;left:0;right:0;bottom:0;height:25svh;background:linear-gradient(transparent,#172f86 98%);pointer-events:none;z-index:1}
.flight-stage::before{content:'';position:absolute;left:0;right:0;top:0;height:27svh;background:linear-gradient(#172f86,transparent);pointer-events:none;z-index:1}
.gallery-frame::before{color:#fff4d6;background:#1838ba;padding:9px 12px;box-shadow:0 4px 16px #10277975}
@media(max-width:340px){.hero-copy{padding-top:48px}.hero h1{font-size:3.7rem;margin:16px 0 14px}.hero-title{font-size:1.42rem;line-height:1.12}.hero-date{margin-top:13px}.hero .open-button{margin-top:52px}}
.hero .scene-caption{position:relative;z-index:2;color:#fff4d6;text-shadow:0 2px 6px #172f86}
/* Cartão da primeira noite ocupa a confirmação, sem arco vazio. */
#celebracao[hidden]{display:none!important}
#celebracao{min-height:70svh;position:relative;margin:0 -8vw;padding:55px 8vw;background:linear-gradient(90deg,#142989e0,#142989a5 55%,#14298955),url('../img/galeria-polido.webp') center 70%/cover no-repeat;color:#fff4df;align-items:center}
#celebracao::before{content:'HORIZONTE / ABERTURA 01';position:absolute;top:8%;left:8%;font:700 .7rem GalleryText,monospace;letter-spacing:.14em;border-bottom:2px solid #f2d078;padding-bottom:10px;color:#fff4df}
#celebracao>div{position:relative;background:#f6f0e8f2;color:#172f91;border-left:8px solid #e9bd44;padding:28px 34px;box-shadow:14px 15px 0 #102a91a8}
#celebracao #celebration-guest{font:700 .8rem GalleryText,monospace;letter-spacing:.1em;text-transform:uppercase;color:#172f91}
@media(max-width:700px){#celebracao{min-height:68svh;margin:0 -24px;padding:70px 24px 30px}#celebracao::before{left:24px}#celebracao>div{padding:22px}}
@media(max-width:700px){.hero .scene-caption{display:none}}
