/* A startup-only editorial composition over the existing full-size scene. */
.opening-portal.intro-portal {
  display:none;
  /* A solid framing surface, revealed away by the aperture rather than faded. */
  --intro-ground:#ddd9d1;
}
html[data-theme="dark"] .opening-portal.intro-portal { --intro-ground:#353c45; }
html[data-home-intro]:not([data-page-transition-visit]) .intro-portal {
  position:fixed;
  z-index:9999;
  inset:0;
  display:block;
  overflow:hidden;
  pointer-events:auto;
  touch-action:pinch-zoom;
  color:var(--home-ink,#171719);
  animation:intro-fallback-release .01s step-end 6.5s forwards;
}
.intro-portal [data-intro-mask] { position:absolute; inset:0; display:block; width:100%; height:100%; }
.intro-portal :is([data-intro-white],[data-intro-sheet]) { fill:var(--intro-ground); }
.intro-portal [data-intro-hole],.intro-portal [data-intro-sheet] {
  transform-box:view-box;
  transform-origin:50% 50%;
}
.intro-portal [data-intro-hole] { transform:scale(0,.78); }
.intro-portal [data-intro-sheet] { transform:scale(.31,.78); }
.intro-word {
  position:absolute;
  top:0;
  left:0;
  display:block;
  width:max-content;
  max-width:none;
  margin:0;
  opacity:0;
  white-space:nowrap;
  font:400 clamp(28px,3vw,46px)/1.2 'Space Grotesk','PingFang SC','Microsoft YaHei',sans-serif;
  letter-spacing:-.045em;
  transform-origin:0 0;
  will-change:transform,opacity;
}
html[data-home-intro]:not([data-page-transition-visit]) { overflow:hidden; }
html[data-home-intro]:not([data-page-transition-visit]) body :is(.stage-title-wrap,.stage-intro,.stage-header,.case-rail,chingke-chat) {
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:none;
  animation:intro-content-fallback .01s step-end 6.5s forwards;
}
/* The full-screen chat host stays click-through when the CSS fallback reveals it. */
html[data-home-intro]:not([data-page-transition-visit]) chingke-chat { pointer-events:none!important; }
html[data-home-intro="settling"]:not([data-page-transition-visit]) body .stage-title-wrap {
  opacity:1;
  visibility:visible;
  animation:none;
  transition:none;
}
@keyframes intro-fallback-release {
  50%,to { opacity:0; visibility:hidden; pointer-events:none; }
}
@keyframes intro-content-fallback {
  50%,to { opacity:1; visibility:visible; pointer-events:auto; }
}
@media (max-width:767px) {
  .intro-word { font-size:clamp(22px,6.5vw,28px); }
}
@media (prefers-reduced-motion:reduce) {
  html[data-home-intro]:not([data-page-transition-visit]) .intro-portal { display:none; }
  html[data-home-intro]:not([data-page-transition-visit]) body :is(.stage-title-wrap,.stage-intro,.stage-header,.case-rail,chingke-chat) {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    animation:none;
  }
}
