.intro-gate{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:0;margin:0;background:#eee3d4;color:var(--ink);overflow:hidden;transition:opacity 1s ease,visibility 1s}.intro-gate::backdrop{background:#eee3d4}.gate-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%;opacity:.2;filter:saturate(.6)}.gate-panel{position:absolute;inset:0 50% 0 0;background:linear-gradient(100deg,#eee3d4f5,#faf5ecf5);border-right:1px solid #bba58b88;transform-origin:left;transition:transform 1.5s cubic-bezier(.65,0,.2,1)}.gate-panel.right{inset:0 0 0 50%;transform-origin:right;background:linear-gradient(260deg,#eee3d4f5,#faf5ecf5);border-left:1px solid #fff8}.gate-content{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:30px;transition:opacity .55s,transform .8s}.gate-content::before{content:'';position:absolute;inset:28px;border:1px solid #bba58b;pointer-events:none}.gate-content .eyebrow{margin-bottom:35px}.gate-names{font-size:clamp(60px,8vw,110px);line-height:1.3;margin:0 0 22px}.gate-caption{font-size:21px;font-style:italic;margin-bottom:35px}.open-invitation{border:1px solid #c8b397;border-radius:50%;width:100px;height:100px;background:#6a4935;color:#f8efdf;box-shadow:0 0 0 6px #e4d4bc,0 0 0 7px #b69a79,0 12px 35px #583d3328;cursor:pointer;font-size:34px;transition:transform .3s,box-shadow .3s;animation:invitationPulse 3s ease-in-out infinite}.open-invitation:hover{transform:scale(1.07);box-shadow:0 0 0 9px #e4d4bc,0 0 0 10px #b69a79}.open-invitation:focus-visible{outline:3px solid #513a2c;outline-offset:12px}.gate-hint{font-size:13px;letter-spacing:.14em;margin-top:30px;text-transform:uppercase}.intro-gate.opening-gate .gate-panel{transform:perspective(1200px) rotateY(-100deg)}.intro-gate.opening-gate .gate-panel.right{transform:perspective(1200px) rotateY(100deg)}.intro-gate.opening-gate .gate-content{opacity:0;transform:translateY(-18px)}.intro-gate.opening-gate{opacity:0;pointer-events:none}.reveal{opacity:0;transform:translateY(32px);transition:opacity 1s ease,transform 1.2s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}.reveal.visible{opacity:1;transform:translateY(0)}.photo-button{display:block;border:0;background:none;width:100%;height:100%;padding:0;cursor:zoom-in;overflow:hidden}.photo-button img{transition:transform 1.6s ease}.photo-button:hover img{transform:scale(1.045)}.photo-button:focus-visible{outline:3px solid #a5815e;outline-offset:-5px}.scroll span{animation:scrollNudge 2.8s ease-in-out infinite}.action{transition:transform .25s,color .25s}.action:hover{transform:translateY(-5px)}.action:hover svg{transform:rotate(-6deg)}.action svg{transition:transform .3s}.chapter-nav{position:fixed;z-index:8;right:14px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;padding:13px 8px;border-radius:30px;background:#faf6efe8;box-shadow:0 2px 15px #513a2c16;opacity:0;transition:opacity .5s}.entered .chapter-nav{opacity:1}.chapter-nav a{display:flex;align-items:center;justify-content:center;width:24px;height:24px;text-decoration:none}.chapter-nav a::before{content:'';width:6px;height:6px;border:1px solid #786150;border-radius:50%;transition:transform .3s,background .3s}.chapter-nav a[aria-current=true]::before{background:#513a2c;transform:scale(1.6)}.chapter-nav a:focus-visible{outline:1px solid #513a2c;border-radius:50%}.reading-progress{position:fixed;top:0;left:0;height:3px;background:#9e7b58;width:100%;transform:scaleX(0);transform-origin:left;z-index:10}.photo-dialog{border:0;background:transparent;padding:0;max-width:95vw;max-height:95svh;overflow:visible}.photo-dialog::backdrop{background:#20170fef;backdrop-filter:blur(8px)}.photo-dialog img{height:88svh;width:auto;max-width:92vw;object-fit:contain}.dialog-close{position:absolute;right:8px;top:8px;width:44px;height:44px;border:1px solid #bba58b;border-radius:50%;background:#f4ede3;color:#513a2c;font-size:25px;cursor:pointer;z-index:2}.detail-dialog{max-width:calc(100vw - 40px);width:430px;border:1px solid var(--line);padding:65px 30px 40px;color:var(--ink);background:var(--paper);text-align:center}.detail-dialog::backdrop{background:#30211580;backdrop-filter:blur(5px)}.detail-dialog h2{font-size:34px;font-weight:400;margin-bottom:20px}.detail-dialog p{font-size:20px}.detail-dialog[open],.photo-dialog[open]{animation:dialogIn .35s ease}.replay{display:block;margin:22px auto 0;background:none;border:0;border-bottom:1px solid var(--line);color:var(--muted);font-size:15px;cursor:pointer;padding:6px 0}.section{scroll-margin-top:0}.closing{padding-bottom:45px}
@keyframes invitationPulse{0%,100%{box-shadow:0 0 0 6px #e4d4bc,0 0 0 7px #b69a79,0 12px 35px #583d3328}50%{box-shadow:0 0 0 10px #e4d4bc88,0 0 0 11px #b69a7944,0 12px 35px #583d3328}}@keyframes scrollNudge{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}@keyframes dialogIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:760px){.gate-content::before{inset:16px}.gate-names{font-size:69px;max-width:280px}.gate-content .eyebrow{font-size:10px}.gate-caption{font-size:19px;max-width:230px}.chapter-nav{right:5px;padding:8px 3px;gap:3px}.chapter-nav a{width:18px;height:26px}.photo-dialog img{height:auto;max-height:88svh;width:92vw}.intro-gate .gate-content{padding:40px 25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

.open-invitation{white-space:nowrap;font-size:28px;line-height:1;padding:0;display:grid;place-items:center}

/* Caligrafia clássica com contraste de pena. */
.gate-names{font-size:clamp(64px,8.3vw,112px)}
.open-invitation{font-size:30px}
@media(max-width:760px){.gate-names{font-size:70px}.signature{font-size:43px}}

/* Referência de caligrafia com pena larga, letras separadas. */
.script{font-family:Quintessential, Georgia, serif;font-style:normal;font-weight:400}
.gate-names{font-size:clamp(56px,7.5vw,100px);line-height:1.35}
.names{font-size:clamp(64px,6.5vw,100px);line-height:1.2}
.signature{font-size:42px}
.open-invitation{font-size:25px}
@media(max-width:760px){.gate-names{font-size:58px;max-width:300px}.names{font-size:72px}.signature{font-size:36px}}

.open-invitation{width:158px;height:158px;background:transparent;border:0;border-radius:0;box-shadow:none;animation:sealBreathe 3.5s ease-in-out infinite;filter:drop-shadow(0 8px 8px #513a2c30)}
.open-invitation:hover{box-shadow:none;transform:scale(1.06)}
.open-invitation img{width:100%;height:100%;object-fit:contain}
.gate-hint{margin-top:12px}
@keyframes sealBreathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

.open-invitation{border-radius:50%}.open-invitation:focus-visible{outline:1px solid #9e7b58;outline-offset:2px}

/* Monograma: duas iniciais de igual destaque, união discreta. */
.monogram{display:flex;align-items:center;justify-content:center;gap:10px;font-family:Quintessential,Georgia,serif;font-size:46px;line-height:1.25}
.monogram .initial{font-size:1em;line-height:1.25}
.monogram .ampersand{font-family:Quintessential,Georgia,serif;font-size:.34em;line-height:1;transform:translateY(.12em)}
@media(max-width:760px){.opening .monogram{font-size:40px;gap:9px}}

/* Iniciais com laçada inferior ampla, preservando o & discreto. */
.monogram{gap:12px;font-size:54px}
.monogram .initial{font-family:"Pinyon Script","Snell Roundhand",cursive;font-size:1em;line-height:1.2}
.monogram .ampersand{font-size:.29em}
@media(max-width:760px){.opening .monogram{font-size:48px;gap:11px}}

/* Corpo clássico do J anterior, com terminal inferior redesenhado. */
.monogram{font-family:Quintessential,Georgia,serif;gap:10px;font-size:46px}
.monogram .custom-j{width:.82em;height:1.18em;fill:currentColor;display:block;overflow:visible}
.monogram .ampersand{font-family:Quintessential,Georgia,serif;font-size:.34em;transform:translateY(.08em)}
@media(max-width:760px){.opening .monogram{font-size:42px;gap:9px}}

/* Mesmo desenho de carimbo: hastes verticais, serifas e terminais redondos. */
.monogram{gap:8px}
.monogram .custom-j{width:.82em;height:1.18em}
.monogram .ampersand{font-family:"Cormorant Garamond",Georgia,serif;font-style:normal;font-weight:500;font-size:.38em;transform:translateY(.04em)}

/* Espaçamento compacto do monograma gravado no selo. */
.monogram,.opening .monogram{gap:0}
.monogram .ampersand{margin-left:-.13em;margin-right:-.13em}
