:root { --ink:#342d21; --gold:#ae7d31; --gold-light:#d9bb77; --paper:#fbf7ec; --cream:#eee2c7; --line:rgba(123,91,39,.22); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",Arial,sans-serif; font-size:16px; line-height:1.6; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:"Playfair Display",Georgia,serif; font-weight:600; line-height:1.12; }
.site-header { height:72px; position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(20px,5vw,78px); background:rgba(251,247,236,.9); border-bottom:1px solid var(--line); backdrop-filter:blur(10px); }
.monogram,.footer-monogram { color:var(--gold); font-family:"Playfair Display",Georgia,serif; font-size:20px; font-weight:700; letter-spacing:.08em; text-decoration:none; }.monogram span,.footer-monogram span { font-size:.7em; font-style:italic; }
.site-nav { display:flex; gap:26px; }.site-nav a,.header-rsvp { color:var(--ink); font-size:12px; font-weight:600; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; }.site-nav a:hover { color:var(--gold); }.header-rsvp { background:var(--gold); color:#fff; padding:9px 15px; }.menu-button { display:none; color:var(--gold); border:0; background:none; font-size:23px; }
.hero { min-height:640px; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; padding:90px 24px 125px; text-align:center; background:radial-gradient(circle at 50% 35%,#fffdf5 0 8%,transparent 44%),linear-gradient(130deg,#f0e5cd,#fffdf5 50%,#eee1c7); }.hero::after { content:""; position:absolute; inset:20px; border:1px solid var(--line); pointer-events:none; }.hero-ornament,.diya { color:var(--gold); font-size:29px; }.eyebrow,.invitation-label,.card-label { margin-bottom:9px; color:#8c6d37; font-family:"DM Sans",Arial,sans-serif; font-size:11px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; }.invitation-label { margin:18px 0 5px; color:var(--ink); letter-spacing:.25em; }.hero h1 { max-width:800px; margin:0; color:#9a6e25; font-size:clamp(50px,9vw,103px); letter-spacing:-.055em; }.hero h1 span { display:inline-block; margin:0 .06em; font-size:.6em; font-style:italic; font-weight:500; vertical-align:middle; }.hero-subtitle { max-width:400px; margin:18px auto 25px; font-size:15px; }.date-pill { display:flex; gap:12px; align-items:center; padding:9px 18px; border-top:1px solid var(--gold-light); border-bottom:1px solid var(--gold-light); color:#79591f; font-size:12px; }.date-pill strong { font-family:"Playfair Display",Georgia,serif; font-size:16px; }.button { display:inline-flex; gap:12px; align-items:center; justify-content:center; margin-top:28px; padding:13px 21px; background:#9f742e; color:#fff; font-size:12px; font-weight:600; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; transition:transform .2s,background .2s; }.button:hover { background:#73531d; transform:translateY(-2px); }.arch { position:absolute; bottom:-230px; width:530px; height:390px; border:1px solid rgba(174,125,49,.21); border-radius:265px 265px 0 0; }.arch-one { left:-170px; }.arch-two { right:-170px; bottom:-310px; }
.section { padding:100px max(24px,7vw); text-align:center; }.intro { background:linear-gradient(90deg,#fbf7ec,#f1e5cc,#fbf7ec); }.intro h2,.ceremony h2,.venue h2,.family h2,.blessings h2 { margin-bottom:15px; color:#8f6828; font-size:clamp(35px,4vw,54px); }.lead { max-width:690px; margin:0 auto; color:#5d5140; }.couple-grid { max-width:1000px; position:relative; display:grid; grid-template-columns:1fr 72px 1fr; gap:22px; align-items:center; margin:55px auto 0; }.person-card,.family-grid article { padding:37px 32px; border:1px solid var(--line); background:rgba(255,253,246,.74); box-shadow:0 14px 25px rgba(88,59,10,.05); }.person-card h3,.family-grid h3 { margin-bottom:6px; color:#6c4c1c; font-size:31px; }.person-card p:not(.card-label) { margin-bottom:7px; }.card-rule { width:40px; height:1px; margin:22px auto; background:var(--gold-light); }.grandparents { color:#796b57; font-size:13px; line-height:1.55; }.together { color:var(--gold); font-family:"Playfair Display",Georgia,serif; font-size:52px; font-style:italic; }
.ceremony { background:#fcfaf4; }.schedule-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; max-width:900px; margin:48px auto 0; text-align:left; }.schedule-day { position:relative; min-height:300px; padding:30px; border:1px solid var(--line); background:var(--paper); }.featured-day { background:#a97a2d; color:#fff; border-color:#a97a2d; }.day-number { margin-bottom:18px; color:#c8a45e; font-family:"Playfair Display",Georgia,serif; font-size:69px; line-height:.7; }.featured-day .day-number,.featured-day .card-label { color:#f6e4b3; }.schedule-day h3 { margin:0 0 25px; font-size:27px; }.schedule-day ul { margin:0; padding:0; list-style:none; }.schedule-day li { display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-top:1px solid var(--line); font-size:13px; }.featured-day li { border-color:rgba(255,255,255,.25); }.schedule-day time { white-space:nowrap; font-weight:600; }
.venue { display:grid; grid-template-columns:minmax(280px,1fr) minmax(280px,1fr); gap:70px; align-items:center; max-width:1180px; margin:auto; text-align:left; }.venue-art { min-height:400px; display:flex; position:relative; align-items:center; justify-content:center; overflow:hidden; background:linear-gradient(145deg,#765c36,#d0a759 50%,#f4deb0); box-shadow:-10px 10px 0 #fff,-12px 12px 0 var(--gold-light); }.venue-art>span { position:absolute; top:35px; color:#fff1be; font-size:25px; }.venue-building { width:70%; height:160px; position:relative; margin-top:65px; border:10px solid #f5ddb0; border-bottom-width:20px; box-shadow:inset 0 0 0 5px #8e6626; }.venue-building::before { content:""; position:absolute; left:23%; top:-95px; width:54%; height:95px; border-radius:70px 70px 0 0; background:#e4c279; border:8px solid #f5ddb0; border-bottom:0; }.venue-building i { display:inline-block; width:18%; height:65px; margin:70px 7% 0; border:3px solid #f5ddb0; }.venue-copy .small-copy { max-width:450px; color:#756852; font-size:14px; }.button-outline { border:1px solid #9f742e; background:transparent; color:#79591f; }.button-outline:hover { color:#fff; }
.family { background:#f0e4ca; }.family-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; max-width:900px; margin:42px auto 0; }.family-grid article { min-height:190px; }.family-grid article p:last-child { margin-bottom:0; color:#725f43; font-size:14px; }.blessings { position:relative; overflow:hidden; padding:105px 24px 75px; background:linear-gradient(160deg,#f8efd9,#ddc28a); text-align:center; }.blessings::before,.blessings::after { content:"✦"; position:absolute; bottom:14px; color:#8b672e; font-size:70px; opacity:.6; }.blessings::before { left:8%; }.blessings::after { right:8%; }.blessings h2 { max-width:590px; margin-inline:auto; color:#684a1c; }.contacts { display:flex; justify-content:center; flex-wrap:wrap; gap:10px 24px; margin-top:25px; }.contacts a { color:#6d4f20; font-size:13px; font-weight:600; text-decoration:none; }.footer-monogram { margin-top:44px; font-size:27px; }
@media (max-width:700px) { .site-header { height:62px; }.menu-button { display:block; }.site-nav { position:absolute; top:62px; right:0; left:0; display:none; flex-direction:column; gap:0; padding:10px 24px 20px; background:var(--paper); border-bottom:1px solid var(--line); }.site-nav.open { display:flex; }.site-nav a { padding:10px 0; }.header-rsvp { display:none; }.hero { min-height:610px; padding-top:70px; }.hero h1 { font-size:57px; }.date-pill { flex-direction:column; gap:2px; }.couple-grid { grid-template-columns:1fr; gap:20px; }.together { margin:-10px 0; }.section { padding:75px 22px; }.schedule-grid,.family-grid,.venue { grid-template-columns:1fr; }.venue { gap:38px; }.venue-art { min-height:310px; }.schedule-day { min-height:auto; }.person-card { padding:32px 24px; }.arch { opacity:.65; }.blessings { padding-top:80px; } }

/* Supplied invitation artwork */
.hero { background:radial-gradient(circle at 50% 35%,rgba(255,253,245,.94) 0 8%,rgba(255,253,245,.28) 44%),url("artifacts/ChatGPT%20Image%20Jun%2028%2C%202026%2C%2011_05_47%20PM.png") center/cover,#eee1c7; }
.hero-emblem { position:relative; z-index:1; width:118px; height:118px; margin:-15px 0 7px; object-fit:cover; border-radius:50%; mix-blend-mode:multiply; }
.key-art { width:135px; height:54px; margin:22px auto -26px; display:block; object-fit:cover; object-position:center; mix-blend-mode:multiply; opacity:.75; }
