:root{--plum:#763d65;--plum-deep:#663052;--cream:#fff6ef;--sans:Manrope,Arial,sans-serif;--serif:'Cormorant Garamond',Georgia,serif;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{display:grid;place-items:center;font-family:var(--sans);color:var(--plum);background:#bea6b3;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;color:inherit;border:0}button,input,textarea{outline-offset:4px}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #713c62}button:disabled{cursor:wait}h1,h2,h3,p{margin:0}svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.ambient{position:fixed;inset:-60px;background:linear-gradient(#60424c75,#60424c75),url('assets/scenes/garden-clean.png') center 40%/cover;filter:blur(40px) saturate(.6);transform:scale(1.08);z-index:-1}.stage{position:relative;height:100svh;width:56.25svh;max-width:100vw;max-height:177.777778vw;overflow:clip;isolation:isolate;container-type:inline-size;background:#f1d4d9;box-shadow:0 0 100px #3c223344}.scene-art{position:absolute;inset:0;filter:saturate(.77) brightness(1.025)}.camera,.layer,.gate-part{position:absolute;inset:0;transform-origin:50% 32%;will-change:transform,opacity}.plate{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none;-webkit-user-drag:none}.layer{opacity:0}.road-patch{clip-path:polygon(0 80%,44% 80%,44% 100%,0 100%)}.flowerbeds{clip-path:inset(42% 0 18% 0)}.pavilion{clip-path:polygon(37% 36%,64% 36%,64% 45%,37% 45%)}.left-half{clip-path:inset(0 50% 0 0)}.mirrored{transform:scaleX(-1)}.cloud-half{clip-path:polygon(0 75%,50% 75%,50% 100%,0 100%)}.floral{z-index:2;transform-origin:50% 50%}.wind{animation:sway 7s ease-in-out infinite alternate;transform-origin:50% 50%;will-change:transform}.frame-one-mask{mask-image:linear-gradient(to bottom,#000 74%,transparent 75%),linear-gradient(to right,#000 37%,transparent 39%,transparent 70%,#000 72%);mask-composite:add}.frame-two-mask{mask-image:linear-gradient(to bottom,#000 86%,transparent 87%),linear-gradient(to right,#000 42%,transparent 44%,transparent 65%,#000 67%);mask-composite:add}.palace{z-index:3;opacity:1;clip-path:inset(0 0 0 100%);transform-origin:50% 60%}#couple-plate{will-change:transform}#floral-three{opacity:0;animation-delay:-3s}.light{position:absolute;inset:0;background:radial-gradient(ellipse at 76% 10%,#fff7d640,transparent 50%);pointer-events:none;mix-blend-mode:screen;z-index:4}.pillar{position:absolute;top:0;left:105%;height:100%;width:23%;object-fit:fill;z-index:15;opacity:0;filter:drop-shadow(-15px 0 15px #69496126);pointer-events:none;will-change:transform}
.card{position:absolute;inset:10% 15.8% 12%;opacity:0;z-index:8;text-align:center;display:flex;align-items:center;justify-content:center;pointer-events:none;will-change:opacity,transform}.card:not([inert]){pointer-events:auto}.paper{position:absolute;inset:0;border-radius:50%/29%;background:linear-gradient(160deg,#fff7f4ec,#ffeff3ed 60%,#fff9f3e8);box-shadow:inset 0 0 35px #fffbf4bb,0 3px 30px #73436610;border:1px solid #fffcf3a3;backdrop-filter:blur(1.2px)}.paper:after{content:'';position:absolute;inset:-5px;border:1px solid #fffaf47a;border-radius:inherit}.card-content{position:relative;width:100%;padding:8% 8%;display:flex;flex-direction:column;align-items:center}.reveal-content{will-change:transform,opacity;opacity:0}.monogram{position:relative;display:flex;justify-content:center;align-items:center;height:17cqw;font-family:var(--serif);font-size:15cqw;line-height:1;font-weight:400;margin-bottom:3.2cqw;font-style:italic}.monogram span+span{margin-left:-4.7cqw;transform:translateY(1.4cqw);font-size:.9em;opacity:.88}.overline{font-family:var(--serif);font-size:2.4cqw;letter-spacing:.22em;font-weight:500;margin-bottom:3.6cqw}.names{font-family:var(--serif);font-size:13.4cqw;font-weight:400;line-height:.98;letter-spacing:-.03em}.names>span{display:block}.names em{display:block;font-size:8.4cqw;font-weight:400;line-height:1.1;margin:1.5cqw 0;color:#aa6e96}.wedding-date{font-family:var(--serif);font-size:2.75cqw;letter-spacing:.11em;margin-top:5cqw}.divider{width:51%;height:auto;max-height:7cqw;object-fit:contain;margin:4cqw 0 3cqw;mix-blend-mode:multiply;opacity:.8}.guest-block{font-family:var(--serif);font-size:3.1cqw;line-height:1.6;margin-bottom:3.4cqw}.guest-block p:last-child{font-size:3.5cqw;font-weight:500}.action{display:inline-flex;justify-content:center;align-items:center;gap:3cqw;border:1px solid #81547566;background:#875978;color:#fff8f1;min-height:9.3cqw;padding:2.4cqw 4.2cqw;border-radius:30px;font-size:2.5cqw;letter-spacing:.055em;box-shadow:0 3px 12px #804c6b13;transition:background .3s,box-shadow .3s}.action:hover{background:#6e405f;box-shadow:0 4px 17px #804c6b28}.action span{font-size:4cqw;line-height:1}.card-icon{width:9.8cqw;height:9.8cqw;object-fit:contain;margin:0 0 3cqw;mix-blend-mode:multiply}.card-title{font-family:var(--serif);font-size:6.2cqw;font-weight:400;letter-spacing:.035em;margin-bottom:5.5cqw;line-height:1.1}.story-list{list-style:none;margin:0;padding:0;width:100%}.story-list li+li{margin-top:3.7cqw}.story-list h3{font:500 italic 4.8cqw/1.05 var(--serif)}.story-list p{font:400 3.05cqw/1.6 var(--serif);opacity:.8;margin-top:.9cqw}.story-card .divider{margin:5cqw 0 4cqw}.story-card .card-content{padding-top:5%;padding-bottom:5%}.event-card .card-content{padding:8% 6%}.event-card .card-icon{width:8.1cqw;height:8.1cqw;margin-bottom:4.2cqw}.event-block h2{font:400 6.2cqw/1.1 var(--serif);letter-spacing:.025em;margin-bottom:2.6cqw}.event-block p{font:400 3cqw/1.5 var(--serif)}.event-block .event-date{font-weight:600;font-size:3.3cqw;margin-bottom:1.3cqw}.event-block .venue{font-size:2.5cqw;line-height:1.5;text-transform:uppercase;letter-spacing:.03em;margin-top:2cqw}.thin-divider{width:25%;height:1px;background:#aa7b9855;margin:4.3cqw 0}.event-card .divider{margin:4cqw 0 3cqw}.event-actions{display:flex;align-items:center;flex-direction:column;gap:2cqw}.quiet-button{background:none;font-size:2.5cqw;border-bottom:1px solid #a5769866;padding:1cqw 0}.example-note{font-size:1.8cqw;line-height:1.5;margin-top:3cqw;opacity:.68}
.top-controls{position:absolute;left:5%;right:5%;top:2.8%;z-index:25;display:flex;justify-content:space-between;align-items:center;gap:15px}.icon-button{display:grid;place-items:center;width:8.6cqw;height:8.6cqw;max-width:38px;max-height:38px;border:1px solid #ffffff90;border-radius:50%;background:#fff7edb0;backdrop-filter:blur(9px);color:#73435f;transition:background .3s}.icon-button:hover{background:#fff8eeed}.icon-button svg{width:4.4cqw;height:4.4cqw;max-width:18px;max-height:18px}.skip-button{margin-left:auto;background:#fff6efae;border:1px solid #fff6ef80;border-radius:20px;padding:1.6cqw 2.8cqw;font-size:2.2cqw;display:flex;gap:2cqw;align-items:center;transition:opacity .4s,visibility .4s;backdrop-filter:blur(6px)}.skip-button.is-hidden{opacity:0;visibility:hidden}.bottom-controls{position:absolute;z-index:25;bottom:0;left:0;right:0;padding:9% 5% 3%;background:linear-gradient(transparent,#fcf4eed9 34%,#fcf4eef7);color:#70465f}.scene-nav{display:flex;align-items:center;justify-content:center;gap:4cqw}.scene-nav button{display:flex;align-items:center;gap:1.7cqw;background:none;padding:1.4cqw 0;font-size:2.2cqw;opacity:.5;transition:opacity .35s}.scene-nav button span:first-child{font-family:var(--serif);font-size:3.5cqw;line-height:1}.scene-nav button.active{opacity:1}.scene-nav button.active span:last-child{border-bottom:1px solid #9566857a}.scene-nav i{width:4cqw;height:1px;background:#ac7c9245}.player-row{display:flex;justify-content:space-between;align-items:center;margin-top:2cqw;gap:2cqw;min-height:4cqw}.player-row button{background:none;display:flex;gap:1cqw;align-items:center;font-size:1.85cqw;padding:1cqw 0;white-space:nowrap}.player-row button>span:first-child{font-size:2.2cqw}.player-row p{font-family:var(--serif);font-size:2.45cqw;font-style:italic;opacity:.8;text-align:center}.progress{height:1px;background:#8f657525;width:100%;margin-top:2cqw;overflow:hidden}.progress span{display:block;width:100%;height:100%;background:#9c728b;transform-origin:left;transform:scaleX(0);will-change:transform}.loading-screen{position:absolute;inset:0;z-index:40;background:#f2e6e4;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s,visibility .8s}.loading-screen.is-done{opacity:0;visibility:hidden;pointer-events:none}.loading-monogram{font:italic 21cqw/1 var(--serif);letter-spacing:-2cqw}.loading-monogram>span{font-size:.5em;margin:0 1.3cqw}.loading-screen>p{font-family:var(--serif);font-size:3.8cqw;margin-top:7cqw;font-style:italic}.loading-screen>div{width:22%;height:1px;background:#804a6620;margin-top:6cqw}.loading-screen>div>span{display:block;width:0;height:1px;background:#9a6b87;transition:width .3s}.loading .top-controls,.loading .bottom-controls{opacity:0}.stage.is-paused .wind{animation-play-state:paused}.stage.is-reduced .wind{animation:none}
dialog{color:var(--plum-deep);background:#fff6f2;border:1px solid #d9bdca;border-radius:140px 140px 12px 12px;width:min(430px,calc(100vw - 30px));max-height:90svh;overflow:auto;padding:55px 35px 30px;box-shadow:0 15px 70px #48223740;text-align:center}dialog::backdrop{background:#39232c65;backdrop-filter:blur(7px)}.dialog-close{position:absolute;right:32px;top:28px;background:none;font-size:24px;padding:4px}.dialog-overline{font-size:8px;letter-spacing:2px}.dialog-intro{font:17px/1.5 var(--serif);margin:12px 0 28px}dialog h2{font:400 42px/1.1 var(--serif);margin-top:25px}dialog form{text-align:left}dialog label,dialog legend{display:block;font-size:10px;margin-bottom:8px}dialog label>span{opacity:.7}dialog input:not([type=radio]),dialog textarea{width:100%;padding:12px;border:1px solid #c9abb955;border-radius:3px;background:#fffaf7;color:#73465f;font-size:11px;margin-bottom:18px}dialog textarea{resize:vertical}dialog fieldset{border:0;padding:0;margin:0 0 18px}dialog .radio-label{display:inline-flex;align-items:center;gap:5px;margin:3px 15px 2px 0}dialog input[type=radio]{accent-color:#84506c}dialog .action{font-size:10px;min-height:42px;padding:10px 20px;gap:22px;width:100%}dialog .action span{font-size:18px}dialog .quiet-button{font-size:11px;padding:8px 0}.demo-note{font-size:9px;line-height:1.6;opacity:.6;text-align:center;margin-top:15px}.success-flower{font-size:55px;margin:25px 0 15px}#rsvp-success h3{font:400 35px/1.1 var(--serif);overflow-wrap:anywhere}#rsvp-success>p:not(.success-flower){font-size:11px;line-height:1.7;margin:22px 0}.toast{position:fixed;left:50%;bottom:25px;max-width:calc(100vw - 36px);width:max-content;transform:translate(-50%,15px);padding:12px 20px;background:#71435ee8;color:#fff5ee;z-index:80;font-size:11px;line-height:1.5;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}noscript{position:fixed;inset:0;z-index:99;background:#f7e8eb;color:#6d435e;display:grid;place-items:center;padding:30px;text-align:center}
@keyframes sway{0%{transform:scale(1.014) translate(-.12%,.12%) rotate(-.16deg)}100%{transform:scale(1.026) translate(.15%,-.1%) rotate(.2deg)}}@media(max-width:600px){.ambient{filter:blur(25px) saturate(.65);background-image:linear-gradient(#d7b9c9aa,#d7b9c9aa),url('assets/scenes/garden-clean.png')}.stage{box-shadow:0 0 60px #72485822}.bottom-controls{padding-bottom:3%}}@media(prefers-reduced-motion:reduce){.wind{animation:none}*,*::after{scroll-behavior:auto!important}.loading-screen{transition-duration:.1s}}

/* Remove the old figure baked into the upper-left floral layers. */
#floral-one,#floral-two{mask-image:radial-gradient(ellipse 15% 11% at 18% 15%,transparent 78%,#000 100%)}

.clean-sky{position:absolute;inset:0 0 auto;height:25%;background:url("assets/scenes/garden-clean.png") center top/160% auto no-repeat;mask-image:linear-gradient(#000 80%,transparent);pointer-events:none}

/* Single event layout */
.event-card.single-event .card-content{padding:12% 8%;justify-content:center}
.event-card.single-event .card-icon{width:9.5cqw;height:9.5cqw;margin-bottom:4.5cqw}
.event-card.single-event .event-block{margin:2.5cqw 0 3.5cqw}
.event-card.single-event .event-block h2{font-size:7.8cqw;margin-bottom:2.5cqw;letter-spacing:.03em}
.event-card.single-event .event-block p{font-size:3.2cqw;line-height:1.6}
.event-card.single-event .event-block .event-date{font-size:3.8cqw;margin-bottom:1.8cqw;font-weight:600}
.event-card.single-event .event-block .venue{font-size:2.8cqw;line-height:1.6;margin-top:2.5cqw}
.event-card.single-event .divider{margin:4.5cqw 0 3.5cqw;width:55%}
.event-card.single-event .event-actions{gap:2.5cqw}
