/* Homepage journal. Shared interactions stay in the site stylesheet; the
   editorial layout and consistent homepage palette are scoped here. */
.home-page {
  --home-paper: var(--bg, var(--paper));
  --home-ink: var(--ink);
  --home-soft: var(--ink-soft);
  --home-muted: var(--muted);
  --home-rule: var(--rule);
  --home-dark: var(--home-paper);
  --home-light: var(--ink);
  --paper-contact: var(--home-paper);
  --footer-surface: var(--home-paper);
  --footer-ink: var(--ink);
  --footer-muted: var(--ink-soft);
  --footer-rule: var(--rule);
  --footer-accent: var(--accent);
  --home-text-time: 850ms;
  --home-photo-time: 900ms;
  --home-ease: var(--ease-editorial, cubic-bezier(.16, 1, .3, 1));
}

/* The shared glass header overlays the homepage photograph. */
.home-page { --home-header-height: var(--site-header-height, 97px); }
html:not(.has-reveal):not(.home-booting) .home-page :is(.theme-toggle, .contact-float) { display: none; }
.home-paper { background: var(--home-paper); color: var(--home-ink); }
.home-cover {
  position: relative;
  display: grid;
  width: 100%;
  margin-top: calc(-1 * var(--home-header-height));
  min-height: 100vh;
  min-height: 100svh;
  isolation: isolate;
  overflow: hidden;
  background: #090c0d;
  color: #f5f2e9;
}
.home-cover-art { position: absolute; inset: 0; margin: 0; background: var(--photo-surface, #222222); -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
/* Keep the photograph anchored to the viewport while the identity scrolls.
   Clip at the hero's own edge so the next section covers it naturally, with
   no scroll listener, translating image, or image layer behind later pages.
   Engines without clipping and reduced-motion readers retain normal flow. */
@supports (clip-path: inset(0)) {
  @media (prefers-reduced-motion: no-preference) {
    .home-cover { clip-path: inset(0); }
    .home-cover-art {
      position: fixed;
      inset: 0 0 auto;
      height: 100vh;
      height: 100svh;
    }
  }
}
.home-cover-picture { display: block; width: 100%; height: 100%; }
.home-cover-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 55% 50%; transform: translate3d(0, 0, 0) scale(1.035); transform-origin: 55% 50%; cursor: default; pointer-events: none; -webkit-user-drag: none; }
/* A gradient provides the text contrast without a full-screen backdrop blur
   that must be sampled again on every frame of the photo entrance. */
.home-cover-art::before { display: none; }
.home-cover-art::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  pointer-events: none;
  background-color: rgba(9, 12, 13, .08);
  transition: background-color 450ms ease;
  background-image: linear-gradient(90deg, rgba(4, 13, 13, .62), rgba(4, 13, 13, .24) 39%, transparent 65%), linear-gradient(0deg, rgba(4, 13, 13, .28), transparent 35%);
}
/* The three-part identity sits just above the geometric centre. Equal header
   clearance plus a 16px optical adjustment also keeps short screens usable. */
html body#page-top.home-page .home-cover-inner { position: relative; z-index: 1; display: flex; align-items: center; padding-block: calc(var(--home-header-height) + 20px) max(calc(var(--home-header-height) + 36px), env(safe-area-inset-bottom)); }
/* The hero remains in normal document flow as a clipping window. When its
   complete introduction fits, its inner scene is viewport-anchored just like
   the photograph. The next opaque section covers both without a scroll loop. */
@supports (clip-path: inset(0)) {
  @media (prefers-reduced-motion: no-preference) {
    html body#page-top.home-page.home-cover-pinned .home-cover-inner {
      position: fixed;
      inset: 0 0 auto;
      min-height: 100vh;
      min-height: 100svh;
    }
  }
}
html body#page-top.home-page .home-cover-copy { width: min(72%, 840px); margin: 0; text-align: left; }
html body#page-top.home-page .home-cover h1 { margin: 0; font-family: var(--serif); font-size: clamp(61px, 5.35vw, 94px); font-weight: 300; line-height: 1.04; letter-spacing: -.035em; }
.home-cover h1 > span { display: block; --cover-travel: 6px; }
html body#page-top.home-page .home-cover-role { margin: 18px 0 0; color: var(--on-photo, #F2F1EC); font-family: var(--serif); font-size: clamp(24px, 2.15vw, 34px); font-weight: 300; line-height: 1.3; letter-spacing: -.02em; text-wrap: pretty; }
.home-cover-role em { color: var(--on-photo-accent, #ADC7C6); }
.home-cover-role > .home-cover-enter { display: block; }
.home-cover-action-wrap { margin-top: 32px; }
.home-cover-actions { margin: 0; }
.home-cover-button { display: inline-flex; align-items: center; justify-content: space-between; min-height: 54px; max-width: 100%; gap: 28px; padding: 13px 22px; border: 1px solid rgba(237, 236, 225, .65); background: rgba(9, 22, 22, .78); color: #f5f2e9; font-size: 12px; line-height: 1.5; letter-spacing: .02em; transition: border-color var(--theme-colour-duration, 350ms) ease, background-color var(--theme-colour-duration, 350ms) ease; }
.home-cover-button .arrow-icon { width: 18px; height: 18px; color: #d9c2a3; }
.home-cover-button:focus-visible { outline-color: #f5f2e9; outline-offset: 5px; }
.home-cover:focus-within .home-cover-enter { animation: none !important; opacity: 1; transform: none; }
@media (prefers-reduced-motion: no-preference) {
  html.home-hero-animating .home-cover-enter { will-change: opacity, transform; }
  html.home-hero-pending .home-cover-enter { opacity: 0; animation: none; }
  html.home-hero-ready .home-cover-enter { animation: homeCoverTextIn 1650ms cubic-bezier(.22, .61, .36, 1) var(--cover-delay, 0ms) both; }
  /* A keyframe has a defined first frame even when the image is cached.
     Fade only the decoded photograph; never blur or move its pixels. */
  html.home-hero-pending .home-cover-photo { opacity: 0; }
  html.home-hero-ready .home-cover-photo.is-home-image-ready { animation: homeCoverPhotoIn 1100ms cubic-bezier(.33, 0, .2, 1) both; transition: none; }
  html.home-hero-animating .home-cover-photo { will-change: opacity; }
  @keyframes homeCoverPhotoIn { from { opacity: 0; } to { opacity: 1; } }
  @keyframes homeCoverTextIn { from { opacity: 0; transform: translate3d(0, var(--cover-travel, 10px), 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
}
@media (hover: hover) and (pointer: fine) {
  .home-cover-button:hover { border-color: #f5f2e9; background: rgba(9, 22, 22, .95); }
  .home-cover-button:hover .arrow-icon { transform: translateX(3px); }
}
@media (max-width: 1199px) {
  html body#page-top.home-page .home-cover-copy { width: min(100%, 680px); }
  html body#page-top.home-page .home-cover h1 { font-size: clamp(57px, 5.35vw, 74px); }
}
@media (max-width: 700px) {
  html body#page-top.home-page .home-cover-copy { width: 100%; max-width: 560px; margin-inline: auto; text-align: center; }
  .home-cover-art::after { background-image: radial-gradient(ellipse at 50% 48%, rgba(4, 13, 13, .28), transparent 76%), linear-gradient(0deg, rgba(4, 13, 13, .6), rgba(4, 13, 13, .38) 58%, rgba(4, 13, 13, .04)); }
  html body#page-top.home-page .home-cover-role { margin-top: 16px; font-size: clamp(22px, 5.5vw, 28px); }
  html body#page-top.home-page .home-cover h1 { font-size: clamp(46px, 12.5vw, 57px); }
  .home-cover-action-wrap { margin-top: 28px; }
  .home-cover-button { min-height: 52px; padding-inline: 20px; gap: 24px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-cover-enter, .home-cover-photo { animation: none !important; opacity: 1 !important; transform: none !important; }
}
.home-editorial { padding-block: clamp(28px, 2.8vw, 40px) clamp(72px, 8vw, 112px); }
html[data-theme="light"] .home-page .copyright-signature { filter: brightness(0) !important; }
.home-editorial-grid {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  align-items: center;
  gap: clamp(48px, 7vw, 112px);
}
.home-kicker {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 28px;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--home-muted);
}
.home-kicker::after {
  width: 40px;
  height: 1px;
  flex: 0 0 40px;
  background: currentColor;
  opacity: .65;
  content: "";
}
.home-display {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(48px, 5.6vw, 78px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: .99;
  text-wrap: balance;
}
.home-display > span { display: block; }
.home-display em { color: inherit; font-weight: 400; }
.home-editorial-copy { max-width: 420px; padding-top: 42px; }
.home-editorial-copy p {
  margin-bottom: 28px;
  color: var(--home-soft);
  font-size: clamp(15px, 1.25vw, 17px);
  line-height: 1.95;
  text-wrap: pretty;
}
.home-small-rule { display: block; width: 48px; height: 1px; background: var(--home-muted); }

.home-selected { padding-block: 0 clamp(76px, 8vw, 120px); }
.home-selected > .page-shell { padding-top: clamp(64px, 6vw, 88px); }
.home-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(40px, 6vw, 96px);
  margin-bottom: clamp(40px, 4.5vw, 64px);
}
.home-section-head > div:first-child { min-width: 0; flex: 1; }
.home-selected-copy { width: 38%; max-width: 420px; flex: 0 0 auto; color: var(--home-soft); font-size: clamp(15px, 1.25vw, 17px); line-height: 1.95; text-wrap: pretty; }
.home-selected-copy p { margin: 0; }
.home-editorial-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  flex: 0 0 auto;
  min-height: 44px;
  margin-bottom: 5px;
  border-bottom: 1px solid var(--home-muted);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: border-color var(--theme-colour-duration, 240ms) var(--home-ease);
}
.home-photo-grid, .home-destination-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.home-photo-card { min-width: 0; margin: 0; }
.home-photo-link { display: block; }
.home-photo-frame { overflow: hidden; aspect-ratio: 3 / 2; background: var(--photo-matte); }
.home-photo-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  transition: transform 1100ms var(--home-ease);
}
.home-photo-card figcaption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-top: 18px;
  color: var(--home-soft);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.6;
  text-transform: uppercase;
}
.home-photo-card figcaption > :last-child { color: var(--home-muted); text-align: right; font-size: 9px; }

.home-explore {
  padding-block: 0 clamp(76px, 7vw, 104px);
  background: var(--home-dark);
  color: var(--home-light);
}
.home-explore > .page-shell { border-top: 1px solid var(--home-rule); padding-top: clamp(56px, 6vw, 80px); }
.home-explore-head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.home-explore .home-kicker { margin: 0; color: var(--home-muted); }
.home-explore-note { margin: 0; color: var(--home-soft); font-family: var(--serif); font-size: 23px; font-style: italic; line-height: 1.4; }
.home-destination {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-width: 0;
  width: 100%;
  min-height: 180px;
  aspect-ratio: 5 / 4;
  overflow: hidden;
  background: #272b24;
  color: #f5f1e8;
  isolation: isolate;
}
.home-destination > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 45%;
  transition: transform 1100ms var(--home-ease);
}
.home-destination::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(8, 11, 8, .06) 16%, rgba(8, 11, 8, .78) 100%);
  content: "";
}
.home-destination-copy { width: 100%; padding: clamp(22px, 2.5vw, 36px); }
.home-destination h3 {
  margin: 0 0 26px;
  font-family: var(--serif);
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: 1.08;
}
.home-destination-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .15em;
  line-height: 1.6;
  text-transform: uppercase;
}
.home-destination-label .arrow-icon { width: 17px; height: 17px; }
.home-destination:focus-visible { outline-color: #e3c59e; outline-offset: 6px; }

.home-quote {
  position: relative;
  display: grid;
  align-items: center;
  min-height: clamp(350px, 36vw, 540px);
  overflow: hidden;
  background: var(--photo-matte);
  color: #f6f0e5;
  isolation: isolate;
}
.home-quote-photo {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 58%;
}
.home-quote::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(8, 10, 8, .66), rgba(8, 10, 8, .16) 90%);
  content: "";
}
.home-quote-inner { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; padding-block: 84px; }
.home-quote blockquote {
  max-width: 760px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(27px, 2.8vw, 42px);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.01em;
  line-height: 1.45;
  text-wrap: pretty;
}
.home-quote-line { display: block; }
.home-quote-note { flex: 0 0 auto; margin: 0 0 10px; font-size: 9px; letter-spacing: .17em; text-transform: uppercase; }
.home-quote-note span { padding-inline: 8px; }

/* Contact has its own generous chapter before the smaller footer. Its surface
   stays still; the existing heading, copy and bottom line reveal within it. */
.home-page .contact-section {
  display: grid;
  align-content: center;
  min-height: clamp(600px, 78svh, 880px);
  padding-block: clamp(80px, 8vw, 112px);
}
.home-page .contact-content {
  align-items: center;
  padding-block: clamp(44px, 5vw, 64px) clamp(56px, 6vw, 80px);
}
.home-page .contact-content h2 { line-height: .94; }
.home-page #contact { scroll-margin-top: 0; }

/* One reveal state from the site's observer. Groups keep their geometry and
   surface stable, while their text follows a short, connected sequence. */
@media (prefers-reduced-motion: no-preference) {
  html.has-reveal .home-page .contact-section.reveal-on-scroll { opacity: 1; transform: none; transition: none !important; }
  html.has-reveal .home-page.home-scroll-ready .home-reveal.reveal-on-scroll {
    opacity: 0;
    transform: translate3d(0, 12px, 0);
    transition: opacity var(--home-text-time) var(--home-ease) var(--home-delay, 0ms), transform var(--home-text-time) var(--home-ease) var(--home-delay, 0ms) !important;
  }
  html.has-reveal .home-page.home-scroll-ready .home-reveal.is-visible { opacity: 1; transform: none; }
  html.has-reveal .home-page.home-scroll-ready .home-group.reveal-on-scroll { opacity: 1; transform: none; transition: none !important; }
  html.has-reveal .home-page.home-scroll-ready .home-group.reveal-on-scroll .home-motion {
    opacity: 0;
    transform: translate3d(0, 12px, 0);
    transition: opacity var(--home-text-time) var(--home-ease) var(--home-delay, 0ms), transform var(--home-text-time) var(--home-ease) var(--home-delay, 0ms);
  }
  html.has-reveal .home-page.home-scroll-ready .home-group.is-visible .home-motion { opacity: 1; transform: none; }
  .home-line-one { --home-delay: 80ms; }
  .home-line-two { --home-delay: 160ms; }
  .home-editorial-copy, .home-selected-copy, .home-editorial-link, .home-explore-note { --home-delay: 160ms; }
  .home-photo-card:nth-child(2), .home-destination:nth-child(2) { --home-delay: 100ms; }
  .home-photo-card:nth-child(3), .home-destination:nth-child(3) { --home-delay: 140ms; }
  html.has-reveal .home-page.home-scroll-ready.home-media-enabled .home-reveal.reveal-on-scroll [data-home-photo] {
    opacity: 0;
    transform: scale(1.015);
    transition: opacity var(--home-photo-time) var(--home-ease) var(--home-delay, 0ms), transform var(--home-photo-time) var(--home-ease) var(--home-delay, 0ms);
  }
  html.has-reveal .home-page.home-scroll-ready.home-media-enabled .home-reveal.is-visible [data-home-photo].is-home-image-ready { opacity: 1; transform: scale(1); }
  .home-quote blockquote { --home-delay: 180ms; }
  .home-quote-note { --home-delay: 260ms; }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .home-page .home-photo-link:hover img,
  html.has-reveal .home-page.home-scroll-ready.home-media-enabled .home-reveal.is-visible .home-photo-link:hover .is-home-image-ready,
  .home-page .home-destination:hover > img,
  html.has-reveal .home-page.home-scroll-ready.home-media-enabled .home-destination.is-visible:hover > .is-home-image-ready { transform: scale(1.025); }
  .home-editorial-link:hover { border-color: var(--home-ink); }
  .home-editorial-link:hover .arrow-icon, .home-destination:hover .arrow-icon { transform: translate(2px, -2px); }
}
.home-destination:active { opacity: .92; }

@media (max-width: 1000px) {
  .home-editorial-grid { gap: 44px; grid-template-columns: 1.08fr .92fr; }
  .home-display { font-size: clamp(46px, 6.4vw, 64px); }
  .home-destination-copy { padding: clamp(16px, 2.3vw, 22px); }
  .home-destination h3 { font-size: clamp(21px, 2.8vw, 28px); margin-bottom: clamp(18px, 2.6vw, 26px); }
  .home-quote-inner { align-items: flex-start; flex-direction: column; gap: 36px; }
  .home-quote-note { margin: 0; }
}

@media (max-width: 700px) {
  html:not(.has-reveal):not(.home-booting) .home-page .header-inner { flex-wrap: wrap; gap: 12px; padding-block: 16px; }
  html:not(.has-reveal):not(.home-booting) .home-page .header-controls { flex: 1 1 100%; }
  html:not(.has-reveal):not(.home-booting) .home-page :is(.menu-toggle, .theme-toggle) { display: none; }
  html:not(.has-reveal):not(.home-booting) .home-page .primary-navigation {
    position: static;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    align-items: center;
    gap: 6px 20px;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    padding: 0;
    border: 0;
    opacity: 1;
    visibility: visible;
    transform: none !important;
    background: transparent !important;
    box-shadow: none;
    pointer-events: auto;
  }
  html:not(.has-reveal):not(.home-booting) .home-page .primary-navigation a { min-height: 44px; font-size: 11px; opacity: 1 !important; transform: none !important; }
  .home-editorial { padding-block: 28px 72px; }
  .home-editorial-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .home-kicker { margin-bottom: 24px; font-size: 9px; gap: 14px; }
  .home-display { font-size: clamp(43px, 9.5vw, 64px); line-height: 1.04; }
  .home-editorial-copy { padding-top: 0; max-width: 520px; }
  .home-editorial-copy p { font-size: 15px; line-height: 1.9; }
  .home-selected { padding-block: 0 72px; }
  .home-selected > .page-shell { padding-top: 64px; }
  .home-section-head { align-items: flex-start; flex-direction: column; gap: 28px; margin-bottom: 36px; }
  .home-selected-copy { width: 100%; max-width: 520px; font-size: 15px; line-height: 1.9; }
  .home-editorial-link { margin: 0; }
  .home-photo-grid, .home-destination-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .home-photo-card figcaption { padding-top: 14px; }
  .home-explore { padding-block: 0 72px; }
  .home-explore > .page-shell { padding-top: 56px; }
  .home-explore-head { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 32px; }
  .home-explore-note { font-size: 22px; }
  .home-destination-grid { gap: 20px; }
  .home-destination { aspect-ratio: 3 / 2; }
  .home-destination-copy { padding: clamp(24px, 6vw, 38px); }
  .home-destination h3 { font-size: clamp(28px, 6vw, 36px); margin-bottom: 22px; }
  .home-quote { min-height: 390px; }
  .home-quote-inner { padding-block: 64px; gap: 36px; }
  .home-quote blockquote { font-size: clamp(26px, 5.9vw, 38px); line-height: 1.45; }
  .home-quote-photo { object-position: 60% 50%; }
  .home-quote::after { background: rgba(8, 10, 8, .44); }
  .home-page { --home-text-time: 800ms; --home-photo-time: 1100ms; }
  .home-photo-card:nth-child(n), .home-destination:nth-child(n) { --home-delay: 0ms; }
  .home-page .contact-section { min-height: clamp(560px, 78svh, 760px); padding-block: 72px; }
  .home-page .contact-content { gap: 36px; padding-block: 40px 56px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .home-reveal, .home-page .home-motion, .home-page [data-home-photo] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Short landscape windows and zoom reflow keep all introduction content usable. */
@media (max-height: 600px) and (min-aspect-ratio: 4/3) {
  html body#page-top.home-page .home-cover-inner { padding-block: calc(var(--home-header-height) + 12px); }
  html body#page-top.home-page .home-cover h1 { font-size: clamp(34px, 5.2vw, 54px); }
  html body#page-top.home-page .home-cover-role { margin-top: 12px; font-size: clamp(20px, 2.7vw, 24px); }
  .home-cover-action-wrap { margin-top: 22px; }
  .home-cover-button { min-height: 46px; padding-block: 10px; }
}

/* A theme tint changes without interpolating expensive blur filters. */
html[data-theme="dark"] .home-cover-art::after { background-color: rgba(9, 12, 13, .50); }
.home-page, .home-page :is(.home-paper, .home-explore, .contact-section, .site-footer) { transition: background-color var(--theme-colour-duration, 450ms) ease, color var(--theme-colour-duration, 450ms) ease; }
/* Each destination enters as one unit. Decode fades and hover zooms do not
   inherit the card stagger or restart the scroll reveal. */
@media (prefers-reduced-motion: no-preference) {
  html.has-reveal body.home-page.home-scroll-ready.home-media-enabled .home-destination.reveal-on-scroll > [data-home-photo] {
    opacity: 0; transform: scale(1);
    transition: opacity 900ms var(--home-ease), transform 1100ms var(--home-ease);
    transition-delay: 0ms;
  }
  html.has-reveal body.home-page.home-scroll-ready.home-media-enabled .home-destination.reveal-on-scroll > .is-home-image-ready { opacity: 1; }
  html.has-reveal .home-page.home-scroll-ready .home-destination.reveal-on-scroll { transform: translate3d(0, 8px, 0); }
  html.has-reveal .home-page.home-scroll-ready .home-destination.is-visible { transform: none; }
}
.home-destination:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
@media (prefers-reduced-motion: reduce) {
  .home-cover-art::after, .home-page, .home-page :is(.home-paper, .home-explore, .contact-section, .site-footer) { transition: none !important; }
}

@media (prefers-reduced-motion: no-preference) {
  html.home-hero-ready .home-cover-photo:not(.is-home-image-ready) { opacity: 0; animation: none; }
  html.home-hero-restored .home-cover-enter { animation: none !important; opacity: 1; transform: none; }
  html.home-hero-restored .home-cover-photo.is-home-image-ready { animation: none !important; opacity: 1; }
}

/* Outer identity layers follow scroll; their inner layers keep the one-time
   entrance. No scaling, blur or geometry changes are applied to the name.
   The stronger selector also prevents theme fades from delaying the scrub. */
@media (prefers-reduced-motion: no-preference) {
  html[data-theme] body#page-top.home-page.home-scroll-motion-ready.home-cover-pinned .home-cover-exit {
    opacity: var(--hero-exit-opacity, 1);
    transform: translate3d(var(--hero-exit-x, 0px), 0, 0);
    transition: none !important;
  }
  html[data-theme] body#page-top.home-page.home-scroll-motion-ready.home-cover-pinned .home-cover-action-wrap.is-exit-complete {
    pointer-events: none;
  }
  html[data-theme] body#page-top.home-page.home-scroll-motion-ready.home-cover-pinned .home-cover-copy:focus-within .home-cover-exit {
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto;
  }
  /* Chapter motion owns only these marked main-content layers. Card rows
     rise as a unit; captions travel with them. The closing photo stays still. */
  html body#page-top.home-page.home-scroll-motion-ready main [data-home-scrub] {
    transition: none !important;
    animation: none !important;
  }
  html body#page-top.home-page.home-scroll-motion-ready:not(.home-native-motion) main [data-home-scrub] {
    opacity: var(--story-opacity, 1) !important;
    transform: translate3d(var(--story-x, 0px), var(--story-y, 0px), 0) !important;
  }
  /* A card's photo, caption and link travel together. Scroll only changes its
     entrance state; the browser owns the reversible motion between states. */
  html body#page-top.home-page.home-card-motion-ready [data-home-entry] {
    opacity: .000001;
    transform: translate3d(0,22px,0);
    transition: opacity 900ms var(--home-ease),
      transform 900ms var(--home-ease) !important;
  }
  html body#page-top.home-page.home-card-motion-ready .is-home-card-visible[data-home-entry] {
    opacity: 1; transform: translate3d(0,0,0);
    transition-delay: var(--entry-delay, var(--home-delay, 0ms)), 0ms !important;
  }
  html body#page-top.home-page.home-scroll-motion-ready [data-home-entry] img {
    transform: scale(var(--photo-hover-scale, 1)) !important;
    transition: transform 1100ms var(--home-ease), opacity 450ms ease !important;
  }
  html body#page-top.home-page.home-scroll-motion-ready.home-media-enabled [data-home-entry] img:not(.is-home-image-ready) {
    opacity: 0 !important;
  }
  html body#page-top.home-page.home-card-motion-ready [data-home-entry].is-story-focused {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  html body#page-top.home-page.home-scroll-motion-ready main :is(.is-story-focused[data-home-scrub], .is-story-focused [data-home-scrub]) {
    opacity: 1 !important;
    transform: none !important;
  }
  html body#page-top.home-page.home-scroll-motion-ready main .is-story-focused [data-home-photo] {
    transform: none !important;
  }
}
@media (max-width: 700px) and (prefers-reduced-motion: no-preference) {
  html body#page-top.home-page.home-card-motion-ready [data-home-entry] {
    --entry-delay: 0ms;
    transform: translate3d(-18px,0,0);
  }
  html body#page-top.home-page.home-card-motion-ready .is-home-card-visible[data-home-entry] { transform: translate3d(0,0,0); }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .home-photo-link:hover .home-photo-frame,
  .home-destination:hover { --photo-hover-scale: 1.025; }
}
