:root{
  --bg:#0a0908; --panel:#14110e; --panel-2:#191410; --line:#2b231b; --line-soft:#211a14;
  --text:#e9e1d4; --dim:#9a8f80; --dim-2:#6d6459;
  --ember:#e2762d; --ember-2:#f0a02a; --gold:#c9a227; --blood:#c0392b; --mana:#5c7fb8;
  --serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --radius:14px;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text);
  font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased;overscroll-behavior:none}
button{font-family:inherit}
#world{position:fixed;inset:0;width:100%;height:100%;display:block;background:#0c0f0c;cursor:crosshair;
  image-rendering:pixelated;image-rendering:crisp-edges}
#vignette{position:fixed;inset:0;pointer-events:none;
  background:radial-gradient(120% 85% at 50% 45%,rgba(0,0,0,0) 45%,rgba(0,0,0,.55) 100%)}

/* ─── HUD ─────────────────────────────────────────── */
#hud{position:fixed;inset:0;pointer-events:none;z-index:10}
#hud .plate,.tracker .tr-q,.win{background:linear-gradient(170deg,rgba(28,22,16,.93),rgba(12,10,8,.95));
  border:1px solid var(--line);border-radius:var(--radius);backdrop-filter:blur(10px);
  box-shadow:0 26px 60px -40px #000,inset 0 1px 0 rgba(255,214,150,.07),inset 0 0 0 1px rgba(255,255,255,.015)}
#hud .plate{position:relative}
#hud .plate:before{content:"";position:absolute;left:18px;right:18px;top:-1px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(240,160,42,.55),transparent)}
.hud-top{position:absolute;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.hero-plate{display:flex;gap:12px;padding:12px 14px;min-width:290px;align-items:center}
.portrait{width:58px;height:58px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;font-size:26px;
  border:2px solid #3a2d21;background:radial-gradient(circle at 50% 30%,#2a1e14,#100d0a 70%);
  box-shadow:inset 0 0 24px rgba(226,118,45,.22),0 0 0 3px rgba(10,8,6,.9),0 0 0 4px rgba(201,162,39,.25)}
.plate-body{flex:1;min-width:0}
.row1{display:flex;align-items:baseline;gap:8px;margin-bottom:5px}
.hname{font-family:var(--serif);font-size:17px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lvl{font-size:11px;letter-spacing:.1em;color:var(--gold);border:1px solid #4a3a20;border-radius:99px;padding:1px 7px}
.bar{position:relative;height:11px;border-radius:6px;background:#0b0908;border:1px solid #241d17;overflow:hidden;margin-bottom:4px}
.bar i{display:block;height:100%;width:0;transition:width .25s ease-out;box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.bar b{position:absolute;inset:0;font-size:9px;line-height:11px;text-align:center;color:#fff;
  text-shadow:0 1px 2px #000;font-weight:600;letter-spacing:.02em}
.bar.hp i{background:linear-gradient(90deg,#7d221c,#c0392b 60%,#e05a3d)}
.bar.mp i{background:linear-gradient(90deg,#2b3f63,#4f76b8 60%,#7fa6e0)}
.bar.xp{height:4px;margin-bottom:0;border-color:#221a12}
.bar.xp i{background:linear-gradient(90deg,#8a4a1e,var(--ember-2))}
.world-plate{padding:11px 16px;min-width:250px}
.ember{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.ember b{color:var(--text);letter-spacing:0;font-size:13px}
.ember .dot{width:8px;height:8px;border-radius:50%;background:var(--ember);box-shadow:0 0 12px 2px rgba(226,118,45,.75);animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:.45}50%{opacity:1}}
.ember-track{height:4px;border-radius:3px;background:#241d17;overflow:hidden;margin:8px 0 9px}
.ember-track i{display:block;height:100%;background:linear-gradient(90deg,#8f3f11,var(--ember-2));width:0;transition:width .6s}
.world-meta{display:flex;gap:7px;flex-wrap:wrap;font-size:11.5px;color:var(--dim)}
.world-meta .gold b{color:var(--gold)}
.world-meta .sep{color:var(--dim-2)}

.hud-right{position:absolute;top:110px;right:14px;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
#minimap{width:200px;height:150px;border-radius:12px;border:1px solid var(--line);
  background:#0b0a08;box-shadow:0 20px 50px -35px #000;opacity:.95}

.hud-bottom{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.skills{display:flex;gap:9px;pointer-events:auto}
.skill{position:relative;width:60px;height:60px;border-radius:14px;border:1px solid #3a2d21;cursor:pointer;
  background:linear-gradient(170deg,#1d1712,#100d0a);color:var(--text);display:grid;place-items:center;
  font-size:22px;transition:transform .12s,border-color .18s,box-shadow .2s;overflow:hidden}
.skill:hover{border-color:#5a4227;transform:translateY(-2px)}
.skill .k{position:absolute;top:3px;left:5px;font-size:9px;color:var(--dim-2)}
.skill .cost{position:absolute;bottom:3px;right:5px;font-size:9px;color:#7fa6e0}
.skill .cd{position:absolute;inset:0;display:grid;place-items:center;--p:1;
  background:conic-gradient(rgba(6,5,4,.78) calc(var(--p) * 1turn),rgba(6,5,4,.25) 0);
  font-size:15px;font-weight:700;color:#f0d9bd;font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #000}
.skill .cd[hidden]{display:none}
.skill.off{opacity:.42;cursor:not-allowed}
.skill.ready{border-color:#7a4a20;box-shadow:0 0 22px -8px rgba(226,118,45,.75),inset 0 1px 0 rgba(255,214,150,.12)}
.skill .g{filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}
.hotkeys{font-size:10px;letter-spacing:.06em;color:var(--dim-2);text-shadow:0 1px 3px #000}

.log{position:absolute;left:14px;bottom:18px;width:min(420px,42vw);display:flex;flex-direction:column;gap:3px;
  font-size:12px;color:var(--dim);text-shadow:0 1px 3px #000;max-height:180px;overflow:hidden}
.log div{animation:logIn .3s ease both;opacity:.92}
.log .sys{color:#c9b78f}
.log .good{color:#a9c47f}
.log .bad{color:#e0785f}
.log .chat{color:#c8d4e8}
.log .chat b{color:#e9e1d4;font-weight:600}
@keyframes logIn{from{opacity:0;transform:translateX(-6px)}to{opacity:.92;transform:none}}

.chatbar{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);pointer-events:auto;
  background:rgba(12,10,8,.95);border:1px solid #46392c;border-radius:11px;padding:6px 10px;width:min(520px,80vw)}
.chatbar input{width:100%;background:none;border:0;outline:none;color:var(--text);font:inherit;font-size:14px}

.death{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:radial-gradient(circle,rgba(60,8,4,.55),rgba(6,4,3,.92));
  animation:fadeIn .4s ease both;pointer-events:none}
.death[hidden]{display:none}
.death-in{text-align:center;animation:rise .5s ease both}
.dk{font-size:10px;letter-spacing:.5em;text-transform:uppercase;color:#c0392b}
.death h2{font-family:var(--serif);font-size:clamp(28px,6vw,44px);margin:8px 0;color:#f0d9bd;letter-spacing:.04em}
.death p{color:var(--dim);margin:0}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.joystick{position:absolute;left:26px;bottom:90px;width:118px;height:118px;border-radius:50%;
  border:1px solid rgba(226,118,45,.35);background:rgba(12,10,8,.45);pointer-events:auto;touch-action:none}
.joystick i{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;
  background:radial-gradient(circle at 40% 35%,#e2762d,#8f3f11);opacity:.85}
.touch-attack{position:absolute;right:26px;bottom:92px;width:84px;height:84px;border-radius:50%;font-size:30px;
  border:1px solid rgba(226,118,45,.45);background:rgba(30,18,10,.75);color:#f0d9bd;pointer-events:auto;touch-action:none}

/* ─── lobby ───────────────────────────────────────── */
.lobby{position:fixed;inset:0;z-index:20;overflow:auto;display:grid;place-items:center;padding:28px 18px;
  background:radial-gradient(1100px 700px at 50% -10%,#241a11 0%,rgba(20,15,11,0) 60%),
    radial-gradient(700px 500px at 90% 110%,#1a120c 0%,rgba(10,9,8,0) 55%),var(--bg)}
.lobby[hidden]{display:none}
.lobby-inner{width:100%;max-width:1080px;position:relative;z-index:2}
.embers{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.embers i{position:absolute;bottom:-20px;border-radius:50%;background:radial-gradient(circle,#ffb457,#e2762d 60%,rgba(226,118,45,0) 70%);
  animation:riseUp linear infinite;opacity:0}
@keyframes riseUp{0%{transform:translate3d(0,0,0) scale(.6);opacity:0}10%{opacity:.85}60%{opacity:.5}
  100%{transform:translate3d(var(--dx,20px),-105vh,0) scale(1.1);opacity:0}}
.brand{display:flex;align-items:baseline;gap:14px;justify-content:center;margin-bottom:6px}
.brand h1{font-family:var(--serif);font-weight:600;font-size:clamp(30px,6vw,48px);margin:0;letter-spacing:.22em;
  background:linear-gradient(180deg,#ffd79a,#e2762d 55%,#8d3f12);-webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 40px rgba(226,118,45,.25)}
.brand .tag{font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--dim-2)}
.lede{max-width:620px;margin:0 auto 22px;text-align:center;color:var(--dim);font-size:14.5px}
.lede b{color:var(--text);font-weight:500}

.auth{max-width:400px;margin:0 auto;background:linear-gradient(170deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 40px 90px -60px #000}
.tabs{display:flex;gap:6px;background:#0d0b09;border:1px solid var(--line-soft);border-radius:11px;padding:4px;margin-bottom:18px}
.tabs button{flex:1;border:0;background:none;color:var(--dim);padding:9px;border-radius:8px;cursor:pointer;font-size:13px}
.tabs button.on{background:linear-gradient(180deg,#2a1d12,#1a1310);color:var(--text);box-shadow:0 1px 0 rgba(255,255,255,.05) inset}
.field{margin-bottom:13px}
.field label{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim-2);margin-bottom:5px}
input[type=text],input[type=password]{width:100%;background:#0d0b09;border:1px solid var(--line);color:var(--text);
  padding:11px 13px;border-radius:10px;font:inherit;font-size:15px;transition:border-color .2s,box-shadow .2s}
input[type=text]:focus,input[type=password]:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(226,118,45,.12)}
.btn{appearance:none;border:1px solid var(--line);background:linear-gradient(180deg,#1b1611,#12100d);color:var(--text);
  padding:11px 16px;border-radius:11px;font-size:13.5px;cursor:pointer;transition:border-color .18s,background .18s,transform .12s,box-shadow .2s}
.btn:hover:not(:disabled){border-color:#46392c;background:linear-gradient(180deg,#221a13,#16120e)}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled{opacity:.38;cursor:not-allowed}
.btn.primary{border-color:#8a4a1e;background:linear-gradient(180deg,#c9641f,#8f3f11);color:#fff2e2;font-weight:600;
  box-shadow:0 10px 30px -16px rgba(226,118,45,.9),inset 0 1px 0 rgba(255,255,255,.14)}
.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#e0752a,#a04a13);border-color:#e2762d}
.btn.wide{width:100%;justify-content:center;display:flex}
.err{color:#e0785f;font-size:12.5px;min-height:18px;margin-top:8px;text-align:center}
.hint{color:var(--dim-2);font-size:11.5px;text-align:center;margin-top:14px;line-height:1.6}

.classes{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}
@media (max-width:900px){.classes{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.classes{grid-template-columns:1fr}}
.class-card{position:relative;background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--line);
  border-radius:var(--radius);padding:16px 14px;cursor:pointer;text-align:left;color:var(--text);
  transition:transform .18s,border-color .18s,box-shadow .25s;overflow:hidden}
.class-card:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 0%,var(--tint,rgba(226,118,45,.16)),transparent 62%);opacity:.5;transition:opacity .3s}
.class-card:hover{transform:translateY(-4px);border-color:#3b3025}
.class-card:hover:before{opacity:1}
.class-card.sel{border-color:var(--ember);box-shadow:0 0 0 1px rgba(226,118,45,.5),0 22px 50px -26px #000}
.class-card .glyph{font-size:30px;line-height:1;margin-bottom:8px}
.class-card h3{font-family:var(--serif);font-size:18px;margin:0 0 2px}
.class-card .title{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);opacity:.85;margin-bottom:8px}
.class-card p{font-size:12.5px;color:var(--dim);margin:0 0 10px;min-height:52px;line-height:1.45}
.class-card .skills{font-size:11.5px;color:var(--dim);border-top:1px dashed var(--line-soft);padding-top:8px}
.class-card .skills b{color:var(--text);font-weight:500}
.heroes-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px;font-size:12px;color:var(--dim)}
.heroes-row .h{display:flex;align-items:center;gap:6px;border:1px solid var(--line-soft);border-radius:99px;padding:4px 10px}
.heroes-row .dot{width:7px;height:7px;border-radius:50%}

/* ─── мобильная раскладка HUD ───────────────────────── */
@media (max-width:760px){
  .hud-top{flex-direction:column;gap:7px;top:8px;left:8px;right:8px}
  .hero-plate{min-width:0;width:100%;padding:8px 10px;gap:9px}
  .portrait{width:44px;height:44px;font-size:20px}
  .hname{font-size:15px}
  .lvl{font-size:10px;padding:0 5px}
  .world-plate{width:100%;padding:8px 12px;min-width:0}
  .world-meta{font-size:10.5px;gap:5px}
  .ember{font-size:9.5px;letter-spacing:.12em}
  .hud-right{top:auto;right:8px;bottom:214px;gap:0}
  .tracker{width:min(56vw,210px)}
  .tracker .tr-q:nth-child(n+3){display:none}
  .tr-head kbd,.menu-btns span{display:none}
  #minimap{display:none}
  .menu-btns{top:auto;bottom:214px;left:8px;flex-direction:column}
  .win,.win-npc,.win-shop{left:8px;right:8px;width:auto;top:8px;bottom:auto;max-height:calc(100vh - 16px);transform:none}
  .bossbar{top:118px;width:calc(100vw - 16px)}
  .banner{top:30%}
  .hud-bottom{bottom:10px;left:50%;transform:translateX(-50%)}
  .skills{gap:6px}
  .skill{width:48px;height:48px;font-size:19px;border-radius:12px}
  .skill .k{font-size:8px}
  .skill .cost{font-size:8px}
  .hotkeys{display:none}
  .log{left:8px;bottom:66px;width:min(58vw,230px);font-size:10.5px;max-height:70px;line-height:1.35}
  .joystick{left:10px;bottom:130px;width:98px;height:98px}
  .touch-attack{right:12px;bottom:134px;width:74px;height:74px;font-size:26px}
  .chatbar{bottom:200px;width:92vw}
  .toast{bottom:auto;top:14px;font-size:12px}
  .death h2{font-size:26px}
}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);z-index:80;opacity:0;pointer-events:none;
  background:#241a12;border:1px solid #6d3a1a;color:#f6e7d3;padding:11px 18px;border-radius:11px;font-size:13px;
  box-shadow:0 20px 60px -20px #000;transition:opacity .25s,transform .25s;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media (max-width:760px){.toast{bottom:auto;top:14px;font-size:12px;transform:translate(-50%,-12px)}.toast.show{transform:translate(-50%,0)}}
.dim{color:var(--dim-2)}
.center{text-align:center}
.mt{margin-top:14px}

/* ─── трекер заданий ───────────────────────────────── */
kbd{font-family:var(--mono);font-size:9px;color:var(--dim);border:1px solid #3a2d21;border-bottom-width:2px;border-radius:4px;padding:0 4px;background:#14100c}
.tracker{width:250px;display:flex;flex-direction:column;gap:6px;pointer-events:auto}
.tr-head{display:flex;align-items:center;gap:7px;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
  text-shadow:0 1px 3px #000;padding:0 2px}
.tr-head span{letter-spacing:0;color:var(--dim)}
.tr-head kbd{margin-left:auto}
.tr-empty{font-size:11.5px;color:var(--dim);line-height:1.5;background:rgba(12,10,8,.78);border:1px dashed var(--line);border-radius:12px;padding:10px 12px}
.tr-empty b{color:#ffd23a}
.tracker .tr-q{display:block;text-align:left;color:var(--text);padding:9px 12px;cursor:pointer;border-radius:12px;font:inherit;transition:border-color .15s,transform .12s}
.tracker .tr-q:hover{border-color:#4a3a2a;transform:translateX(-2px)}
.tracker .tr-q.on{border-color:#7a5a24;box-shadow:inset 3px 0 0 var(--gold)}
.tracker .tr-q.ready{border-color:#8a6a1e;background:linear-gradient(170deg,rgba(54,40,14,.95),rgba(16,12,8,.95))}
.tr-t{font-family:var(--serif);font-size:14px;margin-bottom:3px}
.tr-q.ready .tr-t{color:#ffd27a}
.tr-g{font-size:11px;color:var(--dim);line-height:1.5}
.tr-g b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}
.tr-g.ok,.tr-g.ok b{color:#a9c47f}

/* ─── кнопки меню ──────────────────────────────────── */
.menu-btns{position:absolute;left:14px;top:118px;display:flex;gap:8px;pointer-events:auto}
.mbtn{position:relative;width:44px;height:44px;border-radius:12px;border:1px solid #3a2d21;cursor:pointer;font-size:19px;
  background:linear-gradient(170deg,#1d1712,#100d0a);color:var(--text);transition:transform .12s,border-color .15s}
.mbtn:hover{transform:translateY(-2px);border-color:#6a4a24}
.mbtn span{position:absolute;right:3px;bottom:1px;font-size:8px;color:var(--dim-2);font-family:var(--mono)}

/* ─── полоса HP босса ──────────────────────────────── */
.bossbar{position:absolute;top:16px;left:50%;transform:translateX(-50%);width:min(460px,52vw);text-align:center;animation:fadeIn .3s ease both}
.bossbar[hidden]{display:none}
.bb-name{font-family:var(--serif);font-size:15px;letter-spacing:.08em;color:#f0d9bd;text-shadow:0 2px 6px #000;margin-bottom:5px}
.bb-track{position:relative;height:14px;border-radius:7px;background:#0b0807;border:1px solid #5a2a1a;overflow:hidden;
  box-shadow:0 0 30px -10px rgba(192,57,43,.7)}
.bb-track i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#6a140e,#c0392b 55%,#ff6a40);transition:width .3s ease-out}
.bb-track b{position:absolute;inset:0;font-size:9.5px;line-height:14px;color:#fff;text-shadow:0 1px 2px #000;font-variant-numeric:tabular-nums}
.bossbar.enraged .bb-track{animation:enr .6s infinite alternate}
@keyframes enr{from{box-shadow:0 0 18px -6px rgba(255,40,20,.6)}to{box-shadow:0 0 34px 0 rgba(255,40,20,.9)}}

/* ─── баннер по центру ─────────────────────────────── */
.banner{position:absolute;top:22%;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;opacity:0;
  min-width:320px;padding:14px 40px;background:radial-gradient(closest-side,rgba(10,8,6,.75),rgba(10,8,6,0))}
.banner[hidden]{display:none}
.banner.show{animation:bnIn 2.6s ease both}
@keyframes bnIn{0%{opacity:0;transform:translate(-50%,10px)}12%{opacity:1;transform:translate(-50%,0)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-6px)}}
.bn-k{font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--dim)}
.bn-t{font-family:var(--serif);font-size:clamp(24px,4vw,36px);color:#f6e7d3;letter-spacing:.06em;text-shadow:0 2px 14px rgba(0,0,0,.9);margin:3px 0}
.bn-s{font-size:12.5px;color:var(--dim);max-width:460px;margin:0 auto}
.banner.gold .bn-k{color:var(--gold)}
.banner.gold .bn-t{background:linear-gradient(180deg,#fff0c8,#f0a02a);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.banner.danger .bn-k{color:#e0785f}

/* ─── окна: диалог, лавка, сумка, журнал ───────────── */
.win{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(500px,94vw);max-height:min(640px,86vh);
  overflow:auto;padding:20px 22px 18px;pointer-events:auto;z-index:30;border-color:#4a3a28;animation:winIn .18s ease both;
  scrollbar-width:thin;scrollbar-color:#3a2d21 transparent}
.win[hidden]{display:none}
.win-npc,.win-shop{top:auto;bottom:110px;transform:translateX(-50%)}
@keyframes winIn{from{opacity:0}to{opacity:1}}
.w-x{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:#120e0b;color:var(--dim);cursor:pointer}
.w-x:hover{color:var(--text);border-color:#5a4227}
.w-title{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:4px 0 10px}
.w-title.small{margin-top:16px}
.d-head{display:flex;gap:13px;align-items:center;margin-bottom:12px;padding-right:30px}
.d-por{width:52px;height:52px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-size:24px;
  background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--c) 45%,#1a120c),#0e0b08 75%);
  border:2px solid color-mix(in srgb,var(--c) 60%,#3a2d21);box-shadow:0 0 0 3px rgba(10,8,6,.9)}
.d-head.small .d-por{width:42px;height:42px;font-size:19px}
.d-name{font-family:var(--serif);font-size:20px;line-height:1.15}
.d-title{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);opacity:.85;margin-top:2px}
.d-title .gold{color:#ffd27a;letter-spacing:0;font-size:12px}
.d-line{font-family:var(--serif);font-style:italic;font-size:15px;line-height:1.55;color:#e4d7c3;margin:0 0 14px;
  padding:10px 14px;border-left:2px solid #6a4a24;background:rgba(255,200,120,.03);border-radius:0 8px 8px 0}
.d-opts{display:flex;flex-direction:column;gap:6px}
.d-opt{display:flex;align-items:center;gap:11px;text-align:left;width:100%;padding:9px 12px;border-radius:11px;cursor:pointer;font:inherit;
  border:1px solid var(--line);background:linear-gradient(180deg,#1a1510,#120f0c);color:var(--text);transition:border-color .15s,transform .1s}
.d-opt:hover{border-color:#6a4a24;transform:translateX(3px)}
.d-opt .mk{width:24px;text-align:center;font:700 18px Georgia,serif;color:#ffd23a;flex:0 0 auto}
.d-opt b{display:block;font-weight:600;font-size:14px}
.d-opt i{display:block;font-style:normal;font-size:11px;color:var(--dim);margin-top:1px}
.d-opt.q-active .mk{color:var(--dim)}
.d-opt.q-ready{border-color:#7a5a24;background:linear-gradient(180deg,#2a2010,#15110b)}
.d-opt.bye .mk{color:var(--dim);font-size:15px}
.d-actions{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.q-sec{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--dim-2);margin:10px 0 6px}
.q-goals{list-style:none;margin:0;padding:0;font-size:13px;line-height:1.7}
.q-goals li b{color:var(--dim);font-weight:500;font-variant-numeric:tabular-nums}
.q-goals li.ok{color:#a9c47f}
.q-rw{display:flex;flex-wrap:wrap;gap:6px}
.rw{font-size:12px;padding:4px 9px;border-radius:99px;border:1px solid var(--line);background:#14100c}
.rw.gold{color:#ffd27a}
.rw.xp{color:#e7b47a}
.q-lv{letter-spacing:0;text-transform:none}
.q-lv.hard{color:#e0785f}
.btn.sm{padding:6px 11px;font-size:12px;border-radius:9px;white-space:nowrap}
.btn.danger{border-color:#8a2a1e;color:#ffb4a0}
.w-tabs{margin:0 0 10px}
.sh-list{display:flex;flex-direction:column;gap:6px;max-height:330px;overflow:auto}
.sh-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:11px;background:#110e0b}
.sh-g{position:relative;width:36px;height:36px;border-radius:9px;display:grid;place-items:center;font-size:19px;background:#1a140f;border:1px solid var(--line);flex:0 0 auto}
.sh-g sub{position:absolute;right:2px;bottom:0;font-size:9px;color:var(--text)}
.sh-n{flex:1;min-width:0}
.sh-n b{display:block;font-size:13.5px;font-weight:600}
.sh-n i{display:block;font-style:normal;font-size:11px;color:var(--dim)}
.sh-n em{font-style:normal}
.bad{color:#e0785f !important}
.empty{color:var(--dim);font-size:13px;text-align:center;padding:18px}
.empty b{color:#ffd23a}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}
.stats div{background:#110e0b;border:1px solid var(--line-soft);border-radius:10px;padding:7px 9px}
.stats i{display:block;font-style:normal;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-2)}
.stats b{font-size:17px;font-family:var(--serif)}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.slot{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;border-radius:12px;cursor:pointer;font:inherit;
  border:1px solid var(--line);background:#110e0b;color:var(--text);text-align:center}
.slot.empty{cursor:default;opacity:.65}
.slot:not(.empty):hover{border-color:#6a4a24}
.sl-g{font-size:26px;height:32px}
.sl-g .ghost{opacity:.25;filter:grayscale(1)}
.sl-n i{display:block;font-style:normal;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-2)}
.sl-n b{font-size:12px;font-weight:600}
.cells{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.cell{position:relative;aspect-ratio:1;border-radius:10px;border:1px solid var(--line);background:#120e0b;font-size:21px;cursor:pointer;color:var(--text)}
.cell:hover:not(:disabled){border-color:#6a4a24;transform:translateY(-1px)}
.cell.blank{opacity:.35;cursor:default}
.cell sub{position:absolute;right:4px;bottom:1px;font-size:10px;font-weight:700;text-shadow:0 1px 2px #000}
.hint-s{font-size:11px;color:var(--dim-2);margin-top:10px;text-align:center}
.jr-list{display:flex;flex-direction:column;gap:10px}
.jr-q{border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:#110e0b}
.jr-q.ready{border-color:#7a5a24}
.jr-t{font-family:var(--serif);font-size:16px}
.jr-q p{font-size:12.5px;color:var(--dim);line-height:1.5;margin:5px 0 8px}
.jr-act{display:flex;justify-content:flex-end;gap:6px;margin-top:9px}
.jr-fin{display:flex;flex-wrap:wrap;gap:6px}
.jr-done{font-size:11.5px;color:#a9c47f;border:1px solid #2a3320;border-radius:99px;padding:3px 9px}

/* редкость: цвет имени и рамки */
.r-rare .sh-g,.r-rare.cell,.slot.r-rare,.rw.r-rare{border-color:#2f5a9a}
.r-epic .sh-g,.r-epic.cell,.slot.r-epic,.rw.r-epic{border-color:#7a3fb0;box-shadow:0 0 14px -6px #a060e0}
.r-rare .sh-n b,.slot.r-rare b,.rw.r-rare,.tp-n.r-rare{color:#7fb0ff}
.r-epic .sh-n b,.slot.r-epic b,.rw.r-epic,.tp-n.r-epic{color:#cf9cff}

/* ─── подсказка к предмету ─────────────────────────── */
.tip{position:fixed;z-index:90;max-width:260px;pointer-events:none;background:#15100c;border:1px solid #5a4227;border-radius:10px;
  padding:9px 11px;font-size:12px;box-shadow:0 18px 40px -16px #000}
.tip[hidden]{display:none}
.tp-n{font-family:var(--serif);font-size:15px}
.tp-k{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-2);margin:2px 0 5px}
.tp-s{color:#a9c47f;margin-bottom:4px}
.tp-req{color:var(--dim);font-size:11px}
.tp-d{color:var(--dim);font-style:italic;line-height:1.45;margin-top:4px}
.tp-p{color:#ffd27a;font-size:11px;margin-top:5px}

/* мобильная раскладка новых панелей (после их базовых стилей, чтобы перебивать) */
@media (max-width:760px){
  .tracker{width:min(56vw,210px)}
  .tracker .tr-q:nth-of-type(n+3){display:none}
  .tr-head kbd,.menu-btns span{display:none}
  .menu-btns{top:auto;bottom:214px;left:8px;flex-direction:column}
  .win,.win-npc,.win-shop{left:8px;right:8px;width:auto;top:8px;bottom:auto;max-height:calc(100vh - 16px);transform:none;padding:16px}
  .bossbar{top:118px;width:calc(100vw - 16px)}
  .banner{top:30%;min-width:0;width:90vw}
  .stats{grid-template-columns:repeat(2,1fr)}
}
