/* The supplied SVG files are used unchanged. Hero ratios follow the 1072 × 650 reference. */
:root { --invitation-script:#628da0; --invitation-verse:#8f9fae; }
.calendar { position:relative; }
.calendar::before { content:''; position:absolute; top:-17px; left:50%; width:118px; height:35px; pointer-events:none; background:linear-gradient(100deg,rgb(255 255 255 / .06),transparent 40%,rgb(14 18 27 / .06)),#5d8599; opacity:.88; transform:translateX(-50%) rotate(-4deg); clip-path:polygon(1% 0,98% 3%,100% 15%,98% 28%,100% 43%,98% 58%,100% 75%,98% 100%,1% 97%,2% 80%,0 64%,2% 48%,0 33%,2% 17%); box-shadow:inset 0 1px 0 rgb(255 255 255 / .12),inset 0 -2px 3px rgb(14 18 27 / .12); }
.hero-shell { position:relative; isolation:isolate; overflow:clip; background:linear-gradient(135deg,var(--ink) 50%,#171d29); }
.hero-shell>.site-header { padding-block:4.75rem 1.5rem; }
.hero-shell>.wrap { width:min(100% - 10rem,1280px); }
.monogram { display:inline-flex; align-items:center; padding:0; flex-shrink:0; line-height:1; }
.monogram img { width:90px; height:auto; }
.hero-shell .hero { isolation:auto; padding-block:3.5rem 5.5rem; min-height:480px; }
.hero-shell h1 { font-size:clamp(3.5rem,6.7vw,6.4rem); max-width:900px; line-height:1.03; letter-spacing:-.025em; }
.hero-shell h1 em { color:var(--invitation-script); }
.hero-floral { position:absolute; top:-2.5rem; right:-2rem; width:min(44vw,630px); pointer-events:none; z-index:-1; -webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent); mask-image:linear-gradient(to bottom,#000 55%,transparent); }
.hero-floral img { display:block; width:100%; height:auto; opacity:.5; }
.hero-floral::after { content:''; position:absolute; inset:0; background:linear-gradient(115deg,transparent 12%,rgb(14 18 27 / .48) 65%,rgb(14 18 27 / .68)),linear-gradient(0deg,var(--ink),transparent 35%); }
.hero-shell .verse { border:0; padding:0; margin-top:3rem; max-width:555px; font-family:Georgia,serif; font-size:clamp(1.125rem,2.05vw,1.45rem); line-height:1.3; color:var(--invitation-verse); }
.hero-shell .verse p { line-height:1.3; }
.hero-shell .verse cite { display:inline-block; font-family:var(--serif); font-size:1.6rem; font-style:normal; line-height:1.1; letter-spacing:0; color:var(--ink); background:var(--accent); border-radius:999px; padding:.2rem 1rem .3rem; margin-top:1.25rem; }
.sheep-seal { position:absolute; right:0; bottom:3rem; width:92px; height:auto; pointer-events:none; }

/* One button system, with restrained hover feedback and distinct action weights. */
.button,.nav-rsvp { position:relative; display:inline-flex; justify-content:center; align-items:center; gap:.75rem; border-radius:10px; font-size:.875rem; font-weight:500; letter-spacing:-.015em; line-height:1.35; text-decoration:none; }
.button { min-height:46px; padding:.8rem 1.2rem; box-shadow:0 0 0 .5px var(--control-border),0 2px 3px -1px rgb(0 0 0 / .35); }
.button.light { background:var(--ice); color:var(--ink); box-shadow:0 0 0 .5px var(--ice),0 2px 3px -1px rgb(0 0 0 / .35); }
.nav-rsvp { min-height:44px; padding:.65rem 1rem !important; background:rgb(14 18 27 / .8); border:.5px solid var(--control-border) !important; color:var(--ice); }
.nav-rsvp::after { content:none; }
.button svg,.nav-rsvp svg { width:16px; height:16px; flex-shrink:0; stroke-linecap:round; stroke-linejoin:round; }
.text-link { display:inline-flex; align-items:center; gap:.6rem; }
.text-link svg { width:15px; height:15px; }
.rsvp-panel .button.light { background:var(--ink); color:var(--ice); box-shadow:0 2px 3px -1px rgb(14 18 27 / .25); }
.rsvp form>.button { min-height:50px; }
.rsvp-panel .decline-button { background:transparent; box-shadow:none; margin-top:.8rem; color:var(--dark-muted); }
.button[aria-disabled=true] { cursor:wait; }
.button:focus-visible,.nav-rsvp:focus-visible { outline:2px solid var(--focus-ring); outline-offset:5px; }
.rsvp-panel .button:focus-visible { outline-color:#324c59; }
@media(hover:hover) and (pointer:fine) {
  .button:not(:disabled):not([aria-disabled=true]):hover { background:var(--raised-control-hover); box-shadow:0 0 0 .5px var(--accent),0 3px 4px -2px rgb(0 0 0 / .45); }
  .button.light:not(:disabled):not([aria-disabled=true]):hover { background:#e8f0f2; color:var(--ink); box-shadow:0 0 0 .5px #e8f0f2,0 3px 4px -2px rgb(0 0 0 / .45); }
  .rsvp-panel .button.light:not(:disabled):not([aria-disabled=true]):hover { background:#263b49; color:var(--ice); box-shadow:0 3px 4px -2px rgb(14 18 27 / .35); }
  .rsvp-panel .decline-button:not(:disabled):not([aria-disabled=true]):hover { background:var(--paper-selected); color:var(--ink); box-shadow:none; }
  .nav-rsvp:hover { color:var(--ice); background:var(--raised-control); border-color:var(--accent) !important; }
}
@media(prefers-reduced-motion:no-preference) {
  .button,.nav-rsvp { transition:background-color 180ms var(--ease-control),color 180ms var(--ease-control),box-shadow 180ms var(--ease-control),transform 180ms var(--ease-control); }
  .button svg,.nav-rsvp svg,.text-link svg { transition:transform 180ms var(--ease-control); }
  @media(hover:hover) and (pointer:fine) {
    .button:not(:disabled):not([aria-disabled=true]):hover { transform:translateY(-1px); }
    .button:not(:disabled):not([aria-disabled=true]):hover svg,.nav-rsvp:hover svg,.text-link:hover svg { transform:translate(2px,-2px); }
  }
  .button:not(:disabled):not([aria-disabled=true]):active,.nav-rsvp:active { transform:scale(.97); }
}
@media(max-width:900px) {
  .hero-shell>.wrap { width:calc(100% - 3rem); }
  .hero-shell>.site-header { padding-top:2.5rem; }
  .hero-floral { width:48vw; right:-3rem; }
  .hero-shell .hero { padding-block:2.5rem 4.5rem; }
  .hero-shell .verse { max-width:65%; }
}
@media(max-width:650px) {
  .hero-shell>.wrap { width:calc(100% - 2.5rem); }
  .hero-shell>.site-header { padding-block:2rem 1rem; }
  .monogram img { width:72px; }
  .hero-shell .hero { padding-block:3rem 6.5rem; min-height:0; }
  .hero-shell h1 { font-size:clamp(3rem,11.7vw,4.3rem); line-height:1.06; max-width:100%; }
  .hero-floral { width:76vw; top:-2rem; right:-4rem; }
  .hero-floral::after { background:linear-gradient(110deg,rgb(14 18 27 / .45),rgb(14 18 27 / .76)),linear-gradient(0deg,var(--ink),transparent 65%); }
  .hero-shell .verse { max-width:100%; margin-top:2.5rem; font-size:1.15rem; }
  .hero-shell .verse cite { font-size:1.35rem; margin-top:1rem; }
  .sheep-seal { width:66px; bottom:1.5rem; right:.25rem; }
  .button { min-height:48px; font-size:.9375rem; }
  .nav-rsvp { font-size:.75rem; gap:.5rem; padding:.6rem .75rem !important; }
}
@media(forced-colors:active) { .button,.nav-rsvp { border:1px solid ButtonText !important; box-shadow:none; } }

/* Editorial details: time, personal notes and useful closing reminders. */
@media(min-width:1100px) {
  .hero-shell .sheep-seal { right:calc((min(1280px,100vw - 10rem) - 100vw)/2 + 4rem); }
}
.ceremony-time { display:flex; align-items:center; gap:1.5rem; margin-block:2rem 1rem; width:fit-content; padding:1.1rem 1.5rem 1.1rem 0; border-block:1px solid var(--line); }
.ceremony-weekday { font-family:var(--serif); font-size:1.75rem; font-style:italic; color:var(--accent); }
.ceremony-time>div { border-inline-start:1px solid var(--control-border); padding-inline-start:1.5rem; }
.ceremony-time time { display:block; font-family:var(--serif); font-size:3.3rem; line-height:1.1; font-variant-numeric:lining-nums; }
.ceremony-time time span { font-size:1.6rem; }
.time-zone { display:block; margin-top:.35rem; font-size:.7rem; color:var(--muted); }
.location { grid-template-columns:1fr 1fr; gap:6rem; }
.location>div:first-child { position:relative; }
.location>div:last-child { padding-inline-start:3rem; border-inline-start:1px solid var(--line); }
.location h2 { font-size:clamp(3.2rem,5.2vw,5.3rem); }
.location-story { color:var(--muted); max-width:47ch; line-height:1.9; }
.location .button { margin-top:2rem; }
.attire .section-top { grid-template-columns:1fr 1fr; gap:4rem; }
.attire-intro { color:var(--muted); max-width:48ch; }
.attire-intro p:first-child { color:var(--ice); }
.attire-intro p+p { font-size:.9rem; }
.illustration { background:radial-gradient(ellipse at 50% 36%,#293a48 0%,#17222c 68%); box-shadow:inset 0 0 0 1px rgb(181 211 215 / .08); }
.illustration img { height:320px; filter:drop-shadow(0 12px 12px rgb(0 0 0 / .2)); }
.gifts-inner { grid-template-columns:.45fr 1.55fr; gap:4rem; align-items:start; }
.gift-art { padding-top:1rem; display:grid; justify-items:center; gap:1.2rem; }
.gift-art img { width:160px; height:auto; }
.gift-art>span { font-family:var(--serif); font-size:1.3rem; font-style:italic; color:var(--dark-muted); }
.gifts h2 { max-width:20ch; font-size:clamp(2.6rem,4.4vw,4.6rem); margin-bottom:2rem; }
.gifts .gift-subtitle { font-size:1.7rem; margin-bottom:.9rem; }
.gifts .gift-copy { max-width:65ch; }
.gifts .gift-note { max-width:65ch; margin-top:1rem; }
.provision-verse { border-top:1px solid #a8bec7; padding-top:1.7rem; margin-top:2rem; max-width:65ch; }
.gifts .provision-verse p.provision-name { font-family:var(--serif); font-style:italic; font-size:1.5rem; color:var(--ink); }
.gifts .provision-verse p:not(.provision-name) { font-family:var(--serif); font-size:1.15rem; margin-top:.65rem; }
.provision-verse cite { display:block; margin-top:.65rem; font-size:.7rem; font-style:normal; color:var(--dark-muted); }
.footer { display:block; padding-top:4rem; }
.closing-verse { max-width:820px; margin:0 auto 4rem; text-align:center; }
.verse-ornament { display:block; font-size:2rem; color:var(--invitation-script); margin-bottom:1.8rem; }
.footer .closing-verse>p { font-family:var(--serif); font-size:clamp(1.65rem,2.8vw,2.7rem); line-height:1.45; color:var(--ice); }
.closing-verse>p em { color:var(--accent); }
.closing-verse cite { display:block; margin-top:1.5rem; font-style:normal; font-size:.75rem; color:var(--muted); }
.footer-reminders { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; align-items:start; margin-bottom:3rem; }
.footer-reminders details { border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.footer-reminders summary { display:flex; justify-content:space-between; align-items:center; gap:1rem; cursor:pointer; padding:1.25rem; list-style:none; }
.footer-reminders summary::-webkit-details-marker { display:none; }
.footer-reminders summary>span:first-child>span { display:block; }
.footer-reminders .reminder-label { font-size:.65rem; color:var(--muted); margin-bottom:.65rem; }
.footer-reminders summary>span:first-child>span:last-child { font-family:var(--serif); font-size:1.35rem; line-height:1.3; }
.reminder-toggle { font-size:1.3rem; color:var(--accent); }
.footer-reminders details[open] .reminder-toggle { transform:rotate(45deg); }
.footer-reminders details>div { padding:0 1.25rem 1.25rem; }
.footer-reminders details p { font-size:.8125rem!important; }
.footer-reminders .text-link { margin-top:.75rem; display:flex; width:fit-content; min-height:44px; font-size:.8125rem; }
.footer-bottom { border-top:1px solid var(--line); padding-top:2rem; display:grid; grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr); align-items:center; gap:1.5rem; }
.footer-sheep { width:48px; height:auto; justify-self:center; }
.footer-meta { text-align:right; display:grid; justify-items:end; gap:.4rem; color:var(--muted); font-size:.8125rem; }
.footer-meta a { min-height:32px; display:inline-flex; align-items:center; }
@media(hover:hover) { .footer-reminders summary:hover { background:#20303e; border-radius:10px; } }
@media(max-width:900px) {
  .location { gap:3rem; }
  .attire .section-top { gap:2rem; }
  .illustration img { height:260px; }
  .gifts-inner { gap:2rem; }
  .footer-reminders { grid-template-columns:1fr; }
}
@media(max-width:650px) {
  .ceremony-time { gap:1.2rem; padding-inline-end:.5rem; }
  .ceremony-time>div { padding-inline-start:1.2rem; }
  .ceremony-time time { font-size:3rem; }
  .ceremony-weekday { font-size:1.6rem; }
  .location,.attire .section-top,.gifts-inner { grid-template-columns:1fr; }
  .location { gap:1.5rem; }
  .location>div:last-child { padding-inline-start:0; border-inline-start:0; }
  .illustration img { height:220px; width:100%; }
  .gift-art { display:flex; gap:1.5rem; align-items:center; padding:0; }
  .gift-art img { width:95px; }
  .gifts h2 { font-size:2.6rem; }
  .footer { padding-top:3rem; }
  .closing-verse { margin-bottom:2.5rem; }
  .footer .closing-verse>p { font-size:1.75rem; }
  .footer-bottom { gap:.75rem; }
  .footer-bottom .footer-names { font-size:1.25rem; line-height:1.1; }
  .footer-meta { gap:0; line-height:1.2; }
  .footer-meta,.footer-meta a { font-size:.7rem; }
  .footer-meta a { min-height:24px; }
}
