@charset "UTF-8";
:root{--paper:#f7f5ee;--ink:#244638;--muted:#586352;--soft:#e9eddf;--soft-ink:#485940;--inverse:#f7f5ee;--inverse-muted:#d9dfc8;--focus:#836238;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--ease-out:cubic-bezier(.22,1,.36,1);--space-section:clamp(64px,8vw,112px)}
*{box-sizing:border-box}html{scroll-padding-top:28px;scrollbar-color:#718365 var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%;height:auto}svg{flex-shrink:0}p,h1,h2,h3{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;text-wrap:balance}p{text-wrap:pretty}::selection{background:#d1dbbe;color:var(--ink)}:focus-visible{outline:3px solid var(--focus);outline-offset:5px}.wrap{width:calc(100% - 112px);max-width:1280px;margin-inline:auto}.skip-link{position:fixed;left:20px;top:-90px;z-index:20;padding:12px 20px;background:var(--ink);color:var(--inverse)}.skip-link:focus{top:12px}

.site-header{display:flex;justify-content:space-between;align-items:center;min-height:112px;gap:24px}.brand{display:inline-flex;align-items:center;gap:16px;flex-shrink:0}.brand-mark{width:70px;filter:brightness(0) saturate(100%) invert(23%) sepia(18%) saturate(915%) hue-rotate(99deg) brightness(91%) contrast(91%)}.brand-name{font-family:var(--serif);font-size:25px;line-height:1;letter-spacing:-.02em}.brand-name>span{display:block;font-size:28px}.site-header nav{display:flex;align-items:center;gap:28px;font-size:14px}.site-header nav a{display:inline-flex;align-items:center;min-height:44px;gap:15px;padding:8px 0;text-underline-offset:5px}

.hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:64px;align-items:center;padding-block:54px 88px}h1{font-size:clamp(56px,6vw,86px);line-height:1.04;letter-spacing:-.035em}.hero-intro{margin-top:28px;max-width:46ch;font-size:18px;line-height:1.7}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 26px;margin-top:30px}.contact-button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:50px;padding:12px 20px;color:var(--inverse);background:var(--ink);font-size:14px;font-weight:500;transition:transform 150ms var(--ease-out),background-color 180ms ease}.text-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:14px;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:.08em}.text-link svg{transition:transform 180ms var(--ease-out)}.hero-place{margin-top:25px;color:var(--muted);font-size:13px}
.keepsake{background:var(--ink);color:var(--inverse);border-radius:32px;overflow:hidden}.keepsake-inner{min-height:480px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px 28px;text-align:center}.keepsake-top{font-size:13px;line-height:1.6;color:var(--inverse-muted);margin-bottom:32px}.keepsake-logo{width:248px}.keepsake-dates{display:flex;align-items:baseline;gap:20px;font-family:var(--serif);font-size:43px;line-height:1.1;margin-top:26px}.date-separator{color:var(--inverse-muted)}.keepsake-caption{margin-top:18px;font-family:var(--serif);font-style:italic;font-size:24px;line-height:1.3;color:var(--inverse-muted)}

.farewell{display:grid;grid-template-columns:.92fr 1.08fr;gap:88px;padding-block:40px var(--space-section)}.section-heading h2{font-size:clamp(48px,4.8vw,66px);line-height:1.03;letter-spacing:-.03em}.farewell-thought{font-size:20px;line-height:1.65;margin-top:30px;max-width:370px;color:var(--muted)}.letter{font-size:17px;line-height:1.8;max-width:600px}.letter p+p{margin-top:22px}.letter .letter-salutation{font-family:var(--serif);font-size:29px;line-height:1.25;margin-bottom:27px}.letter .letter-last{font-weight:500}.signature{margin-top:30px}.signature>span{font-family:var(--serif);font-style:italic;font-size:43px;line-height:1.15}.signature p{color:var(--muted);font-size:14px;margin-top:8px}

.memories{background:var(--soft)}.memories-inner{padding-block:72px 86px}.memories-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:42px}.memories-heading h2{font-size:clamp(44px,4.6vw,64px);line-height:1.05;letter-spacing:-.03em}.memories-heading>p{max-width:320px;font-size:16px;line-height:1.7;color:var(--soft-ink)}.memory-grid{display:grid;grid-template-columns:1fr 1fr .72fr;align-items:start;gap:36px}.memory-photo{margin:0}.photo-wrap{overflow:hidden;background:var(--paper);border-radius:26px}.photo-wrap img{width:100%;aspect-ratio:1.04;object-fit:cover}.memory-two{padding-top:40px}.memory-photo figcaption{padding-top:20px}.memory-photo figcaption>span{font-size:13px;line-height:1.6;color:var(--soft-ink)}.memory-photo h3{margin-top:6px;font-size:28px;line-height:1.15;letter-spacing:-.02em;text-wrap:pretty}.memory-note{align-self:center;padding-left:18px}.memory-note p{font-family:var(--serif);font-size:30px;line-height:1.2}.memory-note>span{display:block;margin-top:22px;font-size:14px;color:var(--soft-ink);max-width:190px}

.contact{display:grid;grid-template-columns:.92fr 1.08fr;gap:88px;padding-block:var(--space-section)}.contact h2{font-size:clamp(48px,4.8vw,66px);line-height:1.03;letter-spacing:-.03em}.contact-intro{font-size:17px;line-height:1.75;max-width:370px;margin-top:28px}.contact-details{padding-top:4px}.contact-label{font-size:15px;color:var(--muted)}.email-link{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px;min-height:50px;font-size:clamp(18px,1.7vw,23px);letter-spacing:-.025em;line-height:1.5}.email-link span{min-width:0;overflow-wrap:anywhere}.email-link svg{transition:transform 180ms var(--ease-out)}.copy-email{display:inline-flex;align-items:center;gap:9px;min-height:44px;border:0;padding:10px 12px;margin-left:-12px;background:transparent;color:var(--muted);font-size:14px;transition:transform 150ms var(--ease-out),background-color 180ms ease}.copy-email[hidden]{display:none}.copy-email>span{min-width:116px;text-align:left}.copy-status{display:block;min-height:24px;font-size:13px;line-height:1.6}.address-row{display:flex;justify-content:space-between;gap:24px;padding-top:26px;font-size:15px;line-height:1.75}.address-row>span{font-weight:500}.address-row address{font-style:normal;color:var(--muted)}.contact-note{margin-top:28px;padding:18px 20px;background:var(--soft);color:var(--soft-ink);font-size:14px;line-height:1.7}

.site-footer.wrap{width:100%;max-width:none;margin:0;padding:36px max(56px,calc((100vw - 1280px)/2));background:var(--ink);color:var(--inverse);display:flex;align-items:center;justify-content:space-between;gap:32px}.footer-name{font-family:var(--serif);font-size:25px;line-height:1.25}.footer-name span{display:block;margin-top:9px;font-family:var(--sans);font-size:13px;color:var(--inverse-muted)}.site-footer>p{font-family:var(--serif);font-size:21px;font-style:italic;color:var(--inverse-muted)}.site-footer nav{display:flex;align-items:center;gap:24px;font-size:14px;color:var(--inverse-muted)}.site-footer nav a{min-height:44px;display:inline-flex;align-items:center;text-underline-offset:5px}.site-footer :focus-visible{outline-color:var(--inverse-muted)}.site-footer ::selection,.keepsake ::selection{background:var(--inverse);color:var(--ink)}

.legal-main{max-width:760px;margin:60px auto 90px;padding-inline:28px;min-height:55vh}.legal-main h1{font-size:clamp(45px,6vw,64px);margin-top:34px;overflow-wrap:anywhere}.legal-main h2{font-size:32px;line-height:1.2;margin:32px 0 12px}.legal-main p,.legal-main address,.legal-main li{font-size:16px;line-height:1.8;font-style:normal;margin-top:16px}.legal-main a:not(.text-link){text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.legal-main .legal-status{padding:20px 24px;background:var(--soft)}.page-note{color:var(--muted)}.not-found{padding-block:35px}

@media(hover:hover) and (pointer:fine){.site-header nav a:hover,.site-footer nav a:hover{text-decoration:underline}.contact-button:hover{background:#36573c}.hero-link:hover svg{transform:translateY(3px)}.email-link:hover{text-decoration:underline;text-underline-offset:5px}.email-link:hover svg{transform:translate(2px,-2px)}.copy-email:hover{background:var(--soft);color:var(--ink)}}
@media(prefers-reduced-motion:no-preference){.contact-button:active:not(:focus-visible),.copy-email:active:not(:focus-visible){transform:scale(.98)}.keepsake{animation:keepsake-arrival 640ms var(--ease-out) both}@keyframes keepsake-arrival{from{opacity:.82;transform:translateY(12px) rotate(.7deg)}to{opacity:1;transform:none}}}

@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.hero{gap:40px;grid-template-columns:1.15fr 1fr}h1{font-size:65px}.hero-intro{font-size:17px}.hero-actions{gap:12px 20px}.keepsake-inner{min-height:455px;padding-inline:24px}.keepsake-logo{width:220px}.farewell,.contact{gap:56px}.memory-grid{gap:26px}.memory-note{padding-left:4px}.memory-note p{font-size:27px}.memory-photo h3{font-size:26px}.site-footer.wrap{padding-inline:36px}.site-footer>p{max-width:235px}}
@media(max-width:820px){.wrap{width:calc(100% - 48px)}.site-header{min-height:100px}.brand{gap:12px}.brand-mark{width:58px}.brand-name{font-size:22px}.brand-name>span{font-size:25px}.site-header nav{gap:21px}.site-header nav a:first-child:not(.nav-contact){display:none}.hero{gap:28px;padding-block:36px 64px}h1{font-size:53px}.hero-intro{font-size:16px;margin-top:25px}.hero-place{font-size:13px}.keepsake-inner{min-height:445px;padding:28px 18px}.keepsake-logo{width:185px}.keepsake-top{font-size:13px;max-width:190px;margin-bottom:26px}.keepsake-dates{font-size:38px;gap:16px}.keepsake-caption{font-size:22px}.farewell,.contact{gap:38px;grid-template-columns:.9fr 1.1fr}.section-heading h2,.contact h2{font-size:48px}.farewell-thought{font-size:18px}.letter{font-size:16px}.letter .letter-salutation{font-size:27px}.memories-heading{gap:24px}.memories-heading>p{max-width:235px;font-size:15px}.memory-grid{grid-template-columns:1fr 1fr;gap:30px}.memory-note{display:none}.contact-intro{font-size:16px}.email-link{font-size:18px}.address-row{display:block;font-size:15px}.address-row address{margin-top:14px}.site-footer.wrap{padding-inline:24px}.site-footer>p{display:none}}
@media(max-width:620px){.wrap{width:calc(100% - 44px)}.site-header{min-height:92px;gap:12px}.brand-mark{width:49px}.brand{gap:10px}.brand-name{font-size:20px}.brand-name>span{font-size:23px}.site-header nav a:not(.nav-contact){display:none}.site-header nav{font-size:14px}.nav-contact svg{display:none}.hero{display:flex;flex-direction:column;align-items:stretch;padding-block:36px 59px;gap:40px}h1{font-size:clamp(40px,11.3vw,65px);line-height:1.05}.hero-intro{margin-top:25px;font-size:16px}.hero-actions{gap:12px 20px;margin-top:25px}.contact-button{min-height:48px;padding-inline:16px;gap:16px}.hero-link{font-size:14px}.hero-place{margin-top:19px;font-size:13px}.keepsake{width:100%;border-radius:26px}.keepsake-inner{min-height:382px;padding:27px 24px}.keepsake-top{max-width:none;margin-bottom:25px}.keepsake-logo{width:205px}.keepsake-dates{font-size:38px;margin-top:23px}.keepsake-caption{font-size:22px;margin-top:13px}.farewell{display:block;padding-top:10px}.section-heading h2,.contact h2{font-size:clamp(45px,11.8vw,60px)}.farewell-thought{font-size:17px;margin-top:20px}.farewell-thought br{display:none}.letter{margin-top:34px;font-size:16px;line-height:1.8}.letter .letter-salutation{font-size:27px;margin-bottom:24px}.letter p+p{margin-top:20px}.signature{margin-top:26px}.signature>span{font-size:40px}.memories-inner{padding-block:51px 55px}.memories-heading{display:block;margin-bottom:30px}.memories-heading h2{font-size:clamp(40px,10.8vw,56px)}.memories-heading>p{margin-top:21px;font-size:16px;max-width:340px}.memories-heading>p br{display:none}.memory-grid{gap:20px}.photo-wrap{border-radius:20px}.memory-two{padding-top:30px}.photo-wrap img{aspect-ratio:.8}.memory-photo figcaption{padding-top:16px}.memory-photo figcaption>span{font-size:13px}.memory-photo h3{font-size:24px;line-height:1.13;margin-top:8px}.contact{display:block}.contact-intro{margin-top:23px;max-width:340px}.contact-details{padding-top:33px}.email-link{font-size:19px;gap:14px}.address-row{display:flex;gap:20px;font-size:14px}.address-row address{margin-top:0}.contact-note{margin-top:26px;padding:16px 18px;font-size:14px}.site-footer.wrap{align-items:start;padding:30px 22px;gap:20px}.footer-name{font-size:23px}.footer-name span{font-size:13px}.site-footer nav{flex-direction:column;align-items:end;gap:0}.legal-main{margin:35px auto 60px;padding-inline:22px}.legal-main h2{font-size:29px}.legal-main h1{font-size:44px}.legal-main .legal-status{padding:17px}}
@media(max-width:360px){.brand-mark{width:43px}.brand-name{font-size:18px}.brand-name>span{font-size:21px}.hero-actions{gap:10px 17px}.contact-button{width:100%}.hero-link{padding-block:4px}.memory-grid{display:block}.memory-two{width:88%;margin-left:auto;padding-top:32px}.photo-wrap img{aspect-ratio:1.15}.memory-photo h3{font-size:27px}.memory-photo figcaption{padding-top:14px}.address-row{display:block}.address-row address{margin-top:12px}.site-footer.wrap{display:block}.site-footer nav{flex-direction:row;justify-content:start;gap:24px;margin-top:17px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
