:root{--green:#0b4a36;--green-dark:#052c21;--orange:#f28b17;--cream:#faf6ee;--ink:#17221c;--muted:#65716b;--white:#fff;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:var(--sans);line-height:1.75}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}
.memorial-header{height:92px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px max(4vw,24px);background:#fff;border-bottom:1px solid #ece7dc}.brand{height:72px;display:flex;align-items:center}.brand img{width:auto;height:72px;object-fit:contain}.back-link{color:var(--green);font-weight:700;font-size:.92rem}.back-link:before{content:"←";margin-right:8px;color:var(--orange)}
.hero-memorial{position:relative;overflow:hidden;min-height:700px;color:#fff;background:linear-gradient(125deg,var(--green-dark),var(--green));display:grid;align-content:center;padding:80px max(4vw,24px) 100px}.hero-memorial:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 22%,rgba(242,139,23,.25),transparent 34%),linear-gradient(90deg,transparent 49%,rgba(255,255,255,.025) 50%)}.hero-glow{position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-110px;top:80px;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018)}
.hero-inner{position:relative;z-index:1;width:min(1100px,100%);margin:auto;display:grid;grid-template-columns:minmax(280px,440px) 1fr;gap:72px;align-items:center}.portrait-wrap{margin:0;aspect-ratio:4/5;border-radius:220px 220px 28px 28px;overflow:hidden;border:6px solid rgba(255,255,255,.92);outline:3px solid var(--orange);outline-offset:10px;box-shadow:0 28px 70px rgba(0,0,0,.35)}.portrait-wrap img{width:100%;height:100%;object-fit:cover;object-position:center}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.18em;font-weight:800;font-size:.78rem;color:var(--orange)}.hero-copy h1{font:700 clamp(3rem,6.5vw,6.6rem)/.95 var(--serif);margin:16px 0 34px;max-width:640px}.dates{display:flex;align-items:center;gap:26px;color:#f4f8f6}.dates span{display:grid;font-size:1rem;font-weight:600}.dates small{text-transform:uppercase;letter-spacing:.13em;color:#a8c2b8;font-size:.65rem}.dates i{width:6px;height:6px;background:var(--orange);border-radius:50%}.hero-copy blockquote{margin:38px 0 0;padding-left:22px;border-left:3px solid var(--orange);font:italic 600 1.35rem/1.5 var(--serif);color:#fff4e6}.scroll-cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:2;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;color:#bed0c9}.scroll-cue span{display:block;text-align:center;font-size:1.2rem;color:var(--orange)}
.story-section{padding:110px max(4vw,24px);background:var(--cream)}.story-layout{width:min(1100px,100%);margin:auto;display:grid;grid-template-columns:.72fr 1.28fr;gap:90px}.story-aside{position:sticky;top:120px;align-self:start}.story-aside h2,.section-title h2,.qr-card h2{font:700 clamp(2.35rem,4.8vw,4.4rem)/1.06 var(--serif);color:var(--green);margin:15px 0 24px}.orange-rule{width:72px;height:4px;border-radius:4px;background:var(--orange)}.story-copy p{margin:0 0 24px;color:#465149}.story-copy .lead{font:600 1.35rem/1.65 var(--serif);color:var(--ink)}
.quote-band{padding:82px 24px;background:#fff}.quote-band div{width:min(850px,100%);margin:auto;display:flex;align-items:center;gap:28px;color:var(--orange)}.quote-band blockquote{margin:0;text-align:center;font:italic 600 clamp(1.7rem,4vw,3rem)/1.35 var(--serif);color:var(--green)}
.video-section{padding:110px max(4vw,24px);background:#fff}.video-frame{width:min(470px,100%);margin:auto;padding:12px;background:linear-gradient(135deg,var(--green),var(--green-dark));border-radius:24px;box-shadow:0 22px 60px rgba(5,44,33,.22)}.video-frame video{display:block;width:100%;aspect-ratio:9/16;object-fit:contain;background:#02120d;border-radius:15px}
.gallery-section{padding:110px max(4vw,24px);background:#f2ede3}.section-title{text-align:center;width:min(780px,100%);margin:0 auto 50px}.section-title h2{margin-bottom:12px}.section-title p{color:var(--muted)}.memory-grid{width:min(1120px,100%);margin:auto;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:280px;gap:18px}.memory-photo{padding:0;border:0;background:#ddd;overflow:hidden;border-radius:18px;cursor:zoom-in;box-shadow:0 8px 24px rgba(12,48,36,.1)}.memory-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.memory-photo:hover img,.memory-photo:focus-visible img{transform:scale(1.035)}.memory-photo:focus-visible{outline:4px solid var(--orange);outline-offset:3px}.photo-wide{grid-column:span 2}.photo-tall{grid-row:span 2}.memory-photo:nth-child(3) img{object-position:center 35%}
.qr-section{padding:90px max(4vw,24px);background:linear-gradient(135deg,var(--green-dark),var(--green))}.qr-card{width:min(880px,100%);margin:auto;display:grid;grid-template-columns:230px 1fr;gap:42px;align-items:center;background:#fff;padding:36px;border-radius:26px;box-shadow:0 25px 70px rgba(0,0,0,.22)}.qr-card>img{width:230px;border:10px solid #fff;box-shadow:0 5px 24px rgba(0,0,0,.1)}.qr-card h2{font-size:clamp(2rem,4vw,3.25rem);margin:10px 0}.qr-card p{color:var(--muted)}.qr-card a{display:inline-flex;margin-top:10px;padding:12px 18px;background:var(--orange);border-radius:10px;font-weight:800;color:#17221c}
footer{display:flex;align-items:center;gap:18px;padding:28px max(4vw,24px);background:#041c15;color:#fff}footer img{width:120px;background:#fff;border-radius:8px;padding:5px}footer div{display:grid}footer span{color:#a8bdb5;font-size:.85rem}footer p{margin-left:auto;color:#a8bdb5;font-size:.85rem}
.lightbox{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;gap:18px;padding:30px;background:rgba(1,15,11,.95)}.lightbox.open{display:flex}.lightbox figure{margin:0;display:grid;gap:10px;justify-items:center}.lightbox figure img{max-width:min(82vw,1100px);max-height:82vh;border-radius:14px;box-shadow:0 22px 70px rgba(0,0,0,.5)}.lightbox figcaption{color:#e2eae7;font-size:.85rem}.lightbox-close,.lightbox-nav{border:0;color:#fff;background:rgba(255,255,255,.12);cursor:pointer;border-radius:50%}.lightbox-close{position:absolute;right:22px;top:18px;width:48px;height:48px;font-size:2rem}.lightbox-nav{flex:0 0 50px;width:50px;height:50px;font-size:2.4rem;line-height:1}.lightbox button:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
@media(max-width:820px){.hero-memorial{padding-top:55px;min-height:auto}.hero-inner{grid-template-columns:1fr;gap:50px;text-align:center}.portrait-wrap{width:min(330px,88%);margin:auto}.hero-copy h1{margin-inline:auto}.dates{justify-content:center;flex-wrap:wrap}.hero-copy blockquote{text-align:left}.scroll-cue{display:none}.story-layout{grid-template-columns:1fr;gap:35px}.story-aside{position:static}.memory-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:240px}.photo-tall{grid-row:span 1}.qr-card{grid-template-columns:180px 1fr}.qr-card>img{width:180px}}
@media(max-width:560px){body{line-height:1.65}.memorial-header{height:76px}.brand{height:58px}.brand img{width:auto;height:58px}.back-link{font-size:0;width:42px}.back-link:before{font-size:1.4rem;margin:0}.hero-memorial{padding:42px 20px 64px}.hero-inner{gap:40px}.portrait-wrap{width:255px}.hero-copy h1{font-size:3.1rem}.dates{gap:12px}.dates span{font-size:.86rem}.hero-copy blockquote{font-size:1.12rem;margin-top:28px}.story-section,.gallery-section,.video-section{padding:75px 20px}.story-aside h2,.section-title h2{font-size:2.45rem}.story-copy .lead{font-size:1.2rem}.quote-band{padding:58px 20px}.quote-band div>span{display:none}.video-frame{padding:6px;border-radius:15px}.video-frame video{border-radius:10px}.memory-grid{grid-template-columns:1fr;grid-auto-rows:320px;gap:14px}.photo-wide{grid-column:span 1}.qr-section{padding:64px 20px}.qr-card{grid-template-columns:1fr;text-align:center;padding:26px}.qr-card>img{width:210px;margin:auto}footer{display:grid;text-align:center;justify-items:center}footer p{margin:4px 0 0}.lightbox{padding:70px 12px 25px}.lightbox-nav{position:absolute;bottom:18px}.lightbox-nav.previous{left:calc(50% - 64px)}.lightbox-nav.next{right:calc(50% - 64px)}.lightbox figure img{max-width:94vw;max-height:73vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.memory-photo img{transition:none}}
