/* Local interactions layered over the exact observed Template 25 visual styles. */
html,body{height:100%;overflow:hidden;background:#240e14}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
:focus-visible{outline:2px solid #fde3a7;outline-offset:4px}
#invitationScroll{scroll-behavior:smooth;outline:none}
#invitationScroll::-webkit-scrollbar{display:none}
#invitationFrame{height:100%;height:100dvh}
#sectionNav .nav-item{position:relative;display:flex;width:44px;height:44px;flex-shrink:0;align-items:center;justify-content:center;border-radius:999px;color:#fde3a7bf;transition:background .3s,color .3s,box-shadow .3s}
#sectionNav .nav-item:hover{color:#fde3a7}
#sectionNav .nav-item[aria-current]{color:#2a0e14;background:linear-gradient(#fde3a7,#e6ca65);box-shadow:0 2px 8px #fde3a780}
#sectionNav .nav-item:active{transform:scale(.95)}
#sectionNav svg{flex-shrink:0}
.image-trigger{display:block;padding:0;text-align:inherit}
[data-reveal]{transition:opacity .75s ease,transform .75s cubic-bezier(.2,.6,.2,1)}
.motion-enabled [data-reveal]:not(.is-visible){opacity:0;transform:translateY(24px)}
.motion-enabled [data-reveal=left]:not(.is-visible){transform:translateX(-20px)}
#imageViewer{position:fixed;inset:0;width:100vw;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;border:0;padding:60px 70px;background:#4b252de8;color:#e5bac2;overflow:hidden}
#imageViewer::backdrop{background:#33171fcc;backdrop-filter:blur(10px)}
#imageViewer[open]{display:flex;align-items:center;justify-content:center}
#viewerImage{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:16px;box-shadow:0 15px 50px #240e1440}
#imageViewer button{position:absolute;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid #e0a8b235;background:#e0a8b21c;color:#d7a4ad;font:32px/1 Georgia,serif;transition:background .2s}
#imageViewer button:hover{background:#e0a8b238}
#closeViewer{top:16px;right:16px}
#previousImage{left:24px;top:calc(50% - 22px)}
#nextImage{right:24px;top:calc(50% - 22px)}
#imageCounter{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);border:1px solid #e0a8b235;background:#e0a8b21c;border-radius:999px;padding:5px 16px;font-size:12px;letter-spacing:2px}
.toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%,12px);width:max-content;max-width:min(90vw,430px);padding:12px 20px;border:1px solid #fde3a760;border-radius:18px;background:#3a161ff2;color:#fde3a7;text-align:center;font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.toast.is-on{opacity:1;transform:translate(-50%,0)}
[hidden]{display:none!important}
@media(max-width:500px){#imageViewer{padding:64px 12px 80px}#previousImage{left:16px;top:auto;bottom:18px}#nextImage{right:16px;top:auto;bottom:18px}#imageCounter{bottom:24px}#sectionNav .nav-item{min-width:30px}}
#sectionNavDock{transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .35s,visibility 0s}
#sectionNavDock.is-hidden{opacity:0;transform:translateY(calc(100% + 1rem));visibility:hidden;transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .35s,visibility 0s .45s}
.scroll-cue{padding:8px 16px;border-radius:999px;border:1px solid rgba(253,227,167,.35);background:rgba(58,22,31,.82);box-shadow:0 8px 24px rgba(0,0,0,.35);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:opacity .3s}
.scroll-cue svg{animation:scroll-cue-bounce 1.8s ease-in-out infinite}
.scroll-cue.is-hidden{opacity:0;pointer-events:none}
@keyframes scroll-cue-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}
@media(prefers-reduced-motion:reduce){#invitationScroll{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-enabled [data-reveal]:not(.is-visible){opacity:1;transform:none}}
