:root{--ink:#34332b;--soft:#6c6254;--gold:#a98b58;--line:#cbb68b;--ivory:#faf7f0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:radial-gradient(circle at 50% 24%,#fffdf8 0%,#f4eee3 76%,#eee5d7 100%);font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;min-height:100vh}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #886a35;outline-offset:4px}.experience{max-width:1160px;margin:auto;padding:32px 18px 60px;text-align:center}.eyebrow,.page-overline,.section-title,.blessing,.surnames,.photo-caption{font-family:Georgia,serif;letter-spacing:.19em;font-size:11px;color:#716651}.eyebrow{margin:0 0 23px}.paper{background:linear-gradient(145deg,#fffdf8 0%,#faf7f0 48%,#f1ecdf 100%);box-shadow:inset 1px 1px 1px #fff,0 16px 35px #4339212e;position:relative;isolation:isolate}.paper:before{content:"";position:absolute;inset:12px;border:1px solid #c4a970;box-shadow:inset 0 0 0 5px #faf7f0,inset 0 0 0 6px #d9cbae,0 0 0 3px #fffaf1;pointer-events:none;z-index:2}.cover{max-width:470px;margin:auto}.cover-card{display:block;border:0;width:100%;min-height:615px;padding:44px 32px 34px;color:var(--ink);overflow:hidden;transition:transform .65s ease,box-shadow .65s ease}.cover-card:hover{transform:translateY(-3px);box-shadow:0 24px 45px #4339213b}.cover-inner{position:relative;z-index:3;display:flex;align-items:center;flex-direction:column}.flower{position:absolute;z-index:2;pointer-events:none;background:url('assets/flores-marfil.png') left top/contain no-repeat;filter:drop-shadow(2px 4px 3px #7f6c4f45)}.flower-tl{top:0;left:0;width:56%;aspect-ratio:1}.flower-br{bottom:0;right:0;width:47%;aspect-ratio:1;transform:rotate(180deg)}.cover .flower-tl{width:52%}.cover .flower-br{width:38%}.medallion{display:grid;place-items:center;width:130px;height:105px;border-radius:50%;border:1px solid #b49b6d;box-shadow:0 0 0 5px #faf7ee,0 0 0 6px #d0ba8f,inset 2px 3px 8px #89704b40,0 9px 20px #81705035;background:radial-gradient(ellipse at 35% 25%,#fff,#f1eadc);margin:8px 0 26px;font:43px Georgia,serif;color:#7d663e}.medallion span span{font-size:24px;color:var(--gold);font-style:italic}.cover-card:hover .medallion{animation:glow 1.1s ease}.blessing{margin:0 0 20px;letter-spacing:.16em}.cover-names{font:clamp(31px,8vw,43px)/1.04 'Parisienne','Cormorant Garamond',cursive;max-width:100%;color:#34372b;text-shadow:0 1px 0 white}.name-amp{font-size:32px;color:var(--gold);line-height:.7}.ornamental-rule{display:flex;align-items:center;gap:11px;color:var(--gold);font-size:13px;margin:24px 0 15px}.ornamental-rule:before,.ornamental-rule:after{content:"";height:1px;width:57px;background:linear-gradient(to right,transparent,var(--line))}.ornamental-rule:after{transform:rotate(180deg)}.marry{font-size:28px;font-weight:600;margin-bottom:16px}.cover-date{font-size:24px;letter-spacing:.18em;font-weight:600}.cover-note{font-size:20px;line-height:1.12;margin-top:18px}.open-prompt{border:1px solid #b69b69;background:#f8f1e5;color:#40372c;width:100%;padding:15px 22px;margin-top:15px;font-size:19px;font-weight:700;box-shadow:0 6px 18px #75684d1e}.open-prompt span{color:var(--gold);margin-left:10px}.open-prompt:hover,.actions button:hover{background:#eee2cb}.sound-control{position:fixed;z-index:20;right:14px;top:14px;border:1px solid var(--line);border-radius:30px;background:#faf7f0e9;color:#514834;padding:8px 14px;font-size:16px;box-shadow:0 5px 17px #30251a21}.sound-control[aria-pressed="true"]{background:#e8dac0}.opened{animation:appear .7s ease both}.book{display:grid;grid-template-columns:1fr 1fr;max-width:1100px;margin:auto;filter:drop-shadow(0 17px 20px #4f423126)}.page{padding:43px 35px 30px;min-height:745px;overflow:hidden}.page:before{inset:12px}.photo-page{border-right:1px solid #d4c39f}.photo-page:after{content:"";position:absolute;right:0;top:0;bottom:0;width:15px;background:linear-gradient(90deg,transparent,#6e5b3b24);pointer-events:none}.words-page:after{content:"";position:absolute;left:0;top:0;bottom:0;width:15px;background:linear-gradient(270deg,transparent,#6e5b3b1f);pointer-events:none}.page>*:not(.flower){position:relative;z-index:3}.page-overline{margin:10px 0 20px}.hero-photo{margin:0 auto;width:min(72%,310px);height:363px;padding:7px;background:#fff;border:1px solid #d4c39f;box-shadow:0 8px 22px #372b1f2a;transform:rotate(-1deg)}.hero-photo img,.photo-details img{width:100%;height:100%;object-fit:cover}.hero-photo img{object-position:center 47%}.photo-details{display:flex;align-items:center;justify-content:center;gap:25px;margin:19px auto 0}.photo-details figure{margin:0;position:relative;max-width:155px}.photo-details figure:first-child{width:42%;height:166px}.photo-details figure:last-child{width:32%;height:148px;transform:rotate(3deg);padding:5px;background:#fff;box-shadow:0 5px 14px #45382830}.photo-details figure:first-child img{border:5px solid #fff;box-shadow:0 5px 14px #45382830;object-position:center 8%}.photo-details figcaption{position:absolute;left:-66px;bottom:-33px;width:210px;font:italic 18px/1.05 'Cormorant Garamond',serif;color:#665a49}.photo-caption{margin:56px 0 0}.photo-caption span{color:var(--gold);padding:0 6px}.words-inner{max-width:425px;margin:auto}.words-page .page-overline{margin-top:24px}.words-page h1{font:clamp(43px,4.2vw,64px)/1 'Parisienne','Cormorant Garamond',cursive;font-weight:400;margin:23px 0 5px;white-space:nowrap}.words-page h1 span{color:var(--gold);font-size:.72em}.surnames{font-size:10px;margin:4px 0 0;letter-spacing:.2em}.words-page .ornamental-rule{justify-content:center;margin:18px 0}.message{font-size:19px;line-height:1.15;margin:0 0 12px}.ceremony{border-block:1px solid #c8b68c;margin:21px auto 16px;padding:17px 0 13px;max-width:345px}.section-title{font-size:11px;margin:0 0 7px}.event-date{font-size:28px;font-weight:600;line-height:1.03;margin:0 0 6px}.event-time{font-size:25px;margin:0 0 7px;font-weight:600}.event-place{font-size:22px;line-height:1.02;font-weight:600;margin:0}blockquote{font-size:22px;font-style:italic;margin:10px 0 13px}cite{display:block;font:10px Georgia,serif;letter-spacing:.15em;color:#70614a;margin:6px 0 0}.rsvp{font-size:18px;line-height:1.14;margin:0}.actions{max-width:1100px;margin:15px auto 0;display:flex;gap:10px;justify-content:center}.actions button{padding:12px 22px;border:1px solid #bba376;background:#faf7f0;color:#3d382e;min-height:48px;font-size:18px}.actions button span{color:var(--gold);margin-left:10px}.actions button:last-child{background:transparent}.dialog-content{padding:35px 35px 42px;max-width:600px}.dialog-content:before{inset:9px}.dialog-content>*{position:relative;z-index:3}dialog{border:0;padding:0;max-height:min(88vh,850px);max-width:min(92vw,650px);box-shadow:0 25px 70px #17140f69}dialog::backdrop{background:#27231bd1;backdrop-filter:blur(3px)}.dialog-close{position:absolute;top:15px;right:20px;z-index:4!important;border:0;background:#eee3d1;border-radius:50%;font-size:29px;width:37px;height:37px;line-height:28px}.dialog-content h2{font-size:34px;font-weight:600;line-height:1.02;margin:9px 0 20px}.dialog-content ol{text-align:left;margin:0;padding:0;list-style:none;counter-reset:rules}.dialog-content li{counter-increment:rules;display:grid;grid-template-columns:30px 1fr;column-gap:8px;padding:8px 0;border-top:1px solid #d7c8ab;font-size:17px;line-height:1.13}.dialog-content li:before{content:counter(rules,decimal-leading-zero);grid-row:span 2;color:#a58752;font-size:16px;font-weight:700}.dialog-content li strong{font-weight:700}.dialog-content li span{grid-column:2}.cover.leaving .cover-card{animation:openBook .7s ease-in both;transform-origin:left center}@keyframes openBook{50%{transform:perspective(1000px) rotateY(-38deg) scale(.96);opacity:.8}100%{transform:perspective(1000px) rotateY(-80deg) scale(.94);opacity:0}}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes glow{50%{box-shadow:0 0 0 5px #faf7ee,0 0 0 6px #c5a76c,inset 0 0 20px #e1c383,0 0 20px #dcc792}}@media(max-width:720px){.experience{padding:52px 13px 38px}.eyebrow{margin:0 0 18px;font-size:10px}.cover{max-width:460px}.cover-card{min-height:570px;padding:34px 24px 27px}.cover .flower-tl{width:51%}.cover .flower-br{width:40%}.cover-names{font-size:clamp(29px,9vw,43px)}.blessing{font-size:9px}.medallion{width:111px;height:92px;margin:6px 0 24px;font-size:38px}.marry{font-size:27px}.cover-date{font-size:23px}.cover-note{font-size:19px}.book{display:block;max-width:490px;filter:none}.page{min-height:0;padding:35px 31px}.photo-page{border:0;margin-bottom:14px}.photo-page:after,.words-page:after{display:none}.hero-photo{width:min(75%,290px);height:340px}.photo-details{gap:17px}.photo-caption{margin:54px 0 2px}.words-page{padding:35px 27px 40px}.words-page h1{font-size:clamp(42px,10vw,57px);white-space:normal;margin-top:20px}.message{font-size:21px;line-height:1.21;margin-bottom:16px}.ceremony{margin:23px auto 18px}.event-date{font-size:29px}.event-time{font-size:27px}.event-place{font-size:24px}blockquote{font-size:24px}.rsvp{font-size:20px;line-height:1.2}.actions{max-width:490px;flex-wrap:wrap}.actions button{flex:1 1 180px}.sound-control{top:8px;right:8px;font-size:14px;padding:6px 11px}}@media(max-width:375px){.cover-card{min-height:555px}.cover-names{font-size:29px}.cover-date{font-size:20px}.page{padding-inline:26px}.hero-photo{height:310px}.photo-details figure:first-child{height:140px}.photo-details figure:last-child{height:132px}.photo-details figcaption{left:-36px;font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
