/* ===================================================================
   蚀 · ECLIPSE BLADE  —  暗黑像素 3D  样式表
   =================================================================== */
:root{
  --ink:#07070a;
  --ink2:#0e0d11;
  --bone:#c9c1ac;
  --bone-dim:#8b8471;
  --blood:#8e1218;
  --blood-lit:#d8232b;
  --rust:#5e2a12;
  --gold:#b89545;
  --steel:#4a4f57;
  --font-ui:"Zpix","Fusion Pixel 12","Ark Pixel 12px zh_cn","SimSun","宋体","MS Gothic",monospace;
}

*{box-sizing:border-box;margin:0;padding:0;}
html,body{width:100%;height:100%;overflow:hidden;background:#000;}
body{
  font-family:var(--font-ui);
  color:var(--bone);
  cursor:default;
  -webkit-font-smoothing:none;
  user-select:none;
}
.hidden{display:none !important;}

#app{position:fixed;inset:0;background:#000;}

/* ---------- 画布 ---------- */
#glcanvas,#fxcanvas{
  position:absolute;inset:0;width:100%;height:100%;
  image-rendering:pixelated;
  image-rendering:-moz-crisp-edges;
  image-rendering:crisp-edges;
}
#glcanvas{z-index:1;background:#000;}
#fxcanvas{z-index:2;pointer-events:none;}

/* ---------- HUD ---------- */
#hud{position:absolute;inset:0;z-index:5;pointer-events:none;}

#crosshair{
  position:absolute;left:50%;top:50%;width:26px;height:26px;
  transform:translate(-50%,-50%);opacity:.55;
}
#crosshair i{position:absolute;background:#cbbba6;box-shadow:0 0 2px #000;}
#crosshair i:nth-child(1){left:12px;top:0;width:2px;height:7px;}
#crosshair i:nth-child(2){left:12px;bottom:0;width:2px;height:7px;}
#crosshair i:nth-child(3){top:12px;left:0;height:2px;width:7px;}
#crosshair i:nth-child(4){top:12px;right:0;height:2px;width:7px;}
#crosshair.hot i{background:var(--blood-lit);box-shadow:0 0 6px var(--blood);}

#hud-top{
  position:absolute;top:14px;left:0;right:0;
  display:flex;justify-content:space-between;align-items:flex-start;
  padding:0 22px;font-size:13px;letter-spacing:1px;
  text-shadow:0 2px 0 #000,0 0 8px #000;
}
#floor-label{color:var(--bone);font-size:15px;}
#objective-label{
  color:var(--blood-lit);text-align:center;flex:1;
  font-size:13px;text-shadow:0 0 10px rgba(200,20,20,.7),0 2px 0 #000;
}
#run-stats{color:var(--bone-dim);text-align:right;}
#run-stats span{color:var(--bone);}

/* Boss 血条 */
#boss-bar{position:absolute;top:52px;left:50%;transform:translateX(-50%);width:min(620px,72vw);text-align:center;}
#boss-name{font-size:14px;color:#e2d6c0;letter-spacing:4px;text-shadow:0 0 12px var(--blood),0 2px 0 #000;margin-bottom:4px;}
#boss-track{height:12px;background:#160a0a;border:2px solid #2b1a16;box-shadow:0 0 0 2px #000,0 0 18px rgba(0,0,0,.9) inset;}
#boss-fill{height:100%;width:100%;background:linear-gradient(180deg,#e0343a,#8e1218 60%,#4b070b);transition:width .12s linear;}

/* 底部生命/狂气 */
#hud-bottom{position:absolute;left:22px;bottom:18px;display:flex;align-items:flex-end;gap:16px;}
#vitals{display:flex;flex-direction:column;gap:5px;}
.bar{
  position:relative;width:290px;height:16px;background:#0b0a0c;
  border:2px solid #241d1a;box-shadow:0 0 0 2px #000;overflow:hidden;
}
.bar-fill{height:100%;width:100%;transition:width .09s linear;}
.bar-hp .bar-fill{background:linear-gradient(180deg,#c8262c,#7d0f14 65%,#3d0508);}
.bar-rage{width:220px;height:11px;}
.bar-rage .bar-fill{background:linear-gradient(180deg,#e6c14e,#8a5a12 70%,#3c2405);width:0%;}
.bar-stam{width:160px;height:6px;}
.bar-stam .bar-fill{background:linear-gradient(180deg,#7f9aa8,#39505c);}
.bar-txt{
  position:absolute;inset:0;font-size:11px;line-height:16px;text-align:center;
  color:#f0e4d0;text-shadow:0 1px 0 #000,0 0 6px #000;letter-spacing:1px;
}
.bar.low .bar-fill{animation:pulse .5s infinite alternate;}
@keyframes pulse{from{filter:brightness(1);}to{filter:brightness(1.9);}}

#combo-box{text-align:center;color:#e9d7a8;text-shadow:0 0 12px #b0341c,0 2px 0 #000;}
#combo-box span{display:block;font-size:34px;line-height:1;}
#combo-box em{font-size:11px;font-style:normal;letter-spacing:3px;color:#b9a684;}
#combo-box.bump span{animation:bump .18s ease-out;}
@keyframes bump{from{transform:scale(1.7);color:#fff;}to{transform:scale(1);}}

/* 遗物栏 */
#relic-list{
  position:absolute;right:16px;bottom:18px;width:250px;
  display:flex;flex-direction:column;gap:3px;align-items:flex-end;
}
.relic-chip{
  font-size:11px;padding:2px 7px;background:rgba(10,8,10,.72);
  border-left:3px solid var(--blood);color:#cbbfa8;letter-spacing:1px;
  text-shadow:0 1px 0 #000;
}
.relic-chip.curse{border-left-color:#6c3ec0;color:#c7b0e8;}
.relic-chip.rare{border-left-color:var(--gold);color:#e8d69a;}

/* 提示浮字 */
#toast-wrap{position:absolute;left:50%;top:30%;transform:translateX(-50%);text-align:center;width:80%;}
.toast{
  font-size:15px;color:#e7d9bd;letter-spacing:2px;margin-bottom:6px;
  text-shadow:0 0 14px #000,0 2px 0 #000;animation:toastIn 2.1s forwards;
}
.toast.big{font-size:26px;color:#ff6a5a;text-shadow:0 0 22px #7c0d0d,0 3px 0 #000;}
.toast.gold{color:#f0d68a;text-shadow:0 0 18px #6b4a09,0 2px 0 #000;}
@keyframes toastIn{
  0%{opacity:0;transform:translateY(14px) scale(.9);}
  12%{opacity:1;transform:translateY(0) scale(1);}
  75%{opacity:1;}
  100%{opacity:0;transform:translateY(-16px);}
}

/* 狂气暗角 */
#berserk-vig{
  position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 220px 60px rgba(120,0,0,.72);
  animation:bpulse 1.1s infinite alternate;
}
@keyframes bpulse{from{box-shadow:inset 0 0 180px 40px rgba(110,0,0,.6);}to{box-shadow:inset 0 0 260px 90px rgba(160,10,0,.85);}}

#hitmark{
  position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(255,240,230,.9) 0%,rgba(255,90,60,.35) 45%,transparent 70%);
}

/* ---------- 全屏面板 ---------- */
.screen{
  position:absolute;inset:0;z-index:20;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  padding:5vh 6vw;text-align:center;
  background:
    radial-gradient(ellipse at 50% 42%,rgba(60,6,6,.30) 0%,rgba(0,0,0,.93) 62%),
    linear-gradient(180deg,#05050700,#05050799 70%,#050507);
  backdrop-filter:blur(2px);
  animation:fadeIn .25s ease-out;
}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}

.title-art h1{
  font-size:min(23vw,190px);line-height:.86;color:#d9cbb2;
  text-shadow:0 0 60px rgba(160,10,10,.55),0 6px 0 #000,0 0 4px #000;
  letter-spacing:8px;
}
.title-art h2{
  font-size:min(4.4vw,34px);letter-spacing:min(2.2vw,16px);color:var(--blood);
  margin-top:2px;text-shadow:0 0 22px rgba(200,20,20,.5),0 3px 0 #000;
}
.tagline{margin-top:14px;font-size:13px;color:#7e7566;letter-spacing:2px;}

.scr-title{font-size:26px;letter-spacing:10px;color:#ddd0b8;text-shadow:0 0 26px rgba(150,10,10,.6),0 3px 0 #000;}
.scr-title.dead-title{color:#c02a26;text-shadow:0 0 34px #4d0000,0 3px 0 #000;font-size:32px;}
.scr-title.win-title{color:#e9cf8b;text-shadow:0 0 34px #6b4b06,0 3px 0 #000;font-size:32px;}
.scr-sub{font-size:13px;color:#8c8272;letter-spacing:2px;}

.menu{display:flex;flex-direction:column;gap:10px;align-items:center;}
.btn{
  pointer-events:auto;cursor:pointer;
  min-width:250px;padding:11px 26px;font-family:var(--font-ui);font-size:15px;letter-spacing:5px;
  color:#c8bda6;background:linear-gradient(180deg,#16141a,#0a090c);
  border:2px solid #2d2622;box-shadow:0 0 0 2px #000,0 4px 14px rgba(0,0,0,.8);
  transition:all .11s steps(2);
}
.btn:hover{color:#ffeede;border-color:var(--blood);background:linear-gradient(180deg,#2a1113,#140708);box-shadow:0 0 0 2px #000,0 0 20px rgba(190,20,20,.45);transform:translateY(-1px);}
.btn:active{transform:translateY(1px);}
.btn-major{font-size:18px;color:#e6d7bd;border-color:#4a2018;}
.btn-small{min-width:auto;padding:7px 16px;font-size:12px;letter-spacing:2px;}

.meta-line{font-size:12px;color:#6d6559;letter-spacing:2px;}
.meta-line b{color:#b6a789;}
.hint-line{position:absolute;bottom:16px;font-size:11px;color:#4d4740;letter-spacing:2px;}

/* 操作说明 */
.help-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
  gap:9px 26px;max-width:900px;width:100%;text-align:left;
}
.help-grid > div{display:flex;align-items:center;gap:12px;font-size:12.5px;color:#a89c88;}
kbd{
  flex:0 0 auto;min-width:96px;text-align:center;padding:4px 8px;font-family:var(--font-ui);font-size:12px;
  color:#ded1b8;background:#131117;border:2px solid #322a26;box-shadow:0 2px 0 #000;
}
.help-note{max-width:860px;font-size:12px;line-height:1.9;color:#7c7364;text-align:left;border-left:3px solid var(--blood);padding-left:14px;}
.help-note b{color:#c9a86e;}

/* 遗物图鉴 */
.creed-list{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;
  max-width:1000px;width:100%;max-height:58vh;overflow-y:auto;padding-right:8px;text-align:left;
}
.creed-item{background:rgba(12,10,13,.8);border:1px solid #241d1a;border-left:3px solid var(--blood);padding:7px 10px;}
.creed-item h5{font-size:12.5px;color:#d8c9ac;letter-spacing:1px;margin-bottom:3px;}
.creed-item p{font-size:11px;color:#7f7768;line-height:1.6;}
.creed-item.curse{border-left-color:#6c3ec0;}
.creed-item.rare{border-left-color:var(--gold);}

/* 层间简报 */
.brief{max-width:620px;}
.brief h3{font-size:15px;color:var(--blood-lit);letter-spacing:8px;}
.brief h4{font-size:30px;color:#dccfb6;letter-spacing:6px;margin:8px 0 14px;text-shadow:0 3px 0 #000,0 0 24px rgba(140,10,10,.5);}
.brief p{font-size:13px;color:#847b6b;line-height:1.9;}
.brief-obj{margin-top:18px;font-size:13px;color:#c9a86e;border-top:1px solid #2a231f;border-bottom:1px solid #2a231f;padding:9px 0;letter-spacing:1px;}

/* 遗物卡 */
.card-row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}
.card{
  pointer-events:auto;cursor:pointer;
  width:250px;min-height:290px;padding:18px 16px;
  display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center;
  background:linear-gradient(180deg,#161318,#0b0a0d);
  border:2px solid #2e2622;box-shadow:0 0 0 2px #000,0 6px 22px rgba(0,0,0,.85);
  transition:transform .12s steps(2),border-color .12s,box-shadow .12s;
}
.card:hover{transform:translateY(-7px);border-color:var(--blood);box-shadow:0 0 0 2px #000,0 0 34px rgba(190,20,20,.5);}
.card .sigil{font-size:44px;line-height:1;filter:drop-shadow(0 0 12px rgba(200,40,20,.6));}
.card h4{font-size:15px;color:#e2d4b9;letter-spacing:2px;}
.card .tier{font-size:10px;letter-spacing:3px;color:var(--bone-dim);}
.card p{font-size:12px;line-height:1.75;color:#8d8371;}
.card .cost{margin-top:auto;font-size:11px;color:#a3563f;letter-spacing:1px;}
.card.rare{border-color:#5a4a1e;} .card.rare h4{color:#f0d68a;}
.card.rare:hover{border-color:var(--gold);box-shadow:0 0 0 2px #000,0 0 34px rgba(200,160,40,.4);}
.card.curse{border-color:#3a2158;} .card.curse h4{color:#cbb0ef;}
.card.curse:hover{border-color:#8352d8;box-shadow:0 0 0 2px #000,0 0 34px rgba(120,60,220,.45);}
.upgrade-foot{display:flex;align-items:center;gap:20px;}
.foot-info{font-size:12px;color:#7d7466;}
.foot-info b,#reroll-cost{color:#c9a86e;}

/* 统计块 */
.stat-block{display:grid;grid-template-columns:auto auto;gap:5px 26px;font-size:13px;color:#8d8371;}
.stat-block b{color:#cdbfa4;}
.epitaph{max-width:560px;font-size:12.5px;color:#6f665a;line-height:1.9;font-style:italic;}

.pause-relics{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:760px;}
.pause-relics .relic-chip{background:rgba(14,12,15,.9);}

.opt-row{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;font-size:12px;color:#7d7466;pointer-events:auto;}
.opt-row label{display:flex;align-items:center;gap:6px;cursor:pointer;}
.opt-row input[type=range]{width:110px;accent-color:#8e1218;}
.opt-row input[type=checkbox]{accent-color:#8e1218;width:14px;height:14px;}

#loading{
  position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;
  background:#040406;color:#6d6559;font-size:14px;letter-spacing:6px;
}
#click-lock{
  position:absolute;inset:0;z-index:18;display:flex;align-items:center;justify-content:center;
  background:rgba(2,2,4,.55);color:#c7bba4;font-size:16px;letter-spacing:5px;
  text-shadow:0 2px 0 #000;cursor:pointer;pointer-events:auto;
}

/* 屏幕受击/低血暗角 */
#app.hurt::after{
  content:"";position:absolute;inset:0;z-index:6;pointer-events:none;
  box-shadow:inset 0 0 150px 50px rgba(150,0,0,.55);
}
::-webkit-scrollbar{width:8px;}
::-webkit-scrollbar-track{background:#0a090c;}
::-webkit-scrollbar-thumb{background:#2c2420;}
