/* Dawn: blue-grey depth, a restrained warm edge, and a clear place to read.
   The approved coastal opening keeps its existing colours and composition. */
.site-page:not(.mother-home) {
  --text: #f5f3ee;
  --sub: #d4d7d9;
  --line: #d6d0c345;
  --dawn-warm: #d9c3a6;
  --dawn-dim: #b9bdc5;
}
.site-page:not(.mother-home) main { text-rendering: optimizeLegibility; }
.site-page:not(.mother-home) :is(h1,h2,h3) { text-wrap: balance; }
.site-page:not(.mother-home) p { text-wrap: pretty; }
.site-page:not(.mother-home) .eyebrow {
  color: var(--dawn-warm);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .19em;
}
.site-page:not(.mother-home) .text-link {
  border-bottom-color: #d6d0c36b;
  padding-block: 14px;
  min-height: 44px;
}
.site-page:not(.mother-home) .text-link:hover { color: #ead7bb; }
.site-page:not(.mother-home) .text-link > span { transition: transform .3s var(--ease); }
.site-page:not(.mother-home) .text-link:hover > span { transform: translate(3px,-2px); }
/* Only the full-width field list receives this broad reading veil. No image blur. */
.site-page .environment::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 22;
  pointer-events: none;
  background: linear-gradient(90deg,#12203375,#1522355e 60%,#1a28333d);
  opacity: var(--reading-wide,0);
}
.site-page:not(.mother-home) .environment-shade {
  background: linear-gradient(90deg,#0b172cad,#1422384d 47%,transparent 79%),linear-gradient(0deg,#0c19294d,transparent 43%);
  opacity: calc(.70 + var(--density));
}
.site-page:not(.mother-home) .environment-light {
  background: linear-gradient(105deg,#1f324914,transparent 58%),radial-gradient(ellipse at 83% 61%,#debc8205,transparent 57%);
}
.site-page:not(.mother-home) .environment-field {
  background: linear-gradient(112deg,transparent 31%,#c5c8d007 42%,#e2d5bd0d 49%,transparent 59%);
  opacity: calc(.25 + var(--passage) * .24);
}
@media (max-width: 760px) {
  .site-page:not(.mother-home) { --sub: #e1e2e1; }
  .site-page:not(.mother-home) .eyebrow { font-size: 9px; letter-spacing: .17em; }
  /* A softer backing crop supports small screens; the lower material remains sharp. */
  .site-page .environment-scene-group:not(.environment-japan) > .environment-scene-master {
    opacity: .45;
    filter: blur(5px);
  }
  .site-page .environment-scene-group > .environment-scene-focus {
    height: min(56svh,138vw,470px);
    object-position: 69% 50%;
    -webkit-mask-image: linear-gradient(180deg,transparent,#000 35%);
    mask-image: linear-gradient(180deg,transparent,#000 35%);
  }
  .site-page .environment > .environment-identity > .environment-scene-master { opacity: .28; }
  .site-page .environment > .environment-identity > .environment-scene-focus { height: min(58svh,490px); object-position: 78% 48%; }
  .site-page .environment > .environment-culture > .environment-scene-focus { object-position: 70% 50%; }
  .site-page:not(.mother-home) .environment-shade {
    background: linear-gradient(90deg,#101d3359,#13223920 90%),linear-gradient(180deg,#0b1b305c,transparent 45%,#1022374d);
  }
  .site-page .environment::before { background: linear-gradient(90deg,#0d1b2e7a,#1320357a); }
  .rwid-page .environment > .environment-culture::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .site-page:not(.mother-home) .text-link > span { transition: none; }
}

/* Read the inner-page groups as soon as their top enters the lower reading zone.
   A fragment at the viewport edge still enters gently; the coastal home is unchanged. */
.site-page:not(.mother-home) main [data-scroll-reveal] {
  opacity: clamp(.18, calc(.18 + (var(--reveal-opacity,1) - .18) * 3.5), 1);
}
@media (min-width: 761px) {
  /* Culture keeps the same film scene throughout. Shade only its right-hand reading area. */
  .culture-page .environment::before {
    background: linear-gradient(90deg,transparent 20%,#14243a10 35%,#1021378f 58%,#102137c7 87%,#112238ad);
  }
}
@media (max-width: 760px) {
  /* Local blue-grey veil behind the mobile Japan paragraph; the street stays luminous. */
  .marketing-page .environment > .environment-japan::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background: linear-gradient(180deg,transparent 23%,#10243b10 33%,#10243ba3 44%,#10243b9c 52%,#10243b32 63%,transparent 74%);
  }
}
