/* Small, quiet details for a story worth lingering over. */
#romance-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:30;contain:strict}
.reading-progress{position:fixed;inset:0 0 auto;height:2px;z-index:45;pointer-events:none;background:transparent}
.reading-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#a46870,#7b2939,#c4a06b);transform:scaleX(0);transform-origin:left}
.hero{isolation:isolate}
.hero::before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:-60px 0 0;background:radial-gradient(ellipse at 85% 30%,#e4bcc622,transparent 52%),radial-gradient(ellipse at 8% 73%,#f1dabe22,transparent 46%)}
.domain{border-bottom:1px solid #b6867e55;padding-bottom:3px}
.title-us::after{content:"";position:absolute;left:12%;right:10%;bottom:-4px;height:7px;border-bottom:2px solid #be92916b;border-radius:50%;transform:rotate(-3deg);transform-origin:left}
.primary-link{position:relative;overflow:hidden;border-radius:3px;box-shadow:0 6px 18px #7b293917}
.primary-link::before{content:"";position:absolute;inset:-40% auto -40% -70%;width:36%;background:linear-gradient(90deg,transparent,#fff8e92a,transparent);transform:skewX(-20deg);pointer-events:none}
.hero-photos{isolation:isolate}
.hero-polaroid{box-shadow:0 14px 45px #66403718,0 0 1px #b7a28e}
.hero-sparkles{position:absolute;inset:0;pointer-events:none;z-index:3;color:#b48b61}
.hero-sparkles span{position:absolute;font-family:Georgia,serif;font-size:32px;line-height:1;font-weight:400}
.hero-sparkles span:nth-child(1){top:5%;right:-9px}
.hero-sparkles span:nth-child(2){top:-5%;left:15%;font-size:18px;opacity:.65}
.hero-sparkles span:nth-child(3){bottom:24%;left:-28px;font-size:24px;color:#b87881;transform:rotate(-16deg)}
.photo-stamp{width:96px;height:96px;padding-top:16px;font-size:.6875rem;letter-spacing:1px;box-shadow:0 2px 10px #7b293909}
.photo-stamp strong{font-size:1.65rem}
.days-section{background:radial-gradient(ellipse at 50% 120%,#a25864 0,transparent 65%),var(--wine)}
.days-section::before,.days-section::after{content:"♡";position:absolute;top:50%;font:90px/1 Georgia,serif;color:#efd8d51c;pointer-events:none;transform:translateY(-50%) rotate(-14deg)}
.days-section::before{left:18%}.days-section::after{right:18%;font-size:64px;transform:translateY(-30%) rotate(18deg)}
.days-inner{position:relative;z-index:1}
.memory-card{transition:translate .35s ease,filter .35s ease}
.memory-image{border-radius:3px;box-shadow:0 4px 20px #63453609}
.memory-image img{transition:transform .8s cubic-bezier(.2,.65,.3,1)}
.keepsake{background:linear-gradient(90deg,transparent,#e9d3c115,transparent)}
.star-mark{display:inline-block;transform-origin:center}
.journey{background:radial-gradient(ellipse at 10% 15%,#f9edd8bb,transparent 55%),#eee7d8}
.album-grid{gap:35px 26px}
.album-grid>figure{padding:9px 9px 14px;background:#fffdf8;box-shadow:0 5px 17px #56392c0c;border:1px solid #e5d9cb75;border-radius:2px;transition:transform .4s,box-shadow .4s}
.album-grid>figure:nth-child(3n+1){transform:rotate(-1deg)}
.album-grid>figure:nth-child(3n+3){transform:rotate(1deg)}
.album-grid figcaption{padding:13px 3px 0}
.album-photo{border-radius:1px}
.letter-paper{background:linear-gradient(145deg,#fffdf8 65%,#f6eee25c);border-color:#d9c6b6;box-shadow:5px 6px 0 #efe3d8,0 12px 35px #60403108}
.letter-paper::after{content:"♡";position:absolute;top:26px;right:29px;color:#b6748059;font:27px Georgia,serif;transform:rotate(12deg);pointer-events:none}
.letter-signature strong{transform:rotate(-3deg);transform-origin:right}
.closing{position:relative}
.closing::before{content:"";position:absolute;inset:2% 10%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,#ecd2d038,transparent 67%)}
.closing-heart{display:grid;place-items:center;width:80px;height:80px;margin:0 auto;border:1px solid #b8818952;border-radius:50%;background:#fffaf4;box-shadow:0 0 0 8px #7b293904;font:46px/1 Georgia,serif;color:var(--wine);transition:background .25s,box-shadow .25s;touch-action:manipulation}
.closing-heart:hover{background:#faeee9;box-shadow:0 0 0 12px #7b293907}
.closing-heart:active{transform:scale(.94)}
.heart-invitation{display:block;margin-top:19px;color:#9b7a6f;font:1rem/1.6 var(--hand)}
.closing>p{min-height:2em;margin-top:15px}
.effects-toggle{position:fixed;right:25px;bottom:24px;bottom:max(24px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 15px;border:1px solid #b99b8d6b;border-radius:30px;background:#fffbf3f5;color:#805255;font:.75rem/1.8 var(--sans);letter-spacing:1px;box-shadow:0 4px 22px #5134260e;z-index:40;transition:background .2s,translate .2s}
.effects-toggle[hidden]{display:none}.effects-toggle:hover{background:#fff4e9;translate:0 -2px}.effects-icon{font:23px/1 Georgia,serif}.effects-state{font-size:.6875rem;color:#946d65;padding-left:9px;border-left:1px solid #d8c5b9}.effects-toggle[aria-pressed="false"]{color:#7f7870}.effects-toggle:disabled{cursor:default}.effects-toggle:disabled:hover{translate:none}
.album-open .effects-toggle{visibility:hidden}
.effects-on .hero-photos.in-view .hero-polaroid{animation:photo-float 7s ease-in-out infinite}
.effects-on .hero-photos.in-view .hero-sparkles span{animation:twinkle 4.5s ease-in-out infinite}
.effects-on .hero-photos.in-view .hero-sparkles span:nth-child(2){animation-delay:-1.4s}
.effects-on .hero-photos.in-view .hero-sparkles span:nth-child(3){animation-delay:-2.6s}
.effects-on .hero-copy .little-heart{animation:little-heartbeat 4s ease-in-out infinite}
.effects-on .title-us::after{animation:underline-appear 1.4s .3s both}
.effects-on .primary-link::before{animation:letter-shimmer 8s 3s ease-in-out infinite}
.effects-on .journey.in-view .journey-small{animation:postcard-sway 8s ease-in-out infinite}
.effects-on .keepsake.in-view .star-mark{animation:star-breathe 5s ease-in-out infinite}
.effects-on .closing.in-view .closing-heart{animation:heart-breathe 3.4s ease-in-out infinite}
.effects-paused *,.effects-paused *::before,.effects-paused *::after{animation-play-state:paused!important}
@keyframes photo-float{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -9px;rotate:-.65deg}}
@keyframes postcard-sway{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -7px;rotate:2deg}}
@keyframes twinkle{0%,100%{opacity:.4;scale:.9}50%{opacity:.85;scale:1.1}}
@keyframes little-heartbeat{0%,36%,54%,100%{scale:1}42%{scale:1.13}48%{scale:1.02}}
@keyframes underline-appear{from{scale:0 1;opacity:0}to{scale:1 1;opacity:1}}
@keyframes letter-shimmer{0%,70%{left:-70%;opacity:0}74%{opacity:1}88%,100%{left:140%;opacity:0}}
@keyframes star-breathe{0%,100%{opacity:.7;scale:1}50%{opacity:1;scale:1.1;rotate:8deg}}
@keyframes heart-breathe{0%,100%{box-shadow:0 0 0 8px #7b293904}50%{box-shadow:0 0 0 15px #7b293909}}
@media(hover:hover) and (pointer:fine){.memory-card:hover{translate:0 -5px}.memory-card:hover .memory-image img{transform:scale(1.035)}.album-grid>figure:hover{transform:translateY(-7px) rotate(0);box-shadow:0 14px 30px #56392c16}.hero-polaroid{transition:box-shadow .5s}.hero-polaroid:hover{box-shadow:0 19px 50px #66403724}}
@media(max-width:700px){.hero::before{inset:-30px 0 0}.hero-sparkles span:nth-child(1){right:0;top:3%;font-size:25px}.hero-sparkles span:nth-child(2){left:10%;top:-5%;font-size:15px}.hero-sparkles span:nth-child(3){left:0;bottom:32%;font-size:19px}.hero-polaroid figcaption{font-size:clamp(.9375rem,4.2vw,1.1875rem)}.photo-stamp{width:78px;height:78px;left:0;bottom:107px;padding-top:12px;font-size:.5625rem;letter-spacing:.6px}.photo-stamp strong{font-size:1.3rem}.days-section::before{left:5%;font-size:60px}.days-section::after{right:5%;font-size:43px}.album-grid{gap:24px 14px}.album-grid>figure{padding:6px 6px 11px}.album-grid figcaption{font-size:.9375rem;padding-top:10px;gap:6px}.letter-paper::after{font-size:22px;right:19px;top:20px}.letter-index{font-size:.6875rem;letter-spacing:1px}.closing-heart{width:70px;height:70px;font-size:40px}.closing>p{font-size:1.125rem;min-height:3.6em;display:grid;place-items:center}.heart-invitation{font-size:.9375rem}.effects-toggle{right:15px;bottom:17px;bottom:max(17px,env(safe-area-inset-bottom));min-height:42px;padding:7px 12px;gap:7px;letter-spacing:.5px}.effects-icon{font-size:21px}.effects-state{padding-left:7px}.site-footer{padding-bottom:88px}}
@media(prefers-reduced-motion:reduce){#romance-canvas{display:none}.effects-on *,.effects-on *::before,.effects-on *::after{animation:none!important;transition:none!important}.memory-card:hover{translate:none}.album-grid>figure:hover{transform:none}.closing-heart:active{transform:none}}
