@import url("https://fonts.googleapis.com/css2?family=Prata&display=swap");
@font-face{font-family:Display;src:local('Bodoni 72'),local('Bodoni MT')}*{box-sizing:border-box}body{margin:0;background:#f8edda;color:#aa1720;font-family:Georgia,serif}.page{margin:12px;border:2px solid #b91921;outline:1px solid #b91921;outline-offset:5px;border-radius:24px;overflow:hidden;background:radial-gradient(ellipse at 20% 35%,#fff7e8,#f5e6ce)}.wedding-header{display:flex;align-items:center;justify-content:space-between;padding:24px 5%;position:relative;z-index:10}.wedding-header>a{font-size:clamp(22px,3vw,36px);text-decoration:none;color:inherit}.wedding-header button{background:none;border:0;color:inherit;font:16px Georgia;cursor:pointer}.wedding-header nav{position:absolute;right:4%;top:75%;padding:20px;background:#fff4df;border:1px solid #b91921;box-shadow:0 8px 20px #0002}.wedding-header nav a{display:block;color:inherit;padding:10px}h1,h2{font-family:Display,'Times New Roman',serif;font-weight:400;text-align:center}h1{font-size:clamp(27px,6vw,76px);letter-spacing:-.03em;margin:38px 10px 55px}h2{font-size:clamp(28px,4vw,48px);margin:0 0 12px}section>p{text-align:center;color:#555;font-size:clamp(14px,2vw,20px);margin:0 20px 35px}.cards{position:relative;width:88%;margin:auto;height:105vw;max-height:1000px}.card{position:absolute;width:56%;border:0;padding:0;background:none;cursor:pointer;transition:filter .18s;filter:drop-shadow(0 5px 5px #583b232b)}.card img{width:100%;display:block}.card-0{top:0;left:0;transform:rotate(5deg)}.card-1{top:6%;right:0;transform:rotate(6deg)}.card-2{top:29%;left:1%;transform:rotate(-5deg)}.card-3{top:36%;right:0;transform:rotate(7deg)}.card-4{top:61%;left:23%;transform:rotate(7deg)}@media(hover:hover){.card:hover{filter:brightness(.76) drop-shadow(0 7px 7px #583b2344)}}.card.flash{filter:brightness(.7)}button:focus-visible,a:focus-visible{outline:3px solid #284c64;outline-offset:5px}dialog{border:0;padding:34px 18px;background:transparent;max-width:100vw;max-height:95dvh;overflow:auto}dialog::backdrop{background:#251b18ad;backdrop-filter:blur(3px)}.modal-card{position:relative;width:min(1000px,88vw)}.modal-card>img{display:block;width:100%}.close{position:absolute;right:-12px;top:-18px;border:1px solid #a31b25;border-radius:50%;background:#fff3df;color:#a31b25;width:38px;height:38px;font-size:28px;cursor:pointer}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media (width < 850px) {
  .card-3 { z-index: 1; }
}
@media(min-width:850px){
  .cards{width:96%;height:auto;max-height:none;aspect-ratio:1.62;isolation:isolate}
  .cards .card{width:32%;right:auto}
  .card-0{left:4%;top:12%;transform:rotate(-24deg)}
  .card-1{left:34%;top:6%;transform:rotate(-4deg);z-index:2}
  .card-2{left:64%;top:15%;transform:rotate(27deg)}
  .card-3{left:20%;top:54%;transform:rotate(-19deg);z-index:1}
  .card-4{left:53%;top:57%;transform:rotate(24deg)}
}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.hero{width:100%;padding-inline:clamp(2px,.45vw,8px)}
.hero img{display:block;width:100%;height:auto}
.modal-card>a{position:absolute;left:50%;bottom:clamp(6px,1vw,10px);transform:translateX(-50%);color:#743026;font-family:Georgia,serif;font-size:clamp(11px,2vw,22px);line-height:1;text-decoration:underline;text-underline-offset:.16em;background:none;border:0;opacity:1}
.modal-card>a:hover,.modal-card>a:focus-visible{color:#9f1821}

.accommodations-title{position:relative;margin:clamp(14px,2vw,36px) auto clamp(22px,4vw,65px);min-height:clamp(78px,13vw,180px);display:grid;align-items:center;justify-items:center}
.accommodations-title h1{width:min(70%,960px);margin:0}
.accommodations-title h1 img,#stay img{display:block;width:100%;height:auto}
.room-key{position:absolute;left:2%;top:0;width:clamp(38px,12%,150px);height:auto;pointer-events:none}
#stay{width:min(48%,490px);margin:0 auto 12px}

.lodge-mobile{position:relative}
.lodge-mobile video{display:block;width:100%;height:auto;aspect-ratio:3/4}
.lodge-playback{position:absolute;right:10px;bottom:10px;border:1px solid #b91921;border-radius:4px;padding:6px 9px;background:#f8edda;color:#87141b;font:14px Georgia,serif;cursor:pointer}
.lodge-desktop{display:none}
@media(min-width:850px){
  .accommodations-hero{padding-inline:clamp(8px,1vw,20px)}
  .hero .lodge-mobile{display:none}
  .lodge-desktop{display:block;position:relative}
  .lodge-desktop video{display:block;width:100%;height:auto;aspect-ratio:16/9}
}

.wedding-footer {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  margin-top: clamp(32px, 6vw, 88px);
  min-height: clamp(245px, 31vw, 490px);
  padding: 48px 16px;
  text-align: center;
  color: #f1cea8;
  background-color: #53251f;
  font-family: Prata, Display, 'Times New Roman', serif;
}
.wedding-footer-art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}
.wedding-footer-brand {
  width: min(100%, 42rem);
  padding-inline: clamp(0px, 2vw, 24px);
  text-shadow: 0 -1px 0 #391610, 0 1px 2px #250a07;
}
.wedding-celebration {
  padding: clamp(36px, 6vw, 84px) 5% 0;
}
.wedding-celebration img {
  display: block;
  width: min(100%, 600px);
  height: auto;
  margin-inline: auto;
}
.wedding-footer p {
  margin: 0;
  font-size: calc(clamp(16px, 2vw, 22px) - 2pt);
  line-height: 1.5;
  text-transform: uppercase;
}
.wedding-footer a {
  color: inherit;
  overflow-wrap: anywhere;
  text-underline-offset: .18em;
}
.wedding-footer a:focus-visible { outline-color: #f1cea8; }
.wedding-footer .wedding-footer-credit {
  margin-top: 3em;
  font-family: "Gill Sans", "Gill Sans MT", "Trebuchet MS", sans-serif;
  font-size: clamp(10px, calc(1.3vw - 2px), 13px);
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.lodge-poster-menu .wedding-header {
  justify-content: flex-end;
}
.lodge-poster-menu .wedding-header > a {
  display: none;
}
.hero.lodge-poster {
  --poster-landscape-ratio: 1000 / 606.7;
  --poster-landscape-mask: url('assets/accommodations/lodge-cutout-desktop.svg');
  position: relative;
  padding-inline: 4%;
}
.lodge-poster .lodge-mobile {
  --poster-ratio: 1000 / 1403.533;
  --poster-mask: url('assets/accommodations/lodge-cutout-mobile.svg');
}
.lodge-poster .lodge-desktop {
  --poster-ratio: var(--poster-landscape-ratio);
  --poster-mask: var(--poster-landscape-mask);
}
.lodge-poster-still {
  --poster-ratio: var(--poster-landscape-ratio);
  --poster-mask: var(--poster-landscape-mask);
}
.lodge-poster .lodge-poster-still,
.lodge-poster .lodge-mobile video,
.lodge-poster .lodge-desktop video {
  aspect-ratio: var(--poster-ratio);
  object-fit: cover;
  mask-image: var(--poster-mask);
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
}
.lodge-poster-home {
  position: absolute;
  top: 0;
  left: 4%;
  z-index: 1;
  width: 78%;
  height: max(24px, 5vw);
}
@media (min-width: 850px) {
  .lodge-poster-home {
    width: 51%;
    height: max(24px, 4vw);
  }
}

.wedding-header .wedding-cheers {
  display: grid;
  place-items: center;
  min-width: 56px;
  min-height: 44px;
  padding: 4px;
}
.wedding-cheers svg { display: block; width: 54px; height: 34px; overflow: visible; }
.wedding-cheers .coupe { transform-origin: 18px 33px; }
.wedding-cheers .rocks { transform-origin: 52px 33px; }
.wedding-cheers.toasting .coupe { animation: wedding-cheers-coupe .46s ease-in-out; }
.wedding-cheers.toasting .rocks { animation: wedding-cheers-rocks .46s ease-in-out; }
@keyframes wedding-cheers-coupe {
  42% { transform: translateX(.1px) rotate(6deg); }
  58% { transform: rotate(-3deg); }
}
@keyframes wedding-cheers-rocks {
  42% { transform: translateX(-.1px) rotate(-6deg); }
  58% { transform: rotate(3deg); }
}
.wedding-header nav {
  top: calc(100% - 16px);
  right: 5%;
  width: min(207px, 90%);
  padding: 8px 14px;
  background: #f8edda;
}
.wedding-header nav:not([hidden]) { animation: wedding-menu-drop .18s ease-out; }
@keyframes wedding-menu-drop {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
.wedding-header nav a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  font: 400 12px Arial, sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.wedding-header nav img { display: block; flex: none; }
@media (prefers-reduced-motion: reduce) {
  .wedding-cheers.toasting .coupe,
  .wedding-cheers.toasting .rocks,
  .wedding-header nav:not([hidden]) { animation: none; }
}

@media (max-width: 849px) {
  .travel-poster .lodge-poster-still {
    --poster-ratio: 1000 / 1403.533;
    --poster-mask: url('assets/accommodations/lodge-cutout-mobile.svg');
  }
}

@media (min-width: 850px) {
  .wedding-header {
    padding-bottom: 18px;
  }

  .wedding-cheers svg {
    width: 70.2px;
    height: 44.2px;
  }
}
