*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--red:#c0392b;--gold:#c9963d;--gold2:#e8c97a;--green:#1a4a1a;--cream:#fdfaf5;--dark:#1a1208;--text:#3a2a18;--shadow:0 8px 40px rgba(192,57,43,.15)}
html,body{height:100%;font-family:'Lato',sans-serif;background:var(--cream);color:var(--text);overflow:hidden}
.screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .5s ease,transform .5s cubic-bezier(.4,0,.2,1);z-index:1;overflow-y:auto;padding:60px 20px}
.screen.active{opacity:1;pointer-events:all;z-index:10}
.slide-from-right{transform:translateX(50px);opacity:0}.slide-from-left{transform:translateX(-50px);opacity:0}
.slide-to-left{transform:translateX(-50px);opacity:0}.slide-to-right{transform:translateX(50px);opacity:0}
.fade-in{animation:fadeIn .8s ease both}
@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.hidden{display:none!important}

/* ── START ── */
.start-screen{background:linear-gradient(160deg,#1a0808 0%,#2d1212 50%,#1a0808 100%)}
.snow-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.start-center{text-align:center;z-index:1;padding:20px}
.start-icon{font-size:5rem;display:block;animation:xmasFloat 3s ease-in-out infinite;margin-bottom:20px}
@keyframes xmasFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-14px) rotate(3deg)}}
.start-title{font-family:'Cormorant Garamond',serif;font-size:2.2rem;color:#fff;margin-bottom:8px;line-height:1.2}
.start-sub{font-size:.9rem;color:rgba(255,255,255,.5);margin-bottom:36px;letter-spacing:1px}
.btn-start{background:linear-gradient(135deg,var(--red),#e74c3c);color:#fff;border:none;border-radius:50px;padding:16px 52px;font-size:1.1rem;font-family:'Lato',sans-serif;cursor:pointer;box-shadow:0 6px 24px rgba(192,57,43,.5);transition:transform .2s,box-shadow .2s}
.btn-start:hover{transform:translateY(-3px);box-shadow:0 10px 32px rgba(192,57,43,.6)}

/* ── CONTENT ── */
.content-box{background:#fff;border-radius:20px;padding:44px 36px;max-width:680px;width:100%;box-shadow:var(--shadow);text-align:center;max-height:calc(100vh - 80px);overflow-y:auto;position:relative;z-index:1}
.section-icon{font-size:3rem;margin-bottom:14px;display:block}
h1{font-family:'Cormorant Garamond',serif;font-size:2.4rem;color:var(--dark);margin-bottom:20px}
.xmas-message{font-size:1rem;line-height:2;color:#555;text-align:left;white-space:pre-line;background:linear-gradient(135deg,#fff8ec,#fff3e0);border-radius:14px;padding:24px;margin:20px 0;font-family:'Georgia',serif;border-left:4px solid var(--red)}
.section-title{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:var(--dark);margin-bottom:24px}

/* ── GALLERY ── */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:24px}
.gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;cursor:zoom-in;transition:transform .2s;opacity:0}
.gallery-grid img.photo-in{animation:photoIn .5s ease forwards}
@keyframes photoIn{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}

/* ── REVEAL ── */
.reveal-screen{background:linear-gradient(160deg,#1a0808,#2d1212)}
#confettiCanvas{position:absolute;inset:0;pointer-events:none;z-index:0}
.reveal-box{position:relative;z-index:1}
.reveal-icon{font-size:4rem;display:block;margin-bottom:16px;animation:revealFloat 2s ease-in-out infinite}
@keyframes revealFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.05)}}
.reveal-title{font-family:'Cormorant Garamond',serif;font-size:2rem;color:#fff;margin-bottom:12px}
.reveal-sub{font-size:1rem;color:rgba(255,255,255,.65);margin-bottom:24px;font-style:italic}
.final-row{font-size:2rem;letter-spacing:10px;margin-top:12px}
.countdown-wrap{background:rgba(255,255,255,.08);border-radius:16px;padding:20px;margin:20px 0}
.countdown-label{font-size:.8rem;color:rgba(255,255,255,.5);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px}
.countdown-grid{display:flex;gap:8px;justify-content:center;align-items:center}
.cd-block{background:rgba(255,255,255,.1);border-radius:10px;padding:12px 14px;min-width:60px;text-align:center}
.cd-block span:first-child{display:block;font-size:1.8rem;font-weight:700;color:#fff;font-family:'Cormorant Garamond',serif}
.cd-lbl{font-size:.65rem;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:1px}
.cd-sep{font-size:1.5rem;color:var(--gold);font-weight:700}

/* ── BUTTONS ── */
.btn-next{background:linear-gradient(135deg,var(--red),#e74c3c);color:#fff;border:none;border-radius:50px;padding:13px 36px;font-size:1rem;font-family:'Lato',sans-serif;cursor:pointer;transition:transform .15s;box-shadow:0 4px 18px rgba(192,57,43,.4)}
.btn-next:hover{transform:translateY(-2px)}
.nav-arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:50;background:rgba(192,57,43,.15);border:2px solid rgba(192,57,43,.25);color:var(--red);font-size:2.4rem;width:52px;height:52px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.nav-arrow:hover{background:rgba(192,57,43,.3)}
.nav-arrow.disabled{opacity:.2;cursor:not-allowed;pointer-events:none}
.nav-left{left:18px}.nav-right{right:18px}
.nav-arrow.hidden{display:none}
.music-player{position:fixed;top:20px;right:20px;z-index:100}
.music-player.hidden{display:none}
.music-btn{width:46px;height:46px;border-radius:50%;background:rgba(192,57,43,.9);border:none;color:#fff;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}
.music-btn:hover{transform:scale(1.1)}

/* Lightbox */
#lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:999;align-items:center;justify-content:center}
#lightbox.open{display:flex}
#lightbox img{max-width:88vw;max-height:88vh;border-radius:10px}
.lb-nav{position:fixed;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);border:none;color:#fff;font-size:3rem;padding:10px 18px;cursor:pointer;border-radius:8px;z-index:1000}
.lb-prev{left:12px}.lb-next{right:12px}
.lb-close{position:fixed;top:16px;right:16px;background:rgba(255,255,255,.15);border:none;color:#fff;font-size:1.4rem;width:40px;height:40px;border-radius:50%;cursor:pointer;z-index:1000}

@media(max-width:600px){.screen{padding:50px 12px 30px}.content-box{padding:24px 16px}h1{font-size:1.8rem}.nav-arrow{display:none}}
