*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:#1a0f1e;font-family:Georgia,Times New Roman,serif}.page{position:relative}.stage{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.flight{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .25s ease}.hero{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;transition:opacity .1s linear}.hero-inner{--hero-tx: -50%;position:absolute;top:50%;left:50%;aspect-ratio:1672 / 941;min-width:100%;min-height:100%;container-type:size;transform:translate(var(--hero-tx),-50%);animation:breathe 26s ease-in-out infinite alternate}@keyframes breathe{0%{transform:translate(var(--hero-tx),-50%) scale(1.01)}to{transform:translate(var(--hero-tx),-50%) scale(1.045)}}.hero-art{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none}.phone-field,.rsvp,.confirmation{position:absolute;display:flex;align-items:center}.phone-field{gap:1cqw;padding:0 1.6cqw;background:#2b1c30;border:.09cqw solid rgba(238,214,178,.55);border-radius:1.4cqw;box-shadow:0 .3cqw 1.6cqw #00000059}.phone-icon{width:1.4cqw;height:1.4cqw;color:#e9d3a8;flex-shrink:0}.phone-field input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:#f3e4c4;font-family:inherit;font-size:1.45cqw;letter-spacing:.06cqw}.phone-field input::placeholder{color:#eed8b6bf}.phone-field:focus-within{border-color:#f6e2bee6;box-shadow:0 0 1.8cqw #f0d2a059}.rsvp{justify-content:center;gap:.7cqw;border:none;border-radius:3cqw;background:linear-gradient(180deg,#f7e2b2,#e9c489);color:#4a3a26;font-family:inherit;font-size:1.5cqw;letter-spacing:.12cqw;cursor:pointer;box-shadow:0 .3cqw 1.6cqw #0000004d;transition:filter .2s ease,box-shadow .2s ease}.rsvp:hover{filter:brightness(1.06);box-shadow:0 .3cqw 2.2cqw #f0d2a073}.rsvp .arrow{font-size:1.6cqw}.overlay-form.shake .phone-field{animation:shake .5s ease;border-color:#ffa08ce6}@keyframes shake{0%,to{margin-left:0}20%,60%{margin-left:-.5cqw}40%,80%{margin-left:.5cqw}}.confirmation{justify-content:center;color:#f3e4c4;font-style:italic;font-size:1.5cqw;letter-spacing:.08cqw;text-align:center;text-shadow:0 .15cqw 1cqw rgba(0,0,0,.7);background:#1a0f1e8c;border-radius:1.4cqw;animation:fade-in 1.8s ease both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.copy{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(46rem,84vw);padding:4rem 3rem;text-align:center;color:#f3e4c4;text-shadow:0 2px 18px rgba(10,4,12,.85);background:radial-gradient(ellipse closest-side,rgba(16,6,20,.6),rgba(16,6,20,.35) 60%,transparent);transition:opacity .2s linear}.copy .eyebrow{font-style:italic;letter-spacing:.35em;text-transform:lowercase;font-size:clamp(.8rem,1.1vw,1rem);color:#d9b982;margin-bottom:.9rem}.copy h2{font-weight:400;font-size:clamp(2rem,4.4vw,3.6rem);letter-spacing:.04em;color:#f7ecd2;margin-bottom:1.6rem}.copy .line{font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.75;margin-bottom:1rem;color:#f3e4c4eb}.scroll-hint{position:absolute;left:50%;bottom:4vh;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.1rem;color:#eed8b6cc;font-style:italic;font-size:.85rem;letter-spacing:.3em;transition:opacity .6s ease;pointer-events:none}.scroll-hint .chevron{font-size:1.1rem;animation:bob 2.2s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(.4rem)}}.notice{position:absolute;left:29.9%;top:63%;width:40%;color:#f0c9b0;font-style:italic;font-size:1.3cqw;text-shadow:0 .15cqw 1cqw rgba(0,0,0,.8)}.rsvp:disabled{cursor:wait;filter:saturate(.7)}.admin-empty{font-style:italic;color:#f3e4c4b3}.admin-row{padding:.7rem 0;border-top:1px solid rgba(238,214,178,.18)}.admin-phone{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem}.admin-meta{font-size:.75rem;font-style:italic;color:#f3e4c4a6}.admin-code{display:flex;align-items:center;gap:.8rem;margin-top:.4rem;font-size:.9rem;color:#f0d9a8}.admin-copy{padding:.2rem .7rem;background:transparent;border:1px solid rgba(238,214,178,.5);border-radius:1rem;color:#e9d3a8;font-family:inherit;font-size:.75rem;cursor:pointer}.admin-copy:hover{background:#eed6b226}@media(max-aspect-ratio:6/5){.hero-inner{--hero-tx: -43.8%}.rsvp{left:36.9%!important;top:65%!important;width:13.8%!important;height:7%!important}.confirmation{left:29.9%!important;top:54.1%!important;width:27.8%!important;height:7.9%!important}}.verified-card{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;align-items:center;justify-content:center;background:#faf6ee;animation:cardIn .9s ease both}@keyframes cardIn{0%{opacity:0}to{opacity:1}}.verified-inner{max-width:34rem;padding:3rem 2.4rem;text-align:center;color:#2b1c30}.verified-eyebrow{font-style:italic;letter-spacing:.35em;font-size:.85rem;color:#a8894f;margin-bottom:1.2rem}.verified-inner h2{font-weight:400;font-size:2.1rem;letter-spacing:.06em;margin-bottom:1.2rem}.verified-line{font-style:italic;line-height:1.7;color:#2b1c30bf;margin-bottom:2.2rem}.verified-continue{display:inline-block;padding:.8rem 2.6rem;border:1px solid #a8894f;border-radius:2.4rem;color:#2b1c30;text-decoration:none;font-style:italic;letter-spacing:.12em;transition:background .25s ease,color .25s ease}.verified-continue:hover{background:#2b1c30;color:#f3e4c4}.verified-countdown{margin-top:1.4rem;font-style:italic;font-size:.9rem;color:#2b1c308c}.plans{min-height:100vh;background:#1a0f1e;color:#f3e4c4;padding:4rem 1.4rem 6rem;max-width:46rem;margin:0 auto}.plans-loading,.plans-error{padding-top:40vh;text-align:center;font-style:italic;color:#f3e4c4b3}.plans-head{text-align:center;margin-bottom:3.4rem}.plans-head .eyebrow{font-style:italic;letter-spacing:.35em;font-size:.85rem;color:#a8894f;margin-bottom:.8rem}.plans-head h1{font-weight:400;font-size:2.4rem;letter-spacing:.08em;margin-bottom:1rem}.plans-links{display:flex;gap:1.6rem;justify-content:center;flex-wrap:wrap}.plans-back{font-style:italic;font-size:.85rem;color:#e9d3a8b3;text-decoration:none;border-bottom:1px solid rgba(233,211,168,.3)}.plans-section{margin-bottom:3.6rem}.plans-section h2{font-weight:400;font-style:italic;letter-spacing:.2em;font-size:1.15rem;color:#d9b982;margin-bottom:1.2rem;border-bottom:1px solid rgba(238,214,178,.18);padding-bottom:.6rem}.plans-empty{font-style:italic;color:#f3e4c48c}.plans-hint{font-style:italic;font-size:.85rem;color:#f3e4c48c;margin-bottom:1rem}.plans-subhead{font-style:italic;font-size:.9rem;color:#f3e4c480;margin:1.4rem 0 .6rem}.plans-event{display:flex;gap:1.4rem;padding:.9rem 0;border-bottom:1px solid rgba(238,214,178,.1)}.plans-event.past{opacity:.55}.plans-event-when{display:flex;flex-direction:column;min-width:11rem}.plans-event-time{font-style:italic;color:#d9b982;font-size:.9rem}.plans-event-what{display:flex;flex-direction:column}.plans-event-title{font-size:1.05rem}.plans-event-venue{font-style:italic;font-size:.9rem;color:#f3e4c4b3}.plans-event-note{font-style:italic;font-size:.85rem;color:#f3e4c480;margin-top:.2rem}.cal{max-width:24rem}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem;font-style:italic;letter-spacing:.15em}.cal-nav button{background:transparent;border:1px solid rgba(238,214,178,.4);border-radius:50%;width:2rem;height:2rem;color:#e9d3a8;cursor:pointer;font-family:inherit}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}.cal-dow{text-align:center;font-size:.7rem;letter-spacing:.15em;color:#f3e4c473;padding-bottom:.3rem}.cal-day{aspect-ratio:1;background:transparent;border:1px solid transparent;border-radius:50%;color:#f3e4c4bf;font-family:inherit;font-size:.9rem;position:relative}.cal-day.dim{color:#f3e4c440}.cal-day:disabled{cursor:default}.cal-day.open{border-color:#d9b982b3;color:#f0d9a8;cursor:pointer}.cal-day.open:after{content:"";position:absolute;bottom:.28rem;left:50%;transform:translate(-50%);width:.28rem;height:.28rem;border-radius:50%;background:#d9b982}.cal-day.sel{background:#d9b9822e;border-color:#d9b982}.cal-slots{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.cal-slot{padding:.45rem 1.1rem;background:transparent;border:1px solid rgba(238,214,178,.5);border-radius:1.6rem;color:#e9d3a8;font-family:inherit;font-style:italic;cursor:pointer}.cal-slot:hover{background:#eed6b21f}.cal-slot.requested{border-style:dashed;cursor:default;color:#e9d3a8b3}.cal-slot.confirm{display:inline-flex;align-items:center;gap:.5rem;border-color:#d9b982}.cal-slot.confirm button{background:transparent;border:1px solid rgba(238,214,178,.5);border-radius:1.2rem;color:#f0d9a8;font-family:inherit;font-size:.8rem;padding:.2rem .7rem;cursor:pointer}.cal-pending{margin-top:1.2rem}.cal-pending p{font-style:italic;font-size:.9rem;color:#d9b982}.plans-notice{margin-top:.8rem;font-style:italic;color:#e0a9a9}.plans-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.7rem}.plans-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:.5rem;border:1px solid rgba(238,214,178,.25)}.plans-msgs{display:flex;flex-direction:column;gap:.8rem}.plans-msg{max-width:85%;padding:.7rem 1rem;border-radius:.9rem;font-size:.95rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.plans-msg.from-him{align-self:flex-start;background:#eed6b21a;border:1px solid rgba(238,214,178,.2)}.plans-msg.from-you{align-self:flex-end;background:#78548240;border:1px solid rgba(179,136,190,.3)}.plans-msg span{display:block;margin-top:.3rem;font-size:.7rem;font-style:italic;color:#f3e4c473}.admin-expand{background:transparent;border:none;color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;padding:0}.guest-mgr{margin:.6rem 0 .4rem;padding:.8rem;background:#eed6b20d;border:1px solid rgba(238,214,178,.15);border-radius:.6rem}.gm-head{font-style:italic;letter-spacing:.2em;font-size:.75rem;color:#d9b982;margin:.8rem 0 .4rem}.gm-head:first-child{margin-top:0}.gm-line{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.85rem;padding:.25rem 0}.gm-line button,.gm-actions button{background:transparent;border:1px solid rgba(238,214,178,.4);border-radius:1rem;color:#e9d3a8;font-family:inherit;font-size:.75rem;padding:.1rem .6rem;cursor:pointer}.gm-actions{display:flex;gap:.4rem}.gm-form{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}.gm-form input,.gm-form select,.gm-form textarea{flex:1 1 8rem;background:#1a0f1e99;border:1px solid rgba(238,214,178,.3);border-radius:.4rem;color:#f3e4c4;font-family:inherit;font-size:.85rem;padding:.4rem .6rem}.gm-form textarea{flex-basis:100%;resize:vertical}.gm-form button{background:#d9b98226;border:1px solid #d9b982;border-radius:1.2rem;color:#f0d9a8;font-family:inherit;font-style:italic;font-size:.85rem;padding:.35rem 1rem;cursor:pointer}.gm-photos{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.gm-photo{position:relative}.gm-photo img{width:3.6rem;height:3.6rem;object-fit:cover;border-radius:.4rem;border:1px solid rgba(238,214,178,.3)}.gm-photo button{position:absolute;top:-.4rem;right:-.4rem;width:1.1rem;height:1.1rem;border-radius:50%;border:none;background:#2b1c30;color:#e9d3a8;font-size:.7rem;cursor:pointer;line-height:1}.gm-upload{display:inline-block;padding:.4rem .9rem;border:1px dashed rgba(238,214,178,.5);border-radius:.5rem;font-style:italic;font-size:.8rem;color:#e9d3a8cc;cursor:pointer}.gm-msg{font-size:.8rem;color:#f3e4c4b3;padding:.15rem 0}
