:root{
  --yellow:#FFCC18; --gold:#F2A50C; --purple:#7A33C8; --violet:#9B5BE8;
  --cyan:#1FC7D4; --cyan-bright:#36E6EC; --pink:#FF5FA9; --green:#7BD64B;
  --orange:#FF7A1A; --red:#FF4326; --ink:#241544; --ink-soft:#3a2a5e;
  --paper:#FFFFFF; --paper-2:#F3F6FB; --paper-3:#E4EAF3; --line:#CBD5E1;
  --shadow:0 18px 40px -22px rgba(36,21,68,.55);
  --f-display:"Baloo 2", system-ui, sans-serif;
  --f-body:"Be Vietnam Pro", system-ui, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:17px}
body{
  min-height:100vh;background:
    linear-gradient(180deg,#f8fbff 0,#eef3f9 360px,#fff 100%);
  color:var(--ink);font-family:var(--f-body);line-height:1.55;-webkit-font-smoothing:antialiased;
}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;opacity:.28;pointer-events:none;
  background-image:radial-gradient(rgba(36,21,68,.13) 1px,transparent 1.2px);
  background-size:18px 18px;
}
a{color:inherit;text-decoration:none} img{display:block;max-width:100%} button,input{font-family:inherit}
button{cursor:pointer;border:0;background:none}
h1,h2,h3,p,a,td,th,span{overflow-wrap:anywhere}

.wiki-topbar{
  position:sticky;top:0;z-index:50;display:grid;grid-template-columns:260px minmax(280px,760px) auto;gap:18px;
  align-items:center;padding:12px clamp(16px,3vw,34px);background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(36,21,68,.16);backdrop-filter:blur(14px);box-shadow:0 10px 28px -24px rgba(36,21,68,.5);
}
.wiki-brand{display:flex;align-items:center;gap:12px;font-family:var(--f-display);font-weight:800;font-size:1.35rem;text-transform:uppercase}
.wiki-brand img{width:76px;height:auto;filter:drop-shadow(0 6px 8px rgba(36,21,68,.22))}
.wiki-brand span{padding:2px 10px;border:3px solid var(--ink);border-radius:10px;background:var(--yellow);box-shadow:3px 3px 0 var(--ink)}
.global-search{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.global-search label{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0)}
.global-search input{
  width:100%;min-height:44px;border:2px solid var(--ink);border-radius:12px;background:var(--paper-2);
  padding:10px 14px;font-weight:700;color:var(--ink);outline:none;
}
.global-search input:focus{background:#fff;border-color:var(--cyan);box-shadow:0 0 0 4px rgba(31,199,212,.18)}
.global-search button,.mobile-index-btn{
  min-height:44px;padding:9px 18px;border:2px solid var(--ink);border-radius:12px;background:var(--cyan-bright);
  color:var(--ink);font-family:var(--f-display);font-weight:800;text-transform:uppercase;box-shadow:3px 3px 0 var(--ink);
}
.search-results{
  position:absolute;left:0;right:86px;top:calc(100% + 8px);z-index:80;display:none;overflow:hidden;
  border:2px solid var(--ink);border-radius:14px;background:#fff;box-shadow:var(--shadow);
}
.search-results.show{display:block}
.search-result{display:grid;gap:2px;padding:12px 14px;border-bottom:1px solid var(--paper-3)}
.search-result:last-child{border-bottom:0}
.search-result:hover{background:var(--paper-2)}
.search-result strong{font-size:.95rem}.search-result span{font-size:.8rem;color:#697386;font-weight:700}
.wiki-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.wiki-actions a{
  min-height:38px;display:inline-flex;align-items:center;padding:7px 13px;border:2px solid rgba(36,21,68,.22);
  border-radius:10px;background:#fff;font-weight:800;font-size:.88rem;
}
.wiki-actions a:hover{border-color:var(--ink);background:var(--yellow)}

.mobile-index{display:none;position:sticky;top:69px;z-index:45;padding:10px 16px;background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.mobile-index-panel{display:none;margin-top:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mobile-index.open .mobile-index-panel{display:grid}
.mobile-index-panel a{padding:9px 10px;border-radius:10px;background:var(--paper-2);font-size:.86rem;font-weight:800}

.wiki-shell{
  width:min(1740px,100%);margin:0 auto;display:grid;grid-template-columns:260px minmax(0,1fr) 320px;gap:22px;
  padding:24px clamp(16px,2.4vw,34px) 56px;
}
.wiki-sidebar,.wiki-rail{position:sticky;top:88px;align-self:start;display:grid;gap:16px;max-height:calc(100vh - 104px);overflow:auto;padding-bottom:8px}
.sidebar-box,.infobox,.toc-box,.featured-box,.article-hero,.notice-card,.wiki-section{
  background:#fff;border:1px solid rgba(36,21,68,.14);border-radius:8px;box-shadow:var(--shadow);
}
.sidebar-box{padding:16px}
.sidebar-box h2,.toc-box h2,.infobox h2,.featured-box h2{
  font-family:var(--f-display);font-weight:800;text-transform:uppercase;line-height:1;font-size:1.15rem;margin-bottom:12px;
}
.identity{background:linear-gradient(135deg,#fff,#eefcff)}
.identity img{width:150px;margin:0 auto 12px}.identity p{font-size:.9rem;color:var(--ink-soft);font-weight:600}
.side-nav,.toc-box{display:grid;gap:6px}
.side-nav a,.toc-box a{
  display:flex;align-items:center;min-height:36px;padding:8px 10px;border-radius:8px;color:var(--ink-soft);
  font-size:.9rem;font-weight:800;
}
.side-nav a:hover,.side-nav a.active,.toc-box a:hover{background:var(--paper-2);color:var(--purple)}
.category-list{display:grid;gap:8px}
.category-list button{
  text-align:left;padding:8px 10px;border-radius:8px;background:var(--paper-2);color:var(--ink-soft);
  font-weight:800;border:2px solid transparent;
}
.category-list button.active{border-color:var(--ink);background:var(--yellow);color:var(--ink)}
.recent-list{display:grid;gap:10px;list-style:none}
.recent-list li{display:grid;gap:2px}.recent-list a{font-weight:800;font-size:.88rem}.recent-list span{color:#758195;font-size:.78rem;font-weight:700}

.wiki-main{min-width:0;display:grid;gap:22px}
.wiki-main > *,.wiki-rail > *,.article-title > div,.class-row > div{min-width:0}
.article-hero{padding:22px;position:relative;overflow:hidden}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:#667085;font-size:.86rem;font-weight:700;margin-bottom:14px}
.breadcrumbs a{color:var(--purple)}
.page-tools{position:absolute;right:18px;top:18px;display:flex;gap:6px;flex-wrap:wrap}
.page-tools button{
  padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#596579;font-weight:800;font-size:.78rem;
}
.page-tools button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.article-title{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:20px;align-items:center}
.overline{color:var(--pink);font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;margin-bottom:6px}
.article-title h1{
  font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(2.6rem,6vw,4.8rem);
  line-height:.9;color:#fff;-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill;text-shadow:4px 5px 0 rgba(36,21,68,.18);margin-bottom:10px;
}
.article-title p:last-child{max-width:72ch;color:var(--ink-soft);font-weight:600;font-size:1rem}
.article-title img{height:210px;width:100%;object-fit:contain;filter:drop-shadow(0 20px 20px rgba(36,21,68,.28))}

.notice-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.notice-card{padding:18px;border-left:8px solid var(--cyan)}
.notice-card.event{border-left-color:var(--pink)}.notice-card span{color:var(--purple);font-weight:900;text-transform:uppercase;font-size:.76rem}
.notice-card h2,.section-heading h2{font-family:var(--f-display);font-weight:800;text-transform:uppercase;line-height:1}
.notice-card h2{font-size:1.35rem}.notice-card p,.section-heading p{color:var(--ink-soft);font-weight:600}

.wiki-section{padding:22px;scroll-margin-top:96px}
.section-heading{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}
.section-heading span{display:inline-flex;margin-bottom:6px;color:var(--cyan);font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem}
.section-heading h2{font-size:2rem;margin-bottom:4px}
.wiki-card.is-hidden{display:none!important}

.class-table{display:grid;gap:10px}
.class-row{
  display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;border:1px solid var(--line);
  border-radius:8px;background:linear-gradient(90deg,#fff,var(--paper-2));
}
.class-row img{width:64px;height:64px;object-fit:contain;image-rendering:pixelated;background:#fff;border:1px solid var(--line);border-radius:8px}
.class-row h3,.timeline h3,.boss-card h3,.patch-item h3{font-family:var(--f-display);font-weight:800;text-transform:uppercase;line-height:1}
.class-row p,.timeline p,.boss-card p,.patch-item p{color:#596579;font-weight:600;font-size:.92rem}
.class-row > span{padding:5px 10px;border-radius:999px;background:var(--ink);color:#fff;font-weight:900;font-size:.76rem;white-space:nowrap}

.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.timeline article{padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--paper-2)}
.timeline b{display:inline-flex;margin-bottom:10px;color:#fff;background:var(--purple);border-radius:999px;padding:4px 10px;font-size:.78rem}
.data-panel{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px}
table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);font-size:.92rem}
th{background:var(--ink);color:#fff;font-family:var(--f-display);font-weight:800;text-transform:uppercase}
td{font-weight:600;color:#4b5870}tbody tr:hover{background:#f8fbff}
.boss-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.boss-card{display:grid;grid-template-columns:150px 1fr;gap:14px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}
.boss-card img{height:100%;min-height:150px;width:100%;object-fit:cover}
.boss-card div{padding:16px 16px 16px 0}.boss-card span{display:inline-flex;margin-top:10px;color:var(--purple);font-weight:900}
.patch-list{display:grid;gap:12px}
.patch-item{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--paper-2)}
.patch-item time{font-weight:900;color:var(--pink)}

.infobox{overflow:hidden}
.infobox h2{padding:14px 16px;margin:0;text-align:center;background:var(--ink);color:#fff}
.infobox img{width:100%;aspect-ratio:16/10;object-fit:cover}
.infobox dl{display:grid}.infobox div{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.infobox dt,.infobox dd{padding:10px 12px;font-size:.86rem}.infobox dt{font-weight:900;background:var(--paper-2)}.infobox dd{font-weight:700;color:#4b5870}
.toc-box,.featured-box{padding:16px}
.featured-box{background:linear-gradient(135deg,#fff7d6,#fff)}
.featured-box span{color:var(--pink);font-weight:900;text-transform:uppercase;font-size:.76rem}
.featured-box p{color:var(--ink-soft);font-weight:600;margin:8px 0 12px}
.featured-box a{display:inline-flex;padding:8px 12px;border-radius:9px;background:var(--yellow);border:2px solid var(--ink);font-weight:900}

.empty-state{padding:20px;border:2px dashed var(--line);border-radius:8px;text-align:center;color:#667085;font-weight:900;background:#fff}

@media (max-width:1280px){
  .wiki-shell{grid-template-columns:230px minmax(0,1fr)}.wiki-rail{position:static;grid-column:2}.wiki-topbar{grid-template-columns:220px 1fr}
  .wiki-actions{grid-column:1/-1;justify-content:flex-start}.wiki-sidebar{top:130px}
}
@media (max-width:960px){
  .wiki-topbar{position:sticky;grid-template-columns:1fr;gap:10px}.wiki-brand img{width:62px}.wiki-actions{display:none}
  .mobile-index{display:block}.wiki-shell{grid-template-columns:1fr;padding-top:18px}.wiki-sidebar{display:none}.wiki-rail{grid-column:auto}
  .article-title{grid-template-columns:1fr}.article-title img{height:170px;order:-1}.page-tools{position:static;margin-bottom:12px}
  .notice-grid,.timeline,.boss-grid{grid-template-columns:1fr}.boss-card{grid-template-columns:120px 1fr}
}
@media (max-width:620px){
  html{font-size:16px}
  .wiki-topbar{padding:10px 14px}.global-search{grid-template-columns:1fr}.global-search button{width:100%}.search-results{right:0}
  .wiki-shell{padding-inline:14px}.article-hero,.wiki-section{padding:16px}.article-title h1{-webkit-text-stroke:1.7px var(--ink);font-size:2.55rem}
  .class-row{grid-template-columns:56px 1fr}.class-row img{width:52px;height:52px}.class-row > span{grid-column:2;justify-self:start}
  .boss-card{grid-template-columns:1fr}.boss-card img{min-height:150px}.boss-card div{padding:16px}.patch-item{grid-template-columns:1fr}
}
