:root{--background:#f6f0e7;--foreground:#191611}*{box-sizing:border-box}html{background:var(--background);min-height:100%}body{background:var(--background);min-height:100%;color:var(--foreground);margin:0}img{max-width:100%;display:block}.wedding-page{background:var(--background);min-height:100vh}.wedding-artboard-shell{isolation:isolate;width:min(100%,390px);margin:0 auto;position:relative;container-type:inline-size}.wedding-artboard{z-index:0;width:100%;height:auto;position:relative}.wedding-hero-photo{--hero-pointer-x:0px;--hero-pointer-y:0px;--hero-scroll-x:0px;--hero-scroll-y:0px;--hero-pointer-tilt-x:0deg;--hero-pointer-tilt-y:0deg;--hero-scroll-tilt-x:0deg;--hero-scroll-tilt-y:0deg;--hero-scroll-scale:1;z-index:1;pointer-events:none;perspective:600px;width:74.359%;height:94.872cqw;position:absolute;top:66.667cqw;left:12.821%}.wedding-hero-photo,.wedding-hero-photo *{pointer-events:none}.wedding-hero-photo:before{content:"";z-index:0;background:linear-gradient(135deg,#fffcf4f5,#f6e5d3f5),repeating-linear-gradient(88deg,#715d490d 0 1px,#0000 1px 5px);border:1px solid #e0ccb8b8;border-radius:7.692cqw 8.462cqw 5.385cqw 6.667cqw;position:absolute;inset:-3.077cqw -2.564cqw -4.103cqw;transform:rotate(1.2deg)translateZ(-1px);box-shadow:0 2.308cqw 5.641cqw #4a2f1a29,0 .769cqw 1.795cqw #4a2f1a1a}.wedding-hero-photo-frame{z-index:1;border-radius:7.692cqw 8.462cqw 5.385cqw 6.667cqw;position:absolute;inset:-3.077cqw -2.564cqw -4.103cqw;overflow:hidden}.wedding-hero-photo-parallax{z-index:2;transform:translate3d(calc(var(--hero-pointer-x) + var(--hero-scroll-x)), calc(var(--hero-pointer-y) + var(--hero-scroll-y)), 0) rotateX(calc(var(--hero-pointer-tilt-y) + var(--hero-scroll-tilt-y))) rotateY(calc(var(--hero-pointer-tilt-x) + var(--hero-scroll-tilt-x))) scale(var(--hero-scroll-scale));transform-style:preserve-3d;will-change:transform;transition:transform .22s ease-out;position:absolute;inset:0}.wedding-hero-photo-drift{transform-origin:52% 58%;width:100%;height:100%;animation:6s ease-in-out infinite wedding-hero-photo-float;position:relative}.wedding-hero-photo-image{object-fit:contain;object-position:center bottom;filter:drop-shadow(0 2.051cqw 1.795cqw #3927192e)saturate(.98)contrast(1.01);width:100%;height:100%;transform:translateY(.769cqw)scale(1.08)}.wedding-hotspot{z-index:10;appearance:none;color:#0000;cursor:pointer;font:inherit;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#fff0;border:0;border-radius:999px;display:block;position:absolute}.wedding-hotspot:focus-visible{outline-offset:3px;outline:2px solid #d85040b3}.wedding-audio-control{left:max(14px,50vw - 181px);bottom:max(28px, calc(env(safe-area-inset-bottom) + 24px));z-index:20;appearance:none;color:#fffdf8;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#191611c7;border:0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:background .18s,transform .18s;display:flex;position:fixed;box-shadow:0 10px 24px #3b2a1e2e}.wedding-audio-control:hover,.wedding-audio-control:focus-visible{background:#191611eb;transform:translateY(-1px)}.wedding-audio-control:focus-visible{outline-offset:3px;outline:2px solid #d85040b3}.wedding-audio-control:after{content:attr(data-tooltip);color:#fffdf8;opacity:0;pointer-events:none;white-space:nowrap;background:#191611e0;border-radius:999px;padding:6px 9px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700;line-height:1;transition:opacity .16s,transform .16s;position:absolute;bottom:50%;left:calc(100% + 8px);transform:translateY(50%)translate(-4px)}.wedding-audio-control:hover:after,.wedding-audio-control:focus-visible:after{opacity:1;transform:translateY(50%)translate(0)}.wedding-audio-control-alert{background:#d85040f0;animation:1.5s ease-in-out infinite wedding-audio-nudge}.wedding-audio-control-alert:hover,.wedding-audio-control-alert:focus-visible{background:#d85040}.wedding-telegram-notice{top:max(12px, calc(env(safe-area-inset-top) + 10px));z-index:30;color:#3d3934;background:#fffdf9f5;border:1px solid #e6d6c6e6;border-radius:999px;justify-content:space-between;align-items:center;gap:10px;width:min(100vw - 24px,366px);min-height:42px;padding:7px 7px 7px 12px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700;line-height:1.15;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 28px #3b2a1e29}.wedding-telegram-notice span{min-width:0}.wedding-telegram-notice button{appearance:none;color:#fffdf8;cursor:pointer;height:28px;font:inherit;-webkit-tap-highlight-color:transparent;background:#df5143;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:5px;padding:0 10px;line-height:1;display:inline-flex}.wedding-telegram-notice button:focus-visible{outline-offset:2px;outline:2px solid #191611cc}.wedding-hotspot-rsvp{width:42.564%;height:13.333cqw;top:173.846cqw;left:7.179%}.wedding-hotspot-calendar{width:40.769%;height:13.333cqw;top:173.846cqw;left:53.077%}.wedding-hotspot-map{width:33.846%;height:10.769cqw;top:452.564cqw;left:32.051%}.wedding-countdown{z-index:1;color:#766b5d;text-align:center;background:#f0e4d6;border-radius:999px;justify-content:center;align-items:center;width:85.641%;height:12.308cqw;font-family:Arial,Helvetica,sans-serif;font-size:3.42cqw;font-weight:700;line-height:1;display:flex;position:absolute;top:190.769cqw;left:7.179%}.wedding-invite-details{z-index:2;pointer-events:none;width:83.59%;height:37.308cqw;font-family:Arial,Helvetica,sans-serif;position:absolute;top:279.231cqw;left:8.205%}.wedding-invite-details:before{content:"";opacity:0;background:#fffdf9;border-radius:8.205cqw;position:absolute;inset:-1.026cqw}.wedding-invite-details-primed:before{opacity:1}.wedding-invite-details-card{z-index:1;color:#17130f;opacity:0;transform-origin:50%;clip-path:inset(0 round 6.923cqw);filter:blur(.6px);will-change:clip-path, filter, opacity, transform;background:#f4eee7;border:1px solid #e6d6c6;border-radius:6.923cqw;grid-template-columns:13.333cqw minmax(0,1fr);align-content:start;gap:2.564cqw 3.077cqw;width:100%;height:100%;margin:0;padding:5.128cqw 5.897cqw 4.359cqw 8.205cqw;font-size:3.333cqw;font-weight:700;line-height:1.14;display:grid;position:relative;overflow:hidden;transform:rotate(-540deg)scale(.58)}.wedding-invite-details-card dt,.wedding-invite-details-card dd{min-width:0;margin:0}.wedding-invite-details-card dt{color:#7d7469}.wedding-invite-details-revealed .wedding-invite-details-card{animation:.92s cubic-bezier(.16,1,.3,1) both wedding-invite-details-open}.wedding-schedule-times{z-index:2;pointer-events:none;width:16.154%;height:60cqw;font-family:Arial,Helvetica,sans-serif;position:absolute;top:518.59cqw;left:16.923%}.wedding-schedule-times:before{content:"";opacity:0;background:#fffdf9;position:absolute;inset:-1.154cqw -1.026cqw -.769cqw 0}.wedding-schedule-times-primed:before{opacity:1}.wedding-schedule-time-list{z-index:1;opacity:0;row-gap:7.949cqw;margin:0;display:grid;position:relative}.wedding-schedule-times-primed .wedding-schedule-time-list{opacity:1}.wedding-schedule-time{color:#17130f;letter-spacing:0;font-size:5.641cqw;font-weight:700;line-height:1;transition:color .36s}.wedding-schedule-time-active{color:#d85040}.wedding-rsvp-anchor{width:1px;height:1px;scroll-margin-top:max(12px, env(safe-area-inset-top));outline:none;position:absolute;top:827.949cqw;left:0}.wedding-form-field,.wedding-choice-button,.wedding-submit-button{-webkit-tap-highlight-color:transparent;font-family:Arial,Helvetica,sans-serif}.wedding-form-field{z-index:2;color:#3d3934;width:79.487%;box-shadow:none;background:#fffdf9;border:1px solid #ead7c8;border-radius:4.103cqw;outline:none;font-size:max(16px,3.333cqw);font-weight:700;position:absolute;left:9.744%}.wedding-form-field::placeholder{color:#b8aa9d;opacity:1}.wedding-form-field:focus{border-color:#e0b9aa}.wedding-name-field{height:12.821cqw;padding:0 4.615cqw;top:918.205cqw}.wedding-comment-field{resize:none;border:0;width:81.538%;height:26.154cqw;padding:4.103cqw;line-height:1.36;top:1047.69cqw;left:9.231%;box-shadow:inset 0 0 0 1px #ead7c8}.wedding-choice-row{z-index:2;height:9.744cqw;display:grid;position:absolute;left:10.256%}.wedding-choice-attendance{grid-template-columns:22.821cqw 22.821cqw 28.718cqw;column-gap:2.564cqw;top:942.308cqw}.wedding-choice-plus-one{top:963.59cqw}.wedding-choice-transfer{top:984.615cqw}.wedding-choice-overnight{top:1005.64cqw}.wedding-choice-breakfast{top:1026.67cqw}.wedding-choice-plus-one,.wedding-choice-transfer,.wedding-choice-overnight,.wedding-choice-breakfast{grid-template-columns:27.179cqw 21.795cqw 26.154cqw;column-gap:3.077cqw}.wedding-choice-button{appearance:none;color:#766b5d;cursor:pointer;background:#f2ede7;border:0;border-radius:999px;font-size:3.077cqw;font-weight:700;line-height:1}.wedding-choice-button-active{color:#d85040;background:#f8dcdc}.wedding-choice-button:focus-visible,.wedding-submit-button:focus-visible{outline-offset:2px;outline:2px solid #d85040b3}.wedding-submit-button{z-index:2;appearance:none;color:#fffdf8;cursor:pointer;background:#df5143;border:0;border-radius:999px;width:81.538%;height:14.359cqw;font-size:3.333cqw;font-weight:700;line-height:1;position:absolute;top:1077.44cqw;left:9.231%}.wedding-submit-button:disabled{color:#a99d90;cursor:default;background:#eee4d8}.wedding-form-status{z-index:2;color:#d85040;text-align:center;width:79.487%;min-height:8.205cqw;font-family:Arial,Helvetica,sans-serif;font-size:max(11px,2.821cqw);font-weight:700;line-height:1.25;position:absolute;top:1093.85cqw;left:10.256%}.wedding-back-top{right:max(14px,50vw - 181px);bottom:max(28px, calc(env(safe-area-inset-bottom) + 24px));z-index:5;color:#fffdf8;cursor:pointer;opacity:0;pointer-events:none;-webkit-tap-highlight-color:transparent;background:#d85040eb;border:0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-family:Arial,Helvetica,sans-serif;font-size:21px;font-weight:700;line-height:1;transition:opacity .18s,transform .18s;display:flex;position:fixed;transform:translateY(8px);box-shadow:0 10px 24px #3b2a1e2e}.wedding-back-top-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.wedding-back-top:focus-visible{outline-offset:3px;outline:2px solid #191611cc}@supports not (font-size:1cqw){.wedding-hero-photo{height:min(94.872vw,370px);top:min(66.667vw,260px)}.wedding-hero-photo:before,.wedding-hero-photo-frame{border-radius:min(7.692vw,30px) min(8.462vw,33px) min(5.385vw,21px) min(6.667vw,26px);inset:min(-3.077vw,-12px) min(-2.564vw,-10px) min(-4.103vw,-16px)}.wedding-hero-photo-image{filter:drop-shadow(0 min(2.051vw,8px) min(1.795vw,7px) #3927192e)saturate(.98)contrast(1.01);transform:translateY(min(.769vw,3px))scale(1.08)}.wedding-hotspot-rsvp,.wedding-hotspot-calendar{height:min(13.333vw,52px);top:min(173.846vw,678px)}.wedding-hotspot-map{height:min(10.769vw,42px);top:min(452.564vw,1765px)}.wedding-countdown{height:min(12.308vw,48px);font-size:clamp(12px,3.42vw,13.4px);top:min(190.769vw,744px)}.wedding-invite-details{height:min(37.308vw,145.5px);top:min(279.231vw,1089px)}.wedding-invite-details:before{border-radius:min(8.205vw,32px);inset:max(-1.026vw,-4px)}.wedding-invite-details-card{clip-path:inset(0 round min(6.923vw,27px));border-radius:min(6.923vw,27px);grid-template-columns:min(13.333vw,52px) minmax(0,1fr);gap:min(2.564vw,10px) min(3.077vw,12px);padding:min(5.128vw,20px) min(5.897vw,23px) min(4.359vw,17px) min(8.205vw,32px);font-size:clamp(12px,3.333vw,13px)}.wedding-schedule-times{height:min(60vw,234px);top:min(518.59vw,2022.5px)}.wedding-schedule-times:before{inset:max(-1.154vw,-4.5px) max(-1.026vw,-4px) max(-.769vw,-3px) 0}.wedding-schedule-time-list{row-gap:min(7.949vw,31px)}.wedding-schedule-time{font-size:clamp(19px,5.641vw,22px)}}@keyframes wedding-hero-photo-float{0%,to{transform:translate(-.513cqw,.256cqw)rotate(-1.9deg)}35%{transform:translate(1.538cqw,-1.795cqw)rotate(.75deg)}68%{transform:translate(-.769cqw,-.769cqw)rotate(1.15deg)}}@keyframes wedding-invite-details-open{0%{opacity:0;clip-path:inset(0 round 6.923cqw);filter:blur(.6px);transform:rotate(-540deg)scale(.58)}28%{opacity:1}72%{filter:blur();transform:rotate(12deg)scale(1.025)}to{opacity:1;clip-path:inset(0 round 6.923cqw);filter:blur();transform:rotate(0)scale(1)}}@keyframes wedding-audio-nudge{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@media (hover:none),(pointer:coarse){.wedding-hero-photo-drift{animation-duration:4.8s}}@media (prefers-reduced-motion:reduce){.wedding-hero-photo-parallax{transition:none;transform:none}.wedding-hero-photo-drift{animation:none;transform:rotate(-1.1deg)}.wedding-invite-details-card{clip-path:inset(0 round 6.923cqw);filter:none;transform:none}.wedding-invite-details-revealed .wedding-invite-details-card{opacity:1;animation:none}.wedding-schedule-time{transition:none}.wedding-audio-control{transition:none;animation:none}.wedding-audio-control:after{transition:none}}
