@font-face{font-family:Editorial;src:url('assets/editorial.ttf') format('truetype');font-display:swap}
@font-face{font-family:WeddingScript;src:url('assets/script.ttf') format('truetype');font-display:swap}
:root{--paper:#f8f3e9;--ink:#40372d;--gold:#826538;--line:#c9b691;--muted:#655c50;--deep:#5c4626}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#e8dfd0;font-family:Arial,Helvetica,sans-serif;line-height:1.6;font-size:16px}a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid var(--deep);outline-offset:5px}::selection{background:#dfcba8}h1,h2,p{margin:0}h2{font-family:Editorial,Georgia,serif;font-size:clamp(2.1rem,5vw,3.1rem);font-weight:400;line-height:1.15}img{display:block;max-width:100%;height:auto}.invitation{max-width:1080px;margin:36px auto;background:var(--paper);box-shadow:0 15px 65px #40372d18;overflow:hidden}.cover{position:relative;isolation:isolate;text-align:center;overflow:hidden}.floral-paper{position:absolute;inset:0;z-index:-2;background:url('assets/flores.jpg') center/100% 100% no-repeat;animation:paper-arrival 2s ease-out both}.arch{position:absolute;inset:38px 36px 30px;border:1px solid #90724266;border-radius:48% 48% 0 0 / 180px 180px 0 0;z-index:-1}.cover-content{position:relative;max-width:640px;margin:auto;padding:70px 40px 64px}.monogram{font-family:Editorial,Georgia,serif;font-size:2.6rem;line-height:1.1;color:var(--gold)}.monogram span{display:inline-block;font-family:Georgia,serif;font-size:.8rem;vertical-align:middle;margin:0 10px;animation:heartbeat 5s ease-in-out infinite}.eyebrow{font-size:.875rem;letter-spacing:.25em;color:var(--gold);line-height:1.6}.cover .eyebrow{margin-top:22px}.names{font-family:Editorial,Georgia,serif;font-weight:400;font-size:clamp(5.3rem,11vw,7.4rem);line-height:.94;letter-spacing:-.03em;display:grid;justify-items:center;margin:30px 0 25px}.ampersand{font-family:WeddingScript,Georgia,serif;color:var(--gold);font-size:.49em;line-height:1.3;letter-spacing:0;margin:6px 0}.intro{font-family:Editorial,Georgia,serif;font-size:1.25rem;line-height:1.45}.hairline{height:1px;background:var(--line);max-width:340px;margin:25px auto 0}.cover .event-type{margin-top:19px}.date-time{display:flex;justify-content:center;margin:22px auto 0;gap:32px}.date-time>div{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:190px;line-height:1.5}.date-time .date{border-right:1px solid var(--line);padding-right:32px}.small-label{font-size:.875rem;letter-spacing:.1em;color:var(--gold)}.date strong{font-family:Editorial,Georgia,serif;font-weight:400;font-size:3.5rem;line-height:1.1;margin:5px 0;color:var(--gold)}.date>span:last-child{font-size:.875rem;letter-spacing:.08em}.arrival strong{font-family:Editorial,Georgia,serif;font-size:3rem;font-weight:400;color:var(--gold);line-height:1.4}.arrival strong span{font-family:Arial,Helvetica,sans-serif;font-size:.9rem;letter-spacing:.08em}.arrival>span:last-child{font-size:1rem}.dress{font-size:.9375rem;color:var(--muted);margin-top:19px}.gifts{display:flex;justify-content:center;gap:24px;margin:18px auto 20px;font-size:1.75rem;line-height:1.2}.gifts span{display:inline-block;animation:gift-sway 7s ease-in-out infinite}.gifts span+span{animation-delay:-3.5s}.cover-actions{display:grid;gap:11px;max-width:360px;margin:auto}.button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:52px;text-decoration:none;border:1px solid var(--gold);border-radius:4px;padding:11px 22px;font-size:1rem;line-height:1.5;transition:background .2s,box-shadow .2s,transform .2s}.button svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none;flex-shrink:0}.gold{background:var(--gold);color:white}.outline{background:var(--paper);color:var(--gold)}.button:hover{transform:translateY(-2px);box-shadow:0 5px 16px #5c462622}.gold:hover{background:var(--deep)}.outline:hover{background:#f0e6d7}.countdown-section{text-align:center;padding:55px 32px 58px;border-bottom:1px solid #c9b69166}.countdown-section h2{margin-top:12px}.countdown{display:flex;max-width:560px;margin:30px auto 20px;justify-content:center}.countdown>div{flex:1;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:4px}.countdown>div:last-child{border:0}.countdown strong{font-family:Editorial,Georgia,serif;font-size:3.1rem;font-weight:400;color:var(--gold);line-height:1.1;font-variant-numeric:tabular-nums}.countdown span{font-size:.875rem;letter-spacing:.1em}.countdown-note{font-family:Editorial,Georgia,serif;font-size:1.1rem;color:var(--muted)}.location-section{padding:58px 60px 60px}.location-header{text-align:center}.location-header h2{margin:12px 0 18px}address{font-style:normal;font-family:Editorial,Georgia,serif;font-size:1.4rem;line-height:1.5}address span{font-family:Arial,Helvetica,sans-serif;font-size:1rem;color:var(--muted);display:inline-block;margin-top:5px}.location-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr);align-items:center;gap:24px;margin-top:30px}.map-card .small-label{margin-bottom:12px}.map-card .map{border:1px solid var(--line);width:100%;aspect-ratio:16/9;object-fit:contain}.map-card .button{margin-top:16px}.qr-card{text-align:center}.qr-card img{width:200px;height:200px;background:white;border-radius:8px;margin:0 auto 12px}.qr-card p{font-family:Editorial,Georgia,serif;font-size:1.2rem}.qr-card span{font-size:.875rem;color:var(--muted)}.confirmation{text-align:center;background:#efe6d7;border-top:1px solid #c9b69166;padding:46px 24px}.tiny-heart{display:inline-block;color:var(--gold);font-size:1.25rem;margin-bottom:12px}.confirmation h2{font-family:WeddingScript,Georgia,serif;font-size:3.1rem}.confirmation p{margin:12px 0 22px}.confirmation .button{max-width:360px;margin:0 auto}.phone{display:inline-block;margin-top:18px;color:var(--muted);font-size:1rem;text-decoration:none;letter-spacing:.09em}footer{padding:26px 20px;text-align:center;font-size:.875rem;letter-spacing:.16em;color:var(--gold)}footer span{padding:0 8px}.footer-date{display:block;margin-top:6px;font-size:.75rem;letter-spacing:.1em}.enter{animation:reveal 1.25s ease both}.cover-content>.eyebrow{animation-delay:.1s}.names{animation-delay:.2s}.intro{animation-delay:.35s}.date-time{animation-delay:.45s}@keyframes reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes paper-arrival{from{opacity:.5;transform:scale(1.018)}to{opacity:1;transform:scale(1)}}@keyframes heartbeat{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes gift-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@media(max-width:700px){.invitation{margin:0;box-shadow:none}.cover-content{padding:55px 28px 45px;max-width:540px}.arch{inset:25px 17px 18px;border-radius:48% 48% 0 0 / 120px 120px 0 0}.floral-paper{background-size:100% 100%}.monogram{font-size:2.1rem}.cover .eyebrow{margin-top:20px}.names{font-size:5.4rem;margin:25px 0 22px}.intro{font-size:1.13rem}.date-time{gap:17px;margin-top:19px}.date-time>div{min-width:0;flex:1}.date-time .date{padding-right:17px}.date strong{font-size:3rem}.arrival strong{font-size:2.5rem}.small-label{font-size:.875rem;letter-spacing:.05em}.dress{margin-top:18px}.cover-actions{max-width:350px}.countdown-section{padding:40px 22px 44px}.countdown strong{font-size:2.4rem}.countdown span{font-size:.75rem;letter-spacing:.025em}.location-section{padding:43px 24px}.location-grid{grid-template-columns:1fr;gap:30px}.qr-card img{width:190px;height:190px}.confirmation{padding:40px 22px}address{font-size:1.3rem}.button{min-height:50px}.eyebrow{font-size:.8125rem}}
@media(max-width:360px){.cover-content{padding-left:23px;padding-right:23px}.names{font-size:4.8rem}.date-time{gap:12px}.date-time .date{padding-right:12px}.arrival strong{font-size:2.2rem}.arrival>.small-label{font-size:.8125rem}.intro{font-size:1.07rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
