:root{--olive:#636b4d;--ink:#454c37;--paper:#f8f6f1;--fendi:#c9c1b4;--gold:#d4b883;--orange:#f77e2d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e9e5dc;color:var(--ink);font-family:'EB Garamond',Georgia,serif;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--orange);outline-offset:8px}main{visibility:hidden;max-width:600px;margin:auto;overflow:hidden;background:var(--paper) url('assets/papel.jpg') repeat;background-size:420px;box-shadow:0 0 60px #454c3712}body.opened{overflow:auto}body.opened main{visibility:visible}section,footer{position:relative;text-align:center}p,h1,h2{margin:0}.envelope{position:fixed;inset:0;z-index:10;display:grid;place-items:center;overflow:hidden;background:var(--olive);transition:transform 1.15s cubic-bezier(.65,0,.25,1),opacity .9s}.envelope:before{content:'';position:absolute;inset:0;opacity:.12;background:url('assets/papel.jpg');mix-blend-mode:soft-light}.envelope:after{content:'';position:absolute;inset:18px;border:1px solid #d4b88355;border-radius:2px;pointer-events:none}.envelope.opening{transform:translateY(-105%);opacity:0}.emboss{position:absolute;width:380px;height:570px;background:url('assets/ramo.png') center/contain no-repeat;mix-blend-mode:luminosity;opacity:.07;filter:grayscale(1)}.emboss-left{left:-155px;top:0;transform:rotate(180deg)}.emboss-right{right:-150px;bottom:-30px}.open-envelope{border:0;background:none;display:flex;align-items:center;flex-direction:column;position:relative;color:var(--paper);cursor:pointer;padding:24px}.oval{display:grid;place-items:center;width:220px;height:300px;border-radius:50%;background:var(--paper) url('assets/papel.jpg');border:1px solid var(--gold);outline:1px solid #d4b88370;outline-offset:9px;box-shadow:0 15px 45px #242a2430}.oval img{width:125px;mix-blend-mode:multiply}.seal{width:77px;height:77px;display:grid;place-items:center;margin-top:-21px;border-radius:48% 52% 47% 53%;background:radial-gradient(ellipse at 35% 25%,#f1dfb9,var(--gold) 50%,#ae8d53);box-shadow:0 5px 9px #27301d45,inset 0 0 0 4px #b99a6680,inset 0 0 0 7px #f5e4bd70;position:relative}.seal svg{width:43px;fill:none;stroke:#927540;stroke-width:1;filter:drop-shadow(0 1px 0 #fff7)}.open-label{font-size:22px;font-style:italic;margin-top:38px;letter-spacing:1px}.cover{min-height:100svh;display:grid;place-items:center;padding:90px 24px 110px}.cover-content{z-index:1;position:relative;width:100%}.logo{mix-blend-mode:multiply;object-fit:contain}.hero-logo{width:clamp(135px,36vw,185px);display:block;margin:0 auto 55px}h1{font-family:Montserrat,Arial,sans-serif;font-size:clamp(19px,4.7vw,26px);font-weight:500;letter-spacing:.22em;color:var(--fendi)}.cover-date{margin-top:28px;font-family:Montserrat,Arial,sans-serif;color:var(--fendi);font-size:16px;letter-spacing:.35em}.branch{position:absolute;pointer-events:none;mix-blend-mode:multiply}.cover-branch{width:255px;right:-100px;bottom:-30px}.scroll-mark{position:absolute;bottom:35px;left:50%;color:var(--olive);font-size:28px;opacity:.55}.details{padding:60px 28px 75px}.fine-rule{display:block;width:48px;height:1px;background:var(--gold);margin:0 auto}.inviting{font-style:italic;font-size:clamp(29px,7vw,36px);line-height:1.2;margin:36px 0 44px}.event{font-style:italic;font-size:21px;line-height:1.6}.event p+p{margin-top:16px}.event .venue{font-size:29px}.details>.fine-rule:last-child{margin-top:54px}.count-section{padding:32px 28px 110px}.large-date{font-size:70px;line-height:1.1;font-weight:400}.large-date span{font-size:36px;font-style:italic}.year{font-family:Montserrat,Arial,sans-serif;font-size:12px;letter-spacing:.4em;margin-top:14px}.count-intro{font-size:24px;font-style:italic;margin-top:42px}.countdown{display:flex;justify-content:center;gap:10px;margin-top:25px}.countdown>div{background:#d8dbcc88;width:70px;padding:13px 0 11px;border-radius:9px;border:1px solid #636b4d12}.countdown span{display:block;font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums}.countdown small{font-family:Montserrat,Arial,sans-serif;display:block;margin-top:8px;font-size:10px;letter-spacing:.07em}.count-branch{width:150px;left:-104px;bottom:2px;transform:rotate(40deg);opacity:.65}.dress{padding:10px 18px 60px}.eyebrow{font-family:Montserrat,Arial,sans-serif;font-size:11px;letter-spacing:.24em}.dress h2{font-size:38px;font-style:italic;font-weight:400;margin-top:12px}.guests{display:block;width:100%;max-width:500px;height:auto;margin:30px auto 0;mix-blend-mode:multiply}.actions{padding:18px 24px 55px}.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:380px;margin:auto}.action-grid a{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--ink);cursor:pointer;font-family:Montserrat,Arial,sans-serif;font-size:9px;letter-spacing:.08em;line-height:1.8}.action-circle{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;border:1px solid #636b4d22;background:#d8dbcc77;margin-bottom:16px;transition:background .2s,transform .2s}.action-grid a:hover .action-circle{background:#c9cebb;transform:translateY(-3px)}.action-circle svg{width:28px;height:28px;fill:none;stroke:var(--olive);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.link-status{font:11px Montserrat,Arial,sans-serif;min-height:18px;margin-top:23px;line-height:1.5}.closing{padding:25px 24px 120px}.closing p{font-style:italic;font-size:26px;line-height:1.35;margin:38px 0}.closing-logo{width:65px}.closing-branch{width:210px;right:-100px;bottom:-45px;opacity:.8}.reveal{opacity:1;transform:none}.js-reveal .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s,transform .8s}.js-reveal .reveal.visible{opacity:1;transform:none}@media(min-width:700px){.envelope:after{inset:32px}.cover{min-height:900px}.hero-logo{width:185px}.cover-branch{width:330px;right:-95px}.details{padding-top:80px;padding-bottom:100px}.count-section{padding-bottom:120px}.dress{padding-bottom:70px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js-reveal .reveal{opacity:1;transform:none}}
.open-envelope{font-family:inherit}.emboss{mix-blend-mode:multiply;filter:none;opacity:.12}
main{background-image:linear-gradient(#f8f6f1cc,#f8f6f1cc),url(assets/papel.jpg)}.oval{background-image:linear-gradient(#f8f6f1cc,#f8f6f1cc),url(assets/papel.jpg)}
.qr-section{padding:10px 28px 65px}.qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:42px auto 0;max-width:470px}.qr-card h2{font-size:28px;font-weight:400;font-style:italic;margin:12px 0 18px}.qr-card>p:not(.eyebrow){font-size:18px;font-style:italic;line-height:1.3}.qr-link{display:block;width:150px;max-width:100%;margin:0 auto 16px;background:white;border-radius:4px}.qr-link img{display:block;width:100%;height:auto}.album-placeholder{width:150px;max-width:100%;aspect-ratio:1;margin:0 auto 16px;display:grid;place-items:center;border:1px solid #636b4d30;border-radius:4px;background:#d8dbcc40}.album-placeholder svg{width:48px;fill:none;stroke:var(--olive);stroke-width:1.2}.album-status{display:block;font:10px Montserrat,Arial,sans-serif;margin-top:14px;line-height:1.5;color:var(--olive)}@media(max-width:360px){.qr-grid{gap:16px}.qr-card h2{font-size:24px}.qr-card>p:not(.eyebrow){font-size:16px}}

.count-intro{margin-top:10px}.action-grid{row-gap:28px}.dress h2{font-size:clamp(30px,8vw,38px)}.pix-section{padding:10px 24px 60px;scroll-margin-top:30px}.pix-section .eyebrow{margin-top:32px}.pix-section h2{font-size:30px;font-weight:400;font-style:italic;margin:14px 0 22px}.pix-key{font:clamp(11px,3vw,14px) Montserrat,Arial,sans-serif;overflow-wrap:anywhere}.pix-section button{margin-top:22px;padding:13px 24px;border:1px solid #636b4d40;border-radius:24px;background:#d8dbcc77;color:var(--ink);font:12px Montserrat,Arial,sans-serif;cursor:pointer}#pix-status{font:12px Montserrat,Arial,sans-serif;min-height:20px;margin-top:16px}

.action-grid button{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--ink);cursor:pointer;font-family:Montserrat,Arial,sans-serif;font-size:9px;letter-spacing:.08em;line-height:1.8;border:0;background:none;padding:0}.action-grid button:hover .action-circle{background:#c9cebb;transform:translateY(-3px)}.ticket-section{padding:0 24px 60px}.ticket-section button,#ticket-ok{border:1px solid #636b4d40;border-radius:24px;padding:13px 24px;background:#d8dbcc77;color:var(--ink);font:12px Montserrat,Arial,sans-serif;cursor:pointer}#ticket-dialog{border:1px solid var(--fendi);border-radius:14px;width:min(90vw,420px);max-height:90svh;padding:38px 26px 28px;background:var(--paper) url('assets/papel.jpg');color:var(--ink);text-align:center;font-family:'EB Garamond',Georgia,serif;box-shadow:0 20px 80px #0003}#ticket-dialog::backdrop{background:#30362699;backdrop-filter:blur(4px)}.dialog-close{position:absolute;top:8px;right:12px;border:0;background:none;color:var(--olive);font-size:30px;cursor:pointer;width:40px;height:40px}.ticket-logo{display:block;width:64px;height:auto;margin:0 auto 20px}#ticket-title{font-size:30px;font-weight:400;font-style:italic;margin:18px 0 12px}.ticket-date{font-size:18px;font-style:italic}.ticket-types{display:flex;justify-content:center;gap:12px;margin:24px 0}.ticket-types span{border:1px solid #636b4d30;border-radius:20px;padding:7px 14px;font:10px Montserrat,Arial,sans-serif}.ticket-pending{border:1px dashed #636b4d55;padding:24px 16px;border-radius:8px}.ticket-pending p{font-size:26px;font-style:italic;margin-bottom:12px}.ticket-pending span{font-size:18px;line-height:1.4;display:block}.ticket-note{font-size:17px;line-height:1.4;margin:22px 0}

.action-grid #show-ticket{justify-self:center;width:100%}

.action-circle .pix-official{width:28px;height:28px;display:block}

.ticket-venue{font-size:21px;font-style:italic;margin:8px 0 24px}.ticket-named{border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);padding:23px 6px}.ticket-named .eyebrow{font-size:9px;margin-bottom:18px}.ticket-name{font-size:26px;line-height:1.18;color:var(--ink)}.ticket-amp{display:block;font-style:italic;font-size:21px;color:var(--olive);margin:9px 0}.ticket-count{display:block;font:10px Montserrat,Arial,sans-serif;letter-spacing:.1em;margin-top:22px}.ticket-demo{font:9px Montserrat,Arial,sans-serif;letter-spacing:.15em;margin-top:25px;color:var(--olive)}#ticket-dialog{background:var(--paper) url('assets/papel-original.jpg') center/cover no-repeat}.ticket-note{font-size:16px}

.exhibit-switch{display:flex;gap:8px;justify-content:center;margin:18px 0 22px}.exhibit-switch button{border:1px solid #636b4d44;background:transparent;color:var(--ink);padding:10px 14px;border-radius:22px;cursor:pointer;font:11px Montserrat,Arial,sans-serif}.exhibit-switch button[aria-pressed=true]{background:var(--olive);color:var(--paper)}[hidden]{display:none!important}.controlled-meta{display:grid;gap:7px;margin:24px 0}.controlled-meta span{font:11px Montserrat,Arial,sans-serif}.controlled-meta strong{font-size:30px;font-weight:500}.controlled-meta small{font:10px Montserrat,Arial,sans-serif;color:var(--olive)}.demo-qr{display:block;width:145px;height:145px;background:#fff;margin:16px auto}.olive-button{padding:13px 18px;border:0;border-radius:24px;background:var(--olive);color:var(--paper);font:11px Montserrat,Arial,sans-serif;cursor:pointer}#ticket-ok{display:block;margin:20px auto 0}#reception-dialog{position:relative;border:1px solid var(--fendi);border-radius:14px;width:min(94vw,580px);max-height:92svh;padding:40px 24px 26px;background:var(--paper);color:var(--ink);font-family:'EB Garamond',Georgia,serif;text-align:center;box-shadow:0 20px 80px #0003}#reception-dialog::backdrop{background:#303626bb;backdrop-filter:blur(4px)}#reception-title{font-size:30px;font-weight:400;margin:14px 0}.reception-sub{font:11px Montserrat,Arial,sans-serif}.demo-notice{font-size:17px;line-height:1.35;margin:22px 0;background:#d8dbcc55;padding:12px;border-radius:7px}.scan-status{background:#d8dbcc66;border-radius:8px;font:12px Montserrat,Arial,sans-serif;padding:16px;margin:24px 0}.guest-result{text-align:left}.guest-result>.eyebrow{margin-bottom:16px}.guest-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #636b4d22}.guest-row strong{display:block;font-size:22px;font-weight:500;line-height:1.2}.guest-row span,.guest-row small{display:block;font:11px Montserrat,Arial,sans-serif;margin-top:8px}.guest-row span{color:var(--olive)}.check-in{font:10px Montserrat,Arial,sans-serif;background:var(--olive);color:var(--paper);border:0;border-radius:20px;padding:11px 14px;cursor:pointer}.check-in:disabled{background:#d8dbcc;color:var(--ink);cursor:default}.assigned-table{padding:24px 0}.assigned-table>span{font:10px Montserrat,Arial,sans-serif}.assigned-table strong{display:block;font-size:38px;margin:10px 0}.assigned-table p{font-size:18px}.map-room{border:1px solid var(--fendi);padding:20px;border-radius:10px;margin-top:20px}.map-stage{background:#d8dbcc66;border:1px solid #636b4d22;padding:16px;font:10px Montserrat,Arial,sans-serif;border-radius:5px}.map-tables{display:grid;grid-template-columns:repeat(4,1fr);gap:20px 12px;margin:28px 0}.map-table{aspect-ratio:1;border:1px solid #636b4d55;border-radius:50%;display:grid;place-items:center;font:12px Montserrat,Arial,sans-serif;background:#fff7}.map-table.assigned{background:var(--olive);color:var(--paper);outline:2px solid var(--gold);outline-offset:4px}.map-entry{font:10px Montserrat,Arial,sans-serif}.map-caption{font-size:16px;line-height:1.4;margin-top:14px}#reset-reception{margin-top:25px;border:0;background:none;text-decoration:underline;color:var(--olive);font:11px Montserrat,Arial,sans-serif;cursor:pointer}

.reception-search{text-align:left;margin:24px 0 18px}.reception-search label{display:block;font:12px Montserrat,Arial,sans-serif;margin-bottom:10px}.reception-search input{width:100%;border:1px solid #636b4d55;background:#fff8;border-radius:8px;padding:14px 12px;color:var(--ink);font:14px Montserrat,Arial,sans-serif}.reception-search input:focus-visible{outline:2px solid var(--olive);outline-offset:2px}#search-help{font-size:16px;line-height:1.35;margin-top:10px}#search-summary{font:11px Montserrat,Arial,sans-serif;margin:14px 0}.name-result{display:block;width:100%;text-align:left;padding:15px 14px;border:1px solid #636b4d33;border-radius:8px;margin:9px 0;background:#d8dbcc33;color:var(--ink);cursor:pointer}.name-result strong{display:block;font:500 20px 'EB Garamond',Georgia,serif}.name-result span{display:block;font:10px Montserrat,Arial,sans-serif;margin-top:8px;line-height:1.5}.name-result:hover{background:#d8dbcc66}.reception-or{font-size:18px;font-style:italic;margin:16px 0}

#music-controls{position:fixed;right:max(16px,calc((100vw - 600px)/2 + 16px));bottom:18px;z-index:15;display:flex;align-items:center;gap:9px;max-width:250px}body:not(.opened) #music-controls{visibility:hidden}#toggle-music{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;border:1px solid #636b4d55;border-radius:50%;background:#f8f6f1ee;box-shadow:0 2px 8px #454c3714;color:var(--olive);cursor:pointer}#toggle-music svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}#music-status{font:10px Montserrat,Arial,sans-serif;background:#f8f6f1ee;border-radius:4px;line-height:1.4}#music-status:empty{display:none}
/* Only the lower row uses terracotta. */
.action-grid>:nth-child(n+4) .action-circle{background:#f77e2d18;border-color:#f77e2d44}
.action-grid>:nth-child(n+4) .action-circle svg{stroke:var(--orange)}
.action-grid>:nth-child(n+4):hover .action-circle{background:#f77e2d30}
.action-grid>:nth-child(n+4) .action-circle img{filter:brightness(0) saturate(100%) invert(57%) sepia(90%) saturate(1774%) hue-rotate(343deg) brightness(102%) contrast(94%)}

/* Legible labels and accessible terracotta strokes. */
.action-grid{column-gap:12px;row-gap:32px}
.action-grid a,.action-grid button{font-size:12px;line-height:1.45;letter-spacing:.01em;min-width:0;color:var(--ink)}
.action-grid>:nth-child(n+4) .action-circle svg{stroke:#b55321}
.action-grid>:nth-child(n+4) .action-circle img{filter:none}

@media(max-width:360px){.action-grid{column-gap:8px}}
@media(max-width:360px){.action-grid{grid-template-columns:1fr 1fr 1.15fr}}

/* Three utility actions above a centered pair of terracotta gift actions. */
.action-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.action-grid>*{grid-column:span 2}
.action-grid>[data-link="presentes"]{grid-column:2 / span 2}
.action-grid>#copy-pix{grid-column:4 / span 2}
