@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#172521;--ink-soft:#40534c;--cream:#f5f0e8;--paper:#fffdf8;--rose:#df9a8c;--rose-deep:#c87368;--sage:#9eafa0;--line:#d8d2c7;--serif:'DM Serif Display',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--shadow:0 20px 55px rgba(23,37,33,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6}.site-shell{overflow:hidden}.section-pad{padding-left:clamp(22px,6vw,88px);padding-right:clamp(22px,6vw,88px)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}.topbar{align-items:center;display:flex;justify-content:space-between;max-width:1380px;margin:auto;padding:20px clamp(22px,6vw,88px)}.brand{align-items:center;display:flex;gap:11px;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:2px}.brand-mark{font-family:var(--serif);font-size:24px;letter-spacing:-2px;text-transform:none}.brand-mark span{color:var(--rose-deep);font-size:16px}.identity-chip{align-items:center;background:transparent;border:1px solid var(--line);border-radius:30px;color:var(--ink);display:flex;gap:8px;padding:6px 12px 6px 6px;font-size:11px;font-weight:700}.mini-avatar,.form-avatar{align-items:center;background:var(--rose);border-radius:50%;color:white;display:inline-flex;font-size:12px;font-weight:800;height:27px;justify-content:center;width:27px}.hero{display:grid;gap:40px;grid-template-columns:minmax(0,1fr) minmax(280px,540px);max-width:1380px;margin:0 auto;padding-bottom:90px;padding-top:62px}.hero-copy{align-self:center;max-width:550px}.eyebrow{align-items:center;color:var(--rose-deep);display:flex;font-size:10px;font-weight:800;gap:9px;letter-spacing:2px;margin:0 0 18px;text-transform:uppercase}.eyebrow-dot{background:var(--rose-deep);border-radius:50%;height:6px;width:6px}.hero h1,.section-heading h2{font-family:var(--serif);font-size:clamp(3.2rem,8vw,7.7rem);font-weight:400;letter-spacing:-3px;line-height:.9;margin:0}.hero h1 em,.section-heading h2 em{color:var(--rose-deep);font-style:italic}.hero-lede{font-size:18px;font-weight:800;margin:30px 0 8px}.hero-note{color:var(--ink-soft);font-size:14px;max-width:390px}.hero-actions{align-items:center;display:flex;gap:23px;margin-top:30px}.button{align-items:center;border:0;display:inline-flex;gap:20px;justify-content:center;padding:14px 19px;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:1.2px;transition:transform .25s,background .25s}.button:hover{transform:translateY(-3px)}.button-dark{background:var(--ink);color:var(--paper)}.button-light{background:var(--rose-deep);color:#fff}.text-link{border-bottom:1px solid var(--ink);font-size:11px;font-weight:800;padding-bottom:4px}.text-link span{font-size:16px;margin-left:6px}.hero-visual{position:relative}.photo-frame{background:var(--paper);box-shadow:var(--shadow);padding:10px;position:relative;transform:rotate(2.5deg)}.photo-frame img{display:block;height:min(67vw,620px);object-fit:cover;width:100%}.photo-stamp{background:var(--rose);bottom:28px;color:#fff;font-family:var(--serif);font-size:19px;line-height:1;position:absolute;right:-24px;padding:15px 18px;transform:rotate(-9deg)}.floating-note{background:#f8dfb5;box-shadow:0 12px 30px #1725211c;color:#594b3a;font-family:var(--serif);font-size:15px;line-height:1.15;padding:14px;position:absolute;transform:rotate(-8deg)}.note-top{left:-30px;top:8%}.note-top span{color:var(--rose-deep);font-size:22px}.note-bottom{bottom:8%;right:-18px;transform:rotate(7deg)}.social-strip{align-items:center;background:var(--ink);color:var(--cream);display:flex;justify-content:space-between;gap:15px;margin:0 auto;max-width:1220px;padding-bottom:23px;padding-top:23px}.social-stat{display:flex;flex-direction:column;gap:1px}.social-stat strong,.love-button strong{font-family:var(--serif);font-size:26px;font-weight:400;line-height:1}.social-stat span,.love-button span:last-child{color:#aabcb3;font-size:9px;letter-spacing:.7px;text-transform:uppercase}.social-divider{background:#50645c;height:32px;width:1px}.love-button{align-items:center;background:transparent;border:0;color:var(--cream);display:flex;gap:8px;padding:0}.heart-icon{color:var(--rose);font-size:28px;transition:transform .35s}.love-button.liked .heart-icon{animation:heartPop .5s ease;color:#fb8e91}.story{background:var(--paper);padding-bottom:110px;padding-top:110px}.section-heading h2{font-size:clamp(3rem,6vw,6rem);line-height:.92}.story-layout{display:grid;gap:70px;grid-template-columns:1.1fr .8fr;margin:68px auto 0;max-width:1050px}.story-text{color:var(--ink-soft);font-size:16px;max-width:540px}.story-text strong{color:var(--ink)}blockquote{border-left:3px solid var(--rose);color:var(--ink);font-family:var(--serif);font-size:25px;line-height:1.15;margin:35px 0;padding-left:22px}.story-card{align-items:center;background:var(--rose);color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:330px;padding:35px;position:relative;text-align:center;transform:rotate(3deg)}.card-kicker{font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase}.card-date{font-family:var(--serif);font-size:100px;line-height:1;margin:15px 0 0}.story-card p{font-family:var(--serif);font-size:19px;margin:0}.card-line{background:#f7c0b6;height:1px;margin:26px 0;width:80px}.card-signature{font-family:var(--serif);font-size:22px}.people{background:#e7e8df;padding-bottom:100px;padding-top:100px}.centered{text-align:center}.centered .eyebrow{justify-content:center}.people-grid{display:grid;gap:18px;grid-template-columns:repeat(2,1fr);margin:60px auto 0;max-width:1000px}.person-card{background:var(--paper);display:grid;grid-template-columns:42% 58%;min-height:280px;overflow:hidden}.person-photo img{height:100%;object-fit:cover;width:100%}.person-info{padding:25px 20px;position:relative}.person-role{color:var(--rose-deep);font-size:10px;font-weight:800;letter-spacing:.5px;margin:0 0 14px;text-transform:uppercase}.person-info h3{font-family:var(--serif);font-size:30px;font-weight:400;line-height:1;margin:0 0 15px}.person-info p{color:var(--ink-soft);font-size:12px}.person-tag{bottom:20px;color:var(--rose-deep);font-family:var(--serif);font-size:20px;position:absolute;right:20px}.person-card-dark{background:var(--ink);color:var(--cream)}.person-card-dark .person-info p{color:#bdc9c1}.timeline{background:var(--cream);padding-bottom:120px;padding-top:110px}.timeline-list{border-top:1px solid var(--line);margin:65px auto 0;max-width:970px}.timeline-item{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:30px;grid-template-columns:100px 1fr auto;padding:25px 0}.timeline-date{font-family:var(--serif);font-size:34px;line-height:.8}.timeline-date span{font-family:var(--sans);font-size:9px;font-weight:800;letter-spacing:1px}.timeline-item h3{font-size:17px;margin:0}.timeline-item p{color:var(--ink-soft);font-size:12px;margin:2px 0 0}.timeline-heart{color:var(--rose-deep);font-size:30px}.timeline-highlight h3{color:var(--rose-deep)}.future .timeline-date{color:var(--rose-deep)}.gallery{background:var(--paper);padding-bottom:110px;padding-top:110px}.gallery-grid{display:grid;gap:14px;grid-template-columns:1.5fr 1fr 1fr;margin:60px auto 0;max-width:1100px}.gallery-grid figure{margin:0}.gallery-grid img{display:block;height:260px;object-fit:cover;width:100%}.gallery-grid .gallery-main img{height:430px}.gallery-grid figcaption{color:var(--ink-soft);font-family:var(--serif);font-size:15px;padding-top:10px}.guestbook{background:var(--ink);color:var(--cream);padding-bottom:100px;padding-top:100px}.guestbook .eyebrow{color:var(--rose)}.guestbook h2 em{color:var(--rose)}.guestbook-head{align-items:end;display:flex;gap:40px;justify-content:space-between;margin:auto;max-width:1000px}.guestbook-intro{color:#b7c3bd;font-size:13px;max-width:310px}.comment-form,.comments-list{margin:55px auto 0;max-width:1000px}.comment-form{border-bottom:1px solid #40554c;border-top:1px solid #40554c;padding:24px 0}.comment-input-wrap{align-items:flex-start;display:flex;gap:13px}.form-avatar{background:var(--rose-deep);flex-shrink:0}.comment-input-wrap textarea{background:transparent;border:0;color:var(--cream);font-size:16px;outline:0;resize:vertical;width:100%}.comment-input-wrap textarea::placeholder{color:#70837a}.form-footer{align-items:center;display:flex;justify-content:space-between;padding-left:40px}.form-footer>span{color:#809087;font-size:10px}.comments-list{display:grid;gap:12px}.comment{background:#243a32;padding:17px}.comment-head{align-items:center;display:flex;gap:10px}.comment-avatar{align-items:center;background:var(--rose);border-radius:50%;color:#fff;display:flex;font-size:11px;font-weight:800;height:28px;justify-content:center;width:28px}.comment-name{font-size:12px;font-weight:800}.comment-date{color:#809087;font-size:10px;margin-left:auto}.comment-text{color:#dbe2dc;font-size:13px;margin:11px 0 0;padding-left:38px;white-space:pre-wrap}.comment-actions{display:flex;gap:14px;justify-content:flex-end;margin-top:10px}.comment-actions button{background:transparent;border:0;color:#a7b9af;font-size:10px;padding:0}.comment-actions .delete{color:#dd9389}.empty-comments{color:#809087;font-family:var(--serif);font-size:18px;text-align:center}.footer{background:#10201b;color:#8da097;padding-bottom:35px;padding-top:45px;text-align:center}.footer-mark{color:var(--cream);font-family:var(--serif);font-size:32px}.footer-mark span{color:var(--rose)}.footer p{font-size:11px;letter-spacing:1px;text-transform:uppercase}.footer small{font-size:10px}.name-modal{align-items:center;background:#172521b8;display:none;inset:0;justify-content:center;padding:20px;position:fixed;z-index:5}.name-modal.open{display:flex}.modal-card{background:var(--paper);box-shadow:var(--shadow);max-width:430px;padding:42px 32px 35px;position:relative;width:100%}.modal-close{background:transparent;border:0;color:var(--ink-soft);font-size:26px;position:absolute;right:14px;top:8px}.modal-flower{color:var(--rose-deep);font-size:20px}.modal-card h2{font-family:var(--serif);font-size:48px;font-weight:400;line-height:.92;margin:12px 0}.modal-card h2 em{color:var(--rose-deep)}.modal-card>p:not(.eyebrow){color:var(--ink-soft);font-size:13px;margin-bottom:25px}.modal-card label{display:block;font-size:10px;font-weight:800;letter-spacing:1px;margin-bottom:6px;text-transform:uppercase}.modal-card input{background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);font-size:17px;outline:0;padding:10px 0;width:100%}.modal-card .button{margin-top:25px;width:100%}.toast{background:var(--rose-deep);bottom:22px;color:#fff;display:none;font-size:12px;left:50%;padding:12px 18px;position:fixed;transform:translateX(-50%);z-index:8}.toast.show{animation:toastIn .25s ease;display:block}@keyframes heartPop{50%{transform:scale(1.55)}100%{transform:scale(1)}}@keyframes toastIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}.reveal{animation:rise .8s both}.reveal-delay{animation-delay:.16s}@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(max-width:720px){.topbar{padding-top:16px}.hero{display:flex;flex-direction:column;padding-bottom:65px;padding-top:35px}.hero h1{font-size:clamp(3.8rem,16vw,6rem)}.hero-actions{align-items:flex-start;flex-direction:column;gap:16px}.hero-visual{margin:18px 15px 0}.photo-frame img{height:115vw;max-height:530px}.floating-note{font-size:12px}.note-top{left:-20px}.note-bottom{right:-14px}.social-strip{gap:12px;padding-bottom:18px;padding-top:18px}.social-stat strong,.love-button strong{font-size:20px}.social-stat span,.love-button span:last-child{font-size:7px}.story,.people,.timeline,.gallery,.guestbook{padding-bottom:75px;padding-top:75px}.story-layout{display:flex;flex-direction:column;gap:40px;margin-top:42px}.story-card{min-height:270px;margin:0 10px}.people-grid{display:flex;flex-direction:column;margin-top:40px}.person-card{min-height:230px}.person-info h3{font-size:26px}.timeline-list{margin-top:42px}.timeline-item{gap:15px;grid-template-columns:65px 1fr auto;padding:20px 0}.timeline-date{font-size:28px}.timeline-item p{font-size:11px}.timeline-heart{font-size:24px}.gallery-grid{gap:10px;grid-template-columns:1fr 1fr;margin-top:42px}.gallery-grid .gallery-main{grid-column:1 / -1}.gallery-grid img,.gallery-grid .gallery-main img{height:210px}.gallery-grid .gallery-main img{height:330px}.guestbook-head{align-items:start;display:block}.guestbook-intro{margin-top:25px}.comment-form,.comments-list{margin-top:38px}.form-footer{padding-left:40px}.comment-date{font-size:9px}.modal-card{padding:35px 25px 28px}.modal-card h2{font-size:42px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
.comment-preview{background:#e7e8df;padding-bottom:58px;padding-top:58px}.comment-preview-head{margin:auto;max-width:1100px}.comment-preview .eyebrow{margin-bottom:12px}.comment-preview h2{font-family:var(--serif);font-size:clamp(2.5rem,5vw,4.6rem);font-weight:400;letter-spacing:-2px;line-height:.92;margin:0}.comment-preview h2 em{color:var(--rose-deep);font-style:italic}.top-comment-form{align-items:center;background:var(--paper);display:flex;gap:10px;margin:30px auto 0;max-width:1100px;padding:8px}.top-comment-form input{background:transparent;border:0;color:var(--ink);font-size:13px;min-width:0;outline:0;padding:10px;width:100%}.top-comment-form .button{flex-shrink:0;padding:12px 14px}.comment-preview-list{display:grid;gap:0;margin:22px auto 0;max-width:1100px;max-height:390px;overflow-y:auto;padding:0 3px;scrollbar-color:var(--rose) transparent}.comment-preview-list::-webkit-scrollbar{width:5px}.comment-preview-list::-webkit-scrollbar-thumb{background:var(--rose);border-radius:5px}.comment-preview-card{background:transparent;border-bottom:1px solid #cfd2c8;display:block;padding:13px 8px}.comment-preview-card:first-child{border-top:2px solid var(--rose-deep)}.preview-card-head{align-items:center;display:flex;gap:9px}.preview-avatar{align-items:center;background:var(--rose);border-radius:50%;color:#fff;display:flex;font-size:10px;font-weight:800;height:25px;justify-content:center;width:25px}.preview-name{font-size:11px;font-weight:800}.preview-date{color:#8a958e;font-size:9px;margin-left:auto}.preview-text{color:var(--ink-soft);font-size:13px;line-height:1.35;margin:4px 0 0 34px}.preview-reply-button{background:transparent;border:0;color:var(--rose-deep);font-size:10px;font-weight:800;margin:4px 0 0 34px;padding:0}.preview-replies{border-left:2px solid #d8b1a9;margin:8px 0 0 34px;padding-left:12px}.preview-reply{color:var(--ink-soft);font-size:11px;margin:5px 0}.preview-reply strong{color:var(--ink)}.preview-reply-form{align-items:center;display:flex;gap:5px;margin-top:7px}.preview-reply-form input{background:var(--paper);border:1px solid #d2d5cc;font-size:11px;min-width:0;padding:6px;width:100%}.preview-reply-form button{background:var(--rose-deep);border:0;color:#fff;font-size:10px;padding:7px 10px}.preview-empty{color:var(--ink-soft);font-family:var(--serif);font-size:19px;padding:10px 0}
@media(max-width:720px){.comment-preview{padding-bottom:48px;padding-top:48px}.comment-preview-list{max-height:420px;margin-left:-3px;margin-right:-3px}.top-comment-form .button{font-size:9px;gap:7px;padding:11px 10px}.top-comment-form input{font-size:12px}}
.preview-reply-form[hidden]{display:none}
.modal-card label:not(:first-of-type){margin-top:18px}.private-hint{color:var(--ink-soft);display:block;font-size:10px;margin-top:8px}
.comment-replies{border-left:2px solid #e7a39a;margin:12px 0 0 38px;padding-left:13px}.comment-reply{color:#d9e5dc;font-size:12px;margin:6px 0}.comment-reply strong{color:#f2b4aa}
.comment-preview-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:430px;overflow-y:auto}.comment-preview-card{background:var(--paper);border:0;box-shadow:0 6px 18px #17252112;margin:4px;padding:13px;min-height:105px}.comment-preview-card:first-child{border-top:3px solid var(--rose-deep)}.load-comments-button{background:transparent;border:1px solid var(--ink-soft);color:var(--ink);display:block;font-size:10px;font-weight:800;letter-spacing:.7px;margin:20px auto 0;padding:11px 18px;text-transform:uppercase}.load-comments-button:hover{background:var(--ink);color:var(--paper)}
.scroll-progress{background:var(--rose-deep);height:3px;left:0;position:fixed;top:0;transform:scaleX(0);transform-origin:left;transition:transform .12s ease;width:100%;z-index:10}.desktop-nav{display:flex;gap:25px;margin-left:auto;margin-right:30px}.desktop-nav a{color:var(--ink-soft);font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;transition:color .2s}.desktop-nav a:hover{color:var(--rose-deep)}.hero{position:relative}.hero:before{background:radial-gradient(circle,#e6b3a02b 0 1px,transparent 1.5px);background-size:18px 18px;content:'';height:260px;position:absolute;right:-40px;top:20px;transform:rotate(12deg);width:280px;z-index:0}.hero-copy,.hero-visual{position:relative;z-index:1}.photo-frame{transition:transform .5s ease,box-shadow .5s ease}.photo-frame:hover{box-shadow:0 28px 70px rgba(23,37,33,.2);transform:rotate(0deg) translateY(-8px)}.timeline-item{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.timeline-item.is-visible{opacity:1;transform:none}.gallery-grid figure{cursor:zoom-in;overflow:hidden}.gallery-grid figure img{transition:transform .6s ease,filter .6s ease}.gallery-grid figure:hover img{filter:saturate(1.12);transform:scale(1.04)}.mobile-nav{display:none}.lightbox{align-items:center;background:#10201be8;display:flex;inset:0;justify-content:center;opacity:0;pointer-events:none;position:fixed;transition:opacity .25s ease;z-index:20}.lightbox.open{opacity:1;pointer-events:auto}.lightbox img{box-shadow:0 25px 80px #0008;max-height:84vh;max-width:min(90vw,900px);object-fit:contain}.lightbox button{background:transparent;border:0;color:#fff;font-size:36px;position:absolute;right:24px;top:12px}.section-heading,.guestbook-head,.gallery-grid,.timeline-list{position:relative}.section-heading:after{background:var(--rose);content:'';display:block;height:2px;margin-top:25px;transform:scaleX(0);transform-origin:left;transition:transform .8s ease;width:42px}.section-heading.is-visible:after{transform:scaleX(1)}
@media(max-width:720px){body{padding-bottom:63px}.desktop-nav{display:none}.topbar{position:relative;z-index:3}.hero:before{height:160px;right:-80px;top:0;width:180px}.mobile-nav{align-items:center;background:#10201bf5;bottom:12px;display:flex;justify-content:space-around;left:12px;padding:9px 5px;position:fixed;right:12px;z-index:9}.mobile-nav a{align-items:center;color:#b8c7c0;display:flex;flex-direction:column;font-size:8px;font-weight:800;gap:1px;letter-spacing:.5px;text-transform:uppercase}.mobile-nav a span{color:var(--rose);font-size:18px;line-height:1}.mobile-nav a:hover{color:#fff}.lightbox img{max-width:92vw}.lightbox button{right:12px}.section-heading:after{margin-top:18px}}
.load-comments-button[hidden]{display:none}
@media(max-width:720px){.comment-preview-list{grid-template-columns:minmax(0,1fr);max-height:450px;width:100%}.comment-preview-card{margin:3px 0;min-width:0;width:100%}.preview-text{overflow-wrap:anywhere}.top-comment-form{max-width:100%;width:100%}}

/* Full visual redesign */
:root{--ink:#14211e;--ink-soft:#53625c;--cream:#f4eee5;--paper:#fffaf2;--rose:#e7a398;--rose-deep:#bb625e;--sage:#d8dfd4;--line:#d9d0c4;--serif:'DM Serif Display',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--shadow:0 24px 70px rgba(20,33,30,.16)}
body{background:#f4eee5;color:var(--ink);letter-spacing:.01em}.site-shell{background:linear-gradient(180deg,#f4eee5 0%,#f9f4ec 34%,#f0e7dd 100%)}.topbar{border-bottom:1px solid #d9d0c466;max-width:none;padding-bottom:17px;padding-top:17px}.brand{font-size:9px;letter-spacing:2.5px}.brand-mark{font-size:29px}.identity-chip{background:#fffaf2;border-color:#cfc3b5;border-radius:4px;box-shadow:0 5px 16px #14211e0d;padding:7px 12px 7px 7px}.hero{align-items:center;gap:clamp(35px,8vw,130px);max-width:1400px;min-height:calc(100vh - 70px);padding-bottom:100px;padding-top:75px}.hero-copy{max-width:590px}.hero h1{font-size:clamp(4.2rem,9vw,9.4rem);letter-spacing:-5px;line-height:.82}.hero h1 em{color:var(--rose-deep)}.hero-lede{font-size:16px;letter-spacing:.02em;margin-top:35px}.hero-note{font-size:13px;line-height:1.8}.hero-actions{margin-top:35px}.button{border-radius:0;letter-spacing:1.5px;padding:15px 20px}.button-dark{box-shadow:8px 8px 0 var(--rose)}.button-dark:hover{box-shadow:4px 4px 0 var(--rose)}.text-link{border-color:var(--rose-deep)}.hero-visual{max-width:500px}.photo-frame{background:#fffaf2;border:1px solid #fff;padding:13px;transform:rotate(1.5deg)}.photo-frame img{filter:saturate(.86) contrast(1.04);height:min(69vw,590px)}.photo-stamp{background:var(--ink);bottom:23px;font-size:17px;right:-18px;transform:rotate(-5deg)}.floating-note{border:1px solid #d2b994;box-shadow:6px 10px 0 #c9a98b44;font-size:14px}.note-top{left:-38px;top:10%}.note-bottom{bottom:8%;right:-30px}.social-strip{border-top:1px solid #53625c;background:var(--ink);box-shadow:0 15px 35px #14211e26;max-width:none;padding-bottom:27px;padding-top:27px}.social-stat strong,.love-button strong{font-size:31px}.story{background:#fffaf2;padding-bottom:130px;padding-top:130px}.section-heading h2{font-size:clamp(3.5rem,7vw,7.2rem);letter-spacing:-4px}.story-layout{gap:clamp(50px,10vw,160px);max-width:1120px}.story-text{font-size:15px;line-height:1.9}.story-card{background:var(--ink);box-shadow:14px 14px 0 var(--rose);min-height:370px;transform:rotate(-2deg)}.story-card:before{border:1px solid #ffffff55;content:'';inset:13px;pointer-events:none;position:absolute}.card-date{color:var(--rose);font-size:116px}.people{background:var(--sage);padding-bottom:120px;padding-top:120px}.people-grid{gap:24px;max-width:1120px}.person-card{box-shadow:0 18px 40px #14211e18;min-height:330px}.person-card:hover{transform:translateY(-6px);transition:transform .35s}.person-photo{overflow:hidden}.person-photo img{filter:saturate(.8);transition:transform .5s}.person-card:hover .person-photo img{transform:scale(1.06)}.person-info{padding:34px 28px}.person-info h3{font-size:36px}.person-tag{color:var(--rose-deep);font-size:24px}.person-card-dark{background:var(--ink)}.timeline{background:var(--cream);padding-bottom:135px;padding-top:130px}.timeline-list{border-top:2px solid var(--ink);max-width:1120px}.timeline-item{padding:31px 12px}.timeline-item h3{font-family:var(--serif);font-size:28px;font-weight:400}.timeline-date{color:var(--rose-deep);font-size:42px}.gallery{background:#fffaf2;padding-bottom:130px;padding-top:130px}.gallery-grid{gap:20px;max-width:1120px}.gallery-grid img,.gallery-grid .gallery-main img{filter:saturate(.82);transition:filter .5s,transform .6s}.gallery-grid figure:hover img{filter:saturate(1.1)}.gallery-grid figcaption{font-size:14px;letter-spacing:.04em}.guestbook{background:var(--ink);padding-bottom:125px;padding-top:125px}.guestbook h2 em{color:var(--rose)}.guestbook-intro{color:#b7c6bd;line-height:1.8}.comment-form{border-color:#50645a;background:#1b302a;padding:18px}.comment-input-wrap textarea{font-size:15px}.comments-list{gap:8px}.comment{background:#203a32;border-left:3px solid var(--rose);padding:18px 20px}.comment-text{font-size:13px}.comment-actions button{color:#d9aaa0}.footer{background:#0d1b18;padding-bottom:48px;padding-top:58px}.footer-mark{font-size:38px}.name-modal{background:#0d1b18c9}.modal-card{border-top:5px solid var(--rose-deep);padding:48px 38px 40px}.modal-card h2{font-size:55px}.modal-card .button{box-shadow:none}.scroll-progress{height:4px}
@media(max-width:720px){body{padding-bottom:0}.topbar{padding-left:18px;padding-right:18px}.hero{min-height:auto;padding-bottom:78px;padding-top:50px}.hero h1{font-size:clamp(4rem,17vw,6.5rem);letter-spacing:-3px}.hero-visual{margin-left:10px;margin-right:10px}.photo-frame img{height:112vw}.photo-stamp{right:-13px}.note-top{left:-23px}.note-bottom{right:-15px}.social-strip{padding-left:18px;padding-right:18px}.social-stat strong,.love-button strong{font-size:22px}.story,.people,.timeline,.gallery,.guestbook{padding-bottom:82px;padding-top:82px}.section-heading h2{font-size:clamp(3rem,14vw,5rem);letter-spacing:-2px}.story-layout{gap:45px;margin-top:50px}.story-card{min-height:300px}.people-grid{gap:15px}.person-card{min-height:245px}.person-info{padding:22px 18px}.person-info h3{font-size:27px}.timeline-item{gap:14px;padding:23px 0}.timeline-item h3{font-size:22px}.timeline-date{font-size:31px}.gallery-grid{gap:12px}.guestbook-head{margin-bottom:10px}.modal-card{padding:38px 24px 32px}.modal-card h2{font-size:45px}}

/* Watercolor love palette and motion */
:root{--ink:#1d302a;--ink-soft:#5f7067;--cream:#f8f2e9;--paper:#fffdf8;--rose:#eaa39d;--rose-deep:#c85e61;--sage:#b8cdbd;--line:#d8d9ca}
body{background:#f8f2e9;position:relative}body:before{background:radial-gradient(ellipse at 12% 8%,#eab1aa5c 0 13%,transparent 36%),radial-gradient(ellipse at 92% 34%,#abcab66e 0 12%,transparent 35%),radial-gradient(ellipse at 70% 88%,#edc9a848 0 14%,transparent 38%);content:'';inset:0;pointer-events:none;position:fixed;z-index:-1}.site-shell{background:linear-gradient(180deg,#f8f2e9e8,#f7f1e8e8 40%,#edf4eced 100%)}.topbar{background:#fffdf866}.hero:before{background:radial-gradient(circle,#cf6e6e42 0 1px,transparent 1.8px);background-size:17px 17px;opacity:.7}.eyebrow,.person-role{color:var(--rose-deep)}.eyebrow-dot{background:var(--rose-deep)}.hero h1 em,.section-heading h2 em{color:var(--rose-deep)}.photo-frame{box-shadow:0 22px 55px #bc6b6840,10px 10px 0 #b7ceb866}.photo-frame:hover{box-shadow:0 28px 70px #bc6b6859,5px 5px 0 #b7ceb866}.photo-stamp{background:var(--rose-deep);box-shadow:5px 5px 0 #8cab9466}.floating-note{background:#f5d6aecc;border-color:#d7ad7966}.note-bottom{background:#cfe1d3dd;border-color:#9dbda766}.social-strip{background:#26443a;border-color:#b5ceb9}.love-button{position:relative}.love-button .heart-icon{color:#f1a19c;text-shadow:0 0 0 transparent}.love-button.liked{animation:loveButtonPulse .65s ease}.love-button.liked .heart-icon{animation:heartBurst .65s cubic-bezier(.2,.8,.3,1);color:#ff777f;text-shadow:0 0 18px #ff8e8e}.story{background:#fffdf8d9}.story-card{background:#315044;box-shadow:14px 14px 0 #e7a39a}.story-card:after{background:radial-gradient(ellipse,#e7a39a44,transparent 68%);content:'';inset:-25px;pointer-events:none;position:absolute;transform:rotate(-7deg);z-index:-1}.people{background:#dfece2c9}.person-card{box-shadow:0 18px 40px #6e9e7c2b}.person-card-dark{background:#315044}.timeline{background:#f3ede4cc}.timeline-highlight{background:#fffaf0aa}.timeline-heart{color:var(--rose-deep)}.gallery{background:#fffdf8d9}.gallery-grid figure:hover img{filter:saturate(1.2) sepia(.06)}.guestbook{background:#26443a}.guestbook .eyebrow{color:#eda49a}.comment-form{background:#315044;border-color:#7ea28d}.comment{background:#376051;border-left-color:#edaaa0}.button-dark{background:#26443a;box-shadow:8px 8px 0 #e6a19a}.button-light{background:var(--rose-deep);box-shadow:5px 5px 0 #e4b19e}.modal-card{background:#fffdf8;border-top-color:var(--rose-deep)}.footer{background:#1d362e}
.love-spark{animation:loveSpark 900ms ease-out forwards;color:#e45e68;font-size:17px;left:var(--spark-left);pointer-events:none;position:absolute;top:50%;z-index:2}@keyframes loveButtonPulse{0%,100%{transform:scale(1)}35%{transform:scale(1.08)}65%{transform:scale(.97)}}@keyframes heartBurst{0%{transform:scale(1) rotate(0)}30%{transform:scale(1.55) rotate(-12deg)}60%{transform:scale(.92) rotate(8deg)}100%{transform:scale(1) rotate(0)}}@keyframes loveSpark{0%{opacity:0;transform:translate(-50%,0) scale(.5)}20%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--spark-x)),var(--spark-y)) rotate(var(--spark-rotate)) scale(1.15)}}
.motion-section{opacity:0;transform:translateY(35px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1)}.motion-section.is-visible{opacity:1;transform:none}.motion-section.is-visible .person-card,.motion-section.is-visible .timeline-item,.motion-section.is-visible .gallery-grid figure,.motion-section.is-visible .comment-preview-card{animation:softRise .7s both}.motion-section.is-visible .person-card:nth-child(2),.motion-section.is-visible .timeline-item:nth-child(2),.motion-section.is-visible .gallery-grid figure:nth-child(2),.motion-section.is-visible .comment-preview-card:nth-child(2){animation-delay:.12s}.motion-section.is-visible .timeline-item:nth-child(3),.motion-section.is-visible .gallery-grid figure:nth-child(3),.motion-section.is-visible .comment-preview-card:nth-child(3){animation-delay:.22s}.motion-section.is-visible .timeline-item:nth-child(4),.motion-section.is-visible .comment-preview-card:nth-child(4){animation-delay:.32s}.comment-preview-card{transition:background .25s,box-shadow .25s,transform .25s}.comment-preview-card:hover{background:#fffdf8;box-shadow:0 12px 24px #5d80632b;transform:translateX(5px)}.timeline-highlight .timeline-heart{animation:tinyBeat 1.8s ease-in-out infinite}.hero-visual{animation:floatVisual 7s ease-in-out infinite}.floating-note{animation:noteFloat 5s ease-in-out infinite}.note-bottom{animation-delay:-2s}.people:before,.gallery:before{background:#e9a29d24;border-radius:50%;content:'';filter:blur(22px);height:150px;pointer-events:none;position:absolute;width:240px}.people,.gallery{position:relative}.people:before{right:-60px;top:80px}.gallery:before{left:-70px;top:120px;background:#a9c9b33b}.button{overflow:hidden;position:relative}.button-ripple{animation:ripple .55s ease-out;background:#ffffff77;border-radius:50%;height:12px;pointer-events:none;position:absolute;transform:translate(-50%,-50%) scale(0);width:12px}@keyframes ripple{to{opacity:0;transform:translate(-50%,-50%) scale(18)}}@keyframes softRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes floatVisual{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(.4deg)}}@keyframes noteFloat{0%,100%{margin-top:0}50%{margin-top:-7px}}@keyframes tinyBeat{0%,70%,100%{transform:scale(1)}82%{transform:scale(1.25)}}
@media(prefers-reduced-motion:reduce){.motion-section,.motion-section.is-visible{opacity:1;transform:none;transition:none}.hero-visual,.floating-note,.timeline-highlight .timeline-heart{animation:none!important}.motion-section.is-visible .person-card,.motion-section.is-visible .timeline-item,.motion-section.is-visible .gallery-grid figure,.motion-section.is-visible .comment-preview-card{animation:none!important}}

/* Comment feed redesign */
.comment-preview{background:linear-gradient(135deg,#e5f0e5 0%,#f8eee7 52%,#f3deda 100%);position:relative}.comment-preview:before{background:radial-gradient(circle,#c85e612b 0 1px,transparent 1.5px);background-size:15px 15px;content:'';height:160px;opacity:.6;position:absolute;right:4%;top:25px;width:170px}.comment-preview-head,.top-comment-form,.comment-preview-list,.load-comments-button{position:relative;z-index:1}.comment-preview h2{font-size:clamp(2.7rem,6vw,5.5rem);letter-spacing:-3px}.top-comment-form{background:#fffdf8e8;border:1px solid #ffffff;box-shadow:0 12px 30px #5a806326;gap:12px;margin-top:34px;padding:10px}.top-comment-form .form-avatar{background:var(--rose-deep);flex:0 0 32px;height:32px;width:32px}.top-comment-form input{font-size:13px}.top-comment-form .button{box-shadow:3px 3px 0 #d99a91;min-height:40px;padding:10px 16px}.comment-preview-list{background:#fffdf866;border:1px solid #ffffff99;box-shadow:0 16px 38px #5a80631c;gap:10px;margin-top:18px;max-height:460px;padding:10px}.comment-preview-card{border:1px solid #e8ded4!important;border-radius:3px;box-shadow:0 5px 15px #526e5b14;display:flex;flex-direction:column;justify-content:center;margin:0;min-height:115px;padding:15px 16px;transition:box-shadow .25s,transform .25s}.comment-preview-card:hover{box-shadow:0 12px 24px #526e5b2b;transform:translateY(-3px)}.comment-preview-card:first-child{border-top:3px solid var(--rose-deep)!important}.preview-card-head{gap:10px}.preview-avatar{background:var(--rose-deep);box-shadow:0 0 0 3px #e9b1aa55;flex:0 0 28px;height:28px;width:28px}.preview-name{font-size:12px;line-height:1}.preview-date{font-size:9px}.preview-text{color:#304b40;font-size:14px;font-weight:600;line-height:1.4;margin:13px 0 0 38px;overflow-wrap:anywhere}.preview-reply-button{border-bottom:1px solid transparent;font-size:10px;margin:9px 0 0 38px;transition:border-color .2s}.preview-reply-button:hover{border-color:var(--rose-deep)}.preview-replies{margin-left:38px}.preview-reply-form{margin-left:38px}.load-comments-button{background:#26443a;border:0;box-shadow:4px 4px 0 #d5968d;color:#fff;transition:transform .2s,box-shadow .2s}.load-comments-button:hover{box-shadow:2px 2px 0 #d5968d;transform:translate(2px,2px)}.guestbook{background:linear-gradient(145deg,#26443a,#315b4c)}.guestbook .comments-list{background:#1c372e80;border:1px solid #7ea28d55;padding:12px}.comment{border:1px solid #709887;border-left:4px solid #eaa39d;border-radius:3px;box-shadow:0 7px 18px #10251d33;padding:17px 18px}.comment-head{gap:11px}.comment-avatar{background:#e79a93;box-shadow:0 0 0 3px #e79a9338;flex:0 0 30px;height:30px;width:30px}.comment-name{font-size:12px}.comment-date{font-size:9px}.comment-text{font-size:14px;line-height:1.5;margin:14px 0 0 41px}.comment-replies{margin-left:41px}.comment-actions{margin-top:12px}.comment-actions button{font-size:10px}.empty-comments,.preview-empty{padding:25px;text-align:center}
@media(max-width:720px){.comment-preview{padding-left:16px;padding-right:16px}.comment-preview:before{right:-35px;top:18px}.comment-preview-list{grid-template-columns:1fr;margin-left:0;margin-right:0;padding:8px}.comment-preview-card{min-height:108px;padding:14px}.top-comment-form{margin-left:0;margin-right:0}.top-comment-form input{font-size:12px}.top-comment-form .button{padding-left:11px;padding-right:11px}.comment{padding:15px}.comment-text{margin-left:0}.comment-replies{margin-left:14px}.comment-actions{margin-left:0}}
