:root{
  --bg:#fff8fa;--paper:#fffdfd;--ink:#4c3038;--muted:#9a737e;
  --pink:#f4a8b8;--rose:#d85f7b;--deep:#8d2947;--soft:#ffe7ed;
  --line:#f2c9d2;--shadow:0 18px 45px rgba(141,41,71,.10);
  --serif:'Playfair Display',Georgia,serif;--sans:'Plus Jakarta Sans',sans-serif;
  --script:'Dancing Script',cursive;--hand:'Caveat',cursive;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.7;overflow-x:hidden;
background-image:radial-gradient(#f4cbd3  .7px,transparent .7px);background-size:22px 22px}
button{font:inherit}.hidden{display:none!important}
#particles-container{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.particle{position:absolute;animation:floatUp linear infinite;opacity:0}
@keyframes floatUp{0%{transform:translateY(105vh) rotate(0) scale(.7);opacity:0}15%,80%{opacity:.55}100%{transform:translateY(-10vh) rotate(280deg) scale(1.2);opacity:0}}

.landing-screen{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;text-align:center;padding:25px;
background:radial-gradient(circle at 50% 40%,#fff,#fff2f5 70%);transition:opacity 1s,visibility 1s}
.landing-screen.fade-out{opacity:0;visibility:hidden}
.landing-content{max-width:680px}
.scrapbook-badge{display:inline-block;border:1px dashed var(--rose);background:var(--soft);padding:5px 18px;border-radius:30px;color:var(--rose);font-family:var(--hand);font-size:1.35rem;margin-bottom:20px}
.landing-subtitle{font-family:var(--script);font-size:2rem;color:var(--rose)}
.landing-name{font:700 clamp(4rem,12vw,8rem) var(--serif);letter-spacing:5px;color:var(--deep);line-height:1.1}
.landing-small{color:var(--muted);margin:15px 0 30px}
.btn-enter{border:0;border-radius:50px;padding:15px 30px;background:var(--rose);color:white;font-weight:700;cursor:pointer;box-shadow:0 12px 30px #d85f7b44;transition:.3s}
.btn-enter:hover{transform:translateY(-4px);background:var(--deep)}

.music-player-widget{position:fixed;z-index:1000;right:20px;bottom:20px;background:#fffffff0;backdrop-filter:blur(12px);
border:1px solid var(--line);border-radius:50px;padding:8px 12px;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow);max-width:310px}
.music-art{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--soft)}
.music-art.playing{animation:pulse 1.7s ease infinite}
@keyframes pulse{50%{transform:scale(1.12)}}
.music-info{min-width:120px}.music-title{font-size:.78rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.music-artist{font-size:.68rem;color:var(--muted)}.music-progress-bar{height:3px;background:#f6dce2;border-radius:5px;margin-top:3px;overflow:hidden}
#music-progress-fill{height:100%;width:0;background:var(--rose)}
.music-control-btn{background:none;border:0;cursor:pointer;font-size:1rem}

.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:clamp(35px,7vw,100px);padding:80px 7vw;position:relative}
.hero-image-wrapper{width:min(360px,75vw);height:min(470px,100vw);background:white;padding:14px 14px 55px;box-shadow:var(--shadow);transform:rotate(-3deg);position:relative}
.hero-image-wrapper img{width:100%;height:100%;object-fit:cover}
.polaroid-tape{position:absolute;width:105px;height:25px;background:#f7d7a8aa;top:-12px;left:50%;transform:translateX(-50%) rotate(2deg)}
.polaroid-tag{position:absolute;bottom:10px;left:0;right:0;text-align:center;font:1.7rem var(--hand);color:var(--deep)}
.hero-text-content{max-width:560px}.eyebrow,.tiny-label{color:var(--rose);font-size:.72rem;letter-spacing:2px;text-transform:uppercase;font-weight:700}
.hero-title{font:700 clamp(3rem,7vw,5.8rem) var(--script);color:var(--deep);line-height:1.05;margin:10px 0 18px}
.hero-title span{display:block}.hero-subtitle{font-size:1.08rem;color:var(--muted);max-width:500px}.scroll-cue{display:inline-block;margin-top:30px;color:var(--rose);text-decoration:none;font-size:.8rem}

.container{width:min(1120px,calc(100% - 40px));margin:auto}.section{padding:90px 0}
.section-heading{text-align:center;max-width:700px;margin:0 auto 42px}.section-heading h2{font:600 clamp(2.1rem,5vw,3.3rem) var(--serif);color:var(--deep);line-height:1.2;margin:8px 0 10px}.section-heading h2 em{font-style:italic}.section-heading p{color:var(--muted)}
.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.about-card{background:var(--paper);padding:25px;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);transition:.3s}
.about-card:hover{transform:translateY(-6px)}.about-card .icon{font-size:1.6rem}.about-card h3{font:1.45rem var(--serif);color:var(--deep);margin:8px 0}.about-card p{color:var(--muted);font-size:.9rem}

.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.gallery-item{height:330px;border-radius:18px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow);position:relative;background:var(--soft)}
.gallery-item:nth-child(2n){transform:translateY(20px)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.6s}.gallery-item:hover img{transform:scale(1.07)}.gallery-caption{position:absolute;bottom:0;left:0;right:0;padding:25px 14px 12px;color:white;background:linear-gradient(transparent,#0008);font:1.25rem var(--hand)}

.lightbox{position:fixed;inset:0;background:#2b1921eF;z-index:10000;display:grid;place-items:center;padding:35px}.lightbox-content{text-align:center;max-width:90vw}
.lightbox-content img{max-width:90vw;max-height:78vh;border-radius:12px;box-shadow:0 20px 70px #0008}.lightbox-content p{color:white;font-family:var(--hand);font-size:1.5rem;margin-top:8px}
.lightbox button{position:absolute;background:none;border:0;color:white;cursor:pointer}.lightbox-close{top:15px;right:25px;font-size:3rem}.lightbox-prev,.lightbox-next{top:50%;font-size:4rem}.lightbox-prev{left:20px}.lightbox-next{right:20px}

.looks-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.look-card{background:white;padding:10px;box-shadow:var(--shadow);transform:rotate(var(--r));transition:.3s}.look-card:hover{transform:rotate(0) scale(1.03)}
.look-card img{width:100%;height:270px;object-fit:cover}.look-card h3{font:1.35rem var(--hand);color:var(--deep);text-align:center;padding:8px 4px 0}.look-card p{text-align:center;color:var(--muted);font-size:.72rem}

.reasons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.reason-card{height:190px;perspective:1000px;cursor:pointer}.reason-inner{height:100%;position:relative;transition:.65s;transform-style:preserve-3d}.reason-card.flipped .reason-inner{transform:rotateY(180deg)}
.reason-front,.reason-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:22px;padding:25px;display:grid;place-items:center;text-align:center;box-shadow:var(--shadow)}
.reason-front{background:white;border:1px dashed var(--pink);font:1.6rem var(--script);color:var(--deep)}.reason-back{background:var(--soft);transform:rotateY(180deg);font-size:.9rem}

.timeline{max-width:850px;margin:auto;position:relative}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--line)}
.timeline-item{width:50%;padding:0 35px 35px 0;position:relative}.timeline-item:nth-child(even){margin-left:50%;padding:0 0 35px 35px}
.timeline-dot{position:absolute;right:-8px;top:8px;width:16px;height:16px;border-radius:50%;background:var(--rose);border:4px solid white;box-shadow:0 0 0 2px var(--line)}.timeline-item:nth-child(even) .timeline-dot{left:-8px;right:auto}
.timeline-card{background:white;border:1px solid var(--line);padding:22px;border-radius:18px;box-shadow:var(--shadow)}.timeline-date{color:var(--rose);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1px}.timeline-card h3{font:1.5rem var(--serif);color:var(--deep);margin:4px 0}.timeline-card p{font-size:.88rem;color:var(--muted)}

.letter-section{background:linear-gradient(#fff8fa,#fff0f4,#fff8fa)}.letter-container{max-width:800px;margin:auto;background:#fffdfd;padding:55px 65px;box-shadow:var(--shadow);border:1px solid var(--line);position:relative}
.letter-container h2{font:2.7rem var(--script);color:var(--deep);margin:8px 0 25px}.letter-body{white-space:pre-line;font:1.05rem/2 var(--serif);color:var(--ink)}.letter-sign{font:1.8rem var(--hand);color:var(--rose);margin-top:25px}.stamp{position:absolute;right:35px;top:30px;font-size:2.8rem;color:var(--rose);transform:rotate(12deg)}

.text-center{text-align:center}.secret-wrapper{max-width:600px;margin:auto}.btn-secret{margin-top:18px;background:white;border:1px dashed var(--rose);color:var(--deep);padding:12px 22px;border-radius:40px;cursor:pointer}.secret-card{margin:22px auto 0;background:var(--soft);padding:30px;border:1px solid var(--line);border-radius:24px}.secret-card span{font-size:2rem}.secret-card h3{font:1.8rem var(--script);color:var(--deep)}
.final-section{text-align:center;padding:90px 20px;background:linear-gradient(180deg,#fff8fa,#ffe9ef)}.final-quote{font:clamp(2rem,5vw,3.4rem) var(--script);color:var(--deep)}.final-credit{color:var(--muted);margin-top:12px;font-size:.85rem}
.reveal{opacity:0;transform:translateY(22px);transition:.8s ease}.reveal.visible{opacity:1;transform:none}

@media(max-width:850px){
 .hero-section{flex-direction:column;padding-top:100px;text-align:center}.hero-subtitle{margin:auto}.about-grid,.looks-grid,.reasons-grid{grid-template-columns:repeat(2,1fr)}
 .gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-item{height:300px}.timeline:before{left:15px}.timeline-item,.timeline-item:nth-child(even){width:100%;margin:0;padding:0 0 30px 42px}.timeline-dot,.timeline-item:nth-child(even) .timeline-dot{left:7px;right:auto}
}
@media(max-width:560px){
 .music-player-widget{left:10px;right:10px;bottom:10px;max-width:none}.about-grid,.looks-grid,.reasons-grid,.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item{height:250px}.gallery-caption{font-size:1rem}
 .letter-container{padding:38px 24px}.letter-container h2{font-size:2.2rem}.hero-image-wrapper{height:390px}.section{padding:65px 0}
}