:root{
  --bg:#07110c; --bg2:#0b1710; --paper:#f4f1e8; --ink:#172018;
  --muted:#9daaa0; --green:#7ccf88; --deep:#10251a; --line:rgba(255,255,255,.12);
  --serif:"Playfair Display", Georgia, serif; --sans:"DM Sans", Arial, sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--bg);color:#f7f7f3;font-family:var(--sans);line-height:1.65}
a{color:inherit;text-decoration:none} button{font:inherit}
.progress{position:fixed;z-index:1000;top:0;left:0;height:3px;background:var(--green);width:0}
.header{position:fixed;z-index:100;top:0;left:0;right:0;height:78px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;background:rgba(7,17,12,.72);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.07)}
.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:38px;height:38px;border:1px solid rgba(124,207,136,.6);display:grid;place-items:center;border-radius:50%;font-family:var(--serif);font-size:20px;color:var(--green)}
.brand strong{display:block;font-family:var(--serif);font-size:17px}.brand small{display:block;color:#94a096;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
nav{display:flex;gap:28px}nav a{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#c4cdc6;transition:.25s}nav a:hover{color:var(--green)}
.menu-btn{display:none;background:none;border:0;color:white;font-size:24px}
.hero{min-height:100vh;padding:150px 7vw 90px;display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:center;position:relative;overflow:hidden}
.hero-glow{position:absolute;width:600px;height:600px;right:-180px;top:80px;background:radial-gradient(circle,rgba(80,170,92,.18),transparent 65%);pointer-events:none}
.eyebrow{display:inline-block;color:var(--green);font-size:11px;letter-spacing:.22em;font-weight:700}
h1,h2,h3,p{margin-top:0}h1{font-family:var(--serif);font-weight:600;font-size:clamp(48px,6vw,88px);line-height:1.03;letter-spacing:-.04em;margin:20px 0 28px}h1 em,h2 em{font-weight:500;color:#9bd7a2}
.lead{max-width:680px;color:#b9c3bb;font-size:17px;line-height:1.8}.lead strong{color:white}
.hero-actions{display:flex;gap:12px;margin:32px 0}.btn{padding:13px 20px;border-radius:999px;font-size:13px;font-weight:700;display:inline-flex;gap:12px;align-items:center}.btn-primary{background:var(--green);color:#07110c}.btn-ghost{border:1px solid var(--line);color:#dce4de}
.signature{border-left:1px solid rgba(124,207,136,.55);padding-left:15px;margin-top:38px;color:#cdd6cf;font-family:var(--serif);font-size:15px}.signature small{display:block;font-family:var(--sans);font-size:10px;color:#7f8b83;letter-spacing:.15em;margin-top:5px}
.hero-photo{justify-self:end;width:min(440px,100%);position:relative}.photo-frame{border:1px solid rgba(255,255,255,.16);padding:12px;transform:rotate(1.2deg);background:#0b160f}.photo-frame img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;filter:saturate(.9) contrast(1.02)}.photo-tag{position:absolute;left:0;bottom:35px;background:#f1efe7;color:#152018;padding:12px 17px;font-family:var(--serif);font-size:14px;line-height:1.1}.photo-tag small{font:10px var(--sans);letter-spacing:.2em}.floating-note{position:absolute;right:-34px;top:38px;writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.2em;font-size:10px;color:#718077}
.quote-band{padding:30px 7vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;background:#09150e}.quote-band p{font-family:var(--serif);font-size:21px;margin:0;color:#d7e1d9}
.section{padding:120px 7vw}.split{display:grid;grid-template-columns:.75fr 1.25fr;gap:10vw;background:var(--paper);color:var(--ink)}.section-heading h2{font-family:var(--serif);font-size:clamp(38px,4.5vw,64px);line-height:1.08;letter-spacing:-.04em;margin:16px 0}.section-heading.centered{text-align:center;max-width:850px;margin:0 auto 55px}.section-heading.centered p{color:#88958c}.content{max-width:720px}.content .large{font-size:25px;line-height:1.55}.content p:not(.large){color:#526058}.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.pill-row span{padding:8px 12px;border:1px solid #d6dbd3;border-radius:999px;font-size:12px}
.faith{padding:130px 7vw;background:linear-gradient(135deg,#0b1a11,#07110c);text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.faith-inner{max-width:850px;margin:auto}.faith-symbol{margin:auto auto 18px;width:48px;height:48px;border:1px solid rgba(124,207,136,.4);border-radius:50%;display:grid;place-items:center;color:var(--green);font-size:20px}.faith h2{font-family:var(--serif);font-size:clamp(42px,5vw,72px);line-height:1.06;margin:15px 0}.faith p{max-width:680px;margin:0 auto;color:#aeb9b1;font-size:17px}.faith blockquote{margin:42px auto;padding:25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--serif);font-size:24px;color:#e7eee9}.faith cite{display:block;font:11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--green);margin-top:8px}.faith-values{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px}.faith-values div{padding:15px;border-right:1px solid var(--line)}.faith-values div:last-child{border-right:0}.faith-values b{display:block;font-size:12px;letter-spacing:.18em;color:#dce6df}.faith-values span{display:block;color:#7f8c83;font-size:11px;margin-top:4px}
.ifro-grid{max-width:1150px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:18px}.memory-card{background:#101b14;border:1px solid var(--line);overflow:hidden;transition:.3s}.memory-card:hover{transform:translateY(-5px)}.memory-card img{width:100%;height:360px;object-fit:cover;display:block}.memory-card>div{padding:24px}.memory-card span{font-size:10px;color:var(--green);letter-spacing:.18em}.memory-card h3{font-family:var(--serif);font-size:28px;margin:8px 0}.memory-card p{color:#a2ada5;margin:0}.memory-card.wide{grid-column:1/-1}.memory-card.wide img{height:430px}
.future{padding:120px 7vw;background:#e9e6dc;color:var(--ink)}.future-inner{max-width:1200px;margin:auto}.future .eyebrow{color:#3f8150}.future-intro{max-width:800px;font-size:20px;color:#536057;margin:0 0 48px}.dreams{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.dream-card{position:relative;background:#f7f4ec;border:1px solid #d6d2c6;padding:35px;min-height:330px;transition:.3s}.dream-card:hover{transform:translateY(-6px)}.dream-card.featured{background:#0d2015;color:white;border-color:#0d2015}.dream-number{position:absolute;right:20px;top:20px;font-size:11px;color:#8b968e}.dream-icon{font-size:30px;margin:28px 0 15px}.dream-card h3{font-family:var(--serif);font-size:31px}.dream-card p{color:#68736b}.dream-card.featured p{color:#aebbb1}
.gallery-section{background:var(--bg2)}.gallery{max-width:1200px;margin:auto;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:170px;gap:12px}.gallery-item{border:0;padding:0;position:relative;overflow:hidden;background:#111;cursor:pointer;text-align:left}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:.5s}.gallery-item:hover img{transform:scale(1.05)}.gallery-item:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.75))}.gallery-item span{position:absolute;z-index:2;left:18px;bottom:15px;color:white;font-size:12px;letter-spacing:.08em}.item-a{grid-column:span 5;grid-row:span 3}.item-b{grid-column:span 4;grid-row:span 2}.item-c{grid-column:span 3;grid-row:span 2}.item-d{grid-column:span 4;grid-row:span 2}.item-e{grid-column:span 4;grid-row:span 2}.item-f{grid-column:span 4;grid-row:span 2}
.closing{padding:150px 7vw;text-align:center;background:#06100b}.closing h2{font-family:var(--serif);font-size:clamp(42px,6vw,76px);line-height:1.05;margin:18px 0}.closing p{color:#98a49b}.closing-line{width:70px;height:1px;background:var(--green);margin:32px auto}.closing-motto{letter-spacing:.18em;text-transform:uppercase;font-size:11px!important;color:#b9c7bc!important}
footer{padding:28px 7vw;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);color:#839087;font-size:11px}footer strong{display:block;color:#d4ddd6;font-family:var(--serif);font-size:16px}footer span{display:block}.footer-right{align-self:center}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:300;display:none;align-items:center;justify-content:center;padding:30px}.lightbox.open{display:flex}.lightbox img{max-width:min(1100px,95vw);max-height:90vh;object-fit:contain}.lightbox button{position:absolute;top:18px;right:28px;background:none;border:0;color:white;font-size:42px;cursor:pointer}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:850px){
  .header{padding:0 5vw}.menu-btn{display:block}nav{display:none;position:absolute;top:78px;left:0;right:0;padding:20px 5vw;background:rgba(7,17,12,.97);flex-direction:column;gap:18px}nav.open{display:flex}
  .hero{grid-template-columns:1fr;padding-top:130px;gap:55px}.hero-photo{justify-self:center;width:min(390px,88vw)}.floating-note{right:-12px}.split{grid-template-columns:1fr;gap:25px}.section{padding:90px 6vw}.faith{padding:100px 6vw}.ifro-grid{grid-template-columns:1fr}.memory-card.wide{grid-column:auto}.dreams{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:220px}.item-a,.item-b,.item-c,.item-d,.item-e,.item-f{grid-column:span 1;grid-row:span 1}.item-a{grid-row:span 2}.faith-values{grid-template-columns:1fr}.faith-values div{border-right:0;border-bottom:1px solid var(--line)}.faith-values div:last-child{border-bottom:0}footer{flex-direction:column}.footer-right{align-self:flex-start}
}
@media(max-width:520px){
  h1{font-size:44px}.hero{padding-left:5vw;padding-right:5vw}.hero-actions{flex-direction:column;align-items:flex-start}.gallery{grid-template-columns:1fr;grid-auto-rows:280px}.memory-card img{height:300px}.memory-card.wide img{height:300px}.gallery-item.item-a{grid-row:span 1}
}
