*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#653b4c;background:#fff8fa;font-family:"DM Sans",sans-serif;overflow-x:hidden}.paper-grain{position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}.hero,.section-wrap,.footer{background-color:#fbe4ec;background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.2) 0 3px,transparent 3px 34px),linear-gradient(120deg,#f9d8e4,#f6c9d9 55%,#fbe5ec)}.hero{min-height:100vh;position:relative;display:grid;place-items:center;padding:70px 5vw 65px;overflow:hidden;border-bottom:1px solid #e9b5c8}.topline,.bottomline{position:absolute;left:5%;right:5%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#8b5367}.topline{top:28px}.bottomline{bottom:25px}.hero-center{text-align:center;position:relative;z-index:2;max-width:760px;padding:45px 20px}.eyebrow{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:#985d72;margin:0 0 16px}.hero h1{font:600 clamp(2.6rem,7vw,5.8rem)/1.1 "Playfair Display",serif;margin:0;color:#78465b}.hero-name{font:clamp(5.4rem,14vw,10rem)/.95 "Sacramento",cursive;color:#a44e70;margin:0 0 12px;position:relative}.hero-name span{font:30px "DM Sans";vertical-align:top;color:#c47d98}.date{letter-spacing:.35em;font-size:12px;margin:12px 0 30px}.date i{font-style:normal;color:#bd7892;padding:0 10px}.start-button{display:inline-flex;gap:25px;align-items:center;text-decoration:none;color:#7a4057;border:1px solid #c77f99;border-radius:18px;padding:16px 38px;background:#fff3f7;box-shadow:0 5px 0 #e4aabd,0 12px 25px #b86f8a25;letter-spacing:.18em;font:500 13px "DM Sans";transition:.25s}.start-button:hover{transform:translateY(-3px);box-shadow:0 8px 0 #e4aabd,0 16px 25px #b86f8a25}.wish{font:17px "Playfair Display";margin:34px 0 8px}.tiny-wish{font-size:11px;color:#916276}.decor{position:absolute;object-fit:contain;pointer-events:none}.star{width:70px;opacity:.75}.star-a{left:12%;top:23%;transform:rotate(-12deg)}.star-b{right:13%;top:27%;width:55px;transform:rotate(17deg)}.flower{width:clamp(90px,13vw,160px)}.flower-a{left:3%;bottom:17%;transform:rotate(-12deg)}.flower-b{right:4%;top:12%;width:clamp(65px,9vw,110px);transform:rotate(12deg)}.cake{width:clamp(130px,18vw,220px);bottom:14%;right:12%;filter:drop-shadow(0 12px 10px #874b5c25)}.section-wrap{padding:95px max(5vw,24px);position:relative}.intro{background-color:#fff7f9;background-image:linear-gradient(90deg,#fff9fb,#fbeaf0 48%,#fff9fb)}.name-ribbon{width:max-content;margin:0 auto 48px;background:#fff7f8;border:1px solid #e6bdca;box-shadow:7px 7px 0 #e7bdcc;padding:3px 44px 7px;transform:rotate(-1deg);color:#7c4b5d}.name-ribbon span{font:clamp(3.8rem,8vw,6.4rem)/1 "Sacramento",cursive}.name-ribbon i{font-style:normal;font-size:20px;margin-left:12px}.intro-inner{max-width:1000px;margin:auto;display:flex;flex-direction:column;align-items:center;gap:36px}.polaroid{margin:0;width:min(390px,88vw);padding:15px 15px 9px;background:#fffdfb;box-shadow:0 12px 32px #8b53671f;transform:rotate(-1.5deg)}.polaroid img{display:block;width:100%;height:480px;object-fit:cover;object-position:center 28%}.photo-label,.polaroid figcaption{display:block;font-size:9px;letter-spacing:.18em;color:#9a6c7b;padding:6px 2px}.polaroid figcaption{text-align:right}.letter{position:relative;width:min(650px,92vw);padding:44px clamp(25px,6vw,65px);background:#fffaf4;border:1px solid #ead9d3;box-shadow:0 12px 28px #8b53671c;text-align:center;transform:rotate(.5deg)}.letter:before{content:"";position:absolute;inset:10px;border:1px solid #f0e4df;pointer-events:none}.letter-meta{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.18em;color:#a17a7e}.letter h2,.section-title h2{font:600 clamp(2.8rem,6vw,4.4rem)/1.1 "Playfair Display",serif;margin:26px 0 10px;color:#805064}.flourish{font-size:13px;color:#c28a9d;margin:15px}.letter p{font:15px/1.9 "Playfair Display",serif;color:#765b60}.letter .message-placeholder{font-style:italic;color:#9c8185}.letter .signoff{font-style:italic;margin-top:25px}.letter-lily{position:absolute;width:70px;right:-25px;top:-30px;transform:rotate(12deg)}.music-memories{background:#f8dce6}.section-title{text-align:center;margin:0 auto 38px}.section-title h2{margin:0 0 8px;font-size:clamp(3.3rem,7vw,5.2rem)}.section-title>p:last-child{font:italic 17px "Playfair Display";color:#946276;margin:0}.music-layout{max-width:1080px;margin:auto;display:grid;grid-template-columns:minmax(300px,1.2fr) minmax(220px,.8fr);gap:clamp(25px,5vw,65px);align-items:start}.photo-stack{display:flex;flex-direction:column;gap:18px;align-items:center}.stack-photo{width:min(100%,350px);padding:10px 10px 13px;background:#fffdfb;border:0;box-shadow:0 8px 20px #77475c25;transform:rotate(-1deg);cursor:zoom-in;transition:transform .25s}.stack-photo:nth-child(even){transform:rotate(1.5deg)}.stack-photo:hover{transform:rotate(0) scale(1.025)}.stack-photo img{display:block;width:100%;height:auto;max-height:430px;object-fit:contain;background:#f5e6e9}.playlist{display:flex;flex-direction:column;gap:13px}.song{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center}.song-no{font:14px "Playfair Display";color:#99647a}.song iframe{width:100%;height:80px;border:0;border-radius:13px;box-shadow:0 5px 15px #8b53671c}.gallery{background:#fff8fa}.gallery-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gallery-photo{padding:9px 9px 14px;border:0;background:#fff;box-shadow:0 6px 18px #7e4a5b20;cursor:zoom-in;transition:transform .25s}.gallery-photo:nth-child(3n+2){transform:rotate(1.5deg)}.gallery-photo:nth-child(3n+1){transform:rotate(-1deg)}.gallery-photo:hover{transform:scale(1.035) rotate(0);z-index:2}.gallery-photo img{width:100%;height:300px;display:block;object-fit:cover}.videos{background:#f9e0e8}.video-intro{display:flex;align-items:center;justify-content:center;gap:28px;margin:0 auto 35px}.disco{width:95px;object-fit:contain}.script-line{font:36px/1.05 "Sacramento",cursive;color:#8d5269;margin:0 0 12px}.always-mini{width:min(330px,72vw);background:#fff9fb;padding:8px;border-radius:12px}.always-mini span{font-size:8px;letter-spacing:.15em;display:block;padding:4px;color:#8f6473}.always-mini iframe{width:100%;height:80px;border:0}.video-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.video-card{background:#fffdfb;padding:12px;box-shadow:0 9px 24px #8b53671c}.video-meta{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.15em;color:#95677a;padding:4px 2px 10px}.video-card video{width:100%;height:310px;display:block;background:#211a20;object-fit:contain}.video-card p{font:italic 16px "Playfair Display";margin:12px 5px 5px;color:#81556a}.footer{display:flex;align-items:center;justify-content:center;gap:clamp(18px,5vw,70px);padding:26px 15px;border-top:1px solid #e5afc2;border-bottom:1px solid #e5afc2}.footer p{font:clamp(2.8rem,7vw,5rem)/1.1 "Sacramento",cursive;color:#a34f70;margin:0}.footer p span{font:25px "DM Sans"}.bow{font-size:40px;color:#c57e98}.lightbox{position:fixed;inset:0;background:#351e2bdc;z-index:30;display:none;align-items:center;justify-content:center;padding:30px}.lightbox.open{display:flex}.lightbox img{max-width:min(90vw,900px);max-height:85vh;object-fit:contain;border:12px solid #fffaf9;box-shadow:0 15px 50px #0005}.close-lightbox{position:absolute;top:20px;right:25px;border:0;background:#fff;color:#7e4057;border-radius:50%;width:42px;height:42px;font-size:30px;cursor:pointer}
@media(max-width:720px){.hero{min-height:90vh}.topline,.bottomline{font-size:8px;letter-spacing:.12em}.hero-center{padding:30px 5px}.cake{right:3%;bottom:10%;width:115px}.flower-a{left:-15px;bottom:14%;width:90px}.flower-b{right:0;top:10%;width:68px}.star-a{left:8%;top:20%;width:45px}.star-b{right:8%;top:23%;width:40px}.section-wrap{padding:70px 18px}.name-ribbon{margin-bottom:35px}.polaroid img{height:420px}.letter{padding:35px 24px}.music-layout{grid-template-columns:1fr;gap:30px}.photo-stack{display:flex;flex-direction:column;align-items:center;gap:14px}.stack-photo{width:min(100%,390px);padding:8px 8px 11px}.stack-photo img{height:auto;max-height:430px;object-fit:contain}.playlist{max-width:100%}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gallery-photo{padding:6px 6px 10px}.gallery-photo img{height:210px}.video-intro{gap:15px}.disco{width:70px}.video-grid{grid-template-columns:1fr;gap:18px}.video-card video{height:260px}.footer{gap:12px}.bow{font-size:27px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Final layout refinements */
.intro-inner{flex-direction:row;align-items:center;justify-content:center;gap:clamp(24px,5vw,64px);max-width:1120px}
.intro-inner .polaroid{flex:0 1 390px;width:min(390px,42%);transform:rotate(-1.2deg)}
.intro-inner .letter{flex:1 1 520px;width:auto;max-width:590px}
.music-layout{grid-template-columns:minmax(300px,1fr) minmax(210px,.72fr);align-items:start}
.photo-stack{gap:15px}
.stack-photo{width:min(100%,340px)}
.stack-photo img{height:auto;max-height:390px;object-fit:contain}
.video-controls{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.video-action-row{display:flex;gap:9px;flex-wrap:wrap}
.video-action,.sound-toggle{border:1px solid #bd7892;background:#fff8fb;color:#78465b;border-radius:999px;padding:12px 17px;font:600 10px "DM Sans",sans-serif;letter-spacing:.08em;cursor:pointer;box-shadow:0 4px 0 #e6b8c8}
.video-action:hover,.sound-toggle:hover{transform:translateY(-2px)}
.video-hint{font:italic 12px "Playfair Display",serif;color:#916276;margin:0}
@media(max-width:720px){
 .intro-inner{flex-direction:column;gap:28px}
 .intro-inner .polaroid,.intro-inner .letter{width:min(100%,430px);max-width:430px;flex:auto}
 .music-layout{grid-template-columns:1fr}
 .photo-stack{align-items:center}
 .stack-photo{width:min(100%,390px)}
 .video-intro{align-items:flex-start}
 .video-controls{min-width:0;flex:1}
 .video-action-row{gap:8px}
 .video-action,.sound-toggle{font-size:9px;padding:11px 12px}
}

/* Final requested composition */
.combined-layout{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(260px,.78fr) minmax(460px,1.22fr);gap:clamp(28px,4vw,58px);align-items:start}
.birthday-column{display:flex;flex-direction:column;align-items:center;gap:28px;min-width:0}
.birthday-column .polaroid{width:min(100%,390px);flex:none}
.birthday-column .letter{width:min(100%,430px);flex:none}
.music-column{min-width:0}
.music-column .section-title{margin:0 auto 28px}
.music-column .section-title h2{font-size:clamp(2.8rem,5vw,4.5rem)}
.music-column .music-layout{grid-template-columns:minmax(0,1fr) minmax(150px,.55fr);gap:18px}
.music-column .photo-stack{gap:12px}
.music-column .stack-photo{width:100%;max-width:260px}
.music-column .stack-photo img{max-height:300px}
.gallery-photo img{object-fit:cover}
@media(max-width:900px){
 .combined-layout{grid-template-columns:1fr;max-width:720px}
 .birthday-column{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center}
 .birthday-column .polaroid,.birthday-column .letter{width:100%}
 .music-column .music-layout{grid-template-columns:minmax(0,1fr) minmax(160px,.6fr)}
}
@media(max-width:620px){
 .birthday-column{display:flex;flex-direction:column}
 .birthday-column .polaroid,.birthday-column .letter{width:min(100%,430px)}
 .music-column .music-layout{grid-template-columns:1fr}
 .music-column .photo-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .music-column .stack-photo{width:100%}
}

/* Requested restored slide composition */
.combined-layout{display:flex!important;flex-direction:column;gap:clamp(42px,6vw,76px);max-width:1240px;margin:0 auto}
.birthday-column{display:grid!important;grid-template-columns:minmax(260px,.9fr) minmax(300px,1.1fr);gap:clamp(24px,4vw,52px);align-items:center;justify-items:center;width:100%}
.birthday-column .polaroid{width:min(100%,440px)!important;margin:0}
.birthday-column .letter{width:min(100%,520px)!important;margin:0}
.music-column{width:100%;min-width:0}
.music-column .section-title{margin:0 auto 24px}
.music-column .music-layout{display:grid!important;grid-template-columns:minmax(300px,1.15fr) minmax(320px,.85fr);gap:clamp(22px,4vw,48px);align-items:start;max-width:1120px}
.music-column .photo-stack{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.music-column .stack-photo{width:100%!important;max-width:none!important;padding:7px 7px 9px}
.music-column .stack-photo img{height:220px!important;max-height:none!important;object-fit:cover!important}
.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.video-card video{height:clamp(220px,28vw,360px);object-fit:contain}
@media(max-width:760px){
 .birthday-column{grid-template-columns:1fr!important}
 .birthday-column .polaroid,.birthday-column .letter{width:min(100%,480px)!important}
 .music-column .music-layout{grid-template-columns:1fr!important}
 .music-column .photo-stack{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .music-column .stack-photo img{height:190px!important}
 .video-grid{grid-template-columns:1fr!important}
}

/* Final requested arrangement: square solo portraits beside the soundtrack */
.music-layout{grid-template-columns:minmax(300px,1.15fr) minmax(300px,.85fr)!important;align-items:start}
.photo-stack{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;align-items:start}
.stack-photo{width:100%!important;max-width:none!important;aspect-ratio:1/1;padding:7px!important;transform:none!important}
.stack-photo img{width:100%!important;height:100%!important;max-height:none!important;aspect-ratio:1/1;object-fit:cover!important}
.video-action-row{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.video-action,.sound-toggle{border:1px solid #bd7892;background:#fff8fb;color:#78465b;border-radius:999px;padding:12px 17px;font:600 10px "DM Sans",sans-serif;letter-spacing:.08em;cursor:pointer;box-shadow:0 4px 0 #e6b8c8}
.video-action:hover,.sound-toggle:hover{transform:translateY(-2px)}
@media(max-width:760px){
 .music-layout{grid-template-columns:1fr!important}
 .photo-stack{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* All clips use the same landscape frame. Portrait clips are cropped, not stretched. */
.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.video-card{min-width:0;overflow:hidden}
.video-card video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#21191d}
@media(max-width:760px){.video-grid{grid-template-columns:1fr}}
