/* Full-viewport coast fly-through. Map labels and controls retain Mapbox attribution. */
body[data-premium-site] #coast.coast-earth{
  --coast-ink:#0b0a08;
  --coast-panel:#15120e;
  --coast-text:#f2eee6;
  --coast-muted:#c5beb1;
  --coast-gold:#c9a45c;
  --coast-light:#f0d79f;
  position:relative;
  width:100vw;
  height:600svh;
  min-height:600vh;
  margin:0 calc(50% - 50vw);
  overflow:clip;
  isolation:isolate;
  background:var(--coast-ink);
  color:var(--coast-text);
  font-family:Geist,sans-serif;
}
body[data-premium-site] #coast.coast-earth .coast-sticky .coast-map-shell,
body[data-premium-site] #coast.coast-earth .coast-sticky .coast-map{
  width:100%;
  height:100%;
  min-height:0;
}
.coast-sticky{
  position:sticky;
  top:0;
  height:100svh;
  min-height:560px;
  overflow:hidden;
  isolation:isolate;
  background:var(--coast-ink);
}
.coast-map-shell,.coast-map{position:absolute;inset:0;width:100%;height:100%}
.coast-map-shell{overflow:hidden;isolation:isolate;background:#101411}
.coast-map{z-index:0;background:#101411;outline:0}
.coast-map canvas{outline:0}
.coast-map-shell .mapboxgl-ctrl-top-right{top:calc(24px + env(safe-area-inset-top,0px));right:max(22px,env(safe-area-inset-right,0px))}
.coast-map-shell .mapboxgl-ctrl-bottom-right{right:16px;bottom:12px}
.coast-map-shell .mapboxgl-ctrl-group{border:1px solid rgba(242,238,230,.28);border-radius:0;background:rgba(11,10,8,.84);box-shadow:none;backdrop-filter:blur(8px)}
.coast-map-shell .mapboxgl-ctrl-group button{filter:invert(1)}
.coast-map-shell .mapboxgl-ctrl-attrib{max-width:min(46vw,560px);background:rgba(11,10,8,.78);color:#f2eee6;font:10px/1.4 Geist,sans-serif}
.coast-map-shell .mapboxgl-ctrl-attrib a{color:#f0d79f}
.coast-static-layer{
  position:absolute;
  z-index:1;
  inset:0;
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  background:#101411;
  transition:opacity .55s ease,visibility .55s ease;
}
.coast-map-shell.is-fallback .coast-static-layer{opacity:1;visibility:visible;pointer-events:auto}
.coast-static-world{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  transform:var(--static-transform,translate3d(0,0,0) scale(1));
  transform-origin:0 0;
  transition:transform 1.45s cubic-bezier(.16,1,.3,1);
  will-change:transform;
}
.coast-static-world>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;filter:saturate(.91) brightness(.78) contrast(1.08)}
.coast-static-route{position:absolute;z-index:2;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.coast-static-route path{fill:none;stroke:#f0d79f;stroke-width:1.45;stroke-dasharray:5 5;vector-effect:non-scaling-stroke;opacity:.9}
.coast-static-pin{
  position:absolute;
  z-index:3;
  left:0;
  top:0;
  display:flex;
  align-items:center;
  gap:8px;
  transform:scale(var(--pin-inverse-scale,1)) translate(8px,-50%);
  transform-origin:0 0;
  color:#fff;
  white-space:nowrap;
  pointer-events:none;
  text-shadow:0 1px 8px rgba(0,0,0,.95);
  transition:transform 1.45s cubic-bezier(.16,1,.3,1);
}
.coast-static-pin[hidden]{display:none}
.coast-static-pin[data-static-pin="0"]{flex-direction:row-reverse;transform:scale(var(--pin-inverse-scale,1)) translate(calc(-100% - 4px),-125%)}
.coast-static-pin[data-static-pin="1"]{transform:scale(var(--pin-inverse-scale,1)) translate(8px,12px)}
.coast-static-pin.is-left{flex-direction:row-reverse;transform:scale(var(--pin-inverse-scale,1)) translate(calc(-100% - 6px),-50%)}
.coast-static-pin i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--coast-light);box-shadow:0 0 0 3px rgba(11,10,8,.55)}
.coast-static-pin b{font:500 9px/1 Geist,sans-serif;letter-spacing:.2em;text-transform:uppercase}
.coast-static-pin.is-active i{width:10px;height:10px;background:#fff}
.coast-map-properties{
  position:absolute;
  z-index:3;
  inset:0;
  overflow:visible;
  pointer-events:none;
  transform:none;
}
.coast-residence{
  position:absolute;
  left:0;
  top:0;
  width:clamp(110px,9vw,152px);
  display:grid;
  gap:5px;
  transform:translate3d(var(--card-x,50%),var(--card-y,50%),0) translate(-50%,-50%);
  padding:5px;
  border:1px solid rgba(242,238,230,.2);
  background:rgba(11,10,8,.85);
  color:var(--coast-text);
  text-decoration:none;
  pointer-events:auto;
  transition:transform 1.45s cubic-bezier(.16,1,.3,1),border-color .25s ease,opacity .35s ease;
  backdrop-filter:blur(5px);
}
.coast-map-properties.is-live .coast-residence{transition:transform .15s linear,border-color .25s ease,opacity .35s ease}
.coast-residence[hidden]{display:none}
.coast-residence:hover,.coast-residence:focus-visible{border-color:var(--coast-gold)}
.coast-residence-photo{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:#211d16}
.coast-residence-copy{display:grid;gap:3px;padding:2px 4px 4px}
.coast-residence-copy strong{overflow:hidden;color:var(--coast-text);font:400 clamp(14px,1.1vw,19px)/1.02 "Instrument Serif",Georgia,serif;text-overflow:ellipsis;white-space:nowrap}
.coast-residence-copy>span{color:var(--coast-light);font:500 7px/1.25 Geist,sans-serif;letter-spacing:.1em;text-transform:uppercase}
/* These replace the former list-card rules loaded by premium-refinements. */
body[data-premium-site] #coast .coast-residence{
  width:clamp(110px,9vw,152px);height:auto;min-height:0;max-height:none;
  display:block;overflow:hidden;padding:5px;margin:0;
  border:1px solid rgba(242,238,230,.2);background:rgba(11,10,8,.85);
}
body[data-premium-site] #coast .coast-residence[hidden]{display:none}
body[data-premium-site] #coast img.coast-residence-photo{
  display:block;position:static;width:100%;height:auto;min-height:0;max-height:none;
  aspect-ratio:3/2;object-fit:cover;
}
body[data-premium-site] #coast .coast-residence-copy{display:grid;gap:3px;padding:5px 3px}
body[data-premium-site] #coast .coast-residence-copy>span{display:block;color:var(--coast-light)}
body[data-premium-site] #coast .coast-residence-copy strong{display:block;color:var(--coast-text)}
.coast-static-credit{
  position:absolute;z-index:8;right:18px;bottom:78px;
  padding:4px 8px;background:rgba(11,10,8,.8);color:#f2eee6;font:10px/1.4 Geist,sans-serif;
}
.coast-static-credit a{color:inherit}
.coast-residence:focus-visible,.coast-tabs button:focus-visible,.coast-town-index button:focus-visible{
  outline:2px solid var(--coast-light);
  outline-offset:4px;
}
.coast-map-route{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:0}
.coast-map-fallback{
  position:absolute;
  z-index:7;
  left:50%;
  top:calc(82px + env(safe-area-inset-top,0px));
  width:min(360px,calc(100% - 40px));
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  transform:translateX(-50%);
  border:1px solid rgba(242,238,230,.22);
  background:rgba(11,10,8,.82);
  color:var(--coast-text);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .3s ease,visibility .3s ease;
  backdrop-filter:blur(12px);
}
.coast-map-shell.is-fallback:not(.has-static-image) .coast-map-fallback:not([hidden]){opacity:1;visibility:visible}
.coast-map-shell.has-static-image .coast-map-fallback,.coast-map-shell.is-ready .coast-map-fallback{display:none}
.coast-map-fallback p{margin:0;color:rgba(242,238,230,.88);font:400 11px/1.45 Geist,sans-serif}
.coast-fallback-mark{width:8px;height:8px;flex:none;border-radius:50%;background:var(--coast-gold)}
.coast-map-shell.is-fallback .mapboxgl-control-container{visibility:hidden}
.coast-hud{
  position:absolute;
  z-index:5;
  top:calc(94px + env(safe-area-inset-top,0px));
  right:max(34px,env(safe-area-inset-right,0px));
  display:grid;
  justify-items:end;
  gap:7px;
  color:var(--coast-text);
  text-align:right;
  text-shadow:0 1px 14px rgba(0,0,0,.92);
  font-variant-numeric:tabular-nums;
}
.coast-hud strong{color:var(--coast-text);font:400 19px/1.05 "Instrument Serif",Georgia,serif;letter-spacing:.02em}
.coast-hud .coast-hud-region{font-size:24px}
.coast-hud span{color:rgba(242,238,230,.84);font:400 10px/1.3 Geist,sans-serif;letter-spacing:.15em}
.coast-overlay{
  position:absolute;
  z-index:4;
  inset:0;
  display:grid;
  grid-template-columns:minmax(0,440px) minmax(0,1fr);
  grid-template-rows:1fr auto;
  gap:0 38px;
  align-items:center;
  padding:calc(112px + env(safe-area-inset-top,0px)) max(32px,5vw,env(safe-area-inset-right,0px)) calc(100px + env(safe-area-inset-bottom,0px)) max(32px,5vw,env(safe-area-inset-left,0px));
  pointer-events:none;
  background:linear-gradient(90deg,rgba(11,10,8,.73) 0%,rgba(11,10,8,.39) 32%,rgba(11,10,8,.05) 63%,transparent 82%),linear-gradient(180deg,rgba(11,10,8,.3),transparent 24%,transparent 70%,rgba(11,10,8,.38));
}
.coast-copy{grid-column:1;grid-row:1;align-self:center;width:100%;min-width:0;pointer-events:auto}
.coast-copy-panel{display:grid;align-content:center;gap:19px;animation:coast-copy-in .55s cubic-bezier(.16,1,.3,1) both}
.coast-copy-panel[hidden]{display:none}
@keyframes coast-copy-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.coast-chapter-count{color:var(--coast-light);font:500 10px/1 Geist,sans-serif;letter-spacing:.28em}
.coast-chapter-count i{padding:0 5px;color:rgba(242,238,230,.45);font-style:normal}
.coast-copy-panel h2{max-width:12ch;margin:0;color:var(--coast-text);font:400 clamp(2.5rem,5vw,5rem)/.96 "Instrument Serif",Georgia,serif;letter-spacing:-.016em;text-wrap:balance;text-shadow:0 2px 24px rgba(0,0,0,.56)}
.coast-copy-panel h2 em{color:var(--coast-light);font-weight:400}
.coast-copy-panel>p{max-width:38ch;margin:0;color:rgba(242,238,230,.92);font:300 14px/1.65 Geist,sans-serif;text-shadow:0 1px 12px rgba(0,0,0,.82)}
.coast-tabs{
  grid-column:1 / -1;
  grid-row:2;
  align-self:end;
  display:flex;
  width:max-content;
  max-width:min(100%,1050px);
  overflow-x:auto;
  pointer-events:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(201,164,92,.7) transparent;
}
.coast-tabs button{
  min-width:116px;
  display:grid;
  justify-items:start;
  gap:11px;
  padding:12px 15px 2px 0;
  border:0;
  border-bottom:1px solid rgba(242,238,230,.3);
  margin:0 14px 0 0;
  background:transparent;
  color:rgba(242,238,230,.52);
  text-align:left;
  font:500 9px/1.2 Geist,sans-serif;
  letter-spacing:.22em;
  text-transform:uppercase;
  cursor:pointer;
  transition:color .25s ease,border-color .25s ease;
}
.coast-tabs button span{color:rgba(242,238,230,.5);font:400 10px/1 "Instrument Serif",Georgia,serif}
.coast-tabs button[aria-selected=true]{border-color:var(--coast-gold);color:var(--coast-text)}
.coast-tabs button[aria-selected=true] span{color:var(--coast-light)}
.coast-tabs button:hover{color:var(--coast-light)}
.coast-chapter-track{position:absolute;inset:0;z-index:0;display:grid;grid-template-rows:repeat(6,minmax(0,1fr));pointer-events:none}
.coast-chapter-marker{min-height:0}
.coast-sr-only{
  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;
}
.coast-town-index{list-style:none}
.coast-town-index button{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.coast-town-index button:focus-visible{position:fixed;z-index:20;clip:auto;width:auto;height:auto;left:16px;top:16px;padding:12px;background:var(--coast-panel);color:var(--coast-text)}

@media(max-width:900px){
  .coast-earth{height:600svh;min-height:600vh}
  .coast-overlay{grid-template-columns:minmax(0,390px) minmax(0,1fr);gap:0 24px;padding-left:28px;padding-right:28px}
  .coast-copy-panel h2{font-size:clamp(2.2rem,6vw,4rem)}
  .coast-tabs button{min-width:103px;margin-right:8px}
  .coast-hud{right:24px;top:calc(90px + env(safe-area-inset-top,0px))}
}
@media(max-width:700px){
  .coast-earth{height:600svh;min-height:600vh}
  .coast-sticky{min-height:100svh}
  .coast-overlay{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:1fr auto;
    gap:0;
    padding:calc(94px + env(safe-area-inset-top,0px)) 20px calc(44px + env(safe-area-inset-bottom,0px));
    background:linear-gradient(180deg,rgba(11,10,8,.2),rgba(11,10,8,.05) 31%,rgba(11,10,8,.3) 55%,rgba(11,10,8,.74));
  }
  .coast-copy{grid-column:1;grid-row:1;align-self:end;margin:0 0 22px}
  .coast-copy-panel{gap:13px}
  .coast-chapter-count{font-size:8px}
  .coast-copy-panel h2{max-width:13ch;font-size:clamp(2.5rem,9vw,4rem)}
  .coast-copy-panel>p{max-width:39ch;font-size:12px;line-height:1.56}
  .coast-tabs{grid-column:1;grid-row:2;width:calc(100vw - 40px);max-width:none}
  .coast-tabs button{flex:0 0 98px;min-width:98px;font-size:8px}
  .coast-residence{width:94px;gap:4px;padding:4px}
  .coast-residence-copy strong{font-size:14px}
  .coast-residence-copy>span{font-size:6px}
  .coast-map-shell .mapboxgl-ctrl-top-right{top:calc(17px + env(safe-area-inset-top,0px));right:14px}
  .coast-map-shell .mapboxgl-ctrl-bottom-right{right:5px;bottom:5px}
  .coast-hud{top:calc(67px + env(safe-area-inset-top,0px));right:17px;gap:4px}
  .coast-hud .coast-hud-region{font-size:18px}
  .coast-hud span{font-size:8px}
  .coast-hud strong{font-size:15px}
  .coast-map-fallback{top:calc(63px + env(safe-area-inset-top,0px));width:min(330px,calc(100% - 32px));padding:9px 11px}
  .coast-map-fallback p{font-size:10px}
  .coast-static-pin{gap:5px}
  .coast-static-pin i{width:6px;height:6px}
  .coast-static-pin b{font-size:7px;letter-spacing:.11em}
}
@media(max-width:390px){
  .coast-overlay{padding-left:16px;padding-right:16px}
  .coast-tabs{width:calc(100vw - 32px)}
  .coast-copy-panel h2{font-size:clamp(2.3rem,9.5vw,3.5rem)}
}
@media(max-width:700px){
  body[data-premium-site] #coast .coast-residence{width:94px}
  .coast-overlay{padding-bottom:170px}
  .coast-static-credit{bottom:145px;right:12px;font-size:9px}
}
/* On handheld screens, keep the residences in a deliberate swipe rail
   between the chapter copy and the chapter navigation. */
@media(max-width:767px){
  body[data-premium-site] #coast .coast-overlay{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:minmax(0,1fr) auto auto;
    gap:0;
    padding-top:calc(94px + env(safe-area-inset-top,0px));
    padding-bottom:calc(20px + var(--consent-bar-height,0px) + env(safe-area-inset-bottom,0px));
  }
  body[data-premium-site] #coast .coast-copy{
    grid-column:1;
    grid-row:1;
    align-self:end;
    margin:0;
  }
  body[data-premium-site] #coast .coast-copy-panel{gap:11px}
  body[data-premium-site] #coast .coast-copy-panel h2{
    max-width:17ch;
    font-size:clamp(2rem,8vw,3.3rem);
  }
  body[data-premium-site] #coast .coast-copy-panel>p{
    max-width:42ch;
    font-size:12px;
    line-height:1.5;
  }
  body[data-premium-site] #coast .coast-tabs{
    grid-column:1;
    grid-row:3;
    width:100%;
    max-width:none;
    margin:0;
  }
  body[data-premium-site] #coast .coast-map-properties{
    position:relative;
    z-index:6;
    grid-column:1;
    grid-row:2;
    inset:auto;
    display:flex;
    align-items:stretch;
    gap:10px;
    width:100%;
    max-width:306px;
    height:auto;
    max-height:155px;
    overflow-x:auto;
    overflow-y:hidden;
    margin:16px 0 12px;
    padding:0 0 5px;
    pointer-events:auto;
    scrollbar-width:thin;
    scrollbar-color:rgba(201,164,92,.7) transparent;
    touch-action:pan-x pan-y;
    overscroll-behavior-x:contain;
  }
  body[data-premium-site] #coast .coast-residence{
    position:relative!important;
    inset:auto!important;
    left:auto!important;
    top:auto!important;
    flex:0 0 calc((100% - 10px)/2);
    width:calc((100% - 10px)/2);
    min-width:0;
    max-width:none;
    transform:none!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .coast-earth,.coast-earth *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .coast-earth{height:auto;min-height:0}
  .coast-sticky{position:relative;top:auto;height:auto;min-height:100svh}
  .coast-chapter-track{display:none}
  .coast-overlay{position:relative;min-height:100svh}
}
