.wiki-shell { padding-block: clamp(28px, 4vw, 44px) clamp(60px, 8vw, 100px); }
.wiki-shell > .container-wide { max-width: 2000px; padding-inline: clamp(20px, 2.5vw, 40px); }

.wiki-layout {
  display: grid;
  grid-template-columns: 258px minmax(0, 1fr) 212px;
  gap: clamp(24px, 3.4vw, 48px);
  align-items: start;
}
.wiki-side { order: 1; }
.wiki-article { order: 2; }
.wiki-rail { order: 3; }
@media (max-width: 1180px) { .wiki-layout { grid-template-columns: 240px minmax(0, 1fr); } .wiki-rail { display: none; } }
@media (max-width: 900px) {
  .wiki-layout { grid-template-columns: minmax(0, 1fr); }
  .wiki-article { order: 1; }
  .wiki-side { order: 2; margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--line); }
}

.wiki-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
  margin-bottom: clamp(22px, 3vw, 34px);
}
.wiki-head-brand { display: flex; align-items: center; gap: 14px; }
.wiki-head-brand img { width: 54px; height: auto; }
.wiki-head-brand p { margin: 0; color: var(--ink-soft); font-size: 14.5px; }
.wiki-head-brand p.wiki-brand {
  font-family: var(--font-display); font-weight: 800; line-height: 1.1;
  color: var(--ink); font-size: clamp(24px, 3vw, 34px); letter-spacing: -0.025em;
}

.wiki-search { position: relative; min-width: min(320px, 100%); }
.wiki-search input {
  width: 100%; padding: 12px 16px 12px 42px;
  font: inherit; font-size: 15px;
  color: var(--ink); background: #fff6f8;
  border: 2px solid var(--petal); border-radius: 14px;
  box-shadow: 0 3px 0 #ffd0da;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
.wiki-search input:hover { border-color: var(--petal-deep); }
.wiki-search input:focus { outline: none; border-color: var(--petal-deep); background: #fff; }
.wiki-search input::placeholder { color: rgba(107, 75, 85, 0.7); }
.wiki-search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 17px; height: 17px; color: var(--petal-deep); pointer-events: none; }

.wiki-side { position: sticky; top: calc(var(--nav-h) + 18px); max-height: calc(100dvh - var(--nav-h) - 36px); overflow-y: auto; padding-right: 4px; }
@media (max-width: 900px) { .wiki-side { position: static; max-height: none; margin-bottom: 30px; } }
.wiki-side-group { margin-bottom: 20px; }
.wiki-side-group > h2 {
  font-size: 11.5px; font-weight: 700; letter-spacing: 0.17em; text-transform: uppercase;
  color: var(--moss-deep); margin-bottom: 9px;
  display: inline-flex; align-items: center; gap: 8px;
}
.wiki-side-group > h2::before {
  content: ""; width: 13px; height: 13px; background: var(--flower);
  -webkit-mask: var(--petal-mark) center / contain no-repeat;
  mask: var(--petal-mark) center / contain no-repeat;
}
.wiki-side-group ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; }
.wiki-side-group a {
  display: block; padding: 7px 11px; border-radius: 9px;
  font-family: var(--font-display); font-weight: 600; font-size: 14.2px;
  color: var(--ink-soft); text-decoration: none;
  transition: color 0.2s var(--ease-soft), background-color 0.2s var(--ease-soft);
}
.wiki-side-group a:hover { color: var(--petal-deep); background: rgba(255, 185, 199, 0.12); }
.wiki-side-group a[aria-current="page"] { color: var(--petal-deep); background: rgba(255, 185, 199, 0.16); }
.wiki-side-group .is-missing {
  display: block; padding: 7px 11px;
  font-family: var(--font-display); font-weight: 600; font-size: 14.2px;
  color: var(--ink-soft); cursor: default;
}
.wiki-side-group .is-missing::after { content: " · soon"; font-size: 11px; letter-spacing: 0.06em; }

.wiki-rail { position: sticky; top: calc(var(--nav-h) + 18px); }
.wiki-rail h2 { font-size: 11.5px; font-weight: 700; letter-spacing: 0.17em; text-transform: uppercase; color: var(--moss-deep); margin-bottom: 10px; }
.wiki-rail ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; border-left: 2px solid var(--line); }
.wiki-rail a { display: block; padding: 5px 0 5px 13px; margin-left: -2px; border-left: 2px solid transparent; font-size: 13.6px; color: var(--ink-soft); text-decoration: none; }
.wiki-rail a:hover { color: var(--petal-deep); }
.wiki-rail a.active { color: var(--petal-deep); border-left-color: var(--petal-deep); font-weight: 600; }
.wiki-rail li.lvl-3 a { padding-left: 24px; font-size: 13px; }

.wiki-article { min-width: 0; min-height: 78vh; }
.wiki-side { min-height: 40vh; }
@media (max-width: 900px) { .wiki-side { min-height: 0; } }
.wiki-crumbs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13.5px; color: var(--ink-soft); margin-bottom: 12px; }
.wiki-crumbs a { color: var(--petal-deep); text-decoration: none; font-weight: 600; }
.wiki-crumbs a:hover { text-decoration: underline; }

.wiki-title { font-size: clamp(32px, 4.4vw, 52px); letter-spacing: -0.03em; margin-bottom: 10px; }
.wiki-meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 26px; padding-bottom: 20px; border-bottom: 1px solid var(--line); font-size: 13.5px; color: var(--ink-soft); }
.wiki-meta a { color: var(--petal-deep); font-weight: 600; text-decoration: none; }
.wiki-meta a:hover { text-decoration: underline; }

.mw-parser-output { font-size: 16.5px; line-height: 1.72; }
.mw-parser-output > *:first-child { margin-top: 0; }
.mw-parser-output > aside.portable-infobox:first-child + *,
.mw-parser-output > aside.portable-infobox:first-child + * > h2:first-child,
.mw-parser-output > aside.portable-infobox:first-child + h2,
.mw-parser-output > .mw-heading:first-child > h2,
.mw-parser-output > h2:first-child { margin-top: 0; }
.mw-parser-output p { margin: 0 0 1.05em; }
.mw-parser-output a { color: var(--petal-deep); text-decoration: none; border-bottom: 1px solid rgba(255, 185, 199, 0.36); }
.mw-parser-output a:hover { border-bottom-color: var(--petal-deep); }

.mw-parser-output h2,
.mw-parser-output .mw-heading2 h2 {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(23px, 2.6vw, 30px); letter-spacing: -0.02em;
  margin: 2em 0 0.6em; padding-bottom: 10px;
  border-bottom: 2px solid var(--line);
  scroll-margin-top: calc(var(--nav-h) + 22px);
}
.mw-parser-output h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(18.5px, 2vw, 22px); margin: 1.7em 0 0.5em; scroll-margin-top: calc(var(--nav-h) + 22px); }
.mw-parser-output h4 { font-family: var(--font-display); font-weight: 700; font-size: 17px; margin: 1.4em 0 0.4em; }
.mw-parser-output .mw-heading { scroll-margin-top: calc(var(--nav-h) + 22px); }

.mw-parser-output ul, .mw-parser-output ol { margin: 0 0 1.1em; padding-left: 1.35em; }
.mw-parser-output li { margin-bottom: 0.42em; }
.mw-parser-output ul { list-style: none; padding-left: 0; }
.mw-parser-output ul > li { position: relative; padding-left: 26px; }
.mw-parser-output ul > li::before {
  content: ""; position: absolute; left: 0; top: 0.56em;
  width: 12px; height: 12px; background: var(--petal);
  -webkit-mask: var(--petal-mark) center / contain no-repeat;
  mask: var(--petal-mark) center / contain no-repeat;
}
.mw-parser-output ul ul > li::before { background: var(--leaf); }

.mw-parser-output dl { margin: 0 0 1.1em; }
.mw-parser-output dt { font-family: var(--font-display); font-weight: 700; }
.mw-parser-output dd { margin: 0 0 0.5em 1.2em; color: var(--ink-soft); }

.mw-parser-output blockquote {
  margin: 1.4em 0; padding: 16px 22px;
  background: var(--card-warm); border-left: 4px solid var(--petal);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-style: italic; color: var(--ink-soft);
}
.mw-parser-output code, .mw-parser-output kbd, .mw-parser-output samp {
  font-family: var(--font-mono); font-size: 0.9em;
  background: rgba(101, 117, 26, 0.13); color: var(--moss-deep);
  padding: 2px 6px; border-radius: 6px;
}
.mw-parser-output pre {
  font-family: var(--font-mono); font-size: 13.5px;
  background: #22300f; color: var(--flower);
  padding: 16px 18px; border-radius: var(--radius-sm); overflow-x: auto;
}
.mw-parser-output pre code { background: none; color: inherit; padding: 0; }
.mw-parser-output hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }

.mw-parser-output table.wikitable,
.mw-parser-output table {
  width: 100%; border-collapse: collapse; margin: 1.4em 0;
  font-size: 15px; background: var(--card);
  border: 1px solid var(--line);
}
.mw-parser-output table th, .mw-parser-output table td { padding: 11px 15px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.mw-parser-output table th { font-family: var(--font-display); font-weight: 700; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--moss-deep); background: var(--card-warm); }
.mw-parser-output table tr:last-child td { border-bottom: 0; }
.mw-parser-output table caption { font-family: var(--font-display); font-weight: 700; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--petal-deep); text-align: left; padding: 0 0 10px; }
.wiki-table-scroll {
  overflow-x: auto; margin: 1.4em 0; -webkit-overflow-scrolling: touch;
  border-radius: var(--radius);
}
.wiki-table-scroll > table { margin: 0; min-width: 460px; border-radius: var(--radius); }
.wiki-table-scroll > table > caption { padding-left: 2px; }

.mw-parser-output figure,
.mw-parser-output .thumb {
  margin: 1.5em 0; padding: 0;
  border-radius: var(--radius); overflow: hidden;
  background: var(--card-warm); border: 1px solid var(--line);
}
.mw-parser-output figure, .mw-parser-output .thumb { width: fit-content; max-width: 100%; }
.mw-parser-output figure img, .mw-parser-output .thumb img { display: block; max-width: 100%; width: auto; height: auto; }
.mw-parser-output figcaption, .mw-parser-output .thumbcaption {
  padding: 11px 16px; font-size: 13.6px; color: var(--ink-soft); background: var(--card-warm);
  contain: inline-size;
}
.mw-parser-output figcaption:empty, .mw-parser-output .thumbcaption:empty { display: none; }
.mw-parser-output td figure, .mw-parser-output td .thumb {
  margin: 0; border: 0; border-radius: 0; background: none; overflow: visible;
}
.mw-parser-output tr:has(figure) > td, .mw-parser-output tr:has(.thumb) > td { vertical-align: middle; }
.mw-parser-output figure a, .mw-parser-output .thumb a { border-bottom: 0; }
.mw-parser-output .floatright, .mw-parser-output .tright { float: right; margin-left: 24px; max-width: 44%; }
.mw-parser-output .floatleft, .mw-parser-output .tleft { float: left; margin-right: 24px; max-width: 44%; }
@media (max-width: 700px) {
  .mw-parser-output .floatright, .mw-parser-output .tright,
  .mw-parser-output .floatleft, .mw-parser-output .tleft { float: none; margin: 1.5em 0; max-width: 100%; }
}

.mw-parser-output .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: 12px; list-style: none; margin: 1.5em 0; padding: 0; }
.mw-parser-output .gallerybox { width: auto !important; margin: 0; }
.mw-parser-output .gallerybox > div { width: auto !important; }
.mw-parser-output .thumb, .mw-parser-output .gallerybox .thumb { margin: 0; }
.mw-parser-output .gallerytext { font-size: 13px; color: var(--ink-soft); padding: 8px 10px; }

.mw-parser-output .portable-infobox {
  float: right; width: min(300px, 100%); margin: 0 0 24px 28px;
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); overflow: hidden;
  box-shadow: 0 3px 0 var(--card-warm);
  font-size: 14.5px;
}
@media (max-width: 760px) { .mw-parser-output .portable-infobox { float: none; width: 100%; margin: 0 0 24px; } }
.mw-parser-output .pi-title {
  position: relative;
  margin: 0; padding: 14px 18px 16px;
  font-family: var(--font-display); font-weight: 800; font-size: 18px;
  background: var(--petal-light); color: var(--plum); border-bottom: 0;
}
.mw-parser-output .pi-title::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px;
  background: linear-gradient(90deg, var(--petal-deep) 0 50%, var(--moss-deep) 50% 100%);
}
.mw-parser-output .pi-image { width: auto; margin: 0; padding: 16px; background: var(--card-warm); border: 0; border-radius: 0; }
.mw-parser-output .pi-image img { margin-inline: auto; width: auto; max-width: 100%; }
.mw-parser-output .pi-header {
  margin: 0; padding: 10px 18px;
  font-family: var(--font-display); font-size: 11.5px; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase; color: var(--moss-deep);
  background: var(--card-warm); border: 0;
}
.mw-parser-output .pi-data { display: grid; grid-template-columns: 1fr 1.2fr; gap: 10px; padding: 10px 18px; border-top: 1px solid var(--line); }
.mw-parser-output .pi-data-label { margin: 0; font-family: var(--font-display); font-size: 13.5px; font-weight: 700; color: var(--ink); }
.mw-parser-output .pi-data-value { font-size: 14px; color: var(--ink-soft); }
.mw-parser-output .pi-data-value ul { margin: 0; }
.mw-parser-output .pi-item-spacing { padding-inline: 18px; }

.mw-parser-output .hatnote, .mw-parser-output .ambox, .mw-parser-output .notice {
  margin: 0 0 1.4em; padding: 12px 18px;
  background: var(--card-warm); border: 1px dashed var(--line-strong);
  border-radius: var(--radius-sm);
  font-size: 14.5px; color: var(--ink-soft); font-style: italic;
}

.wiki-redlink { color: var(--ink-soft); border-bottom: 1px dotted rgba(107, 74, 83, 0.55); cursor: help; }

.wiki-skeleton { display: grid; gap: 14px; }
.wiki-skeleton span {
  display: block; height: 15px; border-radius: 7px;
  background: linear-gradient(90deg, var(--card-warm) 0%, var(--paper-tint) 50%, var(--card-warm) 100%);
  background-size: 220% 100%;
  animation: wikiShimmer 1.4s linear infinite;
}
.wiki-skeleton span:nth-child(1) { width: 46%; height: 34px; }
.wiki-skeleton span:nth-child(2) { width: 92%; }
.wiki-skeleton span:nth-child(3) { width: 86%; }
.wiki-skeleton span:nth-child(4) { width: 94%; }
.wiki-skeleton span:nth-child(5) { width: 62%; }
@keyframes wikiShimmer { to { background-position: -220% 0; } }
@media (prefers-reduced-motion: reduce) { .wiki-skeleton span { animation: none; } }

.wiki-state { padding: 34px; border-radius: var(--radius); background: var(--card-warm); border: 1px solid var(--line); text-align: center; }
.wiki-state img { width: 148px; margin: 0 auto 18px; }
.wiki-state h2 { margin-bottom: 10px; }
.wiki-state p { color: var(--ink-soft); max-width: 46ch; margin-inline: auto; }

.wiki-results { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.wiki-result {
  display: block; padding: 18px 20px; border-radius: var(--radius);
  background: var(--card); border: 1px solid var(--line);
  box-shadow: 0 3px 0 var(--card-warm);
  text-decoration: none; color: inherit;
  transition: transform 0.24s var(--ease-soft), box-shadow 0.24s var(--ease-soft), border-color 0.24s var(--ease-soft);
}
.wiki-result:hover { border-color: var(--petal); }
.wiki-result h3 { font-size: 18px; margin-bottom: 6px; color: var(--petal-deep); overflow-wrap: anywhere; }
.wiki-result p { margin: 0; font-size: 14.5px; color: var(--ink-soft); overflow-wrap: anywhere; }
.wiki-result mark { background: var(--petal-pale); color: var(--plum); padding: 0 3px; border-radius: 4px; }

.wiki-progress { position: fixed; left: 0; top: 0; height: 3px; width: 0; z-index: 140; background: linear-gradient(90deg, var(--petal), var(--leaf)); transition: width 0.1s linear; }
@media (prefers-reduced-motion: reduce) { .wiki-progress { display: none; } }
