/* 开场层与主页共用同一文档；透明度由视频的实际播放时间控制。 */
body.intro-active{overflow:hidden}
.op{
  position:fixed;inset:0;z-index:100;
  background:#000;opacity:1;outline:none;
}
.op-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;opacity:0;
}
.op.is-playing .op-video{opacity:1}
.op-loader{
  position:absolute;inset:0;z-index:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:24px;text-align:center;color:#b9e9ff;
  background:radial-gradient(ellipse at center,#071526 0%,#02060d 45%,#000 80%);
}
.op-loader__logo{
  display:block;width:clamp(140px,24vw,200px);height:auto;
  filter:drop-shadow(0 0 22px rgba(111,216,255,.3));
  animation:loadingPulse 1.8s ease-in-out infinite;
}
.op-loader__status{margin:18px 0 0;font-size:12px;letter-spacing:.16em;line-height:1.8}
.op-loader__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:20px;margin-top:22px}
.op-loader button{
  font:inherit;font-size:13px;letter-spacing:.08em;color:#b9e9ff;
  border:1px solid rgba(111,216,255,.4);border-radius:3px;
  background:transparent;padding:10px 18px;cursor:pointer;
}
.op-loader button:hover{background:rgba(111,216,255,.12)}
.op-loader button:focus-visible{outline:2px solid #b9e9ff;outline-offset:4px}
.op.needs-action .op-loader__logo{animation:none}
@keyframes loadingPulse{
  0%,100%{opacity:.35;transform:scale(.97)}
  50%{opacity:1;transform:scale(1.02)}
}
@media(prefers-reduced-motion:reduce){.op-loader__logo{animation:none}}
