@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/font-01.ttf)format("truetype")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/font-02.ttf)format("truetype")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/font-03.ttf)format("truetype")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/font-04.ttf)format("truetype")}@font-face{font-family:Cormorant Infant;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/font-05.ttf)format("truetype")}@font-face{font-family:Cormorant Infant;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/font-06.ttf)format("truetype")}@font-face{font-family:Cormorant Infant;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/font-07.ttf)format("truetype")}@font-face{font-family:Crimson Text;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/font-08.ttf)format("truetype")}@font-face{font-family:Crimson Text;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/font-09.ttf)format("truetype")}@font-face{font-family:Imperial Script;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/font-10.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/font-11.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/font-12.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/font-13.ttf)format("truetype")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/font-14.ttf)format("truetype")}:root{--ink:#3d3328;--rose:#8f3f47;--rose-soft:#c9888c;--rose-deep:#662b31;--paper:#fff8ef;--cream:#f9ead7;--blush:#f4d6cf;--brown:#6b431f;--gold:#b88943;--gold-soft:#ead1a3;--maroon:#5c252b;--white:snow;--shadow:0 18px 42px #5b2f232e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:radial-gradient(circle at 18% 0,#ead1a361,#0000 28%),radial-gradient(circle at 82% 24%,#c9888c52,#0000 30%),linear-gradient(120deg,#241a16,#5c252b 48%,#d8b979);margin:0;font-family:Poppins,Arial,sans-serif}body.scroll-locked{height:100vh;overflow:hidden}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.invitation{background:linear-gradient(#fff8efeb,#f9ead7f2),url(/assets/images/blossom-ornamen-fixed.webp) 50%/cover;max-width:430px;min-height:100vh;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 55px #00000061}.invitation:before,.invitation:after{content:"";z-index:0;pointer-events:none;width:min(430px,100%);height:54px;position:fixed;left:50%;transform:translate(-50%)}.invitation:before{background:linear-gradient(#fff8efeb,#0000);top:0}.invitation:after{background:linear-gradient(#0000,#fff8efeb);bottom:0}h1,h2,h3,p{margin-top:0}h1,.hero-panel h2,.section-title h2,.closing h2{font-family:Imperial Script,cursive;font-weight:400}h1{color:var(--white);text-shadow:0 4px 18px #00000073;margin:8px 0 24px;font-size:72px;line-height:.9}h2{color:var(--maroon);margin:0;font-size:52px;line-height:.95}h3{color:var(--maroon);margin:14px 0 6px;font-family:Cormorant Garamond,serif;font-size:27px;line-height:1.05}p{font-size:14px;line-height:1.75}a{color:inherit}.section{text-align:center;z-index:1;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:72px 24px 92px;animation:.85s both sectionFade;animation-timeline:view();animation-range:entry cover 26%;display:flex;position:relative}.button{background:linear-gradient(180deg, #c69a5e, var(--gold) 48%, #805627);color:var(--white);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:1px solid #fffaf05c;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:11px 21px;font-family:Cormorant Garamond,serif;font-size:14px;font-weight:600;text-decoration:none;transition:transform .22s,box-shadow .22s,filter .22s;display:inline-flex;box-shadow:0 12px 22px #80562747}.button:hover{filter:brightness(1.04);transform:translateY(-2px);box-shadow:0 16px 26px #80562757}.button:active{transform:translateY(0)scale(.98)}.button.light{color:var(--maroon);background:#fff8eff2;border-color:#ead1a3c2;box-shadow:0 12px 24px #0000003d}.cover{z-index:50;background:#160e0b;max-width:430px;margin:auto;transition:transform 1s,opacity .9s;position:fixed;inset:0;overflow:hidden}.cover-open{opacity:0;pointer-events:none;transform:translateY(-100%)}.cover-img,.cover-shade,.cover-content{position:absolute;inset:0}.cover-img{object-fit:cover;object-position:center center;filter:saturate(.98)contrast(1.04);width:100%;height:100%;animation:12s ease-in-out infinite alternate slowZoom;transform:scale(1.02)}.cover-shade{background:linear-gradient(#0f060333,#0f06030a 34%,#160805bd),radial-gradient(circle at 50% 18%,#0000 18%,#2c131147 72%),linear-gradient(90deg,#b889432e,#0000 18% 82%,#b889432e)}.cover-content{color:var(--white);text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;padding:46px 28px 54px;display:flex}.cover-content .serif{letter-spacing:.18em;text-transform:uppercase;margin:0;font-family:Cormorant Garamond,serif;font-size:22px}.guest-box{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#391c1833;border-top:1px solid #ead1a3ad;border-bottom:1px solid #ead1a3ad;width:100%;margin:0 0 18px;padding:18px 16px 19px}.guest-box span,.guest-box p{margin:0;font-size:13px;display:block}.guest-box strong{margin-top:7px;font-family:Crimson Text,serif;font-size:26px;font-weight:700;display:block}.hero{background:var(--maroon);justify-content:flex-end;padding-top:34px}.hero:before,.hero:after{content:"";z-index:1;background:linear-gradient(#1608050a,#160805ad),linear-gradient(90deg,#b8894329,#0000 22% 78%,#b8894329);position:absolute;inset:0}.hero:after{background:linear-gradient(transparent, var(--paper));height:38%;inset:auto 0 0}.hero-photo{object-fit:cover;object-position:center top;width:100%;height:100%;transition:transform .7s,filter .7s;position:absolute;inset:0}.is-scrolled .hero-photo{filter:saturate(.96)contrast(1.04);transform:scale(1.035)}.hero-panel{z-index:2;width:100%;color:var(--white);text-shadow:0 3px 18px #00000073;padding:0 8px 34px;position:relative}.hero-panel p{letter-spacing:.2em;text-transform:uppercase;margin-bottom:8px;font-family:Cormorant Garamond,serif;font-size:18px}.hero-panel h2{color:var(--white);font-size:66px}.hero-panel h2 span{margin:2px 0;font-family:Cormorant Garamond,serif;font-size:20px;line-height:1;display:block}.hero-panel strong{color:var(--gold-soft);letter-spacing:.16em;margin-top:12px;font-family:Cormorant Garamond,serif;font-size:23px;display:block}.section-title{width:100%;margin:18px 0;position:relative}.section-title:before,.section-title:after{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);width:72px;height:1px;margin:0 auto;display:block}.section-title:before{margin-bottom:10px}.section-title:after{margin-top:10px}.section-title span{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;margin-bottom:5px;font-size:12px;font-weight:700;display:block}.portrait-photo,.wide-photo{object-fit:cover;outline-offset:-14px;width:100%;box-shadow:var(--shadow);border:8px solid #fffaf0e6;outline:1px solid #b8894375;transition:transform .35s,box-shadow .35s}.portrait-photo:hover,.wide-photo:hover{transform:translateY(-4px);box-shadow:0 24px 48px #5b2f233d}.portrait-photo{border-radius:50% 50% 10px 10px;max-width:292px;height:430px}.portrait-photo.tall{object-position:center top;height:460px}.wide-photo{border-radius:6px;height:235px}.verse small{color:var(--brown);font-family:Cormorant Garamond,serif;font-size:17px;font-weight:700}.profiles{background:linear-gradient(#fff8efdb,#f9ead7f0),url(/assets/images/blossom-ornamen-1.webp) top/92% no-repeat;overflow:hidden}.flower{opacity:.38;pointer-events:none;width:190px;position:absolute}.flower-left{top:-40px;left:-58px}.intro{max-width:350px;margin-bottom:24px}.profile{background:linear-gradient(#fffaf0e6,#f9ead7d1);border:1px solid #b889436b;border-radius:8px;width:100%;margin:4px 0 24px;padding:0 0 26px;transition:transform .35s,box-shadow .35s;overflow:hidden;box-shadow:0 14px 36px #5b2f2324}.profile:hover{transform:translateY(-5px);box-shadow:0 20px 42px #5b2f2333}.profile img{object-fit:cover;object-position:center top;width:100%;height:420px;transition:transform .7s;display:block}.profile:hover img{transform:scale(1.025)}.profile p{margin-bottom:14px;padding:0 24px}.profile a{color:var(--maroon);align-items:center;gap:7px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.and-mark{color:var(--gold);margin:-2px 0 22px;font-family:Imperial Script,cursive;font-size:50px}.save-date{background:linear-gradient(#fff8efd1,#f9ead7f0),url(/assets/images/blossom-ornamen-fixed.webp) 50%/cover;gap:12px}.countdown{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;width:100%;margin:12px 0 20px;display:grid}.count-box{background:#fffaf0eb;border:1px solid #b8894357;border-radius:6px;min-height:76px;padding:10px 5px;transition:transform .25s,background .25s;box-shadow:0 8px 18px #3a433114}.count-box:hover{background:#fffafafa;transform:translateY(-3px)}.count-box b{color:var(--maroon);font-family:Cormorant Garamond,serif;font-size:28px;line-height:1.1;display:block}.count-box span{color:var(--gold);text-transform:capitalize;font-size:11px;font-weight:700;display:block}.events{gap:18px;width:100%;display:grid}.event-card{width:100%;box-shadow:var(--shadow);background:linear-gradient(#fffaf0f0,#f9ead7e6);border:1px solid #b8894370;border-radius:8px;padding:30px 22px 28px;transition:transform .35s,box-shadow .35s;position:relative;overflow:hidden}.event-card:hover{transform:translateY(-5px);box-shadow:0 24px 46px #5b2f233b}.event-ornament{opacity:.8;width:calc(100% + 30px);max-width:none;margin:-22px -15px 2px}.event-line{justify-content:center;align-items:center;gap:8px;margin:8px 0;font-size:14px;display:flex}.event-card h4{color:var(--gold);letter-spacing:.24em;text-transform:uppercase;margin:18px 0 6px;font-size:12px}.compact{background:linear-gradient(#fff8efc7,#f9ead7f0),url(/assets/images/blossom-ornamen-1.webp) 50%/88% no-repeat;min-height:58vh}.swatches{gap:12px;margin-top:8px;display:flex}.swatches span{border:3px solid var(--paper);border-radius:50%;outline:1px solid #b8894373;width:42px;height:42px;box-shadow:0 9px 20px #272d2033}.story article{border-left:3px solid var(--gold);text-align:left;background:#fffaf0d1;border-radius:0 8px 8px 0;width:100%;margin-top:12px;padding:18px 18px 14px}.story article h3{font-size:22px}.story article p{margin-bottom:0}.gallery-section{min-height:auto}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense;gap:8px;width:100%;display:grid}.gallery img{object-fit:cover;border:3px solid #fffaf0d6;border-radius:5px;width:100%;height:180px;transition:transform .4s,box-shadow .4s,filter .4s;box-shadow:0 9px 24px #5b2f2329}.gallery img:hover{filter:saturate(1.04);transform:scale(1.025);box-shadow:0 15px 30px #5b2f233d}.gallery img:nth-child(5),.gallery img:nth-child(10){grid-column:1/-1;height:190px}.gift-section p{max-width:350px}.bank-card,.address-card{background:#fffaf0eb;border:1px solid #b889436b;border-radius:8px;width:100%;margin-top:14px;padding:20px;transition:transform .32s,box-shadow .32s;box-shadow:0 14px 30px #3a43311f}.bank-card:hover,.address-card:hover{transform:translateY(-4px);box-shadow:0 22px 42px #5b2f2333}.bank-card img{object-fit:contain;max-width:142px;height:52px;margin-bottom:8px}.bank-card span,.bank-card strong{display:block}.bank-card strong{color:var(--maroon);margin:7px 0 13px;font-family:Cormorant Garamond,serif;font-size:28px}.bank-card button,.address-card button{background:var(--maroon);color:var(--white);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:9px 16px;font-size:12px;font-weight:700;transition:transform .2s,filter .2s;display:inline-flex}.bank-card button:hover,.address-card button:hover{filter:brightness(1.08);transform:translateY(-1px)}.address-card h3{margin-top:0}.rsvp{min-height:88vh}.rsvp-stats{grid-template-columns:repeat(3,1fr);gap:7px;width:100%;margin:4px 0 18px;display:grid}.rsvp-stats span{min-height:48px;color:var(--white);border-radius:6px;justify-content:center;align-items:center;padding:8px 6px;font-size:11px;font-weight:700;display:flex}.rsvp-stats span:first-child{background:#3d9a62}.rsvp-stats span:nth-child(2){background:#d90a11}.rsvp-stats span:nth-child(3){background:#d7a916}.rsvp input,.rsvp textarea,.rsvp select{width:100%;color:var(--ink);background:#fffaf0e6;border:1px solid #b889436b;border-radius:6px;outline:none;margin-bottom:10px;padding:12px 13px;transition:border-color .2s,box-shadow .2s,background .2s}.rsvp input:focus,.rsvp textarea:focus,.rsvp select:focus{border-color:var(--gold);background:#fff;box-shadow:0 0 0 4px #b889432e}.rsvp textarea{resize:vertical;min-height:118px}.closing{padding-bottom:120px}.closing h2{margin:4px 0 8px;font-size:58px}.closing strong{color:var(--gold);font-family:Cormorant Garamond,serif;font-size:20px}.site-credit{z-index:2;text-align:center;margin-top:-78px;padding:0 24px 118px;position:relative}.site-credit a{min-height:38px;color:var(--maroon);letter-spacing:.04em;background:#fffaf0db;border:1px solid #b8894370;border-radius:999px;justify-content:center;align-items:center;padding:9px 16px;font-size:12px;font-weight:600;text-decoration:none;transition:transform .22s,box-shadow .22s,background .22s;display:inline-flex;box-shadow:0 12px 28px #5b2f2329}.site-credit a:hover{background:#fffaf0f5;transform:translateY(-2px);box-shadow:0 16px 32px #5b2f2338}.music{z-index:30;background:var(--maroon);width:44px;height:44px;color:var(--white);cursor:pointer;border:0;border-radius:50%;place-items:center;transition:transform .25s,box-shadow .25s;display:grid;position:fixed;bottom:86px;right:calc(50% - 202px);box-shadow:0 12px 24px #0000003d}.music:hover{transform:translateY(-3px)rotate(8deg);box-shadow:0 16px 28px #00000040}.bottom-nav{z-index:29;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffaf0f2;border:1px solid #b889436b;border-radius:8px;grid-template-columns:repeat(5,1fr);gap:6px;width:min(398px,100% - 28px);padding:9px 10px;transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .55s;display:grid;position:fixed;bottom:14px;left:50%;transform:translate(-50%)translateY(115%);box-shadow:0 15px 35px #272d2033}.bottom-nav.show{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.bottom-nav a{min-width:0;color:var(--maroon);flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:700;text-decoration:none;transition:transform .2s,color .2s;display:flex}.bottom-nav a:hover{color:var(--gold);transform:translateY(-2px)}@keyframes slowZoom{0%{transform:scale(1.02)}to{transform:scale(1.08)}}@keyframes sectionFade{0%{opacity:.01;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.section{animation:none}}@media (max-width:440px){.invitation,.cover{max-width:100%}.music{right:18px}}
