:root{--paper:#f7f2e9;--taupe:#87766d;--ink:#74665f;--line:#a6958a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#ede9e3;color:var(--ink);font-family:"Cormorant Garamond",serif;font-size:18px;line-height:1.55}body.locked{overflow:hidden}button,input,textarea,a{font:inherit}.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}.paper{position:relative;background-color:var(--paper);background-image:radial-gradient(#8d7b6d12 .7px,transparent .8px),linear-gradient(105deg,#fff8 0,#f3ece766 46%,#fff5 100%);background-size:5px 5px,100% 100%;overflow:hidden}main,footer{width:min(100%,920px);margin:auto;box-shadow:0 0 40px #55494016}.opening{position:fixed;inset:0;z-index:50;display:grid;place-items:center;overflow:hidden;background-color:#f7f2e9;background-image:radial-gradient(#8d7b6d14 .7px,transparent .8px);background-size:5px 5px;color:var(--ink);transition:opacity .8s,visibility .8s}.opening.opened{opacity:0;visibility:hidden}.opening-glow{position:absolute;inset:8%;border:1px solid #aa9b8e55}.opening-glow:before,.opening-glow:after{content:"";position:absolute;width:140px;height:1px;background:#aa9b8e88;top:20px}.opening-glow:before{left:-35px;rotate:-35deg}.opening-glow:after{right:-35px;rotate:35deg}.envelope-wrap{position:relative;text-align:center;padding:24px;width:min(92vw,520px)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.82rem;font-weight:600;margin:0 0 20px;color:var(--ink)}.eyebrow.light{color:#f5ece2}.envelope{position:relative;width:230px;height:150px;margin:28px auto 42px;filter:drop-shadow(0 22px 20px #51463b35)}.envelope-back,.envelope-front{position:absolute;inset:0;border-radius:3px;background:#e9dfcf}.envelope-back:before{content:"";position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 62%);background:#d5c6b4}.envelope-front{clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);background:linear-gradient(135deg,#e5d8c5,#f7efe3)}.letter{position:absolute;z-index:1;left:18px;right:18px;top:-18px;height:112px;background:#fffaf0;color:var(--taupe);display:flex;align-items:center;justify-content:center;gap:8px;font-family:Italiana,serif;font-size:1.5rem;transition:transform .6s}.letter i{font-size:2.4rem}.envelope:hover .letter{transform:translateY(-12px)}.seal{position:absolute;z-index:4;left:50%;top:60%;translate:-50% -50%;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#b8a079;color:#fffaf0;font-family:Italiana;box-shadow:0 3px 8px #7f633c55}.opening h1{font-size:clamp(2.3rem,8vw,4rem);font-weight:400;font-style:italic;margin:0;line-height:1}.opening h1 i{font-weight:400;color:#a79078}.opening-date{letter-spacing:.22em;font-size:.85rem}.open-button{margin-top:18px;border:1px solid var(--taupe);background:var(--taupe);color:white;padding:11px 22px;min-width:170px;display:inline-flex;justify-content:space-between;gap:30px;cursor:pointer}.envelope-wrap small{display:block;margin-top:12px;opacity:.65}.botanical{position:absolute;width:380px;z-index:1;pointer-events:none;opacity:.42;mix-blend-mode:multiply}.botanical-left{left:-170px;bottom:-110px;rotate:-12deg}.botanical-right{right:-170px;bottom:-70px;rotate:20deg}.hero{min-height:100svh;display:grid;place-items:start center;padding:46px 24px 80px}.hero-copy{position:relative;z-index:2;text-align:center;width:min(100%,650px)}.hero h2{margin:5px 0 50px;display:flex;justify-content:center;gap:.25em;flex-wrap:wrap;font-size:clamp(2.8rem,7vw,5rem);font-weight:400;font-style:italic;line-height:1}.hero h2 i{color:#a79078;font-weight:400}.polaroid{position:relative;width:min(88%,480px);margin:auto;background:#fff;padding:16px 16px 45px;rotate:-4deg;box-shadow:0 18px 36px #57483c35}.polaroid>img{width:100%;height:500px;display:block;object-fit:cover;object-position:center 65%}.polaroid small{position:absolute;bottom:12px;left:0;right:0;letter-spacing:.1em}.tape{position:absolute;z-index:2;left:50%;top:-25px;translate:-50%;width:145px;height:50px;background:#d9c7a5aa;rotate:2deg;box-shadow:0 1px 3px #5f4b3520}.scroll-cue{display:grid;place-items:center;margin:55px auto 0;width:42px;height:42px;border:1px solid var(--taupe);border-radius:50%;text-decoration:none;color:var(--ink);font-size:1.5rem;animation:bob 1.7s infinite}.section{position:relative;padding:90px max(24px,calc((100% - 720px)/2));text-align:center}.paper-card{position:relative;z-index:2;background:#fbf6eddd;padding:55px clamp(24px,6vw,60px);border-radius:14px;box-shadow:0 10px 24px #5b4a3a22;border:1px solid #fff9}.families{display:grid;grid-template-columns:1fr 1px 1fr;gap:25px;align-items:center;margin:25px 0 50px}.families strong{display:block;font-size:.83rem;text-transform:uppercase;letter-spacing:.12em}.families p{margin:.6em 0}.divider{height:70px;background:#c7bbb0}.couple-names{display:grid;gap:20px;margin:0;font-size:clamp(2.2rem,6vw,4rem);font-weight:400}.couple-names i{font-size:2.2rem}.gallery{padding-top:70px}.photo-grid{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:240px 240px 200px;gap:10px}.photo-grid img{width:100%;height:100%;object-fit:cover;border-radius:12px}.photo-grid img:first-child{grid-row:1/3}.photo-grid img:nth-child(4){grid-column:1}.photo-more{position:relative;grid-column:2;background:linear-gradient(#3c332d88,#3c332dcc),url("wedding-hero.png") center/cover;border-radius:12px;color:white;display:grid;place-content:center}.photo-more b{font-size:2rem}.photo-more span{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}.muted{font-size:.8rem;opacity:.65}.event-card h2{text-transform:uppercase;font-size:1.7rem;font-weight:400;margin:15px 0 30px}.date-banner{display:flex;justify-content:center;align-items:center;gap:22px;text-transform:uppercase}.date-banner span{font-size:.9rem}.date-banner b{font-size:3rem;font-weight:400;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 22px}.year{font-size:1.5rem;letter-spacing:.15em}.calendar{max-width:390px;margin:32px auto 22px;padding:18px;background:var(--taupe);border-radius:10px;color:white}.calendar h3{font-size:1.4rem;font-weight:400;font-style:italic;margin:0 0 12px}.week,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.week{font-size:.7rem;border-bottom:1px solid #ffffff99;padding-bottom:10px;margin-bottom:10px}.days span,.days b,.days i{display:grid;place-items:center;min-height:28px;font-size:.8rem;font-style:normal}.days b{background:#f4eee5;color:var(--ink);border-radius:50%;width:28px;justify-self:center}.text-link{color:var(--ink);text-underline-offset:4px}.event-leaf{bottom:280px}.venue{position:relative;z-index:2;margin-top:60px}.venue h3{font-size:1.7rem;margin:.3em}.venue iframe{display:block;width:100%;height:340px;border:0;border-radius:14px;margin:22px 0;filter:saturate(.72) sepia(.12)}.outline-button{display:inline-block;color:var(--ink);border-bottom:1px solid var(--line);text-decoration:none;padding:7px 0}.taupe{background:var(--taupe);color:white}.count-grid{display:grid;grid-template-columns:repeat(4,1fr)}.count-grid div{border-right:1px solid #ffffff40}.count-grid div:last-child{border:0}.count-grid b{display:block;font-size:clamp(2.2rem,6vw,4.5rem);font-weight:400}.count-grid span{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.wish .paper-card{padding-bottom:35px}.wish form{display:grid;gap:16px;max-width:520px;margin:35px auto}input,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:9px;background:#ffffff44;padding:13px 16px;color:var(--ink);font-size:1rem}textarea{height:125px;resize:vertical}.dark-button{justify-self:end;border:0;border-radius:999px;background:var(--taupe);color:white;padding:11px 38px;text-transform:uppercase;font-weight:600;cursor:pointer}.wishes{display:grid;gap:10px;text-align:left}.wish-item{background:#fff9;padding:13px 16px;border-left:3px solid #ac987e}.wish-item p{margin:2px 0}.gift{padding-top:55px}.gift-box{border:0;background:transparent;cursor:pointer;color:var(--ink)}.gift-box span{display:block;font-size:8rem;filter:sepia(.6) saturate(.55);transition:.25s}.gift-box:hover span{transform:translateY(-6px) rotate(-3deg)}.gift-box small{display:block}.gift-panel{margin:30px auto 0;background:#fffaf2;color:var(--ink);max-width:420px;padding:28px;border-radius:12px;box-shadow:0 10px 24px #5b4a3a22}.qr-placeholder{width:180px;height:180px;margin:auto;background:repeating-conic-gradient(#75665e 0 25%,#fff 0 50%) 50%/22px 22px;border:14px solid white;outline:1px solid #ddd;display:grid;place-items:center}.qr-placeholder span{background:white;padding:8px;font-weight:700}.qr-placeholder small{position:absolute;translate:0 118px}.gift-panel p{margin-top:45px}footer{background:var(--paper);color:var(--ink);padding:55px 20px;text-align:center;display:grid;gap:10px;background-image:radial-gradient(#8d7b6d12 .7px,transparent .8px);background-size:5px 5px}footer span{max-width:560px;margin:auto}footer b{font-family:Italiana;font-size:2rem}footer small{text-transform:uppercase;letter-spacing:.2em}.reveal{opacity:0;transform:translateY(22px);transition:.8s ease}.reveal.visible{opacity:1;transform:none}@keyframes bob{50%{transform:translateY(6px)}}@media(max-width:700px){body{font-size:16px}.section{padding:65px 20px}.hero{padding-top:38px}.hero h2{display:grid;margin-bottom:45px}.polaroid>img{height:450px}.botanical{width:290px}.botanical-left{left:-145px}.botanical-right{right:-150px}.families{gap:14px}.paper-card{padding:40px 20px}.photo-grid{grid-template-rows:190px 190px 150px}.event-card{padding-left:18px;padding-right:18px}.date-banner{gap:10px}.date-banner b{padding:0 12px}.venue iframe{height:280px}.count-grid{grid-template-columns:repeat(2,1fr);gap:24px 0}.count-grid div:nth-child(2){border:0}.gift-box span{font-size:6rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
