/* 万花筒计划 · 彩蛋（连续点顶栏那只眼睛 20 下）
   v3：汉字在主页本体上自己冒出来，密密麻麻、互相重叠，最后把整屏铺满。
   图层是透明的 —— 主页一直看得见自己是怎么被盖住的。 */

.egg-wrap{position:fixed;inset:-2vh -2vw;z-index:9000;display:none;pointer-events:none;overflow:hidden}
.egg-wrap.egg-on{display:block;animation:eggShake .18s steps(2,end) infinite}
.egg-wrap.egg-show{animation:eggShake .1s steps(2,end) infinite}
.egg-wrap.egg-out{opacity:0;transition:opacity .5s ease}

/* ---------- 汉字层：随机位置、随机大小、随机角度，互相压着 ---------- */
.egg-noise{position:absolute;inset:0;overflow:hidden;
  font-family:'Songti SC','SimSun','Noto Serif CJK SC','Source Han Serif SC',serif}
.egg-noise .ink{position:absolute;line-height:1;white-space:nowrap;color:#241811;
  transform-origin:50% 50%;will-change:transform,opacity}
.egg-noise .ink.red{color:#8a1414}
.egg-noise .ink.ink-b{font-weight:700}
.egg-noise .ink.ink-g{color:#5c5a52}
.egg-noise .ink.lite{color:#f7ebd8;text-shadow:0 0 7px rgba(40,20,10,.55)}
.egg-noise .ink.swap{animation:eggChar .5s steps(2,end) 1}

/* ---------- 中间那句 ---------- */
.egg-reveal{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;
  align-items:center;justify-content:center;opacity:0;transition:opacity .35s ease}
.egg-reveal.egg-show{opacity:1}
.egg-reveal.glitching{animation:eggGlitch .38s steps(2,end) 1}
.egg-line{margin:0;text-align:center;line-height:1.04}
.egg-line-s{margin-top:.5em}
.egg-big{font-size:clamp(54px,15vw,230px);font-weight:800;letter-spacing:.02em;color:#1b0f0c;
  text-shadow:2px 0 0 rgba(180,0,0,.45),-2px 0 0 rgba(0,170,185,.45),0 0 24px rgba(255,247,234,.95)}
.egg-sub{font-size:clamp(20px,4.6vw,46px);font-weight:600;letter-spacing:.34em;color:#2b1a15;
  text-shadow:0 0 18px rgba(255,247,234,.95)}
.egg-fill{display:block;height:3px;margin:.42em auto 0;width:0;background:#8a1414;
  box-shadow:0 0 10px rgba(138,20,20,.55);transition:width .9s ease}
.egg-show .egg-fill{width:min(64vw,520px)}

/* ---------- 逐字/亮线/闪烁 ---------- */
.egg-reveal .ch{display:inline-block;transition:opacity .18s linear}
.egg-reveal .ch.raw{opacity:.72}
.egg-reveal .ch.on{opacity:1}
.egg-reveal .ch.zd{text-shadow:1.5px 0 rgba(180,0,0,.42),-1.5px 0 rgba(0,165,180,.42)}
.egg-reveal .ch.bad{color:#8a1414}
.egg-scan{position:absolute;left:0;right:0;top:-24vh;height:22vh;z-index:3;pointer-events:none;
  background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(120,60,40,.10),rgba(255,255,255,0));
  animation:eggScan 3.4s linear infinite}
.egg-flash{position:absolute;inset:0;z-index:5;pointer-events:none;background:#fff;
  mix-blend-mode:difference;opacity:0;animation:eggFlash 4.6s steps(1,end) infinite}
.egg-vig{position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:multiply;
  background:radial-gradient(ellipse at center,rgba(255,255,255,0) 46%,rgba(88,44,28,.30) 100%)}

@keyframes eggScan{from{transform:translateY(0)}to{transform:translateY(150vh)}}
@keyframes eggFlash{0%,86%{opacity:0}87%{opacity:.17}88%{opacity:0}93%{opacity:.09}94%{opacity:0}100%{opacity:0}}
@keyframes eggShake{0%{transform:translate(0,0)}25%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-1px,-2px)}100%{transform:translate(1px,2px)}}
@keyframes eggChar{0%{transform:scale(1.35) rotate(4deg)}100%{transform:scale(1) rotate(0deg)}}
@keyframes eggGlitch{0%{transform:translate(0,0)}25%{transform:translate(-6px,2px)}50%{transform:translate(5px,-3px)}75%{transform:translate(-3px,-2px)}100%{transform:translate(0,0)}}
@keyframes eggIn{from{opacity:0}to{opacity:1}}
@keyframes eggPulse{0%,100%{opacity:.85}50%{opacity:1}}
@keyframes eggFade{from{opacity:0}to{opacity:1}}
@keyframes eggBlink{0%,100%{opacity:1}50%{opacity:.55}}

@media (prefers-reduced-motion:reduce){
  .egg-wrap.egg-on,.egg-wrap.egg-show{animation:none}
  .egg-flash,.egg-scan{animation:none;display:none}
  .egg-reveal.glitching{animation:none}
}

/* 第 5 下起：边缘慢慢变暗（最多 60 暗度），彩蛋期间保持、结束退回 */
.egg-vig2{position:fixed;inset:0;pointer-events:none;z-index:9400;opacity:0;transition:opacity 1.5s ease;
  background:radial-gradient(ellipse 74% 60% at 50% 50%,rgba(6,4,3,0) 24%,rgba(6,4,3,.42) 58%,rgba(6,4,3,.99) 100%)}
/* 补满之后连主页一起吞掉 */
.egg-wrap.egg-veil .egg-noise{background:rgba(219,206,188,.92)}
@media (prefers-reduced-motion:reduce){.egg-vig2{transition:none}}

/* 每个字按自己的方向抖（独立的 translate 属性，不跟 transform / 换字闪光抢） */
.egg-noise .ink{transform:var(--tf)}
@keyframes eggJitA{from{translate:0 0}to{translate:.055em -.042em}}
@keyframes eggJitB{from{translate:0 0}to{translate:-.052em .046em}}
@keyframes eggJitC{from{translate:0 0}to{translate:.062em .034em}}
@keyframes eggJitD{from{translate:0 0}to{translate:-.056em -.05em}}
@keyframes eggJitE{from{translate:0 0}to{translate:.012em .072em}}
@keyframes eggJitF{from{translate:0 0}to{translate:-.072em -.012em}}
.ink.jtA{animation-name:eggJitA}
.ink.jtB{animation-name:eggJitB}
.ink.jtC{animation-name:eggJitC}
.ink.jtD{animation-name:eggJitD}
.ink.jtE{animation-name:eggJitE}
.ink.jtF{animation-name:eggJitF}
.ink.jt{animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:steps(3,end);animation-duration:.24s}
@media (prefers-reduced-motion:reduce){.ink.jt{animation:none}}
