.reveal-item{opacity:0;transition:opacity .8s ease-out,transform .8s ease-out;transform:translateY(20px)}.reveal-item.in{opacity:1;transform:translateY(0)}:root{--bg:#fffee5;--ink:#143c88;--text:#143c88;--ink-weak:#143c88d9;--surface:#fff;--surface-muted:#f1f6fb;--primary:#99badd;--primary-pressed:#7bafd4;--primary-ring:#99badd4d;--accent:#c05a72;--accent-dark:#8f3b52;--card:#fff;--border:#eacbd3;--card-width:840px}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow-x:hidden}body{color:var(--text);background:var(--bg);margin:0;font-family:Afacad,Poller One,Cormorant Garamond,serif;position:relative}body::-webkit-scrollbar{display:none}body{-ms-overflow-style:none;scrollbar-width:none}.invitation{grid-template-rows:auto auto auto;width:100%;max-width:100vw;padding-bottom:30px;display:grid;overflow-x:hidden}.hero{text-align:center;place-items:center;min-height:62vh;display:grid;position:relative;overflow:hidden}.hero .overlay{opacity:.12;background:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"200\" viewBox=\"0 0 200 200\"><text x=\"50\" y=\"100\" fill=\"%23f7d7db\" font-size=\"22\">❤</text></svg>");position:absolute;inset:0}.hero .content{padding:2rem;position:relative}.couple{margin:0;font-family:Afacad,Poller One,Dancing Script,Cormorant Garamond,serif;font-size:3rem}.couple .line{display:block}.couple .line+.line{margin-top:.25rem}.tagline{margin:.5rem 0 .25rem;font-style:italic}.date{opacity:.8;margin-bottom:1.25rem}.cta{background:var(--primary);color:#fff;border-radius:999px;padding:.75rem 1.25rem;text-decoration:none;transition:transform .12s,background-color .12s,box-shadow .12s;display:inline-block;box-shadow:0 6px 14px #99badd33}.cta:hover{background:var(--primary-pressed)}.cta:active{transform:scale(.98);box-shadow:0 2px 6px #99badd2e}.section-divider{opacity:.6;background-image:url("data:image/svg+xml,%3Csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,24 Q50,48 100,24 T200,24 T300,24 T400,24 T500,24 T600,24 T700,24 T800,24 T900,24 T1000,24' fill='none' stroke='%2399BADD' stroke-width='2' opacity='0.3'/%3E%3C/svg%3E");background-position:50%;background-repeat:repeat-x;width:100%;height:48px;margin:1rem 0}.details,.rsvp{width:min(100%,var(--card-width));margin:0 auto;padding:2rem}.details{background:0 0}.rsvp{background:0 0;margin-top:1.25rem;padding-bottom:60px}.map-section{width:min(100%,var(--card-width));margin:0 auto}.details h2,.rsvp h2,.map-title{color:var(--ink);text-align:center;margin:0 0 .75rem;font-family:Afacad,Poller One,serif;font-size:1.5rem;font-weight:600}.details h2:after,.rsvp h2:after,.map-title:after{content:"";background:var(--accent);opacity:.6;width:64px;height:2px;margin-top:.5rem;margin-left:auto;margin-right:auto;display:block}.poem{text-align:center;justify-items:center;gap:.8rem;padding:2rem 0;display:grid}.poem .reveal-line,.poem .reveal-sub{opacity:0;color:var(--ink);filter:blur(4px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1),filter .8s;transform:translateY(12px)scale(.98)}.poem .reveal-line.in,.poem .reveal-sub.in{opacity:1;filter:blur();transform:translateY(0)scale(1)}.poem .reveal-line{letter-spacing:.1rem;text-shadow:0 2px 4px #143c881a;margin-bottom:.2rem;font-family:Afacad,Poller One,system-ui,sans-serif;font-size:1.4rem}.poem .reveal-sub{opacity:0;max-width:80%;color:var(--ink-weak);margin-top:1rem;font-size:1rem;font-weight:300;line-height:1.8}.rsvp-form{grid-template-columns:1fr;align-items:start;gap:1rem 1.25rem;width:100%;display:grid}.rsvp-form label{gap:.5rem;width:100%;display:grid}.rsvp-form input,.rsvp-form textarea{background:var(--surface);width:100%;color:var(--ink);border:1px solid #13294b33;border-radius:8px;padding:.6rem .75rem;font-family:inherit}.rsvp-form input::placeholder,.rsvp-form textarea::placeholder{color:#13294b80}.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:0}.date-group{border:none;align-items:center;gap:1rem;width:100%;padding:0;display:flex}.date-group legend{margin-right:.5rem}.radio,.switch{align-items:center;gap:.5rem;display:flex}.group{border:none;gap:.75rem;width:100%;margin:0;padding:0;display:grid}.group-head{align-items:baseline;gap:.5rem;display:flex}.group-head small{opacity:.7}.group.disabled{opacity:.6}.group.disabled .segmented{pointer-events:none}.option-grid{grid-template-columns:repeat(2,minmax(180px,1fr));gap:.75rem;display:grid}.option-card{background:var(--surface);cursor:pointer;border:1px solid #13294b26;border-radius:12px;padding:.9rem 1rem;transition:transform .12s,box-shadow .12s,border-color .12s}.option-card:hover{border-color:#99badd80;box-shadow:0 4px 12px #99badd1f}.option-card.selected{border-color:var(--primary);background:var(--surface-muted);box-shadow:0 6px 16px #99badd2e}.option-card input{display:none}.option-title{font-weight:600}.option-desc{opacity:.8;margin-top:.25rem;font-size:.9rem}.segmented{background:var(--surface);border:1px solid #13294b33;border-radius:999px;display:inline-flex;overflow:hidden}.seg-item{cursor:pointer;color:var(--ink-weak);align-items:center;gap:.5rem;padding:.5rem .9rem;display:inline-flex}.seg-item input{display:none}.seg-item:not(.active):hover{background:var(--surface-muted)}.seg-item.active{background:var(--primary);color:#fff}.status{text-align:center;margin:.5rem 0;font-family:Afacad,Poller One,serif;font-size:1.1rem}.status.error{color:#b00020}.status.success{color:var(--primary);border:1px dashed var(--primary);background:#99badd1a;border-radius:12px;padding:1rem;font-weight:600}.rsvp-form button{background:var(--primary);color:#fff;border:1px solid #99badd80;border-radius:12px;grid-column:1/-1;justify-self:center;padding:.7rem 1.1rem;transition:transform .12s,background-color .12s,box-shadow .12s,border-color .12s;box-shadow:0 6px 14px #99badd33}.rsvp-form button:hover{background:var(--primary-pressed)}.rsvp-form button:active{border-color:var(--primary-pressed);transform:scale(.98);box-shadow:0 2px 6px #99badd2e}.rsvp-form button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.date-group,.rsvp-form textarea,.status{grid-column:1/-1}@media (max-width:640px){.couple{font-size:2.4rem}.hero{min-height:56vh}.cta{width:100%}.rsvp-form,.option-grid{grid-template-columns:1fr}}.food-map-container{width:min(100%,var(--card-width));margin:0 auto}.map-wrapper{z-index:0;background-color:#f3f1ec;border-radius:4px;width:100%;height:300px;position:relative;overflow:hidden}.map-title{text-align:center;margin-bottom:.5rem}.map-subtitle{text-align:center;color:var(--ink-weak);margin-bottom:1rem;font-size:.8rem}.map-error{color:#b00020;text-align:center;background:#b000201a;border-radius:4px;margin-bottom:1rem;padding:.5rem;font-size:.9rem}.cat-btn{background:var(--surface);color:var(--ink);cursor:pointer;border:1px solid #143c8833;border-radius:999px;padding:.4rem .8rem;font-size:.9rem;transition:all .2s}.cat-btn:hover{border-color:var(--primary);color:var(--primary-pressed)}.modal-content{background:var(--surface);border:1px solid #ffffff80;border-radius:12px;width:min(90%,320px);padding:1.5rem;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;position:relative;box-shadow:0 10px 25px #00000026}.modal-close{color:var(--ink-weak);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.5rem;transition:background .2s;display:flex;position:absolute;top:.5rem;right:.5rem}.modal-close:hover{background:#0000000d}.modal-title{color:var(--ink);margin:0 0 .5rem;padding-right:1.5rem;font-family:Afacad,Poller One,serif;font-size:1.2rem}.modal-tag{background:var(--surface-muted);color:var(--ink-weak);border-radius:4px;margin-bottom:1rem;padding:.2rem .5rem;font-size:.75rem;display:inline-block}.modal-desc{color:var(--text);opacity:.9;margin-bottom:1.5rem;font-size:.95rem;line-height:1.6}.modal-cta{background:var(--primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.8rem;font-weight:500;text-decoration:none;transition:background .2s;display:flex}.modal-cta:hover{background:var(--primary-pressed)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.font-en{font-family:Afacad,Playfair Display,serif}.paper-texture{pointer-events:none;z-index:0;opacity:.6;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.06'/%3E%3C/svg%3E");width:100%;height:100%;position:fixed;top:0;left:0}.input-line{background:0 0;border:none;border-bottom:1px solid #2b4c7e33;border-radius:0;padding:8px 0;transition:border-color .3s}.input-line:focus{border-bottom-color:#d64045;outline:none}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-float{animation:4s ease-in-out infinite float-y}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow{animation:8s linear infinite spin-slow}@keyframes music-note{0%{opacity:0;transform:translate(0)rotate(0)}20%{opacity:1}80%{opacity:0}to{opacity:0;transform:translate(10px,-20px)rotate(20deg)}}.music-note{animation:2s ease-out infinite music-note}@keyframes fade-up-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:1s cubic-bezier(.2,.8,.2,1) forwards fade-up-enter}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.mobile-long{display:none}.ml-card{box-sizing:border-box;background:#fffee5;flex-direction:column;align-items:center;width:100%;padding:20px;display:flex;position:relative;overflow:hidden}.ml-name{text-align:center;color:#143c88;letter-spacing:4px;text-transform:uppercase;margin:0;font-family:Afacad,Poller One,serif;font-size:16px;position:absolute;left:50%;transform:translate(-50%,-190%)}.ml-center-img-container{margin-bottom:20px}.ml-card-content{border:1px dashed #e2041e;border-radius:12px;flex-direction:column;align-items:center;width:100%;max-width:100%;margin:0 auto;padding:20px 0;display:flex;position:relative}.ml-card-content img{opacity:0;width:100%;height:auto;animation:1s ease-out forwards fadeIn;display:block}.ml-card-content img:first-child{animation-delay:.1s}.ml-card-content img:nth-child(2){animation-delay:.3s}.ml-card-content img:nth-child(3){animation-delay:.5s}.ml-save-date,.ml-deco-top,.ml-names,.ml-photo-frame,.ml-info{display:none}.ml-timeline-img{width:100%;height:auto;margin-top:20px;display:block}.ml-timeline{background:#fffee5;flex-direction:column;align-items:center;padding-top:40px;padding-bottom:60px;display:flex}.ml-timeline-header{text-align:center;margin-bottom:40px}.ml-title{color:#143c88;letter-spacing:4px;text-transform:uppercase;margin:0;font-family:Afacad,Poller One,serif;font-size:24px;display:inline-block;position:relative}.ml-title:before{content:"";opacity:.8;background:url(/images/header.png) bottom/contain no-repeat;width:120%;height:40px;display:block;position:absolute;bottom:100%;left:-10%}.ml-timeline-card{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:16px;width:min(95vw,420px);display:grid;position:relative}.ml-left,.ml-right{flex-direction:column;justify-content:flex-start;gap:0;display:flex}.ml-center-line{justify-content:center;display:flex;position:relative}.ml-vline-img{object-fit:contain;object-position:center top;width:auto;max-width:40px;height:100%}.ml-row{align-items:center;gap:12px;min-height:100px;margin-bottom:20px;display:flex}.spacer{visibility:hidden}.ml-left .ml-row{text-align:right;justify-content:flex-end}.ml-right .ml-row{text-align:left;justify-content:flex-start}.ml-icon{width:56px;height:auto}.ml-text{color:#143c88;font-family:Afacad,Poller One,serif;font-size:13px;line-height:1.5}.ml-text strong{color:#e2001c;margin-bottom:4px;font-size:16px;display:block}.ml-tips{color:#143c88b3;margin-top:40px;font-family:Afacad,Poller One,serif;font-size:12px}.ml-tips-label{color:#e2001c;font-weight:700}.ml-footer-deco{height:60px;margin-top:20px}@media (max-width:640px){.mobile-long{display:block}.hero{display:none}}.food-map-container{width:min(100%,var(--card-width));text-align:center;margin:0 auto;padding:2rem 1rem}.map-subtitle{color:var(--ink-weak);margin:0 0 1.5rem;font-size:.9rem}.map-error{color:#c62828;background:#ffebee;border-radius:8px;margin-bottom:1rem;padding:1rem;font-size:.9rem}.category-filter{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:1rem;display:flex}.cat-btn{color:var(--ink-weak);cursor:pointer;background:0 0;border:1px solid #99badd80;border-radius:999px;padding:.4rem .8rem;font-family:inherit;font-size:.9rem;transition:all .2s}.cat-btn:hover{background:var(--surface-muted);border-color:var(--primary)}.cat-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 6px #99badd4d}.map-wrapper{background:#f0f0f0;border:4px solid #fff;border-radius:16px;width:100%;height:400px;overflow:hidden;box-shadow:0 8px 20px #143c8814}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#143c8866;justify-content:center;align-items:center;padding:20px;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.modal-content{text-align:center;background:#fff;border-radius:20px;flex-direction:column;align-items:center;width:min(100%,320px);padding:24px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;display:flex;position:relative;box-shadow:0 20px 40px #143c8833}.modal-close{width:32px;height:32px;color:var(--ink);cursor:pointer;background:#f1f6fb;border:none;border-radius:50%;place-items:center;font-size:20px;line-height:1;display:grid;position:absolute;top:12px;right:12px}.modal-title{color:var(--ink);margin:8px 0;font-family:Poller One,serif;font-size:1.5rem}.modal-tag{background:var(--primary);color:#fff;border-radius:99px;margin-bottom:16px;padding:4px 10px;font-size:.85rem}.modal-desc{color:var(--ink-weak);margin:0 0 24px;font-size:.95rem;line-height:1.6}.modal-cta{background:var(--ink);color:#fff;border-radius:99px;padding:10px 24px;font-weight:600;text-decoration:none;transition:transform .2s;box-shadow:0 4px 12px #143c8833}.modal-cta:active{transform:scale(.96)}
