*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--rose:#e91e63;--dark:#1a0810;--cream:#fff0f5;--text:#2a0a18;--gold:#c9963d;--shadow:0 8px 40px rgba(233,30,99,.2)}
html,body{height:100%;font-family:'Lato',sans-serif;background:var(--dark);color:#fff;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-screen{background:linear-gradient(160deg,#1a0810,#2d0f20)}
.hearts-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:heartbeat 1.5s ease-in-out infinite;margin-bottom:20px}
@keyframes heartbeat{0%,100%{transform:scale(1)}25%{transform:scale(1.15)}50%{transform:scale(1)}75%{transform:scale(1.08)}}
.start-title{font-family:'Cormorant Garamond',serif;font-size:2.4rem;color:#fff;margin-bottom:8px;line-height:1.2;font-style:italic}
.start-sub{font-size:.9rem;color:rgba(255,255,255,.4);margin-bottom:36px;letter-spacing:1px}
.btn-start{background:linear-gradient(135deg,var(--rose),#f06292);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(233,30,99,.5);transition:transform .2s}
.btn-start:hover{transform:translateY(-3px)}

.content-box{background:rgba(255,255,255,.05);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:44px 36px;max-width:680px;width:100%;text-align:center;max-height:calc(100vh - 80px);overflow-y:auto;position:relative;z-index:1}
.letter-box{background:rgba(10,0,6,.6)!important;text-align:left}
.letter-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.letter-header span{font-size:2rem}
.letter-header h2{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:#fff}
.letter-text{font-size:1rem;line-height:2;color:rgba(255,255,255,.8);white-space:pre-line;margin-bottom:20px;font-family:'Georgia',serif}
.signature{text-align:right;font-size:1.1rem;color:var(--rose);margin-bottom:28px;font-family:'Cormorant Garamond',serif;font-style:italic}
.section-title{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:#fff;margin-bottom:24px}
.reveal-screen{background:linear-gradient(160deg,#1a0810,#2d0f20)}
#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:heartbeat 1.5s ease-in-out infinite}
.reveal-title{font-family:'Cormorant Garamond',serif;font-size:2rem;color:#fff;margin-bottom:12px;font-style:italic}
.reveal-sub{font-size:1rem;color:rgba(255,255,255,.6);margin-bottom:24px}
.final-hearts{font-size:2.2rem;letter-spacing:12px;margin-top:12px}

.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)}}

.btn-next{background:linear-gradient(135deg,var(--rose),#f06292);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(233,30,99,.4)}
.btn-next:hover{transform:translateY(-2px)}
.nav-arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:50;background:rgba(233,30,99,.15);border:2px solid rgba(233,30,99,.3);color:var(--rose);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(233,30,99,.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(233,30,99,.9);border:none;color:#fff;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
#lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.92);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}.nav-arrow{display:none}}
