:root{--ivory:#f5f1e9;--paper:#fbf8f2;--gold:#ad8d55;--oldgold:#987541;--ink:#25211d;--black:#171715;--muted:#766e64;--hairline:rgba(155,125,80,.35);--serif:'Cormorant Garamond','Baskerville','Times New Roman',Georgia,serif;--sans:'DM Sans','Arial',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}body.locked{overflow:hidden;height:100dvh}a{color:inherit}img{max-width:100%;display:block}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}::selection{background:#d0b786;color:#201b18}.invitation{width:100%;max-width:100vw;overflow:hidden}.eyebrow,.intro-eyebrow,.intro-overline,.intro-bottom,.hero-topline,.hero-date,.hero-scroll,.family-label,.venue-number,.detail-eyebrow,.rsvp-form label,.site-footer,.photo-caption,.closing-content small,.letter-small,.letter-date{font-family:var(--sans);font-weight:500;letter-spacing:.22em;font-size:10px;line-height:1.65}.eyebrow{color:var(--oldgold);text-transform:uppercase}.eyebrow.light{color:#e1c99d}.paper-section{position:relative;background:var(--paper);text-align:center;padding:100px 22px}.display-title{font-family:var(--serif);font-weight:400;font-size:clamp(48px,7vw,82px);line-height:.99;letter-spacing:-.025em;margin:18px auto 24px}.display-title i{font-weight:300}.section-copy{font-family:var(--serif);font-size:clamp(22px,2.4vw,27px);font-weight:400;line-height:1.4;max-width:610px;margin:22px auto 0;color:#5e5146}
/* Full-bleed introductory stationery */
.intro{position:fixed;inset:0;z-index:400;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;padding:calc(env(safe-area-inset-top) + 24px) 25px calc(env(safe-area-inset-bottom) + 24px);background:radial-gradient(ellipse at 48% 43%,#fffdf7 0%,#f0e9dd 58%,#e5d9c7 100%);color:#4a3a2d;isolation:isolate;transition:opacity 1s ease,visibility 1s}.intro:before{content:'';position:absolute;inset:12px;border:1px solid rgba(152,117,65,.24);pointer-events:none}.intro:after{content:'';position:absolute;width:85vmax;height:85vmax;inset:auto auto -56vmax -24vmax;background:radial-gradient(ellipse,rgba(199,177,139,.18),transparent 68%);pointer-events:none}.intro.is-gone{opacity:0;visibility:hidden;pointer-events:none}.intro-head{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:8px;z-index:2}.intro-eyebrow{color:#806b4e;font-size:9px;letter-spacing:.28em}.intro-diamond{color:var(--gold);font-size:18px}.intro-center{min-height:0;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;z-index:2;padding-top:14px}.intro-overline{color:#89745c;font-size:10px;letter-spacing:.28em;margin:0 0 11px}.envelope-stage{position:relative;width:min(94vw,480px);height:clamp(245px,43vh,390px);display:flex;align-items:center;justify-content:center;perspective:1000px}.envelope{width:min(82vw,430px);aspect-ratio:1.50;position:relative;transform:translateY(14px);filter:drop-shadow(0 23px 28px rgba(76,51,26,.19));transform-style:preserve-3d;transition:transform 1.3s cubic-bezier(.22,.73,.2,1),filter .9s;will-change:transform}.env-back{position:absolute;inset:0;border:1px solid #ddcfbb;border-radius:3px;background:linear-gradient(145deg,#efe3ce 2%,#e3d2b6 43%,#d8c5a8 100%);box-shadow:inset 0 0 45px #fff3e5b8}.env-letter{position:absolute;width:84%;height:92%;left:8%;top:-9%;background:linear-gradient(145deg,#fffdf9,#f8f2e8);z-index:2;border:1px solid #dfcfaf;box-shadow:0 9px 16px #5d482533;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;transition:transform 1.25s cubic-bezier(.22,.71,.29,1),opacity .75s;transform:translateY(17%);will-change:transform}.env-letter:after{position:absolute;content:'';inset:10px;border:1px solid #d3b88977;pointer-events:none}.letter-ornament{font-size:20px;color:#b79a68}.letter-small{font-size:8px;color:#947953;letter-spacing:.23em}.letter-names{font-family:var(--serif);font-size:clamp(24px,4.7vw,40px);color:#32281e;font-weight:500;line-height:1;display:flex;gap:6px;flex-wrap:wrap;justify-content:center;align-items:center}.letter-names i{font-size:.9em;color:var(--gold)}.letter-date{color:#8e744e;font-size:9px}.env-left,.env-right,.env-bottom{position:absolute;inset:0;z-index:3;pointer-events:none}.env-left{clip-path:polygon(0 0,53% 51%,0 100%);background:linear-gradient(100deg,#e8d8bf,#f5e8d5 90%)}.env-right{clip-path:polygon(100% 0,47% 51%,100% 100%);background:linear-gradient(270deg,#dec8aa,#f2e2ca 95%)}.env-bottom{clip-path:polygon(0 100%,50% 37%,100% 100%);background:linear-gradient(0deg,#ead9c0,#f8ecda 98%);z-index:4}.env-flap{position:absolute;inset:0;z-index:6;clip-path:polygon(0 0,100% 0,50% 58%);background:linear-gradient(158deg,#f6e8d3 10%,#e4ceb0 85%);transform-origin:50% 0;backface-visibility:visible;filter:drop-shadow(0 2px 2px rgba(90,63,30,.12));transition:transform 1.05s cubic-bezier(.2,.72,.17,1),z-index 0s linear 0.6s}.env-flap:before{content:'';position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 58%);border-top:1px solid #fff9ea}.wax-seal{position:absolute;left:50%;top:53%;z-index:8;width:73px;height:73px;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:48% 52% 49% 51%;background:radial-gradient(circle at 35% 27%,#e2ca8f 0%,#b2945b 32%,#987338 67%,#6e522a 100%);box-shadow:0 4px 2px #795a3599,0 7px 12px #795a3570,inset 0 0 0 3px #f5dfa9a0,inset 0 0 0 7px #8d6937bb;transition:transform .65s,opacity .65s}.wax-seal:before{content:'';inset:7px;position:absolute;border:1px solid #f5e1aa95;border-radius:50%}.wax-seal:after{content:'';inset:12px;position:absolute;border:1px dotted #f3dbab66;border-radius:50%}.wax-seal>span{font-family:var(--serif);font-size:28px;font-weight:600;color:#fff2cf;text-shadow:0 1px 2px #6f532e,0 -1px 0 #fff6df80}.wax-amp{font-family:var(--serif);font-size:14px;font-style:italic;padding:0 1px}.intro.is-opening .wax-seal{opacity:0;transform:translate(-50%,-67%) scale(.58)}.intro.is-opening .env-flap{transform:rotateX(180deg);z-index:1}.intro.is-opening .env-letter{transform:translateY(-66%);transition-delay:.45s}.intro.is-opening .envelope{transform:translateY(70px) scale(.92);filter:drop-shadow(0 24px 20px rgba(56,41,26,.09))}.intro-open{position:relative;border:1px solid #937348;background:var(--gold);color:#fffaf1;padding:15px 29px;min-height:50px;font-size:10px;letter-spacing:.2em;font-weight:600;box-shadow:0 8px 16px #947f6026;transition:background .25s,transform .25s}.intro-open:hover{background:#876c42;transform:translateY(-2px)}.intro-open span{font-size:15px;vertical-align:-1px;padding-left:14px}.intro-open:disabled{opacity:.55}.intro-hint{font-family:var(--serif);font-size:16px;font-style:italic;color:#a38c6d;margin:10px 0 0}.intro-bottom{z-index:2;position:relative;display:flex;justify-content:space-between;gap:15px;color:#9c886e;font-size:8px;letter-spacing:.2em}.sample-mark{position:fixed;top:calc(95px + env(safe-area-inset-top));right:calc(18px + env(safe-area-inset-right));z-index:600;color:#fff;letter-spacing:.26em;font-family:var(--sans);font-size:9px;background:#1e1a16a8;border:1px solid #ffffff66;padding:7px 12px;pointer-events:none;box-shadow:0 1px 10px #0003}.sample-mark[hidden]{display:none}.music-button{position:fixed;right:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);display:flex;align-items:center;gap:9px;padding:12px 14px;background:#f7f0e8ed;color:#59452f;border:1px solid #c5ad8699;box-shadow:0 8px 35px #0002;backdrop-filter:blur(10px);z-index:150;font-size:9px;letter-spacing:.12em;transition:opacity .35s,transform .35s}.music-button:hover{transform:translateY(-2px)}.music-button[hidden]{display:none}.music-lines{display:flex;align-items:center;justify-content:center;gap:3px;height:13px}.music-lines i{width:2px;background:var(--oldgold);height:5px;display:block}.music-button.playing .music-lines i:nth-child(1){animation:equalizer 850ms ease-in-out infinite alternate}.music-button.playing .music-lines i:nth-child(2){animation:equalizer 610ms ease-in-out 100ms infinite alternate}.music-button.playing .music-lines i:nth-child(3){animation:equalizer 730ms ease-in-out 210ms infinite alternate}@keyframes equalizer{0%{height:3px}100%{height:13px}}
/* Cinematic portrait cover */
.hero{height:100svh;min-height:640px;max-height:1100px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#281d16;color:#fffaf4}.hero-image{position:absolute;inset:0;background-image:url('assets/foto_7500.webp');background-size:cover;background-position:50% 44%;transform:scale(1.025)}.hero-shading{position:absolute;inset:0;background:linear-gradient(180deg,#120d0b70 0%,#19110a24 28%,#1b100f55 53%,#110c0aba 100%)}.hero:before,.hero:after{content:'';position:absolute;z-index:2;pointer-events:none}.hero:before{inset:16px;border:1px solid #f4dab066}.hero:after{inset:23px;border:1px solid #ffffff1c}.hero-topline{position:absolute;z-index:3;top:50px;left:max(38px,calc(50% - 580px));right:max(38px,calc(50% - 580px));display:flex;justify-content:space-between;align-items:center;gap:15px;color:#f4e5c6;font-size:9px;letter-spacing:.18em}.hero-top-crest{font-family:var(--serif);font-size:25px;font-style:italic;letter-spacing:0}.hero-content{position:relative;z-index:3;text-align:center;padding:0 22px;top:20%}.fine-line{height:47px;width:1px;background:linear-gradient(180deg,transparent,#eed6a2);margin:0 auto 20px}.fine-line.below{height:36px;margin:25px auto 0;background:linear-gradient(180deg,#eed6a2,transparent)}.hero h1,.closing-content h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:.78;display:flex;align-items:center;flex-direction:column;gap:8px;margin:12px 0 26px;text-shadow:0 2px 18px #0003}.hero h1 span{font-size:clamp(86px,12vw,170px)}.hero h1 span:nth-of-type(2){font-size:clamp(68px,10vw,135px)}.hero h1 em,.closing-content h2 i{font-weight:300;color:#e3c792;font-size:clamp(56px,7vw,96px);line-height:.75}.hero-date{display:flex;justify-content:center;gap:15px;flex-wrap:wrap;color:#f6e7ce;font-size:10px;letter-spacing:.13em}.hero-date-dot{color:#d8bb80}.hero-scroll{position:absolute;z-index:3;bottom:46px;left:50%;transform:translateX(-50%);text-decoration:none;display:flex;align-items:center;flex-direction:column;gap:5px;white-space:nowrap;font-size:8px;color:#f3dfbc}.hero-scroll span:last-child{font-size:24px;line-height:1;animation:point 1.7s ease-in-out infinite}@keyframes point{50%{transform:translateY(5px)}}
/* Editorial sections */
.opening-section{padding-top:120px;padding-bottom:100px;background:radial-gradient(ellipse at center,#fffcf8 10%,#f5eee3 95%)}.tiny-crown{font-size:25px;color:var(--gold);margin:0 0 18px}.opening-quote{font-family:var(--serif);font-size:clamp(49px,7vw,93px);line-height:1.02;font-weight:400;letter-spacing:-.035em;max-width:830px;margin:32px auto 20px}.opening-quote i{font-weight:400;color:#94794d}.gold-rule{display:flex;justify-content:center;align-items:center;gap:15px;color:var(--gold);font-size:19px;margin:34px auto 28px}.gold-rule:before,.gold-rule:after{content:'';height:1px;background:var(--hairline);width:65px}.opening-section .section-copy{max-width:550px}.countdown{margin:65px auto 0;display:flex;justify-content:center;align-items:flex-start;gap:clamp(4px,2.2vw,20px)}.countdown div{min-width:57px;display:flex;flex-direction:column;align-items:center}.countdown strong{font-family:var(--serif);font-weight:400;font-size:clamp(34px,6vw,70px);font-variant-numeric:tabular-nums;line-height:.95}.countdown small{font-size:9px;letter-spacing:.16em;color:#947e5e;margin-top:9px}.countsep{font-family:var(--serif);font-size:32px;color:#bda579;line-height:.8}.flourish-bottom{margin-top:55px;color:#a78c61;font-size:23px}.story-image-section{height:clamp(340px,68vw,680px);position:relative;overflow:hidden;background:#44362f}.story-image-section img{width:100%;height:100%;object-fit:cover;object-position:center 52%}.story-image-section:after{content:'';position:absolute;inset:0;background:linear-gradient(to top,#0008,transparent 55%)}.story-image-label{position:absolute;z-index:1;bottom:45px;left:clamp(25px,10vw,150px);color:#fff6e6;display:flex;flex-direction:column;gap:10px}.story-image-label span{font-size:10px;letter-spacing:.22em}.story-image-label strong{font-family:var(--serif);font-size:clamp(43px,7vw,85px);font-weight:400;font-style:italic}.family-section{padding-top:115px;padding-bottom:110px}.family-rule{height:1px;background:var(--hairline);width:85px;margin:42px auto}.families{display:flex;align-items:center;justify-content:center;gap:50px;max-width:840px;margin:0 auto}.family-col{flex:1;min-width:0}.family-label{color:#927856;font-size:9px}.family-col p{font-family:var(--serif);font-size:clamp(26px,3vw,37px);line-height:1.1;margin:24px 0;display:flex;flex-direction:column;gap:6px}.family-amp{color:#b18e56;font-style:italic;font-size:26px}.families-symbol{font-size:20px;color:var(--gold)}.family-signature{display:flex;flex-direction:column;gap:8px;font-family:var(--serif);font-size:clamp(20px,3vw,30px);margin:65px auto 0;color:#80694b}.family-signature span:nth-child(2){font-style:italic;color:var(--oldgold)}.date-section{background:radial-gradient(ellipse at 70% 60%,#393631,#191918 75%);position:relative;overflow:hidden;color:#f8f0e4;text-align:center;padding:92px 20px 95px}.date-texture{position:absolute;inset:0;background:repeating-linear-gradient(135deg,#fff1 0px,#fff0 1px,#fff0 7px);opacity:.08;pointer-events:none}.date-section .date-numeral{font-family:var(--serif);font-size:clamp(155px,26vw,310px);font-weight:300;line-height:.69;color:#e6c793;letter-spacing:-.07em;margin-top:65px}.date-section h2{font-family:var(--serif);font-weight:400;font-size:clamp(60px,10vw,130px);line-height:1;letter-spacing:-.055em;margin:12px 0 24px}.date-section h2 em{font-size:.46em;color:#d3bd95;vertical-align:15px;font-weight:300}.date-weekday{letter-spacing:.22em;font-size:11px;color:#ddc79d}.date-thinline{width:70px;background:#b69a6c;height:1px;margin:40px auto 30px}.date-section>p:last-child{font-family:var(--serif);font-size:27px;font-style:italic;color:#e1d1b5;margin:0}.venues-section{padding-top:115px;padding-bottom:120px}.venue-pair{max-width:950px;margin:65px auto 0;display:grid;grid-template-columns:1fr auto 1fr;gap:40px;align-items:stretch}.venue{padding:45px 22px 38px;border:1px solid var(--hairline);background:linear-gradient(160deg,#fffcf6,#f7efe4);position:relative;min-width:0}.venue:before{content:'';position:absolute;inset:9px;border:1px solid #d2b9955e;pointer-events:none}.venue-number{color:#927958;letter-spacing:.13em;font-size:9px;display:block;min-height:30px}.venue-mark{font-family:var(--serif);color:var(--gold);font-size:40px;margin:17px 0}.venue-time{font-family:var(--serif);font-size:35px;color:#9b7d4c;line-height:1;margin:0}.venue h3{font-family:var(--serif);font-size:clamp(35px,3.9vw,49px);font-weight:500;line-height:1.02;letter-spacing:-.015em;min-height:110px;margin:22px 0}.venue-address{color:#706559;font-size:12px;line-height:1.8;max-width:295px;margin:0 auto 35px;min-height:50px}.venue-midline{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:14px;color:var(--gold)}.venue-midline:before,.venue-midline:after{content:'';height:70px;width:1px;background:var(--hairline)}.text-link{font-size:10px;letter-spacing:.13em;text-underline-offset:5px;text-decoration-thickness:1px;color:#8c6b37;font-weight:700}.text-link span{font-size:15px;margin-left:7px}.interlude{height:clamp(540px,100vw,820px);background:#67291e;position:relative;overflow:hidden}.interlude img{width:100%;height:100%;object-fit:cover;object-position:center 38%}.interlude:after{content:'';position:absolute;inset:0;background:#1a0c0b55}.interlude-frame{position:absolute;inset:25px;border:1px solid #f3e9de6b;z-index:1;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;padding:29px 10px;color:#fff8e8}.interlude-frame span{font-size:9px;letter-spacing:.24em}.interlude-frame div{font-family:var(--serif);font-size:clamp(85px,14vw,190px);line-height:.7;text-shadow:0 2px 22px #0008}.interlude-frame div i{font-size:.66em;color:#ffead1}.timeline-section{padding-top:110px;padding-bottom:115px}.timeline{position:relative;max-width:560px;margin:65px auto 0;text-align:left}.timeline:before{position:absolute;content:'';height:calc(100% - 70px);width:1px;background:#b8a17f;top:32px;left:33%;opacity:.65}.timeline-entry{display:grid;grid-template-columns:32% 18px 1fr;align-items:center;gap:0;min-height:111px}.timeline-entry time{text-align:right;padding-right:31px;white-space:nowrap;font-family:var(--serif);font-size:30px;color:#937347}.timeline-entry time span{font-family:var(--sans);font-size:9px;letter-spacing:.08em}.timeline-point{width:11px;height:11px;border:1px solid #9d7d52;border-radius:50%;background:var(--paper);position:relative;left:-5px;z-index:1}.timeline-entry:first-child .timeline-point,.timeline-entry:last-child .timeline-point{background:var(--gold)}.timeline-entry p{display:flex;flex-direction:column;margin:0;padding-left:23px}.timeline-entry strong{font-family:var(--serif);font-weight:500;font-size:37px;line-height:1.1}.timeline-entry small{font-size:11px;color:#81756a;line-height:1.8}.editorial-photo{position:relative;height:clamp(310px,55vw,600px);overflow:hidden;background:#3a2719}.editorial-photo img{width:100%;height:100%;object-fit:cover;object-position:center}.photo-caption{position:absolute;bottom:0;right:0;left:0;padding:28px 20px;color:#fff9f0;background:linear-gradient(transparent,#0007);display:flex;justify-content:center;gap:15px;font-size:9px}.photo-caption span{color:#d4b989}.details-section{padding-top:115px;padding-bottom:125px}.detail-grid{max-width:900px;display:grid;grid-template-columns:1fr 1fr;gap:45px;margin:64px auto 0}.detail-block{border-top:1px solid var(--hairline);padding:33px 5px 0}.detail-symbol{font-family:var(--serif);font-size:25px;color:var(--oldgold);display:block;margin-bottom:18px}.detail-eyebrow{color:#9b7c51;font-size:9px;letter-spacing:.16em}.detail-block h3{font-family:var(--serif);font-size:clamp(39px,5vw,59px);font-weight:500;line-height:.98;margin:16px 0}.detail-block h3 i{font-weight:300;color:#9b7d51}.detail-block p{max-width:320px;margin:15px auto;font-family:var(--serif);font-size:22px;line-height:1.25;color:#67594e}.gift-section{padding:90px 20px;background:linear-gradient(120deg,#252321,#10100f 75%);color:#f8f4ee}.gift-border{border:1px solid #ad8c5c70;max-width:770px;margin:auto;text-align:center;padding:70px 30px 62px;position:relative}.gift-border:before{content:'';position:absolute;inset:10px;border:1px solid #b0915a33;pointer-events:none}.gift-border h2{font-family:var(--serif);font-size:clamp(49px,8vw,92px);font-weight:400;line-height:.94;letter-spacing:-.02em;margin:28px auto}.gift-border h2 i{color:#e0c18d;font-weight:300}.gift-border>p:not(.eyebrow){font-family:var(--serif);font-size:24px;line-height:1.3;max-width:490px;margin:20px auto 34px;color:#e0d7cc}.outline-button{padding:15px 24px;border:1px solid var(--gold);background:transparent;color:inherit;font-size:9px;letter-spacing:.17em;font-weight:700}.light-button{color:#ecd3a5}.light-button span{padding-left:10px}.outline-button:hover{background:#e7d0a615}.bank-details{border-top:1px solid #d4b48765;max-width:445px;margin:40px auto 0;text-align:left;padding-top:22px}.bank-details[hidden]{display:none}.bank-details>div{display:flex;flex-wrap:wrap;column-gap:20px;row-gap:6px;align-items:center;justify-content:space-between;border-bottom:1px solid #fff2;padding:15px 0}.bank-details small{font-size:9px;color:#d3ba8e;letter-spacing:.13em;width:100%}.bank-details strong{font-size:13px;letter-spacing:.07em;font-weight:500;word-break:break-all}.copy-bank{border:1px solid #d0b98d88;background:transparent;color:#e5c998;font-size:9px;padding:8px 11px;letter-spacing:.09em}.stay-section{background:radial-gradient(ellipse at 50% 38%,#fffcf6,#f3ece2);padding-top:125px;padding-bottom:130px}.gold-mini{color:var(--gold);font-size:21px;margin-bottom:18px}.stay-section .section-copy{max-width:555px}.stay-separator{height:1px;background:var(--hairline);width:110px;margin:43px auto 35px}.stay-foot{font-size:10px;letter-spacing:.19em;color:#9b825b}.rsvp-section{padding:100px 22px 115px;background:var(--ivory);background-image:linear-gradient(45deg,transparent 49.8%,#cbb99815 50%,transparent 50.2%);background-size:23px 23px}.rsvp-inner{max-width:690px;margin:auto;text-align:center}.rsvp-section h2{font-family:var(--serif);font-size:clamp(64px,9vw,102px);font-weight:400;line-height:.94;letter-spacing:-.04em;margin:24px 0}.rsvp-section h2 i{font-weight:300;color:#9f7d4b}.rsvp-inner>p:not(.eyebrow){max-width:515px;margin:0 auto 40px;font-family:var(--serif);font-size:25px;line-height:1.33;color:#6c5b4c}.rsvp-inner>p strong{font-weight:600;color:#80643d}.rsvp-form{background:#fffdf8;border:1px solid #d8c7ab;box-shadow:0 12px 45px #6d553214;text-align:left;padding:35px 35px 22px;display:flex;flex-direction:column;gap:20px}.rsvp-form label{display:block;color:#806d55;font-size:10px;letter-spacing:.1em;font-weight:700}.rsvp-form label span{font-weight:400;letter-spacing:0;text-transform:none}.rsvp-form input,.rsvp-form select{width:100%;border:none;border-bottom:1px solid #cebda6;border-radius:0;background:transparent;color:#2b2520;font-family:var(--serif);font-size:22px;padding:11px 0;margin-top:5px;min-height:43px;outline:none;appearance:none}.rsvp-form input:focus,.rsvp-form select:focus{border-bottom-color:#9d7847}.rsvp-form input::placeholder{color:#b5a89a}.rsvp-submit{border:1px solid #9e7d50;background:#9e7d50;color:#fff9f1;min-height:54px;padding:16px 10px;margin:12px 0 0;font-size:10px;letter-spacing:.12em;font-weight:700;display:flex;justify-content:center;align-items:center;gap:9px;transition:background .25s}.rsvp-submit:hover{background:#806239}.rsvp-footnote{text-align:center;color:#a08f7d;font-size:11px;margin:0}.closing-section{height:clamp(620px,96svh,950px);position:relative;background:#251e19;color:#fffaf2;display:grid;place-items:center;overflow:hidden}.closing-section>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:46% 50%}.closing-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#14100e72,#15100cc7)}.closing-content{position:relative;z-index:1;text-align:center;padding:20px;width:100%}.closing-mark{font-family:var(--serif);font-size:34px;display:inline-block;border:1px solid #c8aa74;padding:14px 15px;color:#f3d9a6;margin-bottom:45px;letter-spacing:-.07em}.closing-mark i{font-size:22px}.closing-content h2{margin:25px 0;gap:15px}.closing-content h2 span{font-size:clamp(78px,11vw,137px)}.closing-content h2 span:last-child{font-size:clamp(64px,9vw,110px)}.closing-content>p:not(.eyebrow){font-size:11px;letter-spacing:.28em;color:#ebdfcf;margin-top:30px}.end-rule{font-size:22px;color:#e4c792;margin:30px auto}.closing-content small{color:#e1ccaa;font-size:9px}.site-footer{min-height:85px;padding:23px 25px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#1b1b1a;color:#d1c4ac;font-size:9px;letter-spacing:.15em}.site-footer span:first-child{font-family:var(--serif);letter-spacing:.1em;font-size:21px}
@media (max-width:700px){.paper-section{padding-left:22px;padding-right:22px}.intro{padding-left:21px;padding-right:21px}.intro-overline{font-size:8px}.envelope-stage{height:min(43vh,345px)}.envelope{width:min(83vw,375px)}.wax-seal{width:67px;height:67px}.wax-seal>span{font-size:26px}.hero{min-height:600px}.hero-image{background-position:49% 48%}.hero-topline{top:47px;left:39px;right:39px;font-size:7px}.hero-content{top:22%}.hero h1 span{font-size:clamp(78px,19vw,120px)}.hero h1 span:nth-of-type(2){font-size:clamp(64px,16vw,110px)}.hero h1 em{font-size:56px}.hero-date{gap:9px;font-size:9px}.hero-scroll{bottom:52px}.opening-section{padding-top:105px}.opening-quote{font-size:clamp(48px,11.4vw,72px);max-width:530px}.countdown{gap:5px}.countdown div{min-width:53px}.countdown strong{font-size:clamp(32px,9vw,53px)}.countsep{font-size:27px}.families{flex-direction:column;gap:21px}.family-col{width:100%}.family-col p{font-size:33px;margin:13px auto}.families-symbol{font-size:16px}.family-signature{margin-top:50px;font-size:24px}.venue-pair{grid-template-columns:1fr;gap:0;max-width:430px}.venue{padding:38px 24px}.venue h3{min-height:0;font-size:42px}.venue-address{min-height:0}.venue-midline{padding:22px;display:flex;flex-direction:row}.venue-midline:before,.venue-midline:after{height:1px;width:50px}.date-section .date-numeral{font-size:clamp(160px,44vw,230px)}.date-section h2{font-size:clamp(62px,14vw,95px)}.interlude{height:620px}.interlude img{object-position:center 39%}.detail-grid{grid-template-columns:1fr;gap:36px;max-width:460px}.detail-block{padding-top:28px}.gift-border{padding:60px 16px}.gift-border>p:not(.eyebrow){font-size:22px}.rsvp-form{padding:29px 23px 25px}.rsvp-section{padding-left:18px;padding-right:18px}.rsvp-section h2{font-size:clamp(60px,13vw,82px)}.closing-section{height:740px}.closing-section>img{object-position:47% 50%}.site-footer{flex-direction:column;justify-content:center;gap:3px;text-align:center}.story-image-section{height:400px}.story-image-section img{object-position:center center}}
@media (max-width:390px){.intro-overline{font-size:7px}.intro-head{padding-top:6px}.envelope-stage{height:39vh;min-height:220px}.intro-open{padding:13px 22px}.intro-bottom{font-size:7px}.hero h1 span{font-size:77px}.hero h1 span:nth-of-type(2){font-size:63px}.hero-topline span:first-child{max-width:180px}.hero-date{font-size:8px}.opening-quote{font-size:45px}.countdown div{min-width:45px}.countdown strong{font-size:33px}.countsep{font-size:24px}.venue h3{font-size:38px}.timeline-entry{grid-template-columns:31% 15px 1fr}.timeline:before{left:32%}.timeline-entry time{font-size:26px;padding-right:18px}.timeline-entry strong{font-size:33px}.timeline-entry p{padding-left:14px}.interlude{height:580px}.closing-content h2 span{font-size:78px}.closing-content h2 span:last-child{font-size:62px}}
@media (min-width:1000px){.hero-content{top:14%}.hero h1 span{font-size:clamp(90px,9.8vw,145px)}.hero h1 span:nth-of-type(2){font-size:clamp(80px,8.2vw,118px)}.hero-image{background-position:center 47%}.story-image-section img{object-position:center 42%}.closing-section>img{object-position:center 48%}}
@media (max-height:670px){.intro{padding-top:15px;padding-bottom:16px}.intro-center{padding-top:0}.envelope-stage{height:39vh;min-height:185px}.envelope{width:min(67vw,315px)}.intro-hint{font-size:13px;margin-top:6px}.intro-overline{margin:0}.intro-open{padding:12px 20px;min-height:43px}.hero{min-height:570px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}


/* INVITARTE · Portada floral editorial K&J  ·  13 noviembre 2026
   La imagen original se usa completa en escritorio, mientras la versión vertical
   ha sido recompuesta para que nunca se recorte el sobre en móviles. */
.art-intro{
  position:fixed;inset:0;display:block;padding:0;overflow:hidden;
  width:100%;height:100%;height:100dvh;min-height:0;
  background:#ece1d2;isolation:isolate;
  transition:opacity .62s ease,visibility .62s ease;
}
.art-intro::before,.art-intro::after{display:none}
.art-intro-picture{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:1}
.art-intro-image{
  width:100%;height:100%;display:block;object-fit:cover;object-position:center center;
  transition:transform 1.25s cubic-bezier(.18,.73,.3,1),opacity 1.1s ease,filter 1.1s ease;
}
.art-intro-hotspot{
  position:absolute;z-index:5;left:24%;top:22%;width:52%;height:57%;
  border:0;margin:0;padding:0;background:transparent;cursor:pointer;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
}
.art-intro-hotspot:focus-visible{outline:3px solid #a57f45;outline-offset:-7px;border-radius:12px}
.art-intro-hotspot:disabled{cursor:default}
.art-intro-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.art-intro-mobile-title,.art-intro-mobile-hint{display:none}
.art-intro-reveal{
  position:absolute;z-index:4;left:50%;top:54%;width:min(69vw,580px);
  transform:translate(-50%,-6%);opacity:0;pointer-events:none;
}
.art-intro-letter{
  width:100%;min-height:215px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:9px;padding:30px 22px;background:linear-gradient(135deg,#fffdf7,#f1e8d8);
  border:1px solid rgba(174,140,95,.5);box-shadow:0 18px 50px rgba(56,40,25,.22);
  color:#6b5231;text-align:center;
}
.art-intro-letter-mark{font-family:var(--serif);font-size:27px;color:#ac9161;line-height:1}
.art-intro-letter-eyebrow{font-size:9px;letter-spacing:.3em}
.art-intro-letter strong{font-family:var(--serif);font-size:clamp(28px,5vw,45px);font-weight:500;line-height:1.05;color:#46362a;display:flex;align-items:center;gap:9px}
.art-intro-letter strong i{font-size:.8em;color:#aa8a52;font-weight:400}
.art-intro-letter-date{font-size:10px;letter-spacing:.3em}
.art-intro.is-opening .art-intro-image{transform:scale(1.08) translateY(-1%);filter:brightness(1.08);opacity:0;transition:transform 1.1s cubic-bezier(.18,.73,.3,1),opacity .9s ease,filter .9s ease}
.art-intro.is-opening .art-intro-mobile-title,.art-intro.is-opening .art-intro-mobile-hint{opacity:0;transition:opacity .75s ease}
.art-intro.is-gone{opacity:0;visibility:hidden;pointer-events:none}
@keyframes art-intro-letter-rise{
  0%{opacity:0;transform:translate(-50%,30%) scale(.92)}
  40%{opacity:1}
  100%{opacity:1;transform:translate(-50%,-49%) scale(1)}
}
@media(max-width:700px){
  .art-intro{padding:0}
  .art-intro-image{object-position:center center}
  .art-intro-hotspot{left:2%;top:35%;width:96%;height:32%}
  .art-intro-mobile-title,.art-intro-mobile-hint{
    position:absolute;z-index:3;left:50%;transform:translateX(-50%);
    display:block;width:max-content;max-width:92%;padding:12px 15px;
    background:rgba(255,252,246,.91);color:#3e3024;
    font-family:var(--serif);font-size:clamp(12px,3.5vw,17px);font-weight:500;
    line-height:1.2;letter-spacing:.21em;text-align:center;
    box-shadow:0 2px 14px rgba(122,94,62,.06);pointer-events:none;
  }
  .art-intro-mobile-title{top:24%}
  .art-intro-mobile-hint{top:71%;font-size:clamp(11px,3.15vw,15px);letter-spacing:.19em}
  .art-intro-reveal{top:53%;width:min(84vw,420px)}
  .art-intro-letter{min-height:190px;padding:22px 13px}
  .art-intro-letter strong{font-size:clamp(28px,8vw,37px);gap:6px}
  .art-intro-letter-eyebrow{font-size:8px}
}
@media(max-height:630px) and (max-width:700px){
  .art-intro-mobile-title{top:20%}
  .art-intro-mobile-hint{top:74%}
  .art-intro-hotspot{top:31%;height:40%}
  .art-intro-reveal{top:51%}
}
@media(prefers-reduced-motion:reduce){.art-intro.is-opening .art-intro-reveal{animation:none}}


/* Ajustes finales solicitados por la clienta */
.art-intro-mobile-title,.art-intro-mobile-hint{display:none !important}
.separator-icon{display:block;width:28px;height:auto;margin:0 auto;filter:drop-shadow(0 1px 1px rgba(0,0,0,.05))}
.separator-icon.small{width:18px;display:inline-block;vertical-align:middle;margin:0}
.hero-top-crest{display:flex;align-items:center;justify-content:center}
.hero-top-crest img{display:block;width:58px;height:auto;filter:brightness(1.18) saturate(.92)}
.hero-date-dot{display:inline-flex;align-items:center;justify-content:center}
.tiny-crown,.gold-rule,.gold-mini,.end-rule,.venue-mark,.families-symbol,.venue-midline{display:flex;align-items:center;justify-content:center}
.tiny-crown{margin-bottom:18px}
.gold-rule{margin:24px auto 0}
.gold-rule .separator-icon{width:24px}
.families-symbol .separator-icon{width:22px}
.venue-mark .separator-icon{width:22px}
.venue-midline .separator-icon{width:20px}
.gold-mini .separator-icon{width:24px}
.end-rule .separator-icon{width:24px}
.story-image-label{display:flex;flex-direction:column;gap:0}
.story-image-label strong{font-family:var(--serif);font-size:clamp(34px,5vw,52px);font-weight:400;line-height:1.05}
.outline-button span,.rsvp-submit span,.hero-scroll span[aria-hidden="true"]{display:none !important}
.closing-mark{padding:12px 16px}
.closing-mark img{display:block;width:74px;height:auto;filter:brightness(1.08) saturate(.9)}
@media (max-width:700px){
  .hero-top-crest img{width:50px}
  .closing-mark img{width:66px}
  .story-image-label strong{font-size:clamp(30px,7vw,40px)}
}

/* Portada móvil reencuadrada, textos fuera del sobre y sin recuadros */
@media (max-width:700px) {
  .art-intro-mobile-title,.art-intro-mobile-hint {
    display:block!important;position:absolute;z-index:4;left:50%;transform:translateX(-50%);
    padding:0;background:none;box-shadow:none;border:0;color:#29221c;max-width:94%;
    text-align:center;white-space:nowrap;pointer-events:none;
  }
  .art-intro-mobile-title {
    top:27%;font-family:'Pinyon Script','Bodoni Moda',cursive;font-size:clamp(34px,9vw,54px);
    letter-spacing:.005em;font-weight:400;line-height:1.1;
  }
  .art-intro-mobile-hint {
    top:74%;font-family:'Cormorant Garamond',Georgia,serif;
    font-size:clamp(14px,4.2vw,19px);font-weight:500;letter-spacing:.18em;
  }
  .art-intro-hotspot {left:4%;top:37%;width:92%;height:34%;}
}
@media (max-width:700px) and (max-height:690px){
  .art-intro-mobile-title{top:24%}.art-intro-mobile-hint{top:78%}
}
