/* LEO SMP — оформление сайта. Свой пиксельный шрифт, никаких внешних сервисов. */
@font-face{
  font-family:'Silkscreen';font-style:normal;font-weight:400;font-display:swap;
  src:url('/fonts/silkscreen-400.woff2') format('woff2');
}
@font-face{
  font-family:'Silkscreen';font-style:normal;font-weight:700;font-display:swap;
  src:url('/fonts/silkscreen-700.woff2') format('woff2');
}
:root{
  --sky1:#4aa7e0; --sky2:#8fd3f4; --grass:#5f9a46; --grass2:#6fae52; --dirt:#7a5a3a;
  --panel:#1b2740; --panel2:#22304f; --gold:#ceab66; --gold2:#e9ce99;
  --ink:#f3f6fb; --muted:#a9bad4; --ok:#54c07a; --bad:#e06d5f;
  --pixel:'Silkscreen','Courier New',monospace;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:#0d1424;color:var(--ink);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Open Sans",Roboto,Helvetica,Arial,sans-serif}
img.face{image-rendering:pixelated}
.wrap{max-width:980px;margin:0 auto;padding:0 18px 56px}

/* небо */
.sky{position:relative;height:290px;overflow:hidden;
  background:linear-gradient(180deg,var(--sky1),var(--sky2));
  border-bottom:10px solid var(--grass);
  box-shadow:0 10px 0 0 var(--dirt), 0 22px 40px rgba(0,0,0,.45);transition:background .8s ease}
.sky:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:10px;
  background:repeating-linear-gradient(90deg,var(--grass) 0 10px,var(--grass2) 10px 20px)}
body.night .sky{background:linear-gradient(180deg,#16223d,#243b63)}
body.night .cloud{background:#8ba3c9;box-shadow:14px 0 0 #8ba3c9,28px 0 0 #8ba3c9,0 14px 0 #8ba3c9,14px 14px 0 #8ba3c9,28px 14px 0 #8ba3c9;opacity:.55}
.cloud{position:absolute;background:#fff;opacity:.92;width:14px;height:14px;transition:background .8s ease;
  box-shadow:14px 0 0 #fff,28px 0 0 #fff,0 14px 0 #fff,14px 14px 0 #fff,28px 14px 0 #fff}
.c1{top:34px;left:-12%;animation:drift 46s linear infinite}
.c2{top:78px;left:-30%;animation:drift 68s linear infinite;opacity:.75}
.c3{top:18px;left:-55%;animation:drift 92s linear infinite;opacity:.6;transform:scale(1.4)}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(140vw)}}
.sun{position:absolute;right:64px;top:28px;width:44px;height:44px;background:#ffe08a;
  box-shadow:0 0 40px 10px rgba(255,224,138,.55);transition:opacity .8s ease}
body.night .sun{opacity:.18;background:#dfe8ff}
.moon{position:absolute;right:64px;top:28px;width:36px;height:36px;background:#e8eeff;opacity:0;
  border-radius:50%;box-shadow:0 0 30px 8px rgba(232,238,255,.35);transition:opacity .8s ease;z-index:2}
body.night .moon{opacity:.9}

/* шапка */
.hero{position:relative;margin-top:-190px;text-align:center;padding-top:10px}
.logo{display:flex;align-items:center;justify-content:center;gap:16px;filter:drop-shadow(0 6px 0 rgba(0,0,0,.35))}
.star{width:46px;height:46px;flex:0 0 46px}
h1{margin:0;font-family:var(--pixel);font-weight:700;font-size:clamp(26px,5.4vw,46px);color:var(--gold2);
  text-shadow:3px 3px 0 #6b5427, 6px 6px 0 rgba(0,0,0,.28);letter-spacing:.04em}
.school{display:inline-block;margin-top:14px;padding:8px 16px;border-radius:999px;
  background:rgba(16,24,40,.62);border:1px solid rgba(255,255,255,.22);color:#eaf1ff;font-size:14px}
.board{display:inline-block;margin-top:16px;padding:10px 18px;background:#20304d;border:3px solid #0c1424;
  box-shadow:inset -4px -4px 0 rgba(0,0,0,.35), inset 4px 4px 0 rgba(255,255,255,.07);
  font-family:var(--pixel);font-size:13px;color:var(--gold2)}

/* статус */
.status{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:center;margin:30px 0 6px;padding:18px 22px;
  background:linear-gradient(180deg,var(--panel2),var(--panel));border:4px solid #0b1120;border-radius:8px;
  box-shadow:inset -5px -5px 0 rgba(0,0,0,.35), inset 5px 5px 0 rgba(255,255,255,.06), 0 12px 26px rgba(0,0,0,.35)}
.lamp{width:14px;height:14px;background:var(--ok);display:inline-block;margin-right:10px;
  box-shadow:0 0 12px var(--ok);animation:blink 2.4s steps(2,end) infinite}
.lamp.off{background:var(--bad);box-shadow:0 0 12px var(--bad);animation:none}
@keyframes blink{0%,88%{opacity:1}90%,100%{opacity:.35}}
.status .big{font-family:var(--pixel);font-size:17px;color:#eaf6ff}
.chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.chip{font-family:var(--pixel);font-size:12px;color:var(--muted);background:#16223a;border:2px solid #0b1120;padding:7px 11px}
.chip b{color:var(--gold2);font-weight:400}

/* кнопки */
.join{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:center;margin:26px 0 8px}
.mcbtn{font-family:var(--pixel);font-size:14px;cursor:pointer;color:#241905;
  background:linear-gradient(180deg,var(--gold2),var(--gold));border:4px solid #6b5427;padding:14px 22px;
  box-shadow:inset -4px -4px 0 #a3833f, inset 4px 4px 0 #f6e6bf, 0 6px 0 #4b3b1a;transition:filter .12s ease}
.mcbtn:hover{filter:brightness(1.07)}
.mcbtn:active{transform:translateY(3px);box-shadow:inset -3px -3px 0 #a3833f, inset 3px 3px 0 #f6e6bf, 0 3px 0 #4b3b1a}
.mcbtn.ghost{color:#eaf1ff;background:linear-gradient(180deg,#2a3b5e,#1e2b46);border-color:#0b1120;
  box-shadow:inset -4px -4px 0 rgba(0,0,0,.4), inset 4px 4px 0 rgba(255,255,255,.08), 0 6px 0 #0b1120}
.addr{display:flex;align-items:center;gap:10px;background:#0f1a2e;border:3px dashed rgba(206,171,102,.45);
  padding:12px 18px;font-family:var(--pixel);font-size:15px;color:var(--gold2)}

h2{font-family:var(--pixel);font-size:15px;color:var(--gold);margin:38px 0 14px;font-weight:400}
h2:before{content:"▚ ";color:#4c6a9c}
.hint{color:var(--muted);font-size:13px;margin-top:8px;text-align:center}
.empty{grid-column:1/-1;color:var(--muted);font-size:15px;padding:22px;text-align:center;
  background:rgba(255,255,255,.03);border:3px dashed rgba(206,171,102,.24)}

/* игроки */
.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.pcard{background:linear-gradient(180deg,var(--panel2),var(--panel));border:4px solid #0b1120;border-radius:8px;padding:16px;
  box-shadow:inset -5px -5px 0 rgba(0,0,0,.35), inset 5px 5px 0 rgba(255,255,255,.05)}
.prow{display:flex;gap:14px;align-items:center}
.face{width:56px;height:56px;border:3px solid #0b1120;background:#111a2c}
.pname{font-family:var(--pixel);font-size:15px;color:#eaf6ff;word-break:break-all}
.pmeta{color:var(--muted);font-size:13px;margin-top:4px}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.badge{font-family:var(--pixel);font-size:11px;padding:5px 9px;background:#16223a;border:2px solid #0b1120;color:#cfe0f7}
.badge.dim{color:#ffd9a0}
.badge.overworld{color:#a5e59b}
.badge.nether{color:#ff9d7a}
.badge.end{color:#c8a6ff}
.xp{height:12px;background:#0f1a2e;border:3px solid #0b1120;margin-top:14px;position:relative;overflow:hidden}
.xp i{position:absolute;inset:0 auto 0 0;background:linear-gradient(180deg,#8ee06a,#54a83f);display:block}
.xp span{position:absolute;inset:0;text-align:center;font-family:var(--pixel);font-size:8px;line-height:9px;color:#0d1424}

/* события */
.feed{background:linear-gradient(180deg,#19253d,#141e31);border:4px solid #0b1120;border-radius:8px;overflow:hidden}
.ev{display:flex;gap:12px;align-items:center;padding:13px 16px;border-bottom:2px solid rgba(0,0,0,.35);font-size:15px}
.ev:last-child{border-bottom:none}
.ev .ico{width:26px;text-align:center;font-size:18px}
.ev b{color:var(--gold2)}
.ev .when{color:var(--muted);font-size:12px;margin-left:auto;white-space:nowrap;font-family:var(--pixel)}

/* инвентарь */
.inv{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.slot{background:#16223a;border:4px solid #0b1120;padding:14px;text-align:center;
  box-shadow:inset -4px -4px 0 rgba(0,0,0,.4), inset 4px 4px 0 rgba(255,255,255,.05)}
.slot .ic{font-size:26px}
.slot b{display:block;font-family:var(--pixel);font-size:20px;color:var(--gold2);margin:8px 0 4px}
.slot span{color:var(--muted);font-size:12px}

/* таблички */
.signs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.sign{background:linear-gradient(180deg,#8a6743,#6f5134);border:4px solid #4a3722;padding:16px 18px;color:#fff6e2;
  box-shadow:inset -4px -4px 0 rgba(0,0,0,.25), inset 4px 4px 0 rgba(255,255,255,.12)}
.sign h3{margin:0 0 8px;font-family:var(--pixel);font-size:13px;color:#ffe7b0}
.sign p{margin:0;font-size:14px;line-height:1.5}

.steps{counter-reset:s;display:grid;gap:12px}
.step{display:flex;gap:14px;align-items:flex-start;background:rgba(255,255,255,.04);border:3px solid #0b1120;padding:14px 16px}
.step:before{counter-increment:s;content:counter(s);font-family:var(--pixel);font-size:16px;color:#241905;
  background:linear-gradient(180deg,var(--gold2),var(--gold));border:3px solid #6b5427;min-width:34px;height:34px;
  display:flex;align-items:center;justify-content:center}
.step p{margin:0;font-size:15px}
.step b{color:var(--gold2)}

footer{margin-top:44px;text-align:center;color:var(--muted);font-size:13px;line-height:1.9}
.vline{height:6px;background:repeating-linear-gradient(90deg,#4c6a9c 0 12px,#22304f 12px 24px);margin:34px 0}

/* всплывающее уведомление — как в игре */
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,140%);z-index:99;transition:transform .35s cubic-bezier(.2,.9,.3,1.4);
  max-width:92vw}
.toast.show{transform:translate(-50%,0)}
.tframe{background:linear-gradient(180deg,var(--panel2),var(--panel));border:4px solid #0b1120;padding:14px 20px;
  box-shadow:inset -5px -5px 0 rgba(0,0,0,.4), inset 5px 5px 0 rgba(255,255,255,.07), 0 14px 30px rgba(0,0,0,.5)}
.ttitle{font-family:var(--pixel);font-size:13px;color:var(--gold2)}
.ttext{color:#e6eeff;font-size:14px;margin-top:6px}
@media (max-width:600px){.c3{display:none}.hero{margin-top:-160px}.sky{height:250px}.sun{right:24px;top:20px}}
