:root {
  --paper:#f8f5ef;
  --cream:#eee8df;
  --ink:#352f2c;
  --muted:#746c65;
  --wine:#582733;
  --wine-dark:#41202a;
  --line:#dcd3c8;
  --rose:#b59598;
  --serif:Georgia,'Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,p {
  margin:0;
}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.15;
}
h2 {
  font-size:46px;
  letter-spacing:-1.5px;
}
h2 em {
  font-weight:400;
  color:var(--wine);
}
h3 {
  font-size:26px;
}
p+p {
  margin-top:16px;
}
a {
  color:inherit;
  text-decoration:none;
}
button,input,select,textarea {
  font:inherit;
}
button {
  color:inherit;
  cursor:pointer;
}
button:disabled {
  cursor:wait;
  opacity:.65;
}
img {
  display:block;
  max-width:100%;
  height:auto;
}
button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent;
}
a,button,summary {
  touch-action:manipulation;
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:2px solid var(--wine);
  outline-offset:5px;
}
::selection {
  background:#e1c9ca;
  color:var(--wine);
}
[hidden] {
  display:none!important;
}
.container {
  width:min(1240px,calc(100% - 112px));
  margin-inline:auto;
}
.section-space {
  padding-block:100px;
}
.eyebrow {
  font-size:10px;
  font-weight:500;
  letter-spacing:2.5px;
  line-height:1.6;
  color:var(--wine);
}
.small {
  font-size:12px;
  line-height:1.7;
}
.muted {
  color:var(--muted);
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.skip-link {
  position:fixed;
  top:-100px;
  left:16px;
  z-index:100;
  background:var(--wine);
  color:white;
  padding:12px 20px;
}
.skip-link:focus {
  top:10px;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:36px;
  min-height:54px;
  padding:16px 28px;
  border:1px solid var(--wine);
  background:var(--wine);
  color:#fff8f0;
  font-size:13px;
  line-height:1.4;
  transition:background .2s,transform .2s;
}
.button:hover {
  background:var(--wine-dark);
  transform:translateY(-1px);
}
.button span[aria-hidden] {
  font-size:21px;
  line-height:1;
}
.button-outline {
  background:transparent;
  color:var(--wine);
}
.button-outline:hover {
  background:var(--cream);
}
.text-link {
  border:0;
  border-bottom:1px solid var(--wine);
  background:transparent;
  padding:7px 0;
  display:inline-flex;
  align-items:center;
  gap:28px;
  color:var(--wine);
  font-size:13px;
  line-height:1.6;
}
.text-link span {
  font-size:20px;
  line-height:1;
}
.text-link:hover {
  color:var(--ink);
  border-color:var(--ink);
}
.calendar-link {
  display:flex;
  gap:7px;
  align-items:center;
  font-size:11px;
  color:var(--muted);
  width:fit-content;
  padding:12px 0;
}
.calendar-link:hover {
  color:var(--wine);
}
.site-header {
  height:92px;
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:relative;
  z-index:20;
}
.header-inner {
  height:100%;
  width:min(1352px,calc(100% - 88px));
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.monogram {
  font-family:var(--serif);
  font-size:26px;
  line-height:1;
  letter-spacing:1px;
  color:var(--wine);
}
.monogram span {
  font-style:italic;
  font-size:20px;
}
.monogram i {
  display:block;
  font:8px var(--sans);
  letter-spacing:2px;
  margin-top:9px;
  text-align:center;
}
nav {
  display:flex;
  gap:39px;
  align-items:center;
}
nav>a {
  font-size:11px;
  letter-spacing:.2px;
}
nav>a:hover {
  color:var(--wine);
}
nav .nav-cta {
  border:1px solid var(--line);
  padding:10px 18px;
  display:flex;
  gap:26px;
  align-items:center;
}
.nav-cta span {
  font-size:18px;
}
.menu-toggle {
  display:none;
}
.hero {
  position:relative;
  min-height:740px;
  padding-block:76px 100px;
  display:grid;
  grid-template-columns:1.15fr 1fr;
  align-items:center;
  gap:60px;
}
.short-line {
  width:28px;
  height:1px;
  background:var(--wine);
  display:inline-block;
  vertical-align:middle;
  margin-right:10px;
}
.hero h1 {
  font-size:clamp(68px,6.55vw,98px);
  line-height:.98;
  letter-spacing:-5px;
  color:var(--wine);
  margin:32px 0 24px;
}
.hero h1>span {
  display:block;
}
.hero h1 .ampersand {
  font-size:39px;
  font-style:italic;
  line-height:1.15;
  letter-spacing:0;
  color:#9b7e77;
  margin-left:165px;
}
.hero-note {
  font-size:14px;
  line-height:1.75;
  color:var(--muted);
}
.hero-date {
  display:flex;
  align-items:center;
  gap:18px;
  font-size:12px;
  letter-spacing:1px;
  margin:26px 0;
}
.date-divider {
  color:#b7a69b;
}
.hero .calendar-link {
  margin-top:5px;
}
.hero-art {
  position:relative;
  max-width:436px;
  justify-self:end;
  width:100%;
  margin-right:16px;
}
.photo-frame {
  height:520px;
  border-radius:220px 220px 2px 2px;
  overflow:hidden;
  position:relative;
}
.photo-frame img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 57%;
}
.hero-art:before {
  content:"";
  position:absolute;
  inset:-15px 14px 17px -15px;
  border:1px solid #c8b7a2;
  border-radius:230px 230px 1px 1px;
  z-index:-1;
}
.photo-seal {
  position:absolute;
  right:-28px;
  bottom:45px;
  border-radius:50%;
  width:112px;
  height:112px;
  background:var(--paper);
  border:1px solid var(--line);
  box-shadow:0 0 0 7px var(--paper);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:9px;
  color:var(--wine);
  transform:rotate(10deg);
}
.photo-seal span {
  font-size:7px;
  letter-spacing:2px;
}
.photo-seal i {
  font-family:var(--serif);
  font-size:28px;
  font-weight:400;
}
.photo-caption {
  font-family:var(--serif);
  font-style:italic;
  font-size:14px;
  color:var(--muted);
  text-align:center;
  margin-top:20px;
  letter-spacing:.3px;
}
.scroll-cue {
  position:absolute;
  bottom:24px;
  left:0;
  font-size:8px;
  letter-spacing:2px;
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--muted);
}
.scroll-cue span {
  font-size:24px;
  color:var(--wine);
}
.welcome {
  text-align:center;
  padding:72px 0 90px;
  border-top:1px solid var(--line);
}
.little-flower {
  color:var(--wine);
  font-size:29px;
  margin-bottom:19px;
}
.welcome h2 {
  font-size:36px;
  line-height:1.4;
  margin:20px 0 24px;
  letter-spacing:-.8px;
}
.welcome>p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted);
  line-height:1.85;
}
.signature {
  font-family:var(--serif);
  font-style:italic;
  font-size:23px;
  color:var(--wine);
  margin-top:27px;
}
.day-section {
  background:var(--wine);
  color:var(--paper);
  padding:75px 0 42px;
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:25px;
  margin-bottom:52px;
}
.section-heading h2 {
  margin-top:13px;
}
.section-aside {
  font-size:11px;
  line-height:1.8;
  color:var(--muted);
  text-align:right;
}
.light-heading .eyebrow {
  color:#e2bfc6;
}
.light-heading h2 em {
  color:#dcc1bc;
}
.light-heading .section-aside {
  color:#d7bdc0;
}
.timeline {
  padding:0;
  margin:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(6,1fr);
}
.timeline li {
  position:relative;
  padding:0 19px 0 0;
  border-top:1px solid #906670;
}
.timeline li:before {
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:#e4c9c1;
  position:absolute;
  top:-4px;
  left:0;
}
.timeline-number {
  display:block;
  color:#c7a5ad;
  font-size:9px;
  margin-top:17px;
  letter-spacing:1px;
}
.timeline time {
  display:block;
  font-family:var(--serif);
  font-size:23px;
  line-height:1.3;
  margin:17px 0;
}
.timeline h3 {
  font-family:var(--sans);
  font-size:11px;
  font-weight:500;
  line-height:1.6;
  margin-bottom:10px;
}
.timeline p {
  font-size:10px;
  line-height:1.85;
  color:#d8c1c5;
}
.timeline-footnote {
  font-size:10px;
  color:#d8c1c5;
  border-top:1px solid #82515f;
  margin-top:38px;
  padding-top:24px;
}
.timeline-footnote span {
  margin-right:10px;
  font-size:16px;
}
.venues {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:54px;
}
.venue {
  border-top:1px solid var(--line);
  padding-top:20px;
}
.venue-top {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
}
.tag {
  font-size:9px;
  letter-spacing:1.5px;
  color:var(--wine);
}
.venue-time {
  font-size:10px;
  color:var(--muted);
}
.building-art {
  height:165px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:15px 20px 2px;
  color:#937a69;
  background:linear-gradient(0deg,#f0e9df66,transparent);
  margin:18px 0 24px;
}
.building-art svg {
  width:100%;
  height:100%;
  stroke:currentColor;
  stroke-width:1.15;
  stroke-linejoin:round;
}
.venue h3 {
  font-size:29px;
  letter-spacing:-.8px;
}
.venue-address {
  font-size:11px;
  margin:12px 0 19px;
  color:var(--wine);
}
.venue>p:not(.venue-address) {
  max-width:400px;
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
}
.venue .text-link {
  margin-top:22px;
}
.venue-note {
  font-size:11px;
  text-align:center;
  margin-top:40px;
  color:var(--muted);
  padding-top:24px;
  border-top:1px solid var(--line);
}
.dress-section {
  background:var(--cream);
  padding:84px 0;
}
.dress-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:75px;
  align-items:center;
}
.dress-copy h2 {
  font-size:55px;
  margin:20px 0 24px;
}
.dress-lead {
  font-size:18px;
  font-family:var(--serif);
  color:var(--wine);
  line-height:1.6;
}
.dress-copy>p:not(.eyebrow):not(.dress-lead):not(.small) {
  font-size:12px;
  line-height:1.9;
  color:var(--muted);
  max-width:420px;
}
.palette {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:9px;
  margin:30px 0 18px;
}
.palette>div {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
.swatch {
  display:block;
  border-radius:50%;
  width:40px;
  height:40px;
  box-shadow:inset 0 0 0 1px #00000007;
}
.palette>div>span:last-child {
  font-size:8px;
  text-align:center;
  line-height:1.4;
}
.black {
  background:#242323;
}
.espresso {
  background:#44342e;
}
.burgundy {
  background:#602a35;
}
.olive {
  background:#686950;
}
.taupe {
  background:#a89a8d;
}
.rose {
  background:#b39098;
}
.dress-copy .small {
  font-size:10px;
  line-height:1.7;
}
.dress-recommendations {
  padding:20px 0;
  margin-top:18px;
  border-top:1px solid #d3c8bd;
}
.dress-recommendations p {
  font-size:11px;
  color:var(--muted);
  line-height:1.8;
  display:flex;
  gap:12px;
}
.dress-recommendations p+p {
  margin-top:10px;
}
.dress-recommendations span {
  color:var(--wine);
  font-size:17px;
  line-height:1.2;
}
.dress-poster {
  background:var(--paper);
  padding:11px;
  border:1px solid #ddd1c6;
  box-shadow:0 13px 34px #392d2510;
  transform:rotate(2deg);
  transition:transform .2s;
  width:100%;
}
.dress-poster:hover {
  transform:rotate(0);
}
.dress-poster>span {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:15px 9px 4px;
  font-size:8px;
  letter-spacing:2px;
  color:var(--wine);
}
.dress-poster b {
  font-size:23px;
  font-weight:400;
}
.details-section {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:70px;
}
.details-section h2 {
  font-size:39px;
  margin:20px 0;
}
.details-intro {
  font-size:12px;
  color:var(--muted);
}
.faq details {
  border-top:1px solid var(--line);
}
.faq details:last-child {
  border-bottom:1px solid var(--line);
}
summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:25px;
  font-size:13px;
  padding:20px 0;
}
summary::-webkit-details-marker {
  display:none;
}
summary>span {
  font-size:20px;
  color:var(--wine);
  transition:transform .2s;
}
details[open] summary>span {
  transform:rotate(45deg);
}
details p {
  padding:0 28px 20px 0;
  font-size:12px;
  color:var(--muted);
  line-height:1.9;
}
.rsvp-section {
  background:#eae3db;
  padding:86px 0;
}
.rsvp-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:90px;
  align-items:start;
}
.rsvp-copy {
  position:sticky;
  top:50px;
}
.rsvp-copy h2 {
  font-size:78px;
  margin:24px 0 28px;
  line-height:1.05;
}
.rsvp-copy>p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted);
}
.rsvp-copy .deadline {
  margin-top:30px;
  border-left:1px solid #ba9e94;
  padding-left:20px;
  line-height:1.9;
}
.deadline strong {
  font-weight:500;
  color:var(--wine);
}
.rsvp-decoration {
  font-family:var(--serif);
  font-style:italic;
  font-size:22px;
  color:var(--wine);
  margin:48px 0 37px;
  line-height:1.8;
}
.rsvp-decoration span {
  font-style:normal;
  font-size:clamp(23px,2.4vw,32px);
  letter-spacing:0;
}
.rsvp-copy .privacy-note {
  font-size:10px;
}
.form-card {
  background:var(--paper);
  padding:38px 40px;
  min-height:290px;
}
.form-step {
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:25px;
}
.form-step>span {
  font-family:var(--serif);
  font-size:14px;
  color:#9d8178;
  border:1px solid var(--line);
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
}
.form-step h3 {
  font-size:24px;
  letter-spacing:-.7px;
}
label,legend {
  font-size:11px;
  color:var(--ink);
}
label:not(.choice):not(.consent) {
  display:block;
  margin-bottom:9px;
}
.required {
  color:var(--wine);
}
input[type=text],input[type=password],select,textarea {
  width:100%;
  border:1px solid var(--line);
  background:#fbf9f4;
  border-radius:0;
  padding:13px 14px;
  color:var(--ink);
  font-size:12px;
  min-height:46px;
  transition:border-color .2s;
}
input::placeholder,textarea::placeholder {
  color:#8b837c;
  opacity:1;
}
input:focus,select:focus,textarea:focus {
  border-color:var(--wine);
}
textarea {
  resize:vertical;
  min-height:88px;
  line-height:1.7;
}
select {
  padding-right:28px;
}
fieldset {
  border:0;
  padding:0;
  margin:23px 0;
}
legend {
  padding:0;
  margin:0 0 12px;
}
.choice-row {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.choice {
  display:flex;
  position:relative;
  align-items:center;
  gap:8px;
  cursor:pointer;
  border:1px solid var(--line);
  padding:10px 12px;
  font-size:10px;
  line-height:1.5;
  min-height:42px;
  background:#fbf9f4;
  transition:border-color .15s,background .15s;
}
.choice:has(input:checked) {
  border-color:var(--wine);
  color:var(--wine);
  background:#efe5e3;
}
.choice input {
  margin:0;
  accent-color:var(--wine);
  width:13px;
  height:13px;
  flex-shrink:0;
}
.attendance-choices>.choice {
  flex:1;
  white-space:nowrap;
}
.meal-fields {
  margin-top:29px;
  padding-top:27px;
  border-top:1px solid var(--line);
}
.meal-fields:disabled {
  display:none;
}
.drink-choices {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
.drink-choices .choice {
  padding:10px 8px;
  font-size:9px;
}
.optional {
  font-size:9px;
  color:var(--muted);
  margin-left:5px;
  font-weight:400;
}
.field-help {
  font-size:10px;
  color:var(--muted);
  margin-top:7px;
}
label.consent {
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:9px;
  color:var(--muted);
  line-height:1.7;
  margin-top:24px;
}
.consent input {
  margin:3px 0 0;
  accent-color:var(--wine);
  width:14px;
  height:14px;
  flex-shrink:0;
}
.submit-button {
  width:100%;
  margin-top:23px;
}
.form-footnote {
  font-size:9px;
  text-align:center;
  color:var(--muted);
  margin-top:13px;
}
.form-error {
  font-size:12px;
  color:#8d2433;
  background:#f3e1df;
  border-left:2px solid #8d2433;
  padding:12px 14px;
  margin-top:16px;
}
.form-loading {
  font-size:13px;
  color:var(--muted);
  padding:65px 15px;
  text-align:center;
}
.success-state {
  text-align:center;
  padding:45px 0;
  outline:none;
}
.success-icon {
  font-family:var(--serif);
  font-size:65px;
  color:var(--wine);
  line-height:1.2;
  margin-bottom:20px;
}
.success-state h3 {
  font-size:34px;
  line-height:1.2;
  color:var(--wine);
  margin:22px 0;
}
.success-state>p:not(.eyebrow) {
  font-size:13px;
  color:var(--muted);
}
.success-state .button {
  margin-top:27px;
}
.success-state .calendar-link {
  margin:10px auto 0;
}
.site-footer {
  padding-block:44px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
}
.footer-monogram {
  font-family:var(--serif);
  font-size:30px;
  color:var(--wine);
}
.site-footer p {
  font-size:10px;
  color:var(--muted);
  line-height:1.9;
}
.site-footer>p {
  text-align:right;
}
.site-footer div p {
  margin-top:9px;
}
dialog {
  width:min(1000px,calc(100% - 32px));
  max-height:90dvh;
  border:1px solid var(--line);
  padding:22px;
  background:var(--paper);
  color:var(--ink);
  overscroll-behavior:contain;
}
dialog::backdrop {
  background:#241a19bf;
  backdrop-filter:blur(5px);
}
.dialog-heading {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  margin-bottom:18px;
}
.dialog-heading h2 {
  font-size:24px;
  letter-spacing:-.5px;
}
.dialog-close {
  background:transparent;
  border:1px solid var(--line);
  font-size:30px;
  width:43px;
  height:43px;
  flex-shrink:0;
  line-height:1;
}
.dialog-close:hover {
  background:var(--cream);
}
.dialog-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:12px 24px;
  margin-top:14px;
}
/* The administration page reuses the invitation's palette and controls. */
.admin-page .site-header{height:80px}.admin-page h1{font-size:43px;color:var(--wine)}.admin-main{padding-block:55px 90px}.admin-login{max-width:440px;margin:50px auto;padding:35px;background:var(--cream)}.admin-login h2{font-size:32px;margin-bottom:15px}.admin-login p{font-size:12px;color:var(--muted);margin-bottom:22px}.admin-login .button{width:100%;margin-top:20px}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:30px 0}.admin-toolbar .button{font-size:12px;min-height:45px;padding:11px 19px;gap:20px}.admin-actions{display:flex;gap:12px}.admin-intro{margin-top:12px;color:var(--muted);font-size:13px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:30px 0}.stat{background:var(--cream);padding:20px 23px}.stat strong{display:block;font-family:var(--serif);font-size:38px;color:var(--wine);font-weight:400;line-height:1.3}.stat span{font-size:11px;color:var(--muted)}.table-wrap{overflow-x:auto;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;min-width:960px;font-size:12px;text-align:left}th,td{padding:15px 17px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:10px;font-weight:500;background:var(--cream);white-space:nowrap}td{max-width:260px;overflow-wrap:anywhere;white-space:pre-wrap}td:nth-child(1){min-width:150px}td:nth-child(4){min-width:170px}.status-pill{display:inline-block;border:1px solid #bfc6b9;background:#edf0e8;padding:3px 9px;font-size:10px;white-space:nowrap}.status-pill.declined{background:#e9e4df;border-color:#d0c6bb}.allergy-cell{background:#f1e1df;color:#7a2936}.empty-state{padding:40px;text-align:center;color:var(--muted);font-size:13px}.admin-filter{width:auto;min-width:190px}.plan{margin-top:60px;border-top:1px solid var(--line);padding-top:35px}.plan h2{font-size:34px;margin:12px 0 26px}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.plan article{background:var(--cream);padding:25px}.plan h3{font-size:24px;margin-bottom:17px}.plan ul{padding:0;list-style:none;margin:0;font-size:12px}.plan li+li{margin-top:12px}.plan time{font-weight:600;color:var(--wine)}.plan-note{font-size:12px;color:var(--muted);margin-top:24px}.admin-message{font-size:11px;color:var(--muted);min-height:24px}.admin-header-link{font-size:12px;color:var(--wine)}
@media(min-width:1500px){.hero{gap:100px}.hero-art{max-width:470px}.photo-frame{height:565px}.hero{min-height:790px}.hero h1{font-size:105px}}
@media(max-width:1100px){.container{width:calc(100% - 72px)}.hero{gap:35px;min-height:690px}.hero h1{font-size:76px;letter-spacing:-4px}.photo-frame{height:470px}.hero-art{margin-right:12px}.timeline{grid-template-columns:repeat(3,1fr);row-gap:35px}.timeline li{padding-right:30px}.timeline time{font-size:26px}.timeline p{font-size:12px}.timeline h3{font-size:13px}.dress-grid{gap:40px}.rsvp-grid{gap:50px;grid-template-columns:.8fr 1.2fr}.form-card{padding:30px 25px}.drink-choices{grid-template-columns:repeat(2,1fr)}.attendance-choices{flex-direction:column}.dress-copy h2{font-size:49px}.dress-section{padding:70px 0}.palette{gap:5px}.swatch{width:35px;height:35px}.details-section{gap:45px}.details-section h2{font-size:34px}.venues{gap:35px}.venue h3{font-size:25px}}
@media(max-width:760px){html{scroll-padding-top:25px}.container{width:calc(100% - 44px)}.site-header{height:80px}.header-inner{width:calc(100% - 44px)}.monogram{font-size:23px}.menu-toggle{display:flex;gap:12px;align-items:center;font-size:11px;background:none;border:1px solid var(--line);padding:9px 12px;min-height:42px}.menu-toggle span{font-size:15px}nav{display:none;position:absolute;top:79px;left:0;right:0;background:var(--paper);padding:18px 22px 24px;border-bottom:1px solid var(--line);box-shadow:0 10px 18px #352f2c08;align-items:stretch;gap:0}nav.open{display:flex;flex-direction:column}nav>a{padding:14px;font-size:13px}nav .nav-cta{margin-top:7px;justify-content:space-between;padding:13px}.hero{padding:48px 0 70px;grid-template-columns:1fr;gap:44px;min-height:0}.hero-copy{text-align:center}.hero .eyebrow{font-size:8px;letter-spacing:2px}.short-line{width:20px;margin-right:5px}.hero h1{font-size:clamp(58px,13vw,84px);margin:25px 0 21px;letter-spacing:-3px}.hero h1 .ampersand{margin-left:0;font-size:29px;line-height:1.25}.hero-note{font-size:13px}.hero-date{justify-content:center;font-size:11px;margin:23px 0;gap:12px}.hero .button{font-size:12px;min-height:51px;gap:38px}.hero .calendar-link{margin:6px auto 0;font-size:10px}.hero-art{width:78%;max-width:330px;justify-self:center;margin-right:0}.photo-frame{height:auto;aspect-ratio:4/5}.hero-art:before{inset:-10px 10px 12px -10px}.photo-seal{width:84px;height:84px;right:-20px;bottom:47px;box-shadow:0 0 0 5px var(--paper);gap:7px}.photo-seal i{font-size:23px}.photo-seal span{font-size:5px;letter-spacing:1.5px}.photo-caption{font-size:11px;margin-top:20px}.scroll-cue{display:none}.welcome{padding:45px 0 58px}.welcome h2{font-size:27px;line-height:1.35;letter-spacing:-.7px;margin:20px 0}.welcome>p:not(.eyebrow){font-size:12px}.desktop-break{display:none}.signature{font-size:21px}.eyebrow{font-size:9px;letter-spacing:2px}h2{font-size:35px;letter-spacing:-1px}.section-heading{align-items:flex-start;gap:20px;margin-bottom:33px}.section-heading h2{line-height:1.2}.section-aside{display:none}.day-section{padding:50px 0 28px}.timeline{grid-template-columns:1fr;gap:0;margin-left:4px}.timeline li{border-top:0;border-left:1px solid #906670;padding:0 0 30px 29px;display:grid;grid-template-columns:104px 1fr;column-gap:17px}.timeline li:before{top:8px;left:-3.5px}.timeline li:last-child{padding-bottom:4px;border-color:transparent}.timeline-number{display:none}.timeline time{font-size:22px;margin:0;grid-row:1/3;line-height:1.5}.timeline li:nth-child(2) time,.timeline li:nth-child(3) time,.timeline li:nth-child(4) time{font-size:17px;padding-top:3px}.timeline h3{font-size:12px;margin:3px 0 6px;line-height:1.6}.timeline p{font-size:11px;line-height:1.7}.timeline-footnote{font-size:10px;line-height:1.8;margin-top:24px;padding-top:18px}.section-space{padding-block:56px}.venues{grid-template-columns:1fr;gap:38px}.venue-top{gap:15px}.venue h3{font-size:26px}.venue-address{font-size:11px}.building-art{height:140px}.venue>p:not(.venue-address){max-width:none}.venue-note{text-align:left;font-size:11px;margin-top:30px}.dress-section{padding:55px 0}.dress-grid{grid-template-columns:1fr;gap:35px}.dress-copy h2{font-size:43px;margin:17px 0 20px}.dress-lead{font-size:18px}.dress-copy>p:not(.eyebrow):not(.dress-lead):not(.small){font-size:12px}.palette{margin:25px 0 17px}.swatch{width:39px;height:39px}.palette>div>span:last-child{font-size:8px}.dress-poster{width:93%;justify-self:center;max-width:430px;transform:rotate(1.3deg)}.dress-copy .text-link{font-size:12px}.details-section{grid-template-columns:1fr;gap:27px}.details-section h2{font-size:34px;margin:16px 0}.details-intro{display:none}summary{font-size:12px;padding:18px 0}details p{font-size:12px}.rsvp-section{padding:52px 0}.rsvp-grid{grid-template-columns:1fr;gap:31px}.rsvp-copy{position:static}.rsvp-copy h2{font-size:56px;margin:18px 0 20px}.rsvp-copy h2 br{display:none}.rsvp-copy h2 em{margin-left:7px}.rsvp-copy>p:not(.eyebrow){font-size:12px}.rsvp-copy>p br{display:none}.rsvp-copy .deadline{margin-top:19px}.deadline strong{margin-left:4px}.rsvp-decoration{display:none}.rsvp-copy .privacy-note{font-size:10px;margin-top:17px}.form-card{padding:28px 21px}.form-step{gap:10px;margin-bottom:22px}.form-step h3{font-size:23px}.attendance-choices{flex-direction:column}.choice{font-size:12px;min-height:44px}.drink-choices .choice{font-size:10px;min-height:44px}.drink-choices{grid-template-columns:repeat(2,1fr)}label,legend{font-size:12px}input[type=text],input[type=password],select,textarea{font-size:16px;padding:12px;min-height:48px}input::placeholder,textarea::placeholder{font-size:13px}label.consent{font-size:10px;line-height:1.6}.optional{font-size:9px}.form-footnote{font-size:10px}.form-step>span{width:28px;height:28px;flex-shrink:0}.success-state{padding:25px 0}.success-state h3{font-size:29px}.success-state .button{padding:14px 20px;gap:20px}.site-footer{padding-block:32px;align-items:flex-start;gap:15px}.footer-monogram{font-size:26px}.site-footer p{font-size:9px}.site-footer>p{max-width:145px}.dialog-heading h2{font-size:21px}.dialog-heading{gap:12px}dialog{padding:14px}.dialog-close{width:40px;height:40px}.admin-main{padding-block:35px}.admin-page h1{font-size:34px}.admin-login{margin-top:30px;padding:25px}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:17px}.admin-toolbar{align-items:stretch;flex-direction:column;gap:15px}.admin-actions{flex-wrap:wrap}.admin-actions .button{flex:1;justify-content:center;gap:10px}.admin-filter{width:100%;font-size:16px}.plan-grid{grid-template-columns:1fr}.plan h2{font-size:30px}.plan{margin-top:40px}.table-wrap{margin-inline:-22px;border-inline:0}.empty-state{font-size:12px;padding:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.site-header,.hero-art,.scroll-cue,.calendar-link,.button,.text-link,.rsvp-section,dialog,.admin-actions,.admin-filter{display:none!important}body{background:white;font-size:11px}.container{width:100%}.hero{display:block;padding:10px 0;min-height:0}.hero h1{font-size:50px}.hero h1>span{display:inline}.hero h1 .ampersand{margin:0 15px}.hero h1 .ampersand{font-size:30px}.welcome{padding:25px 0}.day-section{background:white;color:black;padding:25px 0}.day-section *{color:black!important}.timeline{grid-template-columns:repeat(3,1fr)}.section-space,.dress-section{padding:25px 0}.rsvp-copy{position:static}.section-heading{margin-bottom:20px}.dress-poster{max-width:300px}.venue,.dress-grid,.timeline li{break-inside:avoid}.site-footer{padding:20px 0}.admin-page table{min-width:0;font-size:9px}.admin-page th,.admin-page td{padding:7px}.table-wrap{overflow:visible;border:0}.plan-grid{grid-template-columns:repeat(3,1fr)}}
body.modal-open{overflow:hidden}

/* Compact phones: keep intrinsic grid content inside the available width. */
.dress-grid > *, .rsvp-grid > *, .venues > * {
  min-width: 0;
}
@media (max-width: 360px) {
  .hero h1 {
    font-size: clamp(46px, 15vw, 58px);
    letter-spacing: -2px;
  }
  .dress-copy h2 {
    font-size: 37px;
  }
  .palette {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px 8px;
  }
  .timeline li {
    grid-template-columns: 90px minmax(0, 1fr);
    column-gap: 12px;
    padding-left: 20px;
  }
  .timeline time {
    font-size: 18px;
  }
  .timeline li:nth-child(2) time,
  .timeline li:nth-child(3) time,
  .timeline li:nth-child(4) time {
    font-size: 15px;
  }
  .drink-choices {
    grid-template-columns: 1fr;
  }
  .form-step h3 {
    font-size: 21px;
  }
  .rsvp-copy h2 {
    font-size: 48px;
  }
}
