/* HOME scenes meet the viewport edges; content keeps its readable inner spacing. */
body:has(.morning-world) #main,
.morning-world {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.morning-world .am-ground {
  margin: 0;
  padding: 0;
  display: flow-root;
}
.morning-world .am-sky.enkai-hero,
.morning-world .home-about-cloud,
.morning-world .island-characters,
.morning-world .archive-library,
.morning-world .cloud-news,
.morning-world .business-cloud,
.morning-world .shop-gift,
.morning-world .contact-cloud {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  border: 0;
  border-radius: 0;
}
/* Zero-height joins overlap existing scenery; they never add a spacer row. */
.morning-world .home-scene-join {
  --join-height: clamp(48px, 5.5vw, 88px);
  position: relative;
  z-index: 6;
  height: 0;
  min-height: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: visible;
  pointer-events: none;
}
.home-scene-join::before {
  content: "";
  position: absolute;
  top: calc(var(--join-height) * -.5);
  left: 0;
  width: 100%;
  height: var(--join-height);
  pointer-events: none;
}
.home-scene-join--cloud::before {
  background: url('assets/morning-cloud.webp') center 55% / 108% 160% no-repeat;
  -webkit-mask-image: linear-gradient(transparent, #000 38%, #000 62%, transparent);
  mask-image: linear-gradient(transparent, #000 38%, #000 62%, transparent);
  opacity: .82;
  filter: blur(1.5px);
  animation: home-cloud-join-drift 24s ease-in-out infinite alternate;
  animation-play-state: paused;
}
.home-scene-join--cloud.is-flowing::before { animation-play-state: running; }
/* Keep the central SCROLL cue clear while clouds join the two outer horizons. */
.home-scene-join--dawn::before {
  background-image: url('assets/morning-cloud.webp'), url('assets/morning-cloud.webp');
  background-position: left center, right center;
  background-size: 46% 160%;
  opacity: .76;
}
.home-scene-join--paper::before { background-position: 70% 55%; animation-duration: 31s; }
.home-scene-join--blue::before { background-position: 25% 55%; opacity: .72; animation-direction: alternate-reverse; }
.home-scene-join--contact::before { opacity: .65; }
.morning-world .home-scene-join--blend { --join-height: clamp(20px, 2.5vw, 40px); }
.home-scene-join--blend::before {
  background: linear-gradient(transparent, #edf2f6 48%, #edf2f6 52%, transparent);
}
.home-scene-join--warm::before {
  background: linear-gradient(transparent, #f7f1e9 48%, #f7f1e9 52%, transparent);
}
/* Restore separate near and distant cloud layers over the existing official cast. */
.morning-world .enkai-hero .am-cloud-back {
  z-index: 2;
  left: -12%;
  bottom: 15%;
  width: 124%;
  height: 26%;
  object-fit: fill;
  opacity: .48;
  animation: home-cloud-back-drift 34s ease-in-out infinite alternate-reverse;
}
.morning-world .enkai-hero .am-cloud-front {
  left: -10%;
  width: 120%;
  height: 25%;
  bottom: -6%;
  opacity: .68;
  animation: home-cloud-front-drift 22s ease-in-out infinite alternate;
}
.morning-world.am-outside .am-cloud { animation-play-state: paused; }
.am-paused .home-scene-join::before,
.am-hidden .home-scene-join::before { animation-play-state: paused !important; }
@keyframes home-cloud-front-drift {
  from { translate: -2.5% 0; }
  to { translate: 2.5% 0; }
}
@keyframes home-cloud-back-drift {
  from { translate: -1.8% 0; }
  to { translate: 1.8% 0; }
}
@keyframes home-cloud-join-drift {
  from { translate: -1.4% 0; }
  to { translate: 1.4% 0; }
}
body:has(.morning-world) > .footer {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  border-radius: 0;
}
@media (max-width: 540px) {
  .morning-world .home-scene-join { --join-height: 44px; }
  .morning-world .home-scene-join--blend { --join-height: 20px; }
  .home-scene-join--cloud::before { filter: none; opacity: .72; }
  .morning-world .enkai-hero .am-cloud-back { width: 150%; left: -25%; height: 19%; bottom: 25%; opacity: .4; }
  .morning-world .enkai-hero .am-cloud-front { width: 150%; left: -25%; height: 23%; bottom: -4%; opacity: .6; }
  .morning-world .am-sky.enkai-hero {
    height: max(680px, 100svh);
    max-height: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .morning-world .home-scene-join::before,
  .morning-world .enkai-hero .am-cloud { animation: none !important; translate: none; }
}

/* Supplied ABOUT visual: keep the approved artwork whole and place only transparent link targets above it. */
.home-about-supplied{position:relative;width:100%;margin:0;padding:0;line-height:0}
.home-about-supplied-image{width:100%;height:auto;display:block}
.home-about-supplied-hotspots{position:absolute;inset:0;margin:0;padding:0;list-style:none}
.home-about-supplied-hit{position:absolute;display:block;background:transparent;line-height:normal;z-index:1}
.home-about-supplied-hit:focus-visible{outline:3px solid #fff;outline-offset:3px}
.home-about-supplied-hit--concept{left:51.5%;top:57.4%;width:13.5%;height:23%}
.home-about-supplied-hit--story{left:66%;top:57.4%;width:13.5%;height:23%}
.home-about-supplied-hit--journey{left:80.2%;top:57.4%;width:13.5%;height:23%}
.home-about-supplied-hit--more{left:58.7%;top:82.2%;width:28.3%;height:8.9%}
