@font-face{font-family:"Newsreader";src:url("assets/fonts/newsreader-variable-latin.woff2") format("woff2");font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:"Alegreya";src:url("assets/fonts/alegreya-italic-variable-latin.woff2") format("woff2");font-style:italic;font-weight:400 700;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("assets/fonts/source-sans-3-variable-latin.woff2") format("woff2");font-style:normal;font-weight:300 800;font-display:swap}
:root{--ink:#1c2d44;--ink-deep:#0e1824;--ink-soft:#34567a;--wash:#d4944c;--mist:#f2dfc4;--paper:#fdf7ef;--paper-deep:#f5ead6;--silver:#c08a3e;--line:rgba(28,45,68,.18);--display:"Newsreader",Georgia,serif;--script:"Alegreya",Georgia,serif;--utility:"Source Sans 3",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem;overflow-x:hidden}body{min-width:20rem;margin:0;color:var(--ink-deep);background:var(--ink-deep);font-family:var(--utility);line-height:1.5;overflow-x:hidden}button,input{font:inherit}a{color:inherit}:focus-visible{outline:3px solid #c5d5e8;outline-offset:4px}.skip-link{position:fixed;z-index:50;top:.75rem;left:.75rem;padding:.65rem 1rem;color:var(--ink-deep);background:#fff;transform:translateY(-160%)}.skip-link:focus{transform:none}
.site-header{color:var(--paper);background:var(--ink-deep);border-bottom:1px solid rgba(255,255,255,.2)}.site-header__inner{min-height:4.5rem}.monogram-link{font-family:var(--display);letter-spacing:.08em}.site-nav a,.header-action{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}.header-action{border-color:rgba(247,247,244,.55)}
.invitation-sheet{width:100%;margin:0;overflow:hidden;background:var(--paper);border:0;border-radius:0;box-shadow:none}.ink-wash,.botanical{display:none}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 2rem);max-width:78rem;margin:auto;gap:2rem}.monogram-link{display:inline-flex;text-decoration:none}.monogram-link span:nth-child(2){margin-inline:.25rem;color:var(--wash)}.site-nav{display:flex;align-items:center;gap:clamp(1.2rem,4vw,3rem);margin-left:auto}.site-nav a{text-decoration:none}.header-action{display:inline-flex;align-items:center;min-height:2.5rem;text-decoration:none}.hero__content{min-width:0}.hero-actions{display:flex;align-items:center;gap:1.5rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.1rem;padding:.7rem 1.2rem;border:1px solid transparent;cursor:pointer;text-decoration:none;font-size:.8rem;font-weight:750}.text-link{text-decoration:none}.chapter{display:grid;gap:clamp(2rem,7vw,7rem);padding:clamp(5rem,10vw,9rem) clamp(2rem,9vw,8rem)}.details{padding:clamp(4rem,8vw,7rem) clamp(2rem,7vw,6rem)}.details__heading{display:grid;align-items:end;gap:2rem;margin-bottom:4rem}.details__grid{display:grid}.rsvp{display:grid;gap:clamp(2rem,8vw,8rem);padding:clamp(5rem,10vw,9rem) clamp(2rem,9vw,8rem)}.gifts{display:grid;align-items:center;gap:clamp(2rem,8vw,7rem);padding:clamp(4rem,8vw,7rem) clamp(2rem,7vw,6rem)}
.rsvp-form{display:grid;max-width:44rem;padding-block:2rem;border-block:1px solid var(--line)}.rsvp-form__identity{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(10rem,.55fr);gap:1rem}.field-group{display:grid;align-content:start}.field-group label,.guest-fields__title{margin-bottom:.55rem;font-size:.85rem;font-weight:750}.field-group input{width:100%;min-height:3.3rem;padding:.7rem .85rem;color:var(--ink-deep);border-radius:0}.field-group small{margin-top:.45rem;color:#52647a;font-size:.76rem}.guest-fields{padding:1.25rem 0 .15rem;border-top:1px solid var(--line)}.guest-fields__title{margin-top:0}.guest-fields__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-consent{display:flex;align-items:flex-start;gap:.7rem;margin-top:1.5rem;color:#294467;font-size:.86rem;line-height:1.45}.form-consent input{width:1.1rem;height:1.1rem;margin:.15rem 0;accent-color:var(--ink)}.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.rsvp-form .button{justify-self:start;margin-top:1.5rem}.form-privacy{margin:.8rem 0 0;color:#52647a;font-size:.76rem}.form-status{margin:1rem 0 0;padding:1rem;color:var(--ink-deep);background:#dbe5ee;border-left:3px solid var(--ink-soft)}.invitation-footer{padding:clamp(5rem,9vw,8rem) 2rem;text-align:center}.invitation-footer svg{width:min(100%,16rem);fill:none;stroke:var(--ink);stroke-width:1}.invitation-footer p{margin:.8rem 0 1rem;font-family:var(--script);font-size:clamp(2rem,5vw,3.5rem);font-style:italic;line-height:1}.error-page{display:grid;min-height:calc(100svh - 7rem);place-items:center;padding:3rem 2rem;color:var(--paper);text-align:center}.error-page__content{width:min(100%,42rem)}
.hero{position:relative;display:block;min-height:calc(100svh - 4.5rem);color:var(--paper);background:linear-gradient(rgba(10,20,35,.2),rgba(10,20,35,.2)),url("assets/casal.jpg") calc(50% + 5px) 15%/cover no-repeat;background-color:var(--ink-deep)}.hero::after{position:absolute;right:0;bottom:0;width:34%;height:100%;background:var(--ink);content:"";clip-path:polygon(38% 0,100% 0,100% 100%,0 100%);opacity:0.2}.hero__content{position:relative;z-index:1;display:flex;width:55%;min-width:0;min-height:calc(100svh - 4.5rem);flex-direction:column;justify-content:center;padding:5rem clamp(2rem,8vw,5rem) 3rem}.preview-flag{position:absolute;z-index:2;top:2.2rem;left:clamp(2rem,8vw,5rem);color:var(--wash);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}.preview-flag span{background:var(--wash)}.invitation-line{max-width:27rem;margin:1.5rem 0 0;color:rgba(247,247,244,.95);font-size:.86rem;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 4px rgba(0,0,0,0.9)}.hero h1{max-width:41rem;margin:.65rem 0 0;font-family:var(--display);font-size:clamp(3.4rem,8vw,7.6rem);font-weight:350;line-height:.87;letter-spacing:-.065em;text-shadow:0 2px 8px rgba(0,0,0,0.8)}.hero h1 b{color:var(--wash);font-family:var(--script);font-size:.55em;font-weight:400}.hero-monogram{display:none}.couple-name{margin:1.5rem 0 0;font-size:1rem;letter-spacing:.32em;text-transform:uppercase;text-shadow:0 1px 4px rgba(0,0,0,0.9)}.couple-name span{color:var(--wash)}.date-lockup{display:grid;width:min(100%,36rem);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;margin-top:1.75rem;border-color:rgba(247,247,244,.4)}.date-lockup>p{margin:0;color:var(--wash);font-size:.78rem;text-shadow:0 1px 2px rgba(0,0,0,0.9)}.date-lockup>p:last-child{text-align:right}.date-lockup time{display:grid;grid-template-columns:auto auto;align-items:baseline;justify-content:center;padding:0 1rem;border-inline:1px solid rgba(247,247,244,.4);text-shadow:0 1px 3px rgba(0,0,0,0.9)}.date-lockup strong{grid-row:1/3;font-size:5.5rem;font-weight:300;line-height:.9}.date-lockup span{text-transform:uppercase}.date-lockup small{color:var(--wash)}.hero-copy{margin:1.5rem 0;color:rgba(247,247,244,.95);font-family:var(--display);font-size:1.22rem;text-shadow:0 1px 5px rgba(0,0,0,0.9)}.demo-note{margin:1rem 0 0;color:rgba(247,247,244,.7);text-shadow:0 1px 3px rgba(0,0,0,0.9)}.button--primary{color:var(--ink-deep);background:var(--paper)}.button--primary:hover{color:var(--paper);background:var(--ink)}
.chapter{grid-template-columns:12rem minmax(0,1fr);background:var(--paper)}.chapter-date{border-color:var(--ink)}.chapter-date strong,.chapter-copy h2,.details h2,.rsvp h2,.gifts h2{font-family:var(--display);font-weight:350;letter-spacing:-.06em}.chapter-date span{color:var(--ink-soft)}.chapter-copy p{color:#405775;font-family:var(--display);font-size:1.25rem}
.details{color:var(--paper);background:var(--ink)}.details__heading h2{font-weight:350}.details-date,.detail-item .detail-label{color:var(--mist)}.details__heading>p:last-child,.detail-item>p:not(.detail-label){color:rgba(247,247,244,.7)}.details__grid,.detail-item+ .detail-item{border-color:rgba(247,247,244,.3)}.detail-item svg{stroke:var(--mist)}.pending-label{color:var(--mist)}
.detail-item address{margin:.7rem 0 1.25rem;color:rgba(247,247,244,.76);font-style:normal}.map-preview{display:block;max-width:30rem;overflow:hidden;border:1px solid rgba(247,247,244,.3)}.map-preview iframe{display:block;width:100%;aspect-ratio:16/9;border:0}.map-preview a{display:block;padding:.75rem 1rem;color:var(--paper);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-decoration:none}.map-preview a:hover{text-decoration:underline}
.rsvp{background:var(--paper-deep)}.rsvp__mark{border-color:var(--ink)}.rsvp__mark span{color:var(--ink-soft)}.rsvp__mark strong{font-family:var(--display);font-weight:300}.rsvp__intro{color:#405775}.rsvp-form{gap:1.5rem}.field-group label,.guest-fields__title{color:var(--ink-deep)}.field-group input{background:rgba(255,255,255,.6);border-color:rgba(7,27,63,.32)}.form-status[data-state=success]{background:#dcebe4;border-left-color:#3d705b}.form-status[data-state=error]{background:#f1dfdc;border-left-color:#8a3f39}
.gifts{color:var(--paper);background:var(--ink-deep)}.gift-context{color:var(--wash)}.invitation-footer{background:var(--paper)}.invitation-footer svg{stroke:var(--ink)}.invitation-footer p{color:var(--ink)}
@media(max-width:54rem){.hero{min-height:52rem}.hero__content{width:100%}.hero::after{width:35%;height:38%;clip-path:polygon(30% 0,100% 0,100% 100%,0 100%)}.hero-monogram{display:none}.chapter,.rsvp{grid-template-columns:1fr}.chapter-date{display:none}.details__heading{grid-template-columns:1fr}.details__grid{grid-template-columns:1fr}.detail-item+ .detail-item{border-top:1px solid rgba(247,247,244,.3);border-left:0}.map-preview{max-width:100%}.gifts{grid-template-columns:1fr}.gifts .button{justify-self:start}}
@media(max-width:38rem){.site-header__inner{gap:1rem}.site-nav{gap:1rem}.site-nav a:not(:last-child){display:none}.site-nav a,.header-action{font-size:.7rem}.invitation-sheet{width:100%;margin:0}.hero{min-height:48rem;padding:3.5rem 1.35rem 3rem;background-position:center 100%}.hero__content{min-height:0;padding:0}.hero h1{font-size:clamp(2.5rem,11vw,3.5rem)}.hero-monogram{display:none}.date-lockup{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);margin-top:2.5rem}.date-lockup>p{font-size:.62rem;letter-spacing:.04em}.date-lockup strong{font-size:4.4rem}.chapter,.rsvp{padding:3rem 1.35rem}.chapter-copy h2,.details h2,.rsvp h2,.gifts h2{font-size:clamp(1.6rem,8vw,2.2rem)}.details,.gifts{padding:2.5rem 1.35rem}.rsvp-form__identity,.guest-fields__list{grid-template-columns:1fr}.rsvp-form .button,.gifts .button{width:100%}.invitation-footer p{font-size:clamp(1.4rem,5vw,2rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.hero-monogram svg{position:absolute;bottom:-2.2rem;left:0;width:100%;height:auto;max-width:100%;fill:none;stroke:var(--silver);stroke-width:1}.detail-item svg{width:2.2rem;height:2.2rem;max-width:100%;fill:none;stroke:var(--mist);stroke-width:1.4}.invitation-footer svg{width:min(100%,16rem);height:auto;max-width:100%}

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,340;0,9..144,440;1,9..144,420&family=Work+Sans:wght@400;500&display=swap');

.scene{
  position:relative;
  min-height:780px;
  font-family:'Work Sans', sans-serif;
  color:var(--paper);
}
.photo{
  position:absolute;
  inset:0;
  background-image:url('assets/casal.jpg');
  background-size:cover;
  background-position:50% 22%;
  z-index:0;
}
.scrim{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(14,22,29,.6) 0%, rgba(14,22,29,.05) 22%, rgba(14,22,29,0) 45%, rgba(14,22,29,.55) 78%, rgba(14,22,29,.95) 100%);
  z-index:1;
}

.hero-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 26px;
  position:absolute;
  top:0; left:0; right:0;
  z-index:5;
}
.hero-nav .mark{
  font-family:'Fraunces', serif;
  font-weight:440;
  font-size:20px;
  letter-spacing:1px;
  color:var(--paper);
}
.hero-nav .mark span{color:var(--wash);}
.hero-nav .links{display:flex; gap:22px;}
.hero-nav .links a{
  color:var(--paper-deep);
  text-decoration:none;
  font-size:12.5px;
  letter-spacing:.4px;
}

.hero-content{
  position:relative;
  z-index:3;
  padding:26px 26px 40px;
  padding-top:40px; /* Reduced to move text up */
}
.hero-content .kicker{
  font-size:13px;
  color:var(--paper-deep);
  max-width:240px;
  line-height:1.5;
  margin-bottom:12px;
}
.hero-content h1{
  font-family:'Fraunces', serif;
  font-weight:340;
  font-size:50px;
  line-height:0.98;
  color:var(--paper);
  text-shadow:0 2px 18px rgba(0,0,0,.4);
  margin: 0;
}
.hero-content h1 em{
  font-style:italic;
  font-weight:420;
  color:var(--wash);
}
.hero-content .couple{
  margin-top:16px;
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:19px;
  color:var(--mist);
  text-shadow:0 2px 12px rgba(0,0,0,.4);
}

.hero-content .spacer{ height:250px; /* Reduced from 330px to move text up */ }

.hero-content .dateline{
  padding-top:18px;
  border-top:1px solid rgba(246,240,229,.22);
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
  font-size:14.5px;
  color:var(--paper);
}
.hero-content .dateline .sep{color:var(--wash);}
.hero-content .dateline .muted{color:var(--paper-deep);}

.hero-content .desc{
  margin-top:20px;
  font-family:'Fraunces', serif;
  font-weight:340;
  font-size:18px;
  line-height:1.55;
  color:var(--paper-deep);
  max-width:320px;
}

.hero-content .actions{
  margin-top:30px;
  display:flex;
  align-items:center;
  gap:12px;
}
.hero-content .btn-primary{
  background:var(--paper);
  color:var(--ink-deep);
  border:none;
  font-family:'Work Sans', sans-serif;
  font-weight:500;
  font-size:12.5px;
  padding:13px 18px;
  border-radius:2px;
  cursor:pointer;
  letter-spacing:.2px;
  text-decoration:none;
  white-space:nowrap;
}
.hero-content .btn-secondary{
  color:var(--paper);
  text-decoration:none;
  font-size:14.5px;
  border-bottom:1px solid rgba(246,240,229,.4);
  padding-bottom:3px;
}
.hero-content .actions .btn-primary + .btn-primary{
  background:transparent;
  color:var(--paper);
  border:1px solid rgba(246,240,229,.55);
}

@media (max-width:380px){
  .hero-content h1{font-size:42px;}
  .hero-content .spacer{height:200px;}
  .hero-content .btn-primary{padding:11px 14px; font-size:11.5px;}
}

/* RSVP UI Additions */
.search-group { display: flex; gap: 0.5rem; align-items: stretch; }
.search-group input { flex: 1 1 auto; width: auto; min-width: 0; }
.search-group .button { flex: 0 0 auto; width: auto; margin-top: 0; justify-self: auto; }
.search-results-grid { margin-top: 1rem; display: grid; gap: 0.5rem; }
.search-result-btn {
  text-align: left;
  justify-content: flex-start;
  background: #f7f7f4;
  color: var(--deep);
  border: 1px solid var(--line);
}
.selection-title { font-family: var(--display); font-size: 1.8rem; margin: 0 0 0.5rem; }
.attendance-toggle-wrap { margin-bottom: 1.5rem; }
.attendance-toggle-wrap p { color: #405775; font-size: 0.9rem; margin: 0 0 0.75rem; font-weight: 600; }
.attendance-radio-label { display: flex; gap: 0.5rem; align-items: center; margin-bottom: 0.5rem; cursor: pointer; }
.companions-intro { color: #405775; font-size: 0.9rem; margin: 0 0 1.5rem; }
.checkbox-list-grid { display: grid; gap: 0.75rem; margin-bottom: 1.5rem; }
.companion-checkbox-label {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  padding: 0.75rem;
  background: #fff;
  border: 1px solid var(--line);
  cursor: pointer;
}
.companion-checkbox-label input {
  width: auto;
  margin: 0;
}
.companion-checkbox-label span {
  font-weight: 600;
}
.btn-full-width { width: 100%; }
.btn-back-search {
  width: 100%;
  margin-bottom: 2rem;
  background: transparent;
  border: 1px solid var(--line);
  color: var(--deep);
}
.form-consent-label {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  cursor: pointer;
  margin-bottom: 1.5rem;
}
.form-consent-label input {
  margin-top: 0.25rem;
  width: auto;
}
.status-msg {
  margin-top: 1rem;
  padding: 0.75rem;
  background: #fff;
}
.status-msg--error { border-left: 3px solid var(--danger); color: var(--danger); }
.status-msg--success { border-left: 3px solid var(--success); color: var(--success); margin-top: 1.5rem; }
