
:root{--bar-bg:#23483c;--bar-ink:#f4ebd9;--dock-color:#862d3d}body{background:#f5f0e5;color:#28493d;font-family:'DM Sans',sans-serif}h1,h2,h3{font-family:'Playfair Display',serif;font-weight:400}h2{font-size:clamp(35px,4.8vw,60px);line-height:1.17}h2 em{color:#8e3540}p{line-height:1.85}.christmas-hero{display:grid;grid-template-columns:1fr 1fr;min-height:780px;max-width:1500px;margin:auto;padding:50px 6vw 65px;gap:45px;align-items:center}.hero-letter{text-align:center;padding:20px 0}.tiny-star{font-size:45px;color:#b68a43}.hero-letter .eyebrow{margin:20px 0 32px;font-size:9px}.hero-letter h1{font-size:clamp(65px,7vw,103px);line-height:1.06;letter-spacing:-.05em}.hero-letter h1 em{color:#932f42;font-family:'Great Vibes',cursive;font-size:1.2em;font-style:normal;letter-spacing:0;font-weight:400}.hero-note{font-size:15px;margin:24px 0}.hero-date{display:flex;justify-content:center;align-items:center;gap:20px;margin:20px 0 30px}.hero-date span{font-size:9px;letter-spacing:.14em;border-block:1px solid #c8b991;padding:10px 0}.hero-date strong{font:55px 'Playfair Display',serif}.action{border-color:#a8926670;background:#294d3e;color:#fff9ea;border-radius:2px}.village{height:660px;position:relative;overflow:hidden;border-radius:48% 48% 5px 5px;border:1px solid #c6b38b;box-shadow:10px 12px 0 #e8dfce}.village>img{height:100%;width:100%;object-fit:cover}.village>span{position:absolute;bottom:25px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:.3em;background:#f4eaded9;padding:10px}.snow{position:absolute;inset:0;overflow:hidden;pointer-events:none}.snow i{position:absolute;top:-20px;left:var(--x);width:5px;height:5px;border-radius:50%;background:white;opacity:.8;animation:snowfall var(--duration) var(--delay) linear infinite}@keyframes snowfall{to{transform:translate(25px,720px)}}.letter-section{text-align:center;padding:80px 24px 90px;background:#eee6d7;border-block:1px solid #d8c9ab}.letter-section h2{margin:20px 0 40px}.envelope{position:relative;display:block;margin:auto;width:min(380px,90%);height:220px;border:1px solid #beab86;background:linear-gradient(32deg,#daceb5 49.7%,transparent 50%) left/50% 100% no-repeat,linear-gradient(-32deg,#e3d8c1 49.7%,transparent 50%) right/50% 100% no-repeat,#eaddc3;box-shadow:0 20px 35px #59412518;perspective:800px}.envelope-flap{position:absolute;inset:0;background:#f0e5ce;clip-path:polygon(0 0,100% 0,50% 65%);transform-origin:top;transition:transform .8s}.envelope[aria-expanded=true] .envelope-flap{transform:rotateX(170deg)}.wax{position:absolute;top:40%;left:calc(50% - 27px);border-radius:50%;width:54px;height:54px;display:grid;place-items:center;background:#913c47;color:#e8c2a6;border:4px double #b76966;font-family:'Great Vibes',cursive;font-size:29px;box-shadow:2px 4px 6px #48232735;transition:transform .6s,opacity .6s}.envelope[aria-expanded=true] .wax{opacity:0;transform:translateY(-70px)}.envelope-label{position:absolute;bottom:24px;left:0;right:0;font-size:9px;letter-spacing:.15em;text-transform:uppercase}.personal-letter{max-width:520px;margin:35px auto 0;padding:40px;background:#fcf8ef;border:1px solid #d4c49e;box-shadow:4px 5px 0 #e4dac5;animation:letter-in .7s ease}.personal-letter .script{font-size:40px;color:#8b3640}.personal-letter p{margin:20px 0;font-size:14px}.personal-letter strong{font-size:11px;letter-spacing:.12em}@keyframes letter-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.christmas-table{max-width:1250px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:100px 7vw;align-items:center}.table-heading h2{margin:22px 0}.table-heading .script{font-size:41px;color:#9b753a}.menu{text-align:center;background:#faf7ef;outline:1px solid #c5b58f;outline-offset:-12px;padding:42px 25px;border:1px solid #c5b58f}.menu-star{font-size:40px;color:#b29254}.menu>div{margin:27px 0}.menu time{color:#9b753a;font-size:11px;letter-spacing:.15em}.menu h3{font-size:23px;margin:9px 0}.menu p:not(.eyebrow){font-size:12px;color:#737866}.text-button{border:0;border-bottom:1px solid #c5b58f;background:transparent;font-size:10px;padding:12px 0}.gift-section{text-align:center;padding:80px 24px;background:#294d3e;color:#f6ebd5;position:relative}.gift-section h2{margin:20px auto 35px;max-width:600px}.gift-section h2 em{color:#dac598}.gift{position:relative;width:150px;height:135px;background:linear-gradient(90deg,transparent 43%,#ccac6b 43%,#ccac6b 57%,transparent 57%),#8f3341;border:0;display:block;margin:65px auto 22px;box-shadow:8px 12px 0 #0c2f262e}.gift-lid{position:absolute;top:-8px;left:-9px;right:-9px;height:29px;background:linear-gradient(90deg,transparent 44%,#ddc284 44%,#ddc284 56%,transparent 56%),#a74350;box-shadow:0 5px 5px #58232c4d;transition:transform .8s}.gift-bow{position:absolute;top:-64px;left:37px;font:82px Georgia,serif;color:#ddc284;transition:transform .8s}.gift-tag{position:absolute;right:4px;top:43px;padding:7px;background:#f4e8cf;color:#763441;font:19px 'Great Vibes',cursive;transform:rotate(12deg)}.gift[aria-expanded=true] .gift-lid,.gift[aria-expanded=true] .gift-bow{transform:translateY(-32px) rotate(-12deg)}.gift-section>p{font-size:10px;letter-spacing:.13em}#gift-note{max-width:450px;margin:28px auto 0;animation:letter-in .7s ease}#gift-note h3{font-size:27px;color:#e6cd94}#gift-note p{font-size:14px;margin-top:14px}.christmas-count{text-align:center;padding:70px 20px;border-bottom:1px solid #d8c9ab}.christmas-count .countdown{font-family:'Playfair Display',serif;margin-top:30px;color:#913747}.christmas-rsvp{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:100px 6vw;max-width:1400px;margin:auto}.christmas-rsvp h2{font-size:clamp(34px,3.6vw,49px);margin:22px 0}.christmas-rsvp p{font-size:13px;margin-bottom:25px}.christmas-rsvp .rsvp-note{font-size:10px;margin-top:15px}.dress-note{border-top:1px solid #c9b991;padding-top:23px;margin-top:30px}.rsvp-card{background:#eee6d7;padding:40px;border-top:3px solid #933344}.invitation-footer{background:#e9e0cf;color:#57634f}.rsvp-card .rsvp-note{margin-bottom:0}@media(max-width:700px){.christmas-hero{grid-template-columns:1fr;padding:35px 25px 45px;gap:35px}.hero-letter{padding:0}.hero-letter h1{font-size:73px}.hero-letter .eyebrow{margin:12px 0 24px}.hero-note{margin:18px 0}.village{height:460px;margin:0 9px}.tiny-star{font-size:30px}.letter-section{padding:65px 23px}.envelope{height:190px}.personal-letter{padding:28px}.christmas-table{grid-template-columns:1fr;padding:65px 25px;gap:35px}.table-heading{text-align:center}.christmas-rsvp{grid-template-columns:1fr;padding:65px 25px;gap:30px}.rsvp-card{padding:30px 23px}.christmas-count .countdown{gap:25px}.gift-section{padding:65px 23px}.christmas-rsvp h2{font-size:37px}}
