:root{--black: #000000;--paper: #f7f4ed;--red: #c92626;--red-dark: #a43939;--field: #555d40;--muted: #7e7e7e;color:var(--black);background:#444;font-family:Pangolin,Comic Sans MS,Chalkboard SE,cursive;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}@font-face{font-family:Pangolin;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/pangolin-cdvAHBev.ttf) format("truetype")}*{box-sizing:border-box}html{scroll-behavior:smooth;width:100%}body{width:100%;min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:#fff}#root{width:100%;min-height:100vh}img{max-width:100%}button,input{font:inherit}a{color:inherit}button,a,label{-webkit-tap-highlight-color:transparent}.page{width:100%;min-height:100vh;overflow:hidden;background:#fff;position:relative}.floating-hearts-layer{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:1;overflow:hidden}.drifting-particle{position:absolute;top:-10%;color:#c9262614;-webkit-user-select:none;user-select:none;animation:fallAndSway linear infinite;will-change:transform,opacity}@keyframes fallAndSway{0%{transform:translateY(0) translate(0) rotate(0);opacity:0}10%{opacity:.8}90%{opacity:.8}to{transform:translateY(115vh) translate(50px) rotate(360deg);opacity:0}}.section,.closing{position:relative;display:grid;justify-items:center;width:100%;padding:clamp(64px,10vw,130px) clamp(18px,6vw,64px);text-align:center;z-index:2}.white{background:#fff}.textured{background-image:url(/assets/paper-hero-1CPPsjIp.png);background-position:top left;background-repeat:repeat;background-size:736px 1308px}.wave{position:absolute;left:0;z-index:2;width:100%;height:30px;pointer-events:none;background-image:url(/assets/wave-section-DrqQx5UH.svg);background-repeat:repeat-x;background-size:auto 30px}.wave.top{top:-1px}.wave.bottom{bottom:-1px;transform:rotate(180deg)}h1,h2,p{margin:0;overflow-wrap:anywhere;letter-spacing:.5px}p{line-height:1.5}h2{color:var(--red);font-size:clamp(1.75rem,3.8vw,2.4rem);font-weight:400;line-height:1.2;text-transform:uppercase;margin-bottom:8px}.hero{min-height:min(980px,100svh);padding-top:clamp(80px,14vw,160px);padding-bottom:clamp(80px,12vw,130px);align-content:center;gap:clamp(16px,3vw,32px);background-image:url(/assets/paper-hero-1CPPsjIp.png);background-position:top left;background-repeat:repeat;background-size:736px 1308px}.hero .wave{height:52px;background-image:url(/assets/wave-hero-iflgRwDe.svg);background-size:auto 52px}.heart-garland{position:absolute;top:clamp(-38px,-2vw,-12px);left:clamp(-120px,-3vw,-28px);width:clamp(270px,38vw,595px);transform:rotate(-26deg);transform-origin:50% 0;filter:drop-shadow(0 4px 8px rgba(0,0,0,.06))}.hero-copy{margin:0 auto;text-align:center;z-index:5}.formula{margin-bottom:8px;color:#333;font-size:clamp(.95rem,1.8vw,1.6rem);line-height:1.2}.formula span{color:#dd2626;font-size:1.5em;vertical-align:-.08em;display:inline-block;animation:pulseHeart 1.6s infinite ease-in-out}@keyframes pulseHeart{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.hero h1{color:var(--red);font-size:clamp(2rem,4.5vw,3rem);font-weight:400;line-height:1.1;text-transform:uppercase}.hero-polaroids{position:relative;display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));align-items:start;justify-content:center;width:min(540px,90vw);min-height:clamp(330px,32vw,360px);margin:10px auto;z-index:5}.polaroid{position:relative;width:min(280px,43vw);margin:0;padding:12px 12px 42px;background:#fff;box-shadow:0 10px 25px -10px #0000001f,0 2px 4px #0000000a;border:1px solid rgba(0,0,0,.03);transition:transform .2s ease,box-shadow .2s ease}.polaroid img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px}.polaroid figcaption{position:absolute;right:12px;bottom:14px;left:12px;color:var(--black);font-size:clamp(.95rem,2vw,1.4rem);line-height:1.2;text-align:center;text-transform:uppercase}.hero-card.groom{justify-self:end}.hero-card.bride{justify-self:start;margin-top:50px}.date-line,.date-row{display:flex;align-items:center;justify-content:center;gap:clamp(10px,2vw,20px);z-index:5}.date-line strong,.date-row strong{font-size:clamp(1.2rem,2.4vw,1.85rem);font-weight:400;line-height:1.2;text-transform:uppercase;color:var(--red-dark)}.red-mark{width:clamp(34px,4.5vw,48px);height:auto}.red-mark.flip{transform:scaleX(-1)}.music-player-wrap{position:relative;display:flex;justify-content:center;align-items:center;width:100%;height:100%;z-index:10}.swipe-up-prompt{position:absolute;bottom:clamp(28px,5vw,56px);left:clamp(18px,6vw,64px);display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--red-dark);font-size:clamp(.9rem,1.8vw,1.15rem);line-height:1.1;text-align:left;z-index:5}.swipe-up-prompt svg{display:block;width:26px;height:26px}.music-button{position:relative;display:grid;width:64px;height:64px;place-items:center;border:0;border-radius:50%;background:var(--red);color:#fff;cursor:pointer;box-shadow:0 4px 15px #c926264d;transition:transform .18s ease,box-shadow .18s ease}.music-button:hover{box-shadow:0 6px 20px #c9262673}.music-button.is-playing{box-shadow:0 0 0 8px #c9262626}.music-button>img{width:26px;height:26px}.music-ring{position:absolute;inset:-34px;width:132px;height:132px;color:var(--black);font-family:Arial,sans-serif;font-weight:700;animation:spin 16s linear infinite;pointer-events:none;overflow:visible}.music-ring text{fill:currentColor;font-size:10px;letter-spacing:1.3px;text-transform:uppercase}.music-notes-container{position:absolute;inset:-40px;pointer-events:none;overflow:visible;z-index:15}.floating-note{position:absolute;bottom:64px;color:var(--red);font-size:24px;animation:floatUpAndFade 2.5s cubic-bezier(.25,1,.5,1) forwards;opacity:0;text-shadow:0 2px 4px rgba(0,0,0,.05)}@keyframes floatUpAndFade{0%{transform:translateY(0) scale(.6) rotate(0);opacity:0}15%{opacity:.95}to{transform:translateY(-130px) scale(1.35) rotate(45deg);opacity:0}}.intro{min-height:540px;align-content:start;gap:20px;padding-top:40px;padding-bottom:40px}.intro h2{color:var(--red-dark);font-size:clamp(1.9rem,3.5vw,2.4rem)}.intro p{font-size:clamp(1rem,1.8vw,1.18rem);line-height:1.5;color:#333}.intro .accent{color:var(--red-dark);font-size:clamp(1.15rem,2.2vw,1.45rem);font-weight:700}.hands{width:min(720px,86vw);height:auto;margin-top:15px;border-radius:8px;box-shadow:0 8px 24px #0000000d}.grown{min-height:960px;align-content:center;gap:clamp(24px,3.5vw,40px)}.tape-title{display:inline-block;padding:4px 16px;background:var(--black);color:#fff;font-size:clamp(1.2rem,3.4vw,2.2rem);line-height:1.2;text-transform:uppercase;transform:rotate(-1.5deg);box-shadow:2px 4px 10px #00000026}.grown-couple-row{display:flex;flex-direction:column;align-items:center;gap:clamp(16px,3vw,32px);width:min(560px,94vw)}.grown-pair{display:flex;align-items:center;justify-content:center;gap:clamp(20px,4vw,38px);width:100%}.grown-pair img{width:clamp(140px,23vw,210px);aspect-ratio:1 / 1;object-fit:cover;border-radius:50%;border:4px solid #fff;box-shadow:0 10px 25px #00000014}.grown-pair p{width:clamp(110px,18vw,170px);font-size:clamp(1.2rem,3vw,2.1rem);line-height:1.3;text-align:left;text-transform:uppercase;color:#444}.grown-pair.bottom p{text-align:right}.and,.soon{color:var(--red);font-weight:400}.and{font-size:clamp(1.8rem,4vw,2.4rem);line-height:1;text-transform:uppercase;margin:6px 0}.soon{font-size:clamp(1.15rem,2.5vw,1.8rem);margin-top:10px}.countdown{display:grid;grid-template-columns:repeat(4,minmax(62px,1fr));gap:clamp(16px,4vw,42px);width:min(600px,94vw)}.countdown-item{display:grid;justify-items:center;gap:4px;background:#fff;border:1px dashed rgba(201,38,38,.2);box-shadow:0 8px 20px -5px #0000000d;border-radius:12px;padding:16px 8px;position:relative;transform-origin:top center;animation:pendulumSwing 4.5s ease-in-out infinite alternate;transition:transform .3s ease,box-shadow .3s ease}.countdown-item:before{content:"";position:absolute;top:-12px;left:50%;transform:translate(-50%);width:1px;height:12px;background:var(--muted);opacity:.35}.countdown-item:hover{transform:scale(1.05) rotate(0)!important;box-shadow:0 12px 25px #00000014}.countdown-item:nth-child(1){animation-delay:-.2s}.countdown-item:nth-child(2){animation-delay:-1.3s}.countdown-item:nth-child(3){animation-delay:-.8s}.countdown-item:nth-child(4){animation-delay:-2s}@keyframes pendulumSwing{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}.countdown-item strong{min-width:2ch;font-size:clamp(2rem,5.2vw,3.4rem);font-weight:400;line-height:1;color:#333}.countdown-item span{color:var(--red);font-size:clamp(.85rem,2vw,1.25rem);line-height:1}.details{min-height:750px;align-content:start;gap:22px;padding-top:40px;padding-bottom:40px}.organizers,.time{font-size:clamp(1.3rem,2.6vw,1.8rem);line-height:1.3;text-transform:uppercase;color:#444}.calendar{width:min(524px,94vw);margin-top:18px;background:#fff;border:1px solid rgba(0,0,0,.04);border-radius:12px;box-shadow:0 10px 30px #0000000d;padding:clamp(16px,4vw,24px);transform:rotate(-1deg)}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.weekday-row{border-bottom:2px dashed rgba(201,38,38,.15);padding-bottom:10px;margin-bottom:10px}.weekday-row span,.calendar-grid span{display:grid;place-items:center;min-height:clamp(30px,5vw,44px);color:#333;font-size:clamp(.85rem,1.8vw,1.15rem);line-height:1}.weekday-row span{color:var(--red-dark);font-weight:700}.calendar-grid span{position:relative;min-height:clamp(30px,4.5vw,42px);background:#fff;border-radius:6px;transition:background-color .25s ease,transform .2s ease,color .2s ease}.calendar-grid span:not(:empty):not(.selected){cursor:pointer}.calendar-grid span:not(:empty):not(.selected):hover{background-color:#c926260d;transform:scale(1.08);color:var(--red)}.calendar-grid .selected{z-index:1;font-weight:700}.calendar-grid .selected img{position:absolute;width:160%;max-width:none;opacity:.96;pointer-events:none}.venue{min-height:960px;align-content:center;gap:24px}.venue-layout{display:flex;align-items:center;justify-content:center;gap:clamp(12px,4vw,54px);width:min(660px,94vw)}.venue-note{display:grid;justify-items:center;align-self:start;padding-top:clamp(22px,7vw,70px)}.venue-note h2{margin-bottom:-4px}.venue-note img{width:clamp(88px,17vw,155px);transform:rotate(4deg)}.venue-card{width:clamp(210px,32vw,320px)}.venue-card figcaption{font-size:clamp(.95rem,1.8vw,1.4rem)}.address{margin-top:12px;font-size:clamp(.95rem,1.8vw,1.15rem);line-height:1.4;color:#333}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 32px;border:none;border-radius:6px;background:var(--red);box-shadow:0 4px 15px #c926264d;color:#fff;font-size:1rem;font-weight:700;line-height:1;text-decoration:none;cursor:pointer;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}.button:hover{background-color:var(--red-dark);box-shadow:0 6px 20px #c9262673}.rsvp{min-height:960px;align-content:center;gap:20px}.rsvp-subtitle{font-size:clamp(.95rem,1.7vw,1.15rem);color:#555}.rsvp-card{background:#fff;border-radius:16px;box-shadow:0 15px 35px #0000000d,0 3px 10px #00000005;padding:clamp(36px,7vw,60px) clamp(22px,5vw,42px);position:relative;width:min(500px,92vw);margin:24px auto 0;border:1px dashed rgba(201,38,38,.2);text-align:left}.rsvp-ribbon{position:absolute;top:-26px;left:50%;transform:translate(-50%) rotate(-1deg);width:clamp(140px,25vw,190px);z-index:10;filter:drop-shadow(0 3px 5px rgba(0,0,0,.1))}.rsvp-card form{display:grid;gap:24px}.input-group{display:grid;gap:6px}.input-label{color:var(--field);font-weight:700;font-size:clamp(1rem,1.8vw,1.15rem)}.underlined-input{border:none!important;border-bottom:2px dashed rgba(85,93,64,.35)!important;background:transparent!important;border-radius:0!important;padding:8px 4px!important;font-size:1.15rem!important;color:var(--black)!important;width:100%;transition:border-bottom-color .25s ease}.underlined-input:focus{outline:none!important;border-bottom-color:var(--red)!important}.underlined-input::placeholder{color:var(--muted);opacity:.55}.rsvp-options{border:none;margin:0;padding:0}.rsvp-options legend{color:var(--field);font-weight:700;font-size:clamp(1rem,1.8vw,1.15rem);margin-bottom:12px}.radio-group{display:flex;gap:clamp(24px,5vw,44px)}.custom-radio{display:flex;align-items:center;gap:10px;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none;font-size:1.15rem}.custom-radio input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.radio-checkmark{height:22px;width:22px;background-color:#fff;border:2px solid var(--field);border-radius:50%;display:inline-block;position:relative;transition:all .2s ease}.custom-radio:hover input~.radio-checkmark{border-color:var(--red);background-color:#c9262608}.custom-radio input:checked~.radio-checkmark{background-color:#fff;border-color:var(--red);transform:scale(1.05)}.radio-checkmark:after{content:"♥";position:absolute;display:none;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--red);font-size:14px;line-height:1}.custom-radio input:checked~.radio-checkmark:after{display:block}.radio-text{color:#333;font-size:1.1rem}.rsvp-submit{width:100%;min-height:48px;font-weight:700;font-size:1.1rem;border-radius:8px!important;margin-top:4px}.submitted{color:var(--red);font-size:1.1rem;font-weight:700;margin-top:15px}.closing{min-height:450px;align-content:start;gap:24px;padding-top:30px;padding-bottom:20px}.closing-text{font-size:clamp(1.15rem,2.2vw,1.6rem)!important;color:var(--red-dark)}.closing img{width:min(310px,58vw);margin-top:10px;border-radius:8px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:700px){.section,.closing{padding:72px 20px}h2{font-size:clamp(1.8rem,7.5vw,2.25rem)}.hero{min-height:max(720px,100svh);gap:18px;padding-top:96px;padding-bottom:88px}.heart-garland{top:-20px;left:-92px;width:min(360px,92vw)}.hero-polaroids{width:min(430px,calc(100vw - 24px));min-height:310px}.hero-card.groom{transform:translate(16px) rotate(-9deg)}.hero-card.bride{transform:translate(-12px,42px) rotate(9deg)}.intro{min-height:auto;gap:18px;padding-top:64px;padding-bottom:64px}.hands{width:min(560px,calc(100vw - 40px))}.grown{min-height:auto;gap:28px;padding-top:88px;padding-bottom:88px}.grown-pair{gap:16px}.countdown{width:min(560px,calc(100vw - 40px));gap:14px}.details{min-height:auto;gap:20px;padding-top:64px;padding-bottom:72px}.date-row{max-width:calc(100vw - 40px)}.venue{min-height:auto;padding-top:88px;padding-bottom:88px}.venue-layout{align-items:start;width:min(620px,calc(100vw - 40px))}.venue-note{padding-top:20px}.rsvp{min-height:auto;padding-top:88px;padding-bottom:88px}.rsvp-card{width:min(500px,calc(100vw - 40px))}.radio-group{flex-wrap:wrap;row-gap:16px}.custom-radio{min-height:44px}.button{min-height:50px}.closing{min-height:auto;padding-top:56px;padding-bottom:max(40px,env(safe-area-inset-bottom))}}@media(max-width:460px){.section,.closing{padding-right:max(18px,env(safe-area-inset-right));padding-left:max(18px,env(safe-area-inset-left))}.hero{min-height:max(680px,100svh);gap:16px;padding-top:86px;padding-bottom:78px}.hero h1{font-size:clamp(2rem,11vw,2.65rem)}.formula{font-size:1.05rem}.heart-garland{top:-16px;left:-88px;width:300px}.hero-polaroids{grid-template-columns:repeat(2,minmax(0,1fr));width:calc(100vw - 20px);min-height:250px}.polaroid{width:min(180px,46vw);padding:8px 8px 32px}.polaroid figcaption{right:8px;bottom:10px;left:8px;font-size:.95rem}.hero-card.bride{margin-top:38px}.music-player-wrap{margin-top:8px}.intro{padding-top:56px;padding-bottom:56px}.intro h2{font-size:clamp(1.8rem,9vw,2.15rem)}.intro p{font-size:1.05rem}.hands{width:calc(100vw - 36px);margin-top:8px}.grown{gap:24px;padding-top:78px;padding-bottom:78px}.tape-title{max-width:calc(100vw - 44px);padding:7px 12px;font-size:clamp(1.15rem,6vw,1.55rem)}.grown-couple-row{width:calc(100vw - 36px)}.grown-pair{gap:12px}.grown-pair img{width:clamp(118px,38vw,150px);border-width:3px}.grown-pair p{width:min(40vw,145px);font-size:clamp(1.05rem,5.6vw,1.35rem)}.and{font-size:1.65rem}.countdown{grid-template-columns:repeat(2,minmax(0,1fr));width:min(340px,calc(100vw - 44px));gap:18px 16px}.countdown-item{min-height:92px;padding:18px 10px 14px}.countdown-item strong{font-size:clamp(2.25rem,12vw,3rem)}.countdown-item span{font-size:1rem}.details{gap:18px;padding-top:56px;padding-bottom:64px}.organizers,.time{font-size:1.25rem}.date-row{width:calc(100vw - 36px);gap:10px}.date-row strong{font-size:clamp(1.05rem,5.5vw,1.3rem)}.date-row .red-mark{flex:0 0 auto;width:40px}.date-line{margin-top:12px}.calendar{width:min(430px,calc(100vw - 32px));padding:18px 14px}.weekday-row,.calendar-grid{gap:3px}.weekday-row span,.calendar-grid span{min-height:42px;font-size:1.05rem}.calendar-grid span{min-height:44px}.venue-layout{width:calc(100vw - 36px);gap:4px}.venue-card{width:min(240px,64vw)}.venue-note img{width:min(88px,25vw)}.venue-note h2{font-size:1.65rem}.address{font-size:1.05rem}.venue .button{width:min(280px,calc(100vw - 44px))}.rsvp{padding-top:78px;padding-bottom:78px}.rsvp-card{width:calc(100vw - 36px);margin-top:18px;padding:44px 20px 28px}.rsvp-ribbon{top:-22px;width:150px}.radio-group{display:grid;grid-template-columns:1fr;gap:8px}.custom-radio{width:100%;min-height:48px;padding:7px 10px;border-radius:10px;background:#c9262609}.radio-checkmark{flex:0 0 24px;width:24px;height:24px}.radio-text{font-size:1.05rem}.underlined-input{min-height:48px;font-size:1rem!important}.rsvp-submit{min-height:52px}.closing img{width:min(320px,76vw)}}@media(max-width:360px){.hero-polaroids{min-height:232px}.polaroid{padding:7px 7px 30px}.grown-pair img{width:116px}.grown-pair p{font-size:1rem}.calendar{width:calc(100vw - 24px);padding:14px 8px}.weekday-row span,.calendar-grid span{font-size:.95rem}}@media(max-height:600px)and (orientation:landscape)and (max-width:950px){.hero{min-height:auto;padding-top:76px;padding-bottom:76px}.section,.closing{min-height:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
