.entrance-stage{padding:0!important;overflow:hidden!important;background:#03040a;min-height:0;--entrance-duration:1900ms}
.entrance-canvas{position:absolute;inset:0;isolation:isolate;overflow:hidden}
.entrance-image,.entrance-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
/* 暗底保持固定；两张重合的底图通过光源遮罩局部显现。 */
.entrance-room{filter:brightness(.1) saturate(.65)}
.entrance-pool{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity var(--entrance-duration) ease;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}
.entrance-warm{mask-image:radial-gradient(ellipse 23% 38% at 7.4% 41%,#000 0%,#000d 22%,#0008 48%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 23% 38% at 7.4% 41%,#000 0%,#000d 22%,#0008 48%,transparent 100%)}
.entrance-cool{mask-image:radial-gradient(ellipse 40% 62% at 91% 62%,#000 0%,#000d 25%,#0008 52%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 40% 62% at 91% 62%,#000 0%,#000d 25%,#0008 52%,transparent 100%)}
.entrance-full{opacity:0;transition:opacity var(--entrance-duration) ease-in-out}
.entrance-warm .entrance-image{animation:entrance-candle-flicker 3.7s ease-in-out infinite;filter:brightness(1.03) sepia(.07)}
.entrance-cool .entrance-image{animation:entrance-crystal-flicker 4.9s ease-in-out infinite;filter:brightness(1.04)}
.entrance-stage[data-phase="1"] .entrance-warm,.entrance-stage[data-phase="2"] .entrance-warm,.entrance-stage[data-phase="3"] .entrance-warm,.entrance-stage[data-phase="2"] .entrance-cool,.entrance-stage[data-phase="3"] .entrance-cool,.entrance-stage[data-phase="3"] .entrance-full{opacity:1}
.entrance-stage .entrance-light{position:absolute;left:7.4%;top:41%;width:clamp(76px,10.5vw,150px);aspect-ratio:1;transform:translate(-50%,-50%);border:0;border-radius:50%;background:transparent;padding:0;z-index:4}
.entrance-light i{display:block;position:absolute;inset:24%;border-radius:50%;border:1.5px solid #ffe2b8c0;box-shadow:0 0 28px 4px #ffbb69b0,inset 0 0 20px #f5cb90a0;animation:entrance-breathe 2.8s ease-in-out infinite}
.entrance-light i:after{content:'';position:absolute;inset:36%;border-radius:50%;background:#fff6e0;box-shadow:0 0 26px 12px #f7c27aa0,0 0 60px 22px #f1ba7040}
/* 外圈光晕：慢速呼吸，提示首次访问者点击这里。 */
.entrance-light:before{content:'';position:absolute;inset:-20%;border-radius:50%;pointer-events:none;background:radial-gradient(circle closest-side,#ffd08aa0 0%,#ffbe7470 30%,#ffb86a38 55%,#ffb86a12 80%,#ffb86a00 100%);animation:entrance-halo 4.6s ease-in-out infinite}
.entrance-light:hover i,.entrance-light:focus-visible i{border-color:#fff0d4;box-shadow:0 0 36px 8px #ffc77cd0,inset 0 0 22px #f5cb90c0}
.entrance-stage .entrance-light:disabled{opacity:0;pointer-events:none}
.entrance-stage[data-phase="1"] .entrance-light{left:91%;top:62%}
.entrance-stage[data-phase="1"] .entrance-light i{border-color:#ddd5ffc0;box-shadow:0 0 28px 4px #ab9bffb0,inset 0 0 20px #beaaffa0}
.entrance-stage[data-phase="1"] .entrance-light:before{background:radial-gradient(circle closest-side,#c2b4ff98 0%,#ab9bff68 30%,#a796ff34 55%,#a796ff10 80%,#a796ff00 100%)}
.entrance-stage[data-phase="2"] .entrance-light{left:50%;top:55%}
.entrance-stage .entrance-exit,.entrance-stage .entrance-skip{position:absolute;top:22px;background:transparent;border:0;padding:10px 14px;color:#d2c8b8;font-size:13px;letter-spacing:.12em;z-index:5;text-shadow:0 1px 4px #000}
.entrance-exit{left:18px}.entrance-skip{right:18px}
.entrance-stage .entrance-hint{position:absolute;bottom:4%;width:100%;margin:0;text-align:center;color:#ddd0b5ad;font-size:clamp(12px,1vw,15px);letter-spacing:.3em;pointer-events:none;text-shadow:0 2px 8px #000}
.entrance-holding .entrance-exit,.entrance-holding .entrance-skip{opacity:0;pointer-events:none}
.entrance-video-mode .entrance-light{left:50%;top:65%}
@keyframes entrance-candle-flicker{0%,100%{opacity:.96}12%{opacity:.79}19%{opacity:.98}28%{opacity:.85}43%{opacity:1}52%{opacity:.88}66%{opacity:.99}79%{opacity:.83}91%{opacity:.96}}
@keyframes entrance-crystal-flicker{0%,100%{opacity:.98}25%{opacity:.83}48%{opacity:1}72%{opacity:.88}}
@keyframes entrance-halo{0%,100%{transform:scale(.85);opacity:.4}50%{transform:scale(1.15);opacity:1}}
@keyframes entrance-breathe{0%,100%{transform:scale(.88);opacity:.55}50%{transform:scale(1.14);opacity:1}}
@media(prefers-reduced-motion:reduce){.entrance-light i,.entrance-light:before,.entrance-pool .entrance-image{animation:none}.entrance-pool,.entrance-full{transition-duration:80ms!important}}
