@font-face{font-family:DMSerif;src:url('/assets/fonts/dm-serif-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/fonts/poppins-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/fonts/poppins-semibold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/fonts/poppins-bold.ttf') format('truetype');font-weight:700;font-display:swap}




:root{--ink:#080808;--paper:#f1f1f1;--content:1120px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:#0b0b0b;font:15px/1.85 Poppins,Arial,sans-serif}
a{color:inherit}img{max-width:100%;height:auto}
button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}
:focus-visible{outline:3px solid #888;outline-offset:3px}
.skip{position:absolute;top:-100px;left:10px;z-index:201;background:#fff;padding:10px}.skip:focus{top:10px}
.site-header{height:80px;background:#050505;position:relative;z-index:80}
.site-header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;max-width:1600px;margin:auto}
.menu-trigger{border:0;background:none;color:white;display:inline-flex;align-items:center;gap:14px;padding:13px 0;font-size:19px;font-weight:600;line-height:1}
.menu-trigger svg{width:20px;height:20px;stroke:#fff;stroke-width:3;fill:none}
.top-guestbook{font-size:13px;text-transform:uppercase;font-weight:600;min-width:204px;min-height:44px;padding:12px 22px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:#fff;border:1px solid #fff;border-radius:5px;line-height:1.1}
.top-guestbook:hover{background:#e5e5e5}
.menu-overlay{position:fixed;inset:80px 0 0;background:#080808;color:white;z-index:70;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .16s ease,visibility .16s}
.menu-overlay.open{visibility:visible;opacity:1;pointer-events:auto}
.menu-panel{min-height:100%;max-height:calc(100vh - 80px);overflow:auto;display:flex;align-items:center;justify-content:center;padding:35px 24px}
.menu-list{display:flex;flex-direction:column;align-items:center;gap:12px}
.menu-list a{color:white;text-decoration:none;font:400 clamp(31px,5.5vw,64px)/1.2 DMSerif,Georgia,serif;text-align:center}
.menu-list a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:10px}
body.menu-open{overflow:hidden}
.hero{background:#fff;position:relative;overflow:hidden}
.hero:before{content:'';position:absolute;inset:0;background:url('/assets/photos/bg2.webp') center/cover;opacity:.055;pointer-events:none}
.hero-inner{max-width:1400px;margin:auto;padding:40px clamp(30px,10.8vw,150px) 30px;min-height:365px;display:grid;grid-template-columns:minmax(0,1fr) minmax(205px,.66fr);gap:clamp(18px,4vw,80px);align-items:center;position:relative}
.hero-title{font:400 clamp(76px,10.3vw,132px)/1.045 DMSerif,Georgia,serif;letter-spacing:-.032em;margin:0 0 22px}
.hero-title span{display:block}
.hero-read{display:inline-flex;gap:8px;text-decoration:none;color:#636363;font-size:15px;font-weight:400;line-height:1.3;padding-left:13px}
.hero-read:hover{text-decoration:underline}
.hero-photo{width:min(100%,370px);aspect-ratio:4/5;object-fit:cover;border-radius:18px;justify-self:end;display:block;box-shadow:0 22px 46px rgba(0,0,0,.13)}
.content{max-width:var(--content);margin:auto;padding:0 30px}
.section{padding:82px 0}
.section-white{background:#fff}.section-gray{background:#f0f0f0}
.section-heading{font:400 clamp(41px,5.5vw,66px)/1.16 DMSerif,Georgia,serif;letter-spacing:-.018em;margin:0 0 25px}
.section-subtitle{color:#666;max-width:680px;line-height:1.85;margin:0 0 32px}
.section-eyebrow{font:600 12px/1.5 Poppins,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:#777;margin-bottom:17px}
.obituary{max-width:900px;margin:auto}.obituary p{margin:0 0 23px;line-height:2}
.action-link{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:15px;text-decoration:none;border-bottom:1px solid #111;padding-bottom:4px}
.action-link:hover{gap:15px}
.double-cta{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.panel{background:#fff;padding:42px 45px;min-height:250px}
.panel h3{font:400 38px/1.2 DMSerif,Georgia,serif;margin:0 0 14px}.panel p{color:#656565}
.preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:25px 0 32px}
.preview-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.page-banner{background:#fff;position:relative;overflow:hidden}
.page-banner:before{content:'';position:absolute;inset:0;background:url('/assets/photos/bg2.webp') center/cover;opacity:.065}
.page-banner .content{position:relative;padding-top:56px;padding-bottom:61px}
.page-banner h1{font:400 clamp(64px,9vw,118px)/1.05 DMSerif,Georgia,serif;letter-spacing:-.027em;margin:0 0 18px}
.page-banner p{color:#666;max-width:700px;font-size:16px}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.photo-tile{display:block;aspect-ratio:1/1;overflow:hidden;padding:0;border:0;background:#e3e3e3}
.photo-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s}
.photo-tile:hover img{transform:scale(1.025)}
.photo-count{color:#777;font-size:13px;text-align:right;margin:15px 0}
.load-more{margin:33px auto 0;display:block;min-width:200px}.load-more[hidden]{display:none}
.btn{display:inline-flex;justify-content:center;align-items:center;padding:15px 26px;min-height:50px;background:#080808;border:1px solid #080808;border-radius:5px;color:white;font-size:13px;font-weight:600;text-decoration:none;text-transform:uppercase;letter-spacing:.04em}
.btn:hover{background:#333}.btn-outline{background:transparent;color:#080808}.btn-outline:hover{background:#eee}
.form-card{max-width:750px;background:white;padding:44px 44px 36px}
.form-card h2{font:400 42px DMSerif,Georgia,serif;margin-bottom:14px}
.form-grid{display:grid;gap:17px}.form-grid label{font-size:13px;font-weight:600}
.form-grid input,.form-grid textarea{border:1px solid #ccc;outline:none;padding:13px 14px;border-radius:2px;background:#fafafa;color:#111;width:100%;font-size:15px}
.form-grid input:focus,.form-grid textarea:focus{border-color:#111}
.form-grid textarea{resize:vertical;min-height:160px}
.form-status{font-weight:600;font-size:14px;min-height:24px}
.honeypot{position:absolute;left:-99999px;opacity:0}
.notice{border-left:3px solid #777;padding-left:20px;color:#6a6a6a;font-size:14px;max-width:750px;margin:34px 0}
.slideshow{background:#050505;color:white;max-width:1000px;margin:auto;padding:28px 26px}
.slide-frame{display:flex;align-items:center;justify-content:center;background:#151515;min-height:340px;height:min(62vw,630px)}
.slide-frame img{display:block;max-height:100%;max-width:100%;object-fit:contain;width:auto;height:auto}
.slide-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;padding-top:20px;font-size:13px}
.control-group{display:flex;gap:10px}
.slide-controls button{border:1px solid #bbb;background:#111;color:white;border-radius:4px;padding:9px 16px;font:600 13px Poppins,sans-serif}
.slide-controls button:hover{background:#333}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:140;display:none;align-items:center;justify-content:center;padding:40px}
.lightbox.open{display:flex}
.lightbox img{max-width:min(95vw,1500px);max-height:86vh;object-fit:contain}
.lightbox button{position:absolute;background:#fff;color:#111;border:0;border-radius:3px;padding:8px 13px;font-size:20px}
.lightbox .close{top:18px;right:20px}.lightbox .prev{top:50%;left:15px}.lightbox .next{top:50%;right:15px}
.footer{background:#070707;color:white;padding:48px 24px}
.footer-content{max-width:var(--content);margin:auto;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.footer .footer-mark{color:white;font:400 28px/1.2 DMSerif,Georgia,serif}.footer p{font-size:12px;color:#aaa;margin:8px 0 0}
.footer a{color:#fff;font-size:13px;text-decoration:none}.footer a:hover{text-decoration:underline}
@media (min-width:1100px){.hero-inner{min-height:590px}.hero-photo{max-width:350px}.hero-title{margin-bottom:30px}}
@media (max-width:850px){.hero-inner{padding-left:10.5vw;padding-right:5.2vw;gap:27px}.hero-title{font-size:clamp(66px,10.3vw,86px)}.hero-photo{max-width:235px}.preview-grid,.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.section{padding:65px 0}}
@media (max-width:630px){.site-header{height:72px}.menu-overlay{top:72px}.menu-panel{max-height:calc(100vh - 72px)}.menu-trigger{font-size:16px}.site-header-inner{padding:0 17px}.top-guestbook{font-size:11px;min-width:145px;padding:12px 13px;min-height:42px}.hero-inner{grid-template-columns:1fr;text-align:center;padding:52px 24px 58px;gap:26px}.hero-title{font-size:clamp(68px,14.5vw,94px);margin-bottom:20px}.hero-photo{justify-self:center;width:min(65vw,300px);max-width:none}.hero-read{padding:0}.content{padding:0 22px}.page-banner .content{padding-top:55px;padding-bottom:55px}.page-banner h1{font-size:clamp(54px,14vw,75px)}.double-cta{grid-template-columns:1fr}.panel{padding:35px 25px}.preview-grid,.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.form-card{padding:31px 22px}.section-heading{font-size:43px}.slide-frame{height:min(105vw,560px);min-height:250px}.slideshow{padding:15px}.slide-controls{justify-content:center}.footer-content{display:block}.footer-mark{margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* Memorial desktop alignment update. Same centered rail across header, hero, and sections. */
:root{--content:1120px}
.site-header-inner{max-width:var(--content);padding-left:30px;padding-right:30px}
.hero-inner{max-width:var(--content);padding:62px 30px 58px;min-height:535px;grid-template-columns:minmax(0,1fr) minmax(285px,360px);column-gap:clamp(45px,7vw,110px)}
.hero-title{font-size:clamp(70px,7.1vw,112px);line-height:1.035;letter-spacing:-.025em}
.hero-photo{width:100%;max-width:360px;justify-self:end}
.hero-read{padding-left:2px}
.obituary{max-width:var(--content)}
.obituary>p:not(.section-eyebrow){max-width:900px}
.menu-panel{padding:45px 24px}
.menu-list{gap:15px}
.menu-list a{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(34px,3.1vw,49px);line-height:1.23;letter-spacing:-.018em}
@media(min-width:1100px){.hero-inner{min-height:535px}.hero-photo{max-width:360px}.hero-title{margin-bottom:25px}}
@media(max-width:850px){.site-header-inner{padding:0 22px}.hero-inner{padding:50px 28px;gap:32px;grid-template-columns:minmax(0,1fr) minmax(190px,.7fr)}.hero-title{font-size:clamp(62px,8vw,82px)}.hero-photo{max-width:300px}}
@media(max-width:630px){.site-header-inner{padding:0 17px}.hero-inner{grid-template-columns:1fr;padding:48px 22px 56px;gap:27px;text-align:center}.hero-title{font-size:clamp(60px,13vw,86px)}.hero-photo{width:min(67vw,300px);justify-self:center;max-width:none}.hero-read{padding-left:0}.menu-list a{font-size:clamp(32px,8vw,44px)}.menu-list{gap:15px}}

/* Wider desktop content rail requested November 3, 2026 */
@media (min-width:851px){:root{--content:1280px}}

/* V4 navigation typography and expanded-state icon */
.menu-list a{font-family:DMSerif,Georgia,serif;font-weight:400;letter-spacing:-.018em}
.menu-trigger .menu-close-icon{display:none}
.menu-trigger[aria-expanded="true"] .menu-open-icon{display:none}
.menu-trigger[aria-expanded="true"] .menu-close-icon{display:block}
.menu-trigger .menu-close-icon path{stroke-width:2.25;stroke-linecap:round}

/* Guestbook two-column restoration */
.guestbook-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;gap:28px}
.guestbook-layout .form-card{width:100%;max-width:none;padding:34px 32px}
.guestbook-layout .form-card h2,.guestbook-entries h2{font:400 clamp(29px,2.65vw,39px)/1.18 DMSerif,Georgia,serif;margin:0 0 15px}
.guestbook-layout .form-card>p,.entries-intro{font-size:14px;color:#666;margin:0 0 24px}
.guestbook-entries{background:#fff;padding:34px 38px;min-height:440px;min-width:0}
.guestbook-entry-list{display:grid;gap:16px}
.guestbook-entry{padding:19px 0 22px;border-top:1px solid #dedede;overflow-wrap:anywhere}
.guestbook-entry:first-child{border-top:0}
.guestbook-entry h3{font:600 15px/1.5 Poppins,Arial,sans-serif;margin:0 0 4px}
.guestbook-entry time{display:block;color:#777;font-size:12px;margin-bottom:13px}
.guestbook-entry p{font-size:14px;line-height:1.8;white-space:pre-wrap;margin:0}
.entries-empty{font-size:14px;color:#666;padding:16px 0;border-top:1px solid #ddd}
.guestbook-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:25px;padding-top:18px;border-top:1px solid #ddd;font-size:13px}
.guestbook-pagination[hidden]{display:none}
.guestbook-pagination button{border:1px solid #1b1b1b;background:#fff;color:#111;padding:9px 15px;border-radius:4px;font-weight:600}
.guestbook-pagination button:disabled{opacity:.4}
@media(max-width:850px){.guestbook-layout{grid-template-columns:1fr;gap:24px}.guestbook-entries{min-height:250px}}
@media(max-width:630px){.guestbook-layout .form-card,.guestbook-entries{padding:28px 22px}}

/* V6: recover proportions and elements from the live original memorial (Nov 2026). */
@media(min-width:851px){.hero-inner{max-width:1280px;grid-template-columns:minmax(0,1fr) 290px;gap:clamp(50px,7vw,112px);padding:62px clamp(38px,7vw,105px) 58px;min-height:430px}.hero-title{font-size:clamp(78px,7vw,108px);line-height:1.015}.hero-photo{max-width:290px;width:100%;justify-self:start}.obituary{max-width:820px;margin:0 auto;text-align:center}.obituary .section-heading{font-size:clamp(34px,3vw,44px)}.obituary>p:not(.section-eyebrow){max-width:none}}
@media(min-width:631px) and (max-width:850px){.hero-title{font-size:clamp(54px,7.8vw,70px)}.hero-inner{grid-template-columns:minmax(0,1fr) 240px}.hero-photo{max-width:240px}}
@media(max-width:630px){.hero-title{font-size:clamp(53px,12.4vw,82px)}.hero-title span{display:block}.obituary{text-align:center}}
.original-contact-split{display:grid;grid-template-columns:1.35fr 1fr;min-height:420px;background:#ececec}
.original-contact-copy{display:flex;justify-content:center;align-items:center;padding:55px 35px}
.original-contact-inner{width:100%;max-width:430px}
.original-contact-inner h2{font:400 clamp(40px,4.4vw,64px)/1.15 DMSerif,Georgia,serif;margin:0 0 21px}
.original-contact-inner>p{color:#666;font-size:14px;margin-bottom:30px}
.original-contact-inner form{display:grid;gap:15px}
.original-contact-inner input,.original-contact-inner textarea{display:block;width:100%;padding:12px 8px;border:0;border-bottom:1px solid #888;background:transparent;border-radius:0;color:#222;font:400 14px Poppins,Arial,sans-serif;resize:vertical}
.original-contact-send{text-align:right}.original-contact-send button{background:transparent;padding:12px 25px;border:1px solid #444;border-radius:4px;cursor:pointer;font-size:12px}
.original-contact-image{background-size:cover;background-position:center center;min-height:340px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:760px){.original-contact-split{grid-template-columns:1fr}.original-contact-copy{padding:42px 24px}.original-contact-image{min-height:260px}}
.original-video-section{margin:0 auto 55px;max-width:1000px}.original-video-section h2,.photo-slideshow-heading{font:400 clamp(32px,3vw,44px)/1.2 DMSerif,Georgia,serif;margin:0 0 20px}
.original-memorial-video{display:block;width:100%;background:#000;aspect-ratio:16/9;max-height:570px}
.original-video-credit{color:#666;font-size:13px;margin-top:12px}.photo-slideshow-heading{margin-bottom:22px}
.photo-grid{display:block;columns:4;column-gap:9px}.photo-tile{display:block;width:100%;aspect-ratio:auto;height:auto;margin:0 0 9px;break-inside:avoid;overflow:hidden}.photo-tile img{height:auto;width:100%;object-fit:contain;display:block}
.celebration-masonry{columns:4;column-gap:9px}.celebration-photo{display:block;break-inside:avoid;margin:0 0 9px}.celebration-photo img{display:block;width:100%;height:auto}.original-celebration-section{background:#fff}.original-celebration-section .section-heading{text-align:left}
.guestbook-origin{display:block;color:#777;font-size:12px;margin:0 0 4px}.guestbook-entry{padding:22px 0 25px}.guestbook-entry p{line-height:1.7}
@media(max-width:900px){.photo-grid,.celebration-masonry{columns:3}}
@media(max-width:630px){.photo-grid,.celebration-masonry{columns:2}.guestbook-entries{padding:27px 22px}}
/* V7 detail refinements */
.guestbook-search-wrap{position:relative;margin-bottom:7px}
.guestbook-search{width:100%;height:48px;padding:12px 44px 12px 16px;border:1px solid #d1d1d1;border-radius:6px;background:#fafafa;color:#111;font:400 14px Poppins,Arial,sans-serif;transition:border-color .18s ease,background-color .18s ease}
.guestbook-search::placeholder{color:#777}
.guestbook-search:focus{outline:2px solid #777;outline-offset:1px;background:#fff}
.guestbook-search-icon{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:25px;color:#777;pointer-events:none}
.guestbook-results{min-height:18px;margin:0 0 20px;color:#777;font-size:12px}
.photo-slideshow-heading{width:100%;max-width:1000px;margin:0 auto 20px}
.original-video-section{margin-bottom:46px}
.original-celebration-section{padding-top:10px}
#main-content>.section:last-child:has(.double-cta){padding:72px 0 105px}
.double-cta{align-items:stretch;gap:24px}
.double-cta .panel{padding:40px 40px 46px;min-height:225px;display:flex;flex-direction:column;align-items:flex-start}
.double-cta .panel .action-link{margin-top:auto}
.footer{padding:50px max(24px,calc((100vw - 1280px)/2 + 30px))}
.footer-content{max-width:1280px;gap:44px}
@media(max-width:760px){#main-content>.section:last-child:has(.double-cta){padding:55px 0 72px}.double-cta .panel{min-height:192px;padding:30px 26px}.footer{padding:44px 22px}}
@keyframes memorial-enter{from{opacity:.01;transform:translate3d(0,9px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media(prefers-reduced-motion:no-preference){.hero-inner,.page-banner .content{animation:memorial-enter .40s ease-out both}#main-content>.section>.content,.guestbook-layout>.form-card,.guestbook-layout>.guestbook-entries,.original-video-section,.photo-slideshow-heading,.slideshow{animation:memorial-enter .42s ease-out .07s both}}
@media(prefers-reduced-motion:reduce){.hero-inner,.page-banner .content,#main-content>.section>.content,.guestbook-layout>.form-card,.guestbook-layout>.guestbook-entries,.original-video-section,.photo-slideshow-heading,.slideshow{animation:none!important;opacity:1!important;transform:none!important}}

/* V8 form verification spacing */
.guestbook-layout .cf-turnstile{margin:6px 0 9px;max-width:100%;overflow:visible}.guestbook-layout .form-status{line-height:1.6;min-height:20px}.guestbook-layout button[type=submit]:disabled{cursor:wait;opacity:.65}

/* V9: clean, text-free section introductions */
.page-banner{padding-bottom:clamp(44px,5vw,72px)}
.page-banner .content h1{margin-bottom:0}
.section .section-heading+.photo-preview{margin-top:24px}
.section-eyebrow+.section-heading{margin-top:8px}
.double-cta .panel{justify-content:space-between}
.double-cta .panel h3{margin-bottom:30px}
.guestbook-layout .form-card h2{margin-bottom:25px}
