/* Disney's Lakeshore Lodge. Plein air at golden hour, a painter's sketchbook on Bay Lake. */
html:has(.ls) { overflow-x: clip; }
.ls {
  --ls-ink: #101227;
  --ls-night: oklch(24% 0.045 276);
  --ls-panel: #24223c;
  --ls-cream: #f6edda;
  --ls-paper: #f2e7cd;
  --ls-gold: #ebc97c;
  --ls-gold-hi: #ffe2a3;
  --ls-ember: #f2894c;
  --ls-rose: #e98f7b;
  --ls-teal: #12393f;
  --ls-soft: #c9c4d4;
  --ls-line: #403d5a;
  --ls-serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --ls-studios: #a9cfa2;
  --ls-villas: #86bfd0;
  --ls-lake-houses: #f3a862;
  --ls-suites: #ec9db5;
  --ls-sticky-top: 65px;
  --ls-ease: cubic-bezier(.22, 1, .36, 1);
  color-scheme: dark;
  color: var(--ls-cream);
  max-width: 1248px;
  margin: 0 auto 72px;
  font: 17px/1.65 var(--text);
}
.ls *, .ls *::before, .ls *::after { box-sizing: border-box; }
.ls [hidden] { display: none !important; }
.ls a { color: inherit; text-underline-offset: 4px; }
.ls button, .ls select, .ls input { font: inherit; }
.ls button { cursor: pointer; }
.ls button:disabled { cursor: default; opacity: .48; }
.ls a, .ls button, .ls select, .ls-check, .ls summary { touch-action: manipulation; -webkit-tap-highlight-color: #e6c97830; scroll-margin-top: 155px; }
.ls :is(a, button, select, input, summary):focus-visible { outline: 3px solid var(--ls-gold); outline-offset: 5px; border-radius: 2px; }
.ls h1, .ls h2, .ls h3, .ls h4, .ls p { margin: 0; }
.ls h1, .ls h2, .ls h3, .ls h4 { font-family: var(--display); font-weight: 700; text-wrap: balance; }
.ls h2 { font-size: clamp(40px, 5.2vw, 74px); line-height: 1; letter-spacing: -.045em; }
.ls h2 em, .ls h1 em {
  position: relative; display: inline-block;
  font: italic 400 1.04em/1 var(--ls-serif);
  font-variation-settings: "opsz" 144;
  letter-spacing: -.025em;
  color: var(--ls-gold);
  padding-right: .06em;
}
.ls h2 em svg, .ls h1 em svg {
  position: absolute; left: -2%; right: -4%; bottom: -.14em; width: 106%; height: .2em;
  fill: currentColor; opacity: .38; pointer-events: none;
  clip-path: inset(0 0 0 0);
}
.ls p + p { margin-top: 18px; }
.ls-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.ls-inner { padding-left: 64px; padding-right: 64px; }
.ls-bleed, .ls-hero, .ls-chapters, .ls-water, .ls-dining { width: 100vw; margin-left: calc(50% - 50vw); }
.ls-eyebrow { font: 700 11px/1.5 var(--label); text-transform: uppercase; letter-spacing: .18em; color: var(--ls-gold); margin-bottom: 22px !important; }
.ls-section-head { max-width: 780px; }
.ls-section-head > p:last-child { font-size: 17px; color: var(--ls-soft); max-width: 590px; margin-top: 28px; }
.ls section[id], .ls footer[id] { scroll-margin-top: 130px; }
.ls-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; }

.ls-button {
  position: relative; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: 22px;
  min-height: 52px; border: 1px solid #c8b383; border-radius: 999px; padding: 13px 24px;
  color: var(--ls-cream); background: transparent; text-decoration: none;
  font: 700 14px/1.4 var(--text); letter-spacing: .01em;
  transition: background-color .25s, border-color .25s, transform .25s var(--ls-ease), box-shadow .25s;
}
.ls-button:hover { background: #e6c97817; transform: translateY(-2px); }
.ls-button span { font-size: 20px; line-height: 1; transition: transform .25s var(--ls-ease); }
.ls-button:hover > span { transform: translate(3px, -1px); }
.ls-button-gold { background: linear-gradient(120deg, #f6d68d, var(--ls-gold) 45%, #e0a85d); border-color: transparent; color: #2a1f22 !important; box-shadow: 0 10px 30px -10px #f2a24e99, inset 0 1px 0 #fff6; }
.ls-button-gold:hover { background: linear-gradient(120deg, #ffe4a6, #f5d48a 45%, #eab06a); box-shadow: 0 16px 40px -12px #f2a24ebb, inset 0 1px 0 #fff8; }
.ls-button-gold::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 35%, #ffffff8c 50%, transparent 65%); transform: translateX(-120%); }
.ls-button-gold:hover::after { transform: translateX(120%); transition: transform .8s var(--ls-ease); }
.ls-text-link { display: inline-flex; gap: 12px; align-items: center; margin-top: 28px; font-size: 14px; font-weight: 700; color: var(--ls-gold) !important; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; padding-bottom: 4px; transition: background-size .35s var(--ls-ease), color .2s; }
.ls-text-link:hover { color: var(--ls-gold-hi) !important; background-size: 0 1px; background-position: 100% 100%; }
.ls-text-link span { transition: transform .25s var(--ls-ease); }
.ls-text-link:hover span { transform: translate(3px, -3px); }
.ls-note { font-size: 13px !important; line-height: 1.7; color: var(--ls-soft); }
.ls-note strong { color: var(--ls-cream); }
.ls-note a { color: var(--ls-gold); }

/* ---------- The opening spread ---------- */
.ls-hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: clamp(660px, calc(100svh - 65px), 1000px);
  background: #1c1424;
  display: flex; flex-direction: column;
}
.ls-hero-photo, .ls-hero-photo img, .ls-hero-gl, .ls-hero-shade, .ls-hero-grain { position: absolute; inset: 0; width: 100%; height: 100%; }
.ls-hero-photo { z-index: -4; }
.ls-hero-photo img { object-fit: cover; object-position: 56% 50%; transform: scale(1.04); }
.ls-hero-gl { z-index: -3; opacity: 0; transition: opacity 1.4s ease; }
.ls-hero.gl-on .ls-hero-gl { opacity: 1; }
.ls-hero-shade {
  z-index: -2;
  background:
    radial-gradient(120% 80% at 18% 78%, #120d1fd9 0%, #120d1f80 40%, transparent 70%),
    linear-gradient(90deg, #110c1ccc 0%, #110c1c55 45%, transparent 75%),
    linear-gradient(0deg, var(--ls-night) 0%, #1a1530cc 14%, transparent 42%),
    linear-gradient(180deg, #0d0a18aa 0%, transparent 22%);
}
.ls-hero-grain {
  z-index: -1; opacity: .16; mix-blend-mode: overlay; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.ls-hero-frame {
  position: relative; flex: 1;
  width: min(1376px, 100% - 64px); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 1fr;
  column-gap: 40px; padding-bottom: 112px;
}
.ls-hero-top {
  grid-column: 1 / -1;
  display: flex; justify-content: space-between; gap: 20px;
  padding: 28px 0 20px; border-bottom: 1px solid #fff5d540;
  font: 700 10px/1.4 var(--label); text-transform: uppercase; letter-spacing: .2em; color: #f7ead2;
}
.ls-hero-top a { text-decoration: none; }
.ls-hero-top a:hover { color: var(--ls-gold); }
.ls-hero-top i { font-style: normal; color: var(--ls-gold); margin: 0 6px; }
.ls-hero-copy { align-self: end; max-width: 900px; padding-top: 60px; }
.ls-hero-eyebrow { display: flex; align-items: center; gap: 12px; color: #ffecc4 !important; }
.ls-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ls-ember); box-shadow: 0 0 0 0 #f2894caa; animation: ls-pulse 2.4s infinite; }
@keyframes ls-pulse { 0% { box-shadow: 0 0 0 0 #f2894caa; } 70% { box-shadow: 0 0 0 12px #f2894c00; } 100% { box-shadow: 0 0 0 0 #f2894c00; } }
.ls h1 { margin: 0 0 30px; line-height: .8; }
.ls-h1-pre { display: block; font: italic 400 clamp(24px, 2.4vw, 34px)/1.1 var(--ls-serif); letter-spacing: -.01em; color: #fbefd8; margin: 0 0 6px 6px; }
.ls-h1-main {
  display: block;
  font: 800 clamp(84px, 13.4vw, 212px)/.82 var(--display);
  letter-spacing: -.06em;
  color: #fff8ea;
  filter: drop-shadow(0 10px 40px #1a0b1a66);
  margin-left: -.04em;
}
.ls-h1-main .ls-char { display: inline-block; will-change: transform; }
.ls-h1-main .ls-char-wrap { display: inline-block; overflow: hidden; padding: .06em .005em .08em; margin: -.06em -.005em -.08em; vertical-align: top; }
.ls h1 .ls-h1-accent {
  display: inline-block;
  font: italic 300 clamp(80px, 12.4vw, 196px)/.9 var(--ls-serif);
  font-variation-settings: "opsz" 144;
  letter-spacing: -.04em;
  margin: -.06em 0 0 clamp(60px, 15vw, 260px);
  background: linear-gradient(100deg, #ffe7ad 0%, #f6c873 30%, #f0904f 62%, #ffd38a 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: ls-sheen 9s ease-in-out infinite alternate;
  padding: 0 .1em .06em 0;
}
.ls h1 .ls-h1-accent svg { color: #f4b062; opacity: .55; bottom: -.04em; height: .14em; }
@keyframes ls-sheen { to { background-position: 100% 0; } }
.ls-hero-deck { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; color: #f8efe2; max-width: 430px; text-wrap: pretty; }
.ls-hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 32px; flex-wrap: wrap; }
.ls-hero-secondary { display: inline-flex; align-items: center; gap: 14px; min-height: 48px; font-size: 14px; font-weight: 700; text-decoration: none; border-bottom: 1px solid #f5e7c968; transition: color .2s, border-color .2s; }
.ls-hero-secondary:hover { border-color: var(--ls-gold); color: var(--ls-gold); }

.ls-countdown {
  align-self: end; justify-self: end;
  width: 340px; padding: 22px 24px 20px;
  border: 1px solid #ffffff2b; border-radius: 22px;
  background: linear-gradient(160deg, #ffffff1f, #ffffff08 60%), #1a12224d;
  backdrop-filter: blur(16px) saturate(1.3); -webkit-backdrop-filter: blur(16px) saturate(1.3);
  box-shadow: 0 30px 60px -30px #0008, inset 0 1px 0 #ffffff30;
}
.ls-cd-label { font: 700 10px/1.4 var(--label); letter-spacing: .18em; text-transform: uppercase; color: #ffe8c0; }
.ls-cd-units { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1fr; gap: 8px; margin: 16px 0 14px; }
.ls-cd-units > div { display: flex; flex-direction: column; align-items: center; padding: 10px 0 8px; border-radius: 12px; background: #0e0a1866; box-shadow: inset 0 1px 0 #ffffff14, inset 0 -12px 20px -14px #000c; position: relative; overflow: hidden; }
.ls-cd-units > div::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: #00000059; box-shadow: 0 1px 0 #ffffff0d; }
.ls-cd-units b { font: 500 30px/1.05 var(--ls-serif); font-variation-settings: "opsz" 72; font-variant-numeric: tabular-nums lining-nums; color: #fff7e6; letter-spacing: -.02em; }
.ls-cd-units > div:first-child b { color: var(--ls-gold); }
.ls-cd-units b.tick { animation: ls-tick .5s var(--ls-ease); }
@keyframes ls-tick { from { transform: translateY(-30%); opacity: .2; } to { transform: none; opacity: 1; } }
.ls-cd-units span { font: 600 9px/1.4 var(--label); letter-spacing: .14em; text-transform: uppercase; color: #d9cfe0; margin-top: 3px; }
.ls-cd-date { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 13px; font-weight: 700; }
.ls-cd-date span { font-size: 11px; font-weight: 500; color: #d8cfdd; }

.ls-photo-note { position: absolute; left: max(32px, calc(50% - 688px)); bottom: 30px; border-left: 2px solid #e6c9788c; padding-left: 14px; color: #e1d9d2; z-index: 1; }
.ls-photo-note > span { font: 700 9px/1.5 var(--label); letter-spacing: .14em; text-transform: uppercase; color: #f1d8a6; }
.ls-photo-note p { font-size: 11px; line-height: 1.65; margin-top: 4px; }
.ls-photo-break { display: none; }
.ls-scroll-cue { position: absolute; left: 50%; bottom: 26px; translate: -50% 0; width: 26px; height: 42px; border: 1.5px solid #ffffff80; border-radius: 14px; z-index: 1; }
.ls-scroll-cue span { position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 2px; background: var(--ls-gold); animation: ls-cue 1.8s var(--ls-ease) infinite; }
@keyframes ls-cue { 0% { transform: translateY(0); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(16px); opacity: 0; } }

.ls-byline { display: flex; gap: 22px; align-items: center; padding-top: 26px; padding-bottom: 22px; font-size: 13px; color: var(--ls-soft); }
.ls-avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font: 700 11px/1 var(--label); letter-spacing: .04em; color: #2a1f22; background: linear-gradient(135deg, #f6d68d, #e08a55); }
.ls-byline a { color: var(--ls-cream); text-decoration: none; font-weight: 700; }
.ls-byline a:hover { color: var(--ls-gold); }
.ls-status { margin-left: auto; display: flex; align-items: center; gap: 9px; padding: 6px 13px; border: 1px solid #adcfb555; border-radius: 999px; font-size: 12px; color: #d6ead9; }
.ls-status i { width: 7px; height: 7px; border-radius: 50%; background: #adcfb5; box-shadow: 0 0 10px #adcfb5; }

/* ---------- Chapter navigation stays below the shared site header ---------- */
.ls-chapters {
  position: sticky; top: var(--ls-sticky-top); z-index: 50;
  background: #15162cdb; backdrop-filter: blur(18px) saturate(1.4); -webkit-backdrop-filter: blur(18px) saturate(1.4);
  border-block: 1px solid #ffffff14;
  padding: 0 max(32px, calc(50vw - 600px));
  box-shadow: 0 14px 30px -18px #0009;
}
.ls-chapter-links { display: flex; justify-content: space-between; gap: 24px; }
.ls-chapters a { display: flex; gap: 10px; align-items: center; min-height: 58px; position: relative; white-space: nowrap; font-size: 13px; font-weight: 700; text-decoration: none; color: #e6dfd2; transition: color .2s; }
.ls-chapters a > span { font: 500 11px/1 var(--ls-serif); font-style: italic; font-variant-numeric: tabular-nums; color: #a9a2b8; }
.ls-chapters a::after { content: ""; position: absolute; inset: auto 0 -1px; height: 2px; background: var(--ls-gold); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ls-ease); }
.ls-chapters a:hover, .ls-chapters a[aria-current="location"] { color: var(--ls-gold); }
.ls-chapters a[aria-current="location"] > span { color: var(--ls-gold); }
.ls-chapters a[aria-current="location"]::after { transform: scaleX(1); }
.ls-chapter-menu { display: none; }
.ls-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: transparent; pointer-events: none; }
.ls-progress i { display: block; height: 100%; background: linear-gradient(90deg, #f0904f, var(--ls-gold), #fff1c6); transform: scaleX(0); transform-origin: left; box-shadow: 0 0 12px #f5b25e; }

/* ---------- The short version ---------- */
.ls-intro { display: grid; grid-template-columns: 1fr 1.05fr; gap: 40px 72px; padding-top: 110px; padding-bottom: 100px; }
.ls-intro .ls-lede { font: 400 clamp(22px, 2vw, 27px)/1.45 var(--ls-serif); font-variation-settings: "opsz" 36; color: var(--ls-cream); letter-spacing: -.01em; text-wrap: pretty; }
.ls-intro .ls-lede::first-letter { float: left; font: italic 400 4.1em/.78 var(--ls-serif); font-variation-settings: "opsz" 144; color: var(--ls-gold); margin: .06em .1em 0 -.02em; }
.ls-intro-body > p:not(.ls-lede) { font-size: 16px; color: var(--ls-soft); }
.ls-stats { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 30px 0 0; border-top: 1px solid var(--ls-line); }
.ls-stats > div { padding: 26px 22px 0 0; border-right: 1px solid var(--ls-line); padding-left: 22px; }
.ls-stats > div:first-child { padding-left: 0; }
.ls-stats > div:last-child { border-right: 0; }
.ls-stats dt { font: 700 10px/1.5 var(--label); letter-spacing: .15em; text-transform: uppercase; color: var(--ls-soft); }
.ls-stats dd { margin: 10px 0 0; font: 400 clamp(46px, 5.4vw, 78px)/1 var(--ls-serif); font-variation-settings: "opsz" 144; font-variant-numeric: tabular-nums lining-nums; letter-spacing: -.04em; background: linear-gradient(180deg, #fff3d6, var(--ls-gold) 70%, #e2955a); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- Reservation dates on paper tickets ---------- */
.ls-booking { position: relative; padding-top: 90px; padding-bottom: 80px; }
.ls-booking::before { content: ""; position: absolute; left: 64px; right: 64px; top: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--ls-line) 20%, var(--ls-line) 80%, transparent); }
.ls-dates { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; list-style: none; margin: 54px 0 0; padding: 0; perspective: 1200px; }
.ls-dates li {
  --notch: 13px;
  position: relative; display: flex; flex-direction: column; min-width: 0;
  border-radius: 18px;
  filter: drop-shadow(0 24px 30px #07051a66);
  transition: transform .5s var(--ls-ease);
}
.ls-dates li:nth-child(1) { transform: rotate(-1.4deg); }
.ls-dates li:nth-child(2) { transform: rotate(.6deg) translateY(10px); }
.ls-dates li:nth-child(3) { transform: rotate(1.6deg); }
.ls-dates li:hover { transform: rotate(0) translateY(-10px); }
.ls-ticket-stub {
  position: relative; padding: 24px 26px 26px; border-radius: 18px 18px 0 0;
  background:
    radial-gradient(140% 120% at 100% 0%, #f2894c55, transparent 55%),
    radial-gradient(120% 100% at 0% 100%, #5a3f7a88, transparent 60%),
    #1b1633;
  color: var(--ls-cream);
  -webkit-mask: radial-gradient(circle var(--notch) at 0 100%, #0000 98%, #000) 0 0 / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, #0000 98%, #000) 100% 0 / 51% 100% no-repeat;
          mask: radial-gradient(circle var(--notch) at 0 100%, #0000 98%, #000) 0 0 / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 100%, #0000 98%, #000) 100% 0 / 51% 100% no-repeat;
  display: flex; justify-content: space-between; align-items: flex-start; gap: 10px;
}
.ls-dates time { display: grid; grid-template-columns: auto 1fr; align-items: end; }
.ls-dates time > span { grid-column: 1 / -1; font: 700 11px/1.4 var(--label); text-transform: uppercase; letter-spacing: .2em; color: var(--ls-gold); }
.ls-dates time strong { font: 400 96px/1 var(--ls-serif); font-variation-settings: "opsz" 144; letter-spacing: -.05em; margin-top: 4px; }
.ls-dates time small { padding: 0 0 16px 10px; font-size: 12px; color: #cfc6dc; }
.ls-when { font: 700 11px/1 var(--label); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; padding: 8px 11px; border-radius: 999px; border: 1px solid #ebc97c88; color: var(--ls-gold); background: #ebc97c14; }
.ls-when[data-state="today"] { background: var(--ls-ember); border-color: var(--ls-ember); color: #2a1513; animation: ls-glow 1.6s ease-in-out infinite alternate; }
.ls-when[data-state="open"] { background: #adcfb526; border-color: #adcfb5; color: #cfe8d2; }
@keyframes ls-glow { from { box-shadow: 0 0 0 0 #f2894c00; } to { box-shadow: 0 0 22px 2px #f2894c99; } }
.ls-ticket-body {
  position: relative; flex: 1; padding: 26px 26px 22px; border-radius: 0 0 18px 18px;
  background: linear-gradient(180deg, #f7eed8, var(--ls-paper));
  color: #2a2536;
  -webkit-mask: radial-gradient(circle var(--notch) at 0 0, #0000 98%, #000) 0 0 / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, #0000 98%, #000) 100% 0 / 51% 100% no-repeat;
          mask: radial-gradient(circle var(--notch) at 0 0, #0000 98%, #000) 0 0 / 51% 100% no-repeat, radial-gradient(circle var(--notch) at 100% 0, #0000 98%, #000) 100% 0 / 51% 100% no-repeat;
}
.ls-ticket-body::before { content: ""; position: absolute; left: 22px; right: 22px; top: 0; border-top: 2px dashed #6b5d5640; }
.ls-ticket-kicker { font: italic 500 15px/1.3 var(--ls-serif); color: #a2532c; }
.ls-dates h3 { font-size: 22px; line-height: 1.18; margin: 8px 0 10px; letter-spacing: -.02em; min-height: 52px; }
.ls-dates .ls-ticket-body > p:not(.ls-ticket-kicker) { font-size: 14px; line-height: 1.55; color: #4b4453; }
.ls-dates a { display: inline-flex; gap: 12px; align-items: center; min-height: 44px; margin-top: 14px; padding: 0 16px; border-radius: 999px; background: #2a2536; color: #f7eed8; font-size: 13px; font-weight: 700; text-decoration: none; transition: background-color .2s; }
.ls-dates a:hover { background: #a2532c; }
.ls-dates a:focus-visible { outline-color: #3d3549; }
.ls-arrival-line { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 22px; margin: 44px 0 34px; }
.ls-line-track { position: relative; height: 2px; background: repeating-linear-gradient(90deg, #ebc97c55 0 8px, transparent 8px 16px); }
.ls-line-track i { position: absolute; inset: 0; background: linear-gradient(90deg, #ebc97c, #f2894c); transform: scaleX(var(--fill, 0)); transform-origin: left; }
.ls-line-track::before { content: ""; position: absolute; left: 0; top: 50%; width: 10px; height: 10px; margin-top: -5px; border-radius: 50%; background: var(--ls-gold); }
.ls-line-end { display: flex; flex-direction: column; align-items: flex-end; font-size: 12px; color: var(--ls-soft); text-align: right; padding: 12px 18px; border: 1px solid #ebc97c66; border-radius: 14px; background: #ebc97c0d; }
.ls-line-end b { font: italic 400 24px/1.1 var(--ls-serif); color: var(--ls-gold); }
.ls-booking-detail { border-block: 1px solid var(--ls-line); }
.ls-booking-detail summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 15px; font-weight: 700; }
.ls-booking-detail summary > span { color: var(--ls-gold); font-size: 24px; transition: transform .3s var(--ls-ease); }
.ls-booking-detail > div { padding-bottom: 24px; max-width: 890px; color: var(--ls-soft); font-size: 15px; }
.ls-inline-links { display: flex; gap: 12px 27px; flex-wrap: wrap; margin-top: 15px; }
.ls-inline-links a { color: var(--ls-gold); font-size: 13px; }

/* ---------- Rooms ---------- */
.ls-rooms { padding-top: 70px; padding-bottom: 96px; }
[data-family="studios"] { --fam: var(--ls-studios); }
[data-family="villas"] { --fam: var(--ls-villas); }
[data-family="lake-houses"] { --fam: var(--ls-lake-houses); }
[data-family="suites"] { --fam: var(--ls-suites); }
.ls-skyline { position: relative; margin-top: 54px; padding: 30px 30px 22px; border-radius: 24px; background: radial-gradient(120% 140% at 50% 120%, #f2894c22, transparent 60%), linear-gradient(180deg, #1a1a35, #201d3a); border: 1px solid #ffffff12; overflow: hidden; }
.ls-skyline::before { content: ""; position: absolute; left: 0; right: 0; bottom: 92px; height: 1px; background: linear-gradient(90deg, transparent, #ebc97c55, transparent); }
.ls-skyline-label { font: italic 400 18px/1.3 var(--ls-serif); color: #e6dccb; }
.ls-skyline-bars { display: flex; align-items: flex-end; gap: clamp(6px, 1.2vw, 16px); list-style: none; margin: 18px 0 0; padding: 0; height: 290px; }
.ls-skyline-bars li { flex: 1; min-width: 0; height: 100%; transition: opacity .4s, filter .4s; }
.ls-skyline-bars li.is-out { opacity: .18; filter: grayscale(1); }
.ls-skyline-bars a { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; text-decoration: none; }
.ls-skyline-bars b { font: 400 28px/1 var(--ls-serif); font-variation-settings: "opsz" 72; color: var(--fam); margin-bottom: 10px; transition: transform .3s var(--ls-ease); }
.ls-bar {
  position: relative; width: 100%; max-width: 62px;
  height: calc(var(--h) * 1.7px);
  border-radius: 8px 8px 2px 2px;
  background: linear-gradient(180deg, var(--fam), color-mix(in oklab, var(--fam) 40%, #1a1a35));
  box-shadow: 0 0 0 1px #ffffff1a inset, 0 18px 30px -18px var(--fam);
  transform-origin: bottom; transition: transform .35s var(--ls-ease), box-shadow .3s;
}
.ls-bar::after { content: ""; position: absolute; left: 22%; right: 22%; top: 14px; bottom: 10px; background: repeating-linear-gradient(180deg, #fff3 0 6px, transparent 6px 14px); border-radius: 2px; opacity: .55; }
[data-family="lake-houses"] .ls-bar { border-radius: 2px; clip-path: polygon(50% 0, 100% 34%, 100% 100%, 0 100%, 0 34%); }
[data-family="suites"] .ls-bar { box-shadow: 0 0 0 1px #ffffff2a inset, 0 0 26px -4px var(--fam); }
.ls-bar-name { display: block; height: 70px; margin-top: 14px; font-size: 11px; line-height: 1.3; text-align: center; color: #cfc8d8; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; text-wrap: balance; }
.ls-skyline-bars a:hover .ls-bar, .ls-skyline-bars a:focus-visible .ls-bar { transform: scaleY(1.05); box-shadow: 0 0 0 1px #fff5 inset, 0 0 34px -4px var(--fam); }
.ls-skyline-bars a:hover b { transform: translateY(-6px); }
.ls-legend { display: flex; flex-wrap: wrap; gap: 8px 22px; list-style: none; margin: 8px 0 0; padding: 14px 0 0; border-top: 1px solid #ffffff12; font-size: 12px; color: var(--ls-soft); }
.ls-legend li { display: flex; align-items: center; gap: 8px; }
.ls-legend li::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--fam); }

.ls-room-tool { margin-top: 34px; }
.ls-filters { position: relative; background: linear-gradient(180deg, #2a2744, #24223c); border: 1px solid #ffffff17; border-radius: 22px; padding: 26px 28px 4px; box-shadow: 0 30px 60px -40px #000; }
.ls-filters::before { content: ""; position: absolute; left: 28px; right: 28px; top: -1px; height: 2px; background: linear-gradient(90deg, transparent, var(--ls-gold), transparent); }
.ls-filter-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 22px; }
.ls-filter-heading h3 { font: italic 400 26px/1.2 var(--ls-serif); letter-spacing: -.01em; }
.ls-filter-heading p { font-size: 13px; color: var(--ls-soft); }
.ls-filter-controls { display: grid; grid-template-columns: 1fr 1.35fr 1.15fr; gap: 22px; align-items: end; }
.ls-filter-controls > label:not(.ls-check) { font-size: 12px; font-weight: 700; display: flex; flex-direction: column; gap: 9px; letter-spacing: .02em; }
.ls select {
  width: 100%; min-height: 50px; border: 1px solid #ffffff26; border-radius: 14px;
  background: #1a1830 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23ebc97c' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") right 16px center no-repeat;
  appearance: none; -webkit-appearance: none;
  color: var(--ls-cream); padding: 10px 40px 10px 16px; font-size: 15px; transition: border-color .2s;
}
.ls select:hover { border-color: #ebc97c88; }
.ls-check { display: flex; align-items: center; gap: 12px; min-height: 50px; font-size: 13px; line-height: 1.45; cursor: pointer; padding: 0 16px; border: 1px solid #ffffff1a; border-radius: 14px; transition: border-color .2s, background-color .2s; }
.ls-check:has(input:checked) { border-color: var(--ls-gold); background: #ebc97c12; }
.ls-check input { flex: none; width: 20px; height: 20px; accent-color: var(--ls-gold); margin: 0; }
.ls-filter-status { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-top: 22px; border-top: 1px solid #ffffff17; padding: 8px 0; }
.ls-filter-status p { font-size: 13px; color: #ece0c1; }
.ls-reset { border: 0; background: transparent; min-height: 44px; padding: 6px 0; font-size: 12px !important; font-weight: 600 !important; text-decoration: underline; text-underline-offset: 4px; color: var(--ls-gold); }
.ls-reset:hover { color: #fff0c1; }
.ls-filter-status .ls-reset:disabled { opacity: .45; text-decoration: none; }
.ls-shortlist { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; margin-top: 16px; padding: 18px 22px; border: 1px solid #ebc97c55; border-radius: 18px; background: #ebc97c0d; animation: ls-rise .4s var(--ls-ease); }
.ls-shortlist .ls-eyebrow { margin-bottom: 10px !important; font-size: 9px; }
.ls-shortlist ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.ls-shortlist li { max-width: 100%; }
.ls-shortlist li button { display: flex; align-items: center; gap: 10px; min-height: 40px; max-width: 100%; padding: 7px 14px; font-size: 12px; line-height: 1.4; color: var(--ls-cream); background: #1d1a33; border: 1px solid #8b7e5d; border-radius: 999px; text-align: left; }
.ls-shortlist li button:hover { border-color: var(--ls-gold); }
.ls-shortlist li span { color: var(--ls-gold); font-size: 18px; }
.ls-shortlist > .ls-button { font-size: 13px; }
.ls-empty { margin-top: 16px; padding: 32px 20px; background: #e6c9780a; border: 1px dashed var(--ls-line); border-radius: 18px; font-size: 15px; text-align: center; }

.ls-room-table { width: 100%; border-collapse: separate; border-spacing: 0 10px; text-align: left; margin-top: 18px; }
.ls-room-table thead th { font: 700 10px/1.4 var(--label); text-transform: uppercase; letter-spacing: .14em; color: var(--ls-soft); padding: 8px 20px; }
.ls-room-table tbody tr { position: relative; transition: transform .35s var(--ls-ease); }
.ls-room-table tbody tr > * { background: #201e37; border-block: 1px solid #ffffff10; transition: background-color .3s, border-color .3s; }
.ls-room-table tbody tr > :first-child { border-left: 1px solid #ffffff10; border-radius: 16px 0 0 16px; box-shadow: inset 4px 0 0 var(--fam); }
.ls-room-table tbody tr > :last-child { border-right: 1px solid #ffffff10; border-radius: 0 16px 16px 0; }
.ls-room-table tbody tr:hover > * { background: #282544; }
.ls-room-table tbody tr[data-selected="true"] > * { background: #2d2840; border-color: #ebc97c66; }
.ls-room-table tbody tr.is-flash > * { animation: ls-flash 1.4s ease-out; }
@keyframes ls-flash { 0%, 30% { background: color-mix(in oklab, var(--fam) 26%, #201e37); } 100% { background: #201e37; } }
.ls-room-table tbody th { width: 42%; padding: 22px 20px 22px 26px; font-weight: 400; vertical-align: top; }
.ls-room-kind { font: 700 9px/1.6 var(--label); text-transform: uppercase; letter-spacing: .14em; color: var(--fam); display: block; }
.ls-room-table tbody th > strong { display: block; font: 700 21px/1.25 var(--display); letter-spacing: -.02em; margin: 4px 0 6px; }
.ls-room-table tbody small { font-size: 12.5px; color: var(--ls-soft); }
.ls-film { color: var(--fam); margin-right: 3px; }
.ls-capacity { width: 22%; padding: 20px; vertical-align: top; white-space: nowrap; }
.ls-capacity b { font: 400 40px/1 var(--ls-serif); font-variation-settings: "opsz" 144; font-variant-numeric: tabular-nums lining-nums; letter-spacing: -.03em; color: var(--ls-cream); }
.ls-capacity > span:not(.ls-pips) { font-size: 11px; color: var(--ls-soft); margin-left: 6px; }
.ls-pips { display: grid; grid-template-columns: repeat(12, 8px); gap: 4px; margin-top: 10px; }
.ls-pips i { width: 8px; height: 8px; border-radius: 50%; border: 1px solid #ffffff2e; }
.ls-pips i.on { background: var(--fam); border-color: var(--fam); box-shadow: 0 0 6px color-mix(in oklab, var(--fam) 60%, transparent); }
.ls-amenities { vertical-align: top; padding: 24px 20px; font-size: 13.5px; width: 24%; line-height: 1.55; }
.ls-amenities strong { display: block; font-weight: 600; color: var(--ls-cream); }
.ls-amenities > span { display: block; font-size: 12px; color: var(--ls-soft); margin-top: 4px; }
.ls-compare-cell { padding: 22px 22px 22px 8px; vertical-align: top; text-align: right; }
.ls-compare-cell button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; border: 1px solid #ebc97c77; border-radius: 999px; padding: 9px 16px; color: var(--ls-gold); background: transparent; font: 700 12px/1.4 var(--text); white-space: nowrap; transition: background-color .2s, border-color .2s, color .2s, transform .2s var(--ls-ease); }
.ls-compare-cell button > span { font-size: 16px; }
.ls-compare-cell button:hover:not(:disabled) { border-color: var(--ls-gold); background: #e6c97817; transform: translateY(-1px); }
.ls-compare-cell button[aria-pressed="true"] { background: var(--ls-gold); border-color: var(--ls-gold); color: #282333; }
.ls-room-details { display: inline-block; vertical-align: middle; margin: 0 0 0 12px; font-size: 12px; }
.ls-room-details[open] { display: block; margin: 6px 0 0; }
.ls-room-details summary { display: inline-flex; gap: 10px; align-items: center; min-height: 32px; cursor: pointer; list-style: none; color: var(--ls-gold); font-size: 12px; font-weight: 600; }
.ls-room-details summary > span { font-size: 16px; transition: transform .3s var(--ls-ease); }
.ls-room-details dl { margin: 10px 0 0; padding: 12px 0 0; border-top: 1px solid #ffffff17; max-width: 360px; }
.ls-room-details dl > div + div { margin-top: 12px; }
.ls-room-details dt { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: #b7aec3; }
.ls-room-details dd { margin: 3px 0 0; font-size: 13px; color: var(--ls-cream); }
.ls-capacity-note { margin-top: 10px; max-width: 900px; }

.ls-comparison { background: linear-gradient(180deg, #f7eed8, var(--ls-paper)); color: #282537; padding: 30px; margin: 24px 0 18px; border-radius: 22px; box-shadow: 0 30px 60px -30px #000a; animation: ls-rise .45s var(--ls-ease); }
.ls-comparison-head { display: flex; justify-content: space-between; align-items: center; gap: 22px; border-bottom: 1px solid #5c536240; padding-bottom: 20px; }
.ls-comparison .ls-eyebrow { color: #a2532c; font-size: 9px; margin-bottom: 8px !important; }
.ls-comparison h3 { font: italic 400 32px/1.15 var(--ls-serif); letter-spacing: -.02em; }
.ls-comparison .ls-reset { color: #514136; }
.ls-comparison :focus-visible { outline-color: #675237; }
.ls-comparison-grid { display: grid; grid-template-columns: repeat(var(--compare-count, 2), minmax(0, 1fr)); gap: 28px; margin-top: 24px; }
.ls-compare-card { min-width: 0; animation: ls-rise .4s var(--ls-ease) both; }
.ls-compare-card:nth-child(2) { animation-delay: .06s; }
.ls-compare-card:nth-child(3) { animation-delay: .12s; }
.ls-compare-card h4 { font-size: 22px; line-height: 1.2; letter-spacing: -.02em; min-height: 80px; text-wrap: initial; }
.ls-compare-card dl { margin: 0; }
.ls-compare-card dl > div { padding: 14px 0; border-top: 1px solid #5c536230; min-height: 88px; }
.ls-compare-card dt { font: 700 9px/1.5 var(--label); text-transform: uppercase; letter-spacing: .1em; color: #6f625b; }
.ls-compare-card dd { margin: 6px 0 0; font-size: 14px; line-height: 1.5; }
.ls-compare-card .ls-compare-capacity { font: 400 40px/1 var(--ls-serif); }
.ls-compare-capacity > span { font: 400 11px/1.5 var(--text); }
.ls-comparison > .ls-note { border-top: 1px solid #5c536240; padding-top: 18px; margin-top: 22px; color: #554c56; font-size: 12px !important; }
@keyframes ls-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.ls-room-aside { display: grid; grid-template-columns: 150px 1fr; gap: 36px; align-items: center; margin-top: 46px; padding: 30px 34px; border-radius: 24px; background: radial-gradient(90% 140% at 0% 100%, #f3a86233, transparent 60%), #22203a; border: 1px solid #f3a86240; }
.ls-aframe { width: 150px; overflow: visible; }
.ls-af-roof { fill: #3b2a26; stroke: var(--ls-lake-houses); stroke-width: 2; stroke-linejoin: round; }
.ls-af-glass { fill: #ffd27a; filter: drop-shadow(0 0 12px #ffbe5c); }
.ls-af-mullion { stroke: #3b2a26; stroke-width: 2.5; }
.ls-af-porch { stroke: var(--ls-lake-houses); stroke-width: 2; }
.ls-aside-label { font: 700 10px/1.6 var(--label); text-transform: uppercase; letter-spacing: .16em; color: var(--ls-lake-houses); }
.ls-room-aside h3 { font: italic 400 30px/1.15 var(--ls-serif); margin: 6px 0 10px; }
.ls-room-aside p { font-size: 15.5px; color: var(--ls-soft); max-width: 760px; }

/* ---------- Follow the water ---------- */
.ls-water {
  position: relative; isolation: isolate; overflow: hidden;
  background:
    radial-gradient(80% 50% at 80% 0%, #2b7a7a55, transparent 70%),
    radial-gradient(70% 60% at 10% 100%, #0d4d5a88, transparent 70%),
    linear-gradient(180deg, #0f343b, #0b2830 60%, #0a2229);
  color: #eef3e4; padding: 110px 0 90px;
}
.ls-water::before, .ls-water::after { content: ""; position: absolute; left: 0; right: 0; height: 90px; z-index: -1; pointer-events: none; }
.ls-water::before { top: -1px; background: linear-gradient(180deg, var(--ls-night), transparent); }
.ls-water::after { bottom: -1px; background: linear-gradient(0deg, var(--ls-night), transparent); }
.ls-water > .ls-inner { max-width: 1248px; margin: 0 auto; }
.ls-caustics {
  position: absolute; inset: -20%; z-index: -1; opacity: .11; mix-blend-mode: screen; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='480'%3E%3Cfilter id='c' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='turbulence' baseFrequency='.0125 .025' numOctaves='2' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .7 0 0 0 0 1 0 0 0 0 .95 0 0 0 -2.6 1.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23c)'/%3E%3C/svg%3E");
  background-size: 480px 480px;
  animation: ls-drift 38s linear infinite;
}
@keyframes ls-drift { to { transform: translate3d(-480px, -240px, 0); } }
.ls-water .ls-eyebrow { color: #cfe3a8; }
.ls-water h2 em { color: #a8e0cf; }
.ls-water-heading { display: flex; justify-content: space-between; gap: 50px; align-items: end; }
.ls-water-heading > p { max-width: 320px; color: #d5e4dc; font-size: 16px; }
.ls-river { position: relative; margin: 40px 0 10px; aspect-ratio: 1200 / 1000; }
.ls-river-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ls-river-svg path { fill: none; stroke-linecap: round; }
.ls-river-bank { stroke: #061a20; stroke-width: 108; opacity: .55; }
.ls-river-body { stroke: #1f6f74; stroke-width: 80; }
.ls-river-flow { stroke: #c9f1e6; stroke-width: 3; stroke-dasharray: 3 30; opacity: .55; animation: ls-flow 3.2s linear infinite; }
@keyframes ls-flow { to { stroke-dashoffset: -33; } }
.ls-river-trace { stroke: var(--ls-gold); stroke-width: 3; stroke-dasharray: 1 1; stroke-dashoffset: var(--trace, 1); filter: drop-shadow(0 0 6px #ebc97c); }
.ls-river-stops circle { fill: #0b2830; stroke: var(--ls-gold); stroke-width: 3; }
.ls-tube { position: absolute; left: 0; top: 0; width: 54px; height: 54px; margin: -27px 0 0 -27px; z-index: 2; pointer-events: none; will-change: transform; }
.ls-tube i { display: block; width: 100%; height: 100%; border-radius: 50%; background: radial-gradient(circle, transparent 0 34%, #0003 35% 38%, transparent 39%), repeating-conic-gradient(#ff8a6b 0 30deg, #fff4e6 30deg 60deg); -webkit-mask: radial-gradient(circle, transparent 0 33%, #000 34%); mask: radial-gradient(circle, transparent 0 33%, #000 34%); box-shadow: 0 8px 18px #0007; animation: ls-bob 2.6s ease-in-out infinite; }
@keyframes ls-bob { 50% { transform: rotate(18deg) scale(1.04); } }
.ls-river-stops-list { list-style: none; margin: 0; padding: 0; }
.ls-stop { position: absolute; width: 40%; }
.ls-stop-1 { left: 4%; top: 12%; }
.ls-stop-2 { left: 56%; top: 37%; }
.ls-stop-3 { left: 4%; top: 61%; }
.ls-stop-4 { left: 56%; top: 83%; }
.ls-stop > span { font: italic 400 15px/1.4 var(--ls-serif); color: #cfe3a8; }
.ls-stop h3 { font-size: clamp(30px, 3.4vw, 48px); line-height: 1; letter-spacing: -.04em; margin: 8px 0 12px; color: #effae9; }
.ls-stop-1 h3 { font: italic 400 clamp(40px, 4.6vw, 66px)/.95 var(--ls-serif); color: #bff0dc; }
.ls-stop p { font-size: 15.5px; line-height: 1.6; color: #d4e4dc; max-width: 360px; }
.ls-water .ls-text-link { color: #ece8b9 !important; }

/* ---------- Pool rules field note ---------- */
.ls-policies { display: grid; grid-template-columns: 1fr 1.2fr; gap: 72px; align-items: center; padding-top: 80px; padding-bottom: 80px; }
.ls-fieldnote { position: relative; padding: 42px 36px 38px; background: linear-gradient(180deg, #f7eed8, #efe2c4); color: #2a2536; border-radius: 4px; transform: rotate(-2deg); box-shadow: 0 30px 50px -24px #000b; }
.ls-fieldnote::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(180deg, transparent 0 31px, #5c84a92a 31px 32px); border-radius: inherit; pointer-events: none; }
.ls-tape { position: absolute; left: 50%; top: -14px; width: 120px; height: 30px; translate: -50% 0; rotate: 3deg; background: #ebc97cb3; box-shadow: 0 2px 6px #0003; clip-path: polygon(4% 0, 96% 6%, 100% 50%, 96% 100%, 3% 94%, 0 50%); }
.ls-fieldnote .ls-eyebrow { color: #a2532c; }
.ls-fieldnote h2 { font: italic 400 clamp(36px, 3.6vw, 50px)/1.05 var(--ls-serif); letter-spacing: -.02em; }
.ls-policies > div:last-child > p { font-size: 16px; color: var(--ls-soft); }
.ls-policies strong { color: var(--ls-cream); }

/* ---------- Dining as one long day ---------- */
.ls-dining { position: relative; padding: 100px 0 90px; background: linear-gradient(180deg, var(--ls-night), #171830 30%, #141428 70%, var(--ls-night)); }
.ls-dining > .ls-inner { max-width: 1248px; margin: 0 auto; }
.ls-day { display: grid; grid-template-columns: 1.05fr 1fr; gap: 64px; margin-top: 56px; align-items: start; }
.ls-sky { position: sticky; top: calc(var(--ls-sticky-top) + 84px); height: min(70vh, 620px); border-radius: 28px; overflow: hidden; isolation: isolate; box-shadow: 0 40px 80px -40px #000, inset 0 0 0 1px #ffffff1c; }
.ls-sky-layer { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.ls-sky-layer[data-layer="dawn"] { background: linear-gradient(180deg, #34437a 0%, #9b7aa6 34%, #f0a89a 58%, #fbd7a4 72%); }
.ls-sky-layer[data-layer="day"] { background: linear-gradient(180deg, #3f8fd0 0%, #87c6ea 46%, #d8efef 72%); }
.ls-sky-layer[data-layer="golden"] { background: linear-gradient(180deg, #4b3a78 0%, #c4677a 32%, #f29152 55%, #ffd27e 72%); }
.ls-sky-layer[data-layer="dusk"] { background: linear-gradient(180deg, #121844 0%, #3d2c6e 36%, #a24c7c 60%, #ec8a66 74%); }
.ls-sky-layer[data-layer="night"] { background: radial-gradient(60% 40% at 70% 20%, #2b3477, transparent 70%), linear-gradient(180deg, #04061a 0%, #0c1238 52%, #1a2152 74%); }
.ls-sky[data-sky="dawn"] [data-layer="dawn"], .ls-sky[data-sky="day"] [data-layer="day"], .ls-sky[data-sky="golden"] [data-layer="golden"], .ls-sky[data-sky="dusk"] [data-layer="dusk"], .ls-sky[data-sky="night"] [data-layer="night"] { opacity: 1; }
.ls-stars { position: absolute; inset: 0 0 30% 0; opacity: 0; transition: opacity 1.6s ease; background-image: radial-gradient(1.2px 1.2px at 12% 18%, #fff, transparent), radial-gradient(1px 1px at 28% 40%, #fff, transparent), radial-gradient(1.4px 1.4px at 44% 12%, #fff, transparent), radial-gradient(1px 1px at 63% 32%, #fff, transparent), radial-gradient(1.3px 1.3px at 78% 9%, #fff, transparent), radial-gradient(1px 1px at 88% 44%, #fff, transparent), radial-gradient(1px 1px at 6% 52%, #fff, transparent), radial-gradient(1.2px 1.2px at 52% 56%, #fff, transparent), radial-gradient(1px 1px at 36% 24%, #fffc, transparent), radial-gradient(1px 1px at 70% 58%, #fffc, transparent); animation: ls-twinkle 4s ease-in-out infinite alternate; }
@keyframes ls-twinkle { to { filter: brightness(1.6); } }
.ls-sky[data-sky="dusk"] .ls-stars { opacity: .45; }
.ls-sky[data-sky="night"] .ls-stars { opacity: 1; }
.ls-orb-track { position: absolute; left: 50%; bottom: 30%; width: 150%; aspect-ratio: 1; translate: -50% 50%; rotate: var(--orb, -64deg); transition: rotate 1.6s var(--ls-ease); pointer-events: none; }
.ls-orb { position: absolute; left: 50%; top: 6%; width: 74px; height: 74px; margin-left: -37px; border-radius: 50%; background: radial-gradient(circle at 40% 38%, #fffbe8, #ffe39a 45%, #ffb75e 75%); box-shadow: 0 0 60px 20px #ffd58a88, 0 0 140px 60px #ff9f5a44; transition: background .9s, box-shadow .9s; }
.ls-sky[data-sky="dawn"] { --orb: -58deg; }
.ls-sky[data-sky="day"] { --orb: -12deg; }
.ls-sky[data-sky="golden"] { --orb: 34deg; }
.ls-sky[data-sky="dusk"] { --orb: 47deg; }
.ls-sky[data-sky="night"] { --orb: -26deg; }
.ls-sky[data-sky="day"] .ls-orb { background: radial-gradient(circle at 40% 38%, #fff, #fff7d6 55%, #ffe9a8); box-shadow: 0 0 60px 24px #fff6, 0 0 160px 70px #fff3c433; }
.ls-sky[data-sky="dusk"] .ls-orb { background: radial-gradient(circle at 40% 38%, #ffe0b0, #ff9a5a 55%, #e2584e); box-shadow: 0 0 50px 16px #ff7a5288, 0 0 120px 50px #ff5a5a33; }
.ls-sky[data-sky="night"] .ls-orb { width: 54px; height: 54px; margin-left: -27px; background: #f4f0e2; box-shadow: inset -14px -6px 0 2px #c9c3ae, 0 0 50px 10px #dfe6ff55; }
.ls-fireworks { position: absolute; inset: 0 0 28% 0; width: 100%; height: 72%; pointer-events: none; opacity: 0; transition: opacity 1s; }
.ls-sky[data-sky="night"] .ls-fireworks { opacity: 1; }
.ls-shore { position: absolute; left: 0; right: 0; bottom: 28%; width: 100%; height: 22%; fill: #0d0e1f; }
.ls-shore-glow { fill: #ffcf73; opacity: 0; transition: opacity 1.2s; filter: drop-shadow(0 0 6px #ffcf73); }
.ls-sky:is([data-sky="dusk"], [data-sky="night"], [data-sky="golden"]) .ls-shore-glow { opacity: .9; }
.ls-water-sheen { position: absolute; left: 0; right: 0; bottom: 0; height: 28%; background: repeating-linear-gradient(180deg, #ffffff12 0 2px, transparent 2px 9px), linear-gradient(180deg, #0b0d20cc, #070816f2); }
.ls-water-sheen::before { content: ""; position: absolute; left: 30%; right: 30%; top: 0; bottom: 0; background: repeating-linear-gradient(180deg, #ffd58a66 0 2px, transparent 2px 8px); -webkit-mask: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent), linear-gradient(180deg, #000, transparent); -webkit-mask-composite: source-in; mask: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent) intersect, linear-gradient(180deg, #000, transparent); animation: ls-shimmer 3s ease-in-out infinite alternate; transition: opacity 1s; }
@keyframes ls-shimmer { to { transform: scaleX(1.3); opacity: .6; } }
.ls-sky[data-sky="night"] .ls-water-sheen::before { background: repeating-linear-gradient(180deg, #dfe6ff44 0 2px, transparent 2px 8px); }
.ls-sky-time { position: absolute; left: 28px; bottom: 22px; z-index: 2; }
.ls-sky-time span { display: inline-block; font: italic 400 clamp(30px, 3.2vw, 44px)/1 var(--ls-serif); color: #fff6e4; text-shadow: 0 4px 20px #0008; }
.ls-sky-time span.swap { animation: ls-rise .6s var(--ls-ease); }
.ls-venue-list { list-style: none; margin: 0; padding: 0 0 20vh; }
.ls-venue { min-height: 48vh; display: flex; flex-direction: column; justify-content: center; padding: 24px 0; opacity: .32; transform: translateX(14px); transition: opacity .6s, transform .6s var(--ls-ease); }
.ls-venue.is-active { opacity: 1; transform: none; }
.ls-venue-moment { display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; font: italic 400 17px/1 var(--ls-serif); color: #f6e3c0; margin-bottom: 18px; }
.ls-venue-moment i { width: 12px; height: 12px; border-radius: 50%; background: var(--sky-dot, var(--ls-gold)); box-shadow: 0 0 14px var(--sky-dot, var(--ls-gold)); }
.ls-venue[data-venue-sky="dawn"] { --sky-dot: #f7b8a0; }
.ls-venue[data-venue-sky="day"] { --sky-dot: #9fd6f2; }
.ls-venue[data-venue-sky="golden"] { --sky-dot: #ffc06b; }
.ls-venue[data-venue-sky="dusk"] { --sky-dot: #e77c8e; }
.ls-venue[data-venue-sky="night"] { --sky-dot: #c7d1ff; }
.ls-venue .ls-eyebrow { font-size: 10px; margin-bottom: 10px !important; }
.ls-venue h3 { font-size: clamp(34px, 3.6vw, 52px); line-height: 1; letter-spacing: -.045em; margin-bottom: 18px; text-wrap: initial; }
.ls-venue > p:last-child { font-size: 17px; color: var(--ls-soft); max-width: 440px; }
.ls-dining-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--ls-line); }

/* ---------- First look, as a framed plein-air panel ---------- */
.ls-first-look { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; padding-top: 100px; padding-bottom: 90px; }
.ls-easel { display: block; text-decoration: none; perspective: 1200px; }
.ls-canvas {
  position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden;
  border: 16px solid transparent; border-radius: 6px;
  background: linear-gradient(#000, #000) padding-box, linear-gradient(135deg, #8a5d26, #f2d58c 22%, #a6742f 45%, #f6dc96 68%, #8a5d26) border-box;
  box-shadow: 0 40px 70px -30px #000, inset 0 0 0 1px #0006, 0 0 0 1px #0008;
  transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transform-style: preserve-3d;
  transition: transform .5s var(--ls-ease), box-shadow .5s;
}
.ls-canvas::before { content: ""; position: absolute; inset: 0; z-index: 2; box-shadow: inset 0 0 0 6px #e8cf9a, inset 0 0 30px #0007; pointer-events: none; }
.ls-canvas::after { content: ""; position: absolute; inset: 0; z-index: 3; background: radial-gradient(60% 50% at var(--gx, 30%) var(--gy, 20%), #fff5, transparent 60%); mix-blend-mode: soft-light; pointer-events: none; transition: background .2s; }
.ls-canvas svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; transform: scale(1.06); transition: transform 1.2s var(--ls-ease); }
.ls-easel:hover .ls-canvas svg { transform: scale(1.1); }
.ls-canvas-type { position: absolute; left: 28px; bottom: 20px; z-index: 2; font: 600 clamp(44px, 5.4vw, 80px)/.9 var(--display); letter-spacing: -.055em; color: #fff8ea; text-shadow: 0 6px 30px #0009; }
.ls-canvas-type em { font: italic 400 1.05em/1 var(--ls-serif); color: #ffe0a0; letter-spacing: -.03em; }
.ls-easel-plate { display: flex; justify-content: space-between; align-items: center; gap: 16px; width: 82%; margin: 22px auto 0; padding: 12px 18px; border-radius: 4px; background: linear-gradient(180deg, #e9cf91, #c19a52); color: #3b2a14; font: 700 10px/1.4 var(--label); letter-spacing: .16em; text-transform: uppercase; box-shadow: 0 6px 16px -6px #000a, inset 0 1px 0 #fff8; }
.ls-easel-plate b { font-size: 18px; transition: transform .25s var(--ls-ease); display: inline-block; }
.ls-easel:hover .ls-easel-plate b { transform: translate(3px, -3px); }
.ls-first-look h2 { margin-bottom: 28px; }
.ls-first-look p:not(.ls-eyebrow) { font-size: 16px; color: var(--ls-soft); }
.ls-first-look .ls-button { margin: 28px 0 18px; }
.ls-first-look .ls-small { font-size: 12px !important; color: #a9a1b6 !important; }

/* ---------- Arrival ---------- */
.ls-arrival { display: grid; grid-template-columns: 1.1fr 1fr; gap: 72px; align-items: center; padding-top: 70px; padding-bottom: 90px; }
.ls-arrival > div > p:not(.ls-eyebrow) { font-size: 16px; color: var(--ls-soft); }
.ls-crossing { margin-top: 36px; }
.ls-crossing svg { width: 100%; height: auto; display: block; border-radius: 18px; box-shadow: 0 30px 60px -30px #000b, inset 0 0 0 1px #fff2; }
.ls-crossing p { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: baseline; margin-top: 12px; font-size: 12px; font-weight: 700; }
.ls-crossing small { text-align: center; color: var(--ls-gold); font: italic 400 14px/1 var(--ls-serif); }
.ls-ripples path { stroke: #9fd3dc40; stroke-width: 2; stroke-linecap: round; animation: ls-ripple 5s ease-in-out infinite alternate; }
@keyframes ls-ripple { to { transform: translateX(14px); opacity: .4; } }
.ls-route { fill: none; stroke: var(--ls-gold); stroke-width: 2; stroke-dasharray: 2 9; stroke-linecap: round; opacity: .8; animation: ls-flow 2.4s linear infinite; }
.ls-pin circle:first-child { fill: var(--ls-gold); }
.ls-pin-halo { fill: none; stroke: var(--ls-gold); stroke-width: 1.5; transform-box: fill-box; transform-origin: center; animation: ls-halo 2.4s ease-out infinite; }
@keyframes ls-halo { from { transform: scale(.4); opacity: 1; } to { transform: scale(1.5); opacity: 0; } }
.ls-castle { fill: #f6edda; opacity: .92; }
.ls-lodge { fill: #f3a862; }
.ls-hull { fill: #f6edda; }
.ls-cabin { fill: #2a6b78; }
.ls-wake { fill: none; stroke: #ffffff8c; stroke-width: 1.5; stroke-linecap: round; }

/* ---------- FAQ ---------- */
.ls-faq { display: grid; grid-template-columns: .8fr 1.4fr; gap: 72px; padding-top: 70px; padding-bottom: 80px; border-top: 1px solid var(--ls-line); }
.ls-faq-head { position: sticky; top: calc(var(--ls-sticky-top) + 100px); align-self: start; }
.ls-faq details { border-bottom: 1px solid var(--ls-line); }
.ls-faq details:first-child { border-top: 1px solid var(--ls-line); }
.ls-faq summary { list-style: none; display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 16px; cursor: pointer; padding: 24px 0; font: 600 19px/1.35 var(--display); letter-spacing: -.012em; transition: color .2s; }
.ls-faq summary:hover { color: var(--ls-gold); }
.ls-faq summary > i { font: italic 400 15px/1 var(--ls-serif); color: var(--ls-gold); }
.ls-faq summary > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1px solid #ebc97c66; font: 400 20px/1 var(--text); color: var(--ls-gold); flex: none; transition: transform .35s var(--ls-ease), background-color .2s; }
.ls-faq details[open] summary > span { background: var(--ls-gold); color: #2a1f22; }
.ls-faq details p { font-size: 16px; color: var(--ls-soft); max-width: 680px; margin: 0 50px 26px 50px; }
.ls summary::-webkit-details-marker { display: none; }
.ls details[open] > summary > span:last-child { transform: rotate(45deg); }
@supports (interpolate-size: allow-keywords) {
  .ls details { interpolate-size: allow-keywords; }
  .ls details::details-content { block-size: 0; overflow: clip; transition: block-size .45s var(--ls-ease), content-visibility .45s allow-discrete; }
  .ls details[open]::details-content { block-size: auto; }
}
.ls-sources { border-top: 1px solid var(--ls-line); padding-top: 34px; display: grid; grid-template-columns: 1fr 1fr; gap: 50px; color: #c0b6ca; }
.ls-sources p { font-size: 12px; line-height: 1.8; }
.ls-sources .ls-eyebrow { font-size: 10px; margin-bottom: 10px !important; }

/* ---------- Scroll reveals (only when motion is welcome and the script is running) ---------- */
.ls-anim .ls [data-reveal] { opacity: 0; transform: translateY(34px); transition: opacity 1s var(--ls-ease), transform 1.1s var(--ls-ease); }
.ls-anim .ls [data-reveal].is-in { opacity: 1; transform: none; }
.ls-anim .ls h2 em svg { clip-path: inset(0 100% 0 0); transition: clip-path 1.1s var(--ls-ease) .35s; }
.ls-anim .ls .is-in h2 em svg, .ls-anim .ls h2.is-in em svg { clip-path: inset(0 0 0 0); }
.ls-anim .ls-dates[data-reveal] { opacity: 1; transform: none; }
.ls-anim .ls-dates[data-reveal] li { opacity: 0; translate: 0 60px; transition: opacity .9s var(--ls-ease), translate 1s var(--ls-ease), transform .5s var(--ls-ease); }
.ls-anim .ls-dates.is-in li { opacity: 1; translate: 0 0; }
.ls-anim .ls-dates.is-in li:nth-child(2) { transition-delay: .12s; }
.ls-anim .ls-dates.is-in li:nth-child(3) { transition-delay: .24s; }
.ls-anim .ls-skyline[data-reveal] .ls-bar { transform: scaleY(0); transition: transform 1.1s var(--ls-ease); }
.ls-anim .ls-skyline.is-in .ls-bar { transform: scaleY(1); }
.ls-anim .ls-skyline.is-in li:nth-child(n) .ls-bar { transition-delay: calc(var(--i, 0) * 60ms); }
.ls-anim .ls-hero-copy > *, .ls-anim .ls-countdown, .ls-anim .ls-hero-top { opacity: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .ls-countdown { width: 300px; }
  .ls-cd-units b { font-size: 26px; }
}
@media (max-width: 1000px) {
  .ls-inner { padding-left: 36px; padding-right: 36px; }
  .ls-booking::before { left: 36px; right: 36px; }
  .ls-hero-frame { grid-template-columns: 1fr; width: calc(100% - 48px); padding-bottom: 110px; }
  .ls-countdown { justify-self: start; margin-top: 34px; }
  .ls-intro, .ls-policies, .ls-arrival, .ls-first-look, .ls-faq { gap: 40px; }
  .ls-chapters { padding: 0 20px; }
  .ls-chapter-links { gap: 14px; }
  .ls-chapters a { font-size: 12px; gap: 7px; }
  .ls-dates { gap: 16px; }
  .ls-ticket-stub, .ls-ticket-body { padding-left: 20px; padding-right: 20px; }
  .ls-dates time strong { font-size: 76px; }
  .ls-dates h3 { font-size: 19px; }
  .ls-filter-controls { gap: 16px; grid-template-columns: .8fr 1.3fr 1fr; }
  .ls-room-table tbody th { width: 38%; }
  .ls-pips { grid-template-columns: repeat(12, 6px); gap: 3px; }
  .ls-pips i { width: 6px; height: 6px; }
  .ls-compare-cell button { padding: 9px 12px; font-size: 11px; gap: 5px; }
  .ls-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 26px; }
  .ls-stats > div:nth-child(3) { border-right: 0; }
  .ls-stats > div:nth-child(4) { padding-left: 0; }
  .ls-day { gap: 36px; }
}
@media (max-width: 760px) {
  .ls-chapter-links { display: none; }
  .ls-chapter-menu { display: block; }
  .ls-chapter-menu > summary { display: flex; align-items: center; gap: 15px; list-style: none; cursor: pointer; min-height: 56px; font-size: 11px; }
  .ls-chapter-menu > summary > span { color: #bfb8cb; white-space: nowrap; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
  .ls-chapter-menu > summary > strong { margin-left: auto; color: var(--ls-gold); font-weight: 600; font-size: 13px; text-align: right; }
  .ls-chapter-menu > summary > i { width: 7px; height: 7px; border-right: 1.5px solid var(--ls-gold); border-bottom: 1.5px solid var(--ls-gold); transform: rotate(45deg); flex: none; }
  .ls-chapter-menu[open] > summary > i { transform: rotate(225deg); }
  .ls-chapter-menu > div { display: grid; grid-template-columns: 1fr 1fr; gap: 0 25px; border-top: 1px solid var(--ls-line); padding: 8px 0 12px; }
  .ls-chapter-menu a { min-height: 45px; font-size: 13px; }
  .ls-chapter-menu a::after { display: none; }
  .ls-filter-heading { display: block; }
  .ls-filter-heading p { margin-top: 5px; }
  .ls-filter-controls { grid-template-columns: 1fr 1.3fr; }
  .ls-check { grid-column: 1 / -1; }
  .ls-check br { display: none; }
  .ls-dates { grid-template-columns: 1fr; gap: 22px; max-width: 460px; }
  .ls-dates li:nth-child(n) { transform: none; }
  .ls-dates h3 { min-height: 0; }
  .ls-comparison { padding: 22px; }
  .ls-comparison-head { display: block; }
  .ls-comparison-head .ls-reset { margin-top: 12px; }
  .ls-comparison-grid { gap: 18px; }
  .ls-compare-card h4 { font-size: 18px; min-height: 110px; }
  .ls-intro, .ls-policies, .ls-arrival, .ls-first-look, .ls-faq { grid-template-columns: 1fr; }
  .ls-faq-head { position: static; }
  .ls-water-heading { display: block; }
  .ls-water-heading > p { margin-top: 20px; }
  .ls-river { aspect-ratio: auto; margin-top: 44px; }
  .ls-river-svg, .ls-tube { display: none; }
  .ls-river-stops-list { position: relative; padding-left: 44px; }
  .ls-river-stops-list::before { content: ""; position: absolute; left: 10px; top: 6px; bottom: 6px; width: 16px; border-radius: 8px; background: linear-gradient(180deg, #2b8a8f, #1f6f74); box-shadow: 0 0 0 5px #061a2066; }
  .ls-river-stops-list::after { content: ""; position: absolute; left: 16px; top: 6px; bottom: 6px; width: 4px; background: repeating-linear-gradient(180deg, #c9f1e6aa 0 3px, transparent 3px 22px); animation: ls-flow-v 1.6s linear infinite; }
  @keyframes ls-flow-v { to { background-position: 0 22px; } }
  .ls-stop { position: relative; left: auto; top: auto; width: auto; padding-bottom: 38px; }
  .ls-stop::before { content: ""; position: absolute; left: -39px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: #0b2830; border: 3px solid var(--ls-gold); z-index: 1; }
  .ls-day { grid-template-columns: 1fr; }
  .ls-sky { top: calc(var(--ls-sticky-top) + 64px); height: 36vh; min-height: 220px; border-radius: 20px; z-index: 2; }
  .ls-venue { min-height: 52vh; transform: none; }
  .ls-dining-notes { grid-template-columns: 1fr; gap: 14px; }
  .ls-sources { grid-template-columns: 1fr; gap: 10px; }
}
@media (max-width: 640px) {
  .ls { font-size: 16px; margin-bottom: 40px; }
  .ls-inner { padding-left: 4px; padding-right: 4px; }
  .ls-booking::before { left: 0; right: 0; }
  .ls h2 { font-size: clamp(36px, 10.4vw, 46px); }
  .ls-eyebrow { font-size: 10px; letter-spacing: .14em; margin-bottom: 16px !important; }
  .ls-section-head > p:last-child { font-size: 15.5px; margin-top: 22px; }
  .ls-hero { min-height: max(700px, calc(100svh - 56px)); }
  .ls-hero-frame { width: calc(100% - 36px); padding-bottom: 120px; }
  .ls-hero-top { padding: 18px 0 16px; font-size: 8.5px; gap: 12px; }
  .ls-hero-top > span { text-align: right; }
  .ls-hero-photo img { object-position: 60% 50%; }
  .ls-hero-shade { background: linear-gradient(0deg, var(--ls-night) 0%, #1a1530e6 30%, #1a153066 62%, #0d0a18aa 100%); }
  .ls-h1-pre { font-size: 21px; }
  .ls-h1-main { font-size: clamp(64px, 19vw, 96px); }
  .ls h1 .ls-h1-accent { font-size: clamp(64px, 19vw, 96px); margin-left: 22%; }
  .ls-hero-deck { font-size: 16px; max-width: 320px; }
  .ls-hero-actions { gap: 18px; margin-top: 26px; }
  .ls-hero-actions .ls-button { font-size: 13px; padding: 12px 18px; gap: 16px; }
  .ls-countdown { width: 100%; max-width: 360px; padding: 16px 16px 14px; border-radius: 18px; }
  .ls-cd-units { gap: 6px; margin: 12px 0 10px; }
  .ls-cd-units b { font-size: 24px; }
  .ls-photo-note { left: 18px; right: 70px; bottom: 22px; padding-left: 12px; }
  .ls-photo-note p { font-size: 10px; line-height: 1.6; }
  .ls-photo-break { display: block; }
  .ls-scroll-cue { left: auto; right: 18px; translate: none; }
  .ls-byline { gap: 8px 14px; padding-top: 20px; padding-bottom: 18px; font-size: 12px; flex-wrap: wrap; }
  .ls-status { margin-left: 0; }
  .ls-chapters { padding: 0 20px; }
  .ls-intro { padding-top: 64px; padding-bottom: 64px; }
  .ls-intro .ls-lede { font-size: 21px; }
  .ls-stats { grid-template-columns: 1fr 1fr; }
  .ls-stats > div:nth-child(n) { border-right: 0; padding-left: 0; padding-right: 10px; }
  .ls-stats > div:nth-child(odd) { border-right: 1px solid var(--ls-line); }
  .ls-stats > div:nth-child(even) { padding-left: 18px; }
  .ls-stats > div:last-child { grid-column: 1 / -1; border-right: 0; }
  .ls-stats dd { font-size: 52px; }
  .ls-booking { padding-top: 60px; padding-bottom: 56px; }
  .ls-dates time strong { font-size: 72px; }
  .ls-arrival-line { grid-template-columns: 1fr; }
  .ls-line-end { align-items: flex-start; text-align: left; }
  .ls-skyline { padding: 22px 14px 16px; border-radius: 18px; margin-top: 40px; }
  .ls-skyline-bars { height: 220px; gap: 5px; }
  .ls-bar { height: calc(var(--h) * 1.3px); border-radius: 5px 5px 2px 2px; }
  .ls-bar::after { display: none; }
  .ls-skyline-bars b { font-size: 18px; margin-bottom: 6px; }
  .ls-bar-name { display: none; }
  .ls-skyline::before { display: none; }
  .ls-filters { padding: 22px 18px 4px; border-radius: 18px; }
  .ls-filter-controls { grid-template-columns: 1fr; }
  .ls-room-table, .ls-room-table tbody { display: block; }
  .ls-room-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .ls-room-table tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; margin-top: 12px; border-radius: 18px; background: #201e37; border: 1px solid #ffffff12; box-shadow: inset 4px 0 0 var(--fam); overflow: hidden; }
  .ls-room-table tbody tr[hidden] { display: none; }
  .ls-room-table tbody tr > * { background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
  .ls-room-table tbody tr[data-selected="true"] { border-color: #ebc97c88; background: #2d2840; }
  .ls-room-table tbody th { grid-column: 1 / -1; width: auto; padding: 20px 20px 6px 22px; }
  .ls-capacity { width: auto; padding: 8px 10px 20px 22px; }
  .ls-capacity b { font-size: 34px; }
  .ls-amenities { grid-column: 1 / -1; grid-row: 3; width: auto; padding: 0 20px 20px 22px; }
  .ls-compare-cell { grid-column: 2; grid-row: 2; padding: 10px 18px 14px 0; display: flex; align-items: flex-start; justify-content: flex-end; }
  .ls-compare-cell[hidden] { display: none; }
  .ls-room-details { display: block; margin: 6px 0 0; }
  .ls-room-aside { grid-template-columns: 1fr; gap: 18px; padding: 24px 22px; }
  .ls-aframe { width: 96px; }
  .ls-water { padding: 80px 0 70px; }
  .ls-water > .ls-inner { padding-left: 20px; padding-right: 20px; }
  .ls-stop h3 { font-size: 30px; }
  .ls-stop-1 h3 { font-size: 40px; }
  .ls-policies { padding-top: 60px; padding-bottom: 60px; }
  .ls-fieldnote { padding: 36px 24px 30px; transform: rotate(-1.2deg); }
  .ls-dining { padding: 70px 0 60px; }
  .ls-dining > .ls-inner { padding-left: 20px; padding-right: 20px; }
  .ls-sky-time { left: 18px; bottom: 14px; }
  .ls-venue h3 { font-size: 34px; }
  .ls-venue > p:last-child { font-size: 16px; }
  .ls-first-look { padding-top: 70px; padding-bottom: 60px; }
  .ls-canvas { border-width: 11px; }
  .ls-canvas-type { left: 18px; bottom: 12px; }
  .ls-easel-plate { width: 94%; font-size: 9px; }
  .ls-arrival { padding-top: 40px; padding-bottom: 60px; }
  .ls-faq { padding-top: 56px; padding-bottom: 60px; gap: 20px; }
  .ls-faq summary { grid-template-columns: 26px 1fr auto; gap: 12px; font-size: 17px; padding: 20px 0; }
  .ls-faq details p { margin: 0 0 22px 38px; font-size: 15px; }
}
@media (max-width: 380px) {
  .ls-hero-actions .ls-button { gap: 10px; padding: 12px 14px; font-size: 12px; }
  .ls-hero-secondary { font-size: 12px; gap: 8px; }
  .ls-cd-units b { font-size: 21px; }
  .ls-dates time strong { font-size: 60px; }
}
@media (prefers-reduced-motion: no-preference) { html:has(.ls) { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) {
  html:has(.ls) { scroll-behavior: auto; }
  .ls *, .ls *::before, .ls *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .ls-venue { opacity: 1; transform: none; }
}
@media print {
  .ls-chapters, .ls-filters, .ls-shortlist, .ls-comparison, .ls-compare-cell, .ls-hero-actions, .ls-hero-gl, .ls-countdown, .ls-sky, .ls-river-svg, .ls-tube, .ls-scroll-cue, .ls-skyline { display: none !important; }
  .ls [data-room][hidden] { display: table-row !important; }
  .ls { color: #111 !important; background: #fff; }
  .ls p, .ls a, .ls h2 em { color: #222 !important; }
  .ls-hero { min-height: 450px; }
  .ls-hero h1, .ls-hero p, .ls-hero h1 * { color: #fff !important; -webkit-text-fill-color: #fff; }
  .ls-water, .ls-dining { background: #fff; color: #111; }
  .ls-stop, .ls-venue { position: static; width: auto; opacity: 1 !important; transform: none !important; min-height: 0; }
  .ls [data-reveal] { opacity: 1 !important; transform: none !important; }
  .ls section { break-inside: auto; }
  .ls-venue, .ls-room-table tr { break-inside: avoid; }
}
