#gkp-curtain{position:fixed;inset:0;z-index:2147483000;pointer-events:auto;overflow:hidden;cursor:pointer;contain:strict}
#gkp-curtain .gc-panel{position:absolute;top:0;bottom:0;width:51%;will-change:transform;
  background:
    linear-gradient(180deg,rgba(0,0,0,.35) 0,rgba(0,0,0,0) 18%,rgba(0,0,0,0) 80%,rgba(0,0,0,.45) 100%),
    repeating-linear-gradient(90deg,#4a060b 0,#7d0d16 2.2%,#b3161f 4.6%,#d0262c 5.6%,#a01219 7.2%,#5c070d 9.4%);
  box-shadow:inset 0 0 140px rgba(0,0,0,.6)}
#gkp-curtain .gc-panel::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 70% at 50% 35%,rgba(255,200,180,.10),transparent 60%),linear-gradient(90deg,rgba(0,0,0,.35),transparent 25%,transparent 75%,rgba(0,0,0,.35))}
#gkp-curtain .gc-l::before{background:radial-gradient(120% 70% at 50% 35%,rgba(255,200,180,.10),transparent 60%),linear-gradient(90deg,rgba(0,0,0,.45),transparent 30%,transparent 85%,rgba(0,0,0,.55))}
#gkp-curtain .gc-r::before{background:radial-gradient(120% 70% at 50% 35%,rgba(255,200,180,.10),transparent 60%),linear-gradient(90deg,rgba(0,0,0,.55),transparent 15%,transparent 70%,rgba(0,0,0,.45))}
#gkp-curtain .gc-l{left:0;transform-origin:0 50%;border-right:2px solid #3a0408}
#gkp-curtain .gc-r{right:0;transform-origin:100% 50%;border-left:2px solid #3a0408}
#gkp-curtain .gc-panel::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;
  background:repeating-linear-gradient(90deg,#c9a04a 0 3px,#8a6a24 3px 5px,transparent 5px 7px);
  -webkit-mask:linear-gradient(#000 40%,transparent);mask:linear-gradient(#000 40%,transparent)}
#gkp-curtain .gc-top{position:absolute;left:0;right:0;top:0;height:13vh;min-height:70px;will-change:transform;
  background:
    radial-gradient(60% 120% at 50% 0,rgba(255,255,255,.08),transparent 60%),
    repeating-linear-gradient(90deg,#5a0910 0,#9a121b 3%,#c4222a 4.2%,#7a0c14 7%);
  box-shadow:0 10px 30px rgba(0,0,0,.5);
  -webkit-mask:radial-gradient(60px 26px at 60px 100%,transparent 98%,#000) 0 0/120px 100% repeat-x;mask:radial-gradient(60px 26px at 60px 100%,transparent 98%,#000) 0 0/120px 100% repeat-x}
#gkp-curtain .gc-top::after{content:"";position:absolute;left:0;right:0;bottom:26px;height:5px;
  background:linear-gradient(90deg,#8a6a24,#e6c77a 50%,#8a6a24)}
#gkp-curtain .gc-glow{position:absolute;left:50%;top:0;bottom:0;width:4px;margin-left:-2px;
  background:linear-gradient(180deg,transparent,rgba(255,220,150,.55),transparent);filter:blur(2px);opacity:.9}
#gkp-curtain.gc-open .gc-glow{opacity:0;transition:opacity .25s}
#gkp-curtain.gc-open .gc-l{transform:translate3d(-104%,0,0) scaleX(.55);transition:transform 1.5s cubic-bezier(.66,0,.18,1)}
#gkp-curtain.gc-open .gc-r{transform:translate3d(104%,0,0) scaleX(.55);transition:transform 1.5s cubic-bezier(.66,0,.18,1)}
#gkp-curtain.gc-open .gc-top{transform:translate3d(0,-105%,0);transition:transform .7s cubic-bezier(.5,0,.2,1) .75s}
#gkp-curtain.gc-open{pointer-events:none}
@media (prefers-reduced-motion:reduce){
  #gkp-curtain.gc-open{opacity:0;transition:opacity .3s}
  #gkp-curtain.gc-open .gc-l,#gkp-curtain.gc-open .gc-r,#gkp-curtain.gc-open .gc-top{transform:none;transition:none}
}
#gkp-curtain .gc-msg{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);width:min(86vw,560px);text-align:center;
  color:#f8e6b0;font:600 clamp(18px,2.6vw,26px)/1.7 "Songti SC","STSong","Noto Serif SC",serif;letter-spacing:.18em;
  padding:22px 18px;border-radius:14px;background:radial-gradient(closest-side,rgba(30,0,4,.55),transparent);text-shadow:0 2px 10px rgba(0,0,0,.85);animation:gc-in .5s ease-out both}
#gkp-curtain .gc-msg small{display:block;margin-top:10px;font-size:.62em;letter-spacing:.1em;color:#f0d690;opacity:1}
#gkp-curtain .gc-dots i{display:inline-block;width:5px;height:5px;margin:0 4px;border-radius:50%;background:#e6c77a;animation:gc-dot 1.2s infinite ease-in-out}
#gkp-curtain .gc-dots i:nth-child(2){animation-delay:.2s}#gkp-curtain .gc-dots i:nth-child(3){animation-delay:.4s}
#gkp-curtain.gc-open .gc-msg{opacity:0;transition:opacity .3s;animation:none}
@keyframes gc-in{from{opacity:0;transform:translate(-50%,-40%)}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes gc-dot{0%,80%,100%{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
