@font-face{font-family:Palace;src:url(assets/script.otf)}@font-face{font-family:Palatino;src:url(assets/serif.otf)}:root{--wine:#580e25;--deep:#310916;--gold:#d7b47d;--light:#f8ecdc;--muted:#d5bdaf}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#210810;color:var(--light);font:17px/1.65 Palatino,Georgia,serif}body.closed{overflow:hidden}button,a,input,select{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.symbols{position:absolute;width:0;height:0}.script{font:54px/1.1 Palace,cursive;color:var(--gold);margin:0 0 23px}main{max-width:540px;margin:auto;background:var(--wine);overflow:hidden;box-shadow:0 0 100px #0008}main section{text-align:center;padding:76px 38px;position:relative}main section>p:not(.script){max-width:360px;margin:20px auto}.small{font-size:12px;color:var(--muted);line-height:1.6}.tiny,.surname{font-size:12px;letter-spacing:.14em}.crown{width:69px;height:48px;fill:none;stroke:var(--gold);stroke-width:1.5}.cover{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#7a1b37,#360b1b 78%);text-align:center;transition:opacity 1s,visibility 1s;overflow:auto}.cover:before,.cover:after{content:'';position:absolute;inset:22px;border:1px solid #d7b47d55;pointer-events:none}.cover:after{inset:28px;border-color:#d7b47d22}.cover-inner{width:min(82vw,370px);padding:42px 0}.cover-name{font-size:94px;margin:16px 0 0}.surname{margin:0 0 35px}.envelope{height:205px;border:1px solid #c7a16b88;position:relative;background:linear-gradient(28deg,#4a0c20 49.6%,transparent 50%),linear-gradient(-28deg,#600e29 49.6%,transparent 50%),#6d1730;box-shadow:0 25px 50px #18040a80}.envelope:before{content:'';position:absolute;inset:0;background:#751b36;clip-path:polygon(0 0,100% 0,50% 58%);filter:drop-shadow(0 4px 5px #000)}.ribbon{position:absolute;left:0;right:0;height:17px;background:linear-gradient(#ebd9ac,#c5a270,#eedbb1);top:50%;opacity:.7}.seal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;width:68px;height:68px;background:radial-gradient(circle at 35% 25%,#edd2a1,#b78c4f);border:4px double #f4dcb0;color:#5c1730;font:42px Palace;box-shadow:0 5px 12px #0005}.seal:hover{filter:brightness(1.1)}.open-hint{font-size:13px;margin:24px 0;color:var(--muted)}.cover-date{font-size:15px;letter-spacing:.2em}.cover.opened{opacity:0;visibility:hidden;pointer-events:none}.hero{height:830px;min-height:680px;max-height:1050px;position:relative;text-align:center}.hero>img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}.hero-shade{position:absolute;inset:0;background:linear-gradient(#28071390,transparent 32%,transparent 52%,#310916ed 100%)}.hero-top{position:absolute;top:38px;left:0;right:0}.hero-top p{letter-spacing:.16em;font-size:15px;margin:0 0 10px}.hero-name{position:absolute;bottom:72px;left:20px;right:20px}.hero h1{font-weight:400;font-size:88px;letter-spacing:.11em;line-height:1;margin:0 0 12px;text-shadow:0 3px 20px #0008}.hero-name p{font-size:24px;margin:0 0 10px}.hero-name span{font-size:13px;letter-spacing:.09em;color:#efd6ac}.scroll{position:absolute;bottom:18px;left:calc(50% - 20px);width:40px;font-size:30px;text-decoration:none;color:var(--gold)}.decorated{background:radial-gradient(ellipse at top left,#8f294221,transparent 60%),var(--wine)}.flowers{position:absolute;width:155px;height:220px;pointer-events:none;color:var(--gold);opacity:.28;z-index:0}.flowers.left{top:0;left:-49px}.flowers.right{right:-40px;bottom:0;transform:rotate(180deg)}section>*:not(.flowers){position:relative;z-index:1}.ornament{font-size:34px;color:var(--gold);margin-bottom:16px}.rule{width:85px;height:1px;background:var(--gold);opacity:.55;margin:38px auto}.intro .xv{font:57px Palace;color:var(--gold);margin:24px 0 30px}.date-row{display:flex;justify-content:center;align-items:center;gap:22px;margin:20px 0 24px}.date-row span{font-size:14px;line-height:1.5;border-top:1px solid #d7b47d66;border-bottom:1px solid #d7b47d66;padding:12px 0;min-width:77px}.date-row strong{font-size:66px;font-weight:400;line-height:1}.text-link{text-decoration:none;font-size:13px;color:var(--gold);border-bottom:1px solid #d7b47d66;padding:8px 0}.count-section{background:var(--deep)!important}.count-section .script{font-size:47px}.countdown{display:flex;justify-content:center;gap:9px;margin:32px auto 0;font-variant-numeric:tabular-nums}.countdown div{width:60px}.countdown b{display:block;font-size:39px;font-weight:400;line-height:1.3;color:var(--gold)}.countdown span{font-size:10px;letter-spacing:.05em}.countdown i{font-size:28px;font-style:normal;color:var(--gold)}.month{max-width:290px;margin:45px auto 0;border:1px solid #d7b47d44;padding:24px}.month>p{font-size:20px;margin:0 0 18px;color:var(--gold)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;font-size:12px;align-items:center}.calendar-grid span{height:25px;display:grid;place-items:center}.calendar-grid .day-head{color:var(--gold);font-size:10px}.calendar-grid .chosen{border:1px solid var(--gold);border-radius:50%;background:#d7b47d26}.portrait{margin:0;padding:65px 35px 0;background:var(--wine);text-align:center}.portrait img{width:100%;display:block;border-radius:48% 48% 0 0;border:1px solid var(--gold);padding:6px;aspect-ratio:3/4;object-fit:cover}.portrait figcaption{padding:35px 0 5px;font-size:14px}.portrait .script{display:block;font-size:42px;margin-top:5px}.location h2{font-weight:400;font-size:37px;margin:20px 0 0}.location p[data-address]{margin-top:0}.event-time{margin:28px 0}.event-time span{display:block;font-size:14px}.event-time strong{font-size:31px;font-weight:400;color:var(--gold)}.button{display:inline-block;padding:13px 26px;background:var(--gold);border:1px solid var(--gold);color:#390d1b;text-decoration:none;font-size:14px;min-height:48px;transition:background .2s}.button:hover{background:#f1d1a0}.moments{display:flex;gap:18px;justify-content:center;margin-top:35px}.moments>div{display:flex;flex:1;flex-direction:column;align-items:center;font-size:12px;gap:15px}.moments svg{width:40px;height:43px;stroke:var(--gold);fill:none;stroke-width:1.5}.line-icon{font-size:37px;line-height:43px;color:var(--gold)}.dress{background:var(--deep)!important}.dress h2{font-size:26px;font-weight:400;letter-spacing:.12em;color:var(--gold)}.outfits{width:150px;height:105px;color:var(--gold);margin:15px}.rsvp{padding-top:65px}.rsvp .button{margin-top:20px}.ending{position:relative;height:710px;text-align:center}.ending>img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}.ending:after{content:'';position:absolute;inset:0;background:linear-gradient(#580e25,transparent 20%,transparent 45%,#210810 98%)}.ending-text{position:absolute;bottom:48px;left:20px;right:20px;z-index:1}.ending-text .script{font-size:70px}.ending-text p:not(.script){font-size:15px}.ending-text strong{display:block;font-size:38px;letter-spacing:.15em;font-weight:400;color:var(--gold);margin-top:27px}.ending-text>span{font-size:11px;letter-spacing:.1em}.music{position:fixed;bottom:22px;right:max(20px,calc((100vw - 500px)/2));z-index:4;border:1px solid var(--gold);border-radius:50%;width:44px;height:44px;background:#390d1be6;color:var(--gold);font-size:23px}dialog{background:var(--wine);color:var(--light);border:1px solid var(--gold);max-width:400px;width:calc(100% - 36px);padding:44px 27px 30px}dialog::backdrop{background:#16040cd9;backdrop-filter:blur(5px)}dialog .script{font-size:45px;text-align:center}dialog label{display:block;font-size:14px;margin:17px 0 8px}dialog input,dialog select{display:block;width:100%;border:1px solid #d7b47d77;background:var(--deep);color:var(--light);padding:12px;font-size:16px;border-radius:0}dialog .button{width:100%;margin-top:12px}.close{position:absolute;right:12px;top:6px;background:none;color:var(--gold);border:0;font-size:28px}@media(min-width:700px){main{margin:35px auto;border:1px solid #d7b47d55}.cover-inner{width:370px}}@media(max-width:380px){main section{padding:65px 25px}.hero{height:740px}.hero h1{font-size:70px}.script{font-size:47px}.countdown{gap:5px}.countdown b{font-size:33px}.date-row{gap:16px}.cover-name{font-size:80px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
