:root {
  --ivory: #f3f1ee;
  --paper: #f8f7f5;
  --ink: #716b67;
  --stone: #d4d0cc;
  --wine: #7a736f;
  --blush: #f1ecea;
  --blush-deep: #e9e2e0;
}

.topbar { color: #77716d; }

.hero {
  position: relative;
  overflow: hidden;
  padding: 0;
  color: #77716d;
  padding: 0;
  background: #f8f7f5;
}

.hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  height: auto;
  pointer-events: none;
  background: url("hero-letterpress-modern.png") center / cover no-repeat;
  opacity: 1;
}

.hero-frame {
  position: relative;
  z-index: 1;
  isolation: isolate;
  min-height: 100svh;
  min-height: 100svh;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.hero-frame > * { position: relative; z-index: 1; }

.hero .eyebrow,
.hero .rule-date,
.hero .place {
  background: transparent;
  backdrop-filter: none;
}

.hero .eyebrow { padding: 5px 10px; }
.hero .place { padding: 2px 10px 5px; }

.hero-frame::before,
.hero-frame::after {
  display: none;
}

.hero h1 {
  text-shadow: none;
}

.hero h1 em {
  transform: translateY(.16em);
}

.rule-date {
  border-top-color: #777;
  border-bottom-color: #777;
}

.down { color: #77716d; }

.flourish {
  display: none;
}

.portrait-story {
  background: var(--paper);
  padding: clamp(90px, 12vw, 190px) clamp(24px, 9vw, 150px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr);
  gap: clamp(50px, 8vw, 130px);
  align-items: center;
}

.portrait-story figure {
  width: 100%;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #d8d2ca;
}

.portrait-story img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 43%;
  filter: saturate(.82) contrast(.96) brightness(1.02);
}

.portrait-copy h2 {
  font: 400 clamp(58px, 7vw, 112px)/.8 var(--serif);
  letter-spacing: -.045em;
  margin: 28px 0 48px;
}

.portrait-copy .intro-copy {
  max-width: 520px;
  padding: 0;
}

.hotels {
  padding: clamp(100px, 11vw, 170px) 8vw;
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  gap: clamp(60px, 9vw, 150px);
  background: #f2efec;
}

.hotels-heading h2 {
  font: 400 clamp(60px, 8vw, 126px)/.78 var(--serif);
  letter-spacing: -.045em;
  margin: 28px 0 42px;
}

.hotels-heading > p:last-child {
  max-width: 390px;
  font: italic 21px/1.5 var(--serif);
}

.hotel-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--stone);
}

.hotel-card {
  min-height: 330px;
  padding: 34px clamp(24px, 3vw, 45px) 38px 0;
  border-bottom: 1px solid var(--stone);
  display: flex;
  flex-direction: column;
}

.hotel-card:nth-child(even) {
  padding-left: clamp(24px, 3vw, 45px);
  border-left: 1px solid var(--stone);
}

.hotel-number,
.hotel-link {
  text-transform: uppercase;
  letter-spacing: .2em;
  font-size: 10px;
}

.hotel-card h3 {
  font: 400 clamp(32px, 3vw, 48px)/1 var(--serif);
  margin: 52px 0 18px;
}

.hotel-card p {
  max-width: 340px;
  line-height: 1.65;
  color: #7c7571;
}

.hotel-link {
  margin-top: auto;
  padding-top: 28px;
}

.planner-contact {
  padding: clamp(100px, 11vw, 170px) 8vw;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .86fr);
  gap: clamp(60px, 10vw, 160px);
  align-items: end;
  background: var(--paper);
  border-top: 1px solid #e3dfdb;
}

.planner-contact h2 {
  font: 400 clamp(58px, 7.4vw, 118px)/.8 var(--serif);
  letter-spacing: -.045em;
  margin: 28px 0 0;
}

.planner-details > p {
  max-width: 520px;
  margin: 0 0 46px;
  font: 400 clamp(22px, 2.2vw, 32px)/1.42 var(--serif);
}

.planner-details a {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 18px;
  padding: 22px 0;
  border-top: 1px solid var(--stone);
  color: inherit;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.planner-details a:last-child { border-bottom: 1px solid var(--stone); }

.planner-details a[href^="mailto:"] {
  white-space: nowrap;
  font-size: clamp(11px, 1.05vw, 15px);
}

.planner-details a span {
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: 10px;
  padding-top: 4px;
}

.rome { background: var(--paper); color: #6f6965; }
.rsvp,
.response-page { background: var(--blush); color: #746a68; }
footer { background: var(--blush-deep); color: #746a68; }

.rome-word {
  color: #f0eeeb;
  text-shadow: -1px -1px 0 rgba(255,255,255,.25), 1px 1px 0 rgba(90,80,75,.08);
}
.rome-copy .small { color: #827b77; }
.light { color: #8f817e; }
.rome .light { color: #8d8580; }
.demo { color: #8d7f7c; }
.notice { border-color: #bba9a6; }
.rsvp input,
.rsvp select,
.rsvp textarea { color: #746a68; border-bottom-color: rgba(116,106,104,.48); }
.rsvp input::placeholder,
.rsvp textarea::placeholder { color: #9b8f8c; }
.rsvp .choices label { border-color: rgba(116,106,104,.38); }
.rsvp .code-form button,
.rsvp .submit { background: #756b69; color: #faf6f4; }
.response-page a { color: #746a68; }

@media (max-width: 760px) {
  .hero::before { opacity: .58; }
  .portrait-story {
    grid-template-columns: 1fr;
    gap: 52px;
    padding: 74px 18px 90px;
  }
  .portrait-story figure { aspect-ratio: 4 / 5; }
  .portrait-copy { padding: 0 4vw; }
  .portrait-copy h2 { font-size: 22vw; margin-bottom: 36px; }
  .hotels { grid-template-columns: 1fr; gap: 54px; padding: 90px 7vw; }
  .hotel-list { grid-template-columns: 1fr; }
  .hotel-card,
  .hotel-card:nth-child(even) { min-height: 290px; padding: 30px 0 34px; border-left: 0; }
  .planner-contact { grid-template-columns: 1fr; gap: 54px; padding: 90px 7vw; }
  .planner-contact h2 { font-size: 19vw; }
  .planner-details a { grid-template-columns: 1fr; gap: 8px; }
  .topbar nav {
    background: #fff;
    color: #77716d;
    border: 1px solid #d6d6d2;
  }
}


/* 2026-10-05 blush editorial refinement */
:root{
  --ivory:#f5f0ec;
  --paper:#fbf8f5;
  --ink:#5f5552;
  --stone:#d9ccc6;
  --wine:#9d7774;
  --blush:#eadbd6;
  --blush-deep:#ddc7c1;
  --blush-soft:#f3e9e5;
  --rose:#b58f89;
  --rose-dark:#7f6662;
  --gold:#b49a82;
}
body{background:var(--paper);color:var(--ink)}
.topbar{color:var(--rose-dark);padding:26px 4vw}
.topbar nav a{font-size:10px;letter-spacing:.2em}
.hero{
  min-height:100svh;
  background:
    radial-gradient(circle at 20% 15%,rgba(255,255,255,.85),transparent 30%),
    radial-gradient(circle at 80% 70%,rgba(210,181,174,.18),transparent 36%),
    linear-gradient(145deg,#f8f3ef 0%,#efe2de 58%,#e3d0cb 100%);
  color:var(--rose-dark);
  padding:22px;
}
.hero::before{
  background:
    radial-gradient(rgba(127,102,98,.08) .6px,transparent .7px),
    radial-gradient(rgba(180,154,130,.08) .55px,transparent .7px);
  background-size:11px 13px,17px 19px;
  background-position:0 0,7px 8px;
  opacity:.55;
}
.hero-frame{
  min-height:calc(100svh - 44px);
  border:1px solid rgba(181,143,137,.42);
}
.hero-frame::before,.hero-frame::after{display:block;border-color:rgba(181,143,137,.32)}
.hero-frame::before{border-right:0;border-bottom:0}
.hero-frame::after{border-left:0;border-top:0}
.hero h1{color:var(--rose-dark);margin:8vh 0 5vh}
.hero .eyebrow,.hero .place{color:var(--rose-dark)}
.rule-date{border-color:rgba(127,102,98,.42)}
.down{color:var(--rose-dark)}
.portrait-story{
  background:var(--paper);
  padding:clamp(100px,11vw,170px) clamp(24px,8vw,130px);
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  gap:clamp(50px,8vw,120px);
}
.portrait-story figure{position:relative}
.portrait-story figure:after{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.66);pointer-events:none}
.portrait-story img{filter:saturate(.88) contrast(.97) brightness(1.03)}
.portrait-copy .kicker{color:var(--rose)}
.portrait-copy h2{color:var(--rose-dark)}
.portrait-copy .intro-copy{font-size:clamp(22px,2.2vw,32px);line-height:1.4}
.rome{
  min-height:82svh;
  background:var(--blush);
  color:var(--rose-dark);
  padding:10vw;
}
.rome-word{
  color:rgba(255,255,255,.26);
  text-shadow:none;
  font-size:29vw;
}
.rome-copy .kicker,.rome .light{color:var(--rose)}
.rome-copy .small{color:#8f7772}
.hotels{
  background:var(--ivory);
  padding:clamp(100px,11vw,170px) 8vw;
}
.hotels-heading .kicker{color:var(--rose)}
.hotels-heading h2{color:var(--rose-dark)}
.hotel-list{border-top-color:var(--gold)}
.hotel-card,.hotel-card:nth-child(even){border-color:var(--stone)}
.hotel-number,.hotel-link{color:var(--rose)}
.hotel-card h3{color:var(--rose-dark)}
.hotel-card p{color:#766966}
.weekend{
  background:var(--paper);
  padding:clamp(100px,11vw,170px) 8vw;
}
.weekend .kicker{color:var(--rose)}
.weekend h2{color:var(--rose-dark)}
.event-list{border-top-color:var(--gold)}
.event-list article{padding:45px 0;border-bottom-color:var(--stone)}
.event-list article>span{color:var(--rose)}
.event-list h3{font-size:clamp(38px,4vw,55px);color:var(--rose-dark)}
.event-list p{color:#7c706c}
.planner-contact{
  background:var(--ivory);
  border-top:1px solid var(--stone);
  padding:clamp(100px,11vw,170px) 8vw;
}
.planner-contact .kicker{color:var(--rose)}
.planner-contact h2{color:var(--rose-dark)}
.planner-details a{border-color:var(--gold)}
.rsvp{
  background:var(--rose-dark);
  color:#fbf7f4;
  padding:clamp(100px,11vw,170px) 8vw;
}
.rsvp .light{color:#d9c2bc}
.rsvp input,.rsvp select,.rsvp textarea{color:#fff;border-bottom-color:rgba(255,255,255,.42)}
.rsvp input::placeholder,.rsvp textarea::placeholder{color:#d6c7c3}
.rsvp .choices label{border-color:rgba(255,255,255,.3)}
.rsvp .code-form button,.rsvp .submit{background:#eadbd6;color:var(--rose-dark)}
footer{background:var(--blush-deep);color:var(--rose-dark)}
footer p i{color:var(--rose)}
@media(max-width:760px){
  .hero{padding:10px}
  .hero-frame{min-height:calc(100svh - 20px)}
  .hero::before{opacity:.45}
  .portrait-story{padding:80px 18px}
  .rome{padding:110px 7vw}
  .hotels,.weekend,.planner-contact,.rsvp{padding:90px 7vw}
}

/* 2026-10-05 monogram + champagne gold refinement */
:root{
  --champagne:#b89d78;
  --champagne-soft:#d7c3a7;
  --taupe:#7c6f68;
}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.monogram-image{display:block;width:54px;height:54px}
.monogram-image img{display:block;width:100%;height:100%;object-fit:contain}
.hero-monogram-image{display:block;width:clamp(220px,31vw,430px);height:auto;margin:5vh 0 4vh;object-fit:contain;filter:saturate(.92)}
.hero .eyebrow{color:var(--champagne);font-weight:500}
.rule-date{border-color:rgba(184,157,120,.6);color:var(--taupe)}
.rule-date span+span:before{color:var(--champagne)}
.hero .place{color:var(--taupe)}
.down{color:var(--champagne)}
.topbar nav a:hover,.planner-details a:hover{color:var(--champagne)}
.kicker{color:var(--champagne)}
.portrait-copy .kicker,.rome-copy .kicker,.hotels-heading .kicker,.weekend .kicker,.planner-contact .kicker{color:var(--champagne)}
.hotel-list,.event-list{border-top-color:var(--champagne)}
.hotel-card,.hotel-card:nth-child(even),.event-list article,.planner-details a{border-color:rgba(184,157,120,.45)}
.hotel-number,.hotel-link,.event-list article>span{color:var(--champagne)}
.weekend{position:relative;overflow:hidden}
.weekend>header,.weekend>.event-list{position:relative;z-index:1}
.weekend-monogram-watermark{position:absolute;z-index:0;width:min(42vw,560px);height:auto;left:2vw;bottom:-7%;opacity:.055;filter:grayscale(.3) sepia(.2)}
.rsvp{background:#7c6763}
.rsvp .light{color:var(--champagne-soft)}
.rsvp .code-form button,.rsvp .submit{background:var(--champagne-soft);color:#685753}
.rsvp input:focus,.rsvp select:focus,.rsvp textarea:focus{outline:none;border-bottom-color:var(--champagne-soft)}
footer{grid-template-columns:70px 1fr auto;gap:30px;align-items:center;background:#dfd0c9}
.footer-monogram-image{display:block;width:58px;height:auto;opacity:.92}
footer p i{color:var(--champagne)}
@media(max-width:760px){
  .monogram-image{width:46px;height:46px}
  .hero-monogram-image{width:min(78vw,360px);margin:4vh 0 3vh}
  .weekend-monogram-watermark{width:90vw;left:-22vw;bottom:3%;opacity:.045}
  footer{grid-template-columns:58px 1fr}
  footer>span{grid-column:1/-1}
  .footer-monogram-image{width:48px}
}

/* RSVP soft taupe blush override */
.rsvp{background:#e8ddd8;color:#7f6e68}
.rsvp .light{color:#a58b70}
.rsvp input,.rsvp select,.rsvp textarea{color:#7f6e68;border-bottom-color:rgba(127,110,104,.38)}
.rsvp input::placeholder,.rsvp textarea::placeholder{color:#a6958f}
.rsvp .choices label{border-color:rgba(165,139,112,.38)}
.rsvp .code-form button,.rsvp .submit{background:#a58b70;color:#fffaf6}

/* Mobile portrait fix */
@media (max-width:760px){
  .portrait-story{
    display:grid;
    grid-template-columns:1fr!important;
    gap:48px;
    padding:76px 18px 88px;
  }
  .portrait-story figure{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    aspect-ratio:4/5!important;
    overflow:hidden;
  }
  .portrait-story figure img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    object-fit:cover!important;
    object-position:50% 43%!important;
  }
}
