:root{color-scheme:light;--paper:#f6f1e8;--ink:#3e493c;--muted:#726c61;--gold:#9a7842;--line:#cbbd9f}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}.invitation{position:relative;isolation:isolate;min-height:100svh;padding:64px 36px 40px;text-align:center;display:flex;align-items:center;flex-direction:column;background:radial-gradient(ellipse at 0 12%,#e8ddcd80,transparent 43%),radial-gradient(ellipse at 100% 90%,#e7d6ce55,transparent 44%)}.frame{position:absolute;z-index:-1;inset:20px;border:1px solid var(--line);pointer-events:none}.frame:after{content:"";position:absolute;inset:5px;border:1px solid #cbbd9f60}header{margin-bottom:26px}.monogram{font-family:Georgia,'Times New Roman',serif;font-size:25px;letter-spacing:.08em}.monogram i{font-size:20px;color:var(--gold);font-weight:normal}.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:10px;line-height:1.8;font-weight:normal}header .eyebrow{margin-top:17px;color:var(--muted)}.floral{width:132px;color:var(--gold);margin:0 auto 24px}.floral svg{display:block;width:100%;height:auto}.centerpiece{width:100%;max-width:700px}.centerpiece>.eyebrow{color:var(--gold);margin:0 0 22px}h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.06em;font-size:clamp(66px,9vw,112px);line-height:1.1;margin:0}h1 em{font-weight:normal;font-size:.56em;color:var(--gold);display:inline-block;padding:0 .3em;vertical-align:.1em}.date{font-size:12px;letter-spacing:.21em;text-transform:uppercase;margin:30px 0 0;line-height:1.8}.divider{margin:29px auto;display:flex;align-items:center;justify-content:center;gap:18px;color:var(--gold);font-size:21px}.divider:before,.divider:after{content:"";height:1px;width:54px;background:var(--line)}h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(23px,3.5vw,30px);line-height:1.4;margin:0 0 15px}.message{font-size:14px;line-height:1.9;color:var(--muted);margin:0}.details{font-size:12px;line-height:1.9;max-width:340px;margin:23px auto 0;color:var(--muted)}footer{margin-top:auto;padding-top:48px}.status{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:inline-flex;gap:9px;align-items:center}.status>span{width:5px;height:5px;border-radius:50%;background:var(--gold)}footer p{font-family:Georgia,'Times New Roman',serif;font-size:16px;font-style:italic;margin-top:19px}.venues{list-style:none;padding:0;margin:26px auto 0;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.venues li{flex:1 1 220px;max-width:280px;border:1px solid var(--line);padding:18px 16px;display:flex;flex-direction:column;gap:6px;background:#fffdf880}.venues .when{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.venues .what{font-size:12px;color:var(--muted)}.venues .where{font-family:Georgia,"Times New Roman",serif;font-size:19px;line-height:1.35}@media(min-height:950px){.invitation{padding-top:85px;padding-bottom:55px}.floral{margin-top:15px;margin-bottom:35px}footer{padding-top:70px}}@media(max-width:520px){.invitation{padding:48px 32px 36px}.frame{inset:12px}.frame:after{inset:4px}header{margin-bottom:20px}h1 span{display:block}h1 em{display:block;font-size:.43em;line-height:1.3;padding:0}.floral{width:105px;margin-bottom:20px}.date{font-size:10px;margin-top:24px}.divider{margin:22px auto}.desktop-break{display:none}footer{padding-top:32px}.message{font-size:13px}h2{font-size:24px}.details{font-size:11px;max-width:260px}.venues{gap:12px}.venues li{padding:15px 12px}.venues .where{font-size:17px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* RSVP button on invitation pages */
.button{display:inline-block;margin-top:28px;padding:14px 34px;border:1px solid var(--gold);background:var(--ink);color:var(--paper);font:inherit;font-size:11px;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}
.button:hover{background:var(--gold);color:#fff}
.button:focus-visible,.monogram:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.button:disabled{opacity:.45;cursor:not-allowed;background:var(--ink)}
a.monogram{color:inherit;text-decoration:none}

/* RSVP pages */
.rsvp .centerpiece{max-width:620px}
.rsvp-title{font-size:clamp(54px,8vw,84px);letter-spacing:.02em}
.rsvp-form{margin:34px auto 0;text-align:left;display:flex;flex-direction:column;gap:22px}
.rsvp-form fieldset{border:0;margin:0;padding:0;min-width:0}
.rsvp-form legend,.field label{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
.optional{letter-spacing:.08em;text-transform:none;font-size:11px}
.field input,.field select,.field textarea{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid var(--line);background:#fffdf8;color:var(--ink);font:inherit;font-size:15px;border-radius:0;-webkit-appearance:none;appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.field textarea{resize:vertical;min-height:84px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field-narrow{max-width:260px}

/* Agraj / Juhi toggle */
.side-toggle{text-align:center}
.side-toggle legend{width:100%;text-align:center;font-family:Georgia,'Times New Roman',serif;font-size:20px;letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:14px}
.toggle{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;width:min(320px,100%);border:1px solid var(--gold);border-radius:999px;padding:4px;background:#fffdf8;isolation:isolate}
.toggle input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.toggle label{position:relative;z-index:1;padding:12px 0;text-align:center;font-family:Georgia,'Times New Roman',serif;font-size:18px;color:var(--ink);cursor:pointer;border-radius:999px;transition:color .25s}
.toggle-thumb{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--ink);opacity:0;transition:transform .3s ease,opacity .2s}
.toggle input:checked+label{color:var(--paper)}
#side-agraj:checked~.toggle-thumb{opacity:1;transform:translateX(0)}
#side-juhi:checked~.toggle-thumb{opacity:1;transform:translateX(100%)}
.toggle input:focus-visible+label{outline:2px solid var(--gold);outline-offset:2px}

/* Accept / decline per function */
.function{border-top:1px solid var(--line)!important;padding-top:20px!important}
.function legend{float:left;width:100%;padding:0;display:flex;flex-direction:column;gap:4px;text-transform:none;letter-spacing:0;margin-bottom:12px}
.function .choices{clear:both}
.fn-name{font-family:Georgia,'Times New Roman',serif;font-size:21px;color:var(--ink)}
.fn-meta{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choices input{position:absolute;opacity:0;width:1px;height:1px}
.choices label{display:block;padding:12px 10px;border:1px solid var(--line);background:#fffdf8;text-align:center;font-size:13px;color:var(--muted);cursor:pointer;transition:all .2s}
.choices input:checked+label{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.choices input:focus-visible+label{outline:2px solid var(--gold);outline-offset:2px}

.trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{min-height:1.4em;margin:0;font-size:13px;line-height:1.6;text-align:center;color:var(--muted)}
.form-status.is-error{color:#9c3b30}
.rsvp-form .button{align-self:center;margin-top:0}
.thanks{margin-top:34px}
.thanks h2{font-size:34px}
.thanks:focus{outline:none}

@media(max-width:520px){
  .field-row{grid-template-columns:1fr;gap:22px}
  .field-narrow{max-width:none}
  .choices{grid-template-columns:1fr}
  .rsvp h1 span{display:inline}
}
