@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Montserrat:wght@400;500;600&display=swap";:root{color:#fff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#1a1a1a;font-family:Helvetica Neue,Arial,sans-serif}html{background:#1a1a1a;min-width:320px}body{min-width:320px;min-height:100vh;margin:0}#root{width:100%;min-height:100vh}:root{--wine:#4d001c;--wine-deep:#25000f;--wine-soft:#650027;--text:#fff8fb;--muted:#fff8fbc7}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-width:320px;color:var(--text);background:#140d14;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;overflow-x:hidden}button,input{font:inherit}button{cursor:pointer}h1,h2,h3{font-family:Cormorant Garamond,Georgia,serif;font-weight:400}img{max-width:100%;display:block}.app{background:linear-gradient(180deg, #28001133, transparent 18%), linear-gradient(180deg, var(--wine) 0%, var(--wine-deep) 100%);width:min(100%,440px);min-height:100vh;margin:0 auto;overflow:hidden;box-shadow:0 0 70px #00000059}section{text-align:center;width:100%;max-width:none;margin:0;padding:88px 24px;position:relative;overflow:hidden}section>h2{margin-bottom:24px;font-size:clamp(2.25rem,10vw,3.25rem);line-height:.98}section>p{color:var(--muted)}[data-reveal]{opacity:0;will-change:opacity, transform;transition:opacity .8s,transform .8s cubic-bezier(.22,1,.36,1);transform:translateY(24px)}[data-reveal].revealed,[data-reveal].t-animate_started{opacity:1;transform:translateY(0)}[data-reveal].revealed>:first-child{transition-delay:80ms}[data-reveal].revealed>:nth-child(2){transition-delay:.16s}[data-reveal].revealed>:nth-child(3){transition-delay:.24s}[data-reveal].revealed>:nth-child(4){transition-delay:.32s}[data-reveal].revealed>:nth-child(5){transition-delay:.4s}.shine{border:0;position:relative;overflow:hidden}.shine:before{content:"";pointer-events:none;background:linear-gradient(90deg,#fff0,#ffffff61,#fff0);width:50%;height:100%;animation:3s infinite shine-animation;position:absolute;top:0;left:-100%;transform:skew(-20deg)}@keyframes shine-animation{0%{left:-100%}20%,to{left:200%}}.landing-screen{z-index:9999;background:#2a2a2a;justify-content:center;align-items:center;transition:opacity 1.2s .5s,visibility 1.2s .5s;display:flex;position:fixed;inset:0;overflow:hidden}.landing-screen.open{opacity:0;visibility:hidden}.landing-polygon{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform 1.2s cubic-bezier(.4,0,.2,1);position:absolute}.landing-screen.open .polygon-1{transform:translateY(-100vh)}.landing-screen.open .polygon-2{transform:translateY(100vh)}.landing-screen.open .polygon-3{transform:translate(-100vw)}.landing-screen.open .polygon-4{transform:translate(100vw)}.landing-enter{z-index:10;color:#fff;background:#35001433;border:1px solid #ffffff73;border-radius:999px;justify-content:center;align-items:center;width:190px;height:58px;display:flex;position:relative}.landing-enter .click-bg{z-index:-1;border-radius:inherit;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.landing-enter span{letter-spacing:.18em;text-transform:uppercase;font-size:13px}.fade-out{opacity:0;pointer-events:none;transition:opacity .5s}.navbar{z-index:1000;background:linear-gradient(#14000bb8,#0000);justify-content:space-between;align-items:center;width:min(100%,440px);min-height:68px;padding:16px 22px;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}.nav-logo{letter-spacing:.02em;font-family:Cormorant Garamond,Georgia,serif;font-size:22px}.nav-links{display:none}.nav-music{color:#fff;background:#27000f4d;border:1px solid #ffffff7a;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.spinning{animation:3s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hero{background:var(--wine-deep);justify-content:center;align-items:center;height:min(100svh,763px);min-height:640px;padding:0;display:flex}.hero-stage{isolation:isolate;width:100%;height:100%;position:relative}.hero-stage:after{z-index:4;content:"";pointer-events:none;background:linear-gradient(#16000b47,#0000 34%,#16000b70),linear-gradient(90deg,#12000933,#0000 24% 76%,#12000933);position:absolute;inset:0}.hero-shape,.hero-video,.hero-wash,.hero-bg{width:100%;height:100%;position:absolute;inset:0}.hero-shape{z-index:0;background-color:var(--wine);opacity:.9;pointer-events:none;background-position:50%;background-size:cover}.hero-video{z-index:1;object-fit:cover;object-position:center;background:var(--wine-deep);filter:saturate(.78)contrast(1.03)brightness(.7);display:block}.hero-wash{z-index:2;mix-blend-mode:multiply;pointer-events:none;background:radial-gradient(at 50% 43%,#6500270a,#25000f70 78%),linear-gradient(#3000151a,#1f000e80)}.hero-bg{z-index:3;pointer-events:none;overflow:visible}.ruby{--parallax-x:0px;--parallax-y:0px;--ruby-rotate:0deg;object-fit:contain;filter:drop-shadow(0 5px 9px #0006);height:auto;transform:translate3d(var(--parallax-x), var(--parallax-y), 0) rotate(var(--ruby-rotate));transition:transform .15s ease-out;position:absolute}.ruby-1{--ruby-rotate:-18deg;width:11%;top:13%;left:18%}.ruby-2{--ruby-rotate:16deg;width:13%;top:72%;left:12%}.ruby-4{--ruby-rotate:-8deg;width:10%;top:27%;right:12%}.ruby-6{--ruby-rotate:18deg;width:12%;top:62%;right:22%}.ruby-7{--ruby-rotate:-12deg;width:8%;top:42%;left:34%}.ruby-8{--ruby-rotate:-20deg;width:13%;top:79%;right:11%}.ruby-noroot{--ruby-rotate:9deg;width:10%;top:9%;right:38%}.hero-content{z-index:6;color:#fff;text-shadow:0 4px 14px #00000061;flex-direction:column;align-items:center;width:78%;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-content[data-reveal]{transform:translate(-50%,calc(24px - 50%))}.hero-content[data-reveal].revealed,.hero-content[data-reveal].t-animate_started{transform:translate(-50%,-50%)}.hero-viktor{order:1;font-size:clamp(4rem,18vw,5.8rem);line-height:.82}.hero-paula{order:3;font-size:clamp(4rem,18vw,5.8rem);line-height:.82}.hero-ampersand{order:2;margin:10px 0 6px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.5rem,11vw,4rem);line-height:.8}.hero-wedding{letter-spacing:.36em;text-transform:uppercase;order:4;margin-top:24px;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:12px}.hero-date{letter-spacing:.25em;order:5;margin-top:13px;font-size:17px}.letter{background:linear-gradient(#64002740,#25000f2e);padding-top:76px;padding-bottom:78px}.trace-top,.trace-bottom{opacity:.92;width:112px;margin-left:auto;margin-right:auto}.trace-top{margin-bottom:30px}.trace-bottom{margin-top:32px}.letter h2{max-width:340px;margin-left:auto;margin-right:auto}.letter p{max-width:350px;color:var(--muted);margin:18px auto 0;font-size:15px;line-height:1.8}.countdown{background:#12000a2e;flex-direction:column;align-items:center;display:flex}.countdown .trace-top{order:1}.countdown-kicker{color:var(--muted);letter-spacing:.28em;text-transform:uppercase;order:2;margin:2px auto 22px;font-size:11px}.countdown-display{order:3;justify-content:center;align-items:flex-start;gap:clamp(5px,2vw,11px);width:100%;display:flex}.countdown h2{order:4;max-width:280px;margin:27px auto 0}.countdown .trace-bottom{order:5}.countdown-item{flex-direction:column;align-items:center;min-width:52px;display:flex}.countdown-item span{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.25rem,10vw,3.5rem);line-height:.9}.countdown-item label{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin-top:10px;font-size:9px}.countdown-sep{margin-top:1px;font-family:Cormorant Garamond,Georgia,serif;font-size:2.2rem;line-height:.9}.schedule{background:radial-gradient(circle at 50% 42%,#8400302e,#0000 54%),linear-gradient(#25000f4d,#12000a1f);padding-top:70px;padding-bottom:72px}.schedule .trace-top{margin-bottom:24px}.schedule>h2{max-width:310px;margin:0 auto;font-size:clamp(2.55rem,11vw,3.45rem)}.schedule-intro{max-width:280px;color:var(--muted);letter-spacing:.03em;margin:14px auto 0;font-size:12px;line-height:1.7}.schedule-list{text-align:left;width:100%;max-width:360px;margin:30px auto 0;padding:0 4px}.schedule-item{border-bottom:1px solid #fff8fb29;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:70px;display:grid;position:relative}.schedule-item:first-child{border-top:1px solid #fff8fb29}.schedule-item:not(:last-child):after{content:"";background:#fff8fb33;width:1px;position:absolute;top:52px;bottom:-1px;left:16px}.schedule-marker{z-index:1;background:var(--wine-deep);border:1px solid #fff8fbb8;border-radius:50%;place-items:center;width:18px;height:18px;margin-left:7px;display:grid;position:relative}.schedule-marker:not(.schedule-marker-featured):before{content:"";background:#fff8fbc7;border-radius:50%;width:7px;height:7px}.schedule-marker-featured{border-color:#fff8fbe6;width:28px;height:28px;margin-left:2px;box-shadow:0 0 0 4px #fff8fb0f}.schedule-dot{object-fit:contain;width:20px;height:20px}.schedule-item .event{color:#fff8fb;font-family:Cormorant Garamond,Georgia,serif;font-size:22px;line-height:1.1}.schedule-item .time{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:11px;font-weight:500}.schedule .trace-bottom{margin-top:30px}@media (width<=360px){.schedule-item .event{font-size:20px}.schedule-item .time{letter-spacing:.1em;font-size:10px}}.location{background:linear-gradient(#6500273d,#25000f4d)}.location-card img{aspect-ratio:343/361;object-fit:cover;border-radius:3px;width:min(100%,343px);margin:30px auto 0}.location-info{margin:20px auto 0}.location-info h3{font-size:32px}.location-info p{max-width:290px;color:var(--muted);margin:8px auto 0;font-size:13px;line-height:1.6}.dresscode{background:#12000a29;flex-direction:column;align-items:center;display:flex}.dresscode h2{order:4;margin-top:31px;margin-bottom:0}.dresscode>p{order:2;max-width:350px;margin-bottom:34px;font-size:14px;line-height:1.7}.dresscode-cards{order:3;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;display:grid}.dress-card img{object-fit:contain;width:100%;height:165px;margin:0 auto 13px}.dress-card p{color:var(--muted);font-size:12px;line-height:1.55}.gender-title{margin-bottom:5px;font-weight:600;color:#fff!important}.details{background:radial-gradient(at 50% 28%,#8700334d,#0000 58%),linear-gradient(#65002752,#25000f3d)}.details>p{max-width:340px;margin:0 auto;font-size:14px;line-height:1.7}.details .gift-text{margin-top:17px;font-style:italic}.contact-box{color:var(--muted);margin:22px 0 0;font-size:14px;line-height:1.8}.details-decor{pointer-events:none;width:min(100%,360px);height:232px;margin:42px auto 0;position:relative}.details-ruby{--ruby-rotate:0deg;object-fit:contain;filter:drop-shadow(0 9px 10px #00000070);width:auto;height:auto;transform:rotate(var(--ruby-rotate));position:absolute}.details-ruby-1{--ruby-rotate:-34deg;width:22%;top:58px;left:-1%}.details-ruby-2{--ruby-rotate:28deg;width:18%;top:10px;left:17%}.details-ruby-3{--ruby-rotate:-17deg;width:23%;top:48px;right:18%}.details-ruby-4{--ruby-rotate:25deg;width:24%;top:85px;right:-2%}.details-ruby-5{--ruby-rotate:-13deg;width:22%;bottom:9px;left:16%}.details-ruby-6{--ruby-rotate:19deg;width:20%;bottom:3px;right:19%}.details-ruby-7{--ruby-rotate:8deg;width:16%;top:77px;left:42%}.details-ruby-8{--ruby-rotate:-27deg;width:15%;bottom:15px;right:43%}.rsvp{flex-direction:column;align-items:center;display:flex}.rsvp h2{order:2;max-width:300px;margin-bottom:13px}.rsvp-subtitle{order:1;max-width:330px;margin-bottom:24px;font-size:14px;line-height:1.7}.rsvp-btn{color:#28000f;letter-spacing:.18em;text-transform:uppercase;background:#fff;border:0;border-radius:999px;order:3;padding:14px 42px;font-size:13px}.rsvp-modal-overlay{z-index:2000;background:#000000c7;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.rsvp-modal{color:#1f1018;text-align:center;background:#fff;border-radius:5px;width:min(100%,390px);padding:42px 26px 28px;position:relative}.rsvp-modal h3{margin-bottom:9px;font-size:28px}.rsvp-modal>p{color:#6c5c64;margin-bottom:25px;font-size:13px}.close-btn{color:#1f1018;background:0 0;border:0;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:12px;right:12px}.modal-input{color:#1f1018;border:1px solid #d8cfd3;border-radius:3px;width:100%;margin-bottom:16px;padding:13px 14px}.radio-group{color:#4d3e46;text-align:left;flex-direction:column;gap:10px;margin-bottom:20px;font-size:13px;display:flex}.radio-title{color:#1f1018;margin-bottom:2px;font-weight:600}.submit-btn{color:#fff;letter-spacing:.15em;text-transform:uppercase;background:#260010;border:0;border-radius:999px;width:100%;padding:13px;font-size:13px}.final-message{background:linear-gradient(#12000a24,#09000561);padding-top:76px;padding-bottom:112px}.final-message>p{color:var(--muted);letter-spacing:.1em;margin-top:-12px;font-size:14px}.final-image-wrapper{aspect-ratio:900/750;isolation:isolate;width:min(100%,360px);margin:38px auto 0;position:relative}.final-photo{z-index:2;object-fit:cover;border-radius:3px;width:100%;height:100%;position:relative}.final-overlay{z-index:1;object-fit:contain;opacity:.7;width:124%;height:132%;position:absolute;top:-16%;left:-12%}@media (width<=360px){section{padding-left:18px;padding-right:18px}.nav-logo{font-size:20px}.countdown-display{gap:2px}.countdown-item{min-width:48px}.countdown-item span{font-size:2rem}.countdown-sep{font-size:1.8rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
