*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Manrope,system-ui,sans-serif;line-height:1.75;overflow-x:hidden}body.confession-locked{overflow:hidden}button,textarea{font:inherit}.c-pad{padding:115px 0}.confession-kicker{margin:0 0 15px;color:var(--love);font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.confession-kicker.light{color:rgba(255,255,255,.72)}.confession-script{display:block;color:var(--blush);font:400 clamp(47px,7vw,92px)/.85 Sacramento,cursive}.confession-preview{position:fixed;z-index:1200;left:50%;top:12px;transform:translateX(-50%);padding:7px 14px;border-radius:999px;background:#251a1f;color:#fff;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.confession-gate{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;min-height:100svh;padding:24px;color:#fff;overflow:hidden;transition:opacity 1s,visibility 1s}.confession-gate.opened{opacity:0;visibility:hidden;pointer-events:none}.confession-gate-photo,.confession-hero-photo,.confession-closing-photo{position:absolute;inset:0;background-image:var(--cover);background-size:cover;background-position:center;transform:scale(1.04)}.confession-gate-wash{position:absolute;inset:0;background:linear-gradient(120deg,rgba(54,28,39,.88),rgba(107,56,74,.62),rgba(43,27,34,.76))}.gate-letter{position:relative;width:min(650px,100%);padding:55px 48px 42px;text-align:center;border:1px solid rgba(255,255,255,.24);border-radius:28px;background:rgba(255,255,255,.1);backdrop-filter:blur(16px);box-shadow:0 35px 100px rgba(12,6,9,.32)}.wax-heart{width:52px;height:52px;display:grid;place-items:center;margin:-81px auto 26px;border-radius:50%;background:var(--love);box-shadow:0 10px 30px color-mix(in srgb,var(--love) 60%,transparent)}.gate-letter .confession-kicker{color:rgba(255,255,255,.7)}.gate-letter h1{margin:0;font:400 clamp(40px,6vw,68px)/1.03 'DM Serif Display',serif;letter-spacing:-.035em}.gate-letter>p:not(.confession-kicker){max-width:470px;margin:20px auto 27px;color:rgba(255,255,255,.7);font-size:12px}.gate-letter button{min-height:52px;padding:0 25px;border:0;border-radius:999px;background:#fff;color:var(--love);cursor:pointer;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;box-shadow:0 14px 35px rgba(0,0,0,.18)}.gate-letter button i{margin-left:12px;font-style:normal;font-size:18px}.gate-letter small{display:block;margin-top:20px;color:rgba(255,255,255,.48);font-size:9px}.confession-music{position:fixed;z-index:90;right:17px;bottom:17px;display:flex;align-items:center;gap:9px;min-height:44px;padding:0 14px 0 7px;border:1px solid color-mix(in srgb,var(--love) 18%,transparent);border-radius:999px;background:color-mix(in srgb,var(--paper) 91%,transparent);backdrop-filter:blur(12px);color:var(--love);cursor:pointer}.confession-music i{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:var(--love);color:#fff;font-style:normal}.confession-music span{font-size:9px;font-weight:800;text-transform:uppercase}.confession-music.playing i{animation:spin 4s linear infinite}.confession-particles{position:fixed;z-index:80;inset:0;overflow:hidden;pointer-events:none}.confession-particle{position:absolute;top:-25px;color:var(--blush);opacity:.56;animation:fall linear infinite}.confession-burst{position:fixed;z-index:1300;left:50%;top:50%;font-style:normal;pointer-events:none;animation:burst 1.45s ease-out both}
.confession-hero{position:relative;min-height:100svh;display:grid;place-items:center;color:#fff;overflow:hidden}.confession-hero-wash,.confession-closing-wash{position:absolute;inset:0;background:linear-gradient(120deg,rgba(65,30,44,.86),rgba(71,38,51,.48),rgba(37,23,29,.7))}.confession-hero-copy{position:relative;width:min(900px,calc(100% - 40px));padding:80px 0 55px;text-align:center}.confession-hero-copy h1{margin:7px 0 0;font:400 clamp(56px,9vw,116px)/.9 'DM Serif Display',serif;letter-spacing:-.05em}.confession-hero-copy h2{margin:0;font:400 clamp(64px,11vw,138px)/.8 Sacramento,cursive;text-shadow:0 7px 35px rgba(0,0,0,.22)}.confession-hero-copy>p:not(.confession-kicker){max-width:540px;margin:28px auto;color:rgba(255,255,255,.73);font-size:13px}.confession-hero-copy>a{display:inline-flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-size:9px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.confession-hero-copy>a i{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.5);border-radius:50%;font-style:normal}.confession-letter-section{position:relative;overflow:hidden}.confession-letter-layout{width:min(1080px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:.82fr 1.18fr;gap:85px;align-items:center}.confession-portrait{position:relative;height:600px}.confession-portrait>div{height:100%;border-radius:210px 210px 25px 25px;background-image:var(--portrait);background-size:cover;background-position:center;box-shadow:0 28px 80px color-mix(in srgb,var(--love) 16%,transparent)}.confession-portrait:before{content:'';position:absolute;inset:-15px 18px 18px -15px;border:1px solid color-mix(in srgb,var(--blush) 65%,transparent);border-radius:220px 220px 30px 30px;z-index:-1}.confession-portrait>span{position:absolute;right:-52px;bottom:35px;padding:15px 20px;background:var(--paper);color:var(--love);font:400 18px/1.25 Sacramento,cursive;transform:rotate(-5deg);box-shadow:0 12px 35px rgba(62,37,46,.14)}.confession-letter{padding:53px 56px;background:var(--paper);border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);box-shadow:0 30px 90px color-mix(in srgb,var(--love) 8%,transparent)}.confession-letter h2,.confession-heading h2,.question-card h2,.result-card h2,.confession-closing-copy h2{margin:0;font:400 clamp(43px,5vw,66px)/1.04 'DM Serif Display',serif;letter-spacing:-.035em}.confession-rule{height:1px;margin:30px 0;background:color-mix(in srgb,var(--love) 16%,transparent);text-align:center}.confession-rule i{position:relative;top:-14px;padding:0 12px;background:var(--paper);color:var(--blush);font-style:normal}.confession-letter>div:not(.confession-rule){color:color-mix(in srgb,var(--ink) 75%,transparent);font:400 16px/2 'DM Serif Display',serif}.confession-signature{margin:27px 0 0;color:var(--love);font:400 26px Sacramento,cursive}.confession-moments{background:color-mix(in srgb,var(--cream) 90%,var(--blush))}.confession-heading{width:min(720px,calc(100% - 40px));margin:0 auto 55px;text-align:center}.confession-heading>p:last-child{max-width:560px;margin:20px auto 0;color:color-mix(in srgb,var(--ink) 62%,transparent);font-size:12px}.confession-film{width:min(1100px,calc(100% - 40px));margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.confession-photo{margin:0;padding:12px 12px 42px;background:#fff;box-shadow:0 18px 48px rgba(61,38,47,.12);transform:rotate(-1.5deg)}.confession-photo:nth-child(even){transform:rotate(1.7deg) translateY(28px)}.confession-photo img{width:100%;height:310px;object-fit:cover}.confession-photo figcaption{padding-top:12px;color:#6d5961;font:400 16px Sacramento,cursive;text-align:center}.confession-reasons{position:relative;color:#fff;background:var(--love);overflow:hidden}.confession-reasons:before{content:'LOVE';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:rgba(255,255,255,.025);font:400 260px/1 'DM Serif Display',serif}.confession-reason-grid{position:relative;width:min(1080px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.confession-reason{min-height:200px;padding:28px;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.06)}.confession-reason span{color:rgba(255,255,255,.38);font-size:9px}.confession-reason i{margin:auto 0 9px;color:var(--blush);font:400 31px Sacramento,cursive}.confession-reason p{margin:0;color:rgba(255,255,255,.84);font:400 17px/1.55 'DM Serif Display',serif}.confession-question{position:relative;display:grid;place-items:center;min-height:820px;background:var(--cream);overflow:hidden}.confession-question:before,.confession-question:after{content:'♡';position:absolute;color:color-mix(in srgb,var(--love) 6%,transparent);font:400 390px Sacramento,cursive}.confession-question:before{left:-80px;top:-110px}.confession-question:after{right:-80px;bottom:-180px}.question-card{position:relative;z-index:1;width:min(760px,calc(100% - 38px));padding:62px 58px 50px;text-align:center;background:var(--paper);border:1px solid color-mix(in srgb,var(--love) 12%,transparent);border-radius:28px;box-shadow:0 30px 90px color-mix(in srgb,var(--love) 10%,transparent)}.question-heart{width:58px;height:58px;display:grid;place-items:center;margin:-91px auto 28px;border-radius:50%;background:var(--love);color:#fff;box-shadow:0 10px 28px color-mix(in srgb,var(--love) 36%,transparent)}.question-card>p:not(.confession-kicker){max-width:570px;margin:22px auto;color:color-mix(in srgb,var(--ink) 64%,transparent);font-size:12px}.question-card textarea{width:100%;margin:8px 0 22px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);border-radius:13px;background:color-mix(in srgb,var(--cream) 60%,#fff);color:var(--ink);outline:none;resize:vertical}.question-card textarea:focus{border-color:var(--love);box-shadow:0 0 0 3px color-mix(in srgb,var(--love) 9%,transparent)}.choice-buttons{display:grid;grid-template-columns:1fr 1fr;gap:11px}.choice-buttons button{min-height:54px;padding:0 17px;border-radius:999px;cursor:pointer;font-size:10px;font-weight:800;letter-spacing:.04em}.choice-buttons span{margin-right:8px;font-size:17px}.accept-love{border:1px solid var(--love);background:var(--love);color:#fff}.decline-love{border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);background:transparent;color:color-mix(in srgb,var(--ink) 70%,transparent)}.choice-buttons button:disabled{opacity:.55;cursor:wait}.confession-response{display:none;margin-top:15px;padding:10px 13px;border-radius:10px;background:#fdebed;color:#993b4e;font-size:10px}.confession-response.show{display:block}.confession-result{position:fixed;z-index:1100;inset:0;display:grid;place-items:center;padding:24px;background:rgba(39,24,30,.78);backdrop-filter:blur(15px);text-align:center}.confession-result[hidden]{display:none}.result-card{width:min(650px,100%);padding:55px 46px;border-radius:28px;background:var(--love);color:#fff;box-shadow:0 35px 110px rgba(17,7,11,.4)}.declined-result{background:var(--paper);color:var(--ink)}.result-card>span{display:block;color:var(--blush);font:400 50px Sacramento,cursive}.result-card>p:last-child{max-width:520px;margin:23px auto 0;color:rgba(255,255,255,.72);font-size:12px}.declined-result>p:last-child{color:color-mix(in srgb,var(--ink) 65%,transparent)}.confession-whatsapp,.result-close{display:inline-flex;align-items:center;justify-content:center;margin:18px 5px 0;min-height:43px;padding:0 17px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:#fff;color:var(--love);text-decoration:none;cursor:pointer;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.result-close{background:transparent;color:#fff}.confession-closing{position:relative;min-height:730px;display:grid;place-items:center;color:#fff;overflow:hidden}.confession-closing-wash{background:rgba(50,28,37,.72)}.confession-closing-copy{position:relative;width:min(690px,calc(100% - 40px));text-align:center}.confession-closing-copy h2{font-size:70px}.confession-closing-copy>p{max-width:530px;margin:25px auto;color:rgba(255,255,255,.72);font-size:12px}.confession-closing-copy>i{display:block;color:var(--blush);font:400 34px Sacramento,cursive}.confession-closing-copy>strong{font:400 38px Sacramento,cursive}.confession-footer{padding:45px 20px;text-align:center;background:#2c2025;color:#fff}.confession-footer>span{color:var(--blush)}.confession-footer p{margin:6px 0;color:rgba(255,255,255,.57);font-size:9px}.confession-footer small{color:rgba(255,255,255,.3);font-size:8px}.c-reveal{opacity:0;transform:translateY(34px);transition:opacity .85s,transform .85s}.c-reveal.visible{opacity:1;transform:none}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes fall{to{transform:translate3d(var(--drift),110vh,0) rotate(500deg)}}@keyframes burst{from{transform:translate(-50%,-50%) scale(.3);opacity:1}to{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(1.5);opacity:0}}
@media(max-width:900px){.c-pad{padding:90px 0}.confession-letter-layout{grid-template-columns:1fr;gap:70px;width:calc(100% - 42px)}.confession-portrait{width:min(520px,78%);height:580px;margin:auto}.confession-letter{max-width:700px;margin:auto}.confession-film{grid-template-columns:1fr 1fr}.confession-reason-grid{grid-template-columns:1fr 1fr;width:calc(100% - 42px)}}
@media(max-width:600px){.c-pad{padding:74px 0}.gate-letter{padding:46px 20px 35px}.gate-letter h1{font-size:40px}.confession-hero-copy h1{font-size:55px}.confession-hero-copy h2{font-size:77px}.confession-portrait{width:79%;height:425px}.confession-portrait>span{right:-40px;font-size:15px}.confession-letter{padding:38px 23px}.confession-film{grid-template-columns:1fr;width:calc(100% - 30px)}.confession-photo,.confession-photo:nth-child(even){transform:rotate(-1deg);padding-bottom:38px}.confession-photo:nth-child(even){transform:rotate(1deg)}.confession-photo img{height:340px}.confession-reason-grid{grid-template-columns:1fr;width:calc(100% - 30px)}.confession-reason{min-height:165px}.confession-question{min-height:740px}.question-card{padding:49px 20px 36px}.question-card h2{font-size:40px}.choice-buttons{grid-template-columns:1fr}.result-card{padding:43px 22px}.result-card h2{font-size:40px}.confession-closing-copy h2{font-size:50px}.confession-music{right:11px;bottom:11px;width:44px;padding:0;justify-content:center}.confession-music span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.c-reveal{opacity:1;transform:none}}
.confession-result{display:flex;flex-direction:column;align-items:center;justify-content:center}

/* Love-diary motion and scrapbook photography, intentionally distinct from the formal invitation gallery. */
html{scroll-padding-top:24px}.confession-scroll-progress{position:fixed;z-index:95;left:0;right:0;top:0;height:3px;background:rgba(255,255,255,.08);pointer-events:none}.confession-scroll-progress i{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--blush),var(--love));transform:scaleX(0);transform-origin:left;will-change:transform;box-shadow:0 1px 10px color-mix(in srgb,var(--love) 40%,transparent)}
[data-parallax]{will-change:transform;transform:translate3d(0,var(--parallax-y,0),0) scale(1.09)}.c-reveal{transition-duration:1s;transition-timing-function:cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms);will-change:opacity,transform}.c-reveal[data-reveal=left]{transform:translate3d(-55px,15px,0) rotate(-1deg)}.c-reveal[data-reveal=right]{transform:translate3d(55px,15px,0) rotate(1deg)}.c-reveal[data-reveal=scale]{transform:translate3d(0,26px,0) scale(.94)}.c-reveal[data-reveal=up]{transform:translate3d(0,46px,0)}.c-reveal.visible{opacity:1;transform:none}
.confession-moments{position:relative;overflow:hidden;background-color:color-mix(in srgb,var(--cream) 88%,var(--blush));background-image:radial-gradient(color-mix(in srgb,var(--love) 10%,transparent) 1px,transparent 1px);background-size:22px 22px}.confession-moments:before{content:'our memories';position:absolute;right:-40px;top:80px;color:color-mix(in srgb,var(--love) 5%,transparent);font:400 130px/1 Sacramento,cursive;transform:rotate(-8deg);pointer-events:none}.scrapbook-note{position:relative;z-index:2;width:min(1050px,calc(100% - 44px));margin:-18px auto 36px;display:flex;align-items:center;gap:11px;color:var(--love);transform:rotate(-1.5deg)}.scrapbook-note span{padding:9px 15px;background:#fff7cb;box-shadow:0 8px 20px rgba(74,48,35,.1);font:400 21px Sacramento,cursive}.scrapbook-note i{font-style:normal}.scrapbook-note small{margin-left:auto;color:color-mix(in srgb,var(--ink) 50%,transparent);font-size:8px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.confession-film{position:relative;z-index:1;width:min(1100px,calc(100% - 50px));display:grid;grid-template-columns:repeat(12,1fr);gap:42px 24px;align-items:start;padding:25px 10px 50px}.confession-photo,.confession-photo:nth-child(even){position:relative;grid-column:span 4;margin:0;padding:15px 15px 50px;border:1px solid rgba(75,49,57,.06);border-radius:2px;background:#fffdf9;box-shadow:0 24px 55px rgba(60,37,46,.14);transform:rotate(var(--tilt));transform-origin:center;transition:opacity 1s,transform .65s cubic-bezier(.2,.7,.2,1),box-shadow .4s;scroll-snap-align:center}.confession-photo:nth-child(3n+2){margin-top:48px}.confession-photo:nth-child(4n){grid-column:2/span 4}.confession-photo:only-child{grid-column:5/span 4;margin-top:0}.confession-photo.c-reveal{transform:translate3d(0,42px,0) rotate(var(--tilt)) scale(.95)}.confession-photo.c-reveal.visible{transform:rotate(var(--tilt))}.confession-photo.c-reveal.visible:hover{z-index:4;transform:translateY(-11px) rotate(0deg) scale(1.025);box-shadow:0 32px 70px rgba(60,37,46,.2)}.photo-tape{position:absolute;z-index:3;left:50%;top:-13px;width:95px;height:27px;transform:translateX(-50%) rotate(-2deg);background:rgba(243,218,186,.75);box-shadow:0 2px 4px rgba(60,40,30,.08)}.memory-number{position:absolute;z-index:3;right:23px;top:25px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.86);color:var(--love);font-size:7px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;backdrop-filter:blur(5px)}.photo-shell{position:relative;height:310px;overflow:hidden;background:#eadfe2}.photo-shell:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(57,33,41,.08);pointer-events:none}.photo-shell img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.confession-photo:hover .photo-shell img{transform:scale(1.055)}.confession-photo figcaption{padding:13px 8px 0;color:#6d5961;font:400 18px Sacramento,cursive;text-align:left}.photo-heart{position:absolute;right:18px;bottom:13px;color:var(--blush);font:400 26px Sacramento,cursive;transform:rotate(9deg)}
@media(max-width:900px){.confession-film{grid-template-columns:repeat(2,1fr);gap:36px 20px}.confession-photo,.confession-photo:nth-child(even),.confession-photo:nth-child(4n){grid-column:auto;margin-top:0}.confession-photo:nth-child(even){margin-top:35px}.confession-photo:only-child{grid-column:auto;max-width:460px;margin:0 auto}.photo-shell{height:360px}}
@media(max-width:600px){html{scroll-padding-top:12px}.confession-scroll-progress{height:2px}.scrapbook-note{margin-bottom:20px}.scrapbook-note small{display:block}.confession-film{width:100%;display:flex;gap:18px;overflow-x:auto;padding:30px 9vw 52px;scroll-snap-type:x mandatory;scroll-padding:9vw;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.confession-film::-webkit-scrollbar{display:none}.confession-photo,.confession-photo:nth-child(even),.confession-photo:nth-child(4n),.confession-photo:only-child{flex:0 0 82vw;max-width:none;margin:0;padding:12px 12px 45px;transform:rotate(var(--tilt))}.confession-photo.c-reveal{transform:translate3d(28px,18px,0) rotate(var(--tilt)) scale(.96)}.confession-photo.c-reveal.visible{transform:rotate(var(--tilt))}.photo-shell{height:420px}.confession-photo figcaption{font-size:17px}.confession-moments:before{font-size:82px;top:120px}}
@media(prefers-reduced-motion:reduce){[data-parallax]{transform:scale(1.04)!important}.confession-scroll-progress{display:none}.c-reveal,.c-reveal[data-reveal],.confession-photo.c-reveal{opacity:1!important;transform:none!important;transition:none!important}}
