/* ===========================================================
   stages.css —— 各关卡专属布局
   =========================================================== */

/* ============ 存档选择 / 主菜单 / 欢迎页 ============ */
#screen-menu .menu-wrap{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:18px; padding:80px 20px 20px;
}
#screen-menu .title{
  font-size:42px; color:#fff; font-weight:bold;
  text-shadow:0 3px 0 #2a7a2a, 0 6px 14px rgba(0,0,0,.4);
  text-align:center;
}
#screen-menu .subtitle{ color:#e8ffe0; font-size:16px; margin-top:-6px; }

/* 欢迎页跳动史莱姆 */
.welcome-slime{
  width:160px; height:160px;
  background-repeat:no-repeat; background-position:center; background-size:contain;
  animation:welcomeBounce 1.6s ease-in-out infinite;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.3));
}
@keyframes welcomeBounce{
  0%,100%{ transform:translateY(0) scaleY(1) scaleX(1); }
  25%{ transform:translateY(-30px) scaleY(1.1) scaleX(.92); }
  50%{ transform:translateY(-40px) scaleY(1.05) scaleX(.96); }
  75%{ transform:translateY(-15px) scaleY(1.08) scaleX(.94); }
}

/* 欢迎页主按钮 */
.welcome-btns{ display:flex; gap:18px; margin-top:10px; flex-wrap:wrap; justify-content:center; }

/* 新建存档展开区（词库选择）*/
.new-save-panel{
  background:rgba(255,255,255,.92); border-radius:18px; padding:24px 28px;
  max-width:520px; width:100%; box-shadow:0 6px 18px rgba(0,0,0,.18);
  animation:popIn .3s ease;
}
.new-save-panel.hidden{ display:none; }

.save-list{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:12px;
  width:100%; max-width:680px; max-height:50vh; overflow-y:auto; padding:4px;
}
.save-list.hidden{ display:none; }
.save-card{
  background:var(--panel); border-radius:12px; padding:14px 16px;
  box-shadow:var(--shadow); cursor:pointer; transition:transform .12s;
  border:2px solid transparent;
}
.save-card:hover{ transform:translateY(-2px); border-color:#7ed957; }
.save-card .sc-name{ font-size:18px; font-weight:bold; }
.save-card .sc-info{ font-size:13px; color:#666; margin-top:4px; }
.save-card .sc-bar{ display:flex; gap:10px; margin-top:6px; font-size:12px; }
.save-card .sc-empty{ color:#999; }
.save-card .sc-del{
  float:right; font-size:12px; color:#c0392b; background:none; border:none; cursor:pointer;
  text-decoration:underline;
}
.save-card.empty{ background:rgba(255,255,255,.6); border:2px dashed #bbb; text-align:center; }
.save-card.empty .sc-name{ color:#888; }

/* ============ 第一关 ============ */
/* 开局规则小提示（左上角，10 秒后消失，小学生也能看懂的可爱风格） */
.rule-hint{
  position:absolute; top:64px; left:14px; z-index:240; max-width:260px;
  opacity:0; transform:translateX(-30px);
  transition:opacity .4s ease, transform .4s ease;
  pointer-events:none;
}
.rule-hint.show{ opacity:1; transform:translateX(0); }
.rule-hint-inner{
  background:rgba(255,255,255,.94);
  border:2px solid #ffd84d; border-radius:14px;
  padding:10px 14px; box-shadow:0 6px 16px rgba(0,0,0,.18);
  font-size:14px; line-height:1.7; color:#5a3a1a;
  font-family:var(--font-cn);
  position:relative;
}
.rule-hint-inner::before{
  content:'💡 玩法小贴士';
  display:block; font-weight:bold; color:#e87b00; font-size:13px;
  margin-bottom:4px;
}

#screen-stage1 .intro-overlay{
  position:absolute; inset:0; z-index:250;
  background:linear-gradient(180deg, rgba(120,200,80,.95), rgba(80,160,50,.95));
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:30px; text-align:center; cursor:pointer;
}
#screen-stage1 .intro-overlay.hidden{ display:none; }
.intro-page{
  background:rgba(255,255,255,.92); border-radius:20px; padding:30px 36px;
  max-width:560px; box-shadow:var(--shadow); animation:popIn .4s ease;
}
.intro-page p{ font-size:19px; line-height:2; color:#3a5; }
.intro-page .hint{ font-size:13px; color:#999; margin-top:18px; }
.intro-dots{ display:flex; gap:8px; margin-top:16px; justify-content:center; }
.intro-dots span{ width:10px; height:10px; border-radius:50%; background:#ccc; }
.intro-dots span.on{ background:#7ed957; width:24px; }

/* 史莱姆活动区 */
#slime-area{
  position:absolute; top:9%; left:2%; right:2%; bottom:24%;
  z-index:5;
}
/* 木箱栏（底部） */
#box-bar{
  position:absolute; left:1%; right:1%; bottom:2%; height:20%; z-index:100;
  display:flex; align-items:flex-start; justify-content:center; gap:6px; flex-wrap:wrap;
  padding:6px 10px; background:rgba(255,255,255,.4); border-radius:14px;
  overflow-y:auto;
}

/* 右上宝箱收集框（缩小为原20%大小） */
#chest-collect{
  position:absolute; right:1%; top:9%; width:140px; height:180px; z-index:100;
  background:rgba(255,255,255,.6); border-radius:12px; border:2px dashed rgba(126,217,87,.6);
  display:flex; flex-direction:column; align-items:center; padding:6px;
  overflow:hidden;
}
#chest-collect .cc-title{
  font-size:12px; font-weight:bold; color:#5a3a1a; padding:2px 0;
  width:100%; text-align:center;
}
#chest-collect .cc-count{
  font-size:11px; color:#888; padding:0 0 4px;
}
#chest-collect .cc-grid{
  flex:1; display:flex; flex-wrap:wrap; gap:3px; padding:2px;
  align-content:flex-start; justify-content:center; overflow-y:auto;
  width:100%;
}
#chest-collect .cc-grid .mini-chest{
  width:32px; height:32px; background-repeat:no-repeat; background-position:center;
  background-size:contain; cursor:default; position:relative;
  animation:chestPopIn .4s cubic-bezier(.34,1.4,.64,1);
}
@keyframes chestPopIn{
  0%{ transform:scale(0); opacity:0; }
  100%{ transform:scale(1); opacity:1; }
}
/* 宝箱飞入收集框的动画 */
.chest-fly{
  position:absolute; z-index:200; pointer-events:none;
  transition: left .6s cubic-bezier(.2,.8,.3,1), top .6s cubic-bezier(.2,.8,.3,1), transform .6s;
}

/* ============ 第二关 ============ */
#stage2-top{
  position:absolute; top:8%; left:0; right:0; height:56%; z-index:5;
  display:flex; align-items:center; justify-content:center;
}
#king-img{
  height:100%; max-height:56vh; cursor:pointer;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.25));
}
#stage2-bottom{
  position:absolute; left:1%; right:1%; bottom:1%; top:66%; z-index:10;
  display:flex; gap:8px; padding:8px;
}
.panel{
  background:rgba(255,255,255,.55); border-radius:14px; padding:6px;
  display:flex; flex-direction:column; flex:1; overflow:hidden;
}
.panel .panel-title{
  font-size:13px; font-weight:bold; color:#555; text-align:center; margin-bottom:4px;
}
.panel .panel-body{ flex:1; overflow-y:auto; display:flex; flex-wrap:wrap; gap:6px; align-content:flex-start; }
/* 宝箱放大为原来2倍（40→80px），史莱姆保持较小便于拖拽 */
.panel-body .mini-chest{
  width:80px; height:80px; background-position:center; background-size:contain; background-repeat:no-repeat;
  cursor:pointer; position:relative; transition:transform .1s;
}
.panel-body .mini-slime{
  width:54px; height:54px; background-position:center; background-size:contain; background-repeat:no-repeat;
  cursor:grab; position:relative; transition:transform .1s; touch-action:none;
}
.panel-body .mini-chest:hover, .panel-body .mini-slime:hover{ transform:scale(1.1); }
.panel-body .mini-chest.super{ width:148px; height:148px; }
.panel-body .mini-chest.super .super-aura{ inset:-8px; }

/* 拼写输入遮罩 */
#spell-overlay{
  position:absolute; inset:0; z-index:350;
  background:rgba(0,0,0,.6); display:flex; align-items:center; justify-content:center;
  padding:20px;
}
#spell-overlay.hidden{ display:none; }
.spell-box{
  background:#fff; border-radius:18px; padding:26px 28px; max-width:480px; width:100%;
  box-shadow:var(--shadow); text-align:center;
}
.spell-box .sp-meaning{ font-size:24px; font-weight:bold; color:#e87b00; margin-bottom:8px; }
.spell-box .sp-tip{ font-size:14px; color:#888; margin-bottom:16px; }
.spell-box .letter-row{
  display:flex; gap:6px; justify-content:center; flex-wrap:wrap; margin:14px 0;
}
.spell-box .letter-cell{
  width:34px; height:42px; border:2px solid #bbb; border-radius:8px;
  font-family:var(--font-en); font-size:22px; font-weight:bold; text-align:center;
  background:#fff; color:#222;
}
.spell-box .letter-cell.given{ background:#fff8d6; color:#888; border-color:#e0c84a; }
/* ★ v2.3.0：拼写错误字母框显示红色 */
.spell-box .letter-cell.wrong-letter{ background:#ffd0d0; border-color:#e53935; color:#c0392b; }
.spell-box .letter-cell:focus{ outline:none; border-color:#7ed957; box-shadow:0 0 0 3px rgba(126,217,87,.3); }
.spell-box .sp-actions{ display:flex; gap:10px; justify-content:center; margin-top:16px; flex-wrap:wrap; }
.spell-box .reveal-word{
  margin-top:12px; font-family:var(--font-en); font-size:28px; font-weight:bold; color:#7ed957;
  letter-spacing:3px; min-height:34px;
}
/* 单词解锁页面朗读按钮（用过树枝后常驻，收起单词后仍可点击听发音） */
.spell-box .sp-speak-row{ text-align:center; margin:6px 0; }
.spell-box .speak-btn{ padding:6px 14px; font-size:13px; }
.spell-box .speak-btn.hidden{ display:none; }

/* 狂暴模式：从天而降的宝箱 */
.rage-drop-chest{
  position:absolute; width:48px; height:48px; z-index:150; pointer-events:none;
  background-size:contain; background-repeat:no-repeat; background-position:center;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.35));
}
.rage-drop-chest.super{ filter:drop-shadow(0 0 8px gold) drop-shadow(0 4px 6px rgba(0,0,0,.35)); }
.spell-box .sentence-show{
  margin-top:10px; font-family:var(--font-en); font-size:16px; color:#5b8def; background:#eef4ff;
  border-radius:8px; padding:8px;
}

/* ============ 史莱姆乐园 ============ */
#screen-paradise .paradise-area{ position:absolute; inset:0; z-index:5; }
.paradise-area .p-slime{
  position:absolute; width:70px; height:70px;
  background-repeat:no-repeat; background-position:center; background-size:contain;
  cursor:pointer; z-index:10;
}
.paradise-area .p-word{
  position:absolute; left:50%; top:100%; transform:translate(-50%, 4px);
  font-family:var(--font-en); font-size:16px; font-weight:bold; color:#2b6e2b;
  white-space:nowrap; pointer-events:none; text-align:center;
  text-shadow:0 1px 0 rgba(255,255,255,.8), 0 0 3px #fff;
  width:120px;
}
.heal-bubble{
  position:absolute; z-index:80; background:#fff; border-radius:14px;
  padding:10px 16px; font-family:var(--font-cn); font-size:15px; color:#3a5;
  max-width:240px; box-shadow:var(--shadow); pointer-events:none;
  animation:bubblePop 3.5s ease forwards;
}

/* ============ 商店 ============ */
#shop-overlay .shop-box{
  background:#fff; border-radius:18px; padding:24px; max-width:680px; width:100%;
  box-shadow:var(--shadow); max-height:84vh; overflow-y:auto;
}
.shop-box h2{ text-align:center; color:#e87b00; margin-bottom:8px; }
.shop-box .shop-section{ margin-top:18px; }
.shop-box .shop-section h3{ font-size:16px; color:#555; border-bottom:1px solid #eee; padding-bottom:6px; }
.shop-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:12px; margin-top:10px; }
.shop-item{
  border:2px solid #eee; border-radius:12px; padding:12px; text-align:center; background:#fafafa;
  display:flex; flex-direction:column; align-items:center; gap:6px;
}
.shop-item .si-icon{ width:50px; height:50px; background-position:center; background-size:contain; background-repeat:no-repeat; }
.shop-item .si-name{ font-size:14px; font-weight:bold; }
.shop-item .si-price{ font-size:13px; color:#e87b00; font-family:var(--font-en); }
.shop-item .si-price-orig{ text-decoration:line-through; color:#bbb; margin-right:4px; }
.shop-item .si-price-sale{ color:#e53935; font-weight:bold; }
.shop-item .si-price-gacha{ color:#9b6bff; font-weight:bold; }
.shop-item .si-btn{
  border:none; cursor:pointer; border-radius:16px; padding:6px 14px; font-size:13px;
  background:linear-gradient(180deg,#ffd84d,#f5a623); color:#fff; font-family:var(--font-cn);
}
.shop-item .si-btn:disabled{ background:#bbb; cursor:not-allowed; }
.shop-item.owned{ border-color:#7ed957; }
.shop-item.equipped{ border-color:#5b8def; background:#eef4ff; }

/* ============ v2.5.0 商店Tab栏/买卖模式/扭蛋币 ============ */
.shop-tabs{
  display:flex; gap:0; margin-bottom:14px; border-bottom:2px solid #eee;
}
.shop-tab{
  flex:1; padding:10px 16px; border:none; cursor:pointer; font-family:var(--font-cn);
  font-size:15px; font-weight:bold; color:#888; background:transparent;
  border-bottom:3px solid transparent; transition:all .2s;
}
.shop-tab:hover{ color:#e87b00; }
.shop-tab.active{ color:#e87b00; border-bottom-color:#e87b00; }
.shop-balance{
  text-align:center; color:#888; font-size:13px; margin-bottom:8px;
}
.shop-balance b{ font-family:var(--font-en); }
/* 买卖模式切换 */
.item-mode-switch{
  display:flex; gap:8px; margin:12px 0; justify-content:center;
}
.item-mode-btn{
  padding:8px 24px; border:2px solid #ddd; border-radius:20px; cursor:pointer;
  font-family:var(--font-cn); font-size:14px; font-weight:bold; color:#888;
  background:#fff; transition:all .2s;
}
.item-mode-btn:hover{ border-color:#9b6bff; color:#9b6bff; }
.item-mode-btn.active{
  background:linear-gradient(180deg,#b794ff,#9b6bff); color:#fff; border-color:#9b6bff;
}
/* 扭蛋币价格文字（紫色高亮） */
.si-price-coin{ color:#9b6bff !important; font-weight:bold; }
/* 出售按钮样式（蓝色调，区别于购买的橙色） */
.shop-item .si-btn.sell{
  background:linear-gradient(180deg,#7fb3ff,#5b8def);
}

/* ============ 狂暴模式 HUD ============ */
.rage-timer{
  position:absolute; top:60px; left:50%; transform:translateX(-50%); z-index:65;
  background:rgba(255,90,90,.92); color:#fff; border-radius:20px; padding:6px 18px;
  font-family:var(--font-en); font-size:22px; font-weight:bold; box-shadow:0 3px 8px rgba(0,0,0,.2);
}

/* ★ v2.0.0：石头按钮（第一关底部）——图标式 */
.stone-btn{
  position:absolute; left:1%; bottom:2%; z-index:100;
  width:64px; height:64px;
  background:none; border:3px solid rgba(120,120,120,.6);
  border-radius:50%; padding:0; cursor:pointer;
  box-shadow:0 3px 10px rgba(0,0,0,.3), inset 0 1px 3px rgba(255,255,255,.2);
  transition:transform .15s, box-shadow .15s;
  overflow:hidden;
}
.stone-btn:hover{
  transform:scale(1.12);
  box-shadow:0 4px 14px rgba(0,0,0,.4), inset 0 1px 3px rgba(255,255,255,.3);
  border-color:rgba(180,180,180,.8);
}
.stone-btn:active{
  transform:scale(0.9);
  box-shadow:0 2px 6px rgba(0,0,0,.3);
}
.stone-btn-icon{
  width:48px; height:48px; object-fit:contain;
  display:block; margin:6px auto;
}

/* ★ 飞行石头动画元素 */
.flying-stone{
  position:absolute; z-index:150;
  width:40px; height:40px;
  pointer-events:none;
}

/* ★ 石头晕眩特效：头上旋转圆圈○和五角星★（可爱版） */
.stun-cute-stars{
  position:absolute; left:50%; top:-30px;
  width:44px; height:44px;
  pointer-events:none; z-index:20;
  animation:cuteOrbit 1.5s linear infinite;
}
@keyframes cuteOrbit{
  from{ transform:translateX(-50%) rotate(0deg); }
  to{ transform:translateX(-50%) rotate(360deg); }
}
.scs{
  position:absolute; font-size:14px; line-height:1;
  animation:cutePulse 0.5s ease-in-out infinite alternate;
}
.scs:nth-child(1){ top:0; left:15px; animation-delay:0s; }
.scs:nth-child(2){ top:15px; right:0; animation-delay:0.12s; }
.scs:nth-child(3){ bottom:0; left:15px; animation-delay:0.25s; }
.scs:nth-child(4){ top:15px; left:0; animation-delay:0.37s; }
.scs-star{ color:#ffd84d; text-shadow:0 0 4px rgba(255,216,77,.6); }
.scs-circle{ color:#5b8def; text-shadow:0 0 4px rgba(91,141,239,.6); }
@keyframes cutePulse{
  0%{ transform:scale(0.8); opacity:0.6; }
  100%{ transform:scale(1.15); opacity:1; }
}

/* ★ v2.2.0：眩晕蚊圈眼效果（纯CSS，同心圆覆盖整个眼镜区域） */
.dizzy-eyes{
  position:absolute; left:50%; top:18%;
  transform:translateX(-50%);
  display:flex; gap:3px; pointer-events:none; z-index:25;
}
.dizzy-eye{
  position:relative;
  width:16px; height:16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
/* 三层同心圆，完全覆盖眼镜区域 */
.dizzy-eye::before,
.dizzy-eye::after,
.dizzy-eye .ring3{
  content:''; position:absolute; border-radius:50%;
  border:2px solid #5b8def;
}
.dizzy-eye::before{
  width:16px; height:16px;
  border-color:transparent;
  border-top-color:#5b8def; border-right-color:#5b8def;
  animation:dizzySpin 0.6s linear infinite;
}
.dizzy-eye::after{
  width:11px; height:11px;
  border-color:transparent;
  border-top-color:#5b8def; border-left-color:#5b8def;
  animation:dizzySpin 0.8s linear infinite reverse;
}
.dizzy-eye .ring3{
  width:6px; height:6px;
  border-color:transparent;
  border-bottom-color:#5b8def; border-right-color:#5b8def;
  animation:dizzySpin 0.5s linear infinite;
}
@keyframes dizzySpin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}

/* ★ v2.0.0：生气特效 */
.angry-slime{
  animation:angryShake 0.3s ease-in-out 3;
}
@keyframes angryShake{
  0%,100%{ transform:translateX(0); }
  25%{ transform:translateX(-6px); }
  75%{ transform:translateX(6px); }
}

/* ★ v2.0.0：隐藏的史莱姆 */
.hidden-slime{
  opacity:0.2; pointer-events:none;
}

/* ★ v2.0.0：果冻拖拽影像 */
.jelly-drag-ghost{
  background-size:contain; background-repeat:no-repeat; background-position:center;
  opacity:.85; filter:drop-shadow(0 4px 6px rgba(0,0,0,.3));
}

/* ★ v2.0.0：皮肤拖拽影像 */
.skin-drag-ghost{
  background-size:contain; background-repeat:no-repeat; background-position:center;
  opacity:.85; filter:drop-shadow(0 4px 6px rgba(0,0,0,.3));
  border-radius:50%;
}

/* ★ v2.0.0：道具获得弹窗 */
.item-get-box .ig-icon{
  width:80px; height:80px; margin:10px auto;
  background-size:contain; background-repeat:no-repeat; background-position:center;
}

/* ★ v2.0.0：背包面板——左侧小窗口 */
.bp-side-panel{
  position:absolute; left:10px; top:110px; z-index:180;
  width:170px; max-height:60vh;
  background:rgba(255,255,255,.94); border-radius:14px;
  border:2px solid #7ed957;
  box-shadow:0 4px 16px rgba(0,0,0,.22);
  padding:10px 12px; overflow-y:auto;
  animation:bpSlideIn .25s ease;
}
@keyframes bpSlideIn{
  0%{ transform:translateX(-30px); opacity:0; }
  100%{ transform:translateX(0); opacity:1; }
}
.bp-side-title{
  font-weight:bold; font-size:15px; color:#3a7; text-align:center;
  margin-bottom:8px; border-bottom:1px solid #eee; padding-bottom:4px;
}
.bp-side-grid{
  display:flex; flex-direction:column; gap:6px;
}
.bp-hint{
  font-size:11px; color:#888; margin-top:6px; text-align:center;
}
.bp-close-btn{
  margin-top:8px;
}

/* ★ v2.0.0：时间沙漏暂停——全场冻结效果 */
/* 画面变灰一点点：grayscale(20%) + 亮度降低 */
.hourglass-frozen{
  filter:grayscale(20%) brightness(0.88);
}
/* 交互阻断层：覆盖全场，阻止一切点击/拖拽 */
/* z-index 245 在所有内容之上、解除暂停按钮(250)之下 */
.hourglass-block-overlay{
  position:absolute; inset:0; z-index:245;
  pointer-events:auto; background:transparent;
}
/* 解除暂停按钮框：右下角小框，z-index 250 在阻断层上方 */
.hourglass-pause-box{
  position:absolute; right:20px; bottom:20px; z-index:250;
  background:rgba(255,255,255,.92); border-radius:12px;
  border:2px solid #5b8def;
  box-shadow:0 4px 12px rgba(0,0,0,.2);
  padding:8px 14px;
  animation:hgPauseIn .3s ease;
}
@keyframes hgPauseIn{
  0%{ transform:translateY(20px); opacity:0; }
  100%{ transform:translateY(0); opacity:1; }
}
.hg-pause-inner{
  display:flex; align-items:center; gap:10px;
  font-size:14px; font-weight:bold; color:#5b8def;
}

/* ★ v2.0.0：HUD道具区域 */
.hud-item-area{
  display:flex; gap:6px; align-items:center;
}
.hud .stone-stat{ cursor:help; }
.hud .stone-stat .free-tag,
.hud .hg-stat .free-tag{
  font-size:11px; color:#fff; background:#5b8def; border-radius:8px;
  padding:1px 6px; margin-left:2px; vertical-align:middle;
}

/* ★ v2.0.0：皮肤下拉框 */
.skin-dropdown{
  display:flex; gap:5px; align-items:center;
  background:rgba(255,255,255,.9); border-radius:12px; padding:6px;
  box-shadow:0 4px 10px rgba(0,0,0,.2);
  position:absolute; top:44px; left:0; z-index:70;
  max-width:240px;
}
.skin-dropdown.hidden{ display:none; }

/* ============ v2.2.0：服饰库存徽标 ============ */
.acc-chip{ position:relative; }
.acc-count-badge{
  position:absolute; right:-4px; bottom:-4px; z-index:5;
  min-width:18px; height:18px; line-height:18px;
  background:#e53935; color:#fff; font-size:11px; font-weight:bold;
  border-radius:9px; padding:0 4px; text-align:center;
  border:1.5px solid #fff; box-shadow:0 1px 3px rgba(0,0,0,.3);
  font-family:var(--font-en);
}

/* ============ v2.2.0：乐园设施 ============ */
.facility{
  position:absolute; z-index:90;
  background-size:contain; background-repeat:no-repeat; background-position:center;
  cursor:pointer; transition:transform .15s;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.25));
}
.facility:hover{ transform:scale(1.06); }
/* 娃娃机：左上角（★ v2.4.1：上移 top 160→90）
   扭蛋机：娃娃机右侧部分重叠（★ v2.4.1：左移与娃娃机重叠）
   小池塘：右下角（★ v2.3.0：放大一倍，贴最右下角）
   ★ 按屏幕等比缩放，小分辨率下自动缩小（以1280px为基准） */
.facility-claw{
  left:1.5vw; top:90px;
  width:min(495px, calc(100vw * 495 / 1280));
  height:min(495px, calc(100vw * 495 / 1280));
  background-image:url('../assets/娃娃机.png');
}
.facility-gacha{
  left:calc(1.5vw + min(495px, calc(100vw * 495 / 1280)) - min(180px, calc(100vw * 180 / 1280)));
  top:calc(90px + min(495px, calc(100vw * 495 / 1280)) - min(330px, calc(100vw * 330 / 1280)));
  width:min(330px, calc(100vw * 330 / 1280));
  height:min(330px, calc(100vw * 330 / 1280));
  background-image:url('../assets/扭蛋机.png');
}
/* 小池塘：右下角（★ v2.3.0：放大一倍 440→880 / 248→496，贴最右下角） */
.facility-pond{
  right:0; bottom:0;
  width:min(880px, calc(100vw * 880 / 1280));
  height:min(496px, calc(100vw * 496 / 1280));
  background-image:url('../assets/池塘.png');
}
/* 设施互动时乐园变暗遮罩 */
.facility-dim{
  position:absolute; inset:0; z-index:120;
  background:rgba(0,0,0,.45); pointer-events:none;
  animation:facDimIn .25s ease;
}
@keyframes facDimIn{ from{opacity:0;} to{opacity:1;} }
/* 设施敬请期待弹窗（★ 放大2倍） */
.facility-modal{
  background:#fff; border-radius:18px; padding:40px 48px;
  max-width:720px; text-align:center;
  box-shadow:0 8px 30px rgba(0,0,0,.3);
  animation:facModalIn .3s ease;
}
@keyframes facModalIn{ from{transform:scale(.85);opacity:0;} to{transform:scale(1);opacity:1;} }
.facility-modal-img{
  width:280px; height:280px; margin:0 auto 16px;
  background-size:contain; background-repeat:no-repeat; background-position:center;
}
.facility-modal h2{ font-size:32px; }
.facility-modal p{ font-size:24px; }

/* ============ v2.2.0：扭蛋机弹窗（★ 放大2倍） ============ */
.gacha-overlay{ z-index:300; }
.gacha-box{
  background:#fff; border-radius:20px; padding:36px 44px;
  max-width:880px; text-align:center;
  box-shadow:0 10px 40px rgba(0,0,0,.35);
  animation:gachaBoxIn .3s ease;
}
@keyframes gachaBoxIn{ from{transform:scale(.88);opacity:0;} to{transform:scale(1);opacity:1;} }
.gacha-box h2{ font-size:32px; }
.gacha-tip{ font-size:22px; margin:12px 0 16px; }
.gacha-pity{ font-size:18px; }
.gacha-machine{
  width:300px; height:300px; margin:6px auto 4px;
  background-size:contain; background-repeat:no-repeat; background-position:center;
  transform-origin:50% 80%;
}
.gacha-actions .btn-primary{ font-size:22px; padding:14px 28px; }
.gacha-price{ font-size:18px; }
.gacha-tip{ color:#888; font-size:13px; margin:6px 0 10px; }
.gacha-actions{
  display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin:8px 0;
}
.gacha-btn{
  min-width:120px; line-height:1.4;
}
.gacha-price{ display:block; font-size:12px; opacity:.9; font-weight:bold; }
.gacha-pity{ font-size:11px; color:#9b6bff; margin-top:6px; }

/* 扭蛋机抖动动画 */
.gacha-shake{
  animation:gachaShake .12s ease-in-out infinite;
}
@keyframes gachaShake{
  0%,100%{ transform:rotate(0) translateX(0); }
  20%{ transform:rotate(-3deg) translateX(-3px); }
  40%{ transform:rotate(3deg) translateX(3px); }
  60%{ transform:rotate(-2deg) translateX(-2px); }
  80%{ transform:rotate(2deg) translateX(2px); }
}
/* 掉蛋动画：从扭蛋机底部掉落（★ 放大2倍） */
.gacha-drop-egg{
  position:absolute; width:100px; height:100px;
  background-size:contain; background-repeat:no-repeat; background-position:center;
  z-index:5; pointer-events:none;
  animation:eggDrop 1.4s ease-in forwards;
}
@keyframes eggDrop{
  0%{ opacity:0; transform:scale(.5) rotate(0); }
  15%{ opacity:1; transform:scale(1) rotate(15deg); }
  100%{ transform:translateY(360px) scale(.8) rotate(360deg); opacity:0; }
}

/* 开蛋界面（★ 放大2倍） */
.gacha-egg-big{
  width:220px; height:220px; margin:16px auto;
  background-size:contain; background-repeat:no-repeat; background-position:center;
}
.gacha-egg-zoom{ animation:eggZoom .4s ease; }
@keyframes eggZoom{ from{transform:scale(.6);opacity:0;} to{transform:scale(1);opacity:1;} }
.gacha-open-en{
  font-family:var(--font-en); font-size:52px; font-weight:bold; color:#5b8def;
  margin:8px 0; letter-spacing:1px;
}
.gacha-open-en.hidden{ display:none; }
.gacha-input-area{ margin-top:20px; }
.gacha-input-area.hidden{ display:none; }
.gacha-input-area .equip-input{ font-size:28px; padding:14px 16px; }

/* 奖励结果网格（★ 放大2倍） */
.gacha-reward-grid{
  display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin:20px 0;
}
.gacha-reward-item{
  width:200px; padding:16px 12px; border:4px solid #e87b00; border-radius:14px;
  background:#fff8ee; text-align:center;
}
.gacha-reward-item .gri-icon{
  width:96px; height:96px; margin:0 auto 8px;
  background-size:contain; background-repeat:no-repeat; background-position:center;
}
.gacha-reward-item .gri-emoji{ font-size:64px; line-height:96px; }
.gacha-reward-item .gri-name{ font-size:20px; font-weight:bold; color:#444; }
.gacha-reward-item .gri-count{ font-size:28px; font-weight:bold; margin-top:4px; }

/* ============ v2.4.0：池塘捕捉玩法 ============ */
.pond-overlay{ z-index:300; }
.pond-box{
  background:#fff; border-radius:20px; padding:28px 36px;
  max-width:1000px; width:90%; text-align:center;
  box-shadow:0 10px 40px rgba(0,0,0,.35);
  animation:gachaBoxIn .3s ease;
}
.pond-box h2{ font-size:28px; }
.pond-tip{ font-size:16px; color:#888; margin:8px 0 14px; }
.pond-machine{
  width:240px; height:135px; margin:0 auto 8px;
  background-size:contain; background-repeat:no-repeat; background-position:center;
}
.pond-net-grid{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:14px 0; }
.pond-net-item{
  width:130px; padding:12px 10px; border:3px solid #888; border-radius:12px;
  background:#fafafa; text-align:center; display:flex; flex-direction:column; align-items:center; gap:4px;
}
.pond-net-item.disabled{ opacity:.5; }
.pond-net-item .pni-icon{
  width:50px; height:50px;
  background-size:contain; background-repeat:no-repeat; background-position:center;
}
.pond-net-item .pni-name{ font-size:14px; font-weight:bold; }
.pond-net-item .pni-dur{ font-size:11px; color:#888; }

/* 池塘捕捉区域（★ v2.4.1：高度增大，史莱姆下移） */
.pond-catch-area{
  position:relative; width:100%; height:180px; margin:10px 0;
  background:linear-gradient(180deg, #b3e5fc 0%, #4fc3f7 100%);
  border-radius:14px; overflow:hidden;
}
.pond-slime{
  position:absolute; top:60px; width:80px; height:80px;
  background-size:contain; background-repeat:no-repeat; background-position:center;
  transition:none;
}
.pond-slime-en{
  position:absolute; bottom:8px; left:50%; transform:translateX(-50%);
  font-family:var(--font-en); font-size:18px; font-weight:bold; color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.5); white-space:nowrap;
  pointer-events:none;
}
/* 网兜甩动动画 */
.pond-net-swing{
  position:absolute; right:10px; top:10px; width:50px; height:50px;
  background-size:contain; background-repeat:no-repeat; background-position:center;
  animation:netSwing .4s ease-in-out infinite alternate;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));
}
@keyframes netSwing{
  0%{ transform:rotate(-20deg) translateY(0); }
  100%{ transform:rotate(20deg) translateY(-10px); }
}
.pond-choice-grid{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:10px; margin:14px 0;
}
.pond-choice{
  padding:14px 16px; font-size:18px; font-weight:bold; border:3px solid #7ed957;
  border-radius:12px; background:#fff; cursor:pointer; transition:all .15s;
  font-family:var(--font-cn);
}
.pond-choice:hover{ background:#f0fff0; transform:scale(1.03); }
.pond-choice:active{ transform:scale(0.97); }
.pond-slime-big{
  width:160px; height:160px; margin:10px auto;
  background-size:contain; background-repeat:no-repeat; background-position:center;
  animation:bounceIn .5s ease;
}
@keyframes bounceIn{ 0%{transform:scale(0);} 60%{transform:scale(1.2);} 100%{transform:scale(1);} }

/* ============ v2.4.0：生产工具佩戴图层（史莱姆右侧） ============ */
.acc-layer-tool{
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));
}
/* 生产工具拖拽影像 */
.tool-drag-ghost{
  background-size:contain; background-repeat:no-repeat; background-position:center;
  opacity:.85; filter:drop-shadow(0 4px 6px rgba(0,0,0,.3));
  border-radius:8px;
}
.tool-chip{ border:2px solid #ff9800; }

/* ============ v2.4.0：打工收益金币图标 ============ */
.work-coin{
  position:absolute; left:50%; top:-26px; transform:translateX(-50%);
  width:28px; height:28px; z-index:50; cursor:pointer;
  background:radial-gradient(circle, #ffd84d 40%, #f5a623 100%);
  border-radius:50%; border:2px solid #fff;
  box-shadow:0 2px 6px rgba(0,0,0,.3);
  display:flex; align-items:center; justify-content:center;
  font-size:16px; font-weight:bold; color:#fff;
  pointer-events:auto;
  animation:coinBounce 1s ease-in-out infinite alternate;
}
.work-coin::before{ content:'¥'; }
@keyframes coinBounce{
  0%{ transform:translateX(-50%) translateY(0); }
  100%{ transform:translateX(-50%) translateY(-6px); }
}

/* ★ v2.4.3：打工中徽标 */
.work-badge{
  position:absolute; left:50%; top:-14px; transform:translateX(-50%);
  font-size:11px; color:#fff; background:#ff9800; border-radius:8px;
  padding:1px 8px; white-space:nowrap; z-index:25;
  box-shadow:0 1px 3px rgba(0,0,0,.3);
  animation:workBadgePulse 1.5s ease-in-out infinite;
}
@keyframes workBadgePulse{
  0%,100%{ opacity:0.8; }
  50%{ opacity:1; }
}

/* ★ v2.4.10：待命中徽标（永久掌握且非工作状态） */
.idle-badge{
  position:absolute; left:50%; top:-14px; transform:translateX(-50%);
  font-size:10px; color:#ffb300; background:rgba(255,255,255,.85); border-radius:8px;
  padding:1px 6px; white-space:nowrap; z-index:24;
  border:1px solid #ffd84d;
  box-shadow:0 1px 2px rgba(0,0,0,.15);
}

/* ============ v2.4.0：临时史莱姆徽标 ============ */
.temp-badge{
  position:absolute; left:50%; top:-12px; transform:translateX(-50%);
  font-size:10px; color:#fff; background:#ff9800; border-radius:8px;
  padding:1px 6px; white-space:nowrap; z-index:20;
}
.temp-slime{ opacity:0.85; }

/* ============ v2.4.0：兑换码对话框 ============ */
.redeem-box{
  background:#fff; border-radius:18px; padding:28px 32px;
  max-width:420px; text-align:center;
  box-shadow:0 8px 30px rgba(0,0,0,.3);
  animation:facModalIn .3s ease;
}
.redeem-box h2{ font-size:24px; color:#e87b00; }
.redeem-input{
  width:100%; padding:12px 16px; font-size:18px; border:2px solid #ddd;
  border-radius:10px; margin:12px 0; text-align:center; font-family:var(--font-cn);
}
.redeem-input:focus{ outline:none; border-color:#7ed957; }

/* ============ v2.4.0：单词掌握度-永久掌握金色 + 工作状态 ============ */
.st-permanent{ color:#ffb300; font-weight:bold; font-size:13px; }
.st-yes{ color:#3a7; font-size:13px; }
.st-no{ color:#c0392b; font-size:13px; }
.st-en-perm{ color:#ffb300; font-weight:bold; }
.st-working{ text-align:center; }
.st-net-icon{
  width:28px; height:28px; margin:0 auto;
  background-size:contain; background-repeat:no-repeat; background-position:center;
}
.st-idle{ color:#999; text-align:center; font-size:13px; }

/* ===========================================================
   v2.6.0  噩梦模式  #screen-nightmare
   =========================================================== */
#screen-nightmare{
  /* ★ v2.7.0：噩梦森林背景图 + 暗色渐变叠加（保证文字可读）
     ★ v2.7.1：CSS 中相对 url 以样式表所在目录为基准，须用 ../assets/ */
  background-image:
    radial-gradient(circle at 50% 30%, rgba(42,20,56,.55) 0%, rgba(21,5,33,.7) 60%, rgba(5,0,9,.85) 100%),
    url('../assets/噩梦森林背景.png');
  background-size:cover, cover;
  background-position:center, center;
  background-repeat:no-repeat, no-repeat;
  color:#fff; overflow:hidden;
}
/* 顶部 boss 名字 + 血条 */
.nm-top{
  /* ★ v2.7.2：下移离开顶部 HUD 白条 */
  position:absolute; top:52px; left:0; right:0; z-index:30;
  padding:8px 16px 6px; text-align:center;
  background:linear-gradient(180deg, rgba(0,0,0,.7), rgba(0,0,0,0));
  pointer-events:none;
}
.nm-boss-name{
  font-family:var(--font-cn); font-size:22px; font-weight:bold;
  color:#ffd84d; text-shadow:0 0 8px rgba(255,90,90,.8), 0 2px 0 #5a0c1c;
  letter-spacing:2px; margin-bottom:6px;
}
.nm-hp-bar{
  position:relative; width:80%; max-width:560px; height:14px; margin:0 auto;
  background:rgba(255,255,255,.18); border:2px solid rgba(255,255,255,.5);
  border-radius:10px; overflow:hidden;
  box-shadow:0 2px 6px rgba(0,0,0,.4);
}
.nm-hp-fill{
  height:100%; width:100%;
  background:linear-gradient(90deg, #ff3b3b, #ff7a3c 60%, #ffd84d);
  transition:width .35s ease;
}
.nm-hp-text{
  font-family:var(--font-en); font-size:12px; color:#ffe; margin-top:4px;
  text-shadow:0 1px 2px #000;
}
/* boss 图像区（★ v2.7.2：放大并下移以容纳下移的血条）*/
.nm-boss-area{
  position:absolute; top:135px; left:0; right:0; height:56%; z-index:5;
  display:flex; align-items:center; justify-content:center;
}
.nm-boss{
  /* ★ v2.7.2：放大2倍（解除 50vh 上限→100vh，高度撑满区域）+ 拉伸呼吸动画 */
  height:100%; max-height:100vh; max-width:85vw;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.6)) drop-shadow(0 0 18px rgba(255,80,80,.45));
  transform-origin:50% 60%;
  animation:nmBossBreath 2.8s ease-in-out infinite;
}
/* 命中瞬间的缩放（与呼吸动画叠加，src 切换为哭脸图） */
.nm-boss.hit{ animation:nmBossBreath 2.8s ease-in-out infinite, nmBossHit .25s ease; }
@keyframes nmBossBreath{
  0%,100%{ transform:scale(1) translateY(0); }
  50%{ transform:scale(1.07) translateY(-8px); }
}
@keyframes nmBossHit{
  0%{ filter:drop-shadow(0 8px 16px rgba(0,0,0,.6)) drop-shadow(0 0 18px rgba(255,80,80,.45)) brightness(2.2) saturate(1.6); }
  100%{ filter:drop-shadow(0 8px 16px rgba(0,0,0,.6)) drop-shadow(0 0 18px rgba(255,80,80,.45)); }
}
/* 大标题提示 */
.nm-title{
  position:absolute; top:34%; left:50%; transform:translate(-50%, -50%) scale(.6);
  z-index:60; max-width:80%; padding:18px 30px;
  background:rgba(20,0,30,.78); border:2px solid #b06bff;
  border-radius:18px; box-shadow:0 0 30px rgba(176,107,255,.6);
  font-family:var(--font-cn); font-size:22px; color:#fff; text-align:center;
  letter-spacing:2px; line-height:1.6;
  opacity:0; pointer-events:none;
  transition:opacity .5s ease, transform .5s ease;
}
.nm-title.show{
  opacity:1; transform:translate(-50%, -50%) scale(1);
  animation:nmTitlePulse 1.2s ease-in-out infinite;
}
@keyframes nmTitlePulse{
  0%,100%{ box-shadow:0 0 24px rgba(176,107,255,.55); }
  50%{ box-shadow:0 0 40px rgba(176,107,255,.9); }
}
/* 底部战场（大炮 + 史莱姆队列）*/
.nm-field{
  position:absolute; left:0; right:0; bottom:60px; height:32%; z-index:10;
}
.nm-cannon{
  position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  /* ★ v2.7.0：大炮放大2倍（130px → 260px） */
  height:260px; width:auto; z-index:15;
  filter:drop-shadow(0 6px 8px rgba(0,0,0,.5));
  pointer-events:none;
}
.nm-slime-queue{
  position:absolute; left:0; right:0; bottom:30px; height:120px;
  z-index:12; pointer-events:none;
}
.nm-slime{
  position:absolute; bottom:0; width:48px; height:48px;
  background-position:center; background-size:contain; background-repeat:no-repeat;
  cursor:pointer; pointer-events:auto;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.6));
  transition:left .8s cubic-bezier(.4,.2,.4,1.2), transform .2s;
}
.nm-slime:hover{ transform:translateY(-4px) scale(1.08); }
.nm-slime.super{
  width:96px; height:96px; z-index:14;
  filter:drop-shadow(0 0 10px gold) drop-shadow(0 4px 6px rgba(0,0,0,.5));
  animation:nmSuperPulse 1.1s ease-in-out infinite;
}
@keyframes nmSuperPulse{
  0%,100%{ filter:drop-shadow(0 0 8px gold) drop-shadow(0 4px 6px rgba(0,0,0,.5)); }
  50%{ filter:drop-shadow(0 0 18px #ffe580) drop-shadow(0 4px 6px rgba(0,0,0,.5)); }
}
/* 左右入场动画 */
.nm-slime.enter-left{ animation:nmEnterLeft .8s ease-out; }
.nm-slime.enter-right{ animation:nmEnterRight .8s ease-out; }
@keyframes nmEnterLeft{
  0%{ transform:translateX(-220%) translateY(-30px) scale(.4); opacity:0; }
  60%{ transform:translateX(-20%) translateY(-12px) scale(1.1); opacity:1; }
  100%{ transform:translateX(0) translateY(0) scale(1); opacity:1; }
}
@keyframes nmEnterRight{
  0%{ transform:translateX(220%) translateY(-30px) scale(.4); opacity:0; }
  60%{ transform:translateX(20%) translateY(-12px) scale(1.1); opacity:1; }
  100%{ transform:translateX(0) translateY(0) scale(1); opacity:1; }
}
/* 发射飞走动画 */
.nm-slime.fly{
  animation:nmFly .3s ease-in forwards;
  pointer-events:none;
}
@keyframes nmFly{
  0%{ transform:translateY(0) scale(1); opacity:1; }
  100%{ transform:translateY(-100px) scale(.3); opacity:0; }
}
/* 抛射体（飞向 boss 的史莱姆）*/
.nm-projectile{
  position:absolute; width:36px; height:36px; z-index:50; pointer-events:none;
  background-position:center; background-size:contain; background-repeat:no-repeat;
  filter:drop-shadow(0 0 8px rgba(255,255,255,.5));
}
/* 底部计时器 */
.nm-timer{
  position:absolute; bottom:10px; left:50%; transform:translateX(-50%); z-index:35;
  padding:6px 22px; border-radius:20px;
  background:rgba(0,0,0,.55); color:#fff;
  font-family:var(--font-en); font-size:22px; font-weight:bold;
  letter-spacing:1px; box-shadow:0 3px 10px rgba(0,0,0,.4);
}
.nm-timer.low{
  background:rgba(220,40,40,.85); color:#fff;
  animation:nmTimerBlink .6s ease-in-out infinite;
}
@keyframes nmTimerBlink{
  0%,100%{ opacity:1; transform:translateX(-50%) scale(1); }
  50%{ opacity:.7; transform:translateX(-50%) scale(1.06); }
}
/* ---------- 技能问答对话框 ---------- */
.nm-skill-box{
  background:rgba(28,8,40,.96); border:2px solid #b06bff; border-radius:18px;
  padding:24px 28px; max-width:520px; width:100%;
  box-shadow:0 0 30px rgba(176,107,255,.6); text-align:center;
  animation:popIn .25s ease;
}
.nm-skill-name{
  font-family:var(--font-cn); font-size:24px; font-weight:bold; color:#ff5b5b;
  text-shadow:0 0 10px rgba(255,90,90,.7); margin-bottom:8px; letter-spacing:2px;
}
.nm-skill-tip{
  font-size:13px; color:#c7b8e0; margin-bottom:14px;
}
.nm-skill-word{
  display:flex; gap:4px; justify-content:center; flex-wrap:wrap;
  font-family:var(--font-en); font-size:36px; font-weight:bold;
  margin:14px 0; line-height:1.1;
}
.nm-skill-letter{
  display:inline-block; min-width:34px; padding:4px 6px;
  color:#fff; cursor:pointer; border-radius:6px;
  border:2px solid transparent; transition:all .15s;
  text-shadow:0 2px 4px rgba(0,0,0,.7);
}
.nm-skill-letter:hover{ background:rgba(255,255,255,.18); border-color:#b06bff; }
.nm-skill-letter.correct{
  color:#7ed957; background:rgba(126,217,87,.25);
  border-color:#7ed957;
}
.nm-skill-letter.wrong{
  color:#ff5b5b; background:rgba(255,90,90,.25);
  border-color:#ff5b5b; opacity:.6; text-decoration:line-through;
}
.nm-skill-letter.reveal{
  color:#ffd84d; background:rgba(255,216,77,.22);
  border-color:#ffd84d; box-shadow:0 0 10px rgba(255,216,77,.5);
}
.nm-skill-space{ width:18px; }
.nm-skill-hint{
  margin-top:8px; font-size:14px; color:#9ec3ff;
}
.nm-skill-result{
  margin-top:10px; font-size:15px; font-weight:bold;
  font-family:var(--font-cn);
}
.nm-skill-result.hidden{ display:none; }
/* ---------- 脏脏特效 ---------- */
.nm-dirty-layer{
  position:absolute; inset:0; z-index:280; pointer-events:none; overflow:hidden;
}
.nm-dirty{
  position:absolute; border-radius:50% 30% 60% 40%;
  background:radial-gradient(circle, #6b4226 0%, #3d2010 70%, #1a0a04 100%);
  box-shadow:0 0 4px rgba(0,0,0,.6);
  animation:nmDirtyFall 2.6s ease-in forwards;
}
@keyframes nmDirtyFall{
  0%{ transform:translateY(0) rotate(0); opacity:0; }
  20%{ opacity:1; }
  100%{ transform:translateY(110vh) rotate(360deg); opacity:.9; }
}
/* ---------- 乐园噩梦入口按钮 ---------- */
.nightmare-entry{
  position:absolute; right:20px; bottom:108px; z-index:250;
  width:74px; height:74px; border-radius:50%; cursor:pointer;
  background:radial-gradient(circle, #fff 0%, #b06bff 40%, #2c0050 100%);
  box-shadow:0 0 24px #b06bff, inset 0 0 14px #fff;
  animation:portalPulse 1.4s ease-in-out infinite;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:11px; font-weight:bold; text-align:center; line-height:1.2;
  user-select:none;
}
.nightmare-entry:hover{ transform:scale(1.1); }
.nightmare-entry.hidden{ display:none; }
