@font-face{font-family:OpeningWenHei;src:url('../assets/fonts/HYWenHei-85W.otf') format('opentype');font-display:swap;font-weight:400}
body[data-page=home]{overflow:hidden;background:#183354}
body[data-page=home] .site-header,body[data-page=home] .site-footer{display:none!important}
body[data-page=home] .site-main{width:100%;height:100vh;height:100dvh;min-height:0;margin:0;padding:0;overflow:hidden}
#opening,#opening *{box-sizing:border-box}
#opening{position:relative;width:100%;height:100%;height:100vh;height:100dvh;overflow:hidden;isolation:isolate;touch-action:none;background:#183354;color:#fff;font-family:OpeningWenHei,'Microsoft YaHei',sans-serif}
#opening button{font:inherit;cursor:pointer;color:inherit}
#opening button:focus-visible{outline:3px solid #f9d487;outline-offset:5px}
#opening button:disabled{cursor:wait}
#scene,#veil{position:absolute;top:0;right:0;bottom:0;left:0}
#scene{overflow:hidden;z-index:2}
/* 开屏仅使用平面视频或平面原画，不设置 transform、filter、mask 或 will-change。 */
.opening-preset-poster,.opening-preset-video{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:49.8% 52%;pointer-events:none}
.opening-preset-video[hidden]{display:none}
#scene{transition:opacity .35s ease}
#brand-logo{z-index:1}
.opening-logo-glow{position:absolute;z-index:1;pointer-events:none;opacity:0;background:url('../assets/opening/logo-glow-cloud.svg') center/100% 100% no-repeat;transition:opacity .35s ease}
#opening[data-state=idle] .opening-logo-glow{opacity:1}
#brand-logo{position:absolute;left:50%;height:auto;opacity:0;pointer-events:none;transform:translateX(-50%);transition:opacity .35s ease}
#veil{z-index:7;background:#fff;opacity:0;pointer-events:none;transition:opacity .55s ease}
#enter{position:absolute;z-index:4;left:0;bottom:14%;width:100%;height:54px;border:0;background:linear-gradient(90deg,transparent,rgba(39,59,80,0.33333) 20%,rgba(39,59,80,0.33333) 80%,transparent);background:linear-gradient(90deg,transparent,#273b5055 20%,#273b5055 80%,transparent);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;text-shadow:0 2px 8px #102644;transition:opacity .55s}
.entry-title{font-size:23px;letter-spacing:.16em;padding-left:.16em}
.entry-sub{font-size:10px;letter-spacing:.12em;opacity:.8}
#opening[data-state=loading] #enter,#opening[data-state=failed] #enter,#opening[data-state=arrived] #enter,#opening[data-state=assembling] #enter{visibility:hidden}
#opening[data-state=arrived] #scene{visibility:hidden}
#status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#opening[data-state=loading] #status{z-index:8;left:16px;right:16px;top:42%;width:auto;height:auto;clip-path:none;white-space:normal;text-align:center;font-size:16px}
.opening-skip{display:none;position:absolute;z-index:8;top:52%;left:50%;transform:translateX(-50%);padding:12px 22px;border:1px solid #dfc990;border-radius:24px;background:#263e55;color:#fff8e6;white-space:nowrap;text-decoration:none;touch-action:manipulation}
#opening[data-state=loading] .opening-skip{display:block}
#failure{position:absolute;z-index:8;top:0;right:0;bottom:0;left:0;display:grid;align-content:center;justify-items:center;grid-gap:16px;gap:16px;background:#e8ddc6;color:#263e55;text-align:center;padding:24px}
#failure[hidden]{display:none}
#failure h1{font-size:max(24px, min(5vw, 36px));font-size:clamp(24px,5vw,36px);font-weight:400;margin:0}
#failure p{margin:0;font-size:14px;line-height:1.6}
#failure button{min-height:44px;padding:10px 24px;border:1px solid #345269;background:#fff8e6;color:#263e55;border-radius:24px}
@media(max-width:600px){#enter{bottom:17%;height:50px}.entry-title{font-size:21px}.entry-sub{font-size:9px}}
@media(max-height:450px){#enter{bottom:15%;height:46px}.entry-title{font-size:20px}}
@media(prefers-reduced-motion:reduce){#enter{transition:none}}
.opening-credits{position:absolute;z-index:5;left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;gap:16px;align-items:end;pointer-events:none;font-size:max(10px, min(1vw, 13px));font-size:clamp(10px,1vw,13px);line-height:1.4;color:#fff8e8;text-shadow:0 1px 5px #10273e,0 0 12px rgba(16,39,62,0.6);text-shadow:0 1px 5px #10273e,0 0 12px #10273e99}.opening-credits span:last-child{text-align:right;white-space:nowrap}
@media(max-width:520px){.opening-credits{font-size:10px;gap:8px;bottom:max(10px,env(safe-area-inset-bottom))}}
.opening-credits{opacity:0;transition:opacity .55s ease}.opening-credits span{opacity:0;transform:translateY(5px);transition:opacity .55s ease, transform .55s ease}#opening[data-state=idle] .opening-credits,#opening[data-state=idle] .opening-credits span{opacity:1;transform:none}#opening[data-state=entering] .opening-credits{opacity:0}

#opening[data-state=idle] #brand-logo{opacity:1}
#opening[data-state=entering] #enter{opacity:0;pointer-events:none}
#opening[data-state=entering] .opening-skip{display:block;top:auto;bottom:4%;font-size:12px}
@media(prefers-reduced-motion:reduce){#scene,#veil,#brand-logo{transition-duration:.1s}}

/* 用户选定 B：整片连续云光，原 Logo 保留轻微贴字辉光。 */
#brand-logo{filter:drop-shadow(0 0 .7px rgba(255,251,235,.38))}
