/* Scoped Impeccable refinement. Approved heroes, venue fonts and map artwork stay intact. */
.identity-ab ::selection{background:#c6ad80;color:#29141d}
.identity-sy ::selection{background:#80643b;color:#fff9ef}
.identity-st ::selection{background:#a9c8f6;color:#13161a}
:is(.identity-ab,.identity-sy,.identity-st) :is(h2,h3){text-wrap:balance}
:is(.identity-ab,.identity-sy,.identity-st) a{text-underline-offset:.25em}

/* One quiet, continuous marker follows the committed perspective. */
:is(.map-angles,.sy-perspectives,.st-index-options){position:relative;isolation:isolate}
.selection-track{position:absolute;left:0;top:0;height:2px;pointer-events:none;background:var(--selection-color,#a9c8f6);transition:transform .42s cubic-bezier(.16,1,.3,1),width .42s cubic-bezier(.16,1,.3,1)}
.has-selection-track button[aria-pressed=true]{border-bottom-color:transparent!important}
.sy-perspectives{--selection-color:#80643b}
.st-index-options{--selection-color:#a9c8f6}
:is(.sy-perspectives,.st-index-options) button:focus-visible{outline:2px solid var(--selection-color);outline-offset:4px}

/* Abigail: a restrained editorial spread, with the bar as a close-up inset. */
.identity-ab .ab-invitation{padding-top:clamp(72px,7vw,112px);padding-bottom:80px;grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr)}
.identity-ab .ab-invitation-heading{padding-top:20px}
.identity-ab .ab-invitation h2{font-size:clamp(52px,6vw,90px);letter-spacing:-.04em}
.identity-ab .ab-intro{font-size:16px;max-width:30ch;line-height:1.75}
.identity-ab .ab-line-link{font-size:13px;min-width:205px;margin-top:8px}
.identity-ab .ab-main-frame .ab-photo-open{aspect-ratio:1.44}
.identity-ab .ab-photo-caption{font-size:13px}
.identity-ab .ab-bar-frame{margin-top:-76px;border-width:10px}
.identity-ab .ab-bar-frame .ab-photo-open{aspect-ratio:.86}
.identity-ab .ab-letter{align-self:start;padding-top:34px}
.identity-ab .ab-letter>p{font-size:clamp(24px,2.6vw,37px);line-height:1.25}
.identity-ab .ab-room{padding-top:60px}
.identity-ab .ab-room-heading{margin-bottom:34px;gap:40px}
.identity-ab .ab-room-heading h2{letter-spacing:-.035em}
.identity-ab .ab-room-heading>div>p{font-size:15px;line-height:1.7}

/* Saint Yves: the photograph and printed invitation share a measured baseline. */
.identity-sy .sy-salon{padding-top:clamp(76px,7vw,112px);column-gap:clamp(40px,5vw,80px)}
.identity-sy .sy-salon-copy{padding-top:26px}
.identity-sy .sy-salon h2{font-size:clamp(56px,5.8vw,88px);letter-spacing:-.035em;margin-bottom:30px}
.identity-sy .sy-diamond{width:22px;height:22px;margin:0 0 30px 5px}
.identity-sy .sy-diamond i{width:12px;height:12px}
.identity-sy .sy-introduction{font-size:clamp(27px,2.4vw,34px);line-height:1.25}
.identity-sy .sy-description{font-size:15px;line-height:1.75;max-width:32ch}

.identity-sy .sy-salon-photo{height:clamp(490px,46vw,680px)}
.identity-sy .sy-photo-footer{align-items:flex-start;padding-top:26px}
.identity-sy .sy-photo-caption{font-size:20px;line-height:1.4;padding-top:8px}
.identity-sy .sy-perspectives button{font-size:13px}
.identity-sy .sy-plan-heading{margin-bottom:34px}
.identity-sy .sy-plan-heading>p{font-size:15px;line-height:1.7}

/* Strand: stronger photographic hierarchy, finer architectural linework. */
.identity-st .st-light-index{padding-top:88px;padding-bottom:64px}
.identity-st .st-introduction{margin-bottom:48px;grid-template-columns:1.15fr 1fr}
.identity-st .st-intro-copy h2{font-size:clamp(60px,6.6vw,96px);letter-spacing:-.04em}
.identity-st .st-sculpture svg{filter:none;stroke-width:.9;opacity:.8}
.identity-st .st-index-toolbar{border-top:1px solid #3d444e;padding-top:16px;margin-bottom:22px}
.identity-st .st-image-link{height:clamp(360px,35vw,520px)}
.identity-st .st-pane figcaption{padding-top:19px}
.identity-st .st-pane figcaption p{font-size:13px}
.identity-st .st-image-affordance{font-size:12px}
.identity-st .st-plan-prelude{padding-top:48px;padding-bottom:48px}
.identity-st .st-plan-prelude h2{font-size:clamp(52px,6vw,86px);letter-spacing:-.04em}
.identity-st .st-plan-inner{padding-top:44px}

/* The slate plan stays the visual anchor; controls recede, the next action stays clear. */
.room-section .map-caption{font-size:12px;letter-spacing:.01em;border-bottom:1px solid #39414b;padding-bottom:16px;margin-bottom:12px}
.room-section .map-angles{gap:28px;margin-bottom:20px;border:0}
.room-section .map-angles button{font-size:13px;min-height:48px;margin:0}
.room-section .map-toolbar{margin-top:16px;align-items:center}
.room-section .map-toolbar button{min-height:44px;transition:background .2s,border-color .2s}
.room-section .map-toolbar button:hover:not(:disabled){background:#263345}
.room-section .map-toolbar button:disabled{opacity:.38;cursor:default}
.room-section .map-toolbar .reset-map{margin-left:auto;font-size:12px;padding-inline:16px}
.room-section .map-sidebar{padding-top:12px!important}
.room-section .selected-preview{height:clamp(150px,14vw,205px);object-fit:cover}
.room-section .selection-image-note{font-size:11px;line-height:1.6;margin:10px 0 20px;color:#b9c2cf}
.room-section .map-selected{font-size:30px!important;letter-spacing:-.025em;margin:0 0 12px!important}
.room-section .selection-facts{font-size:13px;line-height:1.75;margin-bottom:22px}
.room-section .book-selection{justify-content:space-between;gap:14px;padding-inline:17px;transition:background .25s,border-color .25s}
.room-section .book-selection:hover{background:#f1f6fc;color:#171d25;border-color:#f1f6fc}
.room-section .table-choice{font-variant-numeric:tabular-nums;font-size:12px;transition:background .2s,border-color .2s}
.room-section .map-list{scrollbar-width:thin;scrollbar-color:#758297 #171c23}
.room-section .map-perspective-note,.room-section .map-view-status{font-size:12px;line-height:1.7}
@media(min-width:901px){.room-section .map-sidebar .map-list{max-height:300px;overflow-y:auto;padding-right:6px;padding-bottom:6px;scroll-padding:8px}}
@media(max-width:900px){
  .room-section .map-sidebar{padding-top:24px!important}
  .room-section .selected-preview{height:145px}
  .room-section .selection-image-note{margin-bottom:16px}
  .room-section .selection-facts{font-size:13px;margin-bottom:16px}
  .identity-sy .sy-salon-copy{padding-top:0}
  .identity-sy .sy-photo-footer{flex-wrap:wrap;gap:10px}
  .identity-sy .sy-photo-caption{text-align:left;max-width:none;padding-top:0}
}
@media(max-width:700px){
  .identity-ab .ab-invitation{display:block;padding-top:60px;padding-bottom:52px}
  .identity-ab .ab-invitation-heading{padding-top:0;padding-bottom:30px}
  .identity-ab .ab-invitation h2{font-size:60px}
  .identity-ab .ab-intro{font-size:15px;max-width:34ch}
  .identity-ab .ab-main-frame .ab-photo-open{aspect-ratio:1.2}
  .identity-ab .ab-bar-frame{margin-top:-30px;border-width:6px}
  .identity-ab .ab-letter{padding-top:24px}
  .identity-ab .ab-letter>p{font-size:25px}
  .identity-ab .ab-photo-caption{font-size:11px}
  .identity-ab .ab-room{padding-top:45px}
  .identity-ab .ab-room-heading>div{margin-top:18px;max-width:34ch}
  .identity-sy .sy-salon{padding-top:60px}
  .identity-sy .sy-salon h2{font-size:60px}
  .identity-sy .sy-description{font-size:15px;max-width:35ch}
  .identity-sy .sy-salon-photo{height:420px}
  .identity-sy .sy-photo-footer{padding-top:20px}
  .identity-st .st-light-index{padding-top:60px;padding-bottom:44px}
  .identity-st .st-introduction{grid-template-columns:1fr;margin-bottom:30px}
  .identity-st .st-intro-copy h2{font-size:64px}
  .identity-st .st-index-options{gap:18px}
  .identity-st .st-image-link{height:370px}
  .identity-st .st-plan-prelude h2{font-size:58px}
  .identity-st .st-plan-inner{padding-top:30px}
  .room-section .map-angles{gap:18px}
  .room-section .map-angles button{font-size:11px}
}
@media(max-width:370px){.room-section .map-angles{gap:12px}.room-section .map-angles button{font-size:10px}.identity-ab .ab-photo-caption{left:10px;right:10px}}
@media(prefers-reduced-motion:reduce){.selection-track{transition:none}}
html[data-motion=off] .selection-track{transition:none}
