@import"https://fonts.googleapis.com/css2?family=Shantell+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,600&family=Space+Mono:wght@400;700&display=swap";*{box-sizing:border-box}html{background:var(--bg)}:root{--bg: #f7f5f2;--bg-top: #f7f5f2;--bg-bottom: #eae3d8;--bg-elevated: #f7f5f2;--bg-muted: #f6f4f0;--bg-soft: #f5f3ef;--border: rgba(26, 26, 26, .1);--border-strong: rgba(26, 26, 26, .16);--text: #1a1a1a;--text-muted: rgba(26, 26, 26, .55);--text-body: rgba(26, 26, 26, .72);--text-soft: rgba(26, 26, 26, .55);--accent: #1a1a1a;--accent-brand: #6f8f84;--accent-brand-hover: #5c766d;--success-bg: #eef8ef;--success-text: #2f7a3f;--warning-bg: #fff5e8;--warning-text: #a5641f;--danger-bg: #fff1ef;--danger-text: #b94d3f;--shadow-soft: 0 24px 60px rgba(47, 58, 54, .08);--page-bg: linear-gradient(180deg, #f7f5f2 0%, #f6f4f0 52%, #eae3d8 100%);--page-bg-accent: radial-gradient(circle at top left, rgba(111, 143, 132, .16), transparent 28%), linear-gradient(180deg, #f7f5f2 0%, #f6f4f0 48%, #eae3d8 100%)}body{margin:0;padding:0;font-family:Avenir Next,Nunito Sans,Segoe UI,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--page-bg-accent);color:var(--text)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:inherit}.wedding-page{min-height:100vh;background:#180a24;color:#f6ecdc;font-family:Shantell Sans,system-ui,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}.wedding-page *{box-sizing:border-box}.wedding-page a{color:#f2b13d;text-decoration:none}.wedding-shell{position:relative;overflow:hidden}.wedding-marquee{position:relative;z-index:5;overflow:hidden;padding:9px 0;border-bottom:4px solid #180a24;background:#f2b13d;color:#180a24;font-family:Space Mono,monospace;font-size:14px;font-weight:700;letter-spacing:.06em;white-space:nowrap}.wedding-marquee>div{display:inline-block;animation:wedding-marquee 28s linear infinite}.wedding-marquee span{padding:0 20px}.sparkle{position:absolute;z-index:3;pointer-events:none;animation:wedding-floaty 6s ease-in-out infinite}.sparkle-one{top:120px;left:6%;color:#f2b13d;font-size:26px;--sparkle-rotate: 8deg}.sparkle-two{top:340px;right:8%;color:#f06a86;font-size:34px;animation-duration:7.5s;--sparkle-rotate: -10deg}.sparkle-three{top:640px;left:12%;color:#4fd0a0;font-size:18px;animation-duration:5s;--sparkle-rotate: 0deg}.wedding-hero{position:relative;padding:74px 24px 90px;background:radial-gradient(120% 90% at 50% 0%,#2a1140,#180a24 68%);text-align:center;cursor:crosshair}.hero-kicker{margin:0 0 6px;color:#4fd0a0;font-family:Space Mono,monospace;font-size:13px;letter-spacing:.34em;text-transform:uppercase}.hero-note,.section-subtitle{margin:0;color:#f6ecdc8c;font-family:Space Mono,monospace;font-size:13px;letter-spacing:.18em}.hero-note{margin-bottom:26px;color:#f6ecdc66;font-size:12px;letter-spacing:.2em}.wedding-hero h1{margin:0;font-size:clamp(58px,12vw,168px);font-weight:800;letter-spacing:-.02em;line-height:.86}.wedding-hero h1>span{display:block;animation:wedding-wiggle 4s ease-in-out infinite}.wedding-hero h1>span:last-child{color:#f06a86;animation-duration:4.6s}.ampersand{display:inline-block;margin:0;padding:0 6px;border:0;background:transparent;color:#f2b13d;cursor:pointer;font:inherit;font-size:.8em;line-height:.86;transition:transform .7s cubic-bezier(.2,1.4,.4,1)}.hero-tags,.hero-actions{display:flex;flex-wrap:wrap;justify-content:center}.hero-tags{gap:10px;margin-top:34px;font-family:Space Mono,monospace;font-size:15px;letter-spacing:.04em}.hero-tags span{padding:8px 16px;border:2px solid #5aa0f0;border-radius:40px;background:#16305c}.hero-tags span:nth-child(2){border-color:#4fd0a0;background:#0e4034;transform:rotate(1.5deg)}.hero-tags span:nth-child(3){border-color:#f06a86;background:#4a1029;transform:rotate(-1deg)}.countdown{max-width:560px;margin:52px auto 0}.countdown>p{margin:0 0 14px;color:#f6ecdc8c;font-family:Space Mono,monospace;font-size:12px;letter-spacing:.24em;text-transform:uppercase}.countdown-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.countdown-grid div{min-width:92px;padding:14px 8px;border:3px solid #f2b13d;border-radius:18px;background:#231038;box-shadow:6px 6px #f2b13d40}.countdown-grid div:nth-child(2){border-color:#f06a86;box-shadow:6px 6px #f06a8638}.countdown-grid div:nth-child(3){border-color:#4fd0a0;box-shadow:6px 6px #4fd0a033}.countdown-grid div:nth-child(4){border-color:#5aa0f0;box-shadow:6px 6px #5aa0f033}.countdown-grid strong{display:block;color:#f2b13d;font-size:44px;font-weight:800;line-height:1}.countdown-grid div:nth-child(2) strong{color:#f06a86}.countdown-grid div:nth-child(3) strong{color:#4fd0a0}.countdown-grid div:nth-child(4) strong{color:#5aa0f0}.countdown-grid span{display:block;margin-top:6px;color:#f6ecdc99;font-family:Space Mono,monospace;font-size:11px;letter-spacing:.14em}.hero-actions{gap:14px;margin-top:44px}.hero-actions a,.hero-actions button,.rsvp-thanks button{border-radius:40px;cursor:pointer;font-family:inherit;font-size:20px;font-weight:700}.hero-actions a{display:inline-block;padding:15px 32px;border:3px solid #180a24;background:#f06a86;color:#180a24;box-shadow:5px 5px #f2b13d;transform:rotate(-1.5deg)}.hero-actions button{padding:15px 30px;border:3px dashed #4fd0a0;background:transparent;color:#4fd0a0;transform:rotate(1deg)}.scroll-cue{margin:56px 0 0;animation:wedding-bob 2s ease-in-out infinite;color:#f6ecdc66;font-family:Space Mono,monospace;font-size:13px;letter-spacing:.2em}.wedding-deal{padding:44px 24px;border-top:5px solid #180a24;border-bottom:5px solid #180a24;background:#f2b13d;color:#180a24;text-align:center}.wedding-deal p{max-width:760px;margin:0 auto;font-size:clamp(22px,3.4vw,34px);font-weight:600;line-height:1.28}.wedding-deal span{display:inline-block;padding:0 10px;border-radius:8px;background:#180a24;color:#f2b13d;transform:rotate(-2deg)}.wedding-section{padding:80px 24px 96px}.schedule-section{background:radial-gradient(120% 80% at 100% 0%,#0e4034,#180a24 70%)}.gallery-section{background:radial-gradient(120% 80% at 0% 0%,#16305c,#180a24 68%)}.faq-section{background:radial-gradient(120% 80% at 100% 0%,#4a1029,#180a24 70%)}.rsvp-section{background:radial-gradient(120% 90% at 50% 0%,#2a1140,#180a24 72%)}.section-inner{max-width:1000px;margin:0 auto}.section-inner.narrow{max-width:820px}.section-inner h2{margin:0 0 8px;color:#4fd0a0;font-size:clamp(40px,7vw,80px);font-weight:800;text-align:center}.gallery-section h2{color:#5aa0f0}.faq-section h2{color:#f06a86}.rsvp-section h2{color:#f2b13d}.section-subtitle{margin-bottom:52px;text-align:center}.timeline{position:relative;padding-left:20px}.timeline:before{content:"";position:absolute;top:8px;bottom:8px;left:8px;width:4px;background:repeating-linear-gradient(#4fd0a0 0 12px,transparent 12px 22px)}.timeline-item{position:relative;display:flex;align-items:flex-start;gap:20px;margin-bottom:30px}.timeline-dot{position:absolute;top:6px;left:-20px;width:20px;height:20px;border:3px solid #180a24;border-radius:50%;background:var(--item-color)}.timeline-item time{flex:0 0 78px;padding-top:2px;color:var(--item-color);font-family:Space Mono,monospace;font-size:16px;font-weight:700}.timeline-item div{flex:1;padding:16px 20px;border:2px solid color-mix(in srgb,var(--item-color) 40%,transparent);border-radius:16px;background:#1e1030;transform:rotate(var(--item-tilt))}.timeline-item h3,.timeline-item p{margin:0}.timeline-item h3{font-size:24px;font-weight:700}.timeline-item p{margin-top:2px;color:#f6ecdcb8;font-size:16px}.gallery-grid{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:34px}.polaroid{position:relative;width:260px;padding:12px 12px 44px;border-radius:4px;background:#f6ecdc;box-shadow:0 14px 30px #0006}.polaroid.tilt-left{transform:rotate(-4deg)}.polaroid.tilt-right{width:240px;margin-top:26px;transform:rotate(3deg)}.polaroid.tilt-small{width:270px;background:#f2b13d;transform:rotate(-2deg)}.polaroid.short{margin-top:20px;transform:rotate(4deg)}.tape{position:absolute;top:-14px;left:40px;width:90px;height:26px;background:#f06a868c;transform:rotate(-6deg)}.polaroid:nth-child(2) .tape{right:36px;left:auto;background:#5aa0f08c;transform:rotate(7deg)}.polaroid:nth-child(3) .tape{left:50%;margin-left:-45px;background:#180a2459;transform:rotate(-3deg)}.polaroid:nth-child(4) .tape{left:34px;background:#4fd0a099;transform:rotate(-8deg)}.photo-placeholder{display:flex;align-items:center;justify-content:center;height:230px;border:2px dashed rgba(24,10,36,.35);background:linear-gradient(135deg,rgba(24,10,36,.1) 25%,transparent 25%) 0 0 / 24px 24px,linear-gradient(135deg,transparent 75%,rgba(24,10,36,.1) 75%) 0 0 / 24px 24px,#eadfcf;color:#180a2494;font-family:Space Mono,monospace;font-size:13px;text-align:center}.polaroid.tall .photo-placeholder{height:280px}.polaroid.featured .photo-placeholder{height:250px}.polaroid.short .photo-placeholder{height:270px}.polaroid p{margin:12px 0 0;color:#180a24;font-family:Space Mono,monospace;font-size:13px;text-align:center}.polaroid.featured p{font-size:14px;font-weight:700}.faq-list{display:grid;gap:14px}.faq-item{overflow:hidden;border:2px solid rgba(240,106,134,.4);border-radius:16px;background:#1e1030}.faq-item button{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px;padding:18px 22px;border:0;background:transparent;color:#f6ecdc;cursor:pointer;font-family:inherit;text-align:left}.faq-item button span{font-size:21px;font-weight:700}.faq-item button strong{flex:none;width:26px;color:#f2b13d;font-size:30px;font-weight:800;line-height:1;text-align:center}.faq-item p{margin:0;padding:0 22px 20px;color:#f6ecdccc;font-size:17px;line-height:1.5}.rsvp-inner{max-width:620px}.rsvp-form,.rsvp-thanks{border:3px solid #f2b13d;border-radius:24px;background:#1e1030;box-shadow:8px 8px #f2b13d38}.rsvp-form{padding:30px 26px}.rsvp-form label,.field-label{display:block;margin-bottom:8px;color:#f2b13d;font-family:Space Mono,monospace;font-size:12px;letter-spacing:.14em}.rsvp-form input{width:100%;margin-bottom:22px;padding:13px 15px;border:2px solid rgba(246,236,220,.25);border-radius:12px;outline:none;background:#180a24;color:#f6ecdc;font-family:inherit;font-size:18px}.attending-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}.attending-buttons button{flex:1;min-width:150px;padding:14px;border:3px solid;border-radius:14px;background:transparent;cursor:pointer;font-family:inherit;font-size:19px;font-weight:700}.attending-buttons .yes{border-color:#4fd0a0;color:#4fd0a0}.attending-buttons .no{border-color:#f06a86;color:#f06a86}.attending-buttons .selected.yes{background:#4fd0a0;color:#180a24}.attending-buttons .selected.no{background:#f06a86;color:#180a24}.rsvp-error{margin:0 0 18px;padding:11px 15px;border:2px solid #f06a86;border-radius:12px;background:#4a1029;color:#f06a86;font-size:15px}.submit-rsvp{width:100%;padding:16px;border:3px solid #180a24;border-radius:16px;background:#f06a86;color:#180a24;box-shadow:5px 5px #f2b13d;cursor:pointer;font-family:inherit;font-size:24px;font-weight:800}.rsvp-thanks{padding:44px 28px;border-color:#4fd0a0;box-shadow:8px 8px #4fd0a040;text-align:center}.rsvp-thanks h3{margin:0;color:#4fd0a0;font-size:clamp(34px,6vw,58px);font-weight:800;line-height:1}.rsvp-thanks p{margin:16px 0 24px;color:#f6ecdcd1;font-size:19px}.rsvp-thanks button{padding:10px 22px;border:2px dashed #f2b13d;background:transparent;color:#f2b13d;font-size:15px}.wedding-footer{padding:40px 24px;border-top:5px solid #180a24;background:#f2b13d;color:#180a24;text-align:center}.wedding-footer h2{margin:0;font-size:clamp(28px,5vw,46px);font-weight:800;line-height:1}.wedding-footer h2 span{color:#4a1029}.wedding-footer p,.wedding-footer small{display:block;font-family:Space Mono,monospace}.wedding-footer p{margin:8px 0 0;font-size:13px;letter-spacing:.14em}.wedding-footer small{margin-top:16px;opacity:.7;font-size:12px}.paw-layer,.confetti-layer{position:fixed;inset:0;pointer-events:none}.paw-layer{z-index:60}.confetti-layer{z-index:70;overflow:hidden}.wedding-paw{position:fixed;width:38px;height:44px;animation:wedding-pawpop 1.4s ease-out forwards;transform:translate(-50%,-50%) rotate(var(--paw-rotate))}.wedding-paw .pad,.wedding-paw .toe,.mini-paw .pad,.mini-paw .toe{position:absolute;background:var(--paw-color)}.wedding-paw .pad{top:14px;left:9px;width:20px;height:22px;border-radius:52% 52% 50% 50%}.wedding-paw .toe{width:9px;height:11px;border-radius:50%}.wedding-paw .toe-one{top:6px;left:2px}.wedding-paw .toe-two{top:0;left:12px}.wedding-paw .toe-three{top:0;left:22px}.wedding-paw .toe-four{top:6px;left:30px}.confetti-layer span{position:absolute;top:0;animation-name:wedding-conffall;animation-fill-mode:forwards;animation-timing-function:linear}.ruka-run{position:fixed;bottom:8%;left:0;z-index:65;pointer-events:none;animation:wedding-scamper 2.5s linear forwards}.ruka-run-inner{display:flex;align-items:flex-end;gap:6px}.mini-paw{position:relative;width:34px;height:40px;--paw-color: #f2b13d}.mini-paw.pink{opacity:.7;--paw-color: #f06a86}.mini-paw .pad{top:12px;left:8px;width:18px;height:20px;border-radius:52% 52% 50% 50%}.mini-paw .toe{width:8px;height:10px;border-radius:50%}.mini-paw .toe-one{top:5px;left:1px}.mini-paw .toe-two{top:0;left:11px}.mini-paw .toe-three{top:0;left:20px}.mini-paw .toe-four{top:5px;left:27px}.ruka-bark{margin-bottom:24px;padding:8px 16px;border:3px solid #180a24;border-radius:20px 20px 20px 4px;background:#4fd0a0;color:#180a24;animation:wedding-barkpop .5s ease-out;font-size:22px;font-weight:800;white-space:nowrap}@keyframes wedding-floaty{0%,to{transform:translateY(0) rotate(var(--sparkle-rotate, 0deg))}50%{transform:translateY(-14px) rotate(var(--sparkle-rotate, 0deg))}}@keyframes wedding-wiggle{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes wedding-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes wedding-bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes wedding-pawpop{0%{transform:translate(-50%,-50%) scale(0) rotate(var(--paw-rotate));opacity:0}18%{transform:translate(-50%,-50%) scale(1.25) rotate(var(--paw-rotate));opacity:1}45%{transform:translate(-50%,-50%) scale(1) rotate(var(--paw-rotate));opacity:1}to{transform:translate(-50%,-50%) scale(.9) rotate(var(--paw-rotate));opacity:0}}@keyframes wedding-conffall{0%{transform:translateY(-12vh) rotate(0);opacity:1}to{transform:translateY(112vh) rotate(720deg);opacity:1}}@keyframes wedding-scamper{0%{transform:translate(-18vw) rotate(-4deg)}to{transform:translate(120vw) rotate(4deg)}}@keyframes wedding-barkpop{0%{transform:scale(0) rotate(-12deg)}30%{transform:scale(1.15) rotate(6deg)}60%{transform:scale(1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@media(max-width:700px){.wedding-hero,.wedding-section{padding-right:18px;padding-left:18px}.hero-kicker,.hero-note,.section-subtitle{letter-spacing:.1em}.timeline-item{gap:12px}.timeline-item time{flex-basis:56px;font-size:14px}.timeline-item div{padding:14px}.timeline-item h3{font-size:20px}.polaroid,.polaroid.tilt-right,.polaroid.tilt-small{width:min(280px,100%);margin-top:0}}.App{min-height:100vh;width:100%;display:flex;flex-direction:column}
