:root { --ink:#211b20; --wine:#4b1f35; --wine-dark:#2b111f; --rose:#b68a94; --blush:#efe3e3; --paper:#f7f2ed; --cream:#fffaf4; --gold:#c8a969; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Georgia,"Times New Roman",serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
.hero { min-height:100svh; position:relative; overflow:hidden; color:var(--cream); background:radial-gradient(circle at 72% 40%,rgba(183,130,147,.24),transparent 27%),radial-gradient(circle at 88% 86%,rgba(108,45,69,.6),transparent 36%),linear-gradient(135deg,#25121c 0%,#4b1f35 54%,#29101e 100%); }
.hero::after { content:""; position:absolute; inset:0; opacity:.11; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); pointer-events:none; }
.silk { position:absolute; width:58vw; height:125vh; right:-18vw; top:-12vh; border-radius:50%; transform:rotate(19deg); border-left:1px solid rgba(255,255,255,.13); box-shadow:-80px 30px 120px rgba(224,178,192,.08),inset 60px 0 120px rgba(255,255,255,.035); }
.heroInner { width:min(1180px,calc(100% - 48px)); margin:0 auto; position:relative; z-index:1; }
.brand { height:128px; display:flex; align-items:center; gap:22px; border-bottom:1px solid rgba(255,255,255,.16); }
.brandName { font-size:19px; letter-spacing:.18em; text-transform:uppercase; white-space:nowrap; }
.brandLine { height:1px; width:42px; background:var(--gold); }
.brandClaim { color:rgba(255,250,244,.58); font:11px/1.2 Arial,sans-serif; letter-spacing:.19em; text-transform:uppercase; }
.heroCopy { padding:clamp(85px,14vh,145px) 0 90px; max-width:850px; }
.eyebrow { margin:0 0 25px; color:#dbc6c8; font:600 11px/1.2 Arial,sans-serif; text-transform:uppercase; letter-spacing:.34em; }
.eyebrow.dark { color:#855168; }
h1,h2,blockquote { font-weight:400; margin:0; }
h1 { font-size:clamp(58px,8.3vw,112px); line-height:.91; letter-spacing:-.045em; }
h1 span { display:block; color:#e0bec3; font-style:italic; }
.intro { max-width:610px; margin:40px 0 42px 4px; color:rgba(255,250,244,.72); font-size:clamp(18px,2vw,22px); line-height:1.7; }
.scrollHint { display:inline-flex; gap:22px; align-items:center; font:600 11px/1 Arial,sans-serif; letter-spacing:.19em; text-transform:uppercase; text-decoration:none; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.35); }
.scrollHint span { color:var(--gold); font-size:19px; }
.thanks,.contact { position:relative; }
.thanks { padding:clamp(100px,14vw,190px) max(24px,calc((100vw - 1180px)/2)); background:var(--paper); overflow:hidden; }
.sectionNumber { position:absolute; right:max(24px,calc((100vw - 1180px)/2)); top:72px; color:#d8cbc3; font:12px Arial,sans-serif; letter-spacing:.25em; }
.sectionNumber::before { content:""; position:absolute; width:48px; height:1px; background:currentColor; right:34px; top:6px; }
.thanksGrid { display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(60px,10vw,145px); }
.thanks h2,.contact h2 { font-size:clamp(42px,5.2vw,72px); line-height:1.05; letter-spacing:-.035em; }
.letter { padding-top:41px; border-top:1px solid #d8cbc3; font-size:18px; line-height:1.85; color:#51464b; }
.letter p { margin:0 0 24px; }
.letter strong { color:var(--wine); font-weight:400; font-style:italic; font-size:1.1em; }
.signature { padding-top:18px; color:#77686e; font-style:italic; }
.signature span { display:block; color:var(--wine); font-size:24px; margin-top:8px; }
.memory { padding:0 24px; background:var(--paper); }
.memoryCard { width:min(1320px,100%); margin:0 auto; padding:clamp(80px,11vw,145px) 30px; text-align:center; background:var(--blush); position:relative; overflow:hidden; }
.memoryCard::before,.memoryCard::after { content:""; position:absolute; width:260px; height:260px; border:1px solid rgba(75,31,53,.1); border-radius:50%; }
.memoryCard::before { left:-120px; top:-120px; } .memoryCard::after { right:-120px; bottom:-120px; }
.quoteMark { color:var(--rose); font-size:92px; height:55px; line-height:1; margin:0; }
blockquote { font-size:clamp(37px,5vw,65px); line-height:1.15; letter-spacing:-.03em; }
blockquote span { display:block; color:var(--wine); font-style:italic; }
.ornament { margin:38px auto 0; display:flex; align-items:center; justify-content:center; gap:13px; color:#a57b86; }
.ornament i { width:45px; height:1px; background:currentColor; } .ornament b { font-size:12px; font-weight:400; }
.contact { padding:clamp(100px,14vw,175px) max(24px,calc((100vw - 1180px)/2)); background:var(--wine-dark); color:var(--cream); }
.sectionNumber.light { color:rgba(255,255,255,.25); }
.contactGrid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(60px,10vw,140px); align-items:start; }
.contactIntro { max-width:490px; font-size:18px; line-height:1.75; color:rgba(255,250,244,.62); }
address { padding-top:12px; font-style:normal; }
address a { display:flex; align-items:center; gap:24px; padding:23px 0; border-bottom:1px solid rgba(255,255,255,.16); text-decoration:none; font:17px/1.4 Arial,sans-serif; transition:color .2s,padding-left .2s; }
address a:hover { color:#e0bec3; padding-left:5px; }
address small { display:block; color:rgba(255,255,255,.45); font-size:10px; letter-spacing:.2em; text-transform:uppercase; margin-bottom:5px; }
.icon { display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.25); border-radius:50%; flex:none; font-size:16px; }
.addressText { color:rgba(255,250,244,.45); font:12px/1.7 Arial,sans-serif; letter-spacing:.07em; margin-top:28px; }
footer { background:#160b11; color:rgba(255,250,244,.5); padding:45px max(24px,calc((100vw - 1180px)/2)) 30px; font:11px/1.5 Arial,sans-serif; letter-spacing:.1em; }
.footerTop { display:flex; justify-content:space-between; color:rgba(255,250,244,.88); text-transform:uppercase; letter-spacing:.2em; padding-bottom:38px; border-bottom:1px solid rgba(255,255,255,.1); }
.legal { display:flex; align-items:flex-start; gap:25px; flex-wrap:wrap; padding-top:25px; }
.legal>span { margin-left:auto; } .legal details { max-width:420px; }
.legal summary { cursor:pointer; text-transform:uppercase; list-style:none; }
.legal summary::-webkit-details-marker { display:none; }
.legalText { letter-spacing:0; line-height:1.65; color:rgba(255,250,244,.64); padding:12px 0 4px; }
.legalText p { margin:0 0 10px; }
@media(max-width:760px){
  .heroInner{width:min(100% - 34px,1180px)} .brand{height:100px} .brandLine,.brandClaim{display:none} .heroCopy{padding-top:92px} h1{font-size:clamp(50px,16vw,75px)} .intro{margin-top:30px}
  .thanksGrid,.contactGrid{grid-template-columns:1fr;gap:48px} .letter{padding-top:30px} .sectionNumber{top:45px} .memory{padding:0} .memoryCard{padding-left:22px;padding-right:22px}
  .footerTop{display:grid;gap:10px} .legal{display:grid;gap:18px} .legal>span{margin-left:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
