:root{font-family:DM Sans,sans-serif;color:#21332f;background:#edece5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-optical-sizing:auto;font-weight:400;--forest:#183b36;--deep:#102c29;--sage:#8b9a85;--gold:#c8a36e;--ink:#20332f;--muted:#7e8580;--paper:#fbfaf5;--line:#e7e4db}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}.app-shell{min-height:100vh;padding:0 34px 34px}.topbar{height:76px;max-width:1480px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:600 25px Playfair Display,Georgia,serif;letter-spacing:-1.5px;color:var(--forest);text-decoration:none}.brand span{color:#b5905d}.preview-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#808a82;display:flex;align-items:center;gap:9px}.pulse{width:7px;height:7px;border-radius:50%;background:#82a58a;box-shadow:0 0 0 4px #82a58a24}.package-nav{display:flex;gap:5px;padding:5px;border:1px solid #deddd4;border-radius:50px;background:#f5f4ee}.package-link{font-size:12px;text-decoration:none;color:#68746b;padding:9px 15px;border-radius:50px}.package-link.active{background:var(--forest);color:#fff}.experience{max-width:1480px;min-height:min(790px,calc(100vh - 112px));margin:auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(370px,.75fr);border-radius:22px;overflow:hidden;background:var(--paper);box-shadow:0 22px 70px #25362d14}.scene-panel{position:relative;min-height:700px;overflow:hidden;background:#9dada1}.scene-panel canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.scene-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#172e2c55 0%,transparent 30%,transparent 68%,#172e2c75 100%)}.scene-heading{position:absolute;left:clamp(30px,5vw,74px);top:clamp(35px,6vh,72px);color:#fff;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:.23em;font-weight:700;text-transform:uppercase;color:#99a894}.scene-heading .eyebrow{color:#efe3cf}.scene-title{font:400 clamp(33px,4.1vw,59px)/1.05 "Playfair Display",Georgia,serif;letter-spacing:-1.6px;margin:20px 0}.scene-title em{color:#f0d7aa;font-weight:400}.scene-footer{position:absolute;left:clamp(30px,5vw,74px);right:clamp(30px,5vw,74px);bottom:28px;display:flex;justify-content:space-between;align-items:center;color:#fff}.scene-hint{font-size:11px;letter-spacing:.06em;color:#ffffffc8}.drag-icon{font-size:17px;vertical-align:-2px;margin-right:8px}.icon-button{border:1px solid #ffffff70;background:#fff2;color:#fff;border-radius:50%;width:38px;height:38px;font-size:13px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}.fallback{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(145deg,#71866d,#d8b58c 56%,#6d493a);padding:24px}.fallback-card{max-width:380px;padding:34px;border-radius:18px;background:#fffdf8;color:var(--ink)}.fallback-card h1{font:400 32px/1.1 Playfair Display,Georgia,serif}.invite-panel{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(34px,4.7vw,72px) clamp(28px,4vw,62px) 22px;background:var(--paper)}.invite-content{max-width:470px;margin:auto;width:100%}.invite-content>.eyebrow{color:#889486}.couple-name{font:400 clamp(46px,5vw,70px)/.98 "Playfair Display",Georgia,serif;letter-spacing:-2px;color:var(--forest);margin:22px 0 19px}.couple-name span{font-style:italic;color:var(--gold);font-size:.72em}.invite-copy{max-width:390px;color:#788079;font-size:13px;line-height:1.8;margin:0 0 30px}.date-block{display:flex;align-items:center;gap:24px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.date-block>div:not(.date-divider){display:flex;flex-direction:column;gap:5px}.meta-label{font-size:8px;letter-spacing:.17em;color:#8c968d;font-weight:700}.date-block strong{font:400 30px Playfair Display,Georgia,serif;color:var(--forest)}.date-block .time{font-size:19px;white-space:nowrap}.date-divider{width:1px;height:45px;background:#dedbd0}.venue-card{display:flex;align-items:center;gap:14px;padding:22px 0 28px}.venue-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#edf0e8;color:var(--forest);font-size:21px}.venue-card>div:nth-child(2){display:flex;flex-direction:column;gap:4px;flex:1}.venue-card strong{font:500 14px Playfair Display,Georgia,serif;color:var(--ink)}.venue-address{font-size:11px;color:#8b918a}.map-arrow{font-size:18px;text-decoration:none;color:var(--forest)}.button{border:0;display:inline-flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;border-radius:3px;text-decoration:none;font-size:11px;font-weight:600;letter-spacing:.04em;cursor:pointer}.button-dark{background:var(--forest);color:#fff}.button-dark:hover{background:#245148}.button-wide{width:100%}.button span{font-size:17px}.guest-note{text-align:center;color:#a4a49a;font-size:9px;letter-spacing:.04em;margin:12px 0}.invite-footer{border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#92988e;letter-spacing:.07em}.invite-footer span:first-child{font:italic 15px Playfair Display,Georgia,serif;color:var(--gold)}.dialog-backdrop{position:fixed;z-index:10;inset:0;background:#14211fc2;display:grid;place-items:center;padding:20px}.dialog-backdrop[hidden],.fallback[hidden]{display:none}.rsvp-dialog{position:relative;width:min(440px,100%);padding:36px;background:var(--paper);border-radius:14px;box-shadow:0 25px 80px #0004}.close-button{position:absolute;right:17px;top:13px;border:0;background:none;font-size:26px;color:#7c857c;cursor:pointer}.rsvp-dialog h2{font:400 35px Playfair Display,Georgia,serif;color:var(--forest);margin:12px 0 22px}.rsvp-dialog form{display:grid;gap:14px}.rsvp-dialog label{display:grid;gap:7px;font-size:11px;color:#6d786f}.rsvp-dialog input,.rsvp-dialog select{width:100%;padding:12px;border:1px solid #deddd4;border-radius:5px;background:#fff;color:var(--ink);font:inherit}.success-note{color:#2e6b4b;font-size:13px;line-height:1.6}.local-note{text-align:center;color:#a2a49d;font-size:9px;margin:16px 0 0}.toast{position:fixed;z-index:20;bottom:23px;left:50%;transform:translate(-50%,20px);opacity:0;padding:12px 18px;background:var(--deep);color:#fff;border-radius:50px;font-size:12px;transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}@media(max-width:900px){.app-shell{padding:0 16px 18px}.experience{grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);min-height:calc(100vh - 110px)}.scene-panel{min-height:620px}.invite-panel{padding:38px 28px 18px}.date-block{gap:15px}}@media(max-width:680px){.app-shell{padding:0 10px 10px}.topbar{height:66px;gap:10px}.brand{font-size:21px}.preview-label{font-size:8px;letter-spacing:.08em}.package-nav{gap:0;padding:3px}.package-link{font-size:10px;padding:8px 10px}.experience{display:flex;flex-direction:column;min-height:0;border-radius:15px}.scene-panel{min-height:58svh;height:58svh;max-height:650px}.scene-heading{left:25px;top:28px}.scene-title{font-size:39px;margin:14px 0}.scene-footer{left:25px;right:25px;bottom:16px}.invite-panel{padding:33px 25px 18px;min-height:540px}.couple-name{font-size:54px}.invite-content{margin:0 auto}.rsvp-dialog{padding:30px 24px}.date-block{gap:18px}.date-block strong{font-size:28px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.error-note{color:#a33d32}.honeypot{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fallback-detail{margin-top:12px;padding:10px;border-radius:6px;background:#f0eee7;color:#6d746d;font:11px/1.5 monospace;overflow-wrap:anywhere}.scene-start{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;background:linear-gradient(180deg,#1c393347,#243b31a8);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:24px}.scene-start[hidden]{display:none}.scene-start .eyebrow{color:#f0d7aa}.scene-start p{font:400 14px Georgia,serif;color:#ffffffd9;margin:14px 0 20px}.start-orbit{font-size:37px;color:#f0d7aa;margin-bottom:16px;animation:orbit 8s linear infinite}.button-light{background:#fbfaf5;color:#183b36}.button-light:hover{background:#f0d7aa}.button:disabled{opacity:.75;cursor:wait}@keyframes orbit{to{transform:rotate(360deg)}}
