@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');
:root{--ink:#080808;--ivory:#f2eee6;--gold:#d2aa55;--soft:#beb5a8;--line:rgba(210,170,85,.35)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:white;font-family:"DM Sans",sans-serif;font-size:16px;font-weight:300;background-image:linear-gradient(rgba(0,0,0,.54),rgba(0,0,0,.75)),url('assets/brand-background.jpeg');background-size:cover;background-position:center;background-attachment:fixed}a{color:inherit;text-decoration:none}header{position:absolute;z-index:2;top:0;left:0;padding:1.5rem 4vw}header img{width:112px;height:112px;object-fit:contain;display:block}.invitation-hero{min-height:100vh;display:grid;place-items:center;padding:9rem 6vw 5rem;position:relative}.invitation-hero:after{content:"";position:absolute;inset:4vw;border:1px solid var(--line);pointer-events:none}.invitation-copy{width:min(900px,88vw);text-align:center;position:relative;z-index:1}.eyebrow{color:var(--gold);letter-spacing:.28em;font-size:.72rem;font-weight:500}.invitation-copy h1{font:500 clamp(3.8rem,8vw,8rem)/.9 "Playfair Display",serif;margin:1.5rem 0 2rem;text-transform:uppercase;letter-spacing:-.04em}.invitation-copy h1 em{color:var(--gold);font-weight:500}.formula{font:500 clamp(1.25rem,2vw,1.7rem)/1.45 "Playfair Display",serif;letter-spacing:.2em;text-transform:uppercase;margin:0}.invitation-copy h2{font:500 clamp(1.6rem,3vw,2.8rem)/1.1 "Playfair Display",serif;margin:1.7rem 0 2.2rem}.button{display:inline-flex;justify-content:center;align-items:center;min-height:54px;padding:0 1.7rem;background:var(--gold);color:#111;border:1px solid var(--gold);font-size:.74rem;font-weight:500;letter-spacing:.15em;cursor:pointer}.summary{max-width:620px;margin:2rem auto 0;color:var(--soft);line-height:1.65}.request{background:var(--ivory);color:var(--ink);padding:8rem 9vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.request-intro h2{font:500 clamp(3rem,5vw,5.8rem)/.93 "Playfair Display",serif;letter-spacing:-.04em;margin:1.2rem 0 2rem}.request-intro>p:last-child{color:#655f57;line-height:1.7;max-width:450px}.invitation-form{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.field{border-bottom:1px solid #8b857b;padding:0 0 .7rem}.field label,.interests legend{display:block;font-size:.67rem;letter-spacing:.14em;font-weight:500}.field small{color:#807a72;margin-left:.35rem}.field input,.field textarea{border:0;background:transparent;width:100%;font:inherit;font-size:1.05rem;padding:.75rem 0 0;outline:0;resize:vertical}.field:focus-within{border-color:var(--gold)}.wide{grid-column:1/-1}.interests{border:0;border-bottom:1px solid #8b857b;padding:0 0 1.25rem;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem 1.5rem}.interests legend{grid-column:1/-1;margin-bottom:1rem}.interests label{font-size:.92rem;display:flex;gap:.65rem;align-items:center}.interests input{accent-color:var(--gold)}.form-note{min-height:1.4rem;color:#66512f;margin:0;outline:0}footer{padding:2rem 4vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--soft);font-size:.7rem;letter-spacing:.15em}
@media(max-width:800px){header img{width:90px;height:90px}.invitation-hero{padding-top:8rem}.invitation-hero:after{inset:1.2rem}.request{grid-template-columns:1fr;padding:6rem 7vw;gap:4rem}.invitation-form{grid-template-columns:1fr}.field,.wide{grid-column:1}.interests{grid-template-columns:1fr}}
@media(max-width:520px){.invitation-copy h1{font-size:3.2rem}.formula{font-size:1.05rem}.summary{font-size:.9rem}.request{padding-top:5rem}footer{flex-direction:column;gap:1rem}}
.summary{margin:1.8rem auto}.supporting{max-width:520px;margin:1.4rem auto 0;color:var(--soft);font-size:.88rem;line-height:1.55}
.invitation-copy h1{margin-bottom:.9rem}
.invitation-to{margin:0;color:var(--gold);font-size:.72rem;font-weight:500;letter-spacing:.28em}
.invitation-wordmark{display:block;width:clamp(150px,19vw,240px);height:auto;margin:.5rem auto 1.6rem}
footer{align-items:center}
footer img{width:76px;height:76px;object-fit:contain;display:block}
.request{position:relative;background-color:var(--ivory);background-image:linear-gradient(rgba(242,238,230,.92),rgba(242,238,230,.96)),url('assets/brand-background.jpeg');background-size:cover;background-position:center;background-attachment:fixed;overflow:hidden}
.request:before{content:"";position:absolute;pointer-events:none;right:-120px;top:-100px;width:420px;height:420px;background:url('assets/brand-background.jpeg') center/cover;opacity:.08;clip-path:polygon(0 0,100% 0,100% 100%,55% 78%,20% 100%,0 62%)}
.request>*{position:relative;z-index:1}
@media(max-width:850px){.request{background-attachment:scroll}}
body{background-image:url('assets/brand-background.jpeg');background-size:1280px 720px;background-position:center top;background-repeat:repeat-y;background-attachment:scroll}
.request{background:rgba(242,238,230,.91)}
.request:before{content:none}
footer{border-top:0}

/* Keep the original invitation composition legible over the brand artwork. */
body{font-weight:400}
.invitation-hero{background:rgba(0,0,0,.82)}
.invitation-copy,.request>*{min-width:0}
.invitation-copy h1{font-size:clamp(2.6rem,6.4vw,6rem);line-height:1.08}
.invitation-copy h2{line-height:1.25}
.formula{line-height:1.55;letter-spacing:.14em}
.summary,.supporting{color:#d4cec4;font-size:1rem;line-height:1.7}
.request .eyebrow{color:#705421;font-size:.78rem;line-height:1.6}
.request-intro h2{font-size:clamp(2.4rem,4.5vw,4.5rem);line-height:1.1}
.field label,.interests legend{font-size:.75rem;line-height:1.6;letter-spacing:.1em}
.field small{color:#655f57}
.field input,.field textarea{line-height:1.6;min-height:44px}
.interests label{min-height:44px;line-height:1.5}
.button{max-width:100%;line-height:1.5;text-align:center;padding:1rem 1.5rem}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #705421;outline-offset:4px}
.invitation-hero a:focus-visible,header a:focus-visible{outline-color:var(--gold)}
@media(max-width:520px){
  .invitation-copy{width:100%}
  .invitation-copy h1{font-size:clamp(2.3rem,10vw,3.2rem)}
  .request{padding:4.5rem 7vw;gap:2.5rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Match the refined logo scale and readable labels on the invitation page. */
header{padding:0 5vw}
header{mix-blend-mode:screen}
header>a{display:block;position:relative;width:280px;height:280px;overflow:hidden}
header img{position:absolute;width:470px;height:470px;max-width:none;left:50%;top:50%;transform:translate(-50%,-50%)}
.invitation-hero{padding-top:310px}
.eyebrow,.invitation-to{font-size:.875rem;line-height:1.6}
.supporting{font-size:1rem}
.request{min-height:100svh;align-content:center}
.request .eyebrow{font-size:.875rem}
.field label,.interests legend{font-size:.8125rem}
.interests label{font-size:1rem}
.button{font-size:.875rem;min-height:56px;letter-spacing:.1em}
footer{font-size:.8125rem}
@media(max-width:800px){header{left:50%;transform:translateX(-50%);padding:0}}
