*{box-sizing:border-box;margin:0;padding:0}
:root{
  --burgundy:#6b2639;
  --burgundy-dark:#3b1825;
  --pink:#d9a2ad;
  --pink-light:#f4dfe2;
  --olive:#6f7650;
  --olive-light:#aeb48a;
  --cream:#fff8f3;
  --ink:#3d2730;
  --white:#fffdfb;
}
html{scroll-behavior:smooth}
body{font-family:Poppins,sans-serif;background:var(--cream);color:var(--ink);overflow-x:hidden}
.hidden{display:none!important}
.lock-screen{min-height:100svh;display:grid;place-items:center;padding:24px;position:relative;overflow:hidden;background:radial-gradient(circle at 20% 20%,#d9a2ad 0,transparent 28%),radial-gradient(circle at 85% 80%,#6f7650 0,transparent 26%),linear-gradient(135deg,#4b1b2a,#7a2d42)}
.lock-screen:before,.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:26px 26px;opacity:.12;pointer-events:none}
.lock-card{width:min(470px,100%);background:rgba(255,253,251,.96);border:1px solid rgba(255,255,255,.7);border-radius:30px;padding:42px 30px;text-align:center;box-shadow:0 30px 80px rgba(31,8,17,.3);position:relative;z-index:2}
.tiny-label,.eyebrow{letter-spacing:3px;text-transform:uppercase;font-size:11px;font-weight:600;color:var(--olive)}
.heart-lock{font-family:serif;font-size:65px;color:var(--burgundy);margin:12px 0 -4px;animation:beat 1.5s infinite}
@keyframes beat{50%{transform:scale(1.1)}}
h1,h2{font-family:"DM Serif Display",serif;font-weight:400}
.lock-card h1{font-size:38px;line-height:1.05;color:var(--burgundy-dark)}
.lock-subtitle{margin:12px 0 22px;color:#765c64}
.password-wrap{display:flex;border:1px solid #e1c8cd;border-radius:15px;background:#fff;margin-bottom:12px;overflow:hidden}
.password-wrap input{flex:1;border:0;outline:0;padding:15px;font:inherit;background:transparent;color:var(--ink);min-width:0}
.password-wrap button{border:0;background:transparent;padding:0 17px;color:var(--burgundy);cursor:pointer}
.main-btn{border:0;border-radius:999px;background:var(--burgundy);color:#fff;padding:14px 23px;font:600 14px Poppins;cursor:pointer;box-shadow:0 10px 24px rgba(107,38,57,.22);transition:.25s}
.main-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(107,38,57,.3)}
.error-msg{height:22px;color:#a33b55;font-size:12px;margin-top:8px}
.hint{font-size:11px;color:#9b858b;margin-top:5px}.hint span{color:var(--olive);font-weight:600}
.hero{min-height:100svh;background:linear-gradient(135deg,#4a1929 0%,#6b2639 48%,#7f4c59 100%);color:white;position:relative;overflow:hidden}
nav{height:78px;display:flex;align-items:center;justify-content:space-between;width:min(1120px,calc(100% - 40px));margin:auto;position:relative;z-index:3}
.logo{font-family:"DM Serif Display";font-size:24px}nav a{color:#fff;text-decoration:none;font-size:13px;border-bottom:1px solid #ffffff88;padding-bottom:4px}
.hero-content{min-height:calc(100svh - 78px);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px 22px;position:relative;z-index:2}
.hero .eyebrow{color:#e7c0c8}
.hero h1{font-size:clamp(60px,11vw,120px);line-height:.86;margin:15px 0 24px}
.hero h1 span{color:#e6b3bd}
.hero-text{max-width:500px;color:#f7e9eb;font-size:15px;line-height:1.8}
.scroll-btn{margin-top:32px;color:white;text-decoration:none;border:1px solid #ffffff66;border-radius:999px;padding:11px 18px;font-size:12px}
.floating-note{position:absolute;background:#e3b5bd;color:var(--burgundy-dark);padding:10px 16px;border-radius:8px;font-size:11px;box-shadow:0 8px 20px #20091455;z-index:3}
.note-one{left:8%;top:26%;transform:rotate(-8deg)}.note-two{right:7%;bottom:23%;transform:rotate(7deg);background:#aeb48a}
.section{padding:100px 22px;max-width:1100px;margin:auto}.photos-section{padding-bottom:80px}
.section-heading{text-align:center;max-width:650px;margin:0 auto 45px}.section-heading h2,.letter-card h2{font-size:clamp(42px,6vw,64px);color:var(--burgundy);margin:9px 0 14px}.section-heading p:last-child{font-size:13px;color:#826b73}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;align-items:center}
.polaroid{background:#fff;padding:12px 12px 23px;box-shadow:0 14px 35px rgba(75,27,42,.12);transition:.3s}.polaroid:hover{transform:translateY(-8px) rotate(0deg)}.polaroid img{width:100%;display:block;aspect-ratio:1/1;object-fit:cover;background:var(--pink-light)}
.polaroid figcaption{text-align:center;font-family:"DM Serif Display";font-size:20px;color:var(--burgundy);padding-top:12px}.tilt-left{transform:rotate(-3deg)}.tilt-right{transform:rotate(4deg)}.small-card{transform:rotate(-2deg)}
.quote-section{padding:90px 25px;background:var(--olive);color:#fff;text-align:center}.quote-mark{font-family:serif;font-size:90px;line-height:.5;color:#d9a2ad}.quote-section p{font-family:"DM Serif Display";font-size:clamp(30px,5vw,52px);max-width:850px;margin:20px auto;line-height:1.15}.quote-section span{font-size:12px;letter-spacing:1px;color:#e5e8d2}
.letter-section{background:var(--cream);padding-top:100px;padding-bottom:100px}.letter-card{max-width:760px;margin:auto;background:#fff;border-radius:28px;padding:55px clamp(25px,7vw,75px);box-shadow:0 20px 60px rgba(75,27,42,.1);position:relative;border-top:7px solid var(--pink)}
.letter-text{font-size:15px;line-height:2;color:#654e56}.letter-text p{margin-bottom:20px}.big-line{font-family:"DM Serif Display";font-size:42px!important;color:var(--burgundy);line-height:1.1;margin:30px 0!important}.signature{font-family:"DM Serif Display";font-size:24px;color:var(--olive);text-align:right;margin-top:28px}
.final-section{text-align:center;padding:90px 22px 100px;background:#f1dfe1}.final-heart{font-size:65px;color:var(--burgundy);animation:beat 1.5s infinite}.final-section h2{font-size:48px;color:var(--burgundy);margin:10px}.final-section p{line-height:1.8;color:#735c64;font-size:14px}.final-section .main-btn{margin-top:25px}.love-message{height:25px;margin-top:15px!important;color:var(--burgundy)!important;font-weight:600}
footer{text-align:center;padding:24px;background:var(--burgundy-dark);color:#dcbac2;font-size:10px;letter-spacing:1px}
.floating-heart{position:fixed;bottom:-20px;pointer-events:none;z-index:99;animation:floatUp 2.2s ease-out forwards;color:var(--burgundy);font-size:24px}
@keyframes floatUp{to{transform:translateY(-100vh) rotate(30deg);opacity:0}}
@media(max-width:750px){.lock-card{padding:34px 20px}.lock-card h1{font-size:32px}.photo-grid{grid-template-columns:1fr;max-width:380px;margin:auto}.small-card{max-width:80%;margin:auto}.section{padding:75px 18px}.letter-card{padding:40px 24px}.big-line{font-size:34px!important}.floating-note{display:none}.hero h1{font-size:68px}}
@media(max-width:390px){.hero h1{font-size:58px}.lock-card h1{font-size:29px}}
