:root{--bg:#fff9e5;--text:#000;--text-muted:#333;--placeholder:#999;--border:#e8e0c8;--error:#b44a4a;--font:"Gaegu", cursive;--font-input:"Nunito Sans", sans-serif}*,:before,:after{box-sizing:border-box}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:1.5rem;font-weight:400;line-height:1.5}#root{min-height:100svh}a{color:inherit}button,input,textarea{font-family:inherit}.site-header{z-index:10;background:var(--bg);justify-content:space-between;align-items:center;gap:2rem;padding:2.5rem 3rem 1.5rem;display:flex;position:sticky;top:0}.site-nav-toggle{display:none}.site-header-names{color:#111;cursor:pointer;background:0 0;border:none;flex-shrink:0;margin:0;padding:0;font-size:clamp(1.75rem,4vw,2.25rem);font-weight:400}.site-nav{flex-wrap:wrap;flex-shrink:0;gap:2.5rem;display:flex}.site-nav a{color:#111;transform-origin:50%;-webkit-tap-highlight-color:transparent;touch-action:manipulation;padding-bottom:.12em;font-size:28px;font-weight:400;text-decoration:none;display:inline-block;position:relative}.site-nav a:after{content:"";opacity:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 8' preserveAspectRatio='none'%3E%3Cpath d='M1.5 4.8c9-2.8 16 2.2 26-.4s19-3.6 29-1.2 18 3.4 28 1.8 19-3.2 29-.6 6.5 1.4 6.5 1.4' fill='none' stroke='%23111' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;height:.32em;transition:opacity .25s,transform .25s;position:absolute;bottom:-.05em;left:-.1em;right:-.15em;transform:scaleX(.88)}.site-nav a.is-active:after{opacity:1;transform:scaleX(1)}.site-nav a.site-nav-link--external{align-items:center;display:inline-flex}.site-nav a.site-nav-link--external .site-nav-link-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;flex-shrink:0;width:1.125rem;height:1.125rem;margin-left:.5rem}@media (prefers-reduced-motion:reduce){.site-nav a:after{transition:none}}.password-gate{flex-direction:column;min-height:100svh;display:flex}.password-gate-main{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2rem 3rem 4rem;display:flex}.password-gate-image{width:min(22rem,70vw);height:auto;margin-bottom:.5rem;display:block}.password-gate .hero-names{margin-bottom:1.5rem}.password-gate-form{width:100%;max-width:17rem}.password-gate-input-group{width:100%;position:relative}.password-gate-messages{z-index:1;width:100%;position:absolute;top:calc(100% + .75rem);left:0}.password-gate-field{align-items:center;gap:.5rem;display:flex}.password-gate-input{letter-spacing:.05em;-webkit-text-security:disc;text-security:disc;min-width:0;height:2.75rem;color:var(--text);text-align:left;box-sizing:border-box;caret-color:#b8896f;background:#fffc;border:1px solid #ddd;border-radius:100px;outline:none;flex:1;padding:.75rem 1rem;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.125rem;font-weight:600;line-height:1.25rem}.password-gate-input::placeholder{font-family:var(--font-input);letter-spacing:.01em;color:var(--placeholder);font-size:1rem;font-weight:500}.password-gate-error-wrap{position:relative}.password-gate-error{font-family:var(--font-input);color:var(--error);text-align:left;white-space:nowrap;margin:0;font-size:.875rem;font-weight:500}.password-gate-submit{box-sizing:border-box;color:#fff;width:2.75rem;height:2.75rem;box-shadow:none;transform-origin:50%;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#111;border:1px solid #111;border-radius:100px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.password-gate-submit:disabled{cursor:default}.password-gate-submit:focus-visible{outline:none;box-shadow:0 0 0 3px #00000026}.password-gate-submit-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:1.25rem;height:1.25rem}.app-view{min-height:100svh}.wedding-site{flex-direction:column;min-height:100svh;display:flex}.hero{box-sizing:border-box;justify-content:center;align-items:center;min-height:calc(100svh - 7rem);padding:2rem 3rem;display:flex;position:relative;overflow:clip}.hero-sparkles{z-index:0;pointer-events:none;position:absolute;inset:0}.hero-sparkle-wrap{transform-origin:50%;pointer-events:none;position:absolute}.hero-sparkle{width:100%;height:auto;display:block}.hero-sparkle-wrap.is-floating .hero-sparkle{animation:3.75s ease-in-out infinite hero-sparkle-tilt;animation-delay:var(--sparkle-delay,0s)}.hero-sparkles.is-editing{z-index:25;pointer-events:none}.hero-sparkles.is-editing .hero-sparkle-wrap{pointer-events:auto;cursor:grab;touch-action:none;outline-offset:2px;outline:1px dashed #0000002e}.hero-sparkles.is-editing .hero-sparkle-wrap.has-edit-position{top:var(--edit-top)!important;bottom:auto!important;left:var(--edit-left)!important;right:auto!important}.hero-sparkles.is-editing .hero-sparkle-wrap.is-dragging{cursor:grabbing;z-index:2;outline-color:#00000073}.hero-sparkles.is-editing .hero-sparkle-wrap.is-floating .hero-sparkle{animation:none}.sparkle-editor-label{font-family:var(--font-body);color:#111;white-space:nowrap;pointer-events:none;background:#fff9e5eb;border-radius:.125rem;padding:.125rem .25rem;font-size:.625rem;line-height:1;position:absolute;top:-1rem;left:0}.sparkle-editor-panel{z-index:30;border:1px solid var(--border);background:#fff9e5f5;border-radius:.75rem;padding:.875rem 1rem;position:fixed;bottom:.75rem;left:.75rem;right:.75rem;box-shadow:0 .75rem 1.5rem #0000001f}.sparkle-editor-title{font-family:var(--font-heading);margin:0 0 .375rem;font-size:1.25rem;line-height:1.2}.sparkle-editor-hint,.sparkle-editor-active{font-family:var(--font-body);margin:0 0 .625rem;font-size:.8125rem;line-height:1.4}.sparkle-editor-active{margin-bottom:.5rem;font-weight:700}.sparkle-editor-warning{font-family:var(--font-body);color:#8a3b00;margin:0 0 .625rem;font-size:.8125rem;line-height:1.4}.sparkle-editor-actions{flex-wrap:wrap;gap:.5rem;display:flex}.sparkle-editor-actions button{font-family:var(--font-body);border:1px solid var(--border);color:#111;cursor:pointer;background:#fff;border-radius:999px;padding:.5rem .75rem;font-size:.8125rem}.sparkle-editor-actions button:hover{background:#fffdf5}.sparkle-editor-actions .sparkle-editor-primary{border-color:#111;font-weight:700}@keyframes hero-sparkle-tilt{0%,to{rotate:-10deg}50%{rotate:10deg}}.hero-content{z-index:1;text-align:center;flex-direction:column;align-items:center;display:flex;position:relative;transform:translateY(-.75rem)}body.sparkle-edit-mode .hero-content{pointer-events:none;-webkit-user-select:none;user-select:none}.hero-image{width:min(28rem,75vw);height:auto;margin-bottom:.5rem;display:block}.hero-names{color:var(--text);margin:0;font-size:clamp(2rem,5vw,2.75rem);font-weight:400}.hero-date{color:var(--text-muted);margin:.25rem 0 0;font-size:32px;font-weight:400}.hero-rsvp-button{margin-top:1.25rem}.section{box-sizing:border-box;flex-direction:column;max-width:620px;margin:0 auto;padding:4rem 3rem;scroll-margin-top:6.5rem;display:flex}#venue{justify-content:center;min-height:calc(100svh - 7rem);scroll-margin-top:0}#schedule{justify-content:center;min-height:calc(100svh - 7rem);padding-bottom:5.5rem;scroll-margin-top:0}#faq{padding-top:4.75rem;padding-bottom:2rem}.section-title{text-align:center;color:var(--text);margin:0 0 2rem;font-size:clamp(2rem,5vw,2.5rem);font-weight:400}.schedule-image{width:min(8rem,40vw);height:auto;margin:0 auto 1.5rem;display:block}.schedule-list{margin:0;padding:0;list-style:none}.schedule-item{border-bottom:1px solid var(--border);font-family:var(--font-input);grid-template-columns:7rem 1fr;gap:1rem;padding:1rem 0;font-size:18px;font-weight:500;line-height:1.45;display:grid}.schedule-time{color:var(--text-muted)}.venue-name{text-align:center;color:var(--text-muted);margin:0 0 .25rem;font-size:32px;font-weight:400;line-height:1.45}.venue-address,.venue-note{font-family:var(--font-input);text-align:center;margin:0 0 .75rem;font-size:18px;line-height:1.45}.venue-address{margin-bottom:1rem}.venue-image{border-radius:16px;width:100%;height:auto;margin:0 0 1.5rem;display:block}.venue-map-button{box-sizing:border-box;width:fit-content;font-family:var(--font);color:#111;transform-origin:50%;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;justify-content:center;align-items:center;gap:.5rem;margin:1.5rem auto 0;padding:0;font-size:28px;font-weight:400;line-height:1;text-decoration:none;display:flex}.venue-map-button.schedule-calendar-link{margin-top:3rem}.venue-map-button-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;flex-shrink:0;width:1.375rem;height:1.375rem}.faq-lead-image{width:min(8rem,40vw);height:auto;margin:0 auto 1.5rem;display:block}.faq-image{width:min(8rem,40vw);height:auto;margin:8rem auto 0;display:block}.faq-sections{flex-direction:column;gap:3.5rem;display:flex}.faq-section-title{font-family:var(--font);text-align:center;color:var(--text);margin:0 0 .5rem;font-size:2rem;font-weight:400;line-height:1.4}.faq-list{margin:0}.faq-item{border-bottom:1px solid var(--border)}.faq-item:last-child{border-bottom:none}.faq-question{margin:0}.faq-question-button{width:100%;font-family:var(--font-input);text-align:left;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0;font-size:18px;font-weight:600;line-height:1.45;display:flex}.faq-question-button:focus-visible{border-radius:8px;outline:none;box-shadow:0 0 0 3px #0000001f}.faq-icon{flex-shrink:0;width:.875rem;height:.875rem;position:relative}.faq-icon:before,.faq-icon:after{content:"";background:currentColor;width:.875rem;height:1.5px;transition:transform .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.faq-icon:after{transform:translate(-50%,-50%)rotate(90deg)}.faq-item.is-open .faq-icon:after{transform:translate(-50%,-50%)rotate(90deg)scaleX(0)}.faq-answer-panel{grid-template-rows:0fr;margin:0;transition:grid-template-rows .25s;display:grid}.faq-item.is-open .faq-answer-panel{grid-template-rows:1fr}.faq-answer-inner{overflow:hidden}.faq-answer{font-family:var(--font-input);color:var(--text-muted);white-space:pre-line;margin:0 0 1rem;font-size:18px;line-height:1.45}@media (prefers-reduced-motion:reduce){.faq-answer-panel,.faq-icon:before,.faq-icon:after{transition:none}}#rsvp{padding-top:2rem;padding-bottom:calc(4rem + 200px)}#rsvp .rsvp-button{margin-top:calc(1.5rem + 40px)}.rsvp-note{text-align:center;color:var(--text-muted);margin:0;font-size:32px;font-weight:400}.rsvp-contact{white-space:nowrap;margin-bottom:.75rem}.rsvp-contact a{color:inherit}.rsvp-button{box-sizing:border-box;width:fit-content;font-family:var(--font);color:#fff;box-shadow:none;transform-origin:50%;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#111;border:1px solid #111;border-radius:100px;justify-content:center;align-items:center;gap:.625rem;margin:1.5rem auto 0;padding:.85rem 2.25rem;font-size:32px;font-weight:700;line-height:1;text-decoration:none;display:flex}.rsvp-button:focus-visible{outline:none;box-shadow:0 0 0 3px #00000026}.rsvp-button-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;flex-shrink:0;width:1.375rem;height:1.375rem}@media (prefers-reduced-motion:reduce){.hero-sparkle-wrap.is-floating .hero-sparkle{animation:none}}@media (width<=600px){.site-header{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;padding:2rem 1.5rem 1rem;position:sticky}.site-nav-toggle{color:#111;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;margin:0;padding:0;display:flex}.site-nav-toggle-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-nav-toggle-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:1.75rem;height:1.75rem}.site-nav{background:var(--bg);border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:1.25rem;padding:1.25rem 1.5rem 1.5rem;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 .75rem 1.5rem #0000000f}.site-nav.is-open{display:flex}.site-nav a{font-size:1.75rem}.hero{min-height:calc(100svh - 10rem);padding:1rem 1.5rem}.hero-sparkle-wrap{bottom:auto;right:auto}.hero-sparkle-wrap:first-child{inset:9.8% auto auto 8.3%!important}.hero-sparkle-wrap:nth-child(2){inset:14.8% auto auto 23.9%!important}.hero-sparkle-wrap:nth-child(3){inset:22.3% auto auto 6.5%!important}.hero-sparkle-wrap:nth-child(4){inset:8.8% auto auto 40.7%!important}.hero-sparkle-wrap:nth-child(5){inset:86% auto auto 18.9%!important}.hero-sparkle-wrap:nth-child(6){inset:85.1% auto auto 74.4%!important}.hero-sparkle-wrap:nth-child(7){inset:81.3% auto auto 3.8%!important}.hero-sparkle-wrap:nth-child(8){inset:15% auto auto 70.6%!important}.hero-sparkle-wrap:nth-child(9){inset:79.5% auto auto 86%!important}.hero-sparkle-wrap:nth-child(10){inset:19.3% auto auto 84.9%!important}.hero-sparkle-wrap:nth-child(11){inset:6.2% auto auto 65.6%!important}.hero-sparkle-wrap:nth-child(12){inset:57.9% auto auto 6.4%!important}.hero-sparkle-wrap:nth-child(13){inset:92.1% auto auto 7.1%!important}.hero-sparkle-wrap:nth-child(14){inset:52% auto auto 88.2%!important}.hero-sparkle-wrap:nth-child(15){inset:61.6% auto auto 86.6%!important}.hero-sparkle-wrap:nth-child(16){inset:9.8% auto auto 83.9%!important}.password-gate-main{padding:1rem 1.5rem 3rem}.section{padding:3rem 1.5rem}#venue{min-height:calc(100svh - 10rem)}#schedule{min-height:calc(100svh - 10rem);padding-bottom:4.5rem}#faq{padding-top:3.75rem;padding-bottom:1.5rem}#rsvp{padding-top:1.5rem;padding-bottom:calc(3rem + 200px)}.schedule-item{grid-template-columns:1fr;gap:.25rem}}
