:root{--paper:#f7f1ea;--ink:#2c2420;--muted:#8a7a70;--blush:#c4a4a0;--gold:#a68b5b;--white:#fffcf8;--font:"Josefin Sans",system-ui,sans-serif;--display:"Cormorant Garamond",Georgia,serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);font-weight:400;background:radial-gradient(ellipse 90% 50% at 50% -15%,rgba(212,175,120,.22),transparent 55%),radial-gradient(ellipse 40% 30% at 0 100%,rgba(200,180,200,.12),transparent 50%),linear-gradient(180deg,#faf6f1 0,#f5efe6 100%);color:var(--ink);line-height:1.65;min-height:100vh;background-image:radial-gradient(ellipse 70% 40% at 50% 0,rgba(196,164,160,.2),transparent)}a{color:var(--gold)}.demo-banner{text-align:center;font-size:.72rem;letter-spacing:.08em;padding:.5rem 1rem;background:#ebe3da;color:var(--muted)}.demo-banner a{font-weight:600;text-decoration:none}.letterhead{max-width:52rem;margin:0 auto;padding:1.75rem 1.25rem 1rem;display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:1rem}.mono{font-family:var(--display);font-size:1.5rem;font-weight:600;letter-spacing:.2em;text-decoration:none;color:var(--ink)}.letterhead nav{display:flex;gap:1.5rem}.letterhead nav a{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--muted);font-weight:500}.letterhead nav a:hover{color:var(--ink)}.invitation{max-width:40rem;margin:0 auto;padding:3rem 1.25rem 3.5rem;text-align:center}.flourish{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blush);font-weight:500;margin-bottom:1.25rem}.invitation h1{font-family:var(--display);font-weight:500;font-size:clamp(3rem, 10vw, 4.75rem);line-height:1.05;letter-spacing:.02em}.invitation h1 span{display:block;font-style:italic;font-size:.55em;color:var(--gold);margin:.15em 0}.rule{width:4rem;height:1px;background:var(--gold);margin:1.5rem auto}.lede{color:var(--muted);font-size:1.05rem;font-weight:300;max-width:26rem;margin:0 auto 2rem}.seal{display:inline-block;border:1px solid var(--ink);color:var(--ink);text-decoration:none;padding:.85rem 1.75rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;transition:background .2s,color .2s}.seal:hover{background:var(--ink);color:var(--paper)}.filmstrip{display:grid;grid-template-columns:repeat(6,1fr);gap:.65rem;max-width:64rem;margin:0 auto;padding:0 1.25rem 3rem}.frame{grid-column:span 2;aspect-ratio:4/5;background:linear-gradient(160deg,#e8ddd4 0,#c4a4a0 45%,#8a6e68 100%);display:flex;align-items:flex-end;padding:1rem;box-shadow:0 12px 30px rgba(44,36,32,.08)}.frame.tall{grid-row:span 1;aspect-ratio:3/5}.frame.wide{grid-column:span 3;aspect-ratio:16/10;background:linear-gradient(120deg,#d4c4b0,#b89a7a 50%,#6b5344)}.frame span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--white);text-shadow:0 1px 8px rgba(0,0,0,.3)}@media (max-width:700px){.filmstrip{grid-template-columns:1fr 1fr}.frame,.frame.wide{grid-column:span 1;aspect-ratio:4/5}}.packages{max-width:56rem;margin:0 auto;padding:2rem 1.25rem 3.5rem;text-align:center}.section-label{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--blush)}.packages h2{font-family:var(--display);font-weight:500;font-size:clamp(1.75rem, 4vw, 2.5rem);margin:.5rem 0 2rem}.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid rgba(44,36,32,.12);border-bottom:1px solid rgba(44,36,32,.12)}.cols article{padding:2rem 1.25rem;text-align:left;border-right:1px solid rgba(44,36,32,.12)}.cols article:last-child{border-right:0}.cols.featured{background:var(--white);box-shadow:0 0 0 1px var(--gold);position:relative;z-index:1}.badge{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem}.cols h3{font-family:var(--display);font-size:1.5rem;font-weight:600}.price{font-family:var(--display);font-size:1.75rem;color:var(--gold);margin:.5rem 0 1rem;font-weight:500}.cols ul{list-style:none;color:var(--muted);font-size:.88rem;font-weight:300}.cols li{padding:.35rem 0;border-top:1px solid rgba(44,36,32,.06)}.footnote{margin-top:1.5rem;font-size:.85rem;color:var(--muted);font-weight:300}@media (max-width:720px){.cols{grid-template-columns:1fr}.cols article{border-right:0;border-bottom:1px solid rgba(44,36,32,.12)}}.vow-block{max-width:36rem;margin:0 auto 3rem;padding:0 1.25rem;text-align:center}.vow-block blockquote{font-family:var(--display);font-style:italic;font-size:clamp(1.25rem, 3vw, 1.65rem);line-height:1.45;color:var(--ink)}.vow-block cite{display:block;margin-top:1rem;font-style:normal;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.letter{max-width:40rem;margin:0 auto;padding:0 1.25rem 4rem}.letter-card{background:var(--white);padding:2.25rem 1.75rem;box-shadow:0 24px 50px rgba(44,36,32,.06);border:1px solid rgba(44,36,32,.06)}.letter-card h2{font-family:var(--display);font-weight:500;font-size:1.85rem;margin:.35rem 0 1.5rem}.letter-card form{display:flex;flex-direction:column;gap:1rem}.letter-card.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width:520px){.letter-card.row{grid-template-columns:1fr}}.letter-card label{display:flex;flex-direction:column;gap:.35rem;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.letter-card input,.letter-card textarea{border:0;border-bottom:1px solid rgba(44,36,32,.2);background:0 0;padding:.55rem 0;font:inherit;font-size:1rem;letter-spacing:0;text-transform:none;color:var(--ink);resize:vertical}.letter-card input:focus,.letter-card textarea:focus{outline:0;border-bottom-color:var(--gold)}.letter-card button{margin-top:.5rem;align-self:flex-start;background:var(--ink);color:var(--paper);border:0;padding:.85rem 1.5rem;font:inherit;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}.sent{color:var(--gold);font-size:.9rem;margin-top:.5rem}.foot{max-width:52rem;margin:0 auto;padding:1.5rem 1.25rem 2.5rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;border-top:1px solid rgba(44,36,32,.1);font-size:.8rem;color:var(--muted)}.foot a{text-decoration:none}.foot.mono{font-family:var(--display);letter-spacing:.12em;color:var(--ink)}