*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif;background-color:#0a0000;color:#f5f5f7;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.lock-screen{min-height:100vh;display:flex;justify-content:center;align-items:center;background:#0a0000;position:relative}.lock-content{position:relative;z-index:2;text-align:center;padding:24px;max-width:440px;width:100%}.lock-icon{font-size:48px;margin-bottom:28px}.lock-title{font-size:clamp(28px,5vw,38px);font-weight:800;letter-spacing:-1.5px;line-height:1.15;margin-bottom:12px;background:linear-gradient(180deg,#fff,#f5c6d0 60%,#b8435a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.lock-subtitle{font-size:17px;color:#86868b;margin-bottom:36px}.lock-form{display:flex;flex-direction:column;gap:14px}.lock-input{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:18px 24px;font-size:17px;color:#f5f5f7;font-family:inherit;outline:none;text-align:center;transition:all .3s ease}.lock-input::placeholder{color:#6e6e73}.lock-input:focus{background:#ffffff14;border-color:#e88fa266}.lock-input.shake{animation:shakeInput .5s ease;border-color:#c94b6e}@keyframes shakeInput{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.lock-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:18px;border-radius:14px;border:none;background:linear-gradient(135deg,#c94b6e,#e88fa2);color:#fff;font-size:17px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .3s ease}.lock-btn:hover{transform:scale(1.02);box-shadow:0 8px 32px #c94b6e4d}.lock-roses{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.5}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:80px 24px;position:relative;z-index:1;background:#000;overflow:hidden}.hero-orb{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:2;mix-blend-mode:lighten}.hero-orb-1{width:700px;height:700px;background:#b432504d;top:5%;left:10%;animation:orbFloat1 8s ease-in-out infinite}.hero-orb-2{width:600px;height:600px;background:#8c1e3c40;bottom:0;right:5%;animation:orbFloat2 10s ease-in-out infinite}.hero-orb-3{width:500px;height:500px;background:#c8506426;top:30%;left:50%;transform:translate(-50%);animation:orbFloat3 12s ease-in-out infinite}@keyframes orbFloat1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,20px) scale(1.08)}}@keyframes orbFloat2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-20px,-30px) scale(1.1)}}@keyframes orbFloat3{0%,to{transform:translate(-50%) scale(1);opacity:.6}50%{transform:translate(-50%) scale(1.15);opacity:1}}.hero-content{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;max-width:900px;width:100%}.roses-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}.roses-img{width:130%;height:130%;object-fit:cover;display:block;mask-image:radial-gradient(ellipse 95% 90% at center,black 55%,transparent 85%);-webkit-mask-image:radial-gradient(ellipse 95% 90% at center,black 55%,transparent 85%)}.garden-sway svg{animation:gardenSway 6s ease-in-out infinite}.garden-sway-alt svg{animation:gardenSwayAlt 7s ease-in-out infinite}@keyframes gardenSway{0%,to{translate:0 0;rotate:0deg}50%{translate:5px -4px;rotate:2deg}}@keyframes gardenSwayAlt{0%,to{translate:0 0;rotate:0deg}50%{translate:-4px 5px;rotate:-2deg}}.hero-title{font-size:clamp(52px,10vw,120px);font-weight:800;line-height:1;letter-spacing:-4px;max-width:900px;margin-bottom:32px;color:#f5c6d0;text-shadow:0 0 40px rgba(10,0,0,.95),0 0 80px rgba(10,0,0,.8),0 2px 4px rgba(0,0,0,.9)}.hero-subtitle{font-size:clamp(18px,2.5vw,24px);color:#c0b0b5;max-width:550px;line-height:1.6;margin-bottom:56px;font-weight:400;text-shadow:0 0 30px rgba(10,0,0,.95),0 0 60px rgba(10,0,0,.8)}.hero-subtitle .name{color:#e88fa2;font-weight:600;text-shadow:0 0 20px rgba(10,0,0,.9),0 0 40px rgba(10,0,0,.7)}.hero-buttons{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.btn-primary{display:inline-flex;align-items:center;gap:10px;background:#c94b6e40;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(232,143,162,.3);color:#fff;padding:18px 44px;border-radius:980px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none;box-shadow:0 4px 24px #0003,inset 0 1px #ffffff1a}.btn-primary:hover{transform:scale(1.05);background:#c94b6e59;border-color:#e88fa280;box-shadow:0 8px 40px #c94b6e4d,inset 0 1px #ffffff26}.btn-secondary{display:inline-flex;align-items:center;gap:10px;background:transparent;color:#f5f5f7;padding:18px 44px;border-radius:980px;font-size:18px;font-weight:600;border:1.5px solid rgba(255,255,255,.18);cursor:pointer;transition:all .3s ease;text-decoration:none}.btn-secondary:hover{transform:scale(1.05);border-color:#e88fa280;background:#e88fa20f}.scroll-indicator{position:absolute;bottom:36px;display:flex;flex-direction:column;align-items:center}.scroll-line{width:1px;height:48px;background:linear-gradient(to bottom,rgba(232,143,162,.5),transparent);animation:scrollPulse 2.5s ease-in-out infinite}@keyframes scrollPulse{0%,to{opacity:.3;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.2)}}.rsvp-section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:120px 24px;position:relative;z-index:1;background:linear-gradient(180deg,#0a0000,#10050a,#0a0000)}.rsvp-label{font-size:14px;text-transform:uppercase;letter-spacing:4px;color:#8b5e6b;font-weight:600;margin-bottom:16px}.rsvp-title{font-size:clamp(36px,5vw,56px);font-weight:800;letter-spacing:-2px;line-height:1.1;margin-bottom:20px;background:linear-gradient(180deg,#fff,#a1a1a6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.rsvp-subtitle{font-size:clamp(17px,2vw,20px);color:#86868b;max-width:500px;margin-bottom:48px;line-height:1.6}.rsvp-buttons{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.btn-yes{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#c94b6e,#e88fa2);color:#fff;padding:18px 48px;border-radius:980px;font-size:18px;font-weight:600;border:none;cursor:pointer;transition:all .3s ease}.btn-yes:hover{transform:scale(1.05);box-shadow:0 8px 40px #c94b6e59}.btn-no{display:inline-flex;align-items:center;gap:8px;background:transparent;color:#86868b;padding:18px 48px;border-radius:980px;font-size:18px;font-weight:600;border:1.5px solid rgba(255,255,255,.1);cursor:pointer;transition:all .3s ease}.btn-no:hover{transform:scale(1.05);border-color:#ffffff40}.accepted-message{margin-top:40px;text-align:center}.accepted-message .big-heart{font-size:64px;margin-bottom:16px;animation:heartbeat 1.4s ease-in-out infinite}.accepted-message p{font-size:20px;color:#e88fa2;font-weight:600}.plans-section{padding:120px 48px;position:relative;z-index:1;background:#0a0000}.plans-label{font-size:14px;text-transform:uppercase;letter-spacing:4px;color:#8b5e6b;font-weight:600;margin-bottom:16px;text-align:center}.plans-title{font-size:clamp(40px,7vw,80px);font-weight:800;letter-spacing:-3px;line-height:1.05;text-align:center;margin-bottom:20px;background:linear-gradient(180deg,#fff,#f5c6d0,#b8435a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.plans-subtitle{font-size:clamp(17px,2vw,21px);color:#86868b;text-align:center;max-width:600px;margin:0 auto 72px;line-height:1.6}.restaurant-card{max-width:1000px;margin:0 auto 64px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:32px;overflow:hidden;transition:all .4s ease}.restaurant-card:hover{transform:translateY(-4px);background:#ffffff0d;border-color:#e88fa226}.restaurant-hero-img{width:100%;height:400px;object-fit:cover}.restaurant-body{padding:48px}.restaurant-name{font-size:clamp(28px,4vw,40px);font-weight:800;letter-spacing:-1.5px;margin-bottom:8px}.restaurant-tagline{font-size:17px;color:#e88fa2;font-weight:500;margin-bottom:24px}.restaurant-desc{font-size:17px;color:#a1a1a6;line-height:1.7;max-width:700px;margin-bottom:32px}.restaurant-details{display:flex;gap:32px;flex-wrap:wrap;margin-bottom:32px}.detail-item{display:flex;align-items:center;gap:10px;color:#86868b;font-size:15px}.detail-item svg{color:#e88fa2;min-width:18px}.restaurant-link{display:inline-flex;align-items:center;gap:8px;color:#e88fa2;font-size:16px;font-weight:600;transition:opacity .3s ease}.restaurant-link:hover{opacity:.75}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1000px;margin:0 auto 64px}.photo-card{border-radius:20px;overflow:hidden;aspect-ratio:4 / 3;transition:all .4s ease}.photo-card:hover{transform:scale(1.03)}.photo-card img{width:100%;height:100%;object-fit:cover}.dresscode-card{max-width:600px;margin:0 auto;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:24px;padding:48px;text-align:center}.dresscode-card h3{font-size:24px;font-weight:700;letter-spacing:-.5px;margin-bottom:12px}.dresscode-card p{font-size:17px;color:#86868b;line-height:1.6}.dresscode-card .emoji-row{font-size:32px;margin-bottom:20px;letter-spacing:8px}.footer{padding:48px;text-align:center;position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.04)}.footer p{color:#4a3040;font-size:14px}.footer .footer-heart{font-size:24px;margin-bottom:12px;display:inline-block}@media(max-width:768px){.hero{padding:80px 16px}.hero-title{letter-spacing:-2px}.hero-orb-1{width:350px;height:350px}.hero-orb-2{width:300px;height:300px}.hero-orb-3{width:220px;height:220px}.roses-img{width:auto;height:110%;max-width:none;mask-image:radial-gradient(ellipse 65% 60% at center,black 25%,transparent 68%);-webkit-mask-image:radial-gradient(ellipse 65% 60% at center,black 25%,transparent 68%)}.plans-section{padding:80px 24px}.photo-grid{grid-template-columns:1fr}.restaurant-hero-img{height:240px}.restaurant-body{padding:28px}.restaurant-details{flex-direction:column;gap:16px}}
