@import "https://tetunori.github.io/fluent-emoji-webfont/dist/FluentEmojiColor.css";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green:#74c044;--yellow:#ffea2d;--orange:#ff572d;--pink:#ff005d;--purple:#70149a;--blue:#3c489b;--black:#000;--white:#fafafa;--border-w:3px;--shadow:5px 5px 0 var(--black);--shadow-lg:8px 8px 0 var(--black);--radius:10px;--font-body:"DM Sans", system-ui, sans-serif;--font-heading:"Bricolage Grotesque", system-ui, sans-serif}html{-webkit-text-size-adjust:100%;font-size:18px}body{font-family:var(--font-body);color:var(--black);background:var(--black);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow:hidden}#root{scroll-snap-type:y mandatory;scroll-behavior:smooth;height:100dvh;overflow-y:auto}h1,h2,h3{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:-.02em;font-weight:800;line-height:1.1}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}img{max-width:100%;display:block}.slide{scroll-snap-align:start;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:clamp(24px,6vw,64px) clamp(20px,5vw,80px);display:flex;position:relative;overflow:hidden}.slide-inner{text-align:center;flex-direction:column;align-items:center;gap:clamp(16px,3vw,28px);width:100%;max-width:720px;display:flex}.slide-emoji,.hero-frog,.info-card-icon{font-family:Fluent Emoji Color,sans-serif}.slide-emoji{filter:drop-shadow(3px 3px #00000026);font-size:clamp(48px,10vw,80px);line-height:1}.slide h1{margin:0;font-size:clamp(32px,7vw,64px)}.slide h2{margin:0;font-size:clamp(24px,5vw,44px)}.slide h3{margin:0;font-size:clamp(18px,3.5vw,28px)}.slide p,.slide li{font-size:clamp(15px,2.5vw,19px);line-height:1.6}.subtitle{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.08em;opacity:.85;font-weight:700;font-size:clamp(14px,2.5vw,20px)!important}.badge{border:var(--border-w) solid var(--black);border-radius:var(--radius);box-shadow:var(--shadow);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.04em;background:var(--white);color:var(--black);padding:8px 20px;font-size:clamp(16px,3vw,22px);font-weight:800;display:inline-block}.neo-btn{border:var(--border-w) solid var(--black);border-radius:var(--radius);box-shadow:var(--shadow);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.04em;background:var(--white);color:var(--black);cursor:pointer;align-items:center;gap:10px;padding:12px 24px;font-size:clamp(14px,2.5vw,18px);font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.neo-btn:hover{box-shadow:3px 3px 0 var(--black);transform:translate(2px,2px)}.neo-btn:active{box-shadow:1px 1px 0 var(--black);transform:translate(4px,4px)}.neo-btn svg{flex-shrink:0;width:20px;height:20px}.neo-btn--green{background:var(--green)}.neo-btn--yellow{background:var(--yellow)}.neo-btn--orange{background:var(--orange);color:var(--white)}.neo-btn--pink{background:var(--pink);color:var(--white)}.neo-btn--purple{background:var(--purple);color:var(--white)}.neo-btn--blue{background:var(--blue);color:var(--white)}.btn-row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.slide--yellow{background:var(--yellow)}.slide--white{background:var(--white)}.slide--green{background:var(--green)}.slide--pink{background:var(--pink);color:var(--white)}.slide--blue{background:var(--blue);color:var(--white)}.slide--purple{background:var(--purple);color:var(--white)}.slide--orange{background:var(--orange)}.slide--pink .badge,.slide--blue .badge,.slide--purple .badge{color:var(--black)}.hero-frog{font-size:clamp(64px,14vw,120px);line-height:1;animation:2s ease-in-out infinite frogBounce}@keyframes frogBounce{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-12px)rotate(-3deg)}75%{transform:translateY(-6px)rotate(3deg)}}.hero-date{background:var(--orange);color:var(--white);border:var(--border-w) solid var(--black);border-radius:var(--radius);box-shadow:var(--shadow);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.04em;padding:10px 28px;font-size:clamp(18px,3.5vw,28px);font-weight:800;transform:rotate(-2deg)}.guest-name{font-family:var(--font-heading);color:var(--pink);font-weight:800;display:inline}.slide--pink .guest-name,.slide--orange .guest-name{color:var(--yellow)}.scroll-hint{opacity:.7;text-transform:uppercase;letter-spacing:.1em;flex-direction:column;align-items:center;gap:6px;font-size:13px;font-weight:700;animation:1.8s ease-in-out infinite hintBounce;display:flex;position:absolute;bottom:clamp(16px,3vw,32px);left:50%;transform:translate(-50%)}.scroll-hint svg{width:28px;height:28px}@keyframes hintBounce{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(8px)}}.scroll-hint--up{cursor:pointer;animation-name:hintBounceUp}@keyframes hintBounceUp{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-8px)}}.time-block{border:var(--border-w) solid var(--black);border-radius:var(--radius);box-shadow:var(--shadow-lg);background:var(--yellow);font-family:var(--font-heading);color:var(--black);align-items:center;gap:8px;padding:12px 28px;font-size:clamp(36px,7vw,64px);font-weight:800;display:inline-flex}.slide--green .time-block{background:var(--white)}.timeline{flex-direction:column;gap:16px;width:100%;max-width:560px;display:flex}.timeline-item{text-align:left;border:var(--border-w) solid var(--black);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--white);color:var(--black);align-items:flex-start;gap:14px;padding:14px 20px;display:flex}.timeline-time{font-family:var(--font-heading);white-space:nowrap;color:var(--purple);font-size:clamp(18px,3vw,24px);font-weight:800}.timeline-text{font-size:clamp(14px,2.2vw,17px);line-height:1.5}.cards-grid{grid-template-columns:repeat(3,1fr);gap:16px;width:100%;max-width:800px;display:grid}@media (width<=700px){.cards-grid{grid-template-columns:1fr}}.info-card{border:var(--border-w) solid var(--black);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--white);color:var(--black);text-align:left;flex-direction:column;gap:8px;padding:clamp(16px,3vw,24px);display:flex}.info-card-icon{font-size:32px;line-height:1}.info-card h3{margin:0;font-size:clamp(16px,2.5vw,20px)}.info-card p{opacity:.85;font-size:clamp(13px,2vw,15px);line-height:1.5}.swatches-wrap{flex-direction:column;align-items:center;gap:10px;display:flex}.swatches{gap:8px;display:flex}.swatch{border:var(--border-w) solid var(--black);width:clamp(36px,7vw,52px);height:clamp(36px,7vw,52px);box-shadow:3px 3px 0 var(--black);border-radius:8px}.swatches-label{opacity:.85;font-size:clamp(12px,2vw,15px);font-weight:500}.rsvp-list{flex-direction:column;gap:12px;width:100%;max-width:560px;display:flex}.rsvp-item{border:var(--border-w) solid var(--black);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--white);color:var(--black);text-align:left;padding:14px 20px}.rsvp-item-label{font-family:var(--font-heading);text-transform:uppercase;margin-bottom:4px;font-size:clamp(14px,2.3vw,17px);font-weight:700}.rsvp-item-options{opacity:.7;font-size:clamp(13px,2vw,15px);font-style:italic}.route-block{border:var(--border-w) solid var(--black);border-radius:var(--radius);font-family:var(--font-heading);letter-spacing:.06em;background:var(--white);color:var(--black);padding:14px 28px;font-size:clamp(16px,3vw,24px);font-weight:700;display:inline-block}.closing{font-family:var(--font-heading);margin-top:12px;font-size:clamp(18px,3.5vw,28px);font-weight:700}.slide:before{content:"";pointer-events:none;opacity:.04;background-image:radial-gradient(circle, var(--black) 1px, transparent 1px);background-size:24px 24px;position:absolute;inset:0}.slide--white:before{opacity:.06}.slide--yellow:after,.slide--green:after,.slide--pink:after,.slide--blue:after,.slide--purple:after,.slide--orange:after{content:"";background:var(--black);height:4px;position:absolute;bottom:0;left:0;right:0}.slide-counter{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.1em;opacity:.35;pointer-events:none;font-size:clamp(11px,1.5vw,14px);font-weight:800;position:absolute;top:clamp(12px,2vw,20px);right:clamp(12px,2vw,20px)}.contact-name{font-family:var(--font-heading);text-transform:uppercase;font-size:clamp(20px,4vw,32px);font-weight:800}.dress-badge{border:var(--border-w) solid var(--black);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.04em;background:var(--green);color:var(--black);padding:12px 28px;font-size:clamp(20px,4vw,32px);font-weight:800;display:inline-block;transform:rotate(1deg)}.sticker{border:var(--border-w) solid var(--black);box-shadow:var(--shadow);pointer-events:none;border-radius:50%;position:absolute}.sticker--1{background:var(--pink);width:clamp(40px,8vw,80px);height:clamp(40px,8vw,80px);top:8%;right:6%;transform:rotate(12deg)}.sticker--2{background:var(--purple);width:clamp(28px,5vw,56px);height:clamp(28px,5vw,56px);bottom:18%;left:5%;transform:rotate(-8deg)}.sticker--3{background:var(--green);width:clamp(20px,4vw,44px);height:clamp(20px,4vw,44px);top:15%;left:8%;transform:rotate(25deg)}.sticker--sq{border-radius:6px}@media (prefers-reduced-motion:reduce){.hero-frog,.scroll-hint{animation:none}#root{scroll-behavior:auto}}
