@font-face{font-family:WeddingHand;src:url('assets/fonts/hand.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:WeddingBody;src:url('assets/fonts/body.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
:root{--paper:#fff9ec;--ink:#323944;--red:#bc3548;--pink:#f9e3e1;--blue:#e5eff5;--line:#ded6c8;--muted:#72746f;--hand:WeddingHand,'Comic Sans MS',cursive;--body:WeddingBody,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23998c78' opacity='.04' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,video:focus-visible{outline:3px solid #4483aa;outline-offset:6px}a{color:inherit}h1,h2,p{margin:0}button{color:inherit}::selection{background:#f4c5c9}.topbar{width:min(1240px,calc(100% - 96px));height:90px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-family:var(--hand);font-size:34px;line-height:1}.brand span{color:var(--red);font-size:23px}.top-date{font-size:12px;letter-spacing:.24em;color:#676c70}.music-toggle{background:transparent;border:1px solid var(--line);border-radius:99px;padding:8px 17px;display:flex;gap:9px;align-items:center;font-size:12px;min-width:109px;justify-content:center}.music-toggle>span:first-child{font-size:18px;color:var(--red)}.music-toggle[aria-pressed=true]{background:var(--pink);border-color:#edc4c8}
.hero{max-width:1240px;margin:auto;padding:62px 0 78px;display:grid;grid-template-columns:1.08fr 1fr;gap:46px;min-height:735px;align-items:center;position:relative}.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:block;font-weight:600;color:var(--muted)}.hero-copy .eyebrow{display:flex;align-items:center;gap:8px}.hero-copy .eyebrow span{font-size:23px;color:var(--red);line-height:1}h1{font-family:var(--hand);font-size:clamp(52px,5.2vw,76px);line-height:1.12;font-weight:400;letter-spacing:-.025em;margin:25px 0 24px}h1 span{color:var(--red)}.couple-names{font-size:24px;font-weight:550;letter-spacing:-.025em}.couple-names i{color:var(--red);font-family:var(--hand);font-style:normal;font-size:32px;margin:0 6px}.hero-description{font-size:14px;line-height:1.85;color:#6e716c;margin:21px 0 29px}.open-card{border:0;background:var(--red);color:#fff9ec;padding:15px 24px;border-radius:5px;display:flex;gap:27px;align-items:center;box-shadow:3px 3px 0 #eecbd0;font-size:13px;transition:transform .2s}.open-card:hover{transform:translateY(-2px)}.open-card>span{font-size:19px}.from-note{display:block;font-family:var(--hand);font-size:19px;color:#7d7e75;margin-top:19px}.hero-art{position:relative;padding:15px 29px 20px}.wrapper-card{background:#fffdf8;border:1.5px solid #484d4b;box-shadow:8px 10px 0 #e4dccb;padding:20px 23px 13px;position:relative}.main-wrapper{transform:rotate(3deg);max-width:430px;margin:auto}.wrapper-top{display:flex;justify-content:space-between;align-items:center;font-family:var(--hand);font-size:33px;line-height:1}.two-hearts,.wrapper-top>span:last-child{color:var(--red)}.wrapper-top>span:last-child{font-size:24px}.wrapper-card img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;margin:5px auto 0;mix-blend-mode:multiply}.wrapper-caption{font-family:var(--hand);font-size:27px;text-align:center;line-height:1.22;padding:4px 0 13px}.wrapper-caption small{display:block;font-family:var(--body);font-size:11px;line-height:1.6;margin-top:8px;color:#72746f}.wrapper-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding-top:10px;color:#8b8a7f;font-size:9px}.art-note{display:block;font-family:var(--hand);font-size:20px;margin:22px 0 0;text-align:center;color:#737c82;transform:rotate(-3deg)}.art-note>span{font-size:30px;display:inline-block;margin-left:9px}.doodle-heart{position:absolute;color:var(--red);font-family:var(--hand);line-height:1}.heart-one{font-size:76px;left:-13px;top:28px;transform:rotate(-19deg)}.heart-two{font-size:30px;right:4px;bottom:108px;transform:rotate(17deg)}.scroll-note{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:.08em;text-decoration:none;color:#8c8c7e}.scroll-note>span{display:block;font-size:22px;margin-top:2px}
.section-wrap{max-width:1140px;margin:auto;padding:88px 0}.wishes{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px;border-top:1px solid var(--line)}h2{font-family:var(--hand);font-weight:400;font-size:48px;line-height:1.18;margin-top:17px;letter-spacing:-.02em}.section-intro{padding-top:22px}.letter{position:relative;padding:36px 39px;background:var(--blue);border-radius:4px;transform:rotate(-1deg);font-size:14px;line-height:1.9}.letter p+p{margin-top:15px}.letter-heart{position:absolute;right:28px;top:-31px;font-family:var(--hand);font-size:59px;color:var(--red);transform:rotate(12deg)}.letter-sign{font-size:12px}.letter-sign>span{font-family:var(--hand);font-size:27px}.center-intro{text-align:center}.center-intro>p{color:var(--muted);font-size:13px;margin-top:15px}.inserts{padding-top:35px}.inserts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:42px;padding:0 6px}.mini-wrapper{padding:18px 18px 12px;box-shadow:5px 6px 0 #e4dccb}.mini-wrapper:nth-child(1){transform:rotate(-3deg)}.mini-wrapper:nth-child(2){transform:rotate(2deg);margin-top:12px}.mini-wrapper:nth-child(3){transform:rotate(-2deg)}.mini-wrapper .wrapper-top{font-size:29px}.mini-wrapper .wrapper-caption{font-size:24px}.mini-wrapper .wrapper-caption small{font-size:10px}.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:37px}.gallery-heading>p{color:var(--muted);font-size:12px;line-height:1.9;padding-bottom:5px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.photo-card{border:0;background:#fffdf8;padding:10px 10px 0;box-shadow:0 3px 12px #4a453012;text-align:center;transition:transform .25s}.photo-card:nth-child(3n+1){transform:rotate(-1.5deg)}.photo-card:nth-child(3n){transform:rotate(1.5deg)}.photo-card:hover{transform:rotate(0) translateY(-5px)}.photo-card img{width:100%;height:300px;object-fit:cover;display:block}.photo-card:nth-child(2) img{object-position:67% center}.photo-card:nth-child(5) img{object-position:center 38%}.photo-card>span{font-family:var(--hand);display:block;font-size:21px;padding:13px 5px 17px}.memories{padding-top:54px}.videos{padding-top:40px}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:37px}.video-grid figure{margin:0;background:#fffdf8;padding:9px 9px 0;box-shadow:0 3px 12px #4a453012}.video-grid video{display:block;width:100%;height:325px;object-fit:contain;background:#252929}.video-grid figcaption{font-family:var(--hand);font-size:20px;text-align:center;padding:14px 4px 18px}.ending{padding:86px 20px 95px;text-align:center;background:var(--pink);border-top:1px solid #ecd3d0;border-bottom:1px solid #ecd3d0}.ending-heart{display:block;color:var(--red);font-size:43px;line-height:1;margin-bottom:25px}.ending h2{font-size:66px;margin:21px 0}.ending h2 em{font-style:normal;color:var(--red)}.ending>p{font-size:14px;line-height:1.9;color:#70716b}.ending-sign{font-family:var(--hand);display:block;font-size:26px;margin:24px 0}.celebrate-button{background:transparent;border:1px solid #cf9ba1;border-radius:5px;padding:10px 17px;font-size:11px}.celebrate-button>span{font-size:20px;line-height:1;color:var(--red);margin-left:9px}footer{padding:28px 0;max-width:1140px;margin:auto;display:flex;justify-content:space-between;font-size:10px;color:#8b8b80}footer a{text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
dialog{border:0;background:transparent;color:white;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;padding:45px 70px;margin:auto;overflow:hidden}dialog::backdrop{background:#182024ef}.dialog-content{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.dialog-content img{max-width:100%;max-height:calc(100% - 48px);object-fit:contain}.dialog-content p{font-family:var(--hand);font-size:24px;text-align:center}.dialog-close,.photo-prev,.photo-next{position:absolute;border:0;background:#ffffff16;color:white;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font-size:30px;line-height:1}.dialog-close{top:16px;right:20px}.photo-prev{top:50%;left:14px}.photo-next{top:50%;right:14px}body.modal-open{overflow:hidden}#confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:5}.confetti-heart{position:absolute;bottom:-40px;font-size:26px;color:var(--red);animation:heart-float 3.3s ease-out forwards;left:var(--left);animation-delay:var(--delay)}@keyframes heart-float{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}100%{transform:translate(var(--drift),-110vh) rotate(var(--rotate));opacity:0}}
@media(min-width:1500px){.hero{min-height:790px}.hero-art{padding:15px 25px}.main-wrapper{max-width:450px}}
@media(max-width:1350px){.hero{margin:0 48px;gap:35px}.section-wrap,footer{margin-left:70px;margin-right:70px}.hero-art{padding-left:20px;padding-right:20px}.heart-one{left:-11px}}
@media(max-width:1000px){.hero{margin:0 35px;gap:14px;min-height:680px}.topbar{width:calc(100% - 70px)}h1{font-size:57px}.couple-names{font-size:20px}.hero-description{font-size:12px}.desktop-break{display:none}.main-wrapper{padding:15px 17px}.wrapper-caption{font-size:23px}.hero-art{padding:20px 10px}.heart-one{font-size:48px;top:-9px;left:10px}.heart-two{right:-10px}.section-wrap,footer{margin-left:35px;margin-right:35px}.wishes{gap:35px}h2{font-size:41px}.letter{padding:30px;font-size:13px}.inserts-grid{gap:20px}.mini-wrapper .wrapper-caption{font-size:21px}.photo-card img{height:250px}.photo-card>span{font-size:19px}.video-grid{gap:18px}.video-grid video{height:285px}}
@media(max-width:700px){html{scroll-padding-top:20px}.topbar{height:74px;width:calc(100% - 36px)}.brand{font-size:30px}.brand span{font-size:20px}.top-date{font-size:9px;letter-spacing:.1em}.music-toggle{min-width:auto;padding:7px 12px;font-size:10px}.music-toggle>span:first-child{font-size:16px}.hero{display:flex;flex-direction:column;margin:0 22px;padding:37px 0 63px;gap:20px;text-align:center;min-height:auto}.hero-copy .eyebrow{justify-content:center;font-size:9px}h1{font-size:52px;margin:19px 0}.couple-names{font-size:20px}.couple-names i{font-size:25px}.hero-description{font-size:12px;max-width:330px;margin:15px auto 22px}.open-card{margin:auto;padding:13px 21px;font-size:12px;gap:24px}.from-note{font-size:18px;margin-top:16px}.hero-art{width:min(100%,365px);padding:17px 18px 0}.main-wrapper{max-width:320px;padding:16px 18px 12px;box-shadow:6px 7px 0 #e4dccb;transform:rotate(2deg)}.main-wrapper .wrapper-top{font-size:30px}.wrapper-caption{font-size:23px;padding-bottom:10px}.wrapper-card img{margin-top:4px}.wrapper-bottom{font-size:8px}.heart-one{left:0;top:0;font-size:49px}.heart-two{right:0;bottom:96px;font-size:23px}.art-note{font-size:18px;margin-top:17px}.scroll-note{font-size:9px;bottom:9px}.scroll-note>span{font-size:19px}.section-wrap{margin-left:22px;margin-right:22px;padding:55px 0}.wishes{display:block}.section-intro{text-align:center;padding-top:0;margin-bottom:31px}.eyebrow{font-size:9px;letter-spacing:.1em}h2{font-size:38px;margin-top:12px}.letter{padding:28px 24px;font-size:13px;transform:rotate(-.6deg)}.letter-heart{right:14px;font-size:49px;top:-26px}.letter-sign>span{font-size:25px}.inserts{padding-top:18px}.center-intro>p{font-size:12px;margin-top:10px}.inserts-grid{grid-template-columns:1fr;gap:30px;max-width:320px;margin:33px auto 0;padding:0 10px}.mini-wrapper{padding:17px 20px 12px}.mini-wrapper:nth-child(2){margin-top:0}.mini-wrapper .wrapper-caption{font-size:24px}.mini-wrapper .wrapper-caption small{font-size:11px}.gallery-heading{display:block;text-align:center;margin-bottom:27px}.gallery-heading>p{font-size:11px;margin-top:14px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 13px}.photo-card{padding:6px 6px 0}.photo-card img{height:210px}.photo-card>span{font-size:16px;line-height:1.2;min-height:57px;padding:12px 2px}.photo-card:nth-child(3n){transform:rotate(1deg)}.video-grid{grid-template-columns:1fr;max-width:360px;margin:29px auto 0;gap:23px}.video-grid video{height:390px}.video-grid figcaption{font-size:21px}.ending{padding:60px 20px}.ending-heart{font-size:36px;margin-bottom:20px}.ending h2{font-size:48px;margin:17px 0}.ending>p{font-size:12px}.ending-sign{font-size:24px;margin:21px 0}footer{margin:0 22px;font-size:9px;padding:21px 0;gap:15px}dialog{padding:62px 43px 35px}.dialog-content p{font-size:19px}.photo-prev,.photo-next{width:32px;height:38px;font-size:27px;border-radius:4px}.photo-prev{left:4px}.photo-next{right:4px}.dialog-close{right:13px}}
@media(max-width:380px){h1{font-size:45px}.couple-names{font-size:18px}.photo-card img{height:180px}.photo-card>span{font-size:14px}.top-date{font-size:8px}.hero{margin:0 18px}.ending h2{font-size:42px}}
.slider-controls{display:none}
/* Phone-only refinements: keep the original desktop composition intact. */
@media(max-width:700px){
  .brand{display:inline-flex;align-items:center;min-height:44px}
  .music-toggle,.open-card,.celebrate-button{min-height:44px}
  .hero-copy,.hero-art,.wrapper-card,.photo-card,.video-grid figure{min-width:0}
  .photo-card img{height:auto;aspect-ratio:3/4}
  .photo-card>span{overflow-wrap:break-word}
  .video-grid video{height:min(390px,70svh)}
  footer{align-items:center}
  footer>a{min-height:44px;min-width:55px;display:inline-flex;align-items:center;justify-content:flex-end;flex-shrink:0}
  dialog{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;padding:max(62px,env(safe-area-inset-top)) max(51px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(51px,env(safe-area-inset-left))}
  .dialog-close,.photo-prev,.photo-next{width:44px;height:44px}
  .dialog-close{top:max(13px,env(safe-area-inset-top));right:max(13px,env(safe-area-inset-right))}
  .photo-prev{left:max(3px,env(safe-area-inset-left))}
  .photo-next{right:max(3px,env(safe-area-inset-right))}
  .dialog-content{min-height:0}
  .dialog-content img{min-height:0;touch-action:pan-y pinch-zoom}
  .dialog-content p{flex-shrink:0;font-size:clamp(16px,4.8vw,19px)}
}
@media(max-width:360px){
  .photo-grid{grid-template-columns:minmax(0,1fr);max-width:270px;margin-inline:auto;gap:22px}
  .photo-card>span{font-size:19px;min-height:0;padding:15px 4px}
}
@media(max-width:700px) and (orientation:landscape){
  dialog{padding-top:max(14px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .dialog-content{gap:8px}
  .dialog-content img{max-height:calc(100% - 40px)}
}
@media(max-width:700px){
  .inserts-grid,.photo-grid{display:flex;grid-template-columns:none;gap:22px;max-width:none;margin:29px -12px 0;padding:18px 12px 19px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .inserts-grid::-webkit-scrollbar,.photo-grid::-webkit-scrollbar{display:none}
  .inserts-grid>.wrapper-card,.photo-grid>.photo-card{flex:0 0 calc(100% - 22px);scroll-snap-align:start;scroll-snap-stop:always}
  .mini-wrapper:nth-child(2){margin-top:0}
  .photo-card img{aspect-ratio:3/4;height:auto}
  .photo-card>span{font-size:21px;min-height:0;padding:15px 4px 18px}
  .slider-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin:2px auto 0}
  .slider-controls button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:22px;line-height:1;color:var(--red)}
  .slider-controls button:disabled{opacity:.35;cursor:default}
  .slider-count{font-size:11px;letter-spacing:.12em;color:var(--muted);min-width:40px;text-align:center}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.confetti-heart{display:none}}
