@font-face{font-family:Cormorant;src:url('../fonts/cormorant.ttf') format('truetype');font-weight:400 700;font-display:swap}@font-face{font-family:Cormorant;src:url('../fonts/cormorant-italic.ttf') format('truetype');font-style:italic;font-weight:400 700;font-display:swap}@font-face{font-family:Montserrat;src:url('../fonts/montserrat.ttf') format('truetype');font-weight:300 600;font-display:swap}
:root{--ivory:#f3ecdf;--ink:#3e422e;--gold:#81653d;--olive:#26381e;--serif:Cormorant,'Palatino Linotype',Georgia,serif;--sans:Montserrat,Arial,sans-serif;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--serif);font-size:1.35rem;line-height:1.4;-webkit-font-smoothing:antialiased}body.locked{overflow:hidden}a{color:inherit}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #93703d;outline-offset:5px}h1,h2,h3,p{margin:0 0 1.3rem}h1,h2,h3{font-weight:500}h1{font-size:clamp(3rem,7vw,4.5rem);letter-spacing:.06em;line-height:1.08;text-transform:uppercase}h1 em{font-size:.58em;font-style:normal}.hero h1:focus,.hero h1:focus-visible{outline:none;box-shadow:none}h2{font-size:clamp(1.7rem,5.6vw,2.35rem);line-height:1.23;letter-spacing:.08em;text-transform:uppercase}h3{font-size:1.65rem}p{line-height:1.45}.scene{position:relative;isolation:isolate;min-height:850px;min-height:max(850px,100svh);display:grid;place-items:center;overflow:hidden;border-bottom:1px solid #cec0a32e}.scene:before{content:'';position:absolute;inset:-18px;background-image:var(--art);background-position:center;background-size:cover;filter:blur(18px);opacity:.28;z-index:-2}.scene-art{position:absolute;inset:0;margin:auto;width:min(100%,560px);height:100%;object-fit:cover;z-index:-1}.copy{position:relative;width:min(72%,455px);text-align:center;padding:3rem 0;z-index:1}.reveal{transition:opacity 1s,transform 1s}.motion-ready .reveal{opacity:0;transform:translateY(22px)}.motion-ready .reveal.show{opacity:1;transform:none}.eyebrow{font-size:1.1rem;line-height:1.55;letter-spacing:.15em;text-transform:uppercase}.monogram{color:var(--gold);font-size:4.2rem;line-height:.95;margin-bottom:2.5rem}.monogram{position:relative;display:flex;justify-content:center;align-items:flex-start;width:max-content;height:1.3em;margin-left:auto;margin-right:auto}.monogram .initial{display:inline-block;font-size:1em;font-style:normal;line-height:1;margin:0}.monogram .initial.second{margin-left:-.24em;transform:translateY(.15em)}.monogram .connector{position:absolute;bottom:-.04em;left:50%;transform:translateX(-50%);display:block;font-size:.36em;font-style:italic;line-height:1;margin:0}.ornament{color:var(--gold);font-size:1.9rem;line-height:1;margin:1.8rem 0}.date-small{font-size:1.12rem;letter-spacing:.13em}.scroll-cue{display:inline-block;font: .77rem var(--sans);text-decoration:none;letter-spacing:.05em;padding:1rem;margin-top:1rem}.script{font-family:var(--serif);font-style:italic;font-size:clamp(2.6rem,8vw,3.6rem);color:var(--gold);text-transform:none;letter-spacing:0;font-weight:400}.huge{font-size:clamp(7rem,23vw,11rem);line-height:1.05;color:var(--gold);font-weight:400;margin:1rem 0}.month{font-size:2rem;letter-spacing:.1em;text-transform:uppercase}.year{font-size:1.7rem;letter-spacing:.13em}.countdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem 1.1rem;margin:2.5rem auto 1rem;width:100%;max-width:340px}.countdown strong{font-size:4rem;font-weight:400;line-height:1;display:block;color:var(--gold);font-variant-numeric:tabular-nums}.countdown span{display:block;margin-top:.5rem;font-size:.94rem;text-transform:uppercase;letter-spacing:.12em}.parents{min-height:1000px}.parents h2{font-size:1.9rem}.parents h3.script{font-size:2.4rem;margin-bottom:.7rem}.parents .ornament{font-size:1.15rem;margin:1.4rem 0}.sponsors .copy{padding-bottom:12rem}.rule{height:1px;background:var(--gold);width:70px;margin:2.5rem auto}.program h2{margin:1.5rem 0}.program-line{height:100px;width:1px;background:linear-gradient(transparent,var(--gold));margin:0 auto 1.5rem}.time{font-size:1.9rem;letter-spacing:.08em;margin-bottom:.5rem}.event{font-size:1.7rem;text-transform:uppercase;letter-spacing:.07em}.button{display:inline-flex;align-items:center;justify-content:center;background:#f9f4e8;color:var(--olive);border:1px solid #b49a70;border-radius:4px;min-height:50px;padding:1rem 1.45rem;text-decoration:none;font:500 .83rem/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;box-shadow:0 5px 18px #38280b12;transition:background .2s,transform .2s;margin-top:1rem;max-width:100%;text-align:center}.button:hover{background:#fffaf0;transform:translateY(-2px)}.button.dark{background:var(--olive);color:#f8f1e1;border-color:var(--olive)}.button.dark:hover{background:#3c512d}.rsvp-scene .copy{padding-bottom:13rem}.photos{min-height:1050px}.photos .copy{width:min(76%,440px);padding-bottom:7rem}.photos p{font-size:1.16rem}.polaroid{display:block;text-decoration:none;width:min(100%,265px);padding:18px 18px 12px;background:#faf6ed;box-shadow:0 6px 20px #291c162e;transform:rotate(-3deg);margin:2.2rem auto .7rem}.polaroid img{display:block;width:100%;height:auto;aspect-ratio:1;background:#fff}.polaroid span{display:block;font-size:.75rem;letter-spacing:.055em;line-height:1.6;text-transform:uppercase;margin-top:10px}.challenges{min-height:1000px}.challenge-cards{display:grid;gap:1.1rem;margin-top:2rem}.challenge-cards a{display:flex;gap:1rem;align-items:center;text-align:left;padding:1rem 1.2rem;background:#f7f0e3c7;box-shadow:0 3px 8px #36271114;text-decoration:none;border:1px solid #cab99a8c;font-size:1.2rem;line-height:1.2}.challenge-cards a:hover{background:#fff8eb}.challenge-cards span{font-size:2rem;color:var(--gold);width:40px;flex:none}.thanks .copy{padding-bottom:12rem}.seal-static{width:150px;height:150px;display:grid;place-items:center;margin:0 auto 3rem;background:radial-gradient(circle at 30% 20%,#ba9b66,#957340 65%,#786039);border:5px double #cab28a;border-radius:50%;color:#f6e9cf;font-size:3rem;font-style:italic;box-shadow:0 5px 10px #4234183d}.opening{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#efe5d4;overflow:hidden;transition:opacity .5s 1s}.gate{position:absolute;top:0;bottom:0;width:50%;background-image:url('../img/opening.webp');background-repeat:no-repeat;background-size:200% 100%;transition:transform 1.4s cubic-bezier(.65,0,.25,1)}.gate-left{left:0;background-position:left center;transform-origin:left}.gate-right{right:0;background-position:right center;transform-origin:right}.seal{position:relative;width:95px;height:95px;border-radius:50%;border:4px double #d6bb85;color:#eee1c0;background:radial-gradient(circle at 30% 20%,#b89963,#846437);font:italic 2rem var(--serif);box-shadow:0 4px 18px #35250640;transition:transform .7s,opacity .5s;margin-top:0}.seal:hover{transform:scale(1.05)}.open-label{position:absolute;bottom:max(3rem,7svh);left:20%;right:20%;text-align:center;text-transform:uppercase;letter-spacing:.13em;font-size:1rem;color:#4f462e;background:#f9f1e2c9;padding:.8rem;box-shadow:0 3px 20px #f4eadb8c}.opening.is-open{pointer-events:none;opacity:0}.is-open .gate-left{transform:translateX(-100%) rotateY(-12deg)}.is-open .gate-right{transform:translateX(100%) rotateY(12deg)}.is-open .seal,.is-open .open-label{opacity:0;transform:scale(.7)}.skip-link{position:fixed;left:12px;top:-90px;z-index:120;background:var(--ivory);padding:1rem}.skip-link:focus{top:12px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
/* Álbum */
.album-page{font-size:1.2rem;background:#f4eee2}.album-header{position:relative;text-align:center;padding:2rem 1.5rem 3rem;background:linear-gradient(#f7f0e7c9,#f7f0e7ef),url('../img/floral-card.webp') center 25%/cover}.album-header .monogram{font-size:2.8rem;margin:2rem auto 1.5rem}.album-header .monogram .connector{font-size:.36em}.album-header h1{font-size:clamp(2.1rem,6vw,3.5rem);text-transform:none;letter-spacing:0}.back{font:.82rem var(--sans);text-underline-offset:4px}.album-main{max-width:1080px;margin:auto;padding:2rem 1.2rem 4rem}.upload-panel{background:#fffcf5;padding:clamp(1.2rem,4vw,2.5rem);border:1px solid #d8c9ae;margin-bottom:3rem}.upload-panel h2,.gallery-panel h2{text-transform:none;letter-spacing:0;font-size:2rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin:1.5rem 0}label{display:block;font:.9rem/1.4 var(--sans)}label span{font-size:.8rem;color:#6b705c}input,select{width:100%;display:block;padding:.8rem;background:#fffdf8;border:1px solid #bdaf94;border-radius:3px;font:.95rem var(--sans);color:var(--ink);margin:.4rem 0 0;min-height:48px}.file-picker{padding:1.6rem;border:1px dashed #9c8b67;text-align:center;background:#f5efe2;cursor:pointer}.file-picker:has(+input:focus-visible){outline:3px solid #93703d;outline-offset:4px}.file-picker span{display:block;color:var(--olive);font-size:1rem;font-weight:500}.file-picker small{font-size:.78rem;margin-top:.5rem;display:block}.selection-status,#upload-status,#gallery-status{font: .88rem/1.7 var(--sans);margin:1rem 0}.selected-previews{display:flex;flex-wrap:wrap;gap:10px}.selected-previews img{width:80px;height:80px;object-fit:cover;border-radius:3px}.gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;font:.85rem var(--sans);padding:12px;color:var(--olive)}.filter-label{max-width:350px;margin-bottom:1.5rem}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.photo-tile{background:#fffaf1;border:1px solid #d7c9b1;padding:10px;text-align:left;color:var(--ink)}.photo-tile img{width:100%;height:260px;display:block;object-fit:cover}.photo-tile span{display:block;font:.75rem/1.6 var(--sans);padding:.8rem .25rem .2rem;overflow-wrap:anywhere}.photo-dialog{border:0;padding:3rem 1.2rem 1.2rem;background:#faf4e7;color:var(--ink);max-width:94vw;max-height:94svh;text-align:center;box-shadow:0 20px 80px #0006}.photo-dialog::backdrop{background:#18200ed9}.photo-dialog img{display:block;max-height:65svh;max-width:100%;width:auto;margin:auto;object-fit:contain}.dialog-close{position:absolute;top:.15rem;right:.7rem;border:0;background:none;font-size:2rem;color:var(--olive);width:44px;height:44px}.photo-dialog p{font: .9rem var(--sans);margin:1rem}.album-footer{text-align:center;padding:2rem;font-style:italic;border-top:1px solid #d6c8ad}
@media(min-width:900px){.opening{background:linear-gradient(#eee4d2b3,#eee4d2b3),url('../img/opening.webp') center/cover}.gate{width:330px;left:calc(50% - 330px)}.gate-right{left:50%}.gate{background-size:660px 100%}.copy{width:370px}}
@media(max-width:600px){body{font-size:1.22rem}.scene{min-height:max(780px,100svh)}.copy{width:76%}.parents{min-height:920px}.parents .copy{width:79%}.parents h2{font-size:1.7rem}.parents h3.script{font-size:2.15rem}.parents p{font-size:1.18rem}.photos{min-height:970px}.challenges{min-height:950px}.photos .copy{width:77%}.countdown strong{font-size:3.5rem}.form-row{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.photo-tile img{height:180px}.album-header p{font-size:1.1rem}}
@media(max-width:359px){.copy{width:80%}.countdown strong{font-size:3rem}.parents{min-height:980px}.gallery{grid-template-columns:1fr}.photo-tile img{height:auto}.button{padding:.9rem 1rem;font-size:.77rem}.photos{min-height:1020px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}}

.detail .signature{font-size:1.15rem;font-style:italic;color:var(--gold);letter-spacing:.14em;margin-top:1.6rem}
