@import url("https://fonts.googleapis.com/css2?family=VT323&family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700&family=Nunito:wght@400;600;700;800&display=swap");:root{--baby-blue:#a8d8ea;--baby-pink:#ffacc7;--baby-yellow:#ffeaa7;--cream:#fff9f0;--deep-blue:#5b8fa8;--deep-pink:#e08ba5;--deep-yellow:#d4b96a;--dark:#3a3a5c;--muted:#7b7b9d}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Nunito,sans-serif;color:var(--dark);overflow-x:hidden}@keyframes dotAppear{0%{transform:scale(0);opacity:0}50%{transform:scale(1.5);opacity:1}to{transform:scale(1);opacity:1}}@keyframes lineExpand{0%{width:4px;height:4px;border-radius:50%}to{width:85vw;height:3px;border-radius:0}}@keyframes screenOn{0%{width:85vw;height:3px;opacity:1}30%{width:85vw;height:70vh;opacity:.6}50%{opacity:1}70%{opacity:.7}to{width:85vw;height:70vh;opacity:1}}@keyframes flicker{0%,to{opacity:1}4%{opacity:.85}8%{opacity:1}42%{opacity:.92}44%{opacity:1}82%{opacity:.88}84%{opacity:1}}@keyframes scanlineMove{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes tvZoomOut{0%{opacity:1;transform:scale(1)}40%{opacity:1;transform:scale(1.05)}to{opacity:0;transform:scale(.01);border-radius:50%}}@keyframes glowPulse{0%,to{box-shadow:0 0 40px rgba(168,216,234,.15),0 0 80px rgba(168,216,234,.05)}50%{box-shadow:0 0 60px rgba(168,216,234,.25),0 0 120px rgba(168,216,234,.1)}}@keyframes welcomeFadeIn{0%{opacity:0;transform:scale(.9) translateY(10px);letter-spacing:12px}to{opacity:1;transform:scale(1) translateY(0);letter-spacing:20px}}@keyframes rgbShift{0%,to{text-shadow:-1px 0 #ff6b9d55,1px 0 #a8d8ea55}50%{text-shadow:1px 0 #ff6b9d55,-1px 0 #a8d8ea55}}@keyframes floatDown{0%{transform:translateY(0) rotate(0deg);opacity:0}10%{opacity:.22}90%{opacity:.22}to{transform:translateY(calc(100vh + 120px)) rotate(1turn);opacity:0}}@keyframes gentleFloat{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-14px) rotate(2deg)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes confettiFall{0%{transform:translateY(0) rotate(0deg);opacity:1}to{transform:translateY(800px) rotate(2turn);opacity:0}}@keyframes starTwinkle{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:.7;transform:scale(1.2)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.tv-overlay{position:fixed;inset:0;z-index:9999;background:#0a0a0f;display:flex;align-items:center;justify-content:center}.tv-overlay.exiting{animation:tvZoomOut .8s cubic-bezier(.4,0,.2,1) forwards}.tv-dot{width:4px;height:4px;border-radius:50%;background:var(--baby-blue);box-shadow:0 0 20px var(--baby-blue),0 0 60px rgba(168,216,234,.33);animation:dotAppear .5s ease-out forwards}.tv-line{height:3px;background:linear-gradient(90deg,transparent,var(--baby-blue),var(--baby-pink),var(--baby-blue),transparent);box-shadow:0 0 20px rgba(168,216,234,.53);animation:lineExpand .6s ease-out forwards}.tv-screen{position:relative;overflow:hidden;background:#0d0d14;border-radius:8px;width:85vw;max-width:700px;height:70vh;max-height:500px;animation:screenOn .6s ease-out forwards,flicker 3s linear infinite,glowPulse 2s ease-in-out infinite}.tv-screen .scanlines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.08) 0,rgba(0,0,0,.08) 4px);pointer-events:none;z-index:2}.tv-screen .scanline-bar{position:absolute;left:0;right:0;height:40%;background:linear-gradient(180deg,transparent,rgba(168,216,234,.03) 50%,transparent);animation:scanlineMove 4s linear infinite;pointer-events:none;z-index:3}.tv-screen .vignette{inset:0;background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.5) 100%);z-index:4}.tv-bezel,.tv-screen .vignette{position:absolute;pointer-events:none}.tv-bezel{width:calc(85vw + 16px);max-width:716px;height:calc(70vh + 16px);max-height:516px;border-radius:14px;border:3px solid #1a1a28;box-shadow:inset 0 0 30px rgba(0,0,0,.5),0 0 40px rgba(168,216,234,.08)}.boot-text{font-size:16px;color:var(--baby-blue);line-height:1.8;white-space:pre;text-shadow:0 0 8px rgba(168,216,234,.4)}.boot-text,.welcome-text{font-family:VT323,monospace}.welcome-text{font-size:clamp(28px,6vw,52px);color:var(--baby-pink);letter-spacing:20px;text-transform:uppercase;text-shadow:0 0 30px rgba(255,172,199,.4),0 0 60px rgba(255,172,199,.13);animation:welcomeFadeIn .8s ease-out forwards,rgbShift 2s linear infinite}.welcome-sub{font-family:VT323,monospace;font-size:clamp(14px,2.5vw,20px);color:var(--baby-yellow);letter-spacing:6px;text-shadow:0 0 10px rgba(255,234,167,.27);opacity:.8}.main-page{min-height:100vh;background:linear-gradient(170deg,var(--cream) 0,#f0f4ff 35%,#fff5f8 65%,#fffcf0 100%);overflow:hidden;position:relative;transition:opacity .8s ease,transform .8s ease}.main-page.hidden{opacity:0;transform:scale(1.1)}.main-page.visible{opacity:1;transform:scale(1)}.floating-shape{position:absolute;top:-60px;opacity:.22;pointer-events:none}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;position:relative;text-align:center}.hero-cap{animation:gentleFloat 6s ease-in-out infinite;margin-bottom:16px}.hero-eyebrow{font-family:Nunito,sans-serif;font-weight:700;font-size:14px;letter-spacing:4px;text-transform:uppercase;color:var(--muted);margin-bottom:12px;animation:fadeSlideUp 1s ease-out both}.hero-title{font-family:Playfair Display,serif;font-weight:900;font-size:clamp(3rem,8vw,6rem);line-height:1.05;color:var(--dark);margin-bottom:8px;animation:fadeSlideUp 1s ease-out .2s both}.hero-title .accent{color:var(--deep-blue)}.hero-subtitle{font-family:Playfair Display,serif;font-style:italic;font-weight:400;font-size:clamp(1.2rem,3vw,2rem);background:linear-gradient(90deg,var(--deep-pink),var(--deep-blue),var(--deep-yellow),var(--deep-pink));background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 4s linear infinite,fadeSlideUp 1s ease-out .5s both;margin-bottom:12px}.hero-description{font-size:17px;color:var(--muted);max-width:460px;line-height:1.7;margin-bottom:36px;animation:fadeSlideUp 1s ease-out .7s both}.hero-event-info{font-size:14px;letter-spacing:1.6px;color:var(--deep-pink);margin-bottom:14px;animation:fadeSlideUp 1s ease-out .6s both}.hero-event-info,.rsvp-btn{font-weight:800;text-transform:uppercase}.rsvp-btn{display:inline-flex;align-items:center;gap:10px;padding:18px 44px;border:none;border-radius:60px;font-family:Nunito,sans-serif;font-size:18px;letter-spacing:1px;cursor:pointer;transition:all .4s cubic-bezier(.175,.885,.32,1.275);animation:fadeSlideUp 1s ease-out .9s both;background:linear-gradient(135deg,var(--baby-pink),var(--baby-blue));color:var(--dark);box-shadow:0 8px 32px rgba(168,216,234,.3)}.rsvp-btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 40px rgba(168,216,234,.4)}.rsvp-btn:active{transform:translateY(0) scale(.98)}.scroll-indicator{position:absolute;bottom:40px;animation:gentleFloat 2s ease-in-out infinite;opacity:.4}.star-wrapper{position:absolute;pointer-events:none}.details-section{padding:60px 24px 80px;max-width:900px;margin:0 auto}.section-header{text-align:center;margin-bottom:48px}.divider-line{height:3px;width:80px;border-radius:3px;margin:0 auto 28px}.section-title{font-family:Playfair Display,serif;font-weight:700;font-size:clamp(1.8rem,4vw,2.6rem);color:var(--dark);margin-bottom:8px}.section-subtitle{color:var(--muted);font-size:15px}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:20px;gap:20px}.detail-card{background:hsla(0,0%,100%,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.7);border-radius:20px;padding:28px;text-align:center;transition:all .3s ease}.detail-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.06)}.detail-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:26px}.detail-label{font-weight:800;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.detail-primary{font-family:Playfair Display,serif;font-size:17px;color:var(--dark);font-weight:600;line-height:1.5}.detail-secondary{font-size:14px;color:var(--muted);margin-top:2px}.rsvp-section{padding:40px 24px 100px;max-width:560px;margin:0 auto}.card{background:hsla(0,0%,100%,.55);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid hsla(0,0%,100%,.8);border-radius:28px;padding:48px;box-shadow:0 4px 24px rgba(168,216,234,.15),0 1px 3px rgba(0,0,0,.04),inset 0 1px 0 hsla(0,0%,100%,.8);animation:scaleIn .7s ease-out both}.form-group{display:flex;flex-direction:column;gap:22px}.form-label{display:block;margin-bottom:6px;font-size:14px;font-weight:700;color:var(--muted);letter-spacing:.5px;text-transform:uppercase}.form-input{width:100%;padding:14px 18px;border:2px solid var(--baby-blue);border-radius:14px;font-size:16px;font-family:Nunito,sans-serif;color:var(--dark);background:hsla(0,0%,100%,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);outline:none;transition:all .3s ease}.form-input:focus{border-color:var(--baby-pink);box-shadow:0 0 0 4px rgba(255,172,199,.15)}.form-input::placeholder{color:#b0b0c8}.attending-row{display:flex;gap:12px}.attending-btn{flex:1 1;padding:16px 24px;border:2px solid var(--baby-blue);border-radius:14px;font-family:Nunito,sans-serif;font-weight:700;font-size:16px;cursor:pointer;transition:all .3s ease;background:hsla(0,0%,100%,.5);color:var(--dark)}.attending-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.08)}.attending-btn.selected-yes{background:linear-gradient(135deg,var(--baby-pink),var(--baby-yellow));border-color:transparent;box-shadow:0 4px 16px rgba(255,172,199,.3)}.attending-btn.selected-no{background:linear-gradient(135deg,var(--baby-blue),#c5d5e8);border-color:transparent;box-shadow:0 4px 16px rgba(168,216,234,.3)}.guest-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.slide-in{animation:fadeSlideUp .4s ease-out both}.submit-btn{width:100%;padding:18px;border:none;border-radius:16px;font-family:Nunito,sans-serif;font-weight:800;font-size:18px;letter-spacing:1px;cursor:pointer;transition:all .4s ease;text-transform:uppercase;background:linear-gradient(135deg,var(--baby-pink),var(--baby-blue),var(--baby-yellow));background-size:200% 200%;color:var(--dark);box-shadow:0 6px 24px rgba(168,216,234,.3);animation:shimmer 3s ease infinite}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(168,216,234,.4)}.submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.submit-error{color:#b5455f;font-size:14px;font-weight:700;text-align:center;line-height:1.5}.success-card{text-align:center;animation:scaleIn .6s cubic-bezier(.175,.885,.32,1.275) both}.success-emoji{font-size:64px;margin-bottom:16px}.success-title{font-family:Playfair Display,serif;font-size:28px;font-weight:700;color:var(--dark);margin-bottom:12px}.success-message{color:var(--muted);line-height:1.7;margin-bottom:24px;font-size:16px}.confetti-layer{position:fixed;inset:0;pointer-events:none;z-index:999}.site-footer{text-align:center;padding:32px 24px 48px;border-top:1px solid rgba(168,216,234,.3)}.footer-quote{font-family:Playfair Display,serif;font-style:italic;font-size:16px;color:var(--muted);margin-top:12px;max-width:400px;margin-left:auto;margin-right:auto;line-height:1.6}.footer-credit{font-size:12px;color:var(--muted);margin-top:16px;opacity:.6}@media (max-width:640px){.card{padding:28px 20px}.attending-row{flex-direction:column}}