*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--sky-light: #e8f4fd;--sky-mid: #b3d9f2;--sky-blue: #87ceeb;--sky-deep: #5ba3d9;--cloud-white: #ffffff;--cloud-gray: #f0f4f8;--text-dark: #2c3e50;--text-soft: #5a6c7d;--accent-pink: #f8a5c2;--accent-gold: #f7d794}html{scroll-behavior:smooth}body{font-family:Josefin Sans,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text-dark);background:linear-gradient(180deg,var(--sky-light) 0%,var(--sky-mid) 50%,var(--sky-blue) 100%);background-attachment:fixed;min-height:100vh;overflow-x:hidden}h1,h2,h3{font-family:Josefin Sans,sans-serif}.lock-screen{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#dceefb,#a8d4f0 40%,#7ec8e3,#b3d9f2);overflow:hidden}.lock-clouds{position:absolute;inset:0;pointer-events:none}.cloud-lock{position:absolute;background:radial-gradient(ellipse,rgba(255,255,255,.9) 0%,rgba(255,255,255,.3) 70%,transparent 100%);border-radius:50%;filter:blur(8px)}.cloud-lock-1{width:300px;height:120px;top:10%;left:-5%;animation:drift 25s linear infinite}.cloud-lock-2{width:200px;height:80px;top:25%;right:-10%;animation:drift-reverse 30s linear infinite}.cloud-lock-3{width:250px;height:100px;top:60%;left:10%;animation:drift 35s linear infinite;animation-delay:-10s}.cloud-lock-4{width:180px;height:70px;top:75%;right:5%;animation:drift-reverse 28s linear infinite;animation-delay:-5s}.cloud-lock-5{width:220px;height:90px;top:40%;left:50%;animation:drift 32s linear infinite;animation-delay:-15s}.cloud-lock-6{width:160px;height:65px;top:85%;left:30%;animation:drift-reverse 22s linear infinite}@keyframes drift{0%{transform:translate(-100%)}to{transform:translate(calc(100vw + 100%))}}@keyframes drift-reverse{0%{transform:translate(calc(100vw + 100%))}to{transform:translate(-100%)}}.lock-content{text-align:center;z-index:1;padding:2rem}.lock-icon-circle{width:64px;height:64px;margin:0 auto 1.5rem;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.8),var(--sky-blue));box-shadow:0 4px 20px #87ceeb66}.lock-title{font-size:2.5rem;color:var(--text-dark);margin-bottom:.5rem;text-shadow:0 2px 8px rgba(255,255,255,.6)}.lock-hint{color:var(--text-soft);font-size:1rem;margin-bottom:2rem;font-weight:300}.lock-form{display:flex;flex-direction:column;align-items:center;gap:1rem}.lock-input{width:280px;padding:.9rem 1.2rem;border:2px solid rgba(255,255,255,.6);border-radius:50px;background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:1rem;font-family:inherit;color:var(--text-dark);text-align:center;outline:none;transition:border-color .3s,box-shadow .3s}.lock-input:focus{border-color:var(--sky-deep);box-shadow:0 0 20px #5ba3d94d}.lock-input-error{border-color:var(--accent-pink);box-shadow:0 0 20px #f8a5c24d}.lock-button{padding:.8rem 2.5rem;border:none;border-radius:50px;background:linear-gradient(135deg,var(--sky-deep),var(--sky-blue));color:#fff;font-size:1rem;font-family:inherit;font-weight:500;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #5ba3d966}.lock-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #5ba3d980}.lock-error{color:var(--accent-pink);font-size:.9rem;margin-top:.5rem;font-weight:500}.floating-clouds-container{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.floating-cloud{position:absolute;left:-150px;background:radial-gradient(ellipse,rgba(255,255,255,.8) 0%,rgba(255,255,255,.2) 70%,transparent 100%);border-radius:50%;filter:blur(6px);animation:drift linear infinite}.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;padding:2rem;margin-bottom:-6rem}.hero-content{text-align:center}.hero-title{font-size:clamp(3rem,10vw,7rem);color:var(--text-dark);text-shadow:0 4px 20px rgba(135,206,235,.4);line-height:1.1;margin-bottom:.5rem}.hero-name{font-size:clamp(2rem,6vw,4.5rem);color:var(--sky-deep);text-shadow:0 2px 10px rgba(91,163,217,.3);margin-bottom:2rem}.hero-divider{width:120px;height:2px;margin:0 auto;background:linear-gradient(90deg,transparent,var(--sky-deep),transparent);transform-origin:center}.gallery-section{position:relative;z-index:1;padding:4rem 2rem;max-width:1100px;margin:0 auto}.section-title{font-size:clamp(2rem,5vw,3.5rem);text-align:center;margin-bottom:2.5rem;color:var(--text-dark);text-shadow:0 2px 8px rgba(255,255,255,.5)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.gallery-item{border-radius:16px;overflow:hidden;background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #5ba3d926;cursor:pointer;transition:box-shadow .3s}.gallery-item:hover{box-shadow:0 12px 40px #5ba3d940}.gallery-item img{width:100%;height:250px;object-fit:cover;display:block}.gallery-caption{padding:.8rem 1rem;font-size:.9rem;color:var(--text-soft);text-align:center;font-weight:300}.lightbox{position:fixed;inset:0;z-index:2000;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:2rem}.lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.lightbox-content img{max-width:100%;max-height:75vh;border-radius:12px;object-fit:contain}.lightbox-caption{color:#ffffffd9;margin-top:1.2rem;font-size:.95rem;text-align:center;font-weight:300;letter-spacing:.02em}.lightbox-close{position:absolute;top:-44px;right:0;background:none;border:none;color:#fff9;font-size:1.8rem;cursor:pointer;line-height:1;padding:4px 8px;transition:color .2s}.lightbox-close:hover{color:#fff}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:1px solid rgba(255,255,255,.15);color:#ffffffb3;font-size:1.4rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;transition:all .2s;padding:0;line-height:1}.lightbox-nav:hover{background:#fff3;border-color:#ffffff4d;color:#fff}.lightbox-prev{left:-56px}.lightbox-next{right:-56px}.message-section{position:relative;z-index:1;padding:4rem 2rem;max-width:700px;margin:0 auto}.message-card{background:#fff9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:24px;padding:3rem;box-shadow:0 8px 32px #5ba3d926;text-align:center}.message-text{font-size:1.1rem;line-height:1.8;color:var(--text-soft);margin-bottom:2rem}.message-text p{margin-bottom:1rem}.message-text p:last-child{margin-bottom:0}.message-signature{font-family:Josefin Sans,sans-serif;font-size:1.5rem;color:var(--sky-deep)}.confetti-section{position:relative;z-index:1;text-align:center;padding:2rem}.confetti-button{display:inline-block;margin:1rem auto;padding:1rem 3rem;border:none;border-radius:50px;background:linear-gradient(135deg,var(--accent-pink),var(--accent-gold));color:var(--text-dark);font-size:1.2rem;font-family:Josefin Sans,sans-serif;font-weight:700;cursor:pointer;box-shadow:0 4px 20px #f8a5c266}.dinner-overlay{position:fixed;inset:0;z-index:3000;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:2rem}.dinner-modal{background:#ffffffd9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:24px;padding:3rem 3.5rem;box-shadow:0 16px 48px #5ba3d940;text-align:center;max-width:400px;width:100%}.dinner-modal p{font-size:1.1rem;color:var(--text-soft);line-height:1.6}.dinner-location{font-size:2rem;font-weight:600;color:var(--sky-deep);margin-top:.3rem;text-shadow:0 2px 8px rgba(91,163,217,.2)}.dinner-cta{margin-top:2rem;padding:.8rem 2.5rem;border:none;border-radius:50px;background:linear-gradient(135deg,var(--sky-deep),var(--sky-blue));color:#fff;font-size:1.1rem;font-family:Josefin Sans,sans-serif;font-weight:600;cursor:pointer;box-shadow:0 4px 15px #5ba3d966}.footer{text-align:center;padding:3rem 2rem;color:var(--text-soft);font-size:.85rem;position:relative;z-index:1}@media(max-width:768px){.lock-title{font-size:1.8rem}.lock-input{width:240px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.gallery-item img{height:180px}.message-card{padding:2rem 1.5rem}.lightbox-prev{left:8px}.lightbox-next{right:8px}.lightbox-nav{width:36px;height:36px;font-size:1.2rem;background:#0006;border-color:#ffffff1a}}
