/* wiki.9minecraft.net — "Google Floating" minimalist theme (2026-09-27)
   Thẻ nổi bo tròn + shadow mềm + accent Google-blue + Roboto. Light + Dark. */
:root{
  --bg:#f6f8fc; --surface:#ffffff; --surface2:#f1f3f4; --chip:#e8f0fe;
  --text:#202124; --muted:#5f6368; --line:#e4e7eb;
  --accent:#1a73e8; --accent-2:#1765cc; --on-accent:#fff;
  --radius:18px; --radius-sm:12px; --radius-xs:8px;
  --shadow:0 1px 2px rgba(60,64,67,.10),0 1px 3px 1px rgba(60,64,67,.06);
  --shadow-h:0 1px 3px rgba(60,64,67,.16),0 6px 14px 2px rgba(60,64,67,.10);
  --sans:'Roboto',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'Roboto Mono',ui-monospace,'IBM Plex Mono',monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#1b1c1d; --surface:#26282b; --surface2:#303134; --chip:#1f2a3b;
  --text:#e8eaed; --muted:#9aa0a6; --line:#3c4043;
  --accent:#8ab4f8; --accent-2:#aecbfa; --on-accent:#0b213f;
  --shadow:0 1px 2px rgba(0,0,0,.34),0 1px 3px 1px rgba(0,0,0,.20);
  --shadow-h:0 1px 3px rgba(0,0,0,.44),0 6px 14px 2px rgba(0,0,0,.28);
}}
:root[data-theme="dark"]{
  --bg:#1b1c1d; --surface:#26282b; --surface2:#303134; --chip:#1f2a3b;
  --text:#e8eaed; --muted:#9aa0a6; --line:#3c4043;
  --accent:#8ab4f8; --accent-2:#aecbfa; --on-accent:#0b213f;
  --shadow:0 1px 2px rgba(0,0,0,.34),0 1px 3px 1px rgba(0,0,0,.20);
  --shadow-h:0 1px 3px rgba(0,0,0,.44),0 6px 14px 2px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);
  font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
code{font-family:var(--mono);font-size:.86em;background:var(--surface2);
  padding:.12em .42em;border-radius:6px;color:var(--muted)}
h1{font-size:28px;font-weight:700;letter-spacing:-.4px;margin:.1em 0 .35em}
h2{font-size:20px;font-weight:700;letter-spacing:-.2px;margin:1.4em 0 .5em;
  padding-bottom:.35em;border-bottom:1px solid var(--line)}
h3{font-size:16px;font-weight:600;margin:1.1em 0 .4em}
p{margin:.5em 0}
.iid{font-family:var(--mono);font-size:12.5px;color:var(--muted);margin:-.2em 0 1em;word-break:break-all}
.src{color:var(--muted);font-size:13.5px;margin:.2em 0 .8em}

/* ---- topbar (floating pill) ---- */
.topbar{position:sticky;top:0;z-index:40;background:var(--bg);padding:10px 0}
.twrap{max-width:1180px;margin:0 auto;padding:8px 14px;display:flex;align-items:center;gap:14px;
  background:var(--surface);border-radius:999px;box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{height:26px!important;width:auto}
.wikiname{font-weight:600;font-size:14.5px;white-space:nowrap;color:var(--muted)}
.wikiname a{color:var(--text)}
.wikiname a:hover{text-decoration:none;color:var(--accent)}
.search{position:relative;flex:1 1 auto;max-width:560px;margin:0 auto}
.search input{width:100%;border:1px solid transparent;background:var(--surface2);
  border-radius:999px;padding:10px 18px;font:inherit;font-size:14px;color:var(--text);outline:none;transition:.15s}
.search input:focus{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-h)}
.sres{position:absolute;top:110%;left:0;right:0;background:var(--surface);border-radius:16px;
  box-shadow:var(--shadow-h);overflow:hidden;z-index:50}
.sres a{display:block;padding:10px 16px;color:var(--text);border-bottom:1px solid var(--line)}
.sres a:hover{background:var(--surface2);text-decoration:none}
.tbtn{flex:0 0 auto;width:38px;height:38px;border:none;border-radius:50%;background:var(--surface2);
  color:var(--muted);font-size:18px;cursor:pointer;transition:.15s}
.tbtn:hover{background:var(--chip);color:var(--accent)}

/* ---- layout ---- */
.layout{max-width:1180px;margin:14px auto;padding:0 14px;display:grid;
  grid-template-columns:230px 1fr;gap:18px;align-items:start}
.side{position:sticky;top:78px;display:flex;flex-direction:column;gap:14px}
.side .box{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 8px}
.side .box h3{margin:.2em 12px .5em;font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.side .box a{display:block;padding:8px 14px;border-radius:999px;color:var(--text);font-size:14px;font-weight:500}
.side .box a:hover{background:var(--surface2);text-decoration:none}
.side .box a.on{background:var(--chip);color:var(--accent);font-weight:700}
main{min-width:0}
.crumb{font-size:13px;color:var(--muted);margin:2px 4px 12px}
.crumb a{color:var(--muted)}
article{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:26px 30px;overflow:hidden}
article>h2:first-of-type,article>h1:first-child{margin-top:.1em}

/* ---- hero ---- */
.hero{margin:-4px 0 8px}
.hero h1{margin-bottom:.15em}
.hero .iid{margin-bottom:.7em}
.hero p{font-size:16px;color:var(--text);max-width:none}

/* ---- guides ---- */
.gguide{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:10px 0}
.gcard{display:block;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-sm);
  text-decoration:none;font-weight:600;line-height:1.4;color:var(--text);background:var(--surface);transition:.15s}
.gcard:hover{text-decoration:none;box-shadow:var(--shadow-h);transform:translateY(-2px);border-color:transparent}

/* ---- FAQ ---- */
details.faq{border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px 16px;margin:8px 0;background:var(--surface)}
details.faq>summary{cursor:pointer;font-weight:600;padding:12px 0;list-style:none}
details.faq>summary::-webkit-details-marker{display:none}
details.faq>summary::before{content:"+";color:var(--accent);font-weight:700;margin-right:10px}
details.faq[open]>summary::before{content:"–"}
details.faq[open]>summary{border-bottom:1px solid var(--line)}
details.faq>div{padding:12px 0;color:var(--text)}

/* ---- processes chips ---- */
.chip{display:inline-flex;align-items:center;gap:6px;margin:4px 6px 4px 0;padding:7px 15px;
  background:var(--chip);color:var(--accent);border-radius:999px;font-size:13px;font-weight:600}
.chip:hover{text-decoration:none;box-shadow:var(--shadow)}

/* ---- item / block grid ---- */
.azjump{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 12px;position:sticky;top:70px;
  background:var(--surface);padding:6px 0;z-index:5}
.azjump a{display:inline-block;min-width:26px;text-align:center;padding:4px 8px;border-radius:8px;
  background:var(--surface2);color:var(--text);font-weight:600;font-size:13px}
.azjump a:hover{background:var(--chip);color:var(--accent);text-decoration:none}
.azh{margin:16px 0 6px;font-size:14px;font-weight:700;color:var(--muted);scroll-margin-top:120px}
.igrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:6px 0}
.icell{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13.5px;
  line-height:1.25;transition:.15s;min-height:56px}
.icell:hover{text-decoration:none;box-shadow:var(--shadow-h);transform:translateY(-2px);border-color:transparent}
.icell img{width:34px;height:34px;object-fit:contain;flex:0 0 auto;image-rendering:pixelated}
.noimg{display:inline-block;width:34px;height:34px;flex:0 0 auto;border:1px dashed var(--line);border-radius:8px;opacity:.5}

/* ---- list pagination + filter ---- */
.ifilter{width:100%;max-width:420px;border:1px solid var(--line);background:var(--surface2);
  border-radius:999px;padding:10px 18px;font:inherit;font-size:14px;color:var(--text);outline:none;margin:2px 0 10px}
.ifilter:focus{background:var(--surface);box-shadow:var(--shadow-h)}
.allbtn{display:inline-block;margin:8px 0;padding:9px 18px;background:var(--accent);color:var(--on-accent);
  border-radius:999px;font-weight:600;font-size:14px}
.allbtn:hover{text-decoration:none;box-shadow:var(--shadow-h)}
.pagenav{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:16px 0;justify-content:center}
.pagenav a{min-width:36px;text-align:center;padding:7px 12px;border-radius:10px;background:var(--surface2);
  color:var(--text);font-weight:600;font-size:14px}
.pagenav a:hover{background:var(--chip);color:var(--accent);text-decoration:none}
.pagenav a.on{background:var(--accent);color:var(--on-accent)}
.pagenav .dots{color:var(--muted);padding:0 4px}

/* ---- mobs ---- */
.mobgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:8px 0}
.mobgrid span{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface);font-size:13.5px;font-weight:500}

/* ---- recipe ---- */
.recipe{display:flex;align-items:center;flex-wrap:wrap;gap:14px;background:var(--surface2);
  border-radius:var(--radius-sm);padding:14px 18px;margin:10px 0}
.cgrid{display:grid;gap:4px}
.slot{width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  background:var(--surface);border:1px solid var(--line);border-radius:8px}
.slot img{width:34px;height:34px;object-fit:contain;image-rendering:pixelated}
.arrow{color:var(--muted);font-size:22px}
.result .slot.big{width:56px;height:56px}
.result .slot.big img{width:42px;height:42px}
.result{position:relative}
.count{position:absolute;right:-4px;bottom:-4px;background:var(--accent);color:var(--on-accent);
  font-size:11px;font-weight:700;border-radius:999px;padding:1px 6px}
.rmeta{font-size:12.5px;color:var(--muted);margin:2px 0 10px}
.rmeta a{color:var(--accent)}
.legend{font-size:12px;color:var(--muted);margin:0 0 10px}
.legend code{margin-right:4px}

/* ---- infobox ---- */
.infobox{float:right;width:270px;margin:0 0 18px 22px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.infobox .head{background:var(--accent);color:var(--on-accent);font-weight:700;padding:12px 16px;text-align:center}
.infobox .pic{display:flex;justify-content:center;padding:18px;background:var(--surface2)}
.infobox .pic img{width:64px;height:64px;object-fit:contain;image-rendering:pixelated}
.infobox table{width:100%;border-collapse:collapse;font-size:13px}
.infobox td{padding:9px 14px;border-top:1px solid var(--line);vertical-align:top}
.infobox td:first-child{color:var(--muted);width:32%}

/* ---- data table ---- */
table.dv{border-collapse:collapse;font-size:13.5px;margin:6px 0}
table.dv td{padding:8px 14px;border:1px solid var(--line)}
table.dv td:first-child{color:var(--muted);background:var(--surface2)}
.gbody{max-width:74ch;line-height:1.7}
.gbody h3{margin:20px 0 6px}

/* ---- footer ---- */
footer{max-width:1180px;margin:26px auto;padding:20px 20px 40px;text-align:center;color:var(--muted);font-size:12.5px}
.fnav a{color:var(--muted)}
.dis{margin-top:8px;font-size:11px;opacity:.7}

/* ---- responsive ---- */
@media (max-width:860px){
  .layout{grid-template-columns:1fr}
  .side{position:static;flex-direction:row;flex-wrap:wrap}
  .side .box{flex:1 1 auto}
  .infobox{float:none;width:auto;margin:0 0 18px}
  .wikiname{display:none}
  article{padding:20px 16px}
  .azjump{top:66px}
}


/* ── Khoi VA cho khung dung chung (cau truc, khong phai thiet ke) — xem wiki-g.9 ── */
/* ═══ VÁ CHO KHUNG DÙNG CHUNG (hf.*.css) ═══════════════════════════════════════
   ⛔ KHÔNG sửa hf.*.css: tệp đó phải giữ y như site chính, để lần trích xuất lại không mất vá.
      Vì vậy tệp NÀY phải nạp SAU hf.*.css (xem head.html) — nạp trước thì bị hf đè lại. */

/* 1. Chừa chỗ cho header cố định.
   hf CSS chỉ có `html.is-header-shrunk body{padding-top:48px}`, KHÔNG có giá trị mặc định —
   ở site chính con số đó nằm trong CSS riêng của theme WordPress. Thiếu nó thì 70px đầu trang
   nằm DƯỚI header cố định (mắt thường khó thấy vì chỗ bị che thường là khoảng trắng). */
body{padding-top:70px}
html.is-header-shrunk body{padding-top:48px}
@media(max-width:991px){body{padding-top:52px}html.is-header-shrunk body{padding-top:38px}}

/* 2. Cột đơn không được phình theo nội dung rộng.
   hf đặt `.b__grid{grid-template-columns:1fr}` = minmax(AUTO,1fr): một khung quảng cáo rộng
   381px kéo cả cột thành 381px trong khung 375px → tràn ngang trên điện thoại. minmax(0,1fr)
   cho phép cột co lại, phần thừa bị `.adbox{overflow:hidden}` cắt. */
.b__grid{grid-template-columns:minmax(0,1fr)}
@media(min-width:992px){.b__grid{grid-template-columns:minmax(0,1fr) 300px}}
.b__main,#rsidebar{min-width:0}
.b__main>*,#rsidebar>*{max-width:100%}

/* 3. Sidebar phải: widget của wiki dùng lại đúng lớp .widget/.net-list của site chính,
   chỉ cần chặn tràn cho ô quảng cáo rail. */
#rsidebar .adbox{margin:16px 0}


/* ═══ SIDEBAR VỀ BÊN TRÁI — như giao diện wiki cũ (28/09) ═══════════════════════════════════
   Bản 28/09 dùng `.layout{grid-template-columns:230px 1fr}`: cột điều hướng của wiki ở TRÁI,
   bài ở phải, cột trái dính khi cuộn (`top:78px`). Lượt ghép khung site chính (30/09) đổi thành
   `.b__grid` với sidebar bên PHẢI.

   Markup của 168.495 trang viết theo thứ tự `.b__main` rồi `#rsidebar`, nhưng CSS Grid cho phép
   ĐẶT LẠI VỊ TRÍ bằng `grid-column` mà không cần đụng tới HTML — nên đổi bên chỉ là chuyện của
   tệp CSS này.

   ⛔ Giữ 300px chứ không 230px như bản cũ: sidebar bây giờ có ô quảng cáo rail 300×600. Ép còn
      230px thì ô đó tràn ra ngoài cột.
   ⛔ `grid-row: 1` cho cả hai: thiếu nó thì trình duyệt xếp chúng vào hai HÀNG khác nhau (vì
      thứ tự trong HTML là main trước), thành bài nằm trên, sidebar nằm dưới.
   ⛔ Chỉ đổi từ 992px trở lên. Dưới mức đó lưới vốn đã một cột, mà khi một cột thì ĐIỀU HƯỚNG
      phải nằm DƯỚI bài — đẩy nó lên trên là mỗi lần mở trang trên điện thoại đều phải cuộn qua
      cả cột điều hướng mới tới nội dung.
   ═══════════════════════════════════════════════════════════════════════════════════════════ */
@media (min-width: 992px) {
  .b__grid { grid-template-columns: 300px minmax(0, 1fr); }
  .b__grid > #rsidebar { grid-column: 1; grid-row: 1; }
  .b__grid > .b__main  { grid-column: 2; grid-row: 1; }

  /* cột trái dính khi cuộn, đúng như bản cũ */
  #rsidebar {
    position: sticky;
    top: 86px;                 /* 70px header cố định + 16px thở */
    align-self: start;
    max-height: calc(100vh - 104px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
}


/* ═══ TRỞ VỀ KHUNG RIÊNG CỦA WIKI (01/10/2026) ═══════════════════════════════════════════════
   Header `.topbar` cũ là `position: sticky`, KHÔNG phải `fixed` như header site chính — nên gỡ
   `body{padding-top:70px}`, giữ lại là một dải trống 70px ở đầu mọi trang.
   ⛔ Vẫn nạp `hf.*.css` của site chính vì các lớp BỐ CỤC (.b__inner .b__grid #rsidebar .widget
      .widgettitle .net-list) nằm trong đó, trang nào cũng dùng. Luật về .h-bar-desktop/.ymega/
      .f.gf trong tệp đó nay trỏ vào phần tử không còn tồn tại nên vô hại.
   ⛔ Bộ luật header dưới đây lấy NGUYÊN từ wiki-g.9.css — đó là nơi markup `.topbar` hiện tại
      được style đúng. wiki-g.3.css (28/09) KHÔNG có luật nào cho `.homelink` và `.twrap` vì nút
      đó ra đời sau; ghép nhầm thì icon nhà phình to 60px và thanh header cao 123px (đã dính).
   ═══════════════════════════════════════════════════════════════════════════════════════════ */
body { padding-top: 0; }
html.is-header-shrunk body { padding-top: 0; }
@media (max-width: 991px) {
  body { padding-top: 0; }
  html.is-header-shrunk body { padding-top: 0; }
}

/* ---- topbar (floating pill) ---- */ .topbar{position:sticky;top:0;z-index:40;background:var(--bg);padding:10px 0}
.twrap{max-width:1180px;margin:0 auto;padding:8px 14px;display:flex;align-items:center;gap:14px; background:var(--surface);border-radius:999px;box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{height:44px!important;width:auto;transition:height .18s ease}
/* logo là chữ TỐI (độ sáng TB 97/255) → chìm trên nền tối; đổi thành bóng trắng khi dark */ /* logo moi da la chu TRANG vien den -> KHONG dao mau o che do toi, dao se thanh chu den tren nen toi = mat hut. Chi giam nhe do choi. */ :root.dark .brand img,:root[data-theme="dark"] .brand img{opacity:.96}
.wikiname{font-weight:600;font-size:14.5px;color:var(--muted)}
.wikiname a{color:var(--text)}
.wikiname a:hover{text-decoration:none;color:var(--accent)}
.sres{position:absolute;top:110%;left:0;right:0;background:var(--surface);border-radius:16px; box-shadow:var(--shadow-h);overflow:hidden;z-index:50}
.sres a{display:block;padding:10px 16px;color:var(--text);border-bottom:1px solid var(--line)}
.sres a:hover{background:var(--surface2);text-decoration:none}
.tbtn{flex:0 0 auto;width:38px;height:38px;border:none;border-radius:50%;background:var(--surface2); color:var(--muted);font-size:18px;cursor:pointer;transition:.15s}
.tbtn:hover{background:var(--chip);color:var(--accent)}
.wikiname{display:none}
.homelink span{display:none}
.homelink{padding:0;width:38px;justify-content:center}
/* ---- link ve trang chu 9minecraft.net (cum dieu khien phai, canh nut sang/toi) ---- */ .homelink{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 15px; border-radius:999px;background:var(--surface2);color:var(--muted);font-weight:600;font-size:13.5px; white-space:nowrap;transition:background .15s,color .15s,box-shadow .15s}
.homelink:hover{background:var(--chip);color:var(--accent);box-shadow:var(--shadow);text-decoration:none}
.homelink svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2; stroke-linecap:round;stroke-linejoin:round;flex:none}
/* ---- logo to + thu nho khi cuon (chep cong thuc site goc 9minecraft) ---- Site goc: header 70px -> 48px, logo max-height 36px, class tren the goc, nguong 60px. */ :root.is-header-shrunk .topbar{padding:4px 0}
:root.is-header-shrunk .twrap{padding:4px 14px}
:root.is-header-shrunk .brand img{height:30px!important}

/* Cột trái dính theo header sticky (không còn header cố định 70px che) */
@media (min-width: 992px) {
  #rsidebar { top: 16px; max-height: calc(100vh - 32px); }
}

/* Footer riêng của wiki — gọn, không phải footer lớn của site chính */
footer { max-width: 1180px; margin: 28px auto 0; padding: 20px 14px 36px; }
footer .fnav { margin: 0 0 6px; font-size: 13.5px; }
footer .dis { margin: 0; font-size: 11.5px; color: var(--muted); letter-spacing: .02em; }

/* ── Bù luật cho các khối giao diện ra đời SAU 28/09 (wgrid/wcard/wsearch/hlogo/grow/iso/cfgt).
   Lấy nguyên từ wiki-g.9.css — nơi markup hiện tại được style đúng. Thiếu chúng thì trang chủ
   mất hẳn lưới: ảnh hiện bằng kích thước gốc, tên thành link xanh trần. ── */
:root.dark img.iso,:root.dark .icell img,:root.dark .slot img,:root[data-theme="dark"] img.iso,:root[data-theme="dark"] .icell img,:root[data-theme="dark"] .slot img{filter:none}
.hero .grow{min-width:0;flex:1 1 auto}
.hlogo{width:72px;height:72px;object-fit:contain;border-radius:14px;flex:0 0 auto; background:var(--surface2);padding:6px;box-shadow:var(--shadow)}
@media (max-width:560px){.hlogo{width:52px;height:52px}}
/* ---- trang chủ + /wikis/ (thẻ wiki có logo mod) ---- */ .wsearch{margin:14px 0 20px;position:relative}
.wsearch input{width:100%;max-width:640px;border:1px solid var(--line);background:var(--surface); border-radius:999px;padding:14px 24px;font:inherit;font-size:16px;color:var(--text);outline:none; box-shadow:var(--shadow);transition:.15s}
.wsearch input:focus{box-shadow:var(--shadow-h);border-color:transparent}
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:10px 0}
.wcard{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line); border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-weight:600; font-size:14px;line-height:1.3;transition:.15s;min-height:62px}
.wcard:hover{text-decoration:none;box-shadow:var(--shadow-h);transform:translateY(-2px);border-color:transparent}
.wcard img{width:38px;height:38px;object-fit:contain;border-radius:8px;flex:0 0 auto}
.wcard .noimg{width:38px;height:38px}
/* ---- Commands / Configuration (2 nhom moi, dat tren FAQ) ---- */ .cmdt,.cfgt{width:100%;border-collapse:collapse;margin:10px 0 18px;font-size:14px}
.cmdt th,.cfgt th{text-align:left;font-weight:600;color:var(--muted);font-size:12px; letter-spacing:.04em;text-transform:uppercase;padding:8px 12px;border-bottom:1px solid var(--line)}
.cmdt td,.cfgt td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.cmdt tr:last-child td,.cfgt tr:last-child td{border-bottom:0}
.cmdt td:first-child,.cfgt td:first-child{width:34%;min-width:150px}
.cmdt code,.cfgt code{font-family:var(--mono,ui-monospace,monospace);font-size:13px; background:var(--surface2);border-radius:6px;padding:2px 7px;display:inline-block; overflow-wrap:anywhere;word-break:break-word}
@media (max-width:640px){.cmdt,.cfgt{display:block;font-size:13.5px}.cmdt thead,.cfgt thead{display:none}.cmdt tr,.cfgt tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.cmdt td,.cfgt td{display:block;width:auto;border:0;padding:3px 0}.cmdt td:first-child,.cfgt td:first-child{width:auto}}
/* ═══ Nút về trang chính: viên thuốc có favicon + tên miền + mũi tên ra ngoài ════════════════
   Đổi từ icon ngôi nhà sang kiểu này theo yêu cầu 01/10. Cùng một kiểu với nút đang dùng ở
   servers.9minecraft.net và bedrock-servers.9minecraft.net — ba site cùng một ngôn ngữ hình.
   ⛔ Favicon trỏ thẳng vào theme của site chính: wiki sắp có favicon RIÊNG, dùng `/favicon-32x32.png`
      của wiki là nút "về 9minecraft" lại hiện logo wiki, sai hẳn ý nghĩa.
   ⛔ Mũi tên ↗ là quy ước "mở sang site khác" — giữ, đừng bỏ cho gọn. */
.b9 {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  background: var(--surface2);
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color .15s ease;
}
.b9:hover { background: var(--chip); color: var(--accent); text-decoration: none; }
.b9 img { width: 18px; height: 18px; border-radius: 4px; display: block; flex: 0 0 auto; }
.b9 svg {
  width: 13px; height: 13px; flex: 0 0 auto;
  fill: none; stroke: currentColor; stroke-width: 2.2;
  stroke-linecap: round; stroke-linejoin: round;
  opacity: .6;
}
@media (max-width: 760px) { .b9 span { display: none; } .b9 { padding: 0 11px; } }




/* ═══ YÊU CẦU 01/10/2026 ═════════════════════════════════════════════════════════════════════
   1. logo nhỏ lại (đang 44px, nhìn mờ) — lấy đúng cỡ lúc cuộn thu nhỏ
   2. "Browse by genre" lên mega-menu, nút hamburger bên TRÁI logo
   3. cột trái chỉ còn mục lục của wiki, neo cố định khi cuộn
   4. trang home + category: full chiều ngang, không cột trái
   ═══════════════════════════════════════════════════════════════════════════════════════════ */

/* ── 1. Logo: 44px → 34px ────────────────────────────────────────────────────────────────────
   Ảnh logo gốc 612×104. Ở 44px cao thì bị thu xuống 42% — chữ "WIKI" nhỏ bên dưới nhoè thành
   một vệt. 34px là đúng cỡ mà luật `is-header-shrunk` vẫn dùng, nhìn sắc hơn hẳn. */
.brand img { height: 34px !important; }
html.is-header-shrunk .brand img { height: 30px !important; }

/* Mega-menu đã tách sang `mega.css` (01/10) — dựng lại theo Google floating UI. */

/* ── 3. Cột trái: mục lục của wiki, neo khi cuộn ───────────────────────────────────────────
   User 01/10: "Sửa lại style mục lục cột trái để phân biệt nhãn và nội dung mục lục. Khi cuộn
   trang thì thiết kế cố định chưa hợp lý dẫn tới 1 phần mục lục bị ẩn bởi Header."

   ⛔ `top: 16px` là SAI: `.topbar` dính ở đỉnh và cao ~76px, nên mục lục trượt chui xuống dưới
      header và mất mấy dòng đầu. Phải trừ đúng chiều cao header (`--mw-top`) rồi mới cộng lề.
   ⛔ Nhãn và nội dung trước đây cùng cỡ 15px, chỉ khác độ đậm — nhìn ra một khối chữ. Theo công
      thức nhà: nhãn 11px IN HOA màu xám, mục 14px thường. Phân cấp bằng cỡ chữ và màu. */
@media (min-width: 992px) {
  #rsidebar {
    position: sticky;
    top: calc(var(--mw-top) + 14px);
    align-self: start;
    max-height: calc(100vh - var(--mw-top) - 28px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
}
#rsidebar .widget {
  background: var(--surface);
  border: 0; border-radius: 20px;
  box-shadow: var(--mw-bong, var(--shadow));
  padding: 6px 0 8px; margin: 0 0 14px;
  overflow: hidden;
}
#rsidebar .widgettitle {
  margin: 0; padding: 12px 18px 8px;
  font: 500 11px/1.3 var(--sans);
  text-transform: uppercase; letter-spacing: .9px; color: var(--muted);
}
#rsidebar .net-list { list-style: none; margin: 0; padding: 0 8px; }
#rsidebar .net-list li { list-style: none; }
#rsidebar .net-list a {
  display: block; padding: 9px 14px; margin: 1px 0;
  border: 0; border-radius: 999px;
  color: var(--text); font: 400 14px/1.35 var(--sans); text-decoration: none;
  transition: background .12s ease, color .12s ease;
}
#rsidebar .net-list a:hover {
  background: var(--mw-nhan-nhat, var(--surface2)); color: var(--mw-nhan, var(--accent));
  text-decoration: none;
}
#rsidebar .net-list a b { font-weight: 400; }
#rsidebar .net-list li:first-child a b { font-weight: 500; }

/* ── 4. Trang KHÔNG có mục lục riêng (home, /genre/, /wikis/) → FULL chiều ngang ───────────
   Sau khi sidebar dùng chung để rỗng, `#rsidebar` trên các trang đó không còn widget nào —
   nhưng nó vẫn chiếm 300px cột trái. `:has()` nhận ra ô rỗng và cho bài chiếm cả hai cột.
   ⛔ Dùng `:has()` chứ không JS: JS chạy sau khi vẽ xong, người dùng sẽ thấy bố cục NHẢY một
      nhịp từ hai cột sang một cột. */
@media (min-width: 992px) {
  .b__grid:not(:has(#rsidebar .widget)) { grid-template-columns: minmax(0, 1fr); }
  .b__grid:not(:has(#rsidebar .widget)) > #rsidebar { display: none; }
  .b__grid:not(:has(#rsidebar .widget)) > .b__main { grid-column: 1; }
}

/* ── 4b. KÍNH LÚP trong ô tìm ───────────────────────────────────────────────────────────────
   User 01/10: "Thiết kế cũng thiếu icon kính lúp để có thể click chuột vào search".
   ⛔ Phải là <button> thật chứ không phải ảnh nền: ảnh nền thì bấm vào không có gì xảy ra, mà
      người dùng vẫn cứ bấm — đó chính là lý do ô tìm bị cho là "không hoạt động".
   ⛔ Ô tìm là `input[type=search]`, Chrome tự vẽ nút xoá ✕ bên phải; kính lúp phải nằm bên
      TRÁI, nếu không hai nút chồng lên nhau. */
.search .kinh {
  position: absolute; left: 6px; top: 50%; transform: translateY(-50%);
  width: 32px; height: 32px; padding: 0; z-index: 2;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%; background: transparent;
  color: var(--muted); cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.search .kinh:hover { background: var(--surface); color: var(--accent); }
.search .kinh svg { width: 17px; height: 17px; display: block; }
.search input { padding-left: 40px !important; padding-right: 38px; }
/* ── Nút ✕ trong ô tìm ──────────────────────────────────────────────────────────────────────
   User 01/10: "Search form ở top >> thiếu dấu X để gõ sai có thể click chuột hay bấm dấu X".

   Một nút làm hai việc, tuỳ ngữ cảnh — thêm nút thứ ba vào ô tìm 38px thì chật:
     · có chữ trong ô  → XOÁ chữ (mọi khổ màn hình)
     · ô rỗng, đang ở mobile → ĐÓNG ô tìm, trả hàng logo về như cũ

   ⛔ Ẩn mặc định và chỉ hiện khi có chữ (JS đặt lớp `mcw-co-chu`). Trước đây nút này chỉ được
      `display:none` BÊN TRONG media query mobile, nên desktop không có luật nào áp vào → nó
      hiện thành vệt trắng 16×21 rơi xuống dưới ô tìm, kéo header từ 80px lên 104px.
   ⛔ KHÔNG dựa vào nút ✕ sẵn có của `input[type=search]`: Chrome vẽ nó, Firefox và Safari thì
      không, và không tạo kiểu được. */
.search .dong-tim {
  display: none;
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  width: 30px; height: 30px; padding: 0; z-index: 2;
  align-items: center; justify-content: center;
  border: 0; border-radius: 50%; background: transparent; color: var(--muted); cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.search .dong-tim:hover { background: var(--surface2); color: var(--text); }
.search .dong-tim svg { width: 15px; height: 15px; display: block; }
body.mcw-co-chu .search .dong-tim { display: inline-flex; }
.sres .nor { padding: 12px 16px; color: var(--muted); font: 400 14px/1.3 var(--sans); }
body:has(.mw-hero) .search .kinh { color: rgba(255, 255, 255, .72); }
body:has(.mw-hero) .search .kinh:hover { background: rgba(255, 255, 255, .16); color: #fff; }

/* ── 4c. TRANG KẾT QUẢ TÌM KIẾM `/search/` ───────────────────────────────────────────────────
   User 01/10: "nếu user không chọn kết quả có sẵn thì cũng phải có trang result để liệt kê
   những kết quả ra". Mỗi dòng cho ba tầng thông tin: tên bài, bài đó thuộc mod nào, và đường
   dẫn — đường dẫn quan trọng vì nhiều vật phẩm trùng tên ở các mod khác nhau. */
/* Ô tìm trên trang kết quả: viên thuốc, kính lúp trái, nút ✕ phải */
.sr-box { position: relative; margin: 0 0 18px; }
.sr-box .sr-kinh {
  position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
  width: 19px; height: 19px; color: var(--muted); pointer-events: none;
}
.sr-box input {
  width: 100%; height: 50px; padding: 0 50px 0 48px;
  border: 0; border-radius: 999px;
  background: var(--surface); color: var(--text);
  box-shadow: var(--mw-bong, var(--shadow));
  font: inherit; font-size: 16px; outline: none;
}
.sr-box input:focus { box-shadow: var(--mw-bong-sau, var(--shadow-h)); }
.sr-xoa {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%; background: transparent; color: var(--muted); cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.sr-xoa:hover { background: var(--surface2); color: var(--text); }
.sr-xoa[hidden] { display: none; }
.sr-xoa svg { width: 17px; height: 17px; display: block; }

/* Thẻ NỔI BẬT — kết quả đầu nếu đó là một mod, giống khung tri thức của Google */
.sr-nb {
  display: flex; gap: 16px; align-items: flex-start;
  padding: 18px; margin: 0 0 18px;
  background: var(--surface); border: 0; border-radius: 20px;
  box-shadow: var(--mw-bong, var(--shadow));
  text-decoration: none; color: inherit;
}
.sr-nb:hover { box-shadow: var(--mw-bong-sau, var(--shadow-h)); text-decoration: none; }
.sr-nb__ic { width: 64px; height: 64px; flex: 0 0 auto; border-radius: 14px; object-fit: contain;
             image-rendering: pixelated; background: var(--surface2); }
.sr-nb__t { min-width: 0; }
.sr-nb__t b { display: block; font: 600 20px/1.25 var(--sans); color: var(--text); }
.sr-nb__t em { display: block; margin: 3px 0 8px; font-style: normal;
               font: 400 12.5px/1.3 var(--sans); color: var(--muted); }
.sr-nb__t > span { display: block; font: 400 14px/1.5 var(--sans); color: var(--text); opacity: .86; }
.sr-nb__go { display: inline-block; margin-top: 10px;
             font: 500 13.5px/1 var(--sans); color: var(--mw-nhan, var(--accent)); }

/* Dòng kết quả: icon + đường dẫn + tên + mô tả — ba tầng như kết quả Google */
.sr-ds { display: flex; flex-direction: column; gap: 4px; margin: 10px 0 0; }
.sr-i {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 12px 14px; border: 0; border-radius: 14px;
  text-decoration: none; color: inherit;
}
.sr-i:hover { background: var(--surface2); text-decoration: none; }
.sr-ic { width: 34px; height: 34px; flex: 0 0 auto; border-radius: 8px;
         object-fit: contain; image-rendering: pixelated; margin-top: 2px; }
.sr-ic--trong { display: inline-block; background: var(--surface2);
                box-shadow: inset 0 0 0 1px var(--line); }
.sr-t { min-width: 0; }
.sr-t em { display: block; font-style: normal; font: 400 12px/1.3 var(--sans);
           color: var(--muted);
           /* ⛔ KHÔNG `text-transform: capitalize` ở đây: dòng này có cả tên miền, và
              "wiki.9minecraft.net" sẽ thành "Wiki.9minecraft.Net". JS viết hoa riêng các
              đoạn đường dẫn, chừa tên miền ra. */
           overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sr-t b { display: block; margin: 1px 0 2px;
          font: 500 16px/1.35 var(--sans); color: var(--mw-nhan, var(--accent)); }
.sr-i:hover .sr-t b { text-decoration: underline; }
.sr-t > span { display: block; font: 400 13.5px/1.5 var(--sans); color: var(--muted); }

/* ⛔ Tay nắm mục lục + nền mờ CHỈ dùng ở mobile. Ẩn mặc định, khối mobile mới bật — nếu không
   chúng hiện thành một nút lạ bám mép phải mọi trang desktop. */
/* ── Ô MOB: ảnh + tên ───────────────────────────────────────────────────────────────────────
   User 02/10 hỏi sao mob của Naturalist không lấy ảnh từ file game. Ảnh ĐÃ có sẵn trong `/i/`
   từ lâu (riêng Naturalist 146 tệp) — chỉ là lưới mob trước giờ là `<span>Tên</span>` chữ trần,
   không hề tham chiếu tới chúng. Nay mỗi ô có ảnh bên trái, tên bên phải.
   ⛔ Giữ thẻ `<span>` ngoài cùng: `.mobgrid span` đã có sẵn viền/đệm/bo góc, đổi thẻ là vỡ lưới. */
.mobgrid span { display: flex; align-items: center; gap: 10px; min-width: 0; }
.mobgrid span img {
  width: 28px; height: 28px; flex: 0 0 auto;
  object-fit: contain; image-rendering: pixelated;
}
.mobgrid span .noimg { width: 28px; height: 28px; flex: 0 0 auto; }
.mobgrid span b { font-weight: 500; min-width: 0; overflow-wrap: anywhere; }

.toc-nut, .toc-nen { display: none; }

/* Nút "Browse all … wikis" ở cuối lưới trang chủ — user 01/10: "cho ra giữa màn hình" */
.mw-browse { margin: 22px 0 6px; text-align: center; }
.mw-browse .allbtn { display: inline-block; }

.sr-them { margin: 18px 0 0; text-align: center; }
.sr-nut {
  padding: 10px 22px; border: 0; border-radius: 999px;
  background: var(--surface); box-shadow: var(--mw-bong, var(--shadow));
  color: var(--mw-nhan, var(--accent)); font: 500 14px/1 var(--sans); cursor: pointer;
}
.sr-nut:hover { box-shadow: var(--mw-bong-sau, var(--shadow-h)); }

/* ── 5. CHÂN TRANG: CẤU TRÚC của 9minecraft, MÀU của wiki ───────────────────────────────────
   User 01/10: "Thiết kế cấu trúc nội dung ở footer giống là được rồi. Còn background phải theo
   giao diện hiện tại."

   Nên giữ nguyên bộ khung `.gf` (logo → câu tag → vạch → hàng liên kết → miễn trừ → bản quyền)
   mà gỡ toàn bộ phần MÀU của site chính: ảnh nền `menu_bg.gif`, hai lớp phủ tối `::before`
   `::after`, và các mã màu cứng vốn chỉ đọc được trên nền tối.

   ⛔ Luật gốc của họ là `[data-theme="dark"] footer.f.gf{...!important}` — hạng 0,3,1 kèm
      `!important`. Viết `footer.f.gf` (0,2,1) dù có `!important` vẫn THUA. Phải đặt selector
      ngang hạng trở lên; `:root footer.f.gf` cho 0,3,1 và tệp này nạp sau nên thắng ở thế hoà.
   ⛔ Mọi màu lấy từ biến chủ đề (`--bg`, `--text`, `--muted`…) nên chân trang tự đổi theo nút
      sáng/tối, không cần viết riêng một khối cho chế độ tối. */
:root footer.f.gf,
:root[data-theme="dark"] footer.f.gf,
[data-theme="dark"] footer.f.gf {
  background-image: none !important;
  background-color: var(--bg) !important;
  color: var(--muted) !important;
  border-top: 1px solid var(--line);
}
footer.f.gf::before, footer.f.gf::after { display: none !important; }
footer.f.gf .gf__tag { color: var(--muted); }
footer.f.gf .gf__logo { image-rendering: auto; }
footer.f.gf .gf__line { background: linear-gradient(90deg, transparent, var(--accent), transparent); }
:root footer.f.gf .gf__legal a, [data-theme="dark"] footer.f.gf .gf__legal a { color: var(--text); }
:root footer.f.gf .gf__legal a:hover, [data-theme="dark"] footer.f.gf .gf__legal a:hover { color: var(--accent); }
footer.f.gf .gf__disc { color: var(--muted); }
footer.f.gf .gf__disc strong { color: var(--text); }
:root footer.f.gf .gf__cpy, [data-theme="dark"] footer.f.gf .gf__cpy { color: var(--muted); }
:root footer.f.gf .gf__cpy a, [data-theme="dark"] footer.f.gf .gf__cpy a { color: var(--accent); }

/* Hàng thể loại — site chính không có hàng này (`.gf__net` của họ đã bị chính họ tắt bằng
   `display:none!important`, nên không mượn được). */
.gf__gen {
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: 8px 10px; max-width: 880px; margin: 0 auto 30px;
}
.gf__gen a {
  padding: 5px 12px;
  background: var(--surface2);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted); font: 500 13px/1.35 var(--sans); text-decoration: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.gf__gen a:hover { background: var(--surface); border-color: var(--accent); color: var(--accent); text-decoration: none; }



/* ═══ MEGA-MENU — Google-inspired Minimalist Floating UI ═══════════════════════════════════════
   User 01/10: "Menu chưa thiết kế theo Google-inspired Minimalist Floating UI. Menu ở mobile
   chưa có thu gọn được menu cấp 2, 3 lại, menu cấp 3 xổ ra ngay cùng hàng cấp 2 mới hợp lý vì
   di chuyển chuột ra khoảng không là đóng menu rồi. Nút Browse all cho ra chính giữa."

   Công thức nhà (xem memory `feedback_web_tool_google_floating_ui`):
     · khối là THẺ NỔI trên nền, bóng mềm, KHÔNG viền; bo góc 28px khối chính / 16px khối con
     · nút dạng viên thuốc, không viền, đổi nền khi rê; trạng thái bật = nền nhấn nhạt + chữ nhấn
     · tiêu đề mục 11px IN HOA, giãn chữ 0.9px, màu xám — phân cấp bằng cỡ chữ và màu, không kẻ
     · nhiều khoảng thở: 14px giữa các thẻ, 16px trong thẻ

   ⛔ Tấm cấp 3 neo theo HÀNG đang rê, không neo cứng ở đỉnh. Neo ở đỉnh thì rê từ một mục nằm
      cuối rail lên tấm bung phải cắt chéo qua khoảng không — mà ra khoảng không là menu đóng.
      JS đặt `top` theo đúng hàng; CSS chỉ để sẵn giá trị dự phòng.
   ⛔ KHÔNG đặt `transform` lên `.mw-mega`: phần tử có transform thành khối chứa của con
      `position:fixed`, tấm bung sẽ bị `overflow` của rail cắt cụt. Rail trượt vào bằng `left`. */

:root {
  --mw-top: 76px;
  --mw-left: clamp(48px, 7vw, 220px);
  --mw-rail-w: 300px;
  --mw-gap: 14px;                         /* khoảng thở giữa hai thẻ nổi, đúng công thức nhà */
  --mw-nhan: #1a73e8;
  --mw-nhan-nhat: #e8f0fe;
  --mw-bong: 0 1px 3px rgba(60, 64, 67, .14), 0 4px 16px rgba(60, 64, 67, .12);
  --mw-bong-sau: 0 2px 6px rgba(60, 64, 67, .16), 0 10px 34px rgba(60, 64, 67, .18);
}
:root[data-theme="dark"], html.dark {
  --mw-nhan: #8ab4f8;
  --mw-nhan-nhat: rgba(138, 180, 248, .14);
  --mw-bong: 0 1px 3px rgba(0, 0, 0, .5), 0 4px 16px rgba(0, 0, 0, .45);
  --mw-bong-sau: 0 2px 6px rgba(0, 0, 0, .55), 0 10px 34px rgba(0, 0, 0, .55);
}

/* ── nút hamburger ──────────────────────────────────────────────────────────────────────────── */
.mw-burger {
  flex: 0 0 auto;
  width: 40px; height: 40px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%;
  background: transparent; color: var(--text);
  cursor: pointer; transition: background .15s ease;
}
.mw-burger:hover { background: rgba(60, 64, 67, .08); }
body.mw-open .mw-burger { background: var(--mw-nhan-nhat); color: var(--mw-nhan); }
.mw-burger svg { width: 22px; height: 22px; display: block; }

.mw-backdrop {
  position: fixed; top: var(--mw-top); left: 0; right: 0; bottom: 0; z-index: 10000;
  background: rgba(32, 33, 36, .32);
  opacity: 0; pointer-events: none;
  transition: opacity .22s ease;
}
body.mw-open .mw-backdrop { opacity: 1; pointer-events: auto; }

/* ── RAIL: thẻ nổi, bo 28px, không viền ─────────────────────────────────────────────────────── */
.mw-mega {
  display: flex; flex-direction: column;
  position: fixed; top: var(--mw-top);
  left: calc(0px - var(--mw-rail-w) - 24px);
  width: var(--mw-rail-w);
  max-height: calc(100vh - var(--mw-top) - 24px);
  background: var(--surface);
  border: 0; border-radius: 28px;
  box-shadow: var(--mw-bong);
  z-index: 10001;
  transition: left .24s cubic-bezier(.4, 0, .2, 1);
  overflow: hidden;
}
body.mw-open .mw-mega { left: var(--mw-left); }

.mw-head {
  display: flex; align-items: center; gap: 10px;
  padding: 16px 10px 10px 22px; flex-shrink: 0;
  font: 500 11px/1.3 var(--sans);
  text-transform: uppercase; letter-spacing: .9px; color: var(--muted);
}
.mw-close {
  margin-left: auto;
  width: 38px; height: 38px; border: 0; border-radius: 50%;
  background: transparent; color: var(--muted); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s ease, color .15s ease;
}
.mw-close:hover { background: rgba(60, 64, 67, .08); color: var(--text); }
.mw-close svg { width: 19px; height: 19px; display: block; }

.mw-list { list-style: none; margin: 0 0 10px; padding: 0 10px; overflow-y: auto; flex: 1 1 auto; }
.mw-list::-webkit-scrollbar { width: 8px; }
.mw-list::-webkit-scrollbar-thumb { background: rgba(128, 128, 128, .26); border-radius: 4px; }
.mw-list > li { list-style: none; position: relative; }

/* hàng = viên thuốc, không viền */
.mw-list > li > a {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 16px; margin: 1px 0;
  color: var(--text); font: 400 14.5px/1.35 var(--sans); text-decoration: none;
  border-radius: 999px;
  transition: background .12s ease, color .12s ease;
}
.mw-list > li > a:hover { background: rgba(60, 64, 67, .07); text-decoration: none; }
.mw-has:hover > a, .mw-has.mw-on > a { background: var(--mw-nhan-nhat); color: var(--mw-nhan); }
.mw-has > a::after {
  content: "\203A";
  margin-left: auto; color: var(--muted);
  font-size: 19px; line-height: 1; font-weight: 400;
  transition: transform .12s ease, color .12s ease;
}
.mw-has:hover > a::after, .mw-has.mw-on > a::after { transform: translateX(2px); color: var(--mw-nhan); }

/* nút gập riêng — chỉ hiện ở màn hẹp (xem khối mobile bên dưới) */
.mw-tog { display: none; }

/* "All mod wikis" + "9Minecraft.net": căn GIỮA, tách khỏi danh sách bằng khoảng thở */
.mw-all, .mw-goc { list-style: none; }
.mw-all { margin-top: 10px; }
.mw-all > a, .mw-goc > a {
  display: flex; align-items: center; justify-content: center;
  padding: 11px 16px; margin: 2px 0;
  border-radius: 999px;
  background: rgba(60, 64, 67, .06);
  color: var(--mw-nhan); font: 500 14px/1.3 var(--sans); text-decoration: none;
  transition: background .12s ease;
}
.mw-all > a:hover, .mw-goc > a:hover { background: var(--mw-nhan-nhat); text-decoration: none; }
.mw-all > a::after, .mw-goc > a::after { content: none; }

/* ── CẤP 3: thẻ nổi bung NGANG, neo theo đúng hàng đang rê ──────────────────────────────────── */
@media (min-width: 992px) {
  .mw-list > li > .mw-sub {
    position: fixed;
    top: var(--mw-top);                   /* JS ghi đè theo hàng đang rê */
    left: calc(var(--mw-left) + var(--mw-rail-w) + var(--mw-gap));
    width: clamp(520px, calc(100vw - var(--mw-left) - var(--mw-rail-w) - var(--mw-gap) - 48px), 1120px);
    max-height: calc(100vh - var(--mw-top) - 24px);
    padding: 22px 24px 24px; margin: 0;
    background: var(--surface);
    border: 0; border-radius: 28px;
    box-shadow: var(--mw-bong-sau);
    list-style: none; overflow-y: auto; display: block;
    opacity: 0; visibility: hidden; transform: translateX(-6px);
    transition: opacity .14s ease, transform .14s ease, visibility .14s;
    z-index: 10002;
  }
  /* ⛔ CHỈ dựa vào lớp `.mw-on` do JS đặt, KHÔNG dùng `:hover` cho tấm bung. User 01/10: "khi di
     chuyển chuột sang Menu cấp 3 rất dễ bị tự đóng menu… chuột chỉ cần lỡ ra ngoài khoảng trống
     là menu đóng lại". Với `:hover` thuần thì chỉ cần con trỏ lướt qua một mục kế bên trong lúc
     đi ngang là tấm bung biến mất TỨC THÌ, không có một nhịp ân hạn nào. JS giữ lớp thêm 320ms
     sau khi chuột rời, và chờ 110ms trước khi đổi sang mục khác — đủ tha thứ cho đường đi chéo. */
  .mw-has.mw-on > .mw-sub {
    opacity: 1; visibility: visible; transform: translateX(0);
  }
  /* ⛔ Tấm bung neo theo KHUNG NHÌN nên khi rail đóng nó không tự biến mất — phải chốt theo
     `body.mw-open`, nếu không nó lơ lửng giữa trang sau khi menu đã đóng. */
  body:not(.mw-open) .mw-list > li > .mw-sub {
    opacity: 0 !important; visibility: hidden !important; pointer-events: none !important;
  }
  /* ⛔ Cầu nối vô hình lấp đúng 14px khoảng thở giữa rail và tấm bung. Không có nó thì rê chuột
     sang ngang bị rơi vào khoảng trống một nhịp và menu đóng ngay trước mặt. */
  .mw-has::after {
    content: ""; position: fixed;
    top: var(--mw-top); bottom: 0;
    left: calc(var(--mw-left) + var(--mw-rail-w));
    width: calc(var(--mw-gap) + 4px);
    z-index: 10001; pointer-events: none;
  }
  /* ⛔ Cầu nối phải sống theo `.mw-on`, không theo `:hover`: ngay khi con trỏ rời mục thì
     `:hover` mất, cầu tắt luôn — đúng vào lúc người dùng đang ở giữa 14px khoảng thở. */
  .mw-has.mw-on::after { pointer-events: auto; }

  .mw-grp { list-style: none; }
  .mw-grp > a {                           /* tiêu đề nhóm: 11px IN HOA, xám — không gạch chân */
    display: block; padding: 0; margin: 0 0 14px;
    color: var(--muted); font: 500 11px/1.3 var(--sans);
    text-transform: uppercase; letter-spacing: .9px; text-decoration: none;
  }
  .mw-grp > a:hover { color: var(--mw-nhan); }
  .mw-grp > ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
  .mw-grp > ul > li { list-style: none; display: inline-block; }
  .mw-grp > ul > li > a {
    display: inline-block; padding: 7px 14px;
    background: rgba(60, 64, 67, .06);
    color: var(--text); font: 400 13.5px/1.35 var(--sans); text-decoration: none;
    border: 0; border-radius: 999px;
    transition: background .12s ease, color .12s ease;
  }
  .mw-grp > ul > li > a:hover {
    background: var(--mw-nhan-nhat); color: var(--mw-nhan); text-decoration: none;
  }
  .mw-xem > a { background: transparent !important; color: var(--mw-nhan) !important; }
}

/* ── Màn hẹp: rail chiếm cả cột, cấp 3 xổ dọc và GẬP LẠI ĐƯỢC ───────────────────────────────── */
@media (max-width: 991.98px) {
  .mw-mega {
    --mw-left: 0px;
    /* ⛔ PHẢI đổi `--mw-rail-w`, KHÔNG được đặt `width` riêng. Vị trí lúc đóng tính bằng
       `calc(0px - var(--mw-rail-w) - 24px)`; đặt `width:330px` mà để biến ở 300px thì rail rộng
       hơn khoảng đẩy ra 30px, mép phải rơi vào +6px — thành một VẠCH TRẮNG 6px cao suốt trang
       bám mép trái MỌI trang, lại nằm trên cùng vì `z-index:10001`. Sửa biến thì `width` và
       khoảng đẩy luôn khớp nhau. */
    --mw-rail-w: min(330px, 88vw);
    border-radius: 0 28px 28px 0;
    bottom: 0; max-height: none;
  }
  .mw-list > li { display: flex; flex-wrap: wrap; align-items: center; }
  .mw-list > li > a { flex: 1 1 auto; min-width: 0; }
  .mw-has > a::after { content: none; }
  /* nút gập riêng, tách khỏi liên kết: chạm chữ thì ĐI, chạm mũi tên thì MỞ/GẬP */
  .mw-tog {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 auto; width: 40px; height: 40px;
    border: 0; border-radius: 50%; background: transparent; cursor: pointer;
  }
  .mw-tog::before {
    content: ""; width: 8px; height: 8px;
    border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted);
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform .18s ease;
  }
  .mw-tog:hover { background: rgba(60, 64, 67, .08); }
  .mw-has.mw-on > .mw-tog::before { transform: rotate(-135deg) translate(-2px, -2px); }
  .mw-sub {
    flex: 1 1 100%;
    list-style: none; margin: 0; padding: 0;
    max-height: 0; overflow: hidden; transition: max-height .24s ease;
  }
  .mw-has.mw-on > .mw-sub { max-height: 1600px; }
  .mw-grp { list-style: none; }
  .mw-grp > a {
    display: block; padding: 8px 16px 4px;
    color: var(--muted); font: 500 11px/1.3 var(--sans);
    text-transform: uppercase; letter-spacing: .9px; text-decoration: none;
  }
  .mw-grp > ul { list-style: none; margin: 0 0 8px; padding: 0 8px; display: flex; flex-wrap: wrap; gap: 6px; }
  .mw-grp > ul > li { list-style: none; }
  .mw-grp > ul > li > a {
    display: inline-block; padding: 7px 13px;
    background: rgba(60, 64, 67, .06); border-radius: 999px;
    color: var(--text); font: 400 13px/1.3 var(--sans); text-decoration: none;
  }
}


/* ═══ TRANG CHỦ: hero ở giữa kiểu Modrinth + nền Minecraft phủ toàn trang ════════════════════
   ⛔ Nền chỉ gắn vào `body:has(.mw-hero)` — tức CHỈ trang chủ. Gắn cho mọi trang thì 168.495
      trang bài đều tải thêm một ảnh 43 KB và chữ đọc trên ảnh rất mệt.
   ⛔ Ảnh lấy từ KHO ẢNH CỦA CHÍNH SITE (luật của user: không cào Google Images), đã cắt đáy 18%
      bỏ hotbar và làm mờ + tối 42% để chữ trắng đọc được.
   ⛔ `background-attachment: fixed` gây giật khi cuộn trên điện thoại (Safari/Chrome mobile vẽ
      lại cả nền mỗi khung hình) → chỉ bật từ 992px trở lên. */
body:has(.mw-hero) {
  background-image: linear-gradient(rgba(12, 16, 22, .55), rgba(12, 16, 22, .88)),
                    image-set(url("/bg-home.webp") type("image/webp"), url("/bg-home.jpg") type("image/jpeg"));
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  background-color: #0c1016;
}
@media (min-width: 992px) { body:has(.mw-hero) { background-attachment: fixed; } }

/* Trên trang chủ, thanh header và bài phải trong suốt để thấy nền */
body:has(.mw-hero) .topbar { background: transparent; }
body:has(.mw-hero) article { background: transparent; box-shadow: none; }

/* ── Chân trang TRÊN TRANG CHỦ ───────────────────────────────────────────────────────────────
   Trang chủ phủ ảnh Minecraft tối, nên chân trang lấy `var(--bg)` màu sáng sẽ cắt ngang một
   mảng trắng ngay dưới nền tối. Cho nó trong suốt để ảnh nền chạy liền mạch tới cuối trang,
   và đổi chữ sang tông sáng cho đọc được.
   ⛔ Phải nhắm đúng `footer.f.gf` chứ không phải `footer`: luật ở v3.css là `:root footer.f.gf`
      (hạng 0,3,1); viết `body:has(.mw-hero) footer` chỉ được 0,1,2 nên thua, nền vẫn trắng. */
body:has(.mw-hero) footer.f.gf {
  background-color: transparent !important;
  border-top-color: rgba(255, 255, 255, .12);
}
body:has(.mw-hero) footer.f.gf .gf__tag,
body:has(.mw-hero) footer.f.gf .gf__disc,
body:has(.mw-hero) footer.f.gf .gf__cpy { color: rgba(255, 255, 255, .62); }
body:has(.mw-hero) footer.f.gf .gf__disc strong { color: rgba(255, 255, 255, .86); }
body:has(.mw-hero) footer.f.gf .gf__legal a { color: #fff; }
body:has(.mw-hero) footer.f.gf .gf__legal a:hover { color: #4ade80; }
body:has(.mw-hero) footer.f.gf .gf__cpy a { color: #4ade80; }
body:has(.mw-hero) footer.f.gf .gf__gen a {
  background: rgba(255, 255, 255, .07);
  border-color: rgba(255, 255, 255, .12);
  color: #cdd6df;
}
body:has(.mw-hero) footer.f.gf .gf__gen a:hover {
  background: rgba(255, 255, 255, .14); border-color: #4ade80; color: #4ade80;
}

.mw-hero {
  text-align: center;
  padding: 54px 16px 40px;
  margin: 0 0 8px;
}
.mw-hero__icon {
  width: 112px; height: 112px;
  display: block; margin: 0 auto 26px;
  border-radius: 50%;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .45);
}
.mw-hero h1 {
  margin: 0 0 14px;
  font: 700 clamp(30px, 5.2vw, 56px)/1.1 var(--sans);
  letter-spacing: -.022em;
  color: #fff;
  text-wrap: balance;
}
.mw-hero h1 span { color: #4ade80; }        /* một chữ nhấn, như Modrinth */
.mw-hero p {
  max-width: 660px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(255, 255, 255, .74);
  text-wrap: balance;
}

/* Ô tìm trên trang chủ: nổi trên nền tối */
body:has(.mw-hero) .wsearch { max-width: 620px; margin: 22px auto 10px; }
body:has(.mw-hero) .wsearch input {
  width: 100%; height: 50px; padding: 0 20px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .1);
  color: #fff; font: inherit; font-size: 15px;
  backdrop-filter: blur(6px);
}
body:has(.mw-hero) .wsearch input::placeholder { color: rgba(255, 255, 255, .6); }
body:has(.mw-hero) .wsearch input:focus { outline: none; border-color: #4ade80; background: rgba(255, 255, 255, .15); }

/* Phần nội dung dưới hero: thẻ sáng trên nền tối, để đọc được */
body:has(.mw-hero) article h2 { color: #fff; border-bottom-color: rgba(255, 255, 255, .14); }
body:has(.mw-hero) .wcard {
  background: rgba(255, 255, 255, .07);
  border-color: rgba(255, 255, 255, .1);
  color: #fff;
}
body:has(.mw-hero) .wcard:hover { background: rgba(255, 255, 255, .13); }
body:has(.mw-hero) .wcard .noimg { border-color: rgba(255, 255, 255, .22); }
body:has(.mw-hero) .chip { background: rgba(255, 255, 255, .1); color: #d7e6ff; }
body:has(.mw-hero) .chip:hover { background: rgba(255, 255, 255, .17); }
body:has(.mw-hero) .crumb { display: none; }   /* breadcrumb một mắt xích trên trang chủ = thừa */

/* Header trên nền tối: chữ và nút phải sáng lên mới đọc được */
body:has(.mw-hero) .twrap { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .12); }
body:has(.mw-hero) .twrap .search input { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .16); color: #fff; }
body:has(.mw-hero) .twrap .search input::placeholder { color: rgba(255, 255, 255, .6); }
body:has(.mw-hero) .wikiname a, body:has(.mw-hero) .mw-burger { color: #fff; }
body:has(.mw-hero) .mw-burger:hover { background: rgba(255, 255, 255, .14); }
body:has(.mw-hero) .b9 { background: rgba(255, 255, 255, .12); color: #fff; }
body:has(.mw-hero) .b9:hover { background: rgba(255, 255, 255, .2); color: #fff; }
body:has(.mw-hero) .tbtn { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .16); color: #fff; }

/* ── Nền trang chủ trên ĐIỆN THOẠI ───────────────────────────────────────────────────────────
   User 01/10: "Home ở mobile chưa có background đẹp như ở desktop."

   Ảnh nền là 1920×885. Trên desktop `background-attachment: fixed` ghim nó theo khung nhìn nên
   `cover` chỉ phải phủ 1 màn hình — nhìn đúng tỉ lệ. Trên mobile `fixed` gây giật khi cuộn nên
   phải để `scroll`, mà khi đó `cover` phải phủ CẢ THÂN TRANG cao 3.997px: ảnh bị phóng 4,5 lần,
   bề ngang thành 8.680px nên chỉ còn thấy khoảng 4% ảnh — một mảng mờ vô nghĩa.

   Cách chữa: cho ảnh một dải cao 60vh ở đỉnh, giữ đúng tỉ lệ (`auto 60vh`), không lặp; lớp
   chuyển màu phủ hết trang và tan dần vào màu nền đặc trước khi dải ảnh kết thúc, nên không
   thấy đường cắt ngang. */
@media (max-width: 991px) {
  body:has(.mw-hero) {
    background-image:
      linear-gradient(rgba(12, 16, 22, .40) 0, rgba(12, 16, 22, .88) 40vh, #0c1016 60vh),
      image-set(url("/bg-home.webp") type("image/webp"), url("/bg-home.jpg") type("image/jpeg"));
    background-size: cover, auto 62vh;
    background-position: center top, center top;
    background-repeat: no-repeat, no-repeat;
  }
  /* hero gọn lại cho vừa dải ảnh */
  .mw-hero { padding: 30px 14px 24px; }
  .mw-hero__icon { width: 84px; height: 84px; margin-bottom: 18px; }
}


/* ═══ MOBILE ═══════════════════════════════════════════════════════════════════════════════════
   User 01/10 (đợt 2): "Mobile thì cho Logo ra chính giữa, xong các icon phân bổ làm 2 bên giống
   9minecraft. / Mục lục ở trang chi tiết bỏ ghim ở top đi vì chiếm diện tích quá, cho vào 1 khu
   vực đầu bài viết là được. / Mỗi list ở home hay category tách thành 2 cột card đi cho đỡ diện
   tích trống, nhưng vẫn phải ghi đủ tên mỗi bài viết ra chứ không rút gọn."

   Bố cục header lấy đúng của 9minecraft.net (đo ở 390px): nhóm icon bên trái, logo ở giữa,
   nhóm icon bên phải — cân bằng được vì hai nhóm giữ cùng bề ngang.

   ⛔ `overflow-x` phải là `clip`, TUYỆT ĐỐI không `hidden`: `hidden` biến `html`/`body` thành
      khung cuộn và giết `position:sticky` của mọi phần tử con. */

@media (max-width: 860px) {
  /* 7+7 (topbar) + 4+4 (twrap) + 40 (nút) = 62px; khi cuộn: 3+3 + 2+2 + 34 = 44px */
  :root { --mw-top: 62px; }

  /* ── 1. Header: icon hai bên, LOGO Ở GIỮA, THU NHỎ KHI CUỘN ────────────────────────────────
     User 01/10: "Logo ở mobile ban đầu phải to >> khi cuộn trang thì thu nhỏ lại toàn bộ phần
     header cho tăng diện tích xem nội dung."

     Lớp `mcw-shrunk` do chính `wsearch.js` bật/tắt (ngưỡng 40px/12px). KHÔNG dùng lại
     `is-header-shrunk` của khung dùng chung: script site chính cũng gỡ lớp đó theo ngưỡng riêng
     nên hai bên giành nhau, đo 3 lượt ở cùng vị trí cuộn thì chỉ 1 lượt ăn.

     ⛔ Phải viết selector `:root.mcw-shrunk …`, KHÔNG phải `html.is-header-shrunk …`.
        Luật nền có `:root.mcw-shrunk .brand img{height:30px!important}` hạng (0,3,1); viết
        `html.is-header-shrunk .brand img` chỉ được (0,2,2) nên THUA, dù có `!important` và nằm ở
        tệp nạp sau. Hậu quả đo được: cuộn xuống logo TO LÊN 26→30px, header 52→54px — ngược hẳn.
     ⛔ `--mw-top` phải đổi theo, vì rail menu và lớp nền mờ đều neo bằng biến này; để nguyên thì
        cuộn trong lúc menu đang mở sẽ hở một dải giữa header và rail. */
  :root { --mw-canh: 80px; }                 /* 2 nút × 40px — bề ngang nhóm icon trái */
  .topbar { padding: 7px 0; transition: padding .18s ease; }
  .twrap {
    max-width: none; margin: 0 8px; padding: 4px 6px;
    gap: 0; border-radius: 16px;
    display: flex; align-items: center; flex-wrap: wrap; position: relative;
    transition: padding .18s ease, border-radius .18s ease;
  }
  .mw-burger { order: 1; width: 40px; height: 40px; transition: width .18s ease, height .18s ease; }
  .tbtn       { order: 2; width: 40px; height: 40px; padding: 0; flex: 0 0 auto;
                transition: width .18s ease, height .18s ease; }
  .brand      { order: 3; flex: 1 1 auto; display: flex; justify-content: center; min-width: 0; }
  .search     { order: 4; flex: 0 0 var(--mw-canh); display: flex; justify-content: flex-end;
                position: relative; max-width: none; margin: 0; }
  .brand img { height: 34px !important; transition: height .18s ease; }
  .wikiname { display: none; }
  .b9 { display: none; }                     /* lối về trang chính nằm trong mega-menu */
  .mw-burger svg { width: 21px; height: 21px; }

  /* trạng thái ĐÃ CUỘN: cả header co lại, nhường chỗ cho nội dung */
  :root.mcw-shrunk { --mw-top: 44px; --mw-canh: 68px; }
  :root.mcw-shrunk .topbar { padding: 3px 0; }
  :root.mcw-shrunk .twrap { padding: 2px 4px; border-radius: 12px; }
  :root.mcw-shrunk .brand img { height: 22px !important; }
  :root.mcw-shrunk .mw-burger,
  :root.mcw-shrunk .tbtn,
  :root.mcw-shrunk .search .kinh { width: 34px; height: 34px; }

  /* ── 2. Ô tìm: chạm kính lúp thì mở XUỐNG HÀNG DƯỚI ────────────────────────────────────────
     User 01/10: "Phần search ở mobile khi bấm vào icon kính lúp thì mở xuống bên dưới đi cho đỡ
     chèn lên logo."

     `.twrap` đặt `flex-wrap: wrap`, nên khi mở chỉ cần cho `.search` chiếm trọn bề ngang
     (`flex-basis:100%`) là nó tự rơi xuống hàng thứ hai — hàng logo giữ nguyên, không bị che.
     ⛔ Cần `::after` làm vật chèn đúng bằng bề ngang nhóm icon trái: hàng một mất `.search` ở
        bên phải, không chèn thì logo lệch hẳn sang phải đúng lúc người dùng đang nhìn. */
  .search input { display: none; }
  .search .kinh {
    position: static; transform: none;
    width: 40px; height: 40px; color: var(--text);
    transition: width .18s ease, height .18s ease;
  }
  body.mcw-tim .twrap::after {
    content: ""; order: 5; flex: 0 0 var(--mw-canh); height: 1px;
  }
  body.mcw-tim .search {
    order: 9; flex: 1 1 100%; justify-content: stretch; margin-top: 6px;
  }
  body.mcw-tim .search input {
    display: block; width: 100%; height: 40px;
    padding-left: 42px !important; padding-right: 44px;
    font-size: 16px;                         /* ⛔ <16px là iOS tự phóng to trang khi gõ */
  }
  body.mcw-tim .search .kinh {
    position: absolute; left: 4px; top: 50%; transform: translateY(-50%); z-index: 2;
  }
  body.mcw-tim .search .dong-tim { display: inline-flex; }
  .search .dong-tim {
    position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
    width: 34px; height: 34px; z-index: 2;
    align-items: center; justify-content: center;
    border: 0; border-radius: 50%; background: transparent; color: var(--muted); cursor: pointer;
  }
  .search .dong-tim svg { width: 17px; height: 17px; display: block; }
  #mcw-res { position: absolute; left: 0; right: 0; top: calc(100% + 6px);
             max-height: 70vh; overflow-y: auto; }

  /* ── 3. MỤC LỤC: NGĂN KÉO bám lề phải ──────────────────────────────────────────────────────
     User 01/10: "Mục lục trên mobile nhìn xấu, không khoa học. Hoặc đổi cách gắn vào lề phải ai
     dùng thì xổ ra."

     Hai lượt trước sai theo hai hướng ngược nhau: ghim ở đỉnh thì chiếm mất diện tích đọc, còn
     đặt vào đầu bài thì thành mấy cái hộp rỗng xếp chồng chắn ngang trước khi vào nội dung. Cả
     hai đều lấy chỗ của bài viết cho một thứ người ta chỉ dùng thỉnh thoảng.

     Nay nó nằm NGOÀI màn hình, chỉ chừa một tay nắm nhỏ ở mép phải; chạm vào thì trượt ra —
     không chiếm một pixel nào của nội dung khi không dùng.

     ⛔ `position: fixed` chứ không `sticky`: ngăn kéo phải phủ hết chiều cao màn hình và thoát
        khỏi dòng chảy của lưới, nếu không nó lại chiếm chỗ như cũ.
     ⛔ Tay nắm đặt ở 38% chiều cao, KHÔNG phải chính giữa: giữa mép phải là vùng ngón cái hay
        vuốt để cuộn, để nút ở đó là bấm nhầm liên tục. */
  #rsidebar {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 10005;
    width: min(320px, 84vw);
    margin: 0; padding: calc(var(--mw-top) + 10px) 12px 24px;
    background: var(--surface);
    box-shadow: -2px 0 24px rgba(15, 23, 42, .18);
    overflow-y: auto; overscroll-behavior: contain;
    transform: translateX(100%);
    transition: transform .24s cubic-bezier(.4, 0, .2, 1);
    max-height: none;
  }
  body.mcw-toc #rsidebar { transform: none; }
  #rsidebar .widget {
    border-radius: 16px; margin: 0 0 10px; box-shadow: none; background: var(--surface2);
  }
  #rsidebar .widgettitle { padding: 12px 16px 6px; cursor: default; }
  #rsidebar .widgettitle::after { content: none; }
  #rsidebar .widget .net-list { max-height: none; overflow: visible; padding: 0 8px 8px; }

  /* tay nắm bám mép phải */
  .toc-nut {
    display: inline-flex; position: fixed; right: 0; top: 38%; z-index: 10004;
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 46px; padding: 0;
    border: 0; border-radius: 14px 0 0 14px;
    background: var(--surface); color: var(--mw-nhan, var(--accent));
    box-shadow: -2px 2px 14px rgba(15, 23, 42, .18);
    cursor: pointer;
    transition: transform .24s cubic-bezier(.4, 0, .2, 1);
  }
  .toc-nut svg { width: 19px; height: 19px; display: block; }
  body.mcw-toc .toc-nut { transform: translateX(120%); }
  .toc-nen {
    display: block; position: fixed; inset: 0; z-index: 10003;
    background: rgba(32, 33, 36, .32);
    opacity: 0; pointer-events: none; transition: opacity .22s ease;
  }
  body.mcw-toc .toc-nen { opacity: 1; pointer-events: auto; }

  /* ── 4. Danh sách thẻ: HAI CỘT, tên hiện đủ không cắt ─────────────────────────────────────
     `.wgrid` để `auto-fill minmax(210px,1fr)` nên ở 366px lọt vừa đúng MỘT cột, bỏ trống hơn
     nửa màn hình. Ép hai cột và cho tên xuống dòng thoải mái — user yêu cầu giữ đủ tên bài,
     không rút gọn, nên KHÔNG dùng `text-overflow: ellipsis` hay giới hạn số dòng. */
  .wgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .wcard {
    gap: 8px; padding: 9px 10px; font-size: 12.5px; line-height: 1.3;
    align-items: center; min-width: 0;
    border-radius: 14px;
  }
  .wcard img, .wcard .noimg { width: 28px; height: 28px; }
  .wcard span { min-width: 0; overflow-wrap: anywhere; }
  .igrid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px; }
  .icell { gap: 8px; padding: 9px 10px; font-size: 12.5px; min-width: 0; }
  .icell img, .icell .noimg { width: 28px; height: 28px; }

  /* ── 5. Chặn tràn ngang ở gốc ────────────────────────────────────────────────────────────── */
  html, body { overflow-x: clip; max-width: 100%; }
  .b__inner { padding-left: 12px; padding-right: 12px; }
  article table, article pre { display: block; max-width: 100%; overflow-x: auto; }
  article img, .wcard img { max-width: 100%; height: auto; }
}

/* Khổ rất hẹp (≤ 380px): logo nhỏ thêm một nấc cho đủ chỗ */
@media (max-width: 380px) {
  :root { --mw-canh: 68px; }
  .mw-burger, .tbtn, .search .kinh { width: 34px; height: 34px; }
  .brand img, html.is-header-shrunk .brand img { height: 23px !important; }
  .twrap { margin: 0 6px; }
}

.gguide, .gcards {display: grid; grid-template-columns: repeat(auto-fill, minmax(258px, 1fr));gap: 12px; margin: 12px 0 20px}.gguide > a, .gcards > a {display: flex; flex-direction: column; gap: 5px;padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px;background: var(--surface); text-decoration: none;font: 600 14.5px/1.4 var(--sans); color: var(--accent);transition: box-shadow .16s ease, border-color .16s ease, background .16s ease}.gguide > a:hover, .gcards > a:hover {border-color: transparent; background: var(--surface);box-shadow: 0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15);text-decoration: none}.gguide > a > b, .gcards > a > b { font: 600 14.5px/1.4 var(--sans); color: var(--accent)}.gguide > a > span, .gcards > a > span {font: 400 12.5px/1.5 var(--sans); color: var(--muted);display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden}.gnext { margin: 28px 0 0; padding-top: 18px; border-top: 1px solid var(--line)}.gnext h2 { font: 600 15px/1.3 var(--sans); margin: 0 0 2px; letter-spacing: .1px}.gnext h2 + .gcards { margin-top: 10px}.gnext .gcards + h2 { margin-top: 18px}.gchips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 2px}@media (max-width: 760px) {.gguide, .gcards { grid-template-columns: 1fr; gap: 10px}.gguide > a, .gcards > a { padding: 12px 14px; border-radius: 14px}}.iico {display: inline-block; width: 18px; height: 18px; margin: 0 4px -4px 0;image-rendering: pixelated; vertical-align: baseline}details.faq summary .iico { margin-bottom: -3px}.gmore { margin: 14px 0 22px}.gmore a {display: inline-block; padding: 8px 18px; border-radius: 999px;background: var(--chip); color: var(--accent);font: 500 13.5px/1.35 var(--sans); text-decoration: none;transition: box-shadow .16s ease, filter .16s ease}.gmore a:hover { text-decoration: none; filter: brightness(.96);box-shadow: 0 1px 2px rgba(60,64,67,.3), 0 1px 3px 1px rgba(60,64,67,.15)}.gbody:has(> details.faq) { max-width: none}details.faq { margin: 10px 0}.gmore a {padding: 10px 24px; background: var(--accent); color: var(--on-accent);font: 500 14px/1.35 var(--sans);box-shadow: 0 1px 2px rgba(60,64,67,.3), 0 1px 3px 1px rgba(60,64,67,.15)}.gmore a:hover {filter: none; background: var(--accent); color: var(--on-accent);box-shadow: 0 1px 3px rgba(60,64,67,.3), 0 4px 8px 3px rgba(60,64,67,.15)}.chip .src { display: inline; margin: 0 0 0 5px; font-size: .86em; opacity: .72;vertical-align: baseline}p:has(> .allbtn), .gmore, .mw-browse { text-align: center}p:has(> .allbtn) { margin: 20px 0 8px}.net-list li.wgroup {font: 600 10.5px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase;color: var(--muted); padding: 16px 8px 6px; border: 0; cursor: default}.net-list li.wgroup:first-child { padding-top: 6px}.net-list a { display: flex; align-items: baseline; gap: 10px}.net-list a em {margin-left: auto; font: 400 12px/1 var(--sans); font-style: normal;font-variant-numeric: tabular-nums; color: var(--muted)}.mmeta { display: flex; flex-wrap: wrap; gap: 7px; margin: 10px 0 2px}.mmeta span {padding: 4px 11px; border-radius: 999px; background: var(--chip); color: var(--accent);font: 500 12.5px/1.4 var(--sans)}@media (min-width: 761px) {:root.mcw-shrunk { --mw-top: 58px}:root.mcw-shrunk body .topbar { padding: 4px 0}:root.mcw-shrunk body .twrap,:root.mcw-shrunk body:has(.mw-hero) .twrap {padding: 3px 12px; border-radius: 999px;background: var(--surface); border-color: var(--line);box-shadow: 0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15)}:root.mcw-shrunk body:has(.mw-hero) .twrap .search input {background: var(--surface2); border-color: var(--line); color: var(--text)}:root.mcw-shrunk body:has(.mw-hero) .twrap .search input::placeholder { color: var(--muted)}:root.mcw-shrunk body:has(.mw-hero) .wikiname a,:root.mcw-shrunk body:has(.mw-hero) .mw-burger { color: var(--text)}:root.mcw-shrunk body:has(.mw-hero) .mw-burger:hover { background: var(--surface2)}:root.mcw-shrunk body:has(.mw-hero) .b9 { background: var(--surface2); color: var(--text)}:root.mcw-shrunk body:has(.mw-hero) .b9:hover { background: var(--chip); color: var(--accent)}:root.mcw-shrunk body:has(.mw-hero) .tbtn {background: var(--surface2); border-color: var(--line); color: var(--muted)}:root.mcw-shrunk .brand img { height: 26px !important}:root.mcw-shrunk .search input { padding-top: 6px; padding-bottom: 6px}.topbar, .twrap, .brand img { transition: padding .16s ease, height .16s ease,background .16s ease, box-shadow .16s ease}}@media (max-width: 760px) {:root.mcw-shrunk { --mw-top: 40px; --mw-canh: 62px}:root.mcw-shrunk body .topbar { padding: 2px 0}:root.mcw-shrunk body .twrap,:root.mcw-shrunk body:has(.mw-hero) .twrap {background: var(--surface); border-color: var(--line);box-shadow: 0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15)}:root.mcw-shrunk body:has(.mw-hero) .mw-burger,:root.mcw-shrunk body:has(.mw-hero) .tbtn { color: var(--text); background: transparent}:root.mcw-shrunk body:has(.mw-hero) .twrap .search input {background: var(--surface2); border-color: var(--line); color: var(--text)}:root.mcw-shrunk body:has(.mw-hero) .twrap .search input::placeholder { color: var(--muted)}:root.mcw-shrunk .brand img { height: 20px !important}:root.mcw-shrunk .mw-burger,:root.mcw-shrunk .tbtn,:root.mcw-shrunk .search .kinh { width: 31px; height: 31px}}.gbody { max-width: none}#rsidebar .widget .net-list a {display: flex; align-items: center; gap: 12px;padding: 9px 8px; border-radius: 8px}#rsidebar .widget .net-list a > b {flex: 1 1 auto; min-width: 0;font: 400 14px/1.35 var(--sans);overflow: hidden; text-overflow: ellipsis; white-space: nowrap}#rsidebar .widget .net-list li:first-child a > b { font-weight: 600}#rsidebar .widget .net-list a > em {flex: 0 0 auto; margin-left: auto; min-width: 2.4em; text-align: right;font: 400 12px/1 var(--sans); font-style: normal;font-variant-numeric: tabular-nums; color: var(--muted)}#rsidebar .widget .net-list a:hover { background: var(--surface2)}#rsidebar .widget .net-list a:hover > em { color: var(--accent)}#rsidebar .widget .net-list li.wgroup,#rsidebar .widget .net-list li.wgroup + li { border-top: 0}.mdlist { margin: 10px 0 16px; padding-left: 22px}.mdlist li { margin: 5px 0; line-height: 1.65}.mdlist li > strong:first-child, .mdlist li > em:first-child { color: var(--text)}.cfgt{width:100%;table-layout:fixed}.cfgt th:first-child,.cfgt td:first-child{width:38%}.cfgt td:first-child>code{display:block;word-break:break-word;font:600 12.5px/1.5 var(--mono,ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace);color:var(--text)}.cfgt .cfgn{display:block;margin-top:3px;font-size:12px;line-height:1.45;color:var(--muted)}.cfgt tbody tr:nth-child(even) td{background:var(--surface2)}.cfgt tbody tr:nth-child(even):hover td,.cfgt tbody tr:hover td{background:var(--hover,rgba(26,115,232,.07))}.cfgt td{vertical-align:top}.cfgt tr.cfgsec td{background:var(--surface2);border-bottom:1px solid var(--line);padding:14px 12px 8px;font:600 11px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.cfgt tr.cfgsec:hover td{background:var(--surface2)}.cfgt tr.cfgsec + tr td{border-top:0}.cfgrest{margin:18px 0 6px}.cfgrest>h3{margin:0 0 4px;font-size:14px}.cfgrest>p.src{margin:0 0 10px}.cfgrest ul{list-style:none;margin:0;padding:0;display:grid;gap:6px 18px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.cfgrest li{margin:0;padding:6px 0;border-bottom:1px solid var(--line);font:500 12.5px/1.5 var(--mono,ui-monospace,Menlo,Consolas,monospace);color:var(--text);word-break:break-word}.cfgrest li em{display:block;font:400 12px/1.4 var(--sans);color:var(--muted);font-style:normal}.infobox table{table-layout:fixed}.infobox td:first-child{width:38%;word-break:normal;overflow-wrap:break-word}.infobox td + td{word-break:break-word;overflow-wrap:anywhere}.infobox td>code{display:inline-block;max-width:100%;white-space:normal;word-break:break-all}.modbody table,.gbody table,article>table,.modbody .wrapt table{width:100%;border-collapse:collapse;margin:12px 0 20px;font-size:14px}.modbody table th,.gbody table th,article>table th{text-align:left;font:600 11.5px/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);background:none}.modbody table td,.gbody table td,article>table td{padding:9px 12px;border-top:1px solid var(--line);vertical-align:top}.modbody table th + th,.modbody table td + td,.gbody table th + th,.gbody table td + td,article>table th + th,article>table td + td{border-left:1px solid color-mix(in srgb,var(--line) 55%,transparent)}.modbody table tbody tr:nth-child(even) td,.gbody table tbody tr:nth-child(even) td,article>table tbody tr:nth-child(even) td{background:var(--surface2)}.cfgt td + td,.cfgt th + th,.cmdt td + td,.cmdt th + th{border-left:1px solid color-mix(in srgb,var(--line) 55%,transparent)}@media (max-width:760px){.modbody table,.gbody table,article>table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;font-size:13px}.modbody table td,.gbody table td,article>table td,.modbody table th,.gbody table th,article>table th{padding:8px 10px}.cfgt{font-size:13px}.cfgt th:first-child,.cfgt td:first-child{width:44%}}.icell.nolink{color:var(--text);cursor:default}.icell.nolink:hover{box-shadow:none;transform:none;border-color:var(--line)}.azjump a.on{background:var(--accent);color:var(--on-accent);font-weight:700}.azjump a.on:hover{background:var(--accent);color:var(--on-accent)}
/* ── 29. Enchantments / Advancements: the co vien, khong con la chu tho ──────────
   User 06/10: "Enchantments >> Trinh bay, trang tri lai nhin cho dep. Dang bi xau"
   `.egrid`/`.ecard` truoc day KHONG co mot dong CSS nao — markup co san nhung khong duoc
   tao kieu, nen ten va mo ta dinh lien nhau thanh mot khoi chu chay. */
.egrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;
  margin:12px 0 22px}
.ecard{display:flex;flex-direction:column;gap:5px;padding:14px 16px;
  border:1px solid var(--line);border-radius:16px;background:var(--surface);
  transition:box-shadow .16s ease,border-color .16s ease}
.ecard:hover{border-color:transparent;
  box-shadow:0 1px 2px rgba(60,64,67,.3),0 2px 6px 2px rgba(60,64,67,.15)}
.ecard>b{font:600 14.5px/1.4 var(--sans);color:var(--text)}
.ecard>span{font:400 12.5px/1.55 var(--sans);color:var(--muted)}
@media (max-width:760px){.egrid{grid-template-columns:1fr;gap:10px}
  .ecard{padding:12px 14px;border-radius:14px}}

/* ── 30. The "Related mods" co LOGO mod ─────────────────────────────────────────
   User 06/10: "Related mods >> Them icon logo vao nhin cho no dep"
   ⛔ `.gguide > a` von la `flex-direction:column` (dung cho the Guides co 2 dong chu). The
      Related chi co mot dong, nen doi sang hang ngang de logo dung canh ten. Chi nham vao
      the CO logo de khong dong den the Guides. */
.gguide>a:has(>.glogo){flex-direction:row;align-items:center;gap:11px}
.glogo{flex:0 0 auto;width:30px;height:30px;border-radius:7px;object-fit:contain;
  background:var(--surface2);padding:2px}
.gguide>a>b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:760px){.glogo{width:26px;height:26px}}

/* ── 31. Ten the Related: cho XUONG 2 DONG thay vi cat bang "…" ─────────────────
   "Electroblob's Wizardry: Twilight Forest Spell Pack" bi cat con "Electroblob's Wizardry:
   Twiligh…" — doc khong ra mod nao. Hai dong du cho hau het ten. */
.gguide>a>b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden}

/* ── 32. Bang Config/Command: bo nen rieng cua <code> trong o ───────────────────
   User 06/10 (anh chup bang Configuration): "Nhieu bang bieu cua command, config, ... co nen
   xam trang khong dong nhat"

   Goc: `code{background:var(--surface2)}` VA soc chan `tbody tr:nth-child(even) td
   {background:var(--surface2)}` dung DUNG MOT MAU. Hau qua:
     · hang le (nen trang) -> vien code hien thanh mot khoi xam noi bat
     · hang chan (nen xam) -> vien code tan vao nen, mat hut
   Nhin doc bang thay cho xam cho trang lam lo, khong ra hang loi.

   Cach sua: trong bang thi soc hang LA nguon mau duy nhat; <code> de trong suot, chi giu chu
   mono + dam. Chu `code` ngoai bang (trong doan van) GIU NGUYEN vien pill — do la cho no can
   noi bat.
   ⛔ Khong doi padding khi hover: doi padding lam xe dich bo cuc ca hang. Chi doi MAU CHU. */
.cfgt code, .cmdt code,
.infobox td > code,
.modbody table code, .gbody table code, article > table code {
  background: transparent; padding: 0; border-radius: 0}
.cfgt td:first-child > code, .cmdt td:first-child, .cmdt td:first-child > code {
  cursor: pointer; transition: color .14s ease}
.cfgt td:first-child > code:hover, .cmdt td:first-child:hover,
.cmdt td:first-child > code:hover { color: var(--accent)}

/* Vach hang ro hon mot chut de khong phai dua vao mau nen moi phan biet duoc hang */
.cfgt tbody td, .cmdt tbody td { border-top: 1px solid var(--line)}
.cfgt tr.cfgsec td { border-top: 0}

/* ── 33. Muc luc cot phai: CAY LONG NHAU, nhom in dam, muc con thut vao ─────────
   User 06/10: "Cot sidebar nay markup lai. Thut lui vao neu o dang cay. In dam danh muc de
   phan biet duoc voi danh muc cha con."

   Markup moi (do `chuan_hoa_cot_phai.py` sinh):
     <li class="wgroup"><span class="wglabel">Content</span>
       <ul class="wsub"><li><a …><b>Items</b><em>111</em></a></li>…</ul></li>

   ⛔ `li.wgroup` gio BOC ca danh sach con, nen moi padding/font cu phai chuyen sang `.wglabel`
      — de nguyen o `li.wgroup` thi ca nhanh con bi thut va thu nho theo. */
#rsidebar .net-list li.wgroup,
.net-list li.wgroup { padding: 0; font: inherit; letter-spacing: normal;
  text-transform: none; color: inherit; border: 0; cursor: default}
#rsidebar .net-list .wglabel,
.net-list .wglabel { display: block; padding: 16px 8px 5px;
  font: 700 11px/1.3 var(--sans); letter-spacing: .07em; text-transform: uppercase;
  color: var(--text)}
#rsidebar .net-list li.wgroup:first-child .wglabel { padding-top: 6px}

/* Nhanh con: vach doc mo + thut vao, de nhin ra ngay cai nao thuoc cai nao */
#rsidebar .net-list .wsub,
.net-list .wsub { list-style: none; margin: 2px 0 2px 9px; padding: 0 0 0 10px;
  border-left: 1px solid var(--line)}
#rsidebar .net-list .wsub > li { list-style: none; border-top: 0}
#rsidebar .widget .net-list .wsub > li > a > b { font-weight: 400}

@media (max-width: 760px) {
  #rsidebar .net-list .wsub, .net-list .wsub { margin-left: 7px; padding-left: 8px}
  #rsidebar .net-list .wglabel, .net-list .wglabel { padding-top: 13px}
}

/* ── 34. Nut "Download" dan ve bai goc tren 9Minecraft (duoi cung cot phai) ─────
   User 06/10: "Cho them 1 button dan nguoc lai bai viet goc de tai file cua moi wiki.
   Dat o duoi cung cua rightsidebar." */
#rsidebar .widget.wdl { padding: 0; overflow: hidden}
#rsidebar .dlgoc { display: block; padding: 14px 16px 12px; text-decoration: none;
  background: var(--accent); color: var(--on-accent);
  transition: filter .16s ease, box-shadow .16s ease}
#rsidebar .dlgoc:hover { text-decoration: none; filter: brightness(1.06);
  box-shadow: 0 1px 3px rgba(60,64,67,.3), 0 4px 8px 3px rgba(60,64,67,.15)}
#rsidebar .dlgoc-t { display: block; font: 700 11px/1.3 var(--sans);
  letter-spacing: .09em; text-transform: uppercase; opacity: .88}
#rsidebar .dlgoc-n { display: block; margin-top: 2px; font: 600 15px/1.35 var(--sans);
  overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical}
#rsidebar .widget.wdl .dlgoc-s { margin: 0; padding: 9px 16px 11px;
  font: 400 12px/1.45 var(--sans); color: var(--muted); background: var(--surface)}
@media (max-width: 760px) {
  #rsidebar .dlgoc { padding: 12px 14px 10px}
  #rsidebar .dlgoc-n { font-size: 14.5px}
}

/* ═══ TRANG CHỦ: thanh đầu trang khi THU GỌN (cuộn xuống) ════════════════════════════════════
   ⛔ Bộ luật `:root.mcw-shrunk body:has(.mw-hero) …` ở trên lật CẢ viên thuốc sang bảng màu
      SÁNG ngay khi cuộn: `.twrap` nhận `var(--surface)` = #ffffff. Trang chủ phủ ảnh Minecraft
      tối nên cuộn xuống là hiện một dải TRẮNG CHÓI nằm trên nền tối — đúng lỗi user báo 08/10.
      Đo bằng điểm ảnh thật, không bằng cảm giác: cuộn 0 → (82,85,91); cuộn 1200 → (255,255,255).
   ⛔ Bộ luật đó còn BỎ SÓT `.search .kinh`: kính lúp giữ `rgba(255,255,255,.72)` trong khi ô
      tìm kiếm đã đổi sang `--surface2` (#f1f3f4) → trắng trên xám nhạt, nút biến mất hẳn.
   ⛔ Phải giữ nguyên dạng chọn `:root.mcw-shrunk body:has(.mw-hero) X` (hạng 0,4,1) và đặt SAU.
      Viết gọn thành `body:has(.mw-hero) .twrap` chỉ được (0,2,1) → thua, sửa xong vẫn trắng.
   ⛔ Nền ĐẶC chứ không trong suốt 8% như lúc chưa cuộn: khi cuộn, phía sau viên thuốc là lưới
      thẻ đang chạy qua; để trong suốt thì chữ chồng lên thẻ, không đọc được. */
:root.mcw-shrunk body:has(.mw-hero) .twrap {
  background: #141a23;
  border-color: rgba(255, 255, 255, .14);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .45), 0 2px 10px 2px rgba(0, 0, 0, .3);
}
:root.mcw-shrunk body:has(.mw-hero) .wikiname a,
:root.mcw-shrunk body:has(.mw-hero) .mw-burger,
:root.mcw-shrunk body:has(.mw-hero) .tbtn { color: #fff; background: transparent; }
:root.mcw-shrunk body:has(.mw-hero) .tbtn {
  background: rgba(255, 255, 255, .12);
  border-color: rgba(255, 255, 255, .16);
}
:root.mcw-shrunk body:has(.mw-hero) .twrap .search input {
  background: rgba(255, 255, 255, .1);
  border-color: rgba(255, 255, 255, .18);
  color: #fff;
}
:root.mcw-shrunk body:has(.mw-hero) .twrap .search input::placeholder {
  color: rgba(255, 255, 255, .6);
}
:root.mcw-shrunk body:has(.mw-hero) .search .kinh { color: rgba(255, 255, 255, .72); }
:root.mcw-shrunk body:has(.mw-hero) .search .kinh:hover {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}

/* ═══ Bảng LỆNH / CẤU HÌNH trên mobile: NGẮT DÒNG thay vì cuộn ngang (user 10/10) ═══
   Quy tắc chung ở trên cho `article>table` dùng `white-space:nowrap` + `overflow-x:auto`
   để bảng nhiều cột cuộn được. Với `.cmdt`/`.cfgt` thì hỏng: nội dung là MỘT chuỗi dài liền
   (`/function frostfire_dragon:dragon_ability/...` 100 ký tự) nên không cuộn tới đâu, chỉ
   thấy chữ bị cắt cụt và mỗi hàng mọc một thanh cuộn tí hon.
   ⛔ Phải gỡ `nowrap`; thêm `overflow-wrap` không ăn thua vì `nowrap` thắng nó. */
@media (max-width:760px){
  .modbody table.cmdt,.gbody table.cmdt,article>table.cmdt,
  .modbody table.cfgt,.gbody table.cfgt,article>table.cfgt{
    display:block;overflow-x:visible;white-space:normal}
  article>table.cmdt td,article>table.cfgt td,
  .modbody table.cmdt td,.modbody table.cfgt td,
  .gbody table.cmdt td,.gbody table.cfgt td{white-space:normal}
  .cmdt code,.cfgt code{
    display:block;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;
    max-width:100%;line-height:1.5}
}

/* ── "You May Also Like" — khoi lien quan nhieu the (10/10/2026) ──────────────────
   Theo dung cau truc khoi cung ten tren 9minecraft.net: dau muc + dai the vien thuoc,
   duoi moi the mot dong phu giai thich vi sao goi y nhom nay.
   Dung dung bo bien mau cua wiki (--surface / --surface2 / --line / --accent). */
.rl9{margin:0 0 18px}
.rl-tabs{display:flex;align-items:center;gap:2px;flex-wrap:wrap;background:var(--surface2);
 border-radius:999px;padding:4px;margin:0 0 12px}
.rl-tab{appearance:none;border:0;cursor:pointer;background:transparent;color:var(--muted);
 border-radius:999px;padding:8px 16px;white-space:nowrap;
 font:500 13.5px/1.3 var(--sans);transition:background .15s,color .15s,box-shadow .15s}
.rl-tab:hover{color:var(--text)}
.rl-tab.on{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow)}
.rl-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rl-p[hidden]{display:none}
.rl9 .src{display:block;margin:0 0 10px;font-size:13.5px;opacity:1;color:var(--muted)}
.rl9 .gguide{margin-top:0}
/* ⛔ `<h2 id="related">` co `border-bottom` theo luat h2 chung cua wiki; dai the nam ngay
   duoi nen phai co khoang tho, neu khong duong ke dinh vao vien thuoc. */
h2#related{margin-bottom:.7em}
@media(max-width:720px){
  /* ⛔ Dai the tren dien thoai phai cuon NGANG chu khong xuong dong: nam the xep ba hang
     thi phan dau khoi cao hon ca mot the wiki, nguoi doc phai cuon qua moi thay noi dung. */
  .rl-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
   -webkit-overflow-scrolling:touch;justify-content:flex-start}
  .rl-tabs::-webkit-scrollbar{display:none}
  .rl-tab{padding:8px 14px;font-size:13px}
}

/* ══════════════════════════════════════════════════════════════════════════════
 * Ô TÌM MOBILE: MỞ THÀNH KHAY DƯỚI HEADER, KÍNH LÚP Ở LẠI TRÊN HEADER
 *
 * Chủ site 11/10/2026: *"Tất cả search icon trên mobile của các sub >> làm giống sub
 * servers >> khi bấm vào search thì hiển thị search box bên dưới, giữ nguyên icon search
 * ở header bên trên. Như trang wiki khi bấm search thì mất icon search bên trên header."*
 *
 * ## Trước đây sai ở đâu
 * `.twrap` (viên thuốc của header) đặt `flex-wrap: wrap`, và khi mở tìm kiếm thì
 * `body.mcw-tim .search { order: 9; flex: 1 1 100% }` làm **cả cụm `.search` rơi xuống
 * hàng hai NGAY BÊN TRONG viên thuốc** — mà nút kính lúp `#mcw-kinh` là con của `.search`
 * nên nó **đi xuống theo**. Nhìn ra: icon kính lúp biến mất khỏi header.
 * Đo máy không bắt được: nút vẫn `display:flex`, vẫn có kích thước, `querySelector` vẫn
 * thấy — chỉ là nó không còn ở hàng header nữa.
 *
 * ## Cách làm đúng (giống `servers`)
 * Giữ `.search` nguyên chỗ ở hàng một ⇒ kính lúp Ở LẠI. Chỉ đưa Ô NHẬP (và nút ✕, khung
 * kết quả) ra khỏi dòng chảy, neo tuyệt đối NGAY DƯỚI viên thuốc.
 *
 * ⛔ Phải cho `.search` về `position: static` khi đang mở: `#q`, `.dong-tim`, `#mcw-res`
 *    đều `position:absolute`, mà `.search` lúc đóng là `position:relative` và chỉ rộng
 *    ~68px — neo vào nó thì khay chỉ rộng bằng cái nút.
 * ⛔ `.twrap` phải `position: relative` để làm mốc neo; nó không có `overflow:hidden` nên
 *    khay thò ra ngoài viên thuốc được.
 * ⛔ Bỏ `::after` chèn chỗ của bản cũ: nó sinh ra để giữ logo cân khi `.search` rơi xuống
 *    hàng hai. Nay `.search` không rơi nữa, để lại là thừa một ô trống trong header.
 * ⛔ `font-size` phải **16px**: dưới ngưỡng đó iOS tự phóng to cả trang khi chạm vào ô.
 * ⛔ Nền phải ĐẶC (`--surface`): trang chủ có `.mw-hero`, ở đó `.search input` được đặt nền
 *    trắng mờ 10% — nổi trên ảnh hero thì không đọc được chữ.
 * ⛔ Bỏ `padding-left: 40px` của luật gốc: khoảng đó chừa cho kính lúp nằm đè lên ô, mà nay
 *    kính lúp ở trên header rồi — để nguyên thì chữ thụt vào một quãng trống vô cớ.
 * ══════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 860px) {
  .twrap { position: relative; }

  /* hàng một giữ nguyên: burger · logo · KÍNH LÚP · nút sáng/tối */
  body.mcw-tim .twrap::after { content: none; }
  body.mcw-tim .search {
    order: 4;
    flex: 0 0 var(--mw-canh);
    justify-content: flex-end;
    margin-top: 0;
    position: static;
  }

  /* khay: ô nhập neo ngay dưới viên thuốc, rộng hết bề ngang */
  body.mcw-tim .twrap .search input {
    display: block;
    position: absolute;
    left: 0; right: 0; top: calc(100% + 8px);
    width: auto; height: 46px;
    padding-left: 16px !important;
    padding-right: 48px !important;
    font-size: 16px !important;
    background: var(--surface) !important;
    color: var(--text) !important;
    border: 1px solid var(--line) !important;
    border-radius: 999px;
    box-shadow: var(--shadow-h);
    z-index: 30;
  }
  body.mcw-tim .twrap .search input::placeholder { color: var(--muted) !important; }

  body.mcw-tim .twrap .search .dong-tim {
    position: absolute;
    top: calc(100% + 8px); right: 6px; left: auto;
    transform: none;
    width: 40px; height: 46px;
    z-index: 31;
  }

  /* khung kết quả rơi xuống dưới khay, không đè lên nó */
  body.mcw-tim #mcw-res { top: calc(100% + 62px); }
}

/* ══════════════════════════════════════════════════════════════════════════════
 * Ô TÌM MOBILE: MỞ THÀNH KHAY DƯỚI HEADER, KÍNH LÚP Ở LẠI TRÊN HEADER
 *
 * Chủ site 11/10/2026: *"Tất cả search icon trên mobile của các sub >> làm giống sub
 * servers >> khi bấm vào search thì hiển thị search box bên dưới, giữ nguyên icon search
 * ở header bên trên. Như trang wiki khi bấm search thì mất icon search bên trên header."*
 *
 * ## Trước đây sai ở đâu
 * `.twrap` (viên thuốc của header) đặt `flex-wrap: wrap`, và khi mở tìm kiếm thì
 * `body.mcw-tim .search { order: 9; flex: 1 1 100% }` làm **cả cụm `.search` rơi xuống
 * hàng hai NGAY BÊN TRONG viên thuốc** — mà nút kính lúp `#mcw-kinh` là con của `.search`
 * nên nó **đi xuống theo**. Nhìn ra: icon kính lúp biến mất khỏi header.
 * Đo máy không bắt được: nút vẫn `display:flex`, vẫn có kích thước, `querySelector` vẫn
 * thấy — chỉ là nó không còn ở hàng header nữa.
 *
 * ## Cách làm đúng (giống `servers`)
 * Giữ `.search` nguyên chỗ ở hàng một ⇒ kính lúp Ở LẠI. Chỉ đưa Ô NHẬP (và nút ✕, khung
 * kết quả) ra khỏi dòng chảy, neo tuyệt đối NGAY DƯỚI viên thuốc.
 *
 * ⛔ Phải cho `.search` về `position: static` khi đang mở: `#q`, `.dong-tim`, `#mcw-res`
 *    đều `position:absolute`, mà `.search` lúc đóng là `position:relative` và chỉ rộng
 *    ~68px — neo vào nó thì khay chỉ rộng bằng cái nút.
 * ⛔ `.twrap` phải `position: relative` để làm mốc neo; nó không có `overflow:hidden` nên
 *    khay thò ra ngoài viên thuốc được.
 * ⛔ Bỏ `::after` chèn chỗ của bản cũ: nó sinh ra để giữ logo cân khi `.search` rơi xuống
 *    hàng hai. Nay `.search` không rơi nữa, để lại là thừa một ô trống trong header.
 * ⛔ `font-size` phải **16px**: dưới ngưỡng đó iOS tự phóng to cả trang khi chạm vào ô.
 * ⛔ Nền phải ĐẶC (`--surface`): trang chủ có `.mw-hero`, ở đó `.search input` được đặt nền
 *    trắng mờ 10% — nổi trên ảnh hero thì không đọc được chữ.
 * ⛔ Bỏ `padding-left: 40px` của luật gốc: khoảng đó chừa cho kính lúp nằm đè lên ô, mà nay
 *    kính lúp ở trên header rồi — để nguyên thì chữ thụt vào một quãng trống vô cớ.
 * ══════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 860px) {
  .twrap { position: relative; }

  /* hàng một giữ nguyên: burger · logo · KÍNH LÚP · nút sáng/tối */
  body.mcw-tim .twrap::after { content: none; }
  /* ⛔ Phai khoa dung 48px — BANG be ngang luc DONG (mau `mcsearch` ep
     `body:not(.mcw-tim) .twrap .search{flex:0 0 48px!important}`). Dung `var(--mw-canh)`
     thi o breakpoint nay no la 80px: cum `.search` phinh them 32px, day nut sang/toi lui
     sang trai, ma `a.brand` lai `position:absolute` can giua ca `.twrap` nen LOGO DE LEN
     NUT SANG/TOI. Da do: dong `.search` x=328 w=48 / mo `.search` x=296 w=80, nut sang/toi
     tu x=288 lui ve x=256 trong khi logo keo dai den x=282.
     Co `!important` vi luat cua mau cung dung `!important`, de hai ben cung hang. */
  body.mcw-tim .twrap .search {
    order: 4;
    flex: 0 0 48px !important;
    min-width: 0 !important;
    justify-content: flex-end;
    margin-top: 0;
    position: static;
  }

  /* khay: ô nhập neo ngay dưới viên thuốc, rộng hết bề ngang */
  body.mcw-tim .twrap .search input {
    display: block;
    position: absolute;
    left: 0; right: 0; top: calc(100% + 8px);
    width: auto; height: 46px;
    padding-left: 16px !important;
    padding-right: 48px !important;
    font-size: 16px !important;
    background: var(--surface) !important;
    color: var(--text) !important;
    border: 1px solid var(--line) !important;
    border-radius: 999px;
    box-shadow: var(--shadow-h);
    z-index: 30;
  }
  body.mcw-tim .twrap .search input::placeholder { color: var(--muted) !important; }

  body.mcw-tim .twrap .search .dong-tim {
    position: absolute;
    top: calc(100% + 8px); right: 6px; left: auto;
    transform: none;
    width: 40px; height: 46px;
    z-index: 31;
  }

  /* khung kết quả rơi xuống dưới khay, không đè lên nó */
  body.mcw-tim #mcw-res { top: calc(100% + 62px); }
}

/* ══════════════════════════════════════════════════════════════════════════════
 * Ô TÌM MOBILE: MỞ THÀNH KHAY DƯỚI HEADER, KÍNH LÚP Ở LẠI TRÊN HEADER
 *
 * Chủ site 11/10/2026: *"Tất cả search icon trên mobile của các sub >> làm giống sub
 * servers >> khi bấm vào search thì hiển thị search box bên dưới, giữ nguyên icon search
 * ở header bên trên. Như trang wiki khi bấm search thì mất icon search bên trên header."*
 *
 * ## Trước đây sai ở đâu
 * `.twrap` (viên thuốc của header) đặt `flex-wrap: wrap`, và khi mở tìm kiếm thì
 * `body.mcw-tim .search { order: 9; flex: 1 1 100% }` làm **cả cụm `.search` rơi xuống
 * hàng hai NGAY BÊN TRONG viên thuốc** — mà nút kính lúp `#mcw-kinh` là con của `.search`
 * nên nó **đi xuống theo**. Nhìn ra: icon kính lúp biến mất khỏi header.
 * Đo máy không bắt được: nút vẫn `display:flex`, vẫn có kích thước, `querySelector` vẫn
 * thấy — chỉ là nó không còn ở hàng header nữa.
 *
 * ## Cách làm đúng (giống `servers`)
 * Giữ `.search` nguyên chỗ ở hàng một ⇒ kính lúp Ở LẠI. Chỉ đưa Ô NHẬP (và nút ✕, khung
 * kết quả) ra khỏi dòng chảy, neo tuyệt đối NGAY DƯỚI viên thuốc.
 *
 * ⛔ Phải cho `.search` về `position: static` khi đang mở: `#q`, `.dong-tim`, `#mcw-res`
 *    đều `position:absolute`, mà `.search` lúc đóng là `position:relative` và chỉ rộng
 *    ~68px — neo vào nó thì khay chỉ rộng bằng cái nút.
 * ⛔ `.twrap` phải `position: relative` để làm mốc neo; nó không có `overflow:hidden` nên
 *    khay thò ra ngoài viên thuốc được.
 * ⛔ Bỏ `::after` chèn chỗ của bản cũ: nó sinh ra để giữ logo cân khi `.search` rơi xuống
 *    hàng hai. Nay `.search` không rơi nữa, để lại là thừa một ô trống trong header.
 * ⛔ `font-size` phải **16px**: dưới ngưỡng đó iOS tự phóng to cả trang khi chạm vào ô.
 * ⛔ Nền phải ĐẶC (`--surface`): trang chủ có `.mw-hero`, ở đó `.search input` được đặt nền
 *    trắng mờ 10% — nổi trên ảnh hero thì không đọc được chữ.
 * ⛔ Bỏ `padding-left: 40px` của luật gốc: khoảng đó chừa cho kính lúp nằm đè lên ô, mà nay
 *    kính lúp ở trên header rồi — để nguyên thì chữ thụt vào một quãng trống vô cớ.
 * ══════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 860px) {
  .twrap { position: relative; }

  /* hàng một giữ nguyên: burger · logo · KÍNH LÚP · nút sáng/tối */
  body.mcw-tim .twrap::after { content: none; }
  /* ⛔ Phai khoa dung 48px — BANG be ngang luc DONG (mau `mcsearch` ep
     `body:not(.mcw-tim) .twrap .search{flex:0 0 48px!important}`). Dung `var(--mw-canh)`
     thi o breakpoint nay no la 80px: cum `.search` phinh them 32px, day nut sang/toi lui
     sang trai, ma `a.brand` lai `position:absolute` can giua ca `.twrap` nen LOGO DE LEN
     NUT SANG/TOI. Da do: dong `.search` x=328 w=48 / mo `.search` x=296 w=80, nut sang/toi
     tu x=288 lui ve x=256 trong khi logo keo dai den x=282.
     Co `!important` vi luat cua mau cung dung `!important`, de hai ben cung hang. */
  body.mcw-tim .twrap .search {
    order: 4;
    flex: 0 0 48px !important;
    min-width: 0 !important;
    justify-content: flex-end;
    margin-top: 0;
    position: static;
  }

  /* ⛔ Khi MỞ, một luật khác đặt `.kinh { position:absolute; left:4px; top:50% }` —
     lúc `.search` còn `position:relative` thì nó neo vào `.search` nên vẫn đúng chỗ.
     Nay `.search` đã `static` (để khay neo vào `.twrap`), cái absolute đó neo vọt lên
     `.twrap` và NHẢY VỀ SÁT MÉP TRÁI — đè lên nút burger. Đo được: đóng kính=x328
     static; mở kính=x12 absolute left:4px.
     Ép về `static` thì kính lúp ở nguyên chỗ cũ, và `.search` cũng lấy lại chiều cao 48
     (khi chỉ còn phần tử absolute, `.search` cao 0 => header giật từ 56 xuống 48). */
  body.mcw-tim .twrap .search .kinh {
    position: static !important;
    transform: none !important;
    left: auto !important;
    top: auto !important;
  }

  /* khay: ô nhập neo ngay dưới viên thuốc, rộng hết bề ngang */
  body.mcw-tim .twrap .search input {
    display: block;
    position: absolute;
    left: 0; right: 0; top: calc(100% + 8px);
    width: auto; height: 46px;
    padding-left: 16px !important;
    padding-right: 48px !important;
    font-size: 16px !important;
    background: var(--surface) !important;
    color: var(--text) !important;
    border: 1px solid var(--line) !important;
    border-radius: 999px;
    box-shadow: var(--shadow-h);
    z-index: 30;
  }
  body.mcw-tim .twrap .search input::placeholder { color: var(--muted) !important; }

  body.mcw-tim .twrap .search .dong-tim {
    position: absolute;
    top: calc(100% + 8px); right: 6px; left: auto;
    transform: none;
    width: 40px; height: 46px;
    z-index: 31;
  }

  /* khung kết quả rơi xuống dưới khay, không đè lên nó */
  body.mcw-tim #mcw-res { top: calc(100% + 62px); }
}

/* ⛔ Nut gap phai hien tren thiet bi KHONG co hover (laptop cam ung, tablet nam ngang).
   Truoc day `.mw-tog{display:none}` o >=760px va nhanh con chi mo bang `:hover`, nen
   tren nhung may do khong co cach nao mo duoc menu cap 2 / cap 3. */
@media (hover: none) {
  .mw-tog { display: inline-flex; align-items: center; justify-content: center;
            flex: 0 0 auto; width: 40px; height: 40px;
            border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
}

/*n9:menu-thoang:dau*/
/* ═════════ MENU theo mau www.9minecraft.net (do that 19/10, ca 2 che do) ═════════ */

/* ⛔⛔ HAI LUAT HI SINH — xem giai thich day du trong `_menu_thoang_ylist.py`.
   Tom tat: mot `*\/` mo coi o tep CSS goc lam trinh duyet an MOT luat ngay sau no. Da dinh
   that o tools. De san hai luat rong o dau khoi thi luat that khong bao gio la nan nhan. */
.n9-moc-dau-1 { --n9-moc: 1; }
.n9-moc-dau-2 { --n9-moc: 2; }

/* ⛔ BO HET SO BAI. Chu site 19/10: *"Bo het so bai di cho thoang"*.
   Giau bang CSS, khong go markup: `header.html` la tep SSI dung chung cho 10.846 trang va
   con so van co ich cho may doc man hinh. */
.mw-so { display: none !important; }
/* bedrock-wiki khong boc so trong `<span class="mw-so">` — chu "&mdash; 3 wikis" nam
   THANG trong chu cua lien ket, nen CSS khong voi toi. Kich ban xa boc lai giup. */

/* ───── Cap 1: chu to, dam net, hang cao 50px ───── */
.mw-list { padding: 4px 10px 12px; }
.mw-list > li + li { margin-top: 2px; }
.mw-list > li > a {
  font-size: 16.5px; font-weight: 600; line-height: 1.3;
  padding: 13px 16px; min-height: 50px; gap: 10px;
  color: var(--text, #202124); letter-spacing: -.1px;
}
.mw-has > a { display: flex; align-items: center; }
.mw-has > a > b { font-weight: 600; flex: 0 1 auto; min-width: 0; }
.mw-has > a::after { margin-left: auto; font-size: 20px; }

/* ═════════ O TIM KIEM: bo nut X de len nut mui ten xanh ═════════
   Chu site 19/10: *"Nut X bi trung voi nut Mui ten xanh"*. Wiki dinh HAI lan:
   1. nut xoa `::-webkit-search-cancel-button` cua trinh duyet o sat le phai trong o;
   2. nut rieng `.dong-tim` cua wiki dat `position:absolute` o x=1063 w=30, trong khi
      `.n9-go` o x=1056 w=36 — **chong gan nhu hoan toan**. Do that tren man 1280.
   ⇒ Tat nut cua trinh duyet, va day `.dong-tim` sang trai cho nut mui ten o man rong.
   (Duoi 992px `.n9-go` da bi an san nen `.dong-tim` giu nguyen cho cu.) */
.topbar .search input[type="search"]::-webkit-search-cancel-button,
.topbar .search input[type="search"]::-webkit-search-decoration,
form.hs input[type="search"]::-webkit-search-cancel-button,
form.hs input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; appearance: none; display: none;
}
@media (min-width: 992px) {
  .topbar .search .dong-tim { right: 50px; }
}
/* ⛔⛔ wiki (va bedrock-wiki) co SAN mot bang goi y RIENG — `div.sres` trong chinh o tim —
   ngoai bang dung chung `.n9-gy` cua mang luoi. Go mot tu khoa thi CA HAI cung bung, xep
   chong nhau thanh hai danh sach lien tiep. Chi lo ra khi chup anh that co go chu; do CSS
   suong khong thay vi `.sres` rong thi cao 0.
   Ban rieng con kem chinh xac hon: tren bedrock-wiki no bao "No matches" trong khi bang
   chung ra 3 ket qua dung.
   ⛔ `.sres` CHI nam trong o tim o header (`div.topbar > div.twrap > span.search`), khong
      dung o trang `/search/` — da kiem: o do no cao 0 va khong con nao. Nen an duoc. */
.topbar .search .sres { display: none !important; }

/* ═════════ ĐẢO BỐ CỤC: bài sang TRÁI, sidebar sang PHẢI ═════════
   Chu site 20/10: *"Bay gio dao nguoc lai cho thuan mat: Noi dung chinh sang ben trai,
   con left sidebar >> Doi thanh right sidebar"*.
   Markup cua 168.495 trang viet theo thu tu `.b__main` roi `#rsidebar`, nen dao ben chi la
   chuyen cua `grid-column` — khong dung toi mot tep HTML nao.
   ⛔ Phai giu `grid-row: 1` cho CA HAI. Thieu no thi trinh duyet xep chung vao hai HANG
      khac nhau (vi thu tu trong HTML la main truoc) => bai nam tren, sidebar nam duoi.
      Canh bao nay da co san trong CSS goc va van dung nguyen.
   ⛔ Chi doi tu 992px tro len. Duoi muc do luoi von mot cot, va khi mot cot thi DIEU HUONG
      phai nam DUOI bai — day no len la moi lan mo trang tren dien thoai deu phai cuon qua
      ca cot dieu huong moi toi noi dung. */
@media (min-width: 992px) {
  .b__grid { grid-template-columns: minmax(0, 1fr) 300px; }
  .b__grid > .b__main { grid-column: 1; grid-row: 1; }
  .b__grid > #rsidebar { grid-column: 2; grid-row: 1; }
}

/* ═════════ BO DONG URL duoi tieu de ═════════
   Chu site 20/10: *"O header bo wiki.9minecraft.net/ftb-library-mod/ di"*.
   Do la `div.iid` (font chu may danh, mau xam) nam ngay duoi `<h1>`. An bang CSS chu khong
   go markup: go thi phai sua 10.834 tep, ma chuoi do khong hai gi khi an. */
.iid, .hero .iid { display: none !important; }

/* ═════════ BREADCRUMB theo mau www — giong cac sub da trien khai ═════════
   Chu site 20/10: *"Breadcrumb lam giong style site 9minecraft goc. Giong cac sub kia da
   trien khai"*. So do lay tu www (`#breadcrumbs`) va doi chieu voi skins/litematica —
   ba noi deu y het: nen #f8fafc · vien 1px #e2e8f0 · bo 8px · dem 10px 14px · le 18px 0 16px
   · Roboto 14px #64748b · lien ket #2563eb dam 500 · cao 43px.
   ⛔ Bo luat dung chung viet cho `#breadcrumbs, p.crumb, nav.crumb` — wiki la `div.crumb`
      nen KHONG khop cai nao. Day chinh la ly do rieng wiki van mang kieu cu (13px, trong
      suot, lien ket mau xam). Phai khai them `div.crumb`.
   ⛔⛔ Dau phan cach cua wiki la entity `&rsaquo;` nam TRAN trong van ban (`<a>…</a>
      &rsaquo; <a>…</a>`), khong boc trong `<i>` nhu cac sub — nen khong mot bo chon nao
      voi toi duoc. Ghi lai 704.354 tep chi de doi mot ky tu la khong dang, nhat la ngay
      sau mot lan may sap. Cach khong dung toi HTML nao:
        · `font-size:0` cho ca khung  → trong mot khung flex, moi NUT VAN BAN TRAN deu
          thanh mot "muc flex vo danh", nen dau `›` goc thu ve 0 va bien mat;
        · tra lai `font-size:14px` cho cac phan tu con (a, span) → chu van doc duoc;
        · ve lai `»` bang `a + a::before` — bo chon anh em BO QUA nut van ban, nen van
          nhan dung cac cap lien tiep.
   ⛔⛔ PHAI viet HAI gach cheo o `\00BB`: khoi CSS nay nam trong chuoi Python thuong
      (khong phai raw), ma mot gach cheo roi so khong trong Python la ky tu NUL — viet mot
      gach thi trinh duyet ve ra hinh thoi + "0BB" thay vi `»`, khong canh bao nao. */
div.crumb {
  box-sizing: border-box; display: flex; flex-wrap: wrap; align-items: center;
  gap: 0 6px; margin: 18px 0 16px; padding: 10px 14px;
  background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px;
  font-family: Roboto, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  font-size: 0; line-height: 1.5; color: #64748b;
}
div.crumb > * { font-size: 14px; line-height: 1.5; }
div.crumb a { color: #2563eb; font-weight: 500; text-decoration: none; }
div.crumb a:hover { color: #1d4ed8; text-decoration: underline; }
div.crumb span, div.crumb [aria-current], div.crumb span:last-child {
  color: #64748b; font-weight: 400;
}
div.crumb > a + a::before, div.crumb > a + span::before,
div.crumb > span + a::before, div.crumb > a + b::before {
  content: "\00BB"; margin-right: 6px; color: #64748b; font-weight: 400;
}
/* ⛔ Chu site 20/10 (vong 2): *"cho tach biet la khung rieng, tach voi khung content ben
   duoi"*. Breadcrumb cua wiki nam BEN TRONG `<article>` — the trang nen trang, bo 18px, co
   do bong — nen nhin ra la hop long hop. Tren www va skins thi moi to tien cua breadcrumb
   deu TRONG SUOT: no la mot khung dung rieng.
   `_va_crumb_wiki.py` doi no ra lam anh em cua `<article>`; luat duoi day lo phan khoang
   cach de hai khung tach han nhau. Khong co le TREN vi `.b__inner` da co dem san. */
.b__main > div.crumb { margin: 0 0 14px; }

/* ═════════ THANH SO LIEU duoi tieu de — mau `.single-meta-strip` cua www ═════════
   Chu site 20/10: *"So view, So comment de ben tren duoi ten bai giong 9minecraft goc.
   Click vao so comment thi nhay xuong phan comment. Trang tri vao cho dep."*
   Do that tren www: thanh nen rgba(127,127,127,.06) · vien 1px rgba(127,127,127,.16) ·
   bo 10px · dem 12px 14px · le 10px 0 16px · flex gap 8px;
   moi vien thuoc: nen trang · vien 1px #e2e8f0 · bo 999px · dem 6px 14px · cao 38px ·
   chu 17px/700 #0f172a; rieng SO luot xem mau do sam #8b1a1a. */
.w9meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin: 10px 0 16px; padding: 12px 14px;
  background: rgba(127, 127, 127, .06);
  border: 1px solid rgba(127, 127, 127, .16);
  border-radius: 10px;
}
.w9meta__o {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; min-height: 38px; box-sizing: border-box;
  background: var(--surface, #fff); border: 1px solid #e2e8f0; border-radius: 999px;
  font-size: 17px; font-weight: 700; line-height: 1.4;
  color: var(--text, #0f172a); text-decoration: none;
}
.w9meta__o svg {
  width: 22px; height: 22px; flex: none;
  fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}
/* ⛔ Icon la texture 16x16 cua game phong to len 22px — phai `pixelated`, neu khong trinh
   duyet lam min va vien pixel nhoe het, nhin ra mot vet mau. */
.w9meta__ic {
  width: 22px; height: 22px; flex: none; display: block;
  image-rendering: pixelated; image-rendering: crisp-edges;
}
.w9meta__xem { color: #8b1a1a; font-weight: 700; }
a.w9meta__o { cursor: pointer; }
a.w9meta__o:hover {
  background: var(--mw-nhan-nhat, #e8f0fe); border-color: transparent;
  color: var(--mw-nhan, #1a73e8); text-decoration: none;
}
[data-theme=dark] .w9meta__o, :root[data-theme="dark"] .w9meta__o {
  border-color: #3c4043;
}
[data-theme=dark] .w9meta__xem, :root[data-theme="dark"] .w9meta__xem { color: #f28b98; }

/* ═════════ RATING + BINH LUAN: chung khung voi than bai ═════════
   Chu site: *"Cho phan Rating, comment len ngay duoi bai viet, cung vao khung cua body
   content. Khong can tach khung rieng o 2 phan nay."* va *"Click to rate this mod >> Khu
   vuc nay cho ra chinh giua man hinh."*
   `_va_bocuc_wiki.py` dua khoi `[data-n9tt]` vao trong `<article>` va gan lop `n9tt--trong`.
   ⛔ `.n9tt-tren` von la MOT THE RIENG (nen trang, vien 1px #e3e3e3, bo 16px) — de nguyen
      thi thanh the long trong the. Lam phang han.
   ⛔ `.n9tt-tren` la `display:flex` voi o luot xem bi day sang phai bang `margin-left:auto`.
      Doi sang `display:block` thi `.r9` (da co `text-align:center`) tu nam giua. */
article .n9tt--trong { max-width: none; margin: 22px 0 0; padding: 0; }
article .n9tt--trong .n9tt-tren {
  display: block; background: none; border: 0; border-radius: 0;
  padding: 0; margin: 0 0 18px;
}
/* so luot xem da chuyen len thanh so lieu — giu lai o day la hien hai cho */
article .n9tt--trong .n9tt-xem { display: none; }
article .n9tt--trong .n9tt-dgo { width: 100%; }

/* "You May Also Like" nay nam DUOI phan binh luan (do JS doi cho) — chua them khoang tho */
article h2#related { margin-top: 26px; }

/* ═════════ MO TA + BANG PROPERTIES cua trang item ═════════
   Sinh boi `wiki9-gen/khuon_mo_ta.py` (khuon ghep, $0) tu du lieu `trich_chi_tiet.py` boc
   trong JAR. Truoc day trang item chi co ~510 ky tu toan cau truc, khong mot cau mo ta. */
.ct-lead {
  margin: 10px 0 16px; font-size: 16px; line-height: 1.65;
  color: var(--text, #202124);
}
.ct-bang td:first-child { white-space: nowrap; }
/* ⛔ Icon la texture 16x16 cua game — PHAI `pixelated`, neu khong phong to len 18px la nhoe. */
.ct-ic {
  width: 18px; height: 18px; margin-right: 8px;
  vertical-align: -4px; image-rendering: pixelated; image-rendering: crisp-edges;
}
/* bieu tuong nha o muc dau — dung `mask` de an theo mau lien ket */
div.crumb a:first-child { display: inline-flex; align-items: center; gap: 5px; }
div.crumb a:first-child::before {
  content: ""; width: 14px; height: 14px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2.1L1 12h3v9h6v-6h4v6h6v-9h3z'/></svg>") center/contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2.1L1 12h3v9h6v-6h4v6h6v-9h3z'/></svg>") center/contain no-repeat;
}
[data-theme=dark] div.crumb, :root[data-theme="dark"] div.crumb {
  background: #1a1f24; border-color: #2a3038; color: #9aa0a6;
}
[data-theme=dark] div.crumb a, :root[data-theme="dark"] div.crumb a { color: #8ab4f8; }
[data-theme=dark] div.crumb > a + a::before,
[data-theme=dark] div.crumb > a + span::before,
:root[data-theme="dark"] div.crumb > a + a::before,
:root[data-theme="dark"] div.crumb > a + span::before { color: #9aa0a6; }

/* ───── Cap 2: nhan nhom (12,5px/700 IN HOA, xam) ───── */
.mw-sub > li.mw-grp > a {
  font-size: 12.5px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase;
  color: var(--muted, #5f6368);
}
/* ⛔ bedrock-wiki chi co HAI cap: `li.mw-grp` o do la LIEN KET DIEU HUONG that, khong phai
   nhan nhom (no khong co `<ul>` con nao). Ap kieu nhan nhom cho no thi ra mot dong chu xam
   ti hon ma van bam duoc — vua xau vua kho bam. `:has(> ul)` tach dung hai truong hop.
   Trinh duyet khong ho tro `:has()` se bo qua luat nay, bedrock-wiki tro ve nhan nho — xau
   nhung khong vo. */
.mw-sub > li.mw-grp:not(:has(> ul)) > a {
  display: flex; align-items: center;
  font-size: 15px; font-weight: 500; letter-spacing: 0; text-transform: none;
  color: var(--text, #3c4043);
  padding: 10px 14px; min-height: 44px; border-radius: 12px;
}
.mw-sub > li.mw-grp:not(:has(> ul)) > a:hover {
  background: var(--mw-nhan-nhat); color: var(--mw-nhan); text-decoration: none;
}

/* ───── Cap 3: THE NHO XEP LIEN MACH — dung mau www ─────
   Chu site 19/10: *"Menu cap 3 la cac the nho xep lien mach giong ben 9minecraft"*.
   Do that tren www: ca desktop (flex/wrap/gap 8px · vien thuoc trang · vien 1px #dadce0
   · 6px 14px · 13,5px/500) lan mobile (gap 6px · cao 34px · 14px/500) deu la VIEN THUOC.
   ⛔ Luot truoc toi ep thanh `grid` o deu nhau de het "thut tho" — sai mau. Thu lam hang
      thut tho la SO BAI chu khong phai flex-wrap; bo so roi thi flex-wrap lai dep. */
.mw-grp > ul {
  display: flex; flex-wrap: wrap; gap: 8px;
  background: transparent; padding: 0; margin: 0 0 6px;
  list-style: none;
}
.mw-grp > ul > li { display: inline-block; margin: 0; list-style: none; }
.mw-grp > ul > li > a {
  display: inline-flex; align-items: center; width: auto; max-width: 100%;
  font-size: 13.5px; font-weight: 500; line-height: 1.3;
  padding: 6px 14px; border-radius: 999px;
  background: var(--surface, #fff);
  border: 1px solid var(--mw-vien);
  color: var(--text, #3c4043);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mw-grp > ul > li > a > b { font-weight: 500; }
.mw-grp > ul > li > a:hover {
  background: var(--mw-nhan-nhat); color: var(--mw-nhan);
  border-color: transparent; text-decoration: none;
}
/* ⛔ `--line` cua wiki la #e4e7eb — qua nhat cho vien 1px tren nen trang (www dung #dadce0).
   Dat bien rieng de khong keo theo moi duong ke khac cua site. */
:root { --mw-vien: rgba(60,64,67,.20); }
[data-theme="dark"] { --mw-vien: rgba(255,255,255,.16); }

/* Khung rong hon cho thoang. Do that: khung wiki 330px, mau www 396px tren man 412px.
   ⛔⛔ PHAI doi `--mw-rail-w`, TUYET DOI khong dat `width` rieng — chinh CSS goc da ghi
      canh bao nay va toi da lam sai mot lan: vi tri luc DONG tinh bang
      `calc(0px - var(--mw-rail-w) - 24px)`, nen dat `width` rieng thi khung rong ra ma
      cho giau van tinh theo so cu => **menu lo ra 72px o canh trai khi chua bam**.
      Chu site bat duoc loi nay. */
.mw-mega { --mw-rail-w: min(396px, 92vw); }

/* ═════════ MOBILE: cap 2+3 boc trong MOT NEN ═════════
   Chu site 19/10: *"Menu cap 2 va 3 boc trong 1 nen de phan biet voi cac Menu cap 1 khac"*.
   Do that tren www: `li.is-open` nen #f8f9fa + bo 16px + inset 0 0 0 1px #e8eaed, phu CA
   hang cap 1 dang mo — do chinh la thu lam no khac han cac muc cap 1 con lai.
   ⛔ Diem ngat phai la 991.98px — dung diem ngat cua khoi "man hep" trong CSS goc (cho
      `.mw-sub` thanh `flex:1 1 100%` + `max-height`). Lay so khac la nen boc va trang thai
      xo doc lech pha nhau.
   ⛔ Dat `padding` cho `.mw-sub` khi DONG la hong: `.mw-sub{max-height:0;overflow:hidden}`
      van ve hop dem, nen moi muc dong phinh them vai pixel. Chi dat cho `.mw-on > .mw-sub`. */
@media (max-width: 991.98px) {
  .mw-list > li.mw-has.mw-on {
    background: var(--surface2, #f1f3f4);
    border-radius: 16px;
    box-shadow: inset 0 0 0 1px var(--line, #e4e7eb);
    margin: 4px 0;
  }
  /* ⛔⛔ MOT MANG NEN DUY NHAT cho ca hang — chu site 19/10 (vong 4): *"Hien tai toi thay
     2 mang mau, mau xanh cua ten va mau xam cua rieng mui ten"*.
     Thu pham la trang thai `:hover` DINH LAI sau khi cham tren man cam ung:
       `.mw-has:hover > a { background: var(--mw-nhan-nhat) }`  → vien thuoc XANH sau chu
       `.mw-tog:hover    { background: rgba(60,64,67,.08) }`    → hinh tron XAM sau mui ten
     www khong co cai nao: `li.is-open` mang MOT nen `#f8f9fa`, con `a` va nut deu trong
     suot. ⇒ tren mobile tat ca hai, de ca hang la mot mang lien. */
  .mw-has > a, .mw-has > a:hover, .mw-has > a:active, .mw-has > a:focus,
  .mw-has.mw-on > a, .mw-has.mw-on > a:hover { background: transparent; }
  .mw-tog, .mw-tog:hover, .mw-tog:active, .mw-tog:focus { background: transparent; }
  /* chu giu mau thuong nhu www; dau hieu "dang mo" la MUI TEN doi mau + xoay */
  .mw-has.mw-on > a { color: var(--text, #202124); }
  .mw-has.mw-on > .mw-tog::before { border-color: var(--mw-nhan, #1a73e8); }

  /* ⛔ XO RA PHAI NHANH — chu site: *"site 9minecraft xo ra rat nhanh gan nhu khong delay"*.
     www khong co hoat canh nao: `ul.sub-menu` chi doi `display:none` ↔ `block`.
     wiki dang chay `max-height 0 → 1600px` trong `.24s ease` — `ease` khoi dong cham nen
     cam giac tre han ngay o dau. Bo hoat canh, va dat `max-height:none` khi mo (gia tri
     1600px con la mot cai bay: menu dai hon the se bi CAT CUT ma khong bao gi). */
  .mw-sub { transition: none; }
  .mw-has.mw-on > .mw-sub { max-height: none; padding: 0 8px 10px; }
  .mw-grp > a { padding: 6px 6px 8px; }
  .mw-grp > ul { gap: 6px; padding: 0 4px; margin: 0 0 8px; }
  .mw-grp > ul > li > a {
    font-size: 14px; min-height: 34px; padding: 0 13px;
  }
}

@media (max-width: 560px) {
  .mw-list > li > a { font-size: 16px; padding: 12px 14px; min-height: 48px; }
}

/* ─────────── Logo header: to bang www, thu nho bang www khi cuon (21/10) ───────────
   Do that tren www: desktop 47,6px → 36px · mobile 36px → 26px.
   Mobile do `--n9tb-logo` trong n9tb.js lo; khoi nay chi lo desktop (>860px). */
@media (min-width: 861px) {
html body header .logo img,
html body header .logoimg,
html body header.top .logo img,
html body header .brand img,
html body .topbar .brand img,
html body .topbar .logo img,
html body .topbar .logoimg {
  height: 47.6px !important;
  max-height: none !important;
  width: auto !important;
  max-width: none !important;
  transition: height .22s ease !important;
}
html.n9-cuon body header .logo img,
html.n9-cuon body header .logoimg,
html.n9-cuon body header.top .logo img,
html.n9-cuon body header .brand img,
html.n9-cuon body .topbar .brand img,
html.n9-cuon body .topbar .logo img,
html.n9-cuon body .topbar .logoimg,
html.is-header-shrunk body header .logo img,
html.is-header-shrunk body header .logoimg,
html.is-header-shrunk body header.top .logo img,
html.is-header-shrunk body header .brand img,
html.is-header-shrunk body .topbar .brand img,
html.is-header-shrunk body .topbar .logo img,
html.is-header-shrunk body .topbar .logoimg,
html.mcs-cuon body header .logo img,
html.mcs-cuon body header .logoimg,
html.mcs-cuon body header.top .logo img,
html.mcs-cuon body header .brand img,
html.mcs-cuon body .topbar .brand img,
html.mcs-cuon body .topbar .logo img,
html.mcs-cuon body .topbar .logoimg {
  height: 36px !important;
  max-height: none !important;
}
}

/* ⛔⛔⛔ HAI LUAT NAY PHAI NAM NGOAI `@media` — da gay loi that tren
   tools.9minecraft.net/mrpack-to-zip/: logo chen bang JS khong co rang buoc kich
   thuoc o DESKTOP nen no ve o CO GOC 2006px, tran ngang ca trang.
   Khung menu la chuyen cua mobile, nen o desktop GIAU han logo chen them. */
html body .n9-mlogo img { height: 28px; width: auto; max-width: 220px; display: block; }
@media (min-width: 861px) { html body .n9-mlogo { display: none !important; } }

/* ─────────── Khung menu mobile: dung bang www (21/10) ─────────── */
@media (max-width: 860px) {
  /* ⛔ `overflow: visible` la thu phap chinh lam khuat phan chan menu — doi thanh `auto`
     thi moi keo xuong het duoc. Kem `-webkit-overflow-scrolling` cho Safari iOS mượt. */
  html body.ymega-open #ymega, html body.ymega-open .ymega, html body.mw-open #mw-mega {
    position: fixed !important;
    top: 8px !important; left: 8px !important; right: 8px !important; bottom: 8px !important;
    width: auto !important; max-width: none !important;
    height: auto !important; max-height: none !important;
    overflow-y: auto !important; overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    border-radius: 24px !important;
    padding-bottom: 14px !important;
    /* ⛔ Khung dat cach dinh 8px nhung thanh header dinh (`.n9tb`, z-index 1200)
       NAM DE LEN, che mat nua tren cua hang logo + nut dong. Nhin anh chup moi
       thay: logo trong menu bi cat ngang. Phai nang len tren header. */
    z-index: 2000 !important;
  }
  html body .ybd, html body #ybd,
  html body .mw-backdrop { z-index: 1999 !important; }

  /* hang dau: nut dong ben TRAI, logo can giua — y khuon www */
  html body #ymega > .dau, html body #ymega > .yhead,
  html body .ymega > .dau, html body .ymega > .yhead,
  html body #mw-mega > .mw-head {
    display: grid !important;
    grid-template-columns: 40px 1fr 40px !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 12px 12px 8px !important;
    min-height: 60px !important;
    border: 0 !important;
  }
  /* chu "Browse" / "Menu" — www khong co, thay bang logo */
  html body #ymega > .dau > b, html body #ymega > .yhead > span,
  html body .ymega > .dau > b, html body .ymega > .yhead > span,
  html body #mw-mega > .mw-head > span { display: none !important; }

  html body #ymega > .dau > button, html body #ymega > .yhead > button,
  html body .ymega > .dau > button, html body .ymega > .yhead > button,
  html body #mw-mega > .mw-head > button {
    grid-column: 1 !important; grid-row: 1 !important;
    justify-self: start !important;
    width: 40px !important; height: 40px !important;
    display: grid !important; place-items: center !important;
    border: 0 !important; border-radius: 50% !important;
    background: rgba(127, 127, 127, .12) !important;
    font-size: 22px !important; line-height: 1 !important;
    padding: 0 !important; margin: 0 !important;
  }
  html body #ymega > .dau > button svg, html body .ymega > .dau > button svg,
  html body #mw-mega > .mw-head > button svg {
    width: 20px !important; height: 20px !important;
  }

  html body .n9-mlogo {
    grid-column: 2 !important; grid-row: 1 !important;
    justify-self: center !important; display: block !important; line-height: 0;
  }
  html body .n9-mlogo img {
    height: 28px !important; width: auto !important; max-width: 220px !important;
    display: block !important;
  }

  /* khu chan menu: them cho tho de keo het duoc den dong ban quyen */
  html body #ymega .n9-cm { margin-bottom: 10px !important; }
}
/*n9:chan-menu-css:dau*/
/* ───── Khu chan menu mobile — mau `.mm-panel__extra` cua www ─────
   ⛔ Moi bo chon deu them `li` / lap lop de MANH hon luat `a`/`li` cua 13 site. Luat
      `.ylist > li > a` cua cac sub la (0,2,1); `.n9-cm__ln a` tran chi (0,1,1) — thua.
   ⛔ `.n9-cm__ln` phai la FLEX COLUMN chu khong phai `display:block` + `a{display:block}`:
      lam theo kieu sau thi phai thang duoc luat `display` cua tung site cho the `a`, con
      flex thi con TU DONG thanh khoi du luat kia noi gi. Trieu chung khi sai: nam lien
      ket dinh lien thanh mot doan "AboutContact UsTerms of Service…". */
li.n9-cm {
  display: block; list-style: none;
  margin: 12px 2px 4px; padding: 18px 16px;
  background: var(--n9cm-nen, #f8f9fa);
  border-radius: 16px;
  box-shadow: inset 0 0 0 1px var(--n9cm-vien, rgba(60,64,67,.12));
  font-size: 14px; font-weight: 400; line-height: 1.55;
  color: var(--n9cm-chu, #374151);
  text-align: left;
}
li.n9-cm * { box-sizing: border-box; }
/* ⛔ Lien ket xep NGANG va CAN GIUA, khong phai mot cot doc. Do that tren www:
   `nav.footer-links` = flex · wrap · justify-content:center · gap 8px 18px · margin 0 0 16px,
   moi `a` la block 14px/600 #1f2937 dem 6px 0. Ba cai dau vua mot hang, cai thu tu xuong
   hang va van nam giua. Ban truoc toi xep mot cot — gon nhung khong giong mau. */
li.n9-cm .n9-cm__ln {
  display: flex; flex-wrap: wrap; flex-direction: row;
  justify-content: center; align-items: baseline;
  gap: 8px 18px; margin: 0 0 16px; padding: 0; text-align: center;
}
li.n9-cm .n9-cm__ln a {
  display: block; width: auto; flex: 0 0 auto;
  padding: 6px 0; margin: 0; border: 0; background: none; border-radius: 0;
  font-size: 14px; font-weight: 600; line-height: 1.6; min-height: 0;
  color: var(--n9cm-dam, #1f2937); text-decoration: none; text-align: center;
}
li.n9-cm .n9-cm__ln a:hover {
  background: none; color: var(--n9cm-nhan, #1a73e8); text-decoration: underline;
}
li.n9-cm p { margin: 0 0 12px; padding: 0; font-size: 13px; line-height: 1.6;
             color: var(--n9cm-nhat, #6b7280); text-align: center; }
li.n9-cm p:last-child { margin-bottom: 0; }
li.n9-cm strong, li.n9-cm b {
  font-weight: 700; color: var(--n9cm-dam, #1f2937);
  background: none; padding: 0; border-radius: 0; font-size: inherit;
}
li.n9-cm u { text-decoration: underline; }
li.n9-cm .n9-cm__cpy a {
  display: inline; padding: 0; color: var(--n9cm-cpy, #d90429);
  font-weight: 600; text-decoration: none;
}
li.n9-cm .n9-cm__cpy a:hover { text-decoration: underline; }
/* khoang tho cuoi menu — dung chu site: *"de co khoang tho khi su dung Menu"* */
li.n9-cm::after { content: ""; display: block; height: 8px; }

/* ⛔ Desktop: `.ylist`/`.mw-list` la rail mega menu, khong phai menu mobile.
   Giong het cach `.n9-hang` tu chan minh. */
@media (min-width: 992px) { li.n9-cm { display: none !important; } }

/* ═════════ THU TU HIEN THI — chot bang CSS, khong tranh nhau bang JS ═════════
   Chu site: khu gioi thieu nam *"ben duoi cung"*, duoi ca hang Universal.
   ⛔ Dat thu tu bang DOM (`appendChild`) la mot cuoc dua khong bao gio thang chac: tren
      `skins` va `litematica`, khoi chen hang Universal chay MUON hon moi nhip thu lai va
      ca bo quan sat 15 giay cua minh, nen no luon duoc noi XUONG DUOI `.n9-cm`. Da sua
      hai lan bang JS, hai lan van hai sub do truot.
   ⇒ Doi sang `order`: danh sach thanh flex column tren mobile, hang Universal `order:90`,
     khu chan `order:99`. Luc nao vao DOM cung duoc, cho dung van la cho do. */
@media (max-width: 991px) {
  .ylist, .mw-list { display: flex; flex-direction: column; }
  .ylist > li, .mw-list > li { order: 0; }
  .ylist > li.n9-hang, .mw-list > li.n9-hang { order: 90; }
  .ylist > li.n9-cm, .mw-list > li.n9-cm { order: 99; }
}

[data-theme=dark], :root[data-theme="dark"] {
  --n9cm-nen: rgba(255,255,255,.05); --n9cm-vien: rgba(255,255,255,.12);
  --n9cm-chu: #c9cdd3; --n9cm-dam: #e8eaed; --n9cm-nhat: #9aa0a6;
  --n9cm-nhan: #8ab4f8; --n9cm-cpy: #f28b98;
}
/*n9:chan-menu-css:cuoi*/
/*n9:menu-thoang:cuoi*/

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */

/* ===== _bocuc_moi.css ===== */
/* ═══ KHUNG THAN BAI BAN MOI — tien to `w-` ═══════════════════════════════════
   ⛔ CHI CONG THEM. Khong sua mot lop cu nao: tep nay dung chung voi 710.000
      trang mod, sua lop cu la ca site doi hinh cung luc.
   Do that de ra cac con so duoi: header sticky cao 70px (z-index 40), thanh phai
   cu sticky o top 90px, `.b__inner` toi da 1280px.
   ════════════════════════════════════════════════════════════════════════════ */

/* Khung ngoai rieng cua ban moi — KHONG dung `.b__inner` (bi chot 1280px) de
   co du cho cho ba cot: 200 muc luc + 870 noi dung + 300 thanh phai.
   ⛔ Chu site 23/10: *"Các trang bên trong cũng full width hết nhé"* — nen bo tran
      1400px. Nhung KHONG tha tu do: tren man 2560 thi mot dong chu dai 2000px khong
      ai doc noi, nen cot muc luc va cot phai no ra truoc, phan chu van giu kho doc. */
.w-wrap{max-width:none;margin:0 auto;padding:10px 16px 28px}
/* ⛔ Nam o cot: `.w-top` (tieu de + doan mo) va `.w-main` (than bai) la HAI o rieng,
   khong phai mot. Co the moi nhet duoc infobox vao GIUA chung tren dien thoai —
   dung thu tu doc cua wiki that: tieu de → doan mo → bang tra cuu → muc luc → than. */
.w-shell{display:grid;gap:0 20px;align-items:start;
         grid-template-columns:minmax(0,1fr) 300px}
.w-top{grid-column:1;grid-row:1;min-width:0}
.w-main{grid-column:1;grid-row:2;min-width:0}
/* ⛔ Cot phai phai la MOT o trai dai hai hang. De infobox rieng o hang 1 thi hang do cao
   bang infobox (520px) trong khi phan mo chi ~360px — thua ra mot khoang trong 160px
   ngay giua bai, dung cai ma chu site bao phai bo. */
.w-right{grid-column:2;grid-row:1/span 2;min-width:0}
.w-toc{display:none}
@media (min-width:1360px){
  .w-shell{grid-template-columns:200px minmax(0,1fr) 300px}
  .w-toc{display:block;grid-column:1;grid-row:1/span 2}
  .w-top{grid-column:2;grid-row:1}
  .w-main{grid-column:2;grid-row:2}
  .w-right{grid-column:3;grid-row:1/span 2}
}
/* Man rong: no hai cot ben ra thay vi keo dai dong chu. */
@media (min-width:1700px){
  .w-shell{grid-template-columns:260px minmax(0,1fr) 340px;gap:0 28px}
  .w-wrap{padding-left:24px;padding-right:24px}
}
@media (min-width:2100px){
  .w-shell{grid-template-columns:300px minmax(0,1fr) 380px;gap:0 34px}
}

/* ── muc luc ghim ben trai ──────────────────────────────────────────────── */
@media (min-width:1360px){
  .w-toc{position:sticky;top:86px;max-height:calc(100vh - 104px);overflow:auto;
         font:13.5px/1.5 var(--sans);padding-right:4px}
}
.w-toc__t{font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;
          color:var(--muted);margin:0 0 8px}
.w-toc ol{list-style:none;margin:0;padding:0}
.w-toc li{margin:0}
.w-toc a{display:block;padding:4px 8px;border-radius:7px;color:var(--muted);
         text-decoration:none;border-left:2px solid transparent}
.w-toc a:hover{background:var(--surface2);color:var(--text);text-decoration:none}
.w-toc a.on{color:var(--accent);border-left-color:var(--accent);font-weight:600;
            background:var(--surface2)}
.w-toc .d2{padding-left:18px;font-size:12.5px}
/* ⛔ Duoi 1360px khong con cho cho cot trai: doi thanh khoi gap nam tren noi dung,
   KHONG `display:none` — mat muc luc la mat ca duong di tren dien thoai. */
.w-toc--gap{display:none}
@media (max-width:1359px){
  .w-toc--gap{display:block;position:static;max-height:none;overflow:visible;
              border:1px solid var(--line);border-radius:12px;background:var(--surface);
              padding:0;margin:0 0 14px}
  .w-toc--gap > summary{list-style:none;cursor:pointer;padding:10px 14px;
                        font-weight:600;font-size:14px}
  .w-toc--gap > summary::-webkit-details-marker{display:none}
  .w-toc--gap > summary::before{content:"▸";margin-right:8px;color:var(--muted)}
  .w-toc--gap[open] > summary::before{content:"▾"}
  .w-toc--gap ol{padding:0 10px 10px}
}

/* ── cot giua ───────────────────────────────────────────────────────────── */
.w-top{margin:0 0 4px}
.w-main{min-width:0}
.w-crumb{font-size:13px;color:var(--muted);margin:0 0 10px}
.w-crumb a{color:var(--muted);text-decoration:none}
.w-crumb a:hover{color:var(--accent);text-decoration:underline}
.w-crumb span{color:var(--text)}

.w-head{display:flex;gap:14px;align-items:flex-start;margin:0 0 10px}
.w-head__ic{width:64px;height:64px;object-fit:contain;flex:0 0 auto;
            image-rendering:pixelated;background:var(--surface2);border-radius:12px;
            padding:5px}
.w-head h1{margin:0 0 2px;font-size:30px;line-height:1.15}
/* ⛔ `word-break:break-all` cat giua tu binh thuong: tren man 412px dong phu cua trang
   goc hien ra "cross-l / inked". `break-word` chi cat khi mot tu that su khong vua
   (id dai kieu `minecraft:polished_blackstone_brick_wall`), dung nhu y ban dau. */
.w-sub{margin:0;font:12.5px/1.4 var(--mono);color:var(--muted);
       word-break:normal;overflow-wrap:break-word}

/* hang chip du kien nhanh — thay cho mot bang nua, do day la thu doc luot */
.w-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.w-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;
        border:1px solid var(--line);border-radius:999px;background:var(--surface);
        font-size:12.5px;color:var(--muted);line-height:1.6}
.w-chip b{color:var(--text);font-weight:600}
.w-chip img{width:16px;height:16px;image-rendering:pixelated;object-fit:contain}

.w-lead{margin:14px 0 0}
.w-lead p{margin:0 0 .6em;font-size:15.5px;line-height:1.6}

/* ── dai icon "nhin mot cai la hieu" ────────────────────────────────────── */
.w-strip{display:grid;gap:10px;margin:16px 0 0;
         grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.w-sbox{border:1px solid var(--line);border-radius:12px;background:var(--surface);
        padding:9px 11px}
.w-sbox__t{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;
           color:var(--muted);font-weight:700;margin:0 0 6px}
.w-sbox__r{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.w-ic{display:inline-flex;align-items:center;gap:5px;padding:3px 7px 3px 3px;
      border:1px solid var(--line);border-radius:8px;background:var(--surface);
      font-size:12.5px;color:var(--text);text-decoration:none;max-width:100%}
.w-ic:hover{border-color:transparent;box-shadow:var(--shadow);text-decoration:none}
.w-ic img{width:24px;height:24px;object-fit:contain;image-rendering:pixelated;
          flex:0 0 auto}
.w-ic span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── than bai: NEN CHAT, it khoang trong ────────────────────────────────── */
.w-main h2{font-size:21px;line-height:1.25;margin:22px 0 8px;padding-bottom:5px;
           border-bottom:1px solid var(--line)}
.w-main h3{font-size:16.5px;margin:16px 0 6px}
.w-main p{margin:0 0 .55em}
.w-main > p:last-child{margin-bottom:0}
.w-sec{margin:0}
.w-note{font-size:12.5px;color:var(--muted);margin:0 0 8px}

/* bang co SPRITE — day la cach minecraft.wiki nhoi thong tin vao it cho nhat */
table.w-tb{width:100%;border-collapse:collapse;margin:0 0 10px;font-size:14px}
table.w-tb th,table.w-tb td{border:1px solid var(--line);padding:6px 9px;
                            text-align:left;vertical-align:middle}
table.w-tb th{background:var(--surface2);font-weight:600;white-space:nowrap}
table.w-tb thead th{font-size:12.5px;letter-spacing:.03em;text-transform:uppercase;
                    color:var(--muted)}
table.w-tb tbody tr:nth-child(even) td{background:var(--surface2)}
table.w-tb img{width:22px;height:22px;object-fit:contain;image-rendering:pixelated;
               vertical-align:middle;margin-right:5px}
table.w-tb code{font-size:12.5px}

/* luoi o vuong day dac — thay cho `.igrid` rong rai */
.w-grid{display:grid;gap:7px;margin:0 0 10px;
        grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.w-cell{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:9px;
        border:1px solid var(--line);background:var(--surface);font-size:13px;
        color:var(--text);text-decoration:none;min-width:0}
.w-cell:hover{border-color:transparent;box-shadow:var(--shadow);text-decoration:none}
.w-cell img{width:28px;height:28px;object-fit:contain;image-rendering:pixelated;
            flex:0 0 auto}
.w-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* ⛔ The co CA ten va so dem (`<b>` + `<em>`) thi hai cai nam cung mot dong nowrap:
   do that tren man 412px, `<em>` cham right=470 — bi `overflow:hidden` cat mat, nguoi
   doc khong he thay so. Xep thanh hai dong thi vua, va day la kieu the cua
   minecraft.wiki luon. `:not(.w-noimg)` vi o trong cung la mot `<span>`. */
.w-cell span:not(.w-noimg){display:flex;flex-direction:column;justify-content:center}
.w-cell span > b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
                 font-weight:600;line-height:1.25}
.w-cell span > em{font-style:normal;font-size:11.5px;color:var(--muted);line-height:1.2;
                  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.w-cell .w-noimg{width:28px;height:28px;flex:0 0 auto;border:1px dashed var(--line);
                 border-radius:7px;opacity:.5}

/* ── thanh phai + INFOBOX ───────────────────────────────────────────────── */
.w-side{min-width:0}
@media (min-width:1024px){
  .w-right{position:sticky;top:86px;max-height:calc(100vh - 104px);overflow-y:auto;
           overscroll-behavior:contain;scrollbar-width:thin}
}
.w-ib{border:1px solid var(--line);border-radius:14px;background:var(--surface);
      overflow:hidden;margin:0 0 14px}
.w-ib__h{padding:9px 12px;background:var(--surface2);font-weight:700;font-size:14.5px;
         border-bottom:1px solid var(--line)}
.w-ib__img{display:flex;align-items:center;justify-content:center;padding:14px;
           background:var(--surface2)}
.w-ib__img img{max-width:150px;max-height:150px;width:auto;height:auto;
               image-rendering:pixelated}
.w-ib table{width:100%;border-collapse:collapse;font-size:13px}
.w-ib th,.w-ib td{padding:6px 11px;border-top:1px solid var(--line);
                  text-align:left;vertical-align:top}
.w-ib th{color:var(--muted);font-weight:600;width:42%;white-space:nowrap}
.w-ib td img{width:20px;height:20px;object-fit:contain;image-rendering:pixelated;
             vertical-align:middle;margin-right:4px}
.w-ib code{font-size:12px;word-break:break-all}
/* Cot phai cua trang hub: thay vi lap lai dung may con so da co o dai `.w-strip`
   ngay phia tren, cho no dan di tiep — day moi la viec cua mot wiki. */
.w-ib__nav{display:grid;gap:5px;padding:9px;
           grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.w-ib__nav .w-cell{padding:5px 7px;font-size:12.5px}
.w-ib__nav .w-cell img,.w-ib__nav .w-cell .w-noimg{width:22px;height:22px}

/* ⛔ Tren dien thoai infobox PHAI nam ngay sau doan mo, khong phai cuoi trang:
   day la bang tra cuu, de cuoi trang thi khong ai cuon toi. Lam bang `order`
   cua grid mot cot. */
@media (max-width:1023px){
  /* ⛔ Mot cot: xep lai theo THU TU DOC cua wiki — tieu de, doan mo, bang tra cuu,
     roi moi den than bai. Infobox PHAI o day, KHONG duoc nam trong `#rsidebar`:
     tren dien thoai `#rsidebar` la NGAN KEO TRUOT NGOAI MAN cua native9
     (do that: `position:fixed`, x=412 tren man 412px) — nhet vao do la nguoi dung
     khong bao gio thay bang tra cuu. */
  /* ⛔ lign-items:start cua luoi CON NGUYEN khi doi sang flex — con se co lai theo
     noi dung thay vi rong het cot. Infobox vi the chi rong 298/388px, lech han sang
     trai. Phai dat lai stretch. */
  .w-shell{display:flex;flex-direction:column;gap:0;align-items:stretch}
  /* display:contents cho hai con cua cot phai thanh con TRUC TIEP cua khung,
     nho vay order moi chen duoc infobox vao GIUA phan mo va than bai. */
  .w-right{display:contents}
  .w-top{order:1}
  /* ⛔ Bo rong 300px cua cot phai: tren mot cot bang tra cuu phai rong HET be ngang,
     khong thi no lech sang trai, chua mot khoang trong 90px ben phai. */
  .w-ib{order:2;margin:0 0 12px;width:auto}
  .w-main{order:3}
  .w-side{order:4}
  .w-head h1{font-size:25px}
  .w-head__ic{width:54px;height:54px}
  .w-main h2{font-size:19px;margin:18px 0 7px}
  .w-grid{grid-template-columns:repeat(auto-fill,minmax(146px,1fr));gap:6px}
  /* ⛔ Mot cot thi bon o so chiem ~700px man hinh cho bon con so — dung thu "nhieu
     khoang trong" phai tranh. Hai cot, dem gon lai: cung bon so trong ~180px. */
  .w-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}
  .w-sbox{padding:7px 9px}
  .w-sbox__t{font-size:10.5px;margin:0 0 3px}
  /* bang rong thi cho cuon TRONG bang, khong de ca trang tran ngang */
  .w-tbwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* native9: vung cham >= 44px, khong co hieu ung hover dinh lai tren cam ung */
@media (hover:none){
  .w-cell,.w-ic,.w-chip{min-height:38px}
  .w-toc--gap > summary{min-height:44px;display:flex;align-items:center}
  .w-cell:hover,.w-ic:hover{box-shadow:none;border-color:var(--line)}
}

/* nen toi */
:root.dark .w-ib__img,:root[data-theme="dark"] .w-ib__img,
:root.dark .w-head__ic,:root[data-theme="dark"] .w-head__ic{background:rgba(255,255,255,.05)}
:root.dark .w-cell img,:root[data-theme="dark"] .w-cell img,
:root.dark .w-ic img,:root[data-theme="dark"] .w-ic img,
:root.dark .w-ib td img,:root[data-theme="dark"] .w-ib td img{filter:none}

/* ⛔ .gcards goc dat minmax(258px,1fr) cho cot 1260px cua bo cuc cu. Trong cot 836px
   cua bo cuc moi no chi xep duoc 2 the mot hang — thua gan nua chieu ngang. */
.w-main .gcards,.w-main .gguide{grid-template-columns:repeat(auto-fill,minmax(205px,1fr));
                                gap:9px;margin:8px 0 14px}
.w-main .gcards > a,.w-main .gguide > a{padding:10px 12px;border-radius:12px;gap:3px}
@media (max-width:1023px){
  .w-main .gcards,.w-main .gguide{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}
/* bang sinh san co ICON mob — dong thoi lam day anh cho trang biome */
table.w-tb td a img{width:22px;height:22px;vertical-align:middle;margin-right:5px}
/* ===== _v3.css ===== */
/* ═══ GIAO DIEN V3 — khung FULL WIDTH kieu trang wiki lon ═══════════════════════
   ⛔ CHI CONG THEM lop `v3-`. Tep nay dung chung voi 740.000 trang; sua mot lop cu la
      ca site doi hinh cung luc. Ngoai le duy nhat: hai dong `.twrap`/`.b__inner` o cuoi
      — do la yeu cau "header cung cho full width" cua chu site, co ghi chu ro.
   Do that tren trang mau 23/10/2026: header ho FULL WIDTH ca hai khung, nhung THAN chi
   rong 1383/1584 (co chan). Chu site muon full width ca hai ⇒ chan than o 1760px cho
   con doc duoc, con nen header thi tran vien.
   ════════════════════════════════════════════════════════════════════════════ */

/* ⛔ Bien phai o `:root`, KHONG o `.v3`. Thanh tab nay gio nam o khoi SSI nen co mat
   tren ca 740.000 trang, ma 740.050 trang trong so do KHONG mang lop `.v3` — de bien
   o `.v3` thi moi `var(--v3-…)` tren chung tra ve rong: tab mat sach vien, mat nen,
   va tab dang mo khong to mau. Nhin anh chup moi thay, bo do khong bao gi. */
:root{--v3-vien:var(--line,#dfe3e8);--v3-nen:var(--surface,#fff);
      --v3-nen2:var(--surface2,#f5f7f9);--v3-chu:var(--text,#111);
      --v3-mo:var(--muted,#667);--v3-nhan:var(--accent,#2d7d46)}
.v3-wrap{width:100%;margin:0;padding:0}
.v3-in{max-width:1760px;margin:0 auto;padding:10px 16px 28px}

/* ── thanh tab nhanh (Minecraft / Dungeons / Movie / Legends / …) ───────────── */
.v3-tabs{display:flex;gap:6px;margin:0 0 12px;overflow-x:auto;scrollbar-width:thin;
         -webkit-overflow-scrolling:touch;padding-bottom:2px}
.v3-tab{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;
        padding:9px 16px;border:1px solid var(--v3-vien);border-bottom:0;
        border-radius:9px 9px 0 0;background:var(--v3-nen2);color:var(--v3-chu);
        font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.v3-tab img{width:20px;height:20px;object-fit:contain;image-rendering:pixelated}
.v3-tab:hover{background:var(--v3-nen);text-decoration:none}
.v3-tab.on{background:var(--v3-nhan);border-color:var(--v3-nhan);color:#fff}
.v3-tab.on img{filter:brightness(0) invert(1)}

/* ── luoi chinh: noi dung + cot phai ────────────────────────────────────────── */
.v3-cols{display:grid;gap:14px;align-items:start;
         grid-template-columns:minmax(0,1fr) 340px}
.v3-main{min-width:0;display:flex;flex-direction:column;gap:14px}
.v3-rail{min-width:0;display:flex;flex-direction:column;gap:14px}

/* ── khoi co vien + dau khoi ────────────────────────────────────────────────── */
.v3-box{border:1px solid var(--v3-vien);border-radius:12px;background:var(--v3-nen);
        overflow:hidden}
/* ⛔ `margin:0` la BAT BUOC, khong phai cho dep. Dau khoi ve bang `<h2>`/`<h3>`, ma
   khung wiki dat margin doc cho h2. `.v3-box` co VIEN nen margin cua con khong gop
   len duoc, the la 22,4px do ket BEN TRONG khoi: moi khoi mang mot dai trang 23px
   phia tren chu, va dai do an nen xam cua dau khoi nen nhin nhu loi ve.
   Do that 24/10 tren /mods/ + /resource-packs/: 4 khoi moi trang.
   Chu site: *"Đảm bảo full width và ít khoảng trống"*. */
.v3-box__h{margin:0;padding:10px 14px;border-bottom:1px solid var(--v3-vien);
           background:var(--v3-nen2);font-size:16px;font-weight:700;line-height:1.3}
.v3-box__b{padding:13px 14px}
.v3-box__b > :first-child{margin-top:0}
.v3-box__b > :last-child{margin-bottom:0}
.v3-box__b p{margin:0 0 9px;line-height:1.55}

/* ── hai the hero to ────────────────────────────────────────────────────────── */
.v3-hero{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.v3-hcard{position:relative;border:1px solid var(--v3-vien);border-radius:12px;
          overflow:hidden;background:var(--v3-nen);display:block;color:inherit;
          text-decoration:none}
.v3-hcard:hover{text-decoration:none;box-shadow:var(--shadow,0 6px 20px rgba(0,0,0,.12))}
/* ⛔ Lan dau toi lat anh dung KHOI 64px thanh hoa van — ra mot tam luoi lap lai,
   chu site nhin anh chup noi ngay "sao anh nen nhin xau the". Hero phai la ANH THAT
   16:9. Nay dung kho nen 1920x1080+ da chon tay, ha ve 1280x720 (~57-150 KB/anh).
   Lop chuyen sac phu len de chu doc duoc tren moi anh. */
/* ⛔ Moc neo cua `__t` PHAI la khoi anh, khong phai ca the. De no neo vao `.v3-hcard`
   thi `bottom:14px` tinh tu day the — tuc la tu duoi hang the bam nhanh — nen so hieu
   cao 62px tran xuong de len hang do. Nhin anh chup moi thay. */
.v3-hcard__m{position:relative;display:block;color:inherit;text-decoration:none}
.v3-hcard__anh{position:relative;aspect-ratio:16/9;display:block;width:100%;
               background:#1d2228 var(--v3-nen-anh,none) center/cover no-repeat}
.v3-hcard__anh::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,11,15,.58) 0%,rgba(8,11,15,.14) 40%,
             rgba(8,11,15,.78) 100%)}
.v3-hcard__nen{position:absolute;inset:0;display:flex;align-items:center;
               justify-content:center;color:var(--v3-mo);font-size:13px}

/* ⛔ Chu site 23/10: "cần thể hiện to rõ đập vào mắt các bản mới nhất" — SO HIEU
   phien ban la thu to nhat tren the, khong phai ten phien ban game. */
.v3-hcard__t{position:absolute;left:16px;right:16px;bottom:14px;color:#fff;
             text-shadow:0 2px 10px rgba(0,0,0,.8);line-height:1.1}
.v3-hcard__ed{display:block;font-size:12.5px;font-weight:700;letter-spacing:.09em;
              text-transform:uppercase;opacity:.92;margin:0 0 2px}
.v3-hcard__so{display:block;font-size:clamp(36px,5.2vw,62px);font-weight:900;
              letter-spacing:-.02em;margin:0}
.v3-hcard__ngay{display:block;font-size:13px;font-weight:600;opacity:.92;
                margin:4px 0 0}
.v3-hcard__b{position:absolute;top:10px;left:12px;padding:3px 10px;border-radius:6px;
             font-size:12px;font-weight:700;color:#fff;background:var(--v3-nhan)}
/* ⛔ Ban dau tren the hero bam `TIN[0]` — ban dau danh sach theo ngay la SNAPSHOT
   (`26.4-snapshot-5`) hay preview Bedrock (`1.26.70.21`), khong phai ban phat hanh.
   Chu site goi ten ca HAI day, nen the cho ban phat hanh so to + o thu nghiem rieng
   o goc tren phai, bam sang trang snapshot/preview moi nhat. */
.v3-hcard__thu{position:absolute;top:8px;right:10px;display:flex;flex-direction:column;
               align-items:flex-end;gap:0;padding:5px 11px 6px;border-radius:9px;
               color:#fff;background:rgba(88,56,200,.86);
               border:1px solid rgba(255,255,255,.22);
               backdrop-filter:blur(3px);text-decoration:none;line-height:1.12}
.v3-hcard__thu:hover{background:rgba(104,70,224,.95);text-decoration:none}
.v3-hcard__thu-n{font-size:10px;font-weight:700;letter-spacing:.08em;
                 text-transform:uppercase;opacity:.9}
.v3-hcard__thu-s{font-size:clamp(17px,1.9vw,23px);font-weight:900;letter-spacing:-.01em}
.v3-hcard__thu-d{font-size:10.5px;font-weight:600;opacity:.88;text-transform:capitalize}
.v3-hcard__chips{display:flex;flex-wrap:wrap;gap:6px;padding:9px 12px;
                 border-top:1px solid var(--v3-vien);background:var(--v3-nen)}
.v3-hcard__chip{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;
                color:var(--v3-chu);background:var(--v3-nen2);
                border:1px solid var(--v3-vien);border-radius:999px;padding:2px 9px}
.v3-hcard__chip img{width:15px;height:15px;image-rendering:pixelated;
                    object-fit:contain}

/* ── dai dau TRANG NHANH (Dungeons / Legends / Earth / Story Mode / Movie) ───── */
/* ⛔ Nhanh nao CHUA co anh dung tro choi thi de dai mau, KHONG muon anh Minecraft
   ban goc. Chu site 23/10: *"Banner phải là đúng Minecraft Legends"* — dat mot canh
   rung ban goc len trang Story Mode chinh la cai loi do. Tha khong anh. */
/* ⛔ Bang phai DU CAO. Ban cu cao toi da 280px tren khung 1440 (ti le ~5:1), ma anh
   nguon la 16:9 — `cover` cat mat ca dai tren lan dai duoi, chi con mot vet giua.
   Hau qua that: banner Minecraft Earth cat dung phan co LOGO va phan khoi vuong, chi
   con nguoi trong cong vien, nen chu site hoi *"sao lai lay anh khong phai game
   Minecraft"*. Anh khong sai — khung cat sai.
   ⛔ Va neo anh o 32% chieu cao, khong phai `center`: key art cua Mojang luon de logo
   + nhan vat o dai TREN; neo giua la cat dung cho nhan dien. */
.v3-banner{position:relative;border-radius:12px;overflow:hidden;margin:0 0 14px;
           min-height:clamp(230px,30vw,420px);display:flex;align-items:flex-end;
           background:linear-gradient(135deg,#1f2a44 0%,#2d1f44 48%,#3a2150 100%)}
.v3-banner--anh{background:#1d2228 var(--v3-nen-anh,none) center 25%/cover no-repeat}
/* dai mau thi khong can lop phu toi — chu da doc duoc san */
.v3-banner:not(.v3-banner--anh)::after{background:none}
.v3-banner::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,11,15,.34) 0%,rgba(8,11,15,.18) 38%,
             rgba(8,11,15,.84) 100%)}
.v3-banner__t{position:relative;z-index:1;padding:18px 20px;color:#fff;
              text-shadow:0 2px 12px rgba(0,0,0,.85)}
.v3-banner__t h1{margin:0;font-size:clamp(26px,4vw,44px);font-weight:900;
                 letter-spacing:-.02em;line-height:1.08}
.v3-banner__t p{margin:6px 0 0;font-size:14.5px;max-width:70ch;opacity:.95}

/* Luoi lien ket hai–bon cot cho khoi "tren wiki nay". */
.v3-ds2{display:grid;gap:6px 14px;grid-template-columns:repeat(3,minmax(0,1fr))}
.v3-ds2 a{display:block;font-size:13.5px;line-height:1.45;padding:3px 0;
          overflow-wrap:break-word}
@media (max-width:980px){.v3-ds2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .v3-ds2{grid-template-columns:minmax(0,1fr)}
  .v3-banner{min-height:150px}
  .v3-banner__t{padding:14px 14px}
}

/* ═══ TRANG HUB (/mods/, /resource-packs/, /shaders/ …) ════════════════════════
   Chu site 24/10: *"làm lại hoàn toàn phần body theo cấu trúc mới … Đảm bảo full
   width và ít khoảng trống, không lấy tư duy trình bày bản cũ"*.

   ⛔ KHONG dung dai banner cao cua trang nhanh o day. Trang nhanh chi co 5 cai va moi
      cai mot tro choi rieng nen dang mot tam anh to; trang hub la trang DUYET, nguoi
      doc vao de tim nhanh — cho ho 280px anh truoc khi thay muc dau tien la di nguoc
      y "it khoang trong". Dau trang hub chi cao ~110px, chu + so lieu nam cung hang.
   ════════════════════════════════════════════════════════════════════════════ */
.v3-dau{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 20px;
        padding:14px 0 12px;border-bottom:1px solid var(--v3-vien);margin:0 0 14px}
.v3-dau__t{flex:1 1 320px;min-width:0}
.v3-dau h1{margin:0;font-size:clamp(23px,3vw,34px);font-weight:800;
           letter-spacing:-.02em;line-height:1.12}
.v3-dau__mo{margin:6px 0 0;font-size:14.5px;line-height:1.5;color:var(--v3-mo);
            max-width:88ch}
.v3-dau__so{display:flex;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.v3-dau__so b{display:block;font-size:19px;font-weight:800;line-height:1.1}
.v3-dau__so span{display:block;font-size:11.5px;letter-spacing:.06em;
                 text-transform:uppercase;color:var(--v3-mo);margin-top:2px}
.v3-dau__so > div{padding:7px 13px;border:1px solid var(--v3-vien);border-radius:10px;
                  background:var(--v3-nen2);text-align:center;min-width:86px}

/* ── the wiki: icon trai + ten phai, xep DAY ────────────────────────────────── */
/* ⛔ The doc (icon tren, ten duoi) nhu `.v3-tile` khong hop o day: ten mod dai
   ("Quantum Bridge Initiative Mod") xuong 3 dong, the cao gap doi va moi hang chi
   con 6 the. The ngang nhet duoc 8 cot o full width va ten co cho de doc. */
.v3-wl{display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}
.v3-wc{display:flex;align-items:center;gap:9px;min-width:0;
       padding:7px 10px;border:1px solid var(--v3-vien);border-radius:9px;
       background:var(--v3-nen);color:var(--v3-chu);text-decoration:none;
       font-size:13.5px;line-height:1.3}
.v3-wc:hover{background:var(--v3-nen2);border-color:var(--v3-nhan);
             text-decoration:none}
.v3-wc img,.v3-wc .noimg{width:30px;height:30px;flex:0 0 auto;object-fit:contain;
                         border-radius:6px;image-rendering:pixelated}
.v3-wc .noimg{background:var(--v3-nen2);border:1px dashed var(--v3-vien)}
.v3-wc span{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;
            -webkit-box-orient:vertical;overflow-wrap:break-word}

/* ── chip tag: dan deu, khong de troi ───────────────────────────────────────── */
.v3-chips{display:flex;flex-wrap:wrap;gap:6px}
.v3-chip{display:inline-flex;align-items:baseline;gap:6px;padding:5px 11px;
         border:1px solid var(--v3-vien);border-radius:999px;font-size:13px;
         background:var(--v3-nen);color:var(--v3-chu);text-decoration:none}
.v3-chip:hover{background:var(--v3-nen2);border-color:var(--v3-nhan);
               text-decoration:none}
.v3-chip em{font-style:normal;font-size:11.5px;color:var(--v3-mo);
            font-variant-numeric:tabular-nums}

@media (max-width:640px){
  .v3-wl{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:5px}
  .v3-wc{font-size:12.5px;padding:6px 8px;gap:7px}
  .v3-wc img,.v3-wc .noimg{width:26px;height:26px}
  .v3-dau{padding:10px 0 10px}
  .v3-dau__so > div{min-width:74px;padding:6px 10px}
}

/* ── luoi o icon to ─────────────────────────────────────────────────────────── */
.v3-tiles{display:grid;gap:9px;grid-template-columns:repeat(8,minmax(0,1fr))}
.v3-tile{display:flex;flex-direction:column;align-items:center;gap:7px;
         padding:13px 7px 10px;border:1px solid var(--v3-vien);border-radius:10px;
         background:var(--v3-nen);color:var(--v3-chu);text-decoration:none;
         text-align:center;font-size:13px;font-weight:600}
.v3-tile:hover{background:var(--v3-nen2);text-decoration:none}
.v3-tile img{width:48px;height:48px;object-fit:contain;image-rendering:pixelated}
.v3-tile .v3-tile__noimg{width:48px;height:48px;border:1px dashed var(--v3-vien);
                         border-radius:8px;opacity:.5}
.v3-tile em{display:block;font-style:normal;font-weight:500;font-size:11.5px;
            color:var(--v3-mo)}

/* ── danh sach tin co ngay ──────────────────────────────────────────────────── */
.v3-news{margin:0;padding:0;list-style:none}
.v3-news li{padding:8px 0;border-top:1px solid var(--v3-vien)}
.v3-news li:first-child{border-top:0;padding-top:0}
.v3-news time{display:block;font-size:12px;color:var(--v3-mo);margin:0 0 2px}

/* ── dong thoi gian ─────────────────────────────────────────────────────────── */
.v3-time{margin:0;padding:0 0 0 16px;list-style:none;border-left:2px solid var(--v3-vien)}
.v3-time li{position:relative;padding:5px 0}
.v3-time li::before{content:"";position:absolute;left:-21px;top:11px;width:9px;
                    height:9px;border-radius:2px;background:var(--v3-nhan)}
.v3-time em{font-style:normal;color:var(--v3-mo);font-size:12.5px}

/* ── dai so lieu + hang nut ─────────────────────────────────────────────────── */
.v3-so{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13.5px;color:var(--v3-mo)}
.v3-so b{color:var(--v3-chu)}
.v3-nut{display:flex;flex-wrap:wrap;gap:8px}
.v3-nut a{flex:1 1 auto;text-align:center;padding:9px 14px;border-radius:9px;
          border:1px solid var(--v3-vien);background:var(--v3-nen2);font-weight:600;
          font-size:13.5px;color:var(--v3-chu);text-decoration:none}
.v3-nut a.chinh{background:var(--v3-nhan);border-color:var(--v3-nhan);color:#fff}
.v3-nut a:hover{text-decoration:none;filter:brightness(.97)}

/* ── hai cot nho trong mot khoi ─────────────────────────────────────────────── */
.v3-2{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
.v3-ds{margin:0;padding-left:18px}
.v3-ds li{margin:3px 0;line-height:1.5}

/* ═══ KHUON TRANG TRONG ═════════════════════════════════════════════════════
   Do that 6 loai trang cua trang mau (desktop 1584): than bai rong 1329, infobox
   THA NOI BEN PHAI rong 306 NGAY TRONG than bai (chu chay vong quanh), muc luc la
   mot KHOI NOI BEN TRAI ngay duoi h1, va day bai co NAVBOX rong het than bai.
   Khac han khung `.w-shell` cua ta (infobox la mot cot luoi rieng).
   ════════════════════════════════════════════════════════════════════════════ */
.v3-bai{max-width:1760px;margin:0 auto;padding:10px 16px 28px}
.v3-bai h1{margin:0 0 10px;font-size:32px;line-height:1.18}
.v3-bai__than{min-width:0}
.v3-bai__than::after{content:"";display:block;clear:both}

/* infobox tha noi ben phai — chu chay vong quanh, dung bo cuc cua trang wiki lon */
.v3-ib{float:right;width:306px;margin:0 0 14px 18px;border:1px solid var(--v3-vien);
       border-radius:10px;background:var(--v3-nen);overflow:hidden}
.v3-ib__h{padding:9px 12px;background:var(--v3-nen2);
          border-bottom:1px solid var(--v3-vien);font-weight:700;text-align:center}
.v3-ib__anh{display:flex;align-items:center;justify-content:center;padding:14px;
            background:var(--v3-nen2)}
.v3-ib__anh img{max-width:150px;max-height:150px;image-rendering:pixelated}
.v3-ib table{width:100%;border-collapse:collapse;font-size:13px}
.v3-ib th,.v3-ib td{padding:6px 11px;border-top:1px solid var(--v3-vien);
                    text-align:left;vertical-align:top}
.v3-ib th{color:var(--v3-mo);font-weight:600;width:42%;white-space:nowrap}

/* muc luc: khoi noi ben trai ngay duoi tieu de */
.v3-toc{float:left;min-width:210px;max-width:350px;margin:0 18px 14px 0;
        border:1px solid var(--v3-vien);border-radius:10px;background:var(--v3-nen2);
        padding:10px 14px}
.v3-toc__t{font-weight:700;margin:0 0 6px}
.v3-toc ol{margin:0;padding-left:20px;font-size:13.5px}
.v3-toc li{margin:3px 0}

/* navbox day bai — bang lien ket nhom, rong het than bai */
.v3-nav{clear:both;margin:22px 0 0;border:1px solid var(--v3-vien);border-radius:10px;
        overflow:hidden}
.v3-nav__h{padding:9px 14px;background:var(--v3-nen2);
           border-bottom:1px solid var(--v3-vien);font-weight:700}
.v3-nav__r{display:grid;grid-template-columns:150px minmax(0,1fr);
           border-top:1px solid var(--v3-vien)}
.v3-nav__r:first-of-type{border-top:0}
.v3-nav__k{padding:8px 12px;background:var(--v3-nen2);font-weight:600;font-size:13px}
.v3-nav__v{padding:8px 12px;font-size:13.5px;line-height:1.9}
.v3-nav__v a{white-space:nowrap}
.v3-nav__v a::after{content:" · ";color:var(--v3-mo)}
.v3-nav__v a:last-child::after{content:""}

/* ── dien thoai ─────────────────────────────────────────────────────────────── */
@media (max-width:1100px){
  .v3-cols{grid-template-columns:minmax(0,1fr)}
  .v3-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:900px){
  /* ⛔ Infobox 306px tha noi tren man 412px chiem 3/4 be ngang, chu con mot dai hep
     chay doc ben trai — khong doc noi. Duoi 900px bo float, cho no thanh mot khoi
     rong het hang NGAY DUOI doan mo, dung thu tu doc cua wiki. */
  .v3-ib{float:none;width:auto;margin:0 0 14px}
  .v3-toc{float:none;max-width:none;margin:0 0 14px}
  .v3-nav__r{grid-template-columns:minmax(0,1fr)}
  .v3-nav__k{border-bottom:1px solid var(--v3-vien)}
  .v3-bai h1{font-size:25px}
}
@media (max-width:640px){
  .v3-in{padding:8px 12px 24px}
  .v3-bai{padding:8px 12px 24px}
  /* ⛔ Hai the hero xep DOC tren dien thoai: ep hai cot thi moi the con ~180px,
     anh 16/9 cao 100px va chu tieu de bi cat — do that o ban dau. */
  .v3-hero{grid-template-columns:minmax(0,1fr)}
  .v3-2{grid-template-columns:minmax(0,1fr)}
  .v3-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .v3-tile{font-size:12px;padding:10px 5px 8px}
  .v3-tile img,.v3-tile .v3-tile__noimg{width:40px;height:40px}
  /* ⛔ O thu nghiem o goc phai: khong tru cho no thi so hieu to tran len duoi
     no tren man 412px. Chu `right` o `.v3-hcard__t` la cho o do, khong phai
     cho nhan "Latest release" (nhan da chuyen sang goc TRAI). */
  .v3-hcard__t{right:96px}
  .v3-hcard__so{font-size:clamp(32px,10.5vw,46px)}
  .v3-hcard__thu-s{font-size:19px}
  .v3-box__h{font-size:15px;padding:9px 12px}
  .v3-box__b{padding:11px 12px}
}

/* ⛔ HEADER FULL WIDTH — chu site chot 23/10/2026, roi chot tiep: *"Các trang bên
   trong cũng full width hết nhé"*. Nen bo rang buoc cho MOI trang chu khong con
   gioi han o `body.v3`. Day van la HAI lop cu duy nhat tep nay dong toi, va chi noi
   be rong chu khong doi gi khac; dem lot thi van chi ap cho trang V3. */
.twrap{max-width:none}
.b__inner{max-width:none}
body.v3 .twrap{padding-left:16px;padding-right:16px}

/* ── Thanh tab nhanh dung chung (khoi SSI, co tren CA 740.000 trang) ───────────
   ⛔ Ban cu chi co o 6 trang V3 nen nam trong `.v3-in` (da co dem lot). Ban SSI nam
      ngay sau header, ngoai moi khung — nen phai tu lo dem lot va duong ke duoi,
      khong thi no dinh sat header va tran sat mep man. */
.v3-tabs--ssi{padding:8px 16px 0;border-bottom:1px solid var(--line);
              margin-bottom:10px;overflow-x:auto;scrollbar-width:none;
              -webkit-overflow-scrolling:touch}
.v3-tabs--ssi::-webkit-scrollbar{display:none}
@media (max-width:640px){.v3-tabs--ssi{padding:6px 12px 0;margin-bottom:6px}}

/* ── mega menu desktop: sat mep trai cho khop khung full width ──────────────────
   Chu site: *"Full width thì menu ở desktop xổ ra thì sát mép trái cũng được. Cho nó
   khớp với kiểu giao diện full width"*.

   ⛔ CHI duoc doi `--mw-left`. Mega menu la thanh ray `position:fixed`, luc dong no
      nam ngoai man bang `left:calc(0px - var(--mw-rail-w) - 24px)` va luc mo moi
      chay vao `left:var(--mw-left)`. Dat thang `left:0` o day la ghim no MO SAN, che
      kin man hinh — dung cai loi da mac mot lan ([[reference_mega_menu_mo_san_che_man]]).
      Cung khong duoc dat `width` rieng: vi tri luc dong tinh theo `--mw-rail-w`. */
.mw-mega{--mw-left:0px}

/* ═══ MAU DAC TRUNG CHO TUNG NHOM PHAT HANH ════════════════════════════════════
   Chu site 23/10: *"phân chia màu sắc đặc trưng để thể hiện các nhóm: Stable Release,
   Preview/Snapshot/Pre-release..."*

   ⛔ Mau phai mang nghia, khong phai trang tri: xanh = dung duoc that, cam/vang = sap
      xong, tim = dang lam, xam = da nghi huu. Doc gia nhin bang 920 phien ban phai
      biet NGAY cai nao tai ve choi duoc ma khong can doc chu.
   ⛔ Moi nhom co BA bien chu khong mot: `-v` vien, `-n` nen nhat, `-c` chu dam. Dat
      mot mau roi tu lam nhat bang `opacity` thi chu cung nhat theo, doc khong noi tren
      nen trang.
   ⛔ Phai co ban cho che toi: nen nhat kieu `#eaf7ee` tren nen den thanh mot vet sang
      choi mat, con chu dam `#1b6b34` tren do thi gan nhu khong doc duoc.
   ════════════════════════════════════════════════════════════════════════════ */
.v3-pha{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;
        padding:2px 8px;border-radius:999px;border:1px solid var(--pha-v,#ccd);
        background:var(--pha-n,#f2f4f7);color:var(--pha-c,#334);
        font-size:11.5px;font-weight:700;letter-spacing:.02em;line-height:1.5;
        white-space:nowrap;text-transform:none}
.v3-pha::before{content:"";width:6px;height:6px;border-radius:50%;
                background:var(--pha-c,#334);flex:0 0 auto}

.v3-pha--ra  {--pha-v:#9ed4b0;--pha-n:#eaf7ee;--pha-c:#1b6b34}
.v3-pha--rc  {--pha-v:#f0bf93;--pha-n:#fdf1e6;--pha-c:#9a4e0c}
.v3-pha--pre {--pha-v:#e8cf84;--pha-n:#fdf7e3;--pha-c:#8a6508}
.v3-pha--snap{--pha-v:#c4b2e8;--pha-n:#f4f0fd;--pha-c:#5b3ba8}
.v3-pha--xem {--pha-v:#9fc8ea;--pha-n:#eef5fd;--pha-c:#1d5e94}
.v3-pha--beta{--pha-v:#9fd8d2;--pha-n:#ebf8f6;--pha-c:#126b62}
.v3-pha--cub {--pha-v:#c9cdd4;--pha-n:#f3f5f7;--pha-c:#4b5563}
.v3-pha--cua {--pha-v:#cfcac2;--pha-n:#f6f4f1;--pha-c:#5d5648}
.v3-pha--tn  {--pha-v:#eeadc4;--pha-n:#fdeef4;--pha-c:#96225a}

:root.dark,:root[data-theme="dark"]{color-scheme:dark}
:root.dark .v3-pha--ra,:root[data-theme="dark"] .v3-pha--ra
      {--pha-v:#2f6a45;--pha-n:#12241a;--pha-c:#7fdca0}
:root.dark .v3-pha--rc,:root[data-theme="dark"] .v3-pha--rc
      {--pha-v:#7a4a1d;--pha-n:#271a10;--pha-c:#f0ae6c}
:root.dark .v3-pha--pre,:root[data-theme="dark"] .v3-pha--pre
      {--pha-v:#71601f;--pha-n:#241f10;--pha-c:#e8cd6b}
:root.dark .v3-pha--snap,:root[data-theme="dark"] .v3-pha--snap
      {--pha-v:#4d3b85;--pha-n:#1a1528;--pha-c:#bda6f2}
:root.dark .v3-pha--xem,:root[data-theme="dark"] .v3-pha--xem
      {--pha-v:#255f8c;--pha-n:#101d28;--pha-c:#88c4f0}
:root.dark .v3-pha--beta,:root[data-theme="dark"] .v3-pha--beta
      {--pha-v:#1f5c55;--pha-n:#0f201e;--pha-c:#7ad6ca}
:root.dark .v3-pha--cub,:root[data-theme="dark"] .v3-pha--cub
      {--pha-v:#474d57;--pha-n:#1a1c20;--pha-c:#b2b9c4}
:root.dark .v3-pha--cua,:root[data-theme="dark"] .v3-pha--cua
      {--pha-v:#4f4a40;--pha-n:#1d1b17;--pha-c:#c4bcab}
:root.dark .v3-pha--tn,:root[data-theme="dark"] .v3-pha--tn
      {--pha-v:#7d2a4c;--pha-n:#260f19;--pha-c:#f0a0c0}

/* ── mot KHU vuc cho mot nhom: dau khoi mang mau, vach doc ben trai ─────────── */
.v3-nhom{border:1px solid var(--pha-v,var(--v3-vien));border-radius:12px;
         background:var(--v3-nen);overflow:hidden;margin:0 0 12px}
.v3-nhom__d{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;
            padding:9px 13px;background:var(--pha-n,var(--v3-nen2));
            border-bottom:1px solid var(--pha-v,var(--v3-vien))}
.v3-nhom__d h2,.v3-nhom__d h3{margin:0;font-size:15.5px;font-weight:800;
                              color:var(--pha-c,var(--v3-chu));border:0;padding:0}
.v3-nhom__d p{margin:0;flex:1 1 260px;min-width:0;font-size:12.5px;
              color:var(--v3-mo);line-height:1.45}
.v3-nhom__d b{font-size:12.5px;font-weight:700;color:var(--pha-c,var(--v3-chu))}
.v3-nhom__b{padding:10px 13px 12px}

/* the phien ban trong nhom: vach mau ben trai de nhin xuyen qua ca danh sach */
.v3-vl{display:grid;gap:5px;grid-template-columns:repeat(auto-fill,minmax(176px,1fr))}
.v3-vc{display:flex;align-items:center;justify-content:space-between;gap:8px;
       min-width:0;padding:7px 10px 7px 11px;border:1px solid var(--v3-vien);
       border-left:3px solid var(--pha-c,var(--v3-nhan));border-radius:8px;
       background:var(--v3-nen);color:var(--v3-chu);text-decoration:none;
       font-size:13.5px;font-weight:600;line-height:1.3}
.v3-vc:hover{background:var(--pha-n,var(--v3-nen2));
             border-color:var(--pha-v,var(--v3-nhan));text-decoration:none}
.v3-vc > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3-vc em{font-style:normal;flex:0 0 auto;font-size:11px;font-weight:600;
          color:var(--v3-mo)}

/* ── bang co cot pha: chi to o mot cot, khong lam ca hang ruc ro ───────────── */
.wt td .v3-pha,.wt th .v3-pha{vertical-align:middle}

/* ── HOP TAI VE o cot phai ngoai cung ──────────────────────────────────────────
   Chu site: *"Ở Cột bên phải ngoài cùng sẽ thêm các nút tải về và thông tin như trong
   hình, chi tiết hơn và tối ưu hơn càng tốt, hoặc cái nào không cần thiết thì bỏ đi"*.
   ⛔ Nut phai noi ro TAI CAI GI va NANG BAO NHIEU truoc khi bam — khong thi doc gia
      bam vao mot trang trung gian co quang cao ma khong biet minh dang lay gi. */
.v3-tai{display:flex;flex-direction:column;gap:7px}
.v3-tai__n{display:flex;align-items:center;gap:10px;padding:10px 12px;
           border-radius:10px;border:1px solid #1b6b34;background:#1b6b34;
           color:#fff;text-decoration:none;font-weight:700;font-size:14px}
.v3-tai__n:hover{background:#15572a;border-color:#15572a;color:#fff;
                 text-decoration:none}
.v3-tai__n--p{background:var(--v3-nen);color:var(--v3-chu);
              border-color:var(--v3-vien);font-weight:600}
.v3-tai__n--p:hover{background:var(--v3-nen2);border-color:var(--v3-nhan);
                    color:var(--v3-chu)}
.v3-tai__n i{font-style:normal;flex:0 0 auto;width:22px;height:22px;
             display:grid;place-items:center;border-radius:6px;
             background:rgba(255,255,255,.18);font-size:13px}
.v3-tai__n--p i{background:var(--v3-nen2)}
.v3-tai__n u{text-decoration:none;display:block;min-width:0;flex:1 1 auto}
.v3-tai__n u span{display:block;font-size:11.5px;font-weight:600;opacity:.82;
                  letter-spacing:.01em}
.v3-tai__gc{margin:2px 0 0;font-size:11.5px;line-height:1.45;color:var(--v3-mo)}

/* ── bang dong thoi gian trong khu nhom (trang nhanh) ──────────────────────────
   ⛔ Cot ngay phai HEP va khong cuon: ten ban cap nhat moi la thu doc gia quet mat
      theo. De ba cot deu nhau thi "26 May 2020" chiem 1/3 chieu rong. */
.wt--moc{width:100%}
.wt--moc td:first-child{width:1%;white-space:nowrap;vertical-align:top}
.wt--moc time{font-size:12.5px;color:var(--v3-mo);font-variant-numeric:tabular-nums}
.wt--moc th{text-align:left;font-weight:700;white-space:normal}
.wt--moc td:last-child{color:var(--v3-mo);font-size:13px}
@media (max-width:560px){
  .wt--moc td:first-child,.wt--moc th,.wt--moc td:last-child{display:block;width:auto}
  .wt--moc tr{display:block;padding:6px 0;border-bottom:1px solid var(--v3-vien)}
  .wt--moc td:last-child:empty{display:none}
}

/* ── o phien ban Bedrock duoc JS to mau theo nhom (xem `toMauBan` trong mcw-ct.js)
   ⛔ Chi them VACH TRAI + nen khi ro chuot: cac o nay la `.w-cell` dung chung voi
      hang chuc danh sach khac tren site. Doi ca nen/vien cua chung thi moi danh sach
      kia cung doi theo. */
.w-cell--pha{border-left:3px solid var(--pha-c,var(--v3-nhan))}
.w-cell--pha:hover{background:var(--pha-n,var(--v3-nen2));
                   border-color:var(--pha-v,var(--v3-nhan));
                   border-left-color:var(--pha-c,var(--v3-nhan))}
.v3-chugiai .v3-pha{margin:0 2px}

/* ═══ KHU /game/ DUNG KHUNG TRANG CHU ══════════════════════════════════════════
   Chu site 25/10: *"Thiết kế trang này sao không giống các cấu trúc khối, nội dung ở
   trang chủ? … Theo layout trang chủ rồi bố trí các phần cho phù hợp với từng khối"*.
   13.982 trang khu /game/ chuyen tu `.w-shell` ba cot sang `.v3-cols` hai cot.
   Phan duoi chi la nhung manh con THIEU sau khi chuyen — khung chinh dung lai y
   nguyen luat cua trang chu o dau tep nay.
   ════════════════════════════════════════════════════════════════════════════ */
.v3-crumb{font-size:12.5px;color:var(--v3-mo);margin:0 0 8px;line-height:1.5}
.v3-crumb a{color:var(--v3-mo);text-decoration:none}
.v3-crumb a:hover{color:var(--v3-nhan);text-decoration:underline}

/* icon canh tieu de — truoc day la `.w-head__ic` */
.v3-dau__ic{width:46px;height:46px;flex:0 0 auto;object-fit:contain;
            image-rendering:pixelated;border-radius:9px;background:var(--v3-nen2);
            border:1px solid var(--v3-vien);padding:5px}
.v3-dau__t{display:flex;align-items:center;gap:12px}
.v3-dau__t > div{min-width:0}

/* ⛔ `.w-lead` nam NGAY duoi `.v3-dau`, ngoai moi khoi. De nguyen kieu cu thi no dinh
      sat tieu de va rong het 1760px — doc mot doan van dai het man hinh rat met. */
body.v3 .w-lead{margin:0 0 12px;max-width:95ch}
body.v3 .w-lead p{margin:0 0 8px;line-height:1.6;font-size:14.5px}
body.v3 .w-lead > :last-child{margin-bottom:0}

/* muc luc o COT PHAI (truoc day la cot thu ba ben trai) */
.v3-box--toc .w-toc{position:static;max-height:none;padding:0;border:0;background:none}
.v3-box--toc ol{margin:0;padding:0;list-style:none;
                display:flex;flex-direction:column;gap:1px}
.v3-box--toc li a{display:block;padding:5px 8px;border-radius:7px;font-size:13.5px;
                  color:var(--v3-chu);text-decoration:none;line-height:1.4}
.v3-box--toc li a:hover{background:var(--v3-nen2);color:var(--v3-nhan)}
.v3-box--toc li.d2 a{padding-left:20px;font-size:13px;color:var(--v3-mo)}
/* ⛔ Tren dien thoai cot phai tut xuong CUOI trang, nen muc luc o do vo dung. Ban gap
      (`.w-toc--gap`) van nam trong than bai lo viec do — an ban cot phai di cho khoi
      hai muc luc chong nhau. */
@media (max-width:1100px){.v3-box--toc{display:none}}

/* bang hai cot trong khoi cot phai (infobox cu) */
.v3-box.w-ib .v3-box__b{padding:0}
.v3-box.w-ib table{width:100%;border-collapse:collapse;font-size:13.5px}
.v3-box.w-ib th,.v3-box.w-ib td{padding:8px 12px;text-align:left;vertical-align:top;
                                border-bottom:1px solid var(--v3-vien)}
.v3-box.w-ib th{width:44%;font-weight:700;color:var(--v3-chu);
                background:var(--v3-nen2)}
.v3-box.w-ib tr:last-child th,.v3-box.w-ib tr:last-child td{border-bottom:0}
.v3-box.w-ib .w-ib__img{padding:12px;text-align:center;
                        border-bottom:1px solid var(--v3-vien)}

/* danh sach "Game source" trong cot phai */
.v3-box .net-list{margin:0;padding:0;list-style:none}
.v3-box .net-list li a{display:flex;justify-content:space-between;gap:10px;
                       padding:6px 8px;border-radius:7px;font-size:13.5px;
                       color:var(--v3-chu);text-decoration:none}
.v3-box .net-list li a:hover{background:var(--v3-nen2);color:var(--v3-nhan)}
.v3-box .net-list em{font-style:normal;color:var(--v3-mo);font-size:12.5px;
                     font-variant-numeric:tabular-nums}

/* dai icon dau bai, gio nam trong mot `.v3-box` */
.v3-box .w-sbox__r{display:flex;flex-wrap:wrap;gap:8px}

/* ⛔ Trong khoi, muc con bat dau tu `<h3>`: `<h2>` da thanh DAU KHOI. Khong dat lai
      margin cho h3/h4 thi chung mang margin mac dinh cua khung wiki va de lai dai
      trang y nhu loi `.v3-box__h` da sua hom qua. */
.v3-box__b > h3:first-child,.v3-box__b > h4:first-child{margin-top:0}
.v3-box__b h3{margin:16px 0 8px;font-size:15.5px;font-weight:700;line-height:1.35}
.v3-box__b h4{margin:13px 0 7px;font-size:14px;font-weight:700}

/* ── hai cho do duoc 25/10 sau khi chuyen khung ────────────────────────────────
   ⛔ (1) 28/1668 ten vat pham bi cat (`Bordure Indented Banner Pattern` can 189px, o
      chi rong 134px). Co dau `…` nen khong phai loi ve, nhung ten bi cat thi doc gia
      khong biet do la gi — ma ten CHINH LA noi dung cua o. Cho xuong hai dong.
   ⛔ Phai chot `-webkit-line-clamp:2` chu khong tha tu do: ten dai 4 dong thi cac o
      trong mot hang cao thap khong deu, luoi gay het. */
/* ⛔ Phan lon o chi co `<span>Ten</span>`, KHONG co `<b>` ben trong — toi vua nham
      mot luot vi chi nham vao `span > b`. Phai cham ca hai dang. */
body.v3 .v3-box__b .w-cell > span,
body.v3 .v3-box__b .w-cell span > b{white-space:normal;display:-webkit-box;
      -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
      line-height:1.25}
/* o co ca `<b>` lan `<em>` thi van phai xep DOC hai dong, khong gop thanh mot khoi */
body.v3 .v3-box__b .w-cell > span:has(> b){display:flex;flex-direction:column;
      justify-content:center}
body.v3 .v3-box__b .w-cell{min-height:44px}

/* ⛔ (2) 31/32 muc danh sach cot phai bi xuong dong: the `<a>` van `display:block` vi
      khung wiki co luat `#rsidebar …` — bo chon co ID nen THANG moi luat chi dung lop
      cua toi, du toi viet sau. Phai co ID trong bo chon moi de len duoc.
      Do that: a=block, b=block, `<b>` va `<em>` lech nhau 19px theo chieu doc. */
#rsidebar .v3-box .net-list li a{display:flex;align-items:baseline;
      justify-content:space-between;gap:10px;padding:6px 8px;border-radius:7px;
      font-size:13.5px;color:var(--v3-chu);text-decoration:none}
#rsidebar .v3-box .net-list li a > b{display:inline;font-weight:600;min-width:0;
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#rsidebar .v3-box .net-list li a > em{display:inline;flex:0 0 auto;font-style:normal;
      color:var(--v3-mo);font-size:12.5px;font-variant-numeric:tabular-nums}
#rsidebar .v3-box .net-list li a:hover{background:var(--v3-nen2);color:var(--v3-nhan)}

/* ── o LOC tren trang muc luc ──────────────────────────────────────────────────
   ⛔ Mac dinh HIEN het; JS chi an bot khi go. Khong duoc viet
      `.w-grid > a{display:none}` roi doi JS bat lai — tat JS la trang trong. */
.w-loc{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.w-loc__l{display:flex;align-items:center;gap:8px;flex:1 1 320px;max-width:560px;
          border:1px solid var(--v3-vien);border-radius:10px;padding:0 12px;
          background:var(--v3-nen)}
.w-loc__l:focus-within{border-color:var(--v3-nhan);
                       box-shadow:0 0 0 3px rgba(45,125,70,.14)}
.w-loc__l > span{flex:0 0 auto;font-size:11.5px;font-weight:700;letter-spacing:.06em;
                 text-transform:uppercase;color:var(--v3-mo)}
.w-loc__l input{flex:1 1 auto;min-width:0;border:0;outline:0;background:none;
                padding:10px 0;font:inherit;font-size:14.5px;color:var(--v3-chu)}
.w-loc__d{font-size:12.5px;color:var(--v3-mo);font-variant-numeric:tabular-nums}
/* khi dang loc thi thanh nhay nhom khong con dung nghia — lam mo di cho do roi mat */
.w-loc--co ~ .w-chips{opacity:.45}

/* ⛔ O THE chua mot tu dai khong co cho ngat (`#blocks_motion_no_leaves`,
   `#sulfur_cube_archetype/fast_...`). `white-space:normal` khong cuu duoc vi khong co
   dau cach nao de xuong dong — phai cho phep ngat GIUA TU, khong thi van cut. */
body.v3 .w-cell--the > span{overflow-wrap:anywhere;word-break:break-word;
      -webkit-line-clamp:2;line-height:1.25}
body.v3 .w-cell--the{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
      font-size:12.5px}

/* ⛔⛔⛔ COT PHAI KHONG DUOC BI BOP
   Do that 25/10 tren `/game/version/b1.8.1/`: `#rsidebar` thua `max-height:896px` +
   `position:sticky` + `overflow:auto` tu khung CU (`.w-side`), ma cac khoi ben trong
   la muc flex co `flex-shrink:1`. Ket qua: **ca ba khoi deu bi bop** —
       hop thong tin  205px / can 413px
       muc luc         92px / can 182px
       hop Download   557px / can 1129px
   roi `.v3-box{overflow:hidden}` cat phan thua. Nut "Download client" chi hien mot
   nua — dung cai chu site chup anh gui ve. Khong mot loi nao bao.

   ⛔ Sua bang `flex:0 0 auto` KHONG du: khong bop nua thi 1.724px noi dung chui vao
      o cao 896px co `overflow:auto` ⇒ thanh mot vung cuon long trong trang, tren dien
      thoai gan nhu khong dung duoc.
   ⇒ Tra cot phai ve dung kieu TRANG CHU: chay theo trang, khong ghim, khong tu cuon.
      `.v3-rail` o trang chu von la `position:static` — day chi la tra lai cho dung. */
#rsidebar.v3-rail{position:static;max-height:none;height:auto;overflow:visible}
#rsidebar.v3-rail > *{flex:0 0 auto}

/* ═══ KHUNG CHU KY PHAT HANH ═══════════════════════════════════════════════════
   Chu site 25/10: *"Đổi kiểu thiết kế khác đi. Nhìn kiểu này giống AI. Thể hiện
   Latest version cho rõ ràng. Tô màu nổi bật Latest lên"*.

   Ban cu: moi nhom mot KHOI NEN PASTEL to — deu nhau, mem nhu nhau, khong cho biet
   cai nao quan trong. Do la cai lam no "nhin giong AI": mau trai deu, khong co thu bac.

   Ban nay doi ba thu:
     1. Nen TRANG, chi mot vach mau 3px ben trai → mau tro thanh dau hieu, khong phai
        mang nen.
     2. So phien ban to, chu DANG MAY (`tabular-nums`) → day la bang du lieu, khong
        phai mot tam poster.
     3. CHI ban moi nhat duoc to dam: vien xanh day, nhan "Latest release" nen dac,
        o phien ban nen xanh. Mot diem nhan tren ca trang.
   ════════════════════════════════════════════════════════════════════════════ */
.ck-ds{display:flex;flex-direction:column;gap:10px}
.ck{border:1px solid var(--v3-vien);border-left:3px solid var(--v3-mo);
    border-radius:8px;background:var(--v3-nen);overflow:hidden}
.ck__d{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
       padding:9px 13px;border-bottom:1px solid var(--v3-vien)}
.ck__so{font-size:19px;font-weight:800;letter-spacing:-.01em;
        font-variant-numeric:tabular-nums;
        font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.ck__ng{margin-left:auto;font-size:12px;color:var(--v3-mo);
        font-variant-numeric:tabular-nums}
.ck-nhan{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
         padding:2px 8px;border-radius:4px;border:1px solid var(--v3-vien);
         color:var(--v3-mo)}
.ck-nhan--lam{border-color:#c4b2e8;color:#5b3ba8;
              background:color-mix(in srgb,#7c3aed 8%,transparent)}

/* ── mot HANG trong chu ky: nhan | so | cac o ─────────────────────────────── */
.ck-h{display:flex;align-items:center;gap:10px;padding:7px 13px;
      border-top:1px solid color-mix(in srgb,var(--v3-vien) 60%,transparent)}
.ck-h:first-of-type{border-top:0}
.ck-h__n{flex:0 0 132px;font-size:11px;font-weight:800;letter-spacing:.07em;
         text-transform:uppercase;color:var(--pha-c,var(--v3-mo));
         display:flex;align-items:center;gap:6px}
.ck-h__n::before{content:"";width:7px;height:7px;border-radius:2px;flex:0 0 auto;
                 background:var(--pha-c,var(--v3-mo))}
.ck-h__d{flex:0 0 auto;min-width:22px;font-size:11.5px;color:var(--v3-mo);
         font-variant-numeric:tabular-nums;text-align:right}
.ck-h__o{display:flex;flex-wrap:wrap;gap:5px;min-width:0;flex:1 1 auto}
.ck-o{display:inline-flex;align-items:baseline;gap:6px;padding:3px 9px;
      border:1px solid var(--v3-vien);border-radius:5px;background:var(--v3-nen);
      color:var(--v3-chu);text-decoration:none;font-size:13px;font-weight:600;
      font-variant-numeric:tabular-nums;white-space:nowrap}
.ck-o:hover{border-color:var(--pha-c,var(--v3-nhan));
            background:var(--pha-n,var(--v3-nen2));text-decoration:none}
.ck-o em{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.05em;
         text-transform:uppercase;color:var(--v3-mo)}
.ck-them{align-self:center;font-size:12px;color:var(--v3-mo);text-decoration:none;
         padding:3px 6px}
.ck-them:hover{color:var(--v3-nhan);text-decoration:underline}

/* ── CHU KY MOI NHAT — diem nhan duy nhat ─────────────────────────────────── */
.ck--moi{border-color:#1b6b34;border-left-width:4px;border-left-color:#1b6b34;
         box-shadow:0 1px 0 rgba(27,107,52,.12),0 0 0 3px rgba(27,107,52,.07)}
.ck--moi .ck__d{background:color-mix(in srgb,#1b6b34 7%,transparent)}
.ck--moi .ck__so{color:#1b6b34}
.ck-nhan--moi{background:#1b6b34;border-color:#1b6b34;color:#fff}
.ck-o--moi{background:#1b6b34;border-color:#1b6b34;color:#fff;font-weight:800}
.ck-o--moi:hover{background:#15572a;border-color:#15572a;color:#fff}
.ck-o--moi em{color:rgba(255,255,255,.78)}

@media (max-width:640px){
  .ck-h{flex-wrap:wrap;gap:6px}
  .ck-h__n{flex:1 1 100%}
  .ck-h__d{order:-1;margin-left:auto}
}
:root.dark .ck-nhan--lam,:root[data-theme="dark"] .ck-nhan--lam
      {border-color:#4d3b85;color:#bda6f2}
:root.dark .ck--moi,:root[data-theme="dark"] .ck--moi
      {border-color:#2f6a45;border-left-color:#2f6a45}
:root.dark .ck--moi .ck__so,:root[data-theme="dark"] .ck--moi .ck__so{color:#7fdca0}

/* ── huy hieu HE MAY (Java / Bedrock) ──────────────────────────────────────────
   Chu site 25/10: *"Có icon Java và Bedrock đặc trưng để phân biệt nữa cho dễ hơn khi
   nhìn thoáng qua"*.
   ⛔ Mau phai la mau NGUOI CHOI DA QUEN, khong phai mau tuy chon: Java gan voi khoi co
      (xanh la), Bedrock voi nhan dien xanh duong cua ban Bedrock. Dat mau nguoc lai
      thi huy hieu lam nguoi doc nhan nham — te hon khong co. */
.ed{display:inline-flex;align-items:center;gap:5px;vertical-align:middle;
    padding:2px 9px;border-radius:5px;font-size:11px;font-weight:800;
    letter-spacing:.07em;text-transform:uppercase;color:#fff;white-space:nowrap}
.ed::before{content:"";width:8px;height:8px;border-radius:2px;
            background:rgba(255,255,255,.85);flex:0 0 auto}
.ed--java{background:#3a7d34}
.ed--be{background:#1d5e94}
h2 .ed,h3 .ed{margin-right:7px;position:relative;top:-2px}

/* ── FIXES ────────────────────────────────────────────────────────────────────
   ⛔ Ma loi la thu doc gia QUET MAT tim (`MC-102732`), nen phai dang MAY DOC, rong
      co dinh, va noi mau — khong duoc tron vao cau chu. */
.fx{list-style:none;margin:0 0 14px;padding:0;
    display:flex;flex-direction:column;gap:1px}
.fx li{display:flex;gap:10px;align-items:baseline;padding:4px 8px;border-radius:6px;
       font-size:13.5px;line-height:1.45}
.fx li:nth-child(even){background:color-mix(in srgb,var(--v3-nen2) 55%,transparent)}
.fx li:hover{background:var(--v3-nen2)}
.fx-ma{flex:0 0 108px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
       font-size:12.5px;font-weight:700;color:#1d4ed8;text-decoration:none}
.fx-ma:hover{text-decoration:underline}
.fx li > span{min-width:0}
.fx-gap{margin:0 0 12px}
.fx-gap > summary{cursor:pointer;font-size:14px;font-weight:700;padding:7px 9px;
                  border:1px solid var(--v3-vien);border-radius:8px;
                  background:var(--v3-nen2);list-style:none}
.fx-gap > summary::-webkit-details-marker{display:none}
.fx-gap > summary em{font-style:normal;color:var(--v3-mo);font-weight:600}
.fx-gap[open] > summary{border-radius:8px 8px 0 0}
@media (max-width:560px){
  .fx li{flex-wrap:wrap;gap:2px}
  .fx-ma{flex:1 1 100%}
}
:root.dark .fx-ma,:root[data-theme="dark"] .fx-ma{color:#93b4f7}

/* ⛔ Doan mo FULL WIDTH. Chu site: *"Phần mô tả … >> Cho full width để tiết kiệm diện
   tích"*. Tran 95ch truoc day de lai mot dai trong ben phai tren man rong. */
body.v3 .w-lead{max-width:none}

/* ── BA CARD TO tren trang chu ─────────────────────────────────────────────────
   Chu site 25/10: *"Home wiki phải có 3 card to mới đúng"*. Mau nhan dung dung quy uoc
   nguoi choi da quen (xem `.v3-pha--*` o tren): xanh la = ban chinh thuc · tim =
   snapshot · vang = pre-release · xanh duong = Bedrock Preview. */
.v3-3{display:grid;gap:12px;margin:0 0 14px;
      grid-template-columns:repeat(3,minmax(0,1fr))}
.ck--to{display:flex;flex-direction:column}
.ck--to__d{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;
           padding:13px 15px 11px;border-bottom:1px solid var(--v3-vien)}
.ck--to__so{flex:1 1 100%;font-size:clamp(26px,3vw,38px);font-weight:800;
            letter-spacing:-.02em;line-height:1.05;
            font-variant-numeric:tabular-nums;
            font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.ck--to__nh{font-size:11px;font-weight:800;letter-spacing:.08em;
            text-transform:uppercase;color:var(--v3-mo)}
.ck--to__ng{margin-left:auto;font-size:12px;color:var(--v3-mo);
            font-variant-numeric:tabular-nums}
.ck--to .ck-h{padding:7px 15px}
.ck--to .ck-h__n{flex:0 0 104px}
.ck--to__ch{margin-top:auto;padding:10px 15px;border-top:1px solid var(--v3-vien);
            background:var(--v3-nen2)}
.ck--to__ch a{font-size:13px;font-weight:700;color:var(--v3-nhan);
              text-decoration:none}
.ck--to__ch a:hover{text-decoration:underline}
.ck--to.ck--moi .ck--to__so{color:#1b6b34}
.ck--to.ck--moi .ck--to__nh{color:#1b6b34}
@media (max-width:1100px){.v3-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.v3-3{grid-template-columns:minmax(0,1fr)}}
:root.dark .ck--to.ck--moi .ck--to__so,
:root[data-theme="dark"] .ck--to.ck--moi .ck--to__so{color:#7fdca0}

/* ⛔ `chip()` gio tra ve O SO LIEU (`<div><b>gia tri</b><span>nhan</span></div>`) cho
   `.v3-dau__so`. Nhung mot so cho van do chip vao `.w-chips` (hang "+8 Blocks +10
   Items" o khoi "What changed"), va o do cac `<div>` khong co kieu nao — chung dinh
   lien nhau thanh "+8Blocks+10Items", doc khong ra. Do that 25/10.
   ⇒ Cho `.w-chips > div` muon dung kieu chip. */
body.v3 .w-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:stretch}
body.v3 .w-chips > div{display:inline-flex;align-items:baseline;gap:6px;
      padding:4px 11px;border:1px solid var(--v3-vien);border-radius:999px;
      background:var(--v3-nen);font-size:13px;line-height:1.4}
body.v3 .w-chips > div > b{font-weight:800;font-variant-numeric:tabular-nums}
body.v3 .w-chips > div > span{font-size:11.5px;color:var(--v3-mo)}

/* ── dau CARD TO co NEN ANH (thay hai the hero cu) ────────────────────────────
   Chu site 25/10: *"3 card version lớn là tôi muốn thay thế vào luôn 2 card cũ ban đầu
   ấy. Cũng có background tương tự như vậy"*.
   ⛔ Chu PHAI co lop phu toi: anh phong canh Minecraft co vung sang (trời, tuyết), chu
      trang dat thang len la mat chu — dung bay the hero cu da xu ly. */
.ck--to__d--anh{position:relative;min-height:190px;align-items:flex-start;
                align-content:flex-end;padding:14px 16px 13px;color:#fff;
                border-bottom:0;
                background:#1d2228 var(--v3-nen-anh,none) center 32%/cover no-repeat}
.ck--to__d--anh.ck--to__d--java:not([style]){
      background:linear-gradient(135deg,#1f3a24 0%,#24402a 55%,#2d5636 100%)}
.ck--to__d--anh.ck--to__d--be:not([style]){
      background:linear-gradient(135deg,#17334d 0%,#1b3f5e 55%,#215f8c 100%)}
.ck--to__d--anh::after{content:"";position:absolute;inset:0;
      background:linear-gradient(180deg,rgba(8,11,15,.22) 0%,rgba(8,11,15,.10) 34%,
                 rgba(8,11,15,.86) 100%)}
.ck--to__d--anh > *{position:relative;z-index:1}
.ck--to__d--anh .ck--to__so{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.9)}
.ck--to__d--anh .ck--to__nh{color:rgba(255,255,255,.88)}
.ck--to__d--anh .ck--to__ng{color:rgba(255,255,255,.78)}
.ck--to.ck--moi .ck--to__d--anh .ck--to__so{color:#fff}
.ck--to.ck--moi .ck--to__d--anh .ck--to__nh{color:#8ff0b0}
@media (max-width:700px){.ck--to__d--anh{min-height:160px}}

/* ===== _mc_congthuc.css ===== */
/* ═══ CONG THUC KIEU TRONG GAME + TOOLTIP ══════════════════════════════════════
   Chu site 23/10: *"Các khu vực Crafting Recipes hay công thức thuốc hay các công
   thức khác trình bày giống trong game Minecraft như ảnh, di chuyển chuột vào có
   tooltip như trong game."*

   ⛔ KHONG dung JS. Tooltip lam bang `::after` doc tu `data-ten`, nen no chay tren
      ca 740.000 trang tinh ma khong can nap them tep nao, khong co luc "nhap nhay"
      truoc khi JS chay, va khong hong khi mot script khac loi.

   Mau lay dung bang mau giao dien goc cua game:
     nen khung  #c6c6c6   · o trong  #8b8b8b
     vien chim  #373737 (tren/trai) · #ffffff (duoi/phai)
     tooltip    nen #100010 ~94%, vien trong #2d0a63 → #1c0536
   ════════════════════════════════════════════════════════════════════════════ */

.mc-ct{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
       background:#c6c6c6;border:2px solid #8b8b8b;border-radius:3px;
       padding:9px 12px;width:max-content;max-width:100%;
       image-rendering:pixelated}
:root[data-theme="dark"] .mc-ct,
:root:not([data-theme="light"]) .mc-ct{background:#b4b4b4;border-color:#6f6f6f}

/* ── luoi 3x3 (hoac 2x2 / 1 o tuy cong thuc) ─────────────────────────────────── */
.mc-luoi{display:grid;gap:2px;grid-template-columns:repeat(var(--mc-cot,3),1fr)}
.mc-o{position:relative;width:36px;height:36px;background:#8b8b8b;
      border-top:2px solid #373737;border-left:2px solid #373737;
      border-right:2px solid #fff;border-bottom:2px solid #fff;
      display:flex;align-items:center;justify-content:center}
.mc-o img{width:28px;height:28px;object-fit:contain;image-rendering:pixelated}
.mc-o--trong{background:#8b8b8b}

/* O ket qua: to hon, vien day hon — dung nhu khung ket qua trong ban che tao. */
.mc-kq{width:48px;height:48px}
.mc-kq img{width:36px;height:36px}

/* Mui ten giua luoi va ket qua. */
.mc-mui{width:28px;height:22px;flex:0 0 auto;opacity:.72;
        background:currentColor;color:#3b3b3b;
        -webkit-mask:var(--mc-mui) center/contain no-repeat;
        mask:var(--mc-mui) center/contain no-repeat;
        --mc-mui:url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 22'>\
<path d='M0 7h16V0l12 11-12 11v-7H0z'/></svg>")}

/* So luong vat pham, goc duoi phai cua o — dung kieu chu bong cua game. */
.mc-so{position:absolute;right:1px;bottom:-1px;font:700 12px/1 ui-monospace,
       "Cascadia Mono",Consolas,monospace;color:#fff;
       text-shadow:1.5px 1.5px 0 #3f3f3f;pointer-events:none}

/* ── TOOLTIP kieu trong game ────────────────────────────────────────────────── */
/* ⛔ Phai de o `.mc-o` chu khong o `img`: o trong cung can bat chuot (vd o rong cua
      cong thuc hinh dang), va `img` co the bi `onerror` go mat. */
.mc-o[data-ten]{cursor:help}
.mc-o[data-ten]::after,.mc-o[data-ten]::before{
  position:absolute;left:50%;bottom:calc(100% + 7px);
  opacity:0;visibility:hidden;transition:opacity .08s linear;
  pointer-events:none;z-index:60}
.mc-o[data-ten]::after{
  content:attr(data-ten);transform:translateX(-50%);
  white-space:nowrap;padding:4px 7px;
  font:600 12.5px/1.25 ui-monospace,"Cascadia Mono",Consolas,monospace;
  color:#fff;background:rgba(16,0,16,.94);
  border:2px solid #2d0a63;border-image:linear-gradient(#2d0a63,#1c0536) 1;
  box-shadow:0 0 0 2px rgba(16,0,16,.94),0 6px 18px rgba(0,0,0,.45)}
/* mui nhon nho duoi hop, dung mau vien trong cho lien khoi */
.mc-o[data-ten]::before{
  content:"";transform:translateX(-50%) translateY(6px);
  border:5px solid transparent;border-top-color:rgba(16,0,16,.94);bottom:100%}
.mc-o[data-ten]:hover::after,.mc-o[data-ten]:hover::before,
.mc-o[data-ten]:focus-visible::after,.mc-o[data-ten]:focus-visible::before{
  opacity:1;visibility:visible}
/* ⛔ O hang TREN CUNG cua luoi, tooltip bay len se bi khung cuon cat mat. Lat xuong. */
.mc-o[data-ten].mc-o--duoi::after{bottom:auto;top:calc(100% + 7px)}
.mc-o[data-ten].mc-o--duoi::before{bottom:auto;top:100%;
  transform:translateX(-50%) translateY(-6px);
  border-top-color:transparent;border-bottom-color:rgba(16,0,16,.94)}

/* ── hang cong thuc: ten + nguyen lieu + luoi, giong bang ben wiki mau ───────── */
.mc-ctbang{width:100%;border-collapse:collapse;margin:10px 0 16px}
.mc-ctbang th{text-align:left;font-size:12.5px;letter-spacing:.02em;
              background:var(--surface2);border:1px solid var(--line);
              padding:7px 10px;white-space:nowrap}
.mc-ctbang td{border:1px solid var(--line);padding:8px 10px;vertical-align:middle}
.mc-ctbang td.mc-ctbang__ct{background:var(--surface2);width:1%}
.mc-ctbang__ng{font-size:13.5px;line-height:1.7}
.mc-ctbang__ng a{display:inline}

/* Khung cho LUOI DON tren trang cong thuc rieng — to hon mot chut vi no la nhan vat
   chinh cua trang, khong phai mot o trong bang. */
.mc-ctkhung{margin:10px 0 18px}
.mc-ctkhung .mc-ct{padding:13px 16px;gap:13px}
.mc-ctkhung .mc-o{width:44px;height:44px}
.mc-ctkhung .mc-o img{width:34px;height:34px}
.mc-ctkhung .mc-kq{width:58px;height:58px}
.mc-ctkhung .mc-kq img{width:44px;height:44px}
.mc-ctkhung .mc-mui{width:34px;height:26px}
@media (max-width:640px){
  .mc-ctkhung .mc-o{width:36px;height:36px}
  .mc-ctkhung .mc-o img{width:28px;height:28px}
  .mc-ctkhung .mc-kq{width:46px;height:46px}
  .mc-ctkhung .mc-kq img{width:35px;height:35px}
}

/* ═══ LUOI CONG THUC CUA 720.000 TRANG MOD — khoac lai kieu trong game ══════════
   Trang wiki mod DA co luoi che tao (`.rwrap > .recipe > .cgrid > .slot`), con co ca
   `data-cycle` xoay vong cac lua chon cua mot the — tot hon ban toi viet. Nhung no ve
   kieu cu: o trang, vien manh, bo goc 8px.

   ⛔ KHONG ghi lai 720.000 tep de doi markup. The `<script>`/`<link>` nam trong khoi
      SSI `/hf/head.html`, nen chi can khoac lai bang CSS la ca 720.000 trang doi cung
      luc, va lui lai cung chi mot dong.
   ⛔ Giu nguyen `.result .slot.big` va `data-cycle` — do la hai thu dang chay dung.
   ════════════════════════════════════════════════════════════════════════════ */
/* ⛔ `width:max-content` — khong co no thi khung xam keo het chieu ngang cot noi
   dung, de thua mot mang xam trong ben phai o ket qua. Chi anh chup moi thay. */
.recipe{background:#c6c6c6;border:2px solid #8b8b8b;border-radius:3px;
        padding:9px 12px;gap:10px;image-rendering:pixelated;
        width:max-content;max-width:100%}
:root[data-theme="dark"] .recipe,
:root:not([data-theme="light"]) .recipe{background:#b4b4b4;border-color:#6f6f6f}
.cgrid{gap:2px}
.slot{width:40px;height:40px;background:#8b8b8b;border-radius:0;
      border-top:2px solid #373737;border-left:2px solid #373737;
      border-right:2px solid #fff;border-bottom:2px solid #fff;position:relative}
.slot img{width:30px;height:30px}
.result .slot.big{width:52px;height:52px;border-radius:0}
.result .slot.big img{width:40px;height:40px}
/* mui ten giua luoi va ket qua: trang mod dung chu `→`, cho no dam va cung mau */
.recipe .arrow,.recipe .mui{color:#3b3b3b;font-weight:700;opacity:.8}

/* Tooltip kieu trong game cho o cua trang mod. `data-ten` do `mcw-ct.js` chep sang
   tu `title` — chep chu khong giu ca hai, vi de nguyen `title` thi trinh duyet ve
   them mot tooltip he dieu hanh nua, thanh ra hai cai chong nhau. */
.slot[data-ten]{cursor:help}
.slot[data-ten]::after{
  content:attr(data-ten);position:absolute;left:50%;bottom:calc(100% + 7px);
  transform:translateX(-50%);white-space:nowrap;padding:4px 7px;z-index:60;
  opacity:0;visibility:hidden;transition:opacity .08s linear;pointer-events:none;
  font:600 12.5px/1.25 ui-monospace,"Cascadia Mono",Consolas,monospace;
  color:#fff;background:rgba(16,0,16,.94);
  border:2px solid #2d0a63;border-image:linear-gradient(#2d0a63,#1c0536) 1;
  box-shadow:0 0 0 2px rgba(16,0,16,.94),0 6px 18px rgba(0,0,0,.45)}
.slot[data-ten]:hover::after,.slot[data-ten]:focus-visible::after{
  opacity:1;visibility:visible}
/* ⛔ Hang TREN CUNG cua luoi: tooltip bay len bi khung cuon cat. Lat xuong duoi. */
.cgrid > .slot:nth-child(-n+3)[data-ten]::after{bottom:auto;top:calc(100% + 7px)}

@media (max-width:640px){
  .slot{width:34px;height:34px}
  .slot img{width:26px;height:26px}
  .result .slot.big{width:44px;height:44px}
  .result .slot.big img{width:34px;height:34px}
  .recipe{padding:7px 9px;gap:7px}
}

/* ── nau / dap / cat da: mot nguyen lieu, co them so lieu ────────────────────── */
.mc-ct__so{font-size:12px;color:#3b3b3b;line-height:1.35}
.mc-ct__so b{display:block;font-size:13px;color:#1c1c1c}

@media (max-width:640px){
  .mc-o{width:32px;height:32px}
  .mc-o img{width:25px;height:25px}
  .mc-kq{width:42px;height:42px}
  .mc-kq img{width:32px;height:32px}
  .mc-ct{padding:7px 9px;gap:7px}
  /* ⛔ Bang cong thuc tren dien thoai: cot nguyen lieu bop lai cho luoi du cho,
     khong thi luoi 3x3 (120px) day bang tran ra ngoai man 412px. */
  .mc-ctbang th,.mc-ctbang td{padding:6px 7px}
  .mc-ctbang__ng{font-size:12.5px}
}

/* ═══ KHUNG TUI DO — bang minh hoa "block and item additions" ══════════════════
   Chu site 25/10 (kem anh cua minecraft.wiki): *"Có cả bảng minh họa thế này nữa"*.
   Dung lai `.mc-o` + `.mc-luoi` + tooltip da co; day chi la CAI KHUNG.

   ⛔ Mau phai dung bang mau GUI that cua Minecraft, khong phai xam tuy chon:
        nen khung  #c6c6c6 · o trong #8b8b8b · vien sang #ffffff · vien toi #555555
      Lech mau thi no thanh "mot cai bang xam", khong con la giao dien trong game.
   ⛔ Vien ve bang `box-shadow` long nhau chu khong `border`: GUI cua Minecraft la vien
      VAT (sang tren-trai, toi duoi-phai), `border` mot mau khong ra duoc.
   ════════════════════════════════════════════════════════════════════════════ */
.mc-khung{display:inline-block;max-width:100%;margin:12px 0 16px;padding:0;
          background:#c6c6c6;
          box-shadow:inset 2px 2px 0 #ffffff, inset -2px -2px 0 #555555,
                     0 1px 3px rgba(0,0,0,.18)}
.mc-khung__t{padding:7px 10px 5px;font:700 14px/1.2 ui-monospace,SFMono-Regular,
             Menlo,Consolas,monospace;color:#3f3f3f;letter-spacing:.01em}
/* ⛔⛔ TUYET DOI khong dat `overflow` o day. Tooltip cua `.mc-o` la `::after` dinh
   tuyet doi vuot ra NGOAI o; mot vung cuon se (1) cat mat tooltip, va (2) tinh phan
   vuot ra do la noi dung cuon duoc nen de ra CA THANH CUON doc lan ngang — khung
   `26.4-snapshot-5` chi co MOT hang ma van hien hai thanh cuon. Chu site chup anh
   25/10. Cho luoi TU XUONG DONG thay vi cuon. */
.mc-khung__b{padding:0 8px 8px}
/* ⛔ Toi da 10 cot nhu minecraft.wiki, nhung hep thi tu bot cot — khong co `auto-fill`
   thi luoi rong hon khung va lai can cuon. */
.mc-khung .mc-luoi{gap:2px;
    grid-template-columns:repeat(auto-fill,minmax(36px,40px))}
/* o trong khung tui do: vien vat NGUOC (lom xuong) nhu o that trong game */
.mc-khung .mc-o{background:#8b8b8b;
                box-shadow:inset 2px 2px 0 #373737, inset -2px -2px 0 #ffffff}
.mc-khung a.mc-o{text-decoration:none}
.mc-khung a.mc-o:hover{background:#9d9d9d}
.mc-khung .w-note{margin:0;padding:0 10px 9px;font-size:12px;color:#4a4a4a}
@media (max-width:560px){
  .mc-khung{display:block}
  .mc-khung .mc-o{width:32px;height:32px}
  .mc-khung .mc-o img{width:24px;height:24px}
  /* ⛔ De nguyen 10 cot tren dien thoai thi luoi rong hon khung va phai cuon ngang
     TRONG mot khung von da nam trong trang cuon doc — do that: 12/124 o nam ngoai
     mep khung. Cho luoi tu xuong dong theo be rong thay vi cuon.
     ⛔ Phai de len `--mc-cot` dat san trong HTML, nen cham thang
     `grid-template-columns`. */
  .mc-khung .mc-luoi{grid-template-columns:repeat(auto-fill,minmax(32px,36px))}
}

/* ── NUT kieu GUI Minecraft (man hinh Controls) ───────────────────────────────
   Chu site 25/10: *"key.mouse cũng có hình mô tả trực quan như trên"*.
   ⛔ Nut cua Minecraft KHONG phai mot hinh chu nhat bo goc: no la nut vat, nen xam
      chuyen sac, vien sang tren-trai / toi duoi-phai, chu trang co bong do. Lam tron
      goc hay do bong mem la ra nut web, khong ra nut game. */
.mc-nut{display:inline-block;min-width:116px;padding:4px 10px;text-align:center;
        font:700 12.5px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
        color:#ffffff;text-shadow:1px 1px 0 #3f3f3f;
        background:linear-gradient(180deg,#8b8b8b 0%,#6e6e6e 100%);
        box-shadow:inset 1px 1px 0 #c6c6c6, inset -1px -1px 0 #373737;
        border:1px solid #000000}
.wt--phim td:nth-child(2){width:1%;white-space:nowrap}
.wt--phim td:first-child{width:1%;white-space:nowrap}
/* icon nho truoc phan mo ta — ve bang CSS, khong them tep anh nao */
.phim-ic{display:inline-block;width:13px;height:15px;margin-right:7px;
         vertical-align:-3px;border:1px solid #5a5a5a;background:#d7d7d7}
.phim-ic--chuot{border-radius:6px 6px 5px 5px;
                background:linear-gradient(180deg,#eeeeee 46%,#d0d0d0 46%)}
.phim-ic--phim{border-radius:2px;
               box-shadow:inset 0 -3px 0 #a8a8a8}
:root.dark .mc-nut,:root[data-theme="dark"] .mc-nut{color:#fff}

/* ===== _mc_bang.css ===== */
/* ═══ BANG BIEU — ke cho khoa hoc, ro rang ════════════════════════════════════
   Chu site 23/10: *"Nhớ để ý kẻ bảng biểu cho khoa học, rõ ràng"*, kem anh mau bang
   trao doi dan lang: tieu de GOM NHOM (`Probability` tren `JE`/`BE`), cot sap xep
   duoc, cot dau GOP O theo bac, va icon vat pham nam ngay truoc ten.

   ⛔ Dat ten rieng `.wt-` chu khong sua `.bang` cu: `.bang` dang dung o 710.000 trang
      mod, doi no la ca site doi hinh cung luc.
   ════════════════════════════════════════════════════════════════════════════ */

.wt{width:100%;border-collapse:separate;border-spacing:0;margin:12px 0 18px;
    font-size:13.5px;line-height:1.45;
    border:1px solid var(--line);border-radius:8px;overflow:hidden;
    background:var(--surface)}
.wt caption{caption-side:top;text-align:left;font-size:12.5px;color:var(--muted);
            padding:0 0 7px}

/* ── dau bang, ke ca dau GOM NHOM hai tang ──────────────────────────────────── */
.wt thead th{background:var(--surface2);font-weight:700;font-size:12.5px;
             text-align:left;padding:8px 10px;vertical-align:middle;
             border-bottom:1px solid var(--line);white-space:nowrap}
/* ⛔ Vach doc PHAI ve bang `border-left` cua o thu hai tro di, khong phai
   `border-right` cua moi o: lam kieu sau thi o cuoi hang ve them mot vach sat vien
   ngoai, nhin day len mot duong doi. */
.wt thead th + th,.wt tbody td + td,.wt tbody th + td,.wt tbody td + th{
  border-left:1px solid var(--line)}
.wt thead tr + tr th{border-top:1px solid var(--line)}
.wt thead th.wt--giua{text-align:center}
/* tang hai cua dau gom nhom (vd `JE` · `BE` nam duoi `Probability`) */
.wt thead th.wt--con{font-size:11.5px;font-weight:700;letter-spacing:.03em;
                     text-align:center;color:var(--accent)}

.wt tbody td,.wt tbody th{padding:7px 10px;vertical-align:middle;
                          border-top:1px solid var(--line)}
.wt tbody tr:first-child td,.wt tbody tr:first-child th{border-top:0}
.wt tbody th{text-align:left;font-weight:700;background:var(--surface2);
             white-space:nowrap}
.wt td.wt--giua,.wt th.wt--giua{text-align:center}
.wt td.wt--so{text-align:right;font-variant-numeric:tabular-nums;
              font-feature-settings:"tnum"}

/* O GOP theo bac (cot dau trai) — nen nhat hon de nhin ra ranh gioi nhom. */
.wt td.wt--gop,.wt th.wt--gop{background:var(--surface2);font-weight:700;
                              white-space:nowrap;vertical-align:middle}
.wt tbody tr.wt--dau td,.wt tbody tr.wt--dau th{border-top:2px solid var(--line)}
.wt tbody tr:hover td{background:var(--surface2)}
.wt tbody tr:hover td.wt--gop{background:var(--surface2)}

/* Huy hieu BAC trong bang trao doi — mau theo thu tu bac trong game. */
.wt-bac{display:inline-block;width:11px;height:11px;margin-right:7px;border-radius:2px;
        vertical-align:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
.wt-bac--1{background:#8d8d8d}   /* Novice     — da */
.wt-bac--2{background:#c38b4a}   /* Apprentice — dong */
.wt-bac--3{background:#d9c04a}   /* Journeyman — vang */
.wt-bac--4{background:#3fa34d}   /* Expert     — luc bao */
.wt-bac--5{background:#4ec3d9}   /* Master     — kim cuong */

/* ── icon vat pham ngay truoc ten, dung kieu bang ben wiki mau ──────────────── */
.wt-ic{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.wt-ic img{width:17px;height:17px;object-fit:contain;image-rendering:pixelated;
           flex:0 0 auto}
.wt-ic .wt-ic__n{white-space:normal}
/* ⛔ Icon mob la ban dung 3D ~260px co nhieu khoang trong quanh con vat. O 17px thi
   con vat chi con ~6px — co anh ma nhu khong co. Co `--to` danh cho mob. */
.wt-ic--to img{width:30px;height:30px}
/* `3 ×` truoc icon: so luong, giong cach bang mau viet `14 × Raw Chicken` */
.wt-sl{color:var(--muted);font-variant-numeric:tabular-nums}

/* ── cot sap xep duoc ───────────────────────────────────────────────────────── */
/* ⛔ Mui ten la mot PHAN TU rieng chu khong phai `::after` cua `th`: `th` con phai
   cho tieu de hai tang, de `::after` thi no de len chu o tang duoi. */
.wt-sx{cursor:pointer;user-select:none}
.wt-sx .wt-sx__m{display:inline-block;margin-left:5px;opacity:.42;font-size:10px;
                 line-height:1;vertical-align:middle}
.wt-sx:hover .wt-sx__m{opacity:.85}
.wt-sx[aria-sort="ascending"] .wt-sx__m,
.wt-sx[aria-sort="descending"] .wt-sx__m{opacity:1;color:var(--accent)}

/* ── tren dien thoai: cho bang cuon ngang thay vi bop chu ───────────────────── */
/* ⛔ Bop cot cho vua 412px thi `Price multiplier` xuong 8 dong, doc khong noi. Bang
   so lieu nhieu cot thi cuon ngang la dung — mien la co bong bao cho nguoi dung biet
   con noi dung ben phai. */
.wt-cuon{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;
         margin:12px 0 18px}
.wt-cuon > .wt{margin:0;min-width:520px}
.wt-cuon::after{content:"";position:absolute;top:0;right:0;bottom:0;width:22px;
                pointer-events:none;opacity:0;transition:opacity .15s;
                background:linear-gradient(90deg,transparent,var(--surface))}
@media (max-width:760px){
  .wt-cuon::after{opacity:1}
  .wt{font-size:12.5px}
  .wt thead th,.wt tbody td,.wt tbody th{padding:6px 8px}
}

/* ═══ TO MAU BANG THEO CHUC NANG CUA O ═════════════════════════════════════════
   Chu site 25/10/2026: *"Nhớ kẻ bảng và tô màu các chỗ, các cột, các nhãn cho rõ
   ràng khoa học"*.

   ⛔ Mau phai mang NGHIA, khong phai trang tri. Mot bang 20 hang ma to 6 mau cho vui
      thi doc gia phai hoc bang mau truoc khi doc duoc bang. O day moi mau mot viec:
        xam  = nhan / ten truong        lam  = dinh danh may doc (id, khoa)
        xanh = co / bat / them          do   = khong / tat / bo
        cam  = gia tri doi              tim  = the (tag)
   ⛔ So PHAI canh phai + `tabular-nums`: cot so canh trai thi khong so sanh duoc hai
      hang voi nhau bang mat, va do chinh la viec duy nhat cua mot cot so.
   ════════════════════════════════════════════════════════════════════════════ */
.wt tbody tr:nth-child(even) > td{background:color-mix(in srgb,var(--surface2) 45%,
                                                       transparent)}
.wt tbody tr:hover > td{background:var(--surface2)}

/* dau bang dinh khi bang dai — mat cot khi cuon la mat nghia ca bang */
.wt--dinh thead th{position:sticky;top:0;z-index:2}

/* cot NHAN (th trong tbody) da co nen xam; them vach mau ben trai cho de bam mat */
.wt tbody th{border-left:3px solid transparent}
.wt tbody tr:hover th{border-left-color:var(--accent,#2d7d46)}

/* ── gia tri theo KIEU ────────────────────────────────────────────────────── */
.wt td.wt--so,.wt td.wt--n{text-align:right;font-variant-numeric:tabular-nums;
                           font-feature-settings:"tnum"}
.wt .wt-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
           font-size:12.5px;padding:1px 6px;border-radius:5px;
           background:color-mix(in srgb,#2563eb 10%,transparent);color:#1d4ed8;
           white-space:nowrap}
.wt .wt-the{display:inline-block;font-size:12px;padding:1px 7px;border-radius:999px;
            background:color-mix(in srgb,#7c3aed 12%,transparent);color:#5b21b6;
            white-space:nowrap}
.wt .wt-co,.wt .wt-khong{display:inline-flex;align-items:center;gap:5px;
            font-size:12px;font-weight:700;padding:1px 9px;border-radius:999px}
.wt .wt-co::before,.wt .wt-khong::before{content:"";width:6px;height:6px;
            border-radius:50%;background:currentColor}
.wt .wt-co{background:color-mix(in srgb,#1b6b34 12%,transparent);color:#1b6b34}
.wt .wt-khong{background:color-mix(in srgb,#9b1c1c 10%,transparent);color:#9b1c1c}

/* ── them / bo / doi — dung chung bang mau voi khu so sanh phien ban ───────── */
.wt td.wt--them,.wt .wt-them{color:#1b6b34;
            background:color-mix(in srgb,#1b6b34 8%,transparent)}
.wt td.wt--bo,.wt .wt-bo{color:#9b1c1c;
            background:color-mix(in srgb,#9b1c1c 8%,transparent)}
.wt td.wt--doi,.wt .wt-doi{color:#9a4e0c;
            background:color-mix(in srgb,#c2630f 10%,transparent)}

/* ── chu giai mau dat ngay tren bang ──────────────────────────────────────── */
.wt-chugiai{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 7px;font-size:12px;
            color:var(--muted)}
.wt-chugiai span{display:inline-flex;align-items:center;gap:5px}
.wt-chugiai i{width:9px;height:9px;border-radius:3px;display:inline-block}

:root.dark .wt .wt-id,:root[data-theme="dark"] .wt .wt-id{color:#93b4f7}
:root.dark .wt .wt-the,:root[data-theme="dark"] .wt .wt-the{color:#c4a8f5}
:root.dark .wt .wt-co,:root[data-theme="dark"] .wt .wt-co{color:#7fdca0}
:root.dark .wt .wt-khong,:root[data-theme="dark"] .wt .wt-khong{color:#f0a0a0}
:root.dark .wt td.wt--them,:root[data-theme="dark"] .wt td.wt--them{color:#7fdca0}
:root.dark .wt td.wt--bo,:root[data-theme="dark"] .wt td.wt--bo{color:#f0a0a0}
:root.dark .wt td.wt--doi,:root[data-theme="dark"] .wt td.wt--doi{color:#f0ae6c}

/* ═══ CAY — cho du lieu VON la cay ═════════════════════════════════════════════
   Chu site: *"Cả cái gì cần bố trí cây hợp lý hơn thì bố trí dạng cây"*.
   The chua the (`#minecraft:logs` → `#minecraft:logs_that_burn` → `#oak_logs` → 8 khoi),
   bang rot, thanh tuu… deu la cay. Truoc day chung bi do thanh danh sach phang: trang
   `logs` chi hien 3 dong `#minecraft:…` va doc gia khong biet ben trong co gi.

   ⛔ Dung `<details>` chu khong phai JS: mo/dong duoc bang ban phim, hoat dong khi JS
      hong, va trinh doc man hinh hieu. Nhanh co con thi mo SAN mot tang dau.
   ⛔ Duong noi ve bang `::before` tren `li`, khong dung ky tu `└─`: ky tu that se bi
      doc len thanh tieng khi dung trinh doc man hinh.
   ════════════════════════════════════════════════════════════════════════════ */
.w-cay{margin:0;font-size:13.5px}
.w-cay ul{list-style:none;margin:0;padding:0 0 0 20px;position:relative}
.w-cay > ul{padding-left:0}
.w-cay li{position:relative;padding:1px 0}
.w-cay ul ul::before{content:"";position:absolute;left:7px;top:0;bottom:10px;
                     width:1px;background:var(--line,#dfe3e8)}
.w-cay ul ul > li::before{content:"";position:absolute;left:-13px;top:14px;width:11px;
                          height:1px;background:var(--line,#dfe3e8)}
.w-cay__d{display:flex;align-items:center;gap:8px;padding:4px 7px;border-radius:7px;
          min-width:0}
.w-cay__d:hover{background:var(--surface2)}
.w-cay__d img{width:20px;height:20px;object-fit:contain;image-rendering:pixelated;
              flex:0 0 auto}
.w-cay__d > a{color:inherit;text-decoration:none;min-width:0;overflow:hidden;
              text-overflow:ellipsis;white-space:nowrap}
.w-cay__d > a:hover{color:var(--accent,#2d7d46);text-decoration:underline}
.w-cay__d em{font-style:normal;flex:0 0 auto;font-size:11.5px;color:var(--muted);
             font-variant-numeric:tabular-nums}
.w-cay details > summary{list-style:none;cursor:pointer}
.w-cay details > summary::-webkit-details-marker{display:none}
.w-cay details > summary .w-cay__d::before{content:"\25B8";flex:0 0 auto;
             font-size:11px;color:var(--muted);transition:transform .12s}
.w-cay details[open] > summary .w-cay__d::before{transform:rotate(90deg)}
/* nut the (nhanh) khac nut la: nhanh dam hon de nhin ra tang */
.w-cay__d--the > a{font-weight:700}
.w-cay__d--the{background:color-mix(in srgb,#7c3aed 7%,transparent)}

/* ===== _mc_gallery.css ===== */
/* ═══ KHU GALLERY — anh chup cua bai, bo tri gon gang ═════════════════════════
   Chu site 23/10: *"Bài nào có video riêng thì tải ảnh video giống auto post (wiki thì
   lượng ảnh nhiều hơn cũng được) >> Cho vào 1 khu vực Gallery riêng và bố trí gọn gàng."*

   Nguon: anh cua chinh bai WordPress (58.270 bai co anh, 531.589 anh, trung binh 9,1
   anh/bai) — da nam san tren CDN `img.9minecraft.net`, khong phai cao, khong phai tai
   lai. 288 bai co them video YouTube thi lay khung `maxresdefault` lam o anh.
   ════════════════════════════════════════════════════════════════════════════ */

.n9gal{margin:14px 0 20px}
.n9gal__g{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}
/* ⛔ O dau to gap doi: dai anh deu tam mot co thi khong co diem nhin, ma anh dau
   thuong la thumbnail — thu dai dien cho ca bai. */
.n9gal__g > :first-child{grid-column:span 2;grid-row:span 2}

.n9gal__o{position:relative;display:block;overflow:hidden;border-radius:9px;
          border:1px solid var(--line);background:var(--surface2);
          aspect-ratio:16/9;text-decoration:none}
.n9gal__o:hover{text-decoration:none;border-color:var(--accent)}
.n9gal__o img{width:100%;height:100%;object-fit:cover;display:block;
              transition:transform .22s ease}
.n9gal__o:hover img{transform:scale(1.035)}

/* Nhan video: tam khien tron + tam giac, de phan biet voi anh tinh. */
.n9gal__v::after{content:"";position:absolute;left:50%;top:50%;width:46px;height:46px;
                 transform:translate(-50%,-50%);border-radius:50%;
                 background:rgba(12,14,18,.68) no-repeat center/18px 20px;
                 box-shadow:0 2px 12px rgba(0,0,0,.4);
                 background-image:url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 20' fill='%23fff'>\
<path d='M0 0l18 10L0 20z'/></svg>")}
.n9gal__v:hover::after{background-color:rgba(200,30,30,.9)}

.n9gal__ct{position:absolute;left:0;right:0;bottom:0;padding:14px 9px 6px;
           color:#fff;font-size:12px;line-height:1.3;
           background:linear-gradient(transparent,rgba(8,11,15,.78));
           opacity:0;transition:opacity .15s}
.n9gal__o:hover .n9gal__ct{opacity:1}

/* ═══ KHUNG XEM ANH NOI (lightbox) ═════════════════════════════════════════════
   Chu site 24/10: *"Gallery là dạng load ảnh nổi ngay trên cửa sổ trình duyệt đó.
   Là kiểu duyệt và xem ảnh đẹp nhất 2026"*.
   Truoc day bam anh la MO TAB MOI toi tep anh tho — mat ca trang dang doc.
   ════════════════════════════════════════════════════════════════════════════ */
/* ⛔ An thanh cuon nen thi phai BU lai dung be rong cua no, khong thi luc mo khung
   ca trang giat sang phai mot doan. */
html.n9lb-mo{overflow:hidden;padding-right:var(--n9lb-bu,0)}
/* An han cac nut noi khi dang xem anh — chung khong con viec gi o day, va de lai
   thi chung nam de len anh hoac bat nham cu cham vuot. */
html.n9lb-mo .toc-nut,html.n9lb-mo .toc-nen,
html.n9lb-mo .n9-hang__mo,html.n9lb-mo .h-bar-mobile{display:none!important}

/* ⛔ z-index phai TREN moi lop noi cua site. Do that khi mo khung tren dien thoai:
   `.w-side` 10005, `.toc-nut` 10004, `.toc-nen` 10003, `.mw-mega` 10001 — de khung o
   9999 thi nut muc luc noi de thang len anh. Chi nhin anh chup moi thay. */
.n9lb{position:fixed;inset:0;z-index:2147483001;display:none;
      background:rgba(8,10,14,.92);backdrop-filter:blur(14px) saturate(120%);
      -webkit-backdrop-filter:blur(14px) saturate(120%)}
.n9lb.mo{display:block;animation:n9lb-hien .16s ease}
@keyframes n9lb-hien{from{opacity:0}to{opacity:1}}

.n9lb__khung{position:absolute;inset:0 0 108px;display:flex;
             align-items:center;justify-content:center;padding:22px}
.n9lb__anh{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;
           box-shadow:0 18px 60px rgba(0,0,0,.6);
           animation:n9lb-vao .2s cubic-bezier(.2,.8,.3,1)}
@keyframes n9lb-vao{from{opacity:0;transform:scale(.96)}
                    to{opacity:1;transform:none}}

.n9lb__x{position:absolute;top:14px;right:16px;z-index:2;width:42px;height:42px;
         border:0;border-radius:999px;cursor:pointer;font-size:26px;line-height:1;
         color:#fff;background:rgba(255,255,255,.12)}
.n9lb__x:hover{background:rgba(255,255,255,.22)}

.n9lb__nav{position:absolute;top:50%;z-index:2;transform:translateY(-50%);
           width:52px;height:52px;border:0;border-radius:999px;cursor:pointer;
           font-size:34px;line-height:1;color:#fff;background:rgba(255,255,255,.12)}
.n9lb__nav:hover{background:rgba(255,255,255,.24)}
.n9lb__nav--t{left:16px}
.n9lb__nav--p{right:16px}
.n9lb__nav[hidden]{display:none}

.n9lb__duoi{position:absolute;left:0;right:0;bottom:0;padding:8px 14px 14px;
            display:flex;flex-direction:column;align-items:center;gap:7px}
.n9lb__dem{color:rgba(255,255,255,.82);font-size:12.5px;font-weight:600;
           letter-spacing:.04em;font-variant-numeric:tabular-nums}
/* dai anh nho: cuon ngang, anh dang xem duoc vien sang */
.n9lb__dai{display:flex;gap:6px;max-width:100%;overflow-x:auto;padding:2px 2px 4px;
           scrollbar-width:none}
.n9lb__dai::-webkit-scrollbar{display:none}
.n9lb__tn{flex:0 0 auto;width:74px;height:46px;padding:0;border:2px solid transparent;
          border-radius:6px;overflow:hidden;cursor:pointer;background:none;
          opacity:.55;transition:opacity .12s,border-color .12s}
.n9lb__tn img{width:100%;height:100%;object-fit:cover;display:block}
.n9lb__tn:hover{opacity:.9}
.n9lb__tn.on{opacity:1;border-color:#fff}

@media (max-width:640px){
  .n9lb__khung{inset:0 0 94px;padding:10px}
  /* ⛔ Nut qua/lai tren dien thoai de sat canh thi de cham nham khi vuot. Thu nho va
     lui vao; vuot ngang van la cach chinh de doi anh. */
  .n9lb__nav{width:42px;height:42px;font-size:27px}
  .n9lb__nav--t{left:6px}
  .n9lb__nav--p{right:6px}
  .n9lb__tn{width:58px;height:38px}
}

@media (max-width:980px){
  .n9gal__g{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  /* ⛔ Tren dien thoai BO o to gap doi: con 2 cot ma o dau chiem ca 2 thi hang dau
     la mot anh don cao 190px, day moi anh khac xuong duoi man — nhin nhu hong luoi. */
  .n9gal__g{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .n9gal__g > :first-child{grid-column:auto;grid-row:auto}
  .n9gal__ct{display:none}
}

/* ===== _doi_ban.css ===== */
/* ═══ KHOI "WHAT CHANGED" — bang them/doi/bo + cay tep ════════════════════════
   Chu site 25/10: *"Nhớ kẻ bảng và tô màu các chỗ, các cột, các nhãn cho rõ ràng
   khoa học. Cả cái gì cần bố trí cây hợp lý hơn thì bố trí dạng cây"* — ap cho ca
   khu Java va khu Bedrock, dung chung mot bo lop.

   ⛔ Dat ten rieng `.w-tb--*` / `.w-cay__x`, KHONG sua `.w-tb` hay `.w-cay` goc:
      hai lop goc dang dung o hang chuc nghin trang, doi chung la ca site doi hinh.
   ⛔ Mau phai do duoc o CA HAI che do. Khong dung mau nen dam voi chu toi — xem
      [[reference_tuong_phan_luoi_an_toan]]: lay `color-mix` tren `--surface` de nen
      luon theo che do, va chu thi dung bien mau da co do tuong phan dat.
   ════════════════════════════════════════════════════════════════════════════ */

:root{--n9-them:#2d7d46;--n9-doi:#9a6700;--n9-bo:#b3261e}
:root:not([data-theme="light"]){}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--n9-them:#6fcf8b;--n9-doi:#e3b341;--n9-bo:#ff8b82}
}
:root[data-theme="dark"]{--n9-them:#6fcf8b;--n9-doi:#e3b341;--n9-bo:#ff8b82}

/* ── ghi chu PHAM VI HEP: "khong do duoc" khac "khong co gi" ─────────────────── */
.w-note--hep{border-left:3px solid var(--n9-doi);
             background:color-mix(in srgb,var(--n9-doi) 8%,var(--surface));
             padding:9px 12px;border-radius:0 7px 7px 0;margin:10px 0 14px}

/* ── con so them / doi / bo ──────────────────────────────────────────────────── */
.w-them{color:var(--n9-them)}
.w-doi{color:var(--n9-doi)}
.w-bo{color:var(--n9-bo)}

/* ── bang "them moi": cot ID mono hep, cot ten dam ───────────────────────────── */
.w-tb--moi td:first-child,.w-tb--chu td:first-child{width:46%;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;max-width:0}
.w-tb--moi td:first-child code,.w-tb--chu td:first-child code{font-size:12px;
  background:var(--surface2);padding:1px 5px;border-radius:5px}
.w-tb--moi thead th:first-child{width:46%}
.w-tb--moi tbody tr:nth-child(odd),.w-tb--chu tbody tr:nth-child(odd),
.w-tb--dem tbody tr:nth-child(odd){background:color-mix(in srgb,var(--surface2) 55%,transparent)}
.w-tb--moi tbody td:last-child{color:var(--text,inherit)}

/* ── bang DEM (texture/sound/ui): so can phai, tung cot mot mau ──────────────── */
.w-tb--dem td{text-align:right;font-variant-numeric:tabular-nums}
.w-tb--dem td:first-child{text-align:left;font-weight:700}
.w-tb--dem thead th{text-align:right}
.w-tb--dem thead th:first-child{text-align:left}
.w-tb--dem thead th:nth-child(2){color:var(--n9-them)}
.w-tb--dem thead th:nth-child(3){color:var(--n9-doi)}
.w-tb--dem thead th:nth-child(4){color:var(--n9-bo)}

/* ── bang chuoi doi chu: ban cu gach ngang, ban moi dam ──────────────────────── */
.w-tb--chu s{color:var(--muted);text-decoration-thickness:1px}
.w-tb--chu td:nth-child(2){color:var(--muted)}

/* ── cay tep: nhanh them/doi/bo co vach mau rieng ───────────────────────────── */
.w-cay--them > .w-cay__d{border-left:3px solid var(--n9-them);padding-left:7px}
.w-cay--doi  > .w-cay__d{border-left:3px solid var(--n9-doi);padding-left:7px}
.w-cay--bo   > .w-cay__d{border-left:3px solid var(--n9-bo);padding-left:7px}

/* ⛔ Danh sach ten tep phai BOC DONG (`flex-wrap`), khong de mot hang dai: mot nhanh
   co 40 ten thi tren dien thoai no keo ca trang tran ngang. */
.w-cay__ds{display:flex;flex-wrap:wrap;gap:4px;padding:2px 0 4px}
.w-cay__ds.w-cay__d{cursor:default}
.w-cay__ds.w-cay__d:hover{background:none}
.w-cay__x{display:inline-block;font-family:var(--mono,ui-monospace,Menlo,Consolas,monospace);
  font-size:11.5px;line-height:1.5;padding:1px 6px;border-radius:5px;
  background:var(--surface2);color:var(--muted);
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== _khung_crumb.css ===== */
/* ═══ BREADCRUMB 9MINECRAFT cho wiki + THU O QUANG CAO RONG ═══════════════════
   Chu site 26/10/2026:
     · "Breadcrumb cua wiki cac trang mod, resource pack >> lam giong het voi breadcrumb
        cua 9minecraft. Co khung rieng"
     · "Kiem tra xem phan quang cao o dau toi thay co khoang trong lon"
   Bo goc: C:\Son\_thiet_ke\breadcrumb-9minecraft\breadcrumb-9minecraft.css
   ⛔ Map vao lop SAN CO `.w-crumb` (717.000 trang dang dung), khong doi ten lop.
   ⛔ Dau `»` do CSS ve — KHONG viet vao HTML (giu schema sach).
   ════════════════════════════════════════════════════════════════════════════ */

.w-crumb.bc9{box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;
  gap:0 6px;margin:0 0 16px;padding:10px 14px;background:#f8fafc;border:1px solid #e2e8f0;
  border-radius:8px;font:400 14px/1.5 Roboto,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  color:#64748b}
.w-crumb.bc9 a{color:#2563eb;font-weight:500;text-decoration:none;transition:color .15s}
.w-crumb.bc9 a:hover{color:#1d4ed8;text-decoration:underline;text-underline-offset:2px}
.w-crumb.bc9 .bc9-home{width:14px;height:14px;display:inline-block;vertical-align:-2px;
  margin-right:4px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232563eb'><path d='M12 2.1L1 12h3v9h6v-6h4v6h6v-9h3z'/></svg>") center/contain no-repeat}
.w-crumb.bc9 [property="itemListElement"]:not(.bc9-last)::after{content:"»";color:#94a3b8;
  font-weight:400;margin-left:6px;user-select:none}
.w-crumb.bc9 .bc9-last{color:#64748b;font-weight:400}
@media (max-width:600px){.w-crumb.bc9{font-size:13px;padding:8px 10px;gap:0 4px}}
:root[data-theme="dark"] .w-crumb.bc9{background:#1a1f24;color:#94a3b8;border-color:#2a3038}
:root[data-theme="dark"] .w-crumb.bc9 a{color:#93c5fd}
:root[data-theme="dark"] .w-crumb.bc9 a:hover{color:#bfdbfe}
:root[data-theme="dark"] .w-crumb.bc9 [property="itemListElement"]:not(.bc9-last)::after{color:#64748b}
:root[data-theme="dark"] .w-crumb.bc9 .bc9-last{color:#cbd5e1}
:root[data-theme="dark"] .w-crumb.bc9 .bc9-home{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2393c5fd'><path d='M12 2.1L1 12h3v9h6v-6h4v6h6v-9h3z'/></svg>")}

/* ── THU O QUANG CAO KHONG LAP DUOC ──────────────────────────────────────────
   ⛔ AdSense auto-ads tu chen o vao trang roi **dat cho 280px** ngay ca khi khong co
      quang cao nao de hien. Do that tren `/mods/`: o o y=171 cao 280px, trong ruot, day
      tieu de trang xuong tan y=461 — dung "khoang trong lon" chu site thay.
   ⛔ Day KHONG phai o cua ta: o cua ta nam o y=4440 (da chuyen xuong duoi tu truoc).
      Phan biet bang `.google-auto-placed` — lop boc cua auto-ads.
   Google dat `data-ad-status="unfilled"` khi khong co quang cao nao duoc phuc vu; thu o
   do lai la cach chinh Google huong dan. */
ins.adsbygoogle[data-ad-status="unfilled"]{display:none!important}
.google-auto-placed:not(:has(ins[data-ad-status="filled"])){min-height:0!important}

/* ===== _noi_u.css ===== */
/* ═══ NOI U THUOC — khoi cong thuc `brewing` co BOT DONG ══════════════════════
   Chu site 26/10/2026 (kem anh minecraft.wiki): *"Ben wiki minh co anh dong the nay
   trong content chi tiet chua?"* — Chua: do 3 trang thuoc/noi u thi **0 GIF, 0 WebP
   dong, 0 CSS animation**. Va sau hon the: 292 cong thuc `brewing` co du lieu nhung
   khong he duoc ve ra (`_ct_ket_qua` chi doc `result`, con u thuoc dung `output`).

   ⛔ Dung CSS, KHONG dung GIF nhu minecraft.wiki:
     · GIF cua ho la anh ben ngoai, nang va khong doi mau theo che do toi;
     · CSS ve duoc o moi kich thuoc, khong them mot yeu cau mang nao, va tat duoc
       bang `prefers-reduced-motion` — thu ma GIF khong lam duoc.
   ⛔ PHAI ton trong `prefers-reduced-motion`: bot chay lien tuc la dung thu gay kho
      chiu cho nguoi nhay cam voi chuyen dong, va trang nay co hang tram khoi.
   ════════════════════════════════════════════════════════════════════════════ */

.mc-ct--u .mc-u{display:inline-grid;grid-template-rows:auto 18px auto;justify-items:center;
  gap:0;padding:6px 10px;border-radius:8px;background:var(--surface2);
  border:1px solid var(--line);position:relative}

/* dong bot chay tu binh thuoc len nguyen lieu — dung dang noi u trong game */
.mc-ct--u .mc-u__bot{position:relative;width:14px;height:18px;display:block;overflow:hidden}
.mc-ct--u .mc-u__bot::before,
.mc-ct--u .mc-u__bot::after{content:"";position:absolute;left:50%;width:4px;height:4px;
  margin-left:-2px;border-radius:50%;background:var(--accent,#2d7d46);opacity:.85;
  animation:mc-bot 1.6s linear infinite}
.mc-ct--u .mc-u__bot::after{animation-delay:.8s;width:3px;height:3px;margin-left:-1.5px}
@keyframes mc-bot{
  0%   {bottom:-4px;opacity:0;transform:translateX(0)}
  15%  {opacity:.9}
  50%  {transform:translateX(3px)}
  85%  {opacity:.9}
  100% {bottom:18px;opacity:0;transform:translateX(-2px)}
}

/* ⛔ Nguoi dung dat "giam chuyen dong" thi DUNG HAN, khong chi lam cham */
@media (prefers-reduced-motion:reduce){
  .mc-ct--u .mc-u__bot::before,
  .mc-ct--u .mc-u__bot::after{animation:none;opacity:.55;bottom:7px}
}

.mc-ct--u .mc-ct__so b{color:var(--accent,#2d7d46)}

/* ===== _dieu_huong.css ===== */
/* ═══ KHOI DIEU HUONG CUOI BAI — nhom chuc nang, bam ra xem ═══════════════════
   Chu site 26/10/2026 (kem anh minecraft.wiki): *"Xem trong site minh co kieu
   Navigation nay chua? Kieu nay nhin cung de hieu cho user."* — Chua co: do 3 trang
   khoi/vat pham/thuc the thi khong trang nao co khoi dieu huong gop nhom o cuoi.

   ⛔ Gop nhom bang `<details>`, khong bang JS: bam duoc bang ban phim, song khi JS
      hong, trinh doc man hinh hieu duoc — cung lua chon nhu khoi cay the.
   ⛔ CHI nhom chua trang dang xem duoc mo san. Mo het thi mot trang vat pham keo theo
      1.668 lien ket ngay trong than HTML.
   ════════════════════════════════════════════════════════════════════════════ */

.n9nav{margin:28px 0 0;border:1px solid var(--line);border-radius:10px;
  background:var(--surface);overflow:hidden}
.n9nav__d{padding:9px 14px;background:var(--surface2);border-bottom:1px solid var(--line);
  font-weight:700;font-size:13px;letter-spacing:.02em;color:var(--muted);
  text-transform:uppercase}

.n9nav__h{border-top:1px solid var(--line)}
.n9nav__h:first-of-type{border-top:0}
.n9nav__h > summary{display:flex;align-items:center;gap:10px;cursor:pointer;
  padding:8px 14px;font-size:13.5px;list-style:none;background:none;
  transition:background .12s}
.n9nav__h > summary::-webkit-details-marker{display:none}
/* ⛔ Mui ten PHAI do CSS ve: `list-style:none` + `::-webkit-details-marker` tat dau
   mac dinh cua trinh duyet, khong ve lai thi khong con dau hieu nao cho biet bam duoc */
.n9nav__h > summary::before{content:"\25B8";flex:0 0 auto;color:var(--muted);
  font-size:11px;transition:transform .14s}
.n9nav__h[open] > summary::before{transform:rotate(90deg)}
.n9nav__h > summary:hover{background:var(--surface2)}
.n9nav__ten{font-weight:600;flex:1 1 auto;min-width:0}
.n9nav__h > summary em{font-style:normal;flex:0 0 auto;font-size:12px;
  color:var(--muted);font-variant-numeric:tabular-nums}

.n9nav__o{display:flex;flex-wrap:wrap;gap:3px 0;padding:2px 14px 12px 36px;
  font-size:13px;line-height:1.6}
/* ⛔ Dau phan cach do CSS ve, KHONG viet "·" vao HTML: viet vao thi nguoi dung boi den
   sao chep se dinh ca dau, va trinh doc man hinh doc ra tung dau mot. */
.n9nav__o > a:not(:last-child)::after{content:"·";color:var(--line);margin:0 7px;
  display:inline-block}
.n9nav__o a{color:var(--link,#2563eb);text-decoration:none}
.n9nav__o a:hover{text-decoration:underline;text-underline-offset:2px}
.n9nav__o a.n9nav__minh{color:var(--text);font-weight:700;cursor:default;
  text-decoration:none;pointer-events:none}
.n9nav__them{font-weight:600}

@media (max-width:600px){
  .n9nav__o{padding-left:22px;font-size:12.5px}
  .n9nav__h > summary{padding:8px 10px}
}
