:root {
  --academy-gold: #f4c86a;
  --academy-gold-strong: #ffd77a;
  --academy-cyan: #56d7ff;
  --academy-blue: #071a3f;
  --academy-deep: #050b1f;
  --academy-ink: #f3f7ff;
  --academy-muted: rgba(218, 229, 255, 0.72);
  --academy-glass: rgba(7, 22, 54, 0.68);
  --academy-line: rgba(130, 177, 255, 0.18);
  --academy-line-strong: rgba(247, 212, 134, 0.42);
  --sidebar-width: 188px;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html {
  min-height: 100%;
  background: #050b1f;
}

body.academy-body {
  min-height: 100vh;
  margin: 0;
  color: var(--academy-ink);
  font-family: Inter, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  background: #050b1f;
  overflow-x: hidden;
}

body.academy-entrance-active {
  overflow: hidden;
}

.academy-entrance {
  position: fixed;
  z-index: 10050;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #f8fbff;
  isolation: isolate;
  opacity: 0;
  visibility: hidden;
  background: #050b1f;
  transition: opacity 420ms ease, visibility 0s linear 420ms;
}

.academy-entrance.is-visible {
  opacity: 1;
  visibility: visible;
  transition: opacity 420ms ease;
}

.academy-entrance::before,
.academy-entrance::after {
  content: "";
  position: absolute;
  inset: -14%;
  z-index: -1;
  pointer-events: none;
}

.academy-entrance::before {
  background:
    radial-gradient(circle at 50% 40%, rgba(86, 215, 255, 0.2), transparent 19%),
    radial-gradient(ellipse at 30% 22%, rgba(77, 76, 182, 0.24), transparent 33%),
    radial-gradient(ellipse at 77% 64%, rgba(244, 200, 106, 0.11), transparent 30%),
    linear-gradient(160deg, #030713 0%, #071a3f 52%, #030713 100%);
  animation: academyEntranceNebula 12s ease-in-out infinite alternate;
}

.academy-entrance::after {
  opacity: 0.7;
  background:
    radial-gradient(circle at 12% 28%, #fff 0 1px, transparent 1.8px),
    radial-gradient(circle at 24% 68%, rgba(86, 215, 255, 0.8) 0 1px, transparent 1.8px),
    radial-gradient(circle at 48% 19%, rgba(244, 200, 106, 0.82) 0 1.2px, transparent 2px),
    radial-gradient(circle at 72% 38%, #fff 0 1px, transparent 1.8px),
    radial-gradient(circle at 88% 74%, rgba(86, 215, 255, 0.7) 0 1px, transparent 1.8px);
  background-size: 280px 260px;
  animation: academyEntranceDrift 18s linear infinite;
}

.academy-entrance-nebula,
.academy-entrance-stars,
.academy-entrance-meteors,
.academy-entrance-mountains {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.academy-entrance-nebula {
  opacity: 0.72;
  background:
    conic-gradient(from 110deg at 56% 46%, transparent, rgba(63, 145, 255, 0.15), rgba(113, 63, 170, 0.16), transparent 42%),
    radial-gradient(ellipse at 54% 44%, rgba(255, 218, 133, 0.12), transparent 13%);
  mix-blend-mode: screen;
  animation: academyEntranceNebula 9s ease-in-out infinite alternate;
}

.academy-entrance-stars i {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  background: rgba(246, 250, 255, 0.94);
  box-shadow: 0 0 12px rgba(86, 215, 255, 0.68);
  animation: academyEntranceTwinkle 2.8s ease-in-out infinite alternate;
  animation-delay: var(--delay);
}

.academy-entrance-meteors i {
  position: absolute;
  width: 142px;
  height: 1px;
  border-radius: 999px;
  opacity: 0;
  transform: rotate(-28deg);
  transform-origin: left center;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.95), rgba(86, 215, 255, 0));
  box-shadow: 0 0 12px rgba(86, 215, 255, 0.66);
  animation: academyEntranceMeteor 2.8s ease-out infinite;
}

.academy-entrance-meteors i:nth-child(1) { top: 17%; left: 18%; animation-delay: 0.3s; }
.academy-entrance-meteors i:nth-child(2) { top: 33%; left: 68%; animation-delay: 1.25s; }
.academy-entrance-meteors i:nth-child(3) { top: 62%; left: 40%; animation-delay: 2.05s; }

.academy-entrance-mountains {
  top: auto;
  height: 43vh;
  opacity: 0.72;
  background:
    radial-gradient(ellipse at 52% 100%, rgba(3, 9, 26, 0.96) 0 27%, transparent 27.4%),
    radial-gradient(ellipse at 12% 106%, rgba(3, 9, 26, 0.96) 0 33%, transparent 33.4%),
    radial-gradient(ellipse at 88% 104%, rgba(3, 9, 26, 0.96) 0 35%, transparent 35.4%),
    linear-gradient(180deg, transparent 0%, rgba(3, 9, 26, 0.22) 35%, rgba(3, 9, 26, 0.95) 100%);
  filter: drop-shadow(0 -18px 36px rgba(86, 215, 255, 0.08));
}

.academy-entrance-content {
  position: relative;
  z-index: 2;
  width: min(92vw, 680px);
  display: grid;
  justify-items: center;
  text-align: center;
  transform: translateY(8px);
}

.academy-entrance-seal {
  position: relative;
  width: 92px;
  height: 92px;
  display: grid;
  place-items: center;
  margin-bottom: 20px;
  border: 1px solid rgba(244, 200, 106, 0.62);
  border-radius: 50%;
  box-shadow: 0 0 0 10px rgba(244, 200, 106, 0.05), 0 0 48px rgba(86, 215, 255, 0.2);
  animation: academyEntranceSeal 3s ease-in-out infinite;
}

.academy-entrance-seal::before,
.academy-entrance-seal::after,
.academy-entrance-seal span {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.academy-entrance-seal::before {
  width: 56px;
  height: 56px;
  border: 1px solid rgba(86, 215, 255, 0.66);
}

.academy-entrance-seal::after {
  width: 7px;
  height: 7px;
  background: #ffe4a0;
  box-shadow: 0 0 18px #ffe4a0;
}

.academy-entrance-seal span {
  width: 76px;
  height: 76px;
  border: 1px dashed rgba(244, 200, 106, 0.44);
  animation: academyEntranceSpin 9s linear infinite;
}

.academy-entrance-brand {
  margin: 0 0 8px;
  color: rgba(184, 218, 255, 0.9);
  font-size: 14px;
  letter-spacing: 0;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 420ms ease, transform 420ms ease;
}

.academy-entrance h1 {
  margin: 0;
  color: #fff3cf;
  font-size: clamp(44px, 8vw, 76px);
  line-height: 1.08;
  font-weight: 900;
  text-shadow: 0 0 28px rgba(244, 200, 106, 0.34), 0 0 52px rgba(86, 215, 255, 0.18);
  opacity: 0;
  transform: translateY(16px) scale(0.96);
  transition: opacity 520ms ease 80ms, transform 520ms ease 80ms;
}

.academy-entrance.is-visible .academy-entrance-brand,
.academy-entrance.is-visible h1 {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.academy-entrance-welcome {
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(12px);
  transition: max-height 460ms ease, margin-top 460ms ease, opacity 360ms ease, transform 460ms ease;
}

.academy-entrance-welcome strong {
  display: block;
  color: #fff8df;
  font-size: 20px;
}

.academy-entrance-welcome p {
  margin: 10px 0 0;
  color: rgba(220, 235, 255, 0.8);
  font-size: 15px;
  line-height: 1.8;
}

.academy-entrance.is-welcome .academy-entrance-welcome {
  max-height: 150px;
  margin-top: 20px;
  opacity: 1;
  transform: translateY(0);
}

.academy-entrance-cultivator {
  display: grid;
  gap: 4px;
  min-height: 36px;
  margin-top: 12px;
  color: rgba(226, 238, 255, 0.82);
  font-size: 13px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 360ms ease, transform 360ms ease;
}

.academy-entrance-cultivator strong {
  color: #fff0c1;
  font-size: 15px;
}

.academy-entrance-cultivator small {
  color: rgba(197, 220, 255, 0.66);
}

.academy-entrance.is-welcome .academy-entrance-cultivator {
  opacity: 1;
  transform: translateY(0);
}

.academy-entrance-loading {
  display: flex;
  gap: 9px;
  height: 30px;
  margin-top: 22px;
  align-items: center;
  opacity: 0;
  transition: opacity 300ms ease;
}

.academy-entrance-loading i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f4c86a;
  box-shadow: 0 0 16px rgba(244, 200, 106, 0.92);
  animation: academyEntrancePulse 0.9s ease-in-out infinite alternate;
}

.academy-entrance-loading i:nth-child(2) { animation-delay: 0.18s; background: #56d7ff; }
.academy-entrance-loading i:nth-child(3) { animation-delay: 0.36s; }
.academy-entrance.is-welcome .academy-entrance-loading { opacity: 1; }

.academy-entrance.is-release .academy-entrance-content {
  animation: academyEntranceRelease 680ms ease forwards;
}

.academy-entrance.is-release .academy-entrance-stars i,
.academy-entrance.is-release .academy-entrance-meteors {
  animation-duration: 520ms;
}

@keyframes academyEntranceNebula { from { transform: scale(1); opacity: 0.5; } to { transform: scale(1.08); opacity: 0.9; } }
@keyframes academyEntranceDrift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-32px, 24px, 0); } }
@keyframes academyEntranceTwinkle { from { opacity: 0.25; transform: scale(0.7); } to { opacity: 1; transform: scale(1.5); } }
@keyframes academyEntranceMeteor { 0%, 22% { opacity: 0; transform: translate3d(0, 0, 0) rotate(-28deg); } 35% { opacity: 0.9; } 100% { opacity: 0; transform: translate3d(340px, 180px, 0) rotate(-28deg); } }
@keyframes academyEntranceSeal { 0%, 100% { transform: scale(0.96); } 50% { transform: scale(1.05); } }
@keyframes academyEntranceSpin { to { transform: rotate(360deg); } }
@keyframes academyEntrancePulse { from { transform: translateY(3px); opacity: 0.48; } to { transform: translateY(-4px); opacity: 1; } }
@keyframes academyEntranceRelease { to { opacity: 0; transform: scale(1.09); filter: blur(3px); } }

.academy-cosmic-background {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background:
    radial-gradient(ellipse at bottom, rgba(27, 39, 53, 0.98) 0%, #090a0f 62%, #050817 100%),
    radial-gradient(circle at 72% 14%, rgba(101, 156, 255, 0.18), transparent 18%),
    radial-gradient(circle at 22% 18%, rgba(123, 84, 190, 0.14), transparent 24%),
    linear-gradient(180deg, #050b1f 0%, #07152f 44%, #030713 100%);
}

.academy-cosmic-background::before,
.academy-cosmic-background::after {
  content: "";
  position: absolute;
  inset: -12%;
  pointer-events: none;
}

.academy-cosmic-background::before {
  opacity: 0.42;
  background:
    radial-gradient(circle at 8% 18%, rgba(255, 255, 255, 0.65) 0 1px, transparent 1.4px),
    radial-gradient(circle at 17% 72%, rgba(86, 215, 255, 0.48) 0 1px, transparent 1.5px),
    radial-gradient(circle at 29% 36%, rgba(244, 200, 106, 0.5) 0 1px, transparent 1.45px),
    radial-gradient(circle at 42% 84%, rgba(255, 255, 255, 0.56) 0 1px, transparent 1.4px),
    radial-gradient(circle at 56% 24%, rgba(86, 215, 255, 0.42) 0 1px, transparent 1.45px),
    radial-gradient(circle at 68% 68%, rgba(255, 255, 255, 0.5) 0 1px, transparent 1.45px),
    radial-gradient(circle at 79% 41%, rgba(244, 200, 106, 0.42) 0 1px, transparent 1.45px),
    radial-gradient(circle at 91% 76%, rgba(86, 215, 255, 0.42) 0 1px, transparent 1.45px);
  background-repeat: no-repeat;
  animation: academyStarDrift 70s linear infinite;
}

.academy-cosmic-background::after {
  opacity: 0.58;
  background:
    radial-gradient(ellipse at 64% 24%, rgba(86, 215, 255, 0.13), transparent 36%),
    radial-gradient(ellipse at 36% 58%, rgba(93, 82, 182, 0.2), transparent 42%),
    radial-gradient(ellipse at 82% 76%, rgba(244, 200, 106, 0.09), transparent 34%);
  filter: blur(2px);
  animation: academyNebulaBreathe 34s ease-in-out infinite alternate;
}

.academy-cosmic-nebula,
.academy-star-particles,
.academy-floating-silhouette,
.academy-knowledge-stream,
.academy-lightfall-canvas {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.academy-lightfall-canvas {
  z-index: 0;
  width: 100%;
  height: 100%;
  opacity: 0.78;
  mix-blend-mode: screen;
}

.academy-cosmic-nebula {
  opacity: 0.72;
  background:
    conic-gradient(from 128deg at 72% 18%, transparent, rgba(53, 109, 255, 0.16), rgba(82, 41, 143, 0.14), transparent 38%),
    radial-gradient(circle at 78% 20%, rgba(244, 200, 106, 0.18), transparent 13%),
    radial-gradient(circle at 50% 8%, rgba(86, 215, 255, 0.1), transparent 20%);
  mix-blend-mode: screen;
  animation: academyNebulaBreathe 28s ease-in-out infinite alternate;
}

.academy-star-particles::before,
.academy-star-particles::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -180px;
  width: 1px;
  height: 1px;
  background: transparent;
  border-radius: 50%;
  transform: translateX(-50%);
  animation: academyUserStarSea 56s linear infinite, academyStarTwinkle 18s ease-in-out infinite alternate;
}

.academy-star-particles::before {
  box-shadow:
    -860px 88px rgba(255, 255, 255, 0.78),
    -720px 310px rgba(244, 200, 106, 0.82),
    -680px 620px rgba(255, 255, 255, 0.74),
    -590px 180px rgba(86, 215, 255, 0.76),
    -510px 720px rgba(255, 255, 255, 0.68),
    -430px 430px rgba(244, 200, 106, 0.7),
    -370px 92px rgba(255, 255, 255, 0.86),
    -290px 850px rgba(86, 215, 255, 0.72),
    -220px 275px rgba(255, 255, 255, 0.66),
    -130px 690px rgba(255, 255, 255, 0.84),
    -80px 128px rgba(244, 200, 106, 0.72),
    34px 382px rgba(255, 255, 255, 0.72),
    137px 1114px rgba(255, 255, 255, 0.6),
    169px 1907px rgba(86, 215, 255, 0.52),
    246px 1048px rgba(255, 255, 255, 0.72),
    300px 737px rgba(244, 200, 106, 0.72),
    404px 975px rgba(255, 255, 255, 0.66),
    493px 956px rgba(86, 215, 255, 0.7),
    574px 1502px rgba(255, 255, 255, 0.54),
    624px 1380px rgba(255, 255, 255, 0.64),
    728px 697px rgba(244, 200, 106, 0.7),
    865px 1064px rgba(255, 255, 255, 0.78),
    955px 1196px rgba(255, 255, 255, 0.62),
    1062px 378px rgba(86, 215, 255, 0.68),
    1160px 781px rgba(255, 255, 255, 0.76),
    1221px 1584px rgba(255, 255, 255, 0.58),
    1283px 1142px rgba(244, 200, 106, 0.7),
    1364px 599px rgba(255, 255, 255, 0.7),
    1450px 1324px rgba(86, 215, 255, 0.6),
    1543px 11px rgba(255, 255, 255, 0.8),
    1630px 767px rgba(244, 200, 106, 0.62),
    1734px 413px rgba(255, 255, 255, 0.68),
    1841px 1962px rgba(255, 255, 255, 0.48),
    1962px 766px rgba(86, 215, 255, 0.54);
}

.academy-star-particles::after {
  width: 2px;
  height: 2px;
  opacity: 0.56;
  box-shadow:
    -780px 730px rgba(255, 255, 255, 0.48),
    -650px 240px rgba(86, 215, 255, 0.58),
    -520px 980px rgba(244, 200, 106, 0.54),
    -360px 560px rgba(255, 255, 255, 0.5),
    -190px 1240px rgba(255, 255, 255, 0.42),
    -40px 420px rgba(86, 215, 255, 0.58),
    120px 860px rgba(255, 255, 255, 0.46),
    270px 279px rgba(244, 200, 106, 0.56),
    314px 739px rgba(255, 255, 255, 0.52),
    511px 1230px rgba(86, 215, 255, 0.48),
    661px 1919px rgba(255, 255, 255, 0.34),
    853px 1757px rgba(244, 200, 106, 0.38),
    1016px 711px rgba(255, 255, 255, 0.52),
    1171px 563px rgba(86, 215, 255, 0.5),
    1353px 428px rgba(255, 255, 255, 0.48),
    1473px 1587px rgba(244, 200, 106, 0.4),
    1610px 44px rgba(255, 255, 255, 0.58),
    1925px 1320px rgba(86, 215, 255, 0.42);
  animation-duration: 96s, 28s;
}

.academy-star-particles::before {
  box-shadow:
    -940px 126px rgba(255, 255, 255, 0.8),
    -892px 611px rgba(86, 215, 255, 0.58),
    -836px 1011px rgba(255, 255, 255, 0.62),
    -780px 730px rgba(244, 200, 106, 0.66),
    -724px 238px rgba(255, 255, 255, 0.72),
    -681px 1284px rgba(86, 215, 255, 0.5),
    -632px 438px rgba(255, 255, 255, 0.7),
    -590px 180px rgba(86, 215, 255, 0.76),
    -544px 892px rgba(244, 200, 106, 0.58),
    -501px 811px rgba(255, 255, 255, 0.76),
    -463px 1178px rgba(255, 255, 255, 0.55),
    -425px 1321px rgba(86, 215, 255, 0.58),
    -367px 1734px rgba(255, 255, 255, 0.5),
    -322px 797px rgba(244, 200, 106, 0.62),
    -273px 496px rgba(255, 255, 255, 0.7),
    -220px 1275px rgba(86, 215, 255, 0.52),
    -169px 907px rgba(255, 255, 255, 0.64),
    -126px 346px rgba(255, 255, 255, 0.72),
    -80px 712px rgba(244, 200, 106, 0.68),
    -34px 1182px rgba(86, 215, 255, 0.5),
    24px 552px rgba(255, 255, 255, 0.72),
    73px 1201px rgba(244, 200, 106, 0.58),
    123px 233px rgba(255, 255, 255, 0.78),
    169px 1307px rgba(86, 215, 255, 0.54),
    246px 848px rgba(255, 255, 255, 0.66),
    300px 437px rgba(244, 200, 106, 0.66),
    367px 1534px rgba(255, 255, 255, 0.48),
    404px 975px rgba(255, 255, 255, 0.66),
    473px 1653px rgba(86, 215, 255, 0.48),
    524px 697px rgba(255, 255, 255, 0.68),
    574px 1302px rgba(244, 200, 106, 0.54),
    624px 1080px rgba(255, 255, 255, 0.64),
    673px 596px rgba(86, 215, 255, 0.62),
    728px 897px rgba(244, 200, 106, 0.68),
    782px 1479px rgba(255, 255, 255, 0.52),
    838px 390px rgba(255, 255, 255, 0.74),
    891px 1184px rgba(86, 215, 255, 0.54),
    952px 747px rgba(244, 200, 106, 0.62),
    1017px 1591px rgba(255, 255, 255, 0.5),
    1062px 378px rgba(86, 215, 255, 0.7),
    1121px 1297px rgba(255, 255, 255, 0.58),
    1173px 912px rgba(244, 200, 106, 0.56),
    1227px 395px rgba(255, 255, 255, 0.7),
    1283px 1142px rgba(86, 215, 255, 0.54),
    1343px 156px rgba(255, 255, 255, 0.78),
    1395px 467px rgba(244, 200, 106, 0.62),
    1450px 1324px rgba(86, 215, 255, 0.58),
    1491px 677px rgba(255, 255, 255, 0.68),
    1543px 211px rgba(255, 255, 255, 0.78),
    1597px 1176px rgba(86, 215, 255, 0.5),
    1651px 741px rgba(244, 200, 106, 0.54),
    1705px 1464px rgba(255, 255, 255, 0.48),
    1767px 1003px rgba(255, 255, 255, 0.56),
    1841px 1562px rgba(86, 215, 255, 0.42),
    1913px 588px rgba(255, 255, 255, 0.64),
    1986px 1261px rgba(244, 200, 106, 0.46);
}

.academy-star-particles::after {
  opacity: 0.68;
  box-shadow:
    -906px 464px rgba(255, 255, 255, 0.5),
    -760px 1034px rgba(86, 215, 255, 0.5),
    -650px 240px rgba(244, 200, 106, 0.58),
    -557px 724px rgba(255, 255, 255, 0.48),
    -440px 1419px rgba(255, 255, 255, 0.36),
    -330px 257px rgba(86, 215, 255, 0.52),
    -234px 1288px rgba(244, 200, 106, 0.45),
    -148px 687px rgba(255, 255, 255, 0.48),
    -45px 916px rgba(255, 255, 255, 0.46),
    62px 529px rgba(86, 215, 255, 0.58),
    184px 1390px rgba(255, 255, 255, 0.34),
    287px 1072px rgba(244, 200, 106, 0.46),
    383px 728px rgba(255, 255, 255, 0.5),
    493px 301px rgba(86, 215, 255, 0.54),
    611px 908px rgba(255, 255, 255, 0.48),
    736px 999px rgba(244, 200, 106, 0.46),
    874px 1411px rgba(255, 255, 255, 0.38),
    991px 1014px rgba(86, 215, 255, 0.46),
    1088px 581px rgba(255, 255, 255, 0.54),
    1191px 768px rgba(244, 200, 106, 0.44),
    1303px 446px rgba(255, 255, 255, 0.5),
    1444px 256px rgba(86, 215, 255, 0.48),
    1558px 789px rgba(255, 255, 255, 0.46),
    1676px 1052px rgba(244, 200, 106, 0.38),
    1785px 1417px rgba(255, 255, 255, 0.34),
    1885px 432px rgba(86, 215, 255, 0.42);
}

.academy-cosmic-nebula::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -120px;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: transparent;
  transform: translateX(-50%);
  box-shadow:
    -720px 210px rgba(244, 200, 106, 0.3),
    -560px 940px rgba(255, 255, 255, 0.22),
    -380px 520px rgba(86, 215, 255, 0.34),
    -120px 760px rgba(255, 255, 255, 0.24),
    132px 1039px rgba(86, 215, 255, 0.32),
    254px 1072px rgba(244, 200, 106, 0.26),
    672px 1267px rgba(255, 255, 255, 0.22),
    899px 1226px rgba(86, 215, 255, 0.3),
    1320px 620px rgba(244, 200, 106, 0.24),
    1548px 1092px rgba(255, 255, 255, 0.18),
    1888px 1547px rgba(86, 215, 255, 0.2);
  filter: blur(0.2px);
  animation: academyUserStarSea 130s linear infinite;
}

.academy-star-particles i {
  position: absolute;
  width: var(--size, 2px);
  height: var(--size, 2px);
  left: var(--x, 50%);
  top: var(--y, 50%);
  border-radius: 50%;
  opacity: var(--opacity, 0.62);
  background: rgba(246, 250, 255, 0.92);
  box-shadow: 0 0 12px rgba(86, 215, 255, 0.42);
  animation: academyParticleFloat var(--duration, 28s) ease-in-out infinite alternate;
  animation-delay: var(--delay, 0s);
}

.academy-floating-silhouette {
  top: auto;
  height: 42vh;
  opacity: 0.34;
  background:
    radial-gradient(ellipse at 74% 84%, rgba(244, 200, 106, 0.12), transparent 30%),
    radial-gradient(ellipse at 72% 92%, rgba(4, 10, 28, 0.94) 0 10%, transparent 10.5%),
    radial-gradient(ellipse at 58% 96%, rgba(4, 10, 28, 0.88) 0 18%, transparent 18.5%),
    radial-gradient(ellipse at 28% 100%, rgba(4, 10, 28, 0.86) 0 24%, transparent 24.5%);
  filter: blur(0.2px);
}

.academy-knowledge-stream {
  opacity: 0.24;
  background:
    radial-gradient(ellipse at 68% 18%, rgba(86, 215, 255, 0.16), transparent 34%),
    radial-gradient(ellipse at 84% 56%, rgba(244, 200, 106, 0.1), transparent 30%),
    radial-gradient(ellipse at 22% 72%, rgba(154, 124, 255, 0.1), transparent 28%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 16%, #000 76%, transparent 100%);
  animation: academyNebulaBreathe 38s ease-in-out infinite alternate;
}

body.academy-body::before,
body.academy-body::after {
  content: "";
  position: fixed;
  pointer-events: none;
  z-index: 0;
}

body.academy-body::before {
  inset: 0;
  background:
    radial-gradient(circle at 82% 10%, rgba(86, 215, 255, 0.1), transparent 130px),
    radial-gradient(circle at 18% 18%, rgba(244, 200, 106, 0.06), transparent 120px),
    linear-gradient(90deg, rgba(2, 8, 24, 0.42), transparent 22%, transparent 74%, rgba(3, 10, 28, 0.3));
}

body.academy-body::after {
  left: var(--sidebar-width);
  right: 0;
  bottom: 0;
  height: 38vh;
  background:
    linear-gradient(180deg, transparent, rgba(5, 11, 31, 0.62)),
    radial-gradient(ellipse at 18% 100%, rgba(36, 68, 143, 0.34), transparent 50%),
    radial-gradient(ellipse at 84% 100%, rgba(244, 200, 106, 0.1), transparent 44%);
}

.academy-shell {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
  min-height: 100vh;
}

.academy-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 18px 8px;
  border-right: 1px solid rgba(95, 148, 255, 0.14);
  background: linear-gradient(180deg, rgba(4, 15, 38, 0.92), rgba(2, 8, 23, 0.82));
  box-shadow: 10px 0 34px rgba(0, 0, 0, 0.24);
}

.academy-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
  margin-bottom: 22px;
}

.academy-brand-mark {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.95), rgba(37, 140, 255, 0.72));
  box-shadow: 0 0 28px rgba(247, 212, 134, 0.2);
}

.academy-brand strong {
  display: block;
  font-size: 13px;
  letter-spacing: 0;
}

.academy-brand span {
  display: block;
  margin-top: 2px;
  color: rgba(218, 229, 255, 0.55);
  font-size: 11px;
  text-transform: uppercase;
}

.academy-nav-group {
  display: grid;
  gap: 8px;
}

.academy-nav-title {
  margin: 16px 8px 4px;
  color: rgba(218, 229, 255, 0.48);
  font-size: 12px;
  font-weight: 800;
}

.academy-nav-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: rgba(236, 244, 255, 0.82);
  text-decoration: none;
  transition: border-color 0.2s, background 0.2s, transform 0.2s;
}

.academy-nav-item:hover,
.academy-nav-item.is-active {
  border-color: rgba(69, 178, 255, 0.42);
  background: linear-gradient(90deg, rgba(31, 128, 255, 0.62), rgba(11, 196, 212, 0.3));
  color: #fff;
  transform: translateX(2px);
}

.academy-main {
  min-width: 0;
  width: 100%;
  max-width: none;
  padding: 12px 12px 24px;
  margin: 0;
}

.academy-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.academy-global-search {
  display: flex;
  align-items: center;
  gap: 10px;
  width: min(480px, 100%);
  height: 40px;
  padding: 0 14px;
  border: 1px solid rgba(172, 202, 255, 0.2);
  border-radius: 999px;
  background: rgba(1, 8, 24, 0.58);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.academy-global-search input,
.academy-hero-search input {
  width: 100%;
  border: 0;
  outline: 0;
  color: #fff;
  background: transparent;
  font: inherit;
}

.academy-global-search input::placeholder,
.academy-hero-search input::placeholder {
  color: rgba(218, 229, 255, 0.62);
}

.academy-top-links {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.academy-main-hall-return {
  flex: 0 0 auto;
  white-space: nowrap;
}

.academy-topbar .academy-unified-top-links {
  margin-left: auto;
}

.academy-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(119, 170, 255, 0.18);
  border-radius: 9px;
  color: rgba(239, 246, 255, 0.82);
  text-decoration: none;
  background: rgba(10, 32, 76, 0.52);
}

.academy-unread-badge {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border: 1px solid rgba(255, 226, 154, 0.58);
  border-radius: 999px;
  color: #081631;
  font-size: 11px;
  font-weight: 950;
  background: linear-gradient(135deg, #ffe19a, #ff9d2e);
  box-shadow: 0 0 18px rgba(247, 212, 134, 0.32);
}

.academy-hero {
  position: relative;
  overflow: hidden;
  min-height: 278px;
  padding: 56px 52px;
  border: 1px solid rgba(247, 212, 134, 0.25);
  border-radius: 22px;
  background:
    linear-gradient(90deg, rgba(3, 14, 42, 0.76), rgba(8, 28, 75, 0.44)),
    radial-gradient(circle at 76% 22%, rgba(86, 215, 255, 0.18), transparent 18%),
    radial-gradient(circle at 90% 42%, rgba(244, 200, 106, 0.12), transparent 14%);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.38);
}

.academy-hero::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 42%;
  background: linear-gradient(180deg, transparent, rgba(1, 8, 24, 0.72));
}

.academy-hero-content {
  position: relative;
  z-index: 1;
  max-width: 760px;
}

.academy-kicker {
  color: var(--academy-gold);
  font-size: 15px;
  font-weight: 900;
}

.academy-title {
  margin: 10px 0 4px;
  color: var(--academy-gold);
  font-family: "STKaiti", "KaiTi", serif;
  font-size: clamp(54px, 8vw, 108px);
  font-weight: 900;
  line-height: 1.02;
  text-shadow: 0 0 34px rgba(247, 212, 134, 0.28);
}

.academy-subtitle {
  margin: 0 0 28px;
  color: rgba(247, 251, 255, 0.92);
  font-size: clamp(20px, 2.4vw, 31px);
  font-weight: 900;
}

.academy-hero-actions {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  gap: 12px;
  max-width: 850px;
}

.academy-hero-search {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 0 18px;
  border: 1px solid rgba(172, 202, 255, 0.26);
  border-radius: 14px;
  background: rgba(1, 8, 24, 0.72);
}

.academy-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 20px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 14px;
  color: #07152f;
  font-weight: 900;
  text-decoration: none;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  box-shadow: 0 12px 36px rgba(234, 166, 75, 0.25);
}

.academy-action.secondary {
  color: #eaffff;
  border-color: rgba(38, 221, 232, 0.34);
  background: linear-gradient(135deg, rgba(39, 157, 255, 0.86), rgba(18, 203, 207, 0.72));
}

.academy-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 20px 0 24px;
}

.academy-stat-card,
.academy-panel,
.academy-article,
.academy-question,
.academy-cta {
  border: 1px solid rgba(130, 177, 255, 0.12);
  background: linear-gradient(180deg, rgba(10, 32, 76, 0.62), rgba(3, 13, 35, 0.62));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035), 0 10px 30px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(12px);
}

.academy-stat-card {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 88px;
  padding: 16px 18px;
  border-radius: 14px;
}

.academy-stat-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(52, 143, 255, 0.18);
  font-size: 26px;
}

.academy-stat-label {
  color: var(--academy-muted);
  font-size: 13px;
  font-weight: 800;
}

.academy-stat-value {
  margin-top: 4px;
  color: #fff;
  font-size: 24px;
  font-weight: 950;
}

.academy-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr) 320px;
  gap: 18px;
  align-items: start;
}

.academy-panel {
  border-radius: 12px;
  overflow: hidden;
}

.academy-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 46px;
  padding: 0 14px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.1);
}

.academy-panel-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 15px;
  font-weight: 950;
}

.academy-more {
  color: rgba(218, 229, 255, 0.58);
  font-size: 12px;
  text-decoration: none;
}

.academy-list {
  display: grid;
  gap: 8px;
  padding: 14px;
}

.academy-category {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  border-radius: 12px;
  color: rgba(239, 246, 255, 0.9);
  background: rgba(8, 26, 63, 0.44);
}

.academy-category span:first-child {
  display: flex;
  gap: 9px;
  align-items: center;
  font-weight: 850;
}

.academy-category small {
  color: rgba(218, 229, 255, 0.58);
}

.academy-articles {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.academy-article {
  position: relative;
  display: grid;
  grid-template-columns: 126px minmax(0, 1fr);
  gap: 16px;
  padding: 16px;
  border-radius: 14px;
}

.academy-article-cover {
  display: grid;
  place-items: center;
  min-height: 112px;
  border-radius: 14px;
  background:
    radial-gradient(circle at 30% 20%, rgba(247, 212, 134, 0.26), transparent 28%),
    linear-gradient(135deg, rgba(36, 111, 212, 0.7), rgba(12, 24, 68, 0.98));
  font-size: 46px;
}

.academy-article h3 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.35;
}

.academy-article p {
  margin: 0 0 14px;
  color: var(--academy-muted);
  line-height: 1.7;
}

.academy-article-meta,
.academy-question-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  color: rgba(218, 229, 255, 0.68);
  font-size: 13px;
}

.academy-meta-action {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 26px;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 999px;
  padding: 3px 9px;
  color: rgba(218, 229, 255, 0.78);
  font: inherit;
  background: rgba(8, 26, 63, 0.38);
  cursor: pointer;
}

.academy-meta-action:hover,
.academy-meta-action.is-active {
  color: #081631;
  border-color: rgba(247, 212, 134, 0.42);
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
}

.realm {
  color: var(--academy-gold);
  font-weight: 900;
}

.academy-tag {
  padding: 4px 9px;
  border-radius: 999px;
  color: #dffaff;
  background: rgba(38, 221, 232, 0.12);
}

.academy-level {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 9px;
  border: 1px solid rgba(247, 212, 134, 0.36);
  border-radius: 999px;
  color: var(--academy-gold);
  font-size: 12px;
  font-weight: 950;
  background: rgba(247, 212, 134, 0.08);
}

.academy-quality {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 9px;
  border: 1px solid rgba(50, 214, 255, 0.24);
  border-radius: 999px;
  color: #b9f3ff;
  font-size: 12px;
  font-weight: 900;
  background: rgba(50, 214, 255, 0.1);
}

.academy-article h3 a {
  color: inherit;
  text-decoration: none;
}

.academy-ranking {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.academy-rank-item {
  display: grid;
  grid-template-columns: 28px 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: 13px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-rank-index {
  color: var(--academy-gold);
  font-weight: 950;
  text-align: center;
}

.academy-avatar {
  display: grid;
  place-items: center;
  width: auto;
  height: 42px;
  flex: 0 0 42px;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid rgba(247, 212, 134, 0.44);
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.85), rgba(37, 140, 255, 0.72));
  color: #081631;
  font-weight: 950;
}

.academy-avatar img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  object-position: center;
  display: block;
}

.academy-rank-name {
  font-weight: 900;
}

.academy-rank-realm {
  margin-top: 2px;
  color: rgba(218, 229, 255, 0.58);
  font-size: 12px;
}

.academy-contribution {
  color: #fff;
  font-weight: 950;
}

.academy-lower {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 18px;
  margin-top: 18px;
}

.academy-questions {
  display: grid;
  gap: 10px;
  padding: 16px;
}

.academy-question {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border-radius: 14px;
}

.academy-question-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(38, 221, 232, 0.92), rgba(52, 101, 255, 0.92));
  font-size: 24px;
  font-weight: 950;
}

.academy-question h3 {
  margin: 0 0 6px;
  font-size: 18px;
}

.academy-question p {
  margin: 0 0 10px;
  color: var(--academy-muted);
  line-height: 1.6;
}

.academy-reward {
  min-width: 110px;
  padding: 10px 12px;
  border: 1px solid rgba(247, 212, 134, 0.26);
  border-radius: 14px;
  text-align: center;
  color: var(--academy-gold);
  background: rgba(247, 212, 134, 0.08);
}

.academy-reward strong {
  display: block;
  margin-top: 4px;
  color: #fff;
  font-size: 20px;
}

.academy-author-list {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.academy-author {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 13px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-author strong {
  display: block;
}

.academy-author span {
  display: block;
  margin-top: 3px;
  color: rgba(218, 229, 255, 0.58);
  font-size: 12px;
}

.academy-cta-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.academy-cta {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 82px;
  padding: 16px;
  border-radius: 16px;
}

.academy-cta-icon {
  font-size: 34px;
}

.academy-cta strong {
  display: block;
}

.academy-cta span {
  display: block;
  margin-top: 4px;
  color: var(--academy-muted);
  font-size: 13px;
}

.academy-page-hero,
.academy-profile-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 14px;
  padding: 26px 28px;
  border: 1px solid rgba(247, 212, 134, 0.16);
  border-radius: 14px;
  background:
    linear-gradient(90deg, rgba(3, 14, 42, 0.8), rgba(8, 28, 75, 0.48)),
    radial-gradient(circle at 78% 24%, rgba(86, 215, 255, 0.16), transparent 18%),
    radial-gradient(circle at 92% 40%, rgba(244, 200, 106, 0.12), transparent 14%);
  box-shadow: 0 12px 42px rgba(0, 0, 0, 0.24);
}

.academy-compact-hero {
  min-height: 148px;
}

.academy-page-title {
  margin: 10px 0;
  color: var(--academy-gold);
  font-family: "STKaiti", "KaiTi", serif;
  font-size: clamp(30px, 4vw, 52px);
  line-height: 1.08;
  letter-spacing: 0;
  text-shadow: 0 0 30px rgba(247, 212, 134, 0.22);
}

.academy-page-subtitle {
  max-width: 820px;
  margin: 0 0 12px;
  color: rgba(244, 249, 255, 0.88);
  font-size: 16px;
  line-height: 1.7;
}

.academy-large-meta {
  gap: 14px;
  font-size: 14px;
}

.academy-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 18px;
  align-items: start;
}

.academy-content-panel {
  min-width: 0;
}

.academy-inline-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.academy-markdown {
  padding: 24px;
  color: rgba(244, 249, 255, 0.9);
  font-size: 16px;
  line-height: 1.9;
}

.academy-markdown h1,
.academy-markdown h2 {
  color: #fff;
  line-height: 1.35;
}

.academy-markdown h1 {
  margin: 0 0 18px;
  font-size: 30px;
}

.academy-markdown h2 {
  margin: 10px 0 12px;
  font-size: 22px;
}

.academy-markdown p {
  margin: 0 0 18px;
}

.academy-reward-strip {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin: 0 24px 20px;
  padding: 16px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 14px;
  background: linear-gradient(90deg, rgba(247, 212, 134, 0.12), rgba(38, 221, 232, 0.08));
  color: rgba(255, 246, 213, 0.94);
}

.academy-reward-strip strong {
  color: #fff;
}

.academy-action-bar,
.academy-editor-tools {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.academy-action-bar {
  padding: 0 24px 22px;
}

.academy-action-bar button,
.academy-editor-tools button,
.academy-answer-box button,
.academy-question-tabs a {
  min-height: 40px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 10px;
  color: #081631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-action-bar button {
  padding: 0 16px;
}

.academy-action-bar button.is-active {
  border-color: rgba(50, 214, 255, 0.45);
  color: #eaffff;
  background: linear-gradient(135deg, rgba(39, 157, 255, 0.88), rgba(18, 203, 207, 0.76));
}

.academy-modal-shell[hidden] {
  display: none;
}

.academy-modal-shell {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 20px;
}

.academy-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 8, 22, 0.72);
  backdrop-filter: blur(8px);
}

.academy-modal {
  position: relative;
  z-index: 1;
  width: min(560px, 100%);
  max-height: min(720px, calc(100vh - 32px));
  overflow: auto;
  border: 1px solid rgba(130, 177, 255, 0.22);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(7, 18, 45, 0.96), rgba(5, 11, 31, 0.98));
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.42);
}

.academy-icon-button {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(247, 212, 134, 0.24);
  border-radius: 10px;
  color: #fff3cc;
  background: rgba(247, 212, 134, 0.08);
  cursor: pointer;
}

.academy-muted-text {
  margin: 0;
  padding: 0 18px 12px;
  color: var(--academy-muted);
}

.academy-library-modal .academy-form-actions {
  padding: 0 18px 18px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.academy-library-current {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 0 18px 12px;
}

.academy-library-current-title {
  width: 100%;
  color: rgba(218, 229, 255, 0.65);
  font-size: 13px;
}

.academy-collection-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.academy-text-button {
  min-height: 34px;
  border: 0;
  border-radius: 999px;
  padding: 0 12px;
  color: rgba(218, 229, 255, 0.78);
  background: rgba(130, 177, 255, 0.1);
  cursor: pointer;
}

.academy-text-button:hover {
  color: #fff;
  background: rgba(86, 215, 255, 0.18);
}

.academy-library-manage-sheet {
  display: grid;
  border-top: 1px solid rgba(130, 177, 255, 0.12);
  border-bottom: 1px solid rgba(130, 177, 255, 0.12);
  background: rgba(3, 10, 28, 0.38);
}

.academy-library-manage-sheet a {
  min-height: 44px;
  padding: 12px 18px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.09);
  color: rgba(239, 246, 255, 0.9);
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}

.academy-library-manage-sheet a:last-child {
  border-bottom: 0;
}

.academy-library-manage-sheet a.danger {
  color: #ff6b7a;
}

.academy-library-current button {
  border: 1px solid rgba(38, 221, 232, 0.26);
  border-radius: 999px;
  padding: 7px 10px;
  color: rgba(244, 249, 255, 0.9);
  background: rgba(38, 221, 232, 0.08);
  cursor: pointer;
}

.academy-library-current span {
  color: #ffcf7a;
}

.academy-library-folder-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  min-height: 76px;
  padding: 12px 14px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.44);
  cursor: pointer;
  transition: border-color 0.16s ease, background 0.16s ease, transform 0.16s ease;
}

.academy-library-folder-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.academy-library-folder-option:hover,
.academy-library-folder-option.is-selected {
  border-color: rgba(52, 211, 153, 0.46);
  background:
    radial-gradient(circle at 100% 50%, rgba(52, 211, 153, 0.16), transparent 26%),
    rgba(8, 26, 63, 0.58);
}

.academy-library-folder-option.is-selected {
  transform: translateY(-1px);
}

.academy-library-folder-main {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.academy-library-folder-option strong,
.academy-library-folder-option small {
  display: block;
}

.academy-library-folder-option strong {
  color: #f8fbff;
  font-size: 16px;
}

.academy-library-folder-option strong em {
  display: inline-flex;
  margin-left: 8px;
  border: 1px solid rgba(52, 211, 153, 0.7);
  border-radius: 6px;
  padding: 1px 6px;
  color: #7df0b2;
  font-size: 12px;
  font-style: normal;
}

.academy-library-folder-option small {
  margin-top: 2px;
  color: rgba(218, 229, 255, 0.58);
}

.academy-library-checkmark {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 2px solid rgba(218, 229, 255, 0.46);
  border-radius: 8px;
  color: #fff;
  background: rgba(5, 14, 35, 0.72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.academy-library-folder-option.is-selected .academy-library-checkmark {
  border-color: rgba(39, 190, 106, 0.9);
  background: linear-gradient(135deg, #0cc35d, #049143);
  box-shadow: 0 0 18px rgba(12, 195, 93, 0.28);
}

.academy-library-folder-option.is-selected .academy-library-checkmark::before {
  content: "✓";
  font-size: 19px;
  font-weight: 950;
  line-height: 1;
}

.academy-library-create {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  padding: 4px 18px 16px;
}

.academy-library-create input,
.academy-library-create-card input {
  min-height: 40px;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 10px;
  padding: 0 12px;
  color: #f4f9ff;
  background: rgba(5, 14, 35, 0.72);
}

.academy-library-create button,
.academy-library-create-card button {
  min-height: 40px;
  border: 1px solid rgba(247, 212, 134, 0.32);
  border-radius: 10px;
  padding: 0 14px;
  color: #081631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-comments {
  padding: 0 24px 24px;
}

.academy-comments h2 {
  margin: 0 0 14px;
  font-size: 18px;
}

.academy-comment {
  display: flex;
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid rgba(130, 177, 255, 0.12);
}

.academy-comment-main {
  min-width: 0;
  flex: 1;
}

.academy-comment-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: rgba(218, 229, 255, 0.62);
  font-size: 12px;
}

.academy-comment-head strong {
  min-width: 0;
  color: #f6f9ff;
  font-size: 15px;
}

.academy-comment-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.academy-comment-actions button {
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 999px;
  color: rgba(226, 235, 255, 0.76);
  background: rgba(6, 18, 45, 0.38);
  cursor: pointer;
}

.academy-comment-actions button:hover,
.academy-comment-actions button.is-active {
  border-color: rgba(247, 212, 134, 0.42);
  color: #ffe4a8;
  background: rgba(247, 212, 134, 0.12);
}

.academy-comment-actions .academy-comment-reaction {
  font-size: 12px;
}

.academy-comment-actions .academy-comment-reaction.is-active {
  border-color: rgba(102, 219, 225, 0.56);
  color: #d7fbff;
  background: rgba(85, 196, 219, 0.14);
}

.academy-comment-replies {
  display: grid;
  gap: 0;
  margin-top: 12px;
  padding-left: 12px;
  border-left: 1px solid rgba(247, 212, 134, 0.18);
}

.academy-comment-reply {
  padding: 12px 0;
  border-top-color: rgba(130, 177, 255, 0.08);
}

.academy-comment-reply .academy-avatar {
  width: 34px;
  height: 34px;
  font-size: 14px;
}

.academy-comment-form {
  display: grid;
  gap: 10px;
  margin-bottom: 14px;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.34);
}

.academy-reply-indicator {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(247, 212, 134, 0.2);
  border-radius: 10px;
  color: rgba(226, 235, 255, 0.78);
  background: rgba(247, 212, 134, 0.08);
}

.academy-reply-indicator button {
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  color: rgba(226, 235, 255, 0.82);
  background: rgba(255, 255, 255, 0.06);
}

.academy-compose-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.academy-tool-button,
.academy-mention-field {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 999px;
  color: rgba(234, 240, 255, 0.86);
  background: rgba(6, 18, 45, 0.44);
}

.academy-tool-button {
  padding: 0 14px;
  cursor: pointer;
}

.academy-tool-button:hover {
  border-color: rgba(247, 212, 134, 0.4);
  color: #ffe4a8;
  background: rgba(247, 212, 134, 0.1);
}

.academy-emoji-trigger {
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid rgba(130, 177, 255, 0.2);
  border-radius: 999px;
  color: rgba(234, 240, 255, 0.88);
  background: rgba(6, 18, 45, 0.44);
  cursor: pointer;
}

.academy-emoji-trigger[aria-expanded="true"] {
  border-color: rgba(247, 212, 134, 0.62);
  color: #ffe4a8;
  background: rgba(247, 212, 134, 0.12);
}

.academy-emoji-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  width: fit-content;
  max-width: min(100%, 410px);
  padding: 7px;
  border: 1px solid rgba(130, 177, 255, 0.24);
  border-radius: 12px;
  background: rgba(4, 14, 37, 0.96);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.28);
}

.academy-emoji-picker[hidden] {
  display: none;
}

.academy-emoji-choice {
  position: relative;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  cursor: pointer;
  transition: border-color 140ms ease, background 140ms ease;
}

.academy-emoji-choice:hover,
.academy-emoji-choice:focus-visible {
  z-index: 2;
  border-color: rgba(247, 212, 134, 0.66);
  background: rgba(247, 212, 134, 0.16);
  outline: 0;
}

.academy-emoji-choice > span {
  font-size: 18px;
  line-height: 1;
}

.academy-emoji-choice small {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  z-index: 4;
  min-width: max-content;
  padding: 4px 7px;
  border-radius: 6px;
  color: #f5f8ff;
  font-size: 11px;
  line-height: 1;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, 4px);
  background: rgba(2, 8, 22, 0.94);
  transition: opacity 140ms ease, transform 140ms ease;
}

.academy-emoji-choice:hover small,
.academy-emoji-choice:focus-visible small {
  opacity: 1;
  transform: translate(-50%, 0);
}

/* Emoji choices use their own lift interaction, without the global button motes. */
.academy-emoji-choice::before,
.academy-emoji-choice::after {
  content: none !important;
}

.academy-mention-field {
  padding: 0 12px;
}

.academy-mention-field input {
  width: 180px;
  border: 0;
  outline: 0;
  color: #fff;
  background: transparent;
  font: inherit;
}

.academy-mention-results {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.academy-mention-results[hidden] {
  display: none;
}

.academy-mention-results button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 10px 0 4px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 999px;
  color: rgba(234, 240, 255, 0.9);
  background: rgba(8, 26, 63, 0.56);
  cursor: pointer;
}

.academy-mention-avatar {
  display: grid;
  place-items: center;
  width: auto;
  height: 26px;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
  color: #071631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #58c9ff);
}

.academy-mention-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.academy-image-preview-list,
.academy-comment-images {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.academy-image-preview-list button,
.academy-comment-images a,
.academy-comment-images .academy-image-preview-trigger {
  position: relative;
  width: 92px;
  height: 72px;
  overflow: hidden;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 10px;
  background: rgba(4, 14, 36, 0.62);
}

.academy-image-preview-list img,
.academy-comment-images img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.academy-image-preview-list span {
  position: absolute;
  top: 4px;
  right: 4px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  color: #071631;
  font-weight: 900;
  background: rgba(255, 225, 154, 0.92);
}

.academy-comment-images {
  margin-top: 10px;
}

.academy-comment-images a,
.academy-comment-images .academy-image-preview-trigger {
  width: 108px;
  height: 78px;
}

.academy-comment-form textarea {
  width: 100%;
  border: 1px solid rgba(172, 202, 255, 0.24);
  border-radius: 10px;
  outline: 0;
  resize: vertical;
  padding: 12px;
  color: #fff;
  background: rgba(1, 8, 24, 0.55);
  font: inherit;
}

.academy-comment-form button {
  justify-self: start;
  min-height: 38px;
  padding: 0 16px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 10px;
  color: #081631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-comment p {
  margin: 6px 0 0;
  color: var(--academy-muted);
  line-height: 1.7;
}

.academy-side-stack {
  display: grid;
  gap: 18px;
}

.academy-author-card,
.academy-bounty-card {
  padding: 22px;
  text-align: center;
}

/* Keep author-card actions above decorative and floating visual layers. */
.academy-side-stack,
.academy-author-card,
.academy-author-actions {
  position: relative;
}

.academy-side-stack {
  z-index: 2;
}

.academy-author-actions {
  z-index: 3;
  display: grid;
  gap: 8px;
  pointer-events: auto;
}

.academy-author-actions .academy-full-action {
  position: relative;
  z-index: 1;
  pointer-events: auto;
  cursor: pointer;
}

.academy-author-actions .academy-action.is-following {
  color: #eaffff;
  border-color: rgba(86, 215, 255, 0.5);
  background: linear-gradient(135deg, rgba(36, 136, 218, 0.94), rgba(31, 184, 187, 0.84));
}

.academy-avatar-lg {
  width: 74px;
  height: 74px;
  margin: 0 auto 12px;
  font-size: 28px;
}

.academy-avatar-xl {
  width: 104px;
  height: 104px;
  flex: 0 0 104px;
  aspect-ratio: 1;
  font-size: 38px;
}

.academy-author-card h2 {
  margin: 0 0 6px;
}

.academy-author-card p {
  margin: 0 0 16px;
}

.academy-author-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.academy-author-stats span {
  padding: 10px;
  border-radius: 12px;
  background: rgba(8, 26, 63, 0.5);
  color: rgba(244, 249, 255, 0.88);
}

.academy-full-action {
  width: 100%;
}

.academy-mini-list {
  display: grid;
  gap: 8px;
  padding: 14px;
}

.academy-mini-link {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border-radius: 12px;
  color: rgba(244, 249, 255, 0.9);
  text-decoration: none;
  background: rgba(8, 26, 63, 0.44);
}

.academy-mini-link > span:first-child {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  min-width: 34px;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
}

.academy-mini-link strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.academy-mini-link small {
  color: rgba(218, 229, 255, 0.56);
}

.academy-editor-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
  padding: 18px;
}

.academy-author-workbench {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin-bottom: 18px;
  padding: 16px 18px;
}

.academy-author-workbench strong,
.academy-author-workbench span {
  display: block;
}

.academy-author-workbench span {
  margin-top: 4px;
  color: var(--academy-muted);
  font-size: 13px;
}

.academy-editor-status {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.academy-editor-status span,
.academy-my-drafts button,
.academy-review-panel button {
  border: 1px solid rgba(247, 212, 134, 0.24);
}

.academy-editor-status span {
  padding: 8px 10px;
  border-radius: 999px;
  color: rgba(255, 246, 213, 0.92);
  background: rgba(247, 212, 134, 0.08);
}

.academy-my-drafts {
  margin-bottom: 18px;
}

.academy-my-drafts button.academy-mini-link {
  width: 100%;
  color: rgba(244, 249, 255, 0.9);
  text-align: left;
  cursor: pointer;
}

.academy-preview-content img,
.academy-markdown img {
  max-width: 100%;
  border-radius: 12px;
}

.academy-markdown-gallery {
  columns: 4 180px;
  column-gap: 12px;
  margin: 0 0 22px;
}

.academy-markdown-gallery.is-single {
  columns: initial;
  max-width: 760px;
}

.academy-markdown-image {
  display: block;
  break-inside: avoid;
  width: 100%;
  margin: 0 0 12px;
  overflow: hidden;
  border: 1px solid rgba(146, 187, 255, 0.14);
  border-radius: 8px;
  background: rgba(3, 13, 34, 0.48);
}

.academy-markdown-image a {
  display: block;
  width: 100%;
}

.academy-image-preview-trigger {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: inherit;
  appearance: none;
  cursor: pointer;
}

.academy-markdown-image img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 360px;
  object-fit: contain;
  border-radius: 0;
  background: rgba(2, 9, 24, 0.65);
}

.academy-image-lightbox[hidden] {
  display: none;
}

.academy-image-lightbox {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
}

.academy-image-lightbox-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  min-height: 100%;
  border: 0;
  background: rgba(1, 6, 19, 0.9);
  backdrop-filter: blur(10px);
  cursor: zoom-out;
}

body.academy-body .academy-image-lightbox-backdrop {
  position: fixed !important;
}

.academy-image-lightbox-dialog {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: min(1100px, 100%);
  max-height: calc(100vh - 48px);
}

.academy-image-lightbox-dialog img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 72px);
  border: 1px solid rgba(202, 228, 255, 0.34);
  border-radius: 8px;
  object-fit: contain;
  box-shadow: 0 26px 88px rgba(0, 0, 0, 0.62);
}

.academy-image-lightbox-close {
  position: absolute;
  z-index: 2;
  top: 10px;
  right: 10px;
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(231, 242, 255, 0.4);
  border-radius: 50%;
  color: #f6fbff;
  font-size: 28px;
  line-height: 1;
  background: rgba(3, 13, 35, 0.82);
  cursor: pointer;
}

.academy-image-lightbox-nav {
  position: fixed;
  z-index: 2;
  display: grid;
  width: 46px;
  height: 64px;
  place-items: center;
  border: 0;
  border-radius: 0;
  color: #f6fbff;
  font-size: 42px;
  line-height: 1;
  background: transparent;
  cursor: pointer;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.88), 0 0 10px rgba(169, 225, 255, 0.38);
  transform: translateY(-50%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.academy-image-lightbox-dialog:hover .academy-image-lightbox-nav {
  opacity: 1;
  pointer-events: auto;
}

.academy-image-lightbox-nav:disabled {
  opacity: 0.28;
  cursor: default;
}

/* Override the global button treatment: gallery controls must track the enlarged image. */
body.academy-body .academy-image-lightbox-nav {
  position: fixed !important;
  background: transparent !important;
  border: 0 !important;
}

/* Image navigation is a viewing control, not a decorated academy action button. */
body.academy-body .academy-image-lightbox-nav:is(:hover, :focus-visible, .is-active, [aria-current="page"]),
body.academy-body .academy-image-lightbox-close:is(:hover, :focus-visible, .is-active, [aria-current="page"]) {
  isolation: auto;
  overflow: visible;
  border-color: transparent !important;
  box-shadow: none !important;
}

body.academy-body .academy-image-lightbox-nav::before,
body.academy-body .academy-image-lightbox-nav::after,
body.academy-body .academy-image-lightbox-close::before,
body.academy-body .academy-image-lightbox-close::after {
  content: none !important;
  animation: none !important;
}

@media (hover: none), (pointer: coarse) {
  body.academy-body .academy-image-lightbox-nav {
    display: none !important;
  }
}

.academy-image-lightbox-counter {
  position: absolute;
  z-index: 2;
  bottom: 12px;
  left: 50%;
  padding: 5px 10px;
  border: 1px solid rgba(231, 242, 255, 0.22);
  border-radius: 999px;
  color: #f6fbff;
  font-size: 12px;
  background: rgba(3, 13, 35, 0.76);
  transform: translateX(-50%);
}

body.academy-image-lightbox-open {
  overflow: hidden;
}

.academy-markdown-gallery.is-single .academy-markdown-image img {
  height: auto;
  max-height: min(62vh, 560px);
}

@media (max-width: 680px) {
  .academy-markdown-gallery {
    columns: 2 140px;
    column-gap: 8px;
  }

  .academy-markdown-gallery.is-single {
    columns: initial;
  }

  .academy-markdown-image {
    margin-bottom: 8px;
  }

  .academy-markdown-image img {
    max-height: 280px;
  }

  .academy-markdown-gallery.is-single .academy-markdown-image img {
    max-height: min(55vh, 420px);
  }

  .academy-image-lightbox {
    padding: 12px;
  }

  .academy-image-lightbox-dialog img {
    max-height: calc(100vh - 40px);
  }

  .academy-image-lightbox-nav {
    width: 38px;
    height: 52px;
    font-size: 34px;
    opacity: 1;
    pointer-events: auto;
  }
}

.academy-editor-meta label {
  display: grid;
  gap: 8px;
  color: var(--academy-muted);
  font-size: 13px;
  font-weight: 900;
}

.academy-editor-meta input,
.academy-editor-meta select,
.academy-editor-meta textarea,
.academy-answer-box textarea {
  width: 100%;
  border: 1px solid rgba(172, 202, 255, 0.24);
  border-radius: 10px;
  outline: 0;
  color: #fff;
  background: rgba(1, 8, 24, 0.55);
  font: inherit;
}

.academy-editor-meta input,
.academy-editor-meta select {
  min-height: 42px;
  padding: 0 12px;
}

.academy-editor-meta textarea,
.academy-answer-box textarea {
  resize: vertical;
  padding: 12px;
}

.academy-field-wide {
  grid-column: 1 / -1;
}

.academy-editor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.academy-editor-pane textarea {
  display: block;
  width: 100%;
  min-height: 560px;
  padding: 22px;
  border: 0;
  outline: 0;
  resize: vertical;
  color: #eef7ff;
  background: rgba(1, 8, 24, 0.42);
  font: 15px/1.8 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.academy-preview-content {
  min-height: 560px;
}

.academy-question-tabs {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 18px;
}

.academy-question-tabs a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 112px;
  padding: 0 16px;
  color: rgba(239, 246, 255, 0.86);
  text-decoration: none;
  background: rgba(10, 32, 76, 0.62);
}

.academy-review-table {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.academy-review-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.44);
}

.academy-review-row h3 {
  margin: 0 0 8px;
  font-size: 18px;
}

.academy-review-row p {
  margin: 0 0 10px;
  color: var(--academy-muted);
  line-height: 1.7;
}

.academy-review-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.academy-review-actions button,
.academy-my-drafts .academy-panel-header button {
  min-height: 38px;
  padding: 0 14px;
  border-radius: 10px;
  color: #081631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-review-actions button.danger {
  color: #fff;
  border-color: rgba(255, 116, 116, 0.38);
  background: linear-gradient(135deg, rgba(213, 65, 72, 0.92), rgba(103, 25, 49, 0.94));
}

.academy-empty {
  padding: 18px;
  color: var(--academy-muted);
  text-align: center;
}

.academy-question-tabs a.is-active {
  color: #081631;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
}

.academy-question-section {
  margin-bottom: 18px;
}

.academy-question-card h3 a {
  color: inherit;
  text-decoration: none;
}

.academy-question-detail-head {
  padding: 28px 28px 0;
}

.academy-inner-head {
  border-top: 1px solid rgba(130, 177, 255, 0.14);
}

.academy-answer-box {
  display: grid;
  gap: 12px;
  margin: 0 24px 22px;
  padding: 16px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.36);
}

.academy-answer-tools {
  position: relative;
  display: flex;
  align-items: center;
}

.academy-answer-tools .academy-emoji-picker {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 12;
}

/* Academy emoji slips: category-first, with resource artwork rather than system emoji blocks. */
.academy-emoji-picker {
  display: block;
  width: min(510px, calc(100vw - 36px));
  padding: 14px;
  border: 1px solid rgba(238, 198, 111, 0.46);
  border-radius: 12px;
  color: #edf5ff;
  background: linear-gradient(145deg, rgba(12, 27, 63, 0.98), rgba(4, 12, 32, 0.99));
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.46), inset 0 1px rgba(255, 237, 183, 0.16);
}

.academy-emoji-library-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 42px;
  margin-bottom: 12px;
  padding: 7px 10px;
  border: 1px solid rgba(244, 207, 124, 0.24);
  border-radius: 9px;
  background: rgba(8, 22, 51, 0.72);
  color: #ffe2a1;
  font-size: 13px;
  font-weight: 800;
}

.academy-emoji-library-head > div { display: grid; gap: 2px; }
.academy-emoji-library-head small { color: rgba(202, 220, 255, 0.66); font-size: 11px; font-weight: 600; }
.academy-emoji-library-head em { color: rgba(246, 221, 167, 0.75); font-size: 11px; font-style: normal; font-weight: 600; }

.academy-emoji-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  overflow: visible;
  margin: 0 -2px 12px;
  padding: 0 2px 6px;
  scrollbar-width: thin;
}

.academy-emoji-categories button {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(127, 179, 255, 0.27);
  border-radius: 8px;
  color: rgba(225, 235, 255, 0.76);
  font-size: 12px;
  background: rgba(18, 38, 79, 0.76);
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}

.academy-emoji-categories button > span { margin-right: 4px; }
.academy-emoji-categories button.is-active { color: #fff3c9; border-color: rgba(247, 212, 134, 0.7); background: rgba(165, 112, 222, 0.27); box-shadow: inset 0 0 16px rgba(245, 204, 120, 0.08); }

.academy-emoji-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }

.academy-emoji-picker .academy-emoji-choice {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  place-items: center;
  width: auto;
  height: 76px;
  min-height: 0;
  overflow: hidden;
  padding: 5px 3px 4px;
  border: 1px solid rgba(130, 177, 255, 0.2);
  border-radius: 12px;
  background: linear-gradient(155deg, rgba(29, 58, 112, 0.68), rgba(12, 29, 66, 0.78));
  cursor: pointer;
  transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.academy-emoji-picker .academy-emoji-choice img { grid-area: 1 / 1; width: 42px; height: 42px; opacity: 0.88; object-fit: contain; }
.academy-emoji-picker .academy-emoji-choice > span { grid-area: 1 / 1; color: #fff4cc; font-size: 23px; line-height: 1; text-shadow: 0 1px 8px #050b1f; }
.academy-emoji-picker .academy-emoji-choice small { width: 100%; overflow: hidden; color: rgba(230, 238, 255, 0.8); font-size: 10px; line-height: 14px; text-align: center; text-overflow: ellipsis; white-space: nowrap; pointer-events: none; }
.academy-emoji-picker .academy-emoji-choice:hover,
.academy-emoji-picker .academy-emoji-choice:focus-visible { border-color: rgba(255, 218, 127, 0.84); background: rgba(119, 82, 182, 0.34); box-shadow: 0 0 16px rgba(247, 212, 134, 0.28), inset 0 0 14px rgba(247, 212, 134, 0.1); outline: 0; transform: scale(1.08); }
.academy-emoji-picker .academy-emoji-choice:active { transform: scale(0.96); }
.academy-emoji-choice.is-animated img,
.academy-comment-emoji.is-animated { animation: academy-emoji-spirit-glow 1.8s ease-in-out infinite; }
@keyframes academy-emoji-spirit-glow { 50% { filter: brightness(1.3) drop-shadow(0 0 7px rgba(255, 218, 127, 0.85)); } }

.academy-comment-emoji {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  width: 118px;
  margin: 2px 8px 8px 2px;
  vertical-align: top;
}
.academy-comment-emoji img { width: 112px; height: 112px; object-fit: contain; }
.academy-comment-emoji::after {
  content: attr(aria-label);
  display: block;
  min-height: 22px;
  margin-top: 1px;
  color: #fff1c7;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  text-shadow: 0 1px 5px #020712;
  overflow-wrap: anywhere;
}
.academy-comment-emoji.is-cultivation,
.academy-comment-emoji.is-interaction { animation: academy-comment-emoji-rise 500ms ease-out both; }
.academy-comment-emoji.is-xian-ni { animation: academy-comment-emoji-bounce 650ms cubic-bezier(.2, .9, .35, 1.3) both; }
.academy-comment-emoji.is-tribulation { animation: academy-comment-emoji-thunder 520ms ease-out both; }
.academy-comment-emoji.is-library { animation: academy-comment-emoji-gold 700ms ease-out both; }
@keyframes academy-comment-emoji-rise { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
@keyframes academy-comment-emoji-bounce { 0% { opacity: 0; transform: scale(.72) translateY(10px); } 60% { transform: scale(1.12) translateY(-5px); } 100% { opacity: 1; transform: scale(1) translateY(0); } }
@keyframes academy-comment-emoji-thunder { 0% { opacity: 0; filter: brightness(2.1) drop-shadow(0 0 19px #b58cff); transform: translateY(-5px); } 45% { filter: brightness(.75) drop-shadow(0 0 8px #f7d36e); } 100% { opacity: 1; filter: none; transform: translateY(0); } }
@keyframes academy-comment-emoji-gold { 0% { opacity: 0; filter: brightness(1.9) drop-shadow(0 0 18px #ffd967); transform: scale(.82); } 70% { filter: brightness(1.25) drop-shadow(0 0 10px #ffd967); } 100% { opacity: 1; filter: none; transform: scale(1); } }

/* Compact chat-like emoji picker and visual composer. */
.academy-comment-form { position: relative; }
.academy-compose-tools .academy-emoji-trigger,
.academy-answer-tools .academy-emoji-trigger { position: relative; z-index: 1; }
.academy-comment-editor-wrap { position: relative; min-width: 0; }
.academy-comment-editor {
  width: 100%;
  min-height: 92px;
  box-sizing: border-box;
  padding: 12px;
  border: 1px solid rgba(172, 202, 255, 0.24);
  border-radius: 10px;
  outline: 0;
  color: #fff;
  background: rgba(1, 8, 24, 0.55);
  font: inherit;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.academy-comment-editor:focus { border-color: rgba(247, 212, 134, 0.58); box-shadow: 0 0 0 3px rgba(247, 212, 134, 0.08); }
.academy-comment-editor:empty::before { content: attr(data-placeholder); color: rgba(194, 211, 241, 0.54); pointer-events: none; }
.academy-composer-emoji {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin: 0 3px;
  vertical-align: middle;
  user-select: none;
}
.academy-composer-emoji img { grid-area: 1 / 1; width: 100%; height: 100%; object-fit: contain; }
.academy-emoji-recent { display: flex; align-items: center; gap: 5px; min-height: 34px; padding: 5px 0 0; overflow-x: auto; }
.academy-emoji-recent > span { flex: 0 0 auto; margin-right: 3px; color: rgba(215, 227, 255, .64); font-size: 11px; }
.academy-emoji-recent button { flex: 0 0 auto; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 7px; background: rgba(59, 89, 146, .18); cursor: pointer; }
.academy-emoji-recent button:hover { background: rgba(247, 212, 134, .16); transform: translateY(-1px); }
.academy-emoji-recent img { width: 100%; height: 100%; object-fit: contain; }
.academy-emoji-suggestions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.academy-emoji-suggestions[hidden] { display: none; }
.academy-emoji-suggestions button { display: inline-flex; align-items: center; gap: 4px; min-height: 30px; max-width: 132px; padding: 2px 7px 2px 3px; border: 1px solid rgba(130,177,255,.2); border-radius: 7px; color: #eaf3ff; font-size: 11px; background: rgba(14,31,68,.55); cursor: pointer; }
.academy-emoji-suggestions button:hover { border-color: rgba(247,212,134,.52); background: rgba(247,212,134,.12); }
.academy-emoji-suggestions img { width: 26px; height: 26px; object-fit: contain; }
.academy-emoji-suggestions span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.academy-comment-editor-wrap .academy-emoji-picker,
.academy-answer-editor-wrap .academy-emoji-picker {
  position: fixed;
  z-index: 1000;
  top: var(--emoji-picker-top, 16px);
  right: auto;
  bottom: auto;
  left: var(--emoji-picker-left, 16px);
  width: 360px;
  max-width: calc(100vw - 32px);
  height: min(300px, calc(100vh - 32px));
  max-height: min(300px, calc(100vh - 32px));
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
  overflow: hidden;
  padding: 9px;
  border-color: rgba(238, 198, 111, 0.38);
  border-radius: 10px;
  background: rgba(5, 15, 39, 0.98);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.38);
}
.academy-comment-editor-wrap .academy-emoji-library-head,
.academy-answer-editor-wrap .academy-emoji-library-head { min-height: 24px; margin-bottom: 7px; padding: 0 2px; border: 0; background: transparent; font-size: 12px; }
.academy-comment-editor-wrap .academy-emoji-library-head em,
.academy-answer-editor-wrap .academy-emoji-library-head em { display: none; }
.academy-emoji-search { display: flex; align-items: center; gap: 5px; height: 30px; margin: 0 0 7px; padding: 0 8px; border: 1px solid rgba(140, 180, 255, .2); border-radius: 7px; color: rgba(226, 237, 255, .55); background: rgba(14, 31, 68, .56); }
.academy-emoji-search input { width: 100%; min-width: 0; border: 0; outline: 0; color: #eaf2ff; background: transparent; font: inherit; font-size: 11px; }
.academy-emoji-search input::placeholder { color: rgba(199, 216, 245, .48); }
.academy-comment-editor-wrap .academy-emoji-categories,
.academy-answer-editor-wrap .academy-emoji-categories { flex-wrap: nowrap; gap: 5px; overflow-x: auto; overflow-y: hidden; margin: 0 0 8px; padding: 0 0 3px; }
.academy-comment-editor-wrap .academy-emoji-categories button,
.academy-answer-editor-wrap .academy-emoji-categories button { min-height: 27px; padding: 0 8px; border-radius: 7px; font-size: 11px; }
.academy-comment-editor-wrap .academy-emoji-grid,
.academy-answer-editor-wrap .academy-emoji-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 1px 2px 2px; overscroll-behavior: contain; }
.academy-comment-editor-wrap .academy-emoji-choice,
.academy-answer-editor-wrap .academy-emoji-choice { height: 64px; padding: 3px 2px; border: 0; border-radius: 8px; background: rgba(54, 84, 141, 0.18); }
.academy-comment-editor-wrap .academy-emoji-choice img,
.academy-answer-editor-wrap .academy-emoji-choice img { width: 48px; height: 48px; opacity: 1; }
.academy-comment-editor-wrap .academy-emoji-choice > span,
.academy-answer-editor-wrap .academy-emoji-choice > span { font-size: 25px; }
.academy-comment-editor-wrap .academy-emoji-choice small,
.academy-answer-editor-wrap .academy-emoji-choice small { display: block; width: 100%; overflow: hidden; color: rgba(230, 238, 255, 0.8); font-size: 9px; line-height: 11px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.academy-comment-editor-wrap .academy-emoji-choice:hover,
.academy-comment-editor-wrap .academy-emoji-choice:focus-visible,
.academy-answer-editor-wrap .academy-emoji-choice:hover,
.academy-answer-editor-wrap .academy-emoji-choice:focus-visible { border: 0; background: rgba(247, 212, 134, 0.16); box-shadow: 0 0 10px rgba(247, 212, 134, 0.28); transform: scale(1.06); }
.academy-comment-editor-wrap .academy-emoji-choice.is-locked,
.academy-answer-editor-wrap .academy-emoji-choice.is-locked { opacity: .35; cursor: not-allowed; filter: grayscale(.6); }

/* Pickers live at document level so page animation containers cannot offset the popover. */
.academy-emoji-picker.is-floating {
  position: fixed;
  z-index: 1000;
  top: var(--emoji-picker-top, 16px);
  right: auto;
  bottom: auto;
  left: var(--emoji-picker-left, 16px);
  width: 360px;
  max-width: calc(100vw - 32px);
  height: min(300px, calc(100vh - 32px));
  max-height: min(300px, calc(100vh - 32px));
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
  overflow: hidden;
  padding: 9px;
  border-color: rgba(238, 198, 111, 0.38);
  border-radius: 10px;
  background: rgba(5, 15, 39, 0.98);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.38);
}
.academy-emoji-picker.is-floating .academy-emoji-library-head { min-height: 24px; margin-bottom: 7px; padding: 0 2px; border: 0; background: transparent; font-size: 12px; }
.academy-emoji-picker.is-floating .academy-emoji-library-head em { display: none; }
.academy-emoji-picker.is-floating .academy-emoji-categories { flex-wrap: nowrap; gap: 5px; overflow-x: auto; overflow-y: hidden; margin: 0 0 8px; padding: 0 0 3px; }
.academy-emoji-picker.is-floating .academy-emoji-categories button { min-height: 27px; padding: 0 8px; border-radius: 7px; font-size: 11px; }
.academy-emoji-picker.is-floating .academy-emoji-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 1px 2px 2px; overscroll-behavior: contain; }
.academy-emoji-picker.is-floating .academy-emoji-choice { height: 64px; padding: 3px 2px; border: 0; border-radius: 8px; background: rgba(54, 84, 141, 0.18); }
.academy-emoji-picker.is-floating .academy-emoji-choice img { width: 48px; height: 48px; opacity: 1; }
.academy-emoji-picker.is-floating .academy-emoji-choice > span { font-size: 25px; }
.academy-emoji-picker.is-floating .academy-emoji-choice small { display: block; width: 100%; overflow: hidden; color: rgba(230, 238, 255, 0.8); font-size: 9px; line-height: 11px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.academy-emoji-picker.is-floating .academy-emoji-choice:hover,
.academy-emoji-picker.is-floating .academy-emoji-choice:focus-visible { border: 0; background: rgba(247, 212, 134, 0.16); box-shadow: 0 0 10px rgba(247, 212, 134, 0.28); transform: scale(1.06); }
.academy-emoji-picker.is-floating .academy-emoji-choice.is-locked { opacity: .35; cursor: not-allowed; filter: grayscale(.6); }

.academy-emoji-empty { padding: 16px; color: var(--academy-muted); text-align: center; }
.academy-emoji-locked { display: grid; gap: 6px; min-height: 104px; place-content: center; padding: 16px; border: 1px dashed rgba(247, 212, 134, 0.3); border-radius: 9px; color: #ffe2a1; text-align: center; }
.academy-emoji-locked span { color: var(--academy-muted); font-size: 13px; }
.academy-identity-archive { padding: 18px; }
.academy-identity-archive-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.academy-identity-archive-grid span { display: grid; gap: 4px; padding: 10px; border: 1px solid rgba(130, 177, 255, .14); border-radius: 7px; background: rgba(9, 26, 59, .42); }
.academy-identity-archive-grid small { color: var(--academy-muted); }
.academy-identity-archive-grid strong { color: #fff1c7; font-size: 14px; }

.academy-emoji-admin-form { display: grid; grid-template-columns: 150px minmax(120px, .8fr) 110px minmax(180px, 1.25fr) 90px minmax(160px, 1fr) auto auto auto; gap: 10px; align-items: center; }
.academy-emoji-admin-form :is(select, input) { min-width: 0; height: 38px; border: 1px solid rgba(130, 177, 255, 0.24); border-radius: 7px; padding: 0 10px; color: #eef5ff; background: rgba(5, 15, 39, 0.66); font: inherit; }
.academy-emoji-admin-check { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; color: rgba(229, 239, 255, .8); font-size: 12px; white-space: nowrap; }
.academy-emoji-admin-check input { accent-color: #d8ad5a; }
.academy-emoji-stats { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr); gap: 14px; margin: 0 0 16px; }
.academy-emoji-stat-categories { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 8px; }
.academy-emoji-stat-categories span { display: grid; gap: 4px; min-height: 60px; padding: 10px; border: 1px solid rgba(130, 177, 255, .16); border-radius: 8px; background: rgba(11, 28, 62, .5); }
.academy-emoji-stat-categories small, .academy-emoji-stat-ranking small { color: var(--academy-muted); font-size: 11px; }
.academy-emoji-stat-categories strong { color: #ffe1a0; font-size: 16px; }
.academy-emoji-stat-ranking { padding: 10px; border: 1px solid rgba(247, 212, 134, .2); border-radius: 8px; background: rgba(33, 25, 49, .34); }
.academy-emoji-stat-ranking > div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.academy-emoji-stat-ranking > div > strong { color: #ffe1a0; font-size: 13px; }
.academy-emoji-stat-ranking ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; margin: 9px 0 0; padding: 0; list-style: none; }
.academy-emoji-stat-ranking li { display: grid; grid-template-columns: 16px 25px minmax(0, 1fr) auto; gap: 5px; align-items: center; min-width: 0; font-size: 11px; }
.academy-emoji-stat-ranking li.is-empty { display: block; grid-column: 1 / -1; color: var(--academy-muted); }
.academy-emoji-stat-ranking li b { color: #e9be6c; }
.academy-emoji-stat-ranking li img { width: 24px; height: 24px; object-fit: contain; }
.academy-emoji-stat-ranking li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.academy-emoji-stat-ranking li small { white-space: nowrap; }
.academy-emoji-admin-list { display: grid; gap: 22px; }
.academy-emoji-admin-category h2 { margin: 0 0 10px; color: #ffe2a1; font-size: 16px; }
.academy-emoji-admin-category h2 small { margin-left: 6px; color: var(--academy-muted); font-size: 12px; font-weight: 500; }
.academy-emoji-admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(144px, 1fr)); gap: 10px; }
.academy-emoji-admin-card { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 3px 8px; align-items: center; min-width: 0; padding: 10px; border: 1px solid rgba(130, 177, 255, 0.15); border-radius: 8px; background: rgba(13, 29, 62, 0.5); }
.academy-emoji-admin-card.is-hidden { opacity: .5; }
.academy-emoji-admin-card > img { grid-row: span 5; width: 38px; height: 38px; object-fit: contain; }
.academy-emoji-admin-card > span { position: absolute; top: 20px; left: 21px; color: #fff3c9; font-size: 17px; text-shadow: 0 1px 8px #030916; }
.academy-emoji-admin-card strong, .academy-emoji-admin-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.academy-emoji-admin-card small { color: var(--academy-muted); font-size: 10px; }
.academy-emoji-admin-card > div { grid-column: 1 / -1; display: flex; gap: 6px; margin-top: 9px; }
.academy-emoji-admin-card button { min-height: 26px; padding: 0 7px; border: 1px solid rgba(130, 177, 255, 0.22); border-radius: 5px; color: #dfeeff; font-size: 11px; background: rgba(23, 51, 105, 0.52); cursor: pointer; }

@media (max-width: 1200px) { .academy-emoji-admin-form { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 920px) { .academy-emoji-admin-form { grid-template-columns: 1fr 1fr; } }
@media (max-width: 920px) { .academy-emoji-stats { grid-template-columns: 1fr; } }

@media (max-width: 760px) {
  .academy-center-follow-panel .academy-panel-header { align-items: flex-start; gap: 8px; }
  .academy-follow-tabs { width: 100%; }
  .academy-relationship-row { grid-template-columns: 1fr; gap: 7px; }
  .academy-relationship-unfollow { justify-self: start; }

  .academy-comment-form .academy-emoji-picker,
  .academy-answer-tools .academy-emoji-picker {
    position: fixed;
    z-index: 1000;
    top: var(--emoji-picker-top, 16px);
    right: auto;
    bottom: auto;
    left: var(--emoji-picker-left, 16px);
    width: 360px;
    max-width: calc(100vw - 32px);
    height: min(300px, calc(100vh - 32px));
    max-height: min(300px, calc(100vh - 32px));
    overflow: hidden;
    border-width: 1px;
    border-radius: 10px;
    padding: 9px;
  }

  .academy-emoji-categories { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; }
  .academy-emoji-categories button { min-height: 36px; }
  .academy-emoji-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
  .academy-emoji-picker .academy-emoji-choice { height: 64px; border-radius: 8px; }
  .academy-emoji-picker .academy-emoji-choice img { width: 48px; height: 48px; }
  .academy-emoji-picker .academy-emoji-choice > span { font-size: 25px; }
  .academy-comment-emoji { width: 92px; margin: 2px 5px 7px 1px; }
  .academy-comment-emoji img { width: 86px; height: 86px; }
  .academy-comment-emoji::after { min-height: 20px; font-size: 10px; }
  .academy-emoji-admin-form { grid-template-columns: 1fr; }
  .academy-identity-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.academy-answer-box button {
  justify-self: start;
  padding: 0 18px;
}

.academy-answer-list {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.academy-answer {
  padding: 18px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.44);
}

.academy-answer.is-accepted {
  border-color: rgba(247, 212, 134, 0.42);
  background: linear-gradient(180deg, rgba(247, 212, 134, 0.12), rgba(8, 26, 63, 0.5));
}

.academy-answer-head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.academy-answer-head .realm {
  display: block;
  margin-top: 2px;
  font-size: 12px;
}

.academy-answer p {
  color: rgba(244, 249, 255, 0.88);
  line-height: 1.8;
}

.academy-accepted {
  margin-left: auto;
  padding: 6px 10px;
  border-radius: 999px;
  color: #081631;
  font-size: 12px;
  font-weight: 950;
  background: var(--academy-gold);
}

.academy-bounty-card span {
  color: var(--academy-muted);
  font-weight: 900;
}

.academy-bounty-card strong {
  display: block;
  margin: 10px 0;
  color: var(--academy-gold);
  font-size: 54px;
}

.academy-bounty-card p {
  margin: 0;
  color: var(--academy-muted);
  line-height: 1.7;
}

.academy-profile-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
}

.academy-profile-main small {
  color: rgba(218, 229, 255, 0.64);
}

.academy-exp {
  overflow: hidden;
  height: 12px;
  max-width: 620px;
  margin: 14px 0 8px;
  border-radius: 999px;
  background: rgba(1, 8, 24, 0.72);
}

.academy-exp span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--academy-gold), var(--academy-cyan));
  box-shadow: 0 0 18px rgba(50, 214, 255, 0.34);
}

.academy-profile-stats {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.academy-profile-stats article,
.academy-badge {
  border: 1px solid var(--academy-line);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(10, 32, 76, 0.72), rgba(3, 13, 35, 0.72));
  backdrop-filter: blur(16px);
}

.academy-profile-stats article {
  padding: 18px;
  text-align: center;
}

.academy-profile-stats strong {
  display: block;
  color: #fff;
  font-size: 24px;
}

.academy-profile-stats span {
  display: block;
  margin-top: 6px;
  color: var(--academy-muted);
}

.academy-profile-layout {
  display: grid;
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 18px;
}

.academy-profile-collections,
.academy-profile-history {
  margin-top: 18px;
}

.academy-library-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  padding: 14px 14px 0;
}

.academy-library-folder-card {
  display: grid;
  gap: 4px;
  min-height: 92px;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  color: rgba(244, 249, 255, 0.92);
  text-decoration: none;
  background: linear-gradient(180deg, rgba(8, 26, 63, 0.58), rgba(5, 14, 35, 0.5));
}

.academy-library-folder-card span {
  font-size: 20px;
}

.academy-library-folder-card small {
  color: rgba(218, 229, 255, 0.58);
}

.academy-library-manage-card {
  border-color: rgba(247, 212, 134, 0.28);
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.13), rgba(38, 221, 232, 0.08));
}

.academy-library-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 18px;
  align-items: center;
}

.academy-library-create-card {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 16px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-library-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.academy-library-stats article {
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.48);
}

.academy-library-stats strong,
.academy-library-stats span {
  display: block;
}

.academy-library-stats strong {
  color: #fff;
  font-size: 24px;
}

.academy-library-stats span {
  margin-top: 4px;
  color: var(--academy-muted);
}

.academy-library-layout {
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  gap: 18px;
}

.academy-library-folder-list {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.academy-library-folder-row {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  color: rgba(244, 249, 255, 0.92);
  background: rgba(8, 26, 63, 0.42);
}

button.academy-library-folder-row,
.academy-library-folder-row > button {
  width: 100%;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  border: 0;
  padding: 0;
  color: inherit;
  text-align: left;
  background: transparent;
  cursor: pointer;
}

.academy-library-folder-row.is-active {
  border-color: rgba(247, 212, 134, 0.38);
  background: rgba(247, 212, 134, 0.08);
}

.academy-library-folder-row small,
.academy-library-folder-row p {
  color: rgba(218, 229, 255, 0.58);
}

.academy-library-folder-row p {
  margin: 0;
  font-size: 13px;
}

.academy-library-folder-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.academy-library-folder-actions button,
.academy-library-filters button,
.academy-library-item > button {
  border: 1px solid rgba(130, 177, 255, 0.2);
  border-radius: 999px;
  padding: 7px 10px;
  color: rgba(244, 249, 255, 0.88);
  background: rgba(8, 26, 63, 0.42);
  cursor: pointer;
}

.academy-library-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.academy-library-filters button.is-active {
  color: #081631;
  border-color: rgba(247, 212, 134, 0.36);
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  font-weight: 900;
}

.academy-library-items {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.academy-library-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-library-item a {
  min-width: 0;
  color: rgba(244, 249, 255, 0.92);
  text-decoration: none;
}

.academy-library-item strong,
.academy-library-item p,
.academy-library-item small {
  display: block;
}

.academy-library-item strong {
  margin: 8px 0 4px;
}

.academy-library-item p {
  margin: 0 0 8px;
  color: rgba(218, 229, 255, 0.68);
}

.academy-library-item small {
  color: rgba(218, 229, 255, 0.52);
}

.academy-profile-follows {
  margin-top: 18px;
}

.academy-activity-panel,
.academy-growth-panel {
  margin-top: 18px;
}

.academy-activity-list,
.academy-timeline {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.academy-activity-item {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(10, 32, 76, 0.56), rgba(3, 13, 35, 0.54));
}

.academy-activity-link-card {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.academy-activity-link-card:hover,
.academy-activity-link-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(247, 212, 134, 0.36);
  background: linear-gradient(180deg, rgba(16, 47, 105, 0.7), rgba(5, 20, 48, 0.62));
  outline: none;
}

.academy-activity-link-card:focus-visible {
  box-shadow: 0 0 0 3px rgba(247, 212, 134, 0.18);
}

.academy-activity-mark {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  color: #081631;
  font-weight: 950;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.95), rgba(50, 214, 255, 0.78));
}

.academy-activity-mark.academy-avatar {
  flex: 0 0 48px;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}

.academy-mini-link > span img,
.academy-activity-mark img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

.academy-activity-item h3 {
  margin: 8px 0 6px;
  font-size: 18px;
}

.academy-activity-item p,
.academy-timeline-item p {
  margin: 0;
  color: var(--academy-muted);
  line-height: 1.6;
}

.academy-heat-score {
  display: grid;
  place-items: center;
  min-height: 72px;
  border: 1px solid rgba(247, 212, 134, 0.22);
  border-radius: 14px;
  background: rgba(247, 212, 134, 0.08);
}

.academy-heat-score strong {
  color: var(--academy-gold);
  font-size: 22px;
}

.academy-heat-score span {
  color: var(--academy-muted);
  font-size: 12px;
}

.academy-growth-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 16px;
}

/* The cultivation center has nine personal metrics, so keep its desktop grid balanced. */
body[data-academy-page="center"] .academy-growth-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.academy-growth-grid article {
  padding: 16px;
  border: 1px solid var(--academy-line);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(10, 32, 76, 0.72), rgba(3, 13, 35, 0.72));
  text-align: center;
}

.academy-growth-grid strong {
  display: block;
  color: #fff;
  font-size: 22px;
}

.academy-growth-grid span {
  display: block;
  margin-top: 6px;
  color: var(--academy-muted);
}

.academy-sub-header {
  border-top: 1px solid rgba(130, 177, 255, 0.14);
}

.academy-sub-header .academy-panel-title {
  font-size: 16px;
}

.academy-timeline-item {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.38);
}

.academy-timeline-dot {
  width: 12px;
  height: 12px;
  margin-top: 5px;
  border-radius: 999px;
  background: var(--academy-gold);
  box-shadow: 0 0 18px rgba(247, 212, 134, 0.4);
}

.academy-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.academy-dashboard-stat {
  padding: 18px;
  border: 1px solid var(--academy-line);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(10, 32, 76, 0.72), rgba(3, 13, 35, 0.72));
  backdrop-filter: blur(16px);
}

.academy-dashboard-stat strong {
  display: block;
  color: #fff;
  font-size: 26px;
}

.academy-dashboard-stat span,
.academy-dashboard-stat small {
  display: block;
  margin-top: 6px;
  color: var(--academy-muted);
}

.academy-dashboard-layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.academy-dashboard-trends {
  margin-top: 18px;
}

.academy-search-results {
  position: fixed;
  z-index: 80;
  max-width: calc(100vw - 24px);
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 16px;
  background: rgba(3, 13, 35, 0.96);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.44);
  backdrop-filter: blur(20px);
}

.academy-search-results-inner {
  display: grid;
  gap: 10px;
  max-height: min(520px, calc(100vh - 120px));
  overflow: auto;
  padding: 16px;
}

.academy-profile-public-actions { margin: 6px 0 2px; }
.academy-message-tabs { display:flex; gap:6px; margin: 0 0 12px; }
.academy-message-tabs button { padding:8px 14px; border:1px solid rgba(130,177,255,.2); border-radius:7px; color:var(--academy-muted); background:rgba(5,16,42,.5); cursor:pointer; }
.academy-message-tabs button.is-active { color:#fff3d2; border-color:rgba(247,212,134,.42); background:rgba(247,212,134,.12); }
.academy-message-tabs span, .academy-direct-conversation em { display:inline-grid; place-items:center; min-width:18px; height:18px; margin-left:4px; border-radius:99px; color:#06142f; font-size:11px; font-style:normal; background:#f7d486; }
.academy-direct-message-layout { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,1.5fr); height:clamp(440px,calc(100vh - 340px),540px); min-height:0; border-top:1px solid rgba(130,177,255,.1); background:#050914; }
.academy-message-safety-settings { position:absolute; z-index:4; right:14px; top:62px; width:min(280px,calc(100% - 28px)); padding:8px 10px; border:1px solid rgba(155,188,224,.18); border-radius:8px; color:var(--academy-muted); font-size:12px; background:rgba(5,10,19,.92); box-shadow:0 10px 28px rgba(0,0,0,.22); }
.academy-message-safety-settings summary { color:#dbe9ff; cursor:pointer; user-select:none; }.academy-message-safety-settings[open] summary { margin-bottom:8px; }.academy-message-safety-settings label { display:flex; align-items:center; gap:7px; }.academy-message-blocked-list { display:grid; gap:6px; margin-top:8px; }.academy-message-blocked-list:empty { display:none; }.academy-message-blocked-list div { display:flex; align-items:center; justify-content:space-between; gap:8px; }.academy-message-blocked-list button,.academy-direct-thread-actions button { border:1px solid rgba(155,188,224,.2); border-radius:5px; color:#dbe9ff; background:rgba(255,255,255,.05); cursor:pointer; }.academy-message-blocked-list button { padding:3px 6px; font-size:11px; }.academy-direct-thread-actions { display:flex; align-items:center; gap:6px; margin-left:auto; }.academy-direct-thread-actions button { padding:6px 8px; font-size:12px; }.academy-direct-thread-actions .danger { color:#ffacb2; border-color:rgba(255,112,123,.25); }
body[data-academy-page="notifications"] .academy-direct-message-panel > .academy-panel-header { min-height:54px; padding-inline:14px; border-bottom-color:rgba(155,188,224,.12); background:rgba(5,9,17,.78); }
.academy-direct-message-list { position:relative; isolation:isolate; overflow:auto; border-right:1px solid rgba(155,188,224,.12); background-image:radial-gradient(circle at 7% 9%,rgba(227,238,255,.58) 0 .65px,transparent 1.1px),radial-gradient(circle at 16% 41%,rgba(175,211,255,.46) 0 .55px,transparent 1px),radial-gradient(circle at 28% 77%,rgba(255,232,174,.45) 0 .6px,transparent 1.1px),radial-gradient(circle at 39% 18%,rgba(220,235,255,.5) 0 .6px,transparent 1.05px),radial-gradient(circle at 52% 58%,rgba(183,211,255,.42) 0 .55px,transparent 1px),radial-gradient(circle at 63% 31%,rgba(235,243,255,.5) 0 .7px,transparent 1.15px),radial-gradient(circle at 74% 88%,rgba(255,232,174,.4) 0 .5px,transparent .95px),radial-gradient(circle at 86% 22%,rgba(186,218,255,.48) 0 .65px,transparent 1.1px),radial-gradient(circle at 93% 64%,rgba(229,241,255,.4) 0 .5px,transparent .9px),linear-gradient(145deg,rgba(9,13,22,.98),rgba(3,5,10,.98)); background-repeat:no-repeat; background-size:100% 100%; }
.academy-direct-message-list::before,.academy-direct-message-list::after { content:""; position:absolute; z-index:0; width:76px; height:1px; pointer-events:none; opacity:0; border-radius:99px; background:linear-gradient(90deg,transparent,rgba(171,211,255,.45),#fff); box-shadow:0 0 5px rgba(151,199,255,.46); transform:translate3d(-120px,-42px,0) rotate(25deg); animation:academyDirectListMeteor 19s linear infinite; }
.academy-direct-message-list::before { top:22%; left:16%; animation-delay:4.8s; }
.academy-direct-message-list::after { top:61%; left:42%; width:58px; animation-delay:13.2s; }
.academy-direct-message-list > * { position:relative; z-index:1; }
@keyframes academyDirectListMeteor { 0%,4% { opacity:0; transform:translate3d(-120px,-42px,0) rotate(25deg); } 5% { opacity:.85; } 12% { opacity:0; transform:translate3d(245px,120px,0) rotate(25deg); } 13%,100% { opacity:0; transform:translate3d(245px,120px,0) rotate(25deg); } }
@media (prefers-reduced-motion: reduce) { .academy-direct-message-list::before,.academy-direct-message-list::after { animation:none; } }
.academy-direct-conversation { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; min-height:68px; width:100%; gap:10px; padding:13px; border:0; border-bottom:1px solid rgba(130,177,255,.08); color:inherit; text-align:left; background:transparent; cursor:pointer; }
.academy-direct-conversation.is-active { background:linear-gradient(90deg,rgba(48,70,98,.46),rgba(16,24,38,.22)); box-shadow:inset 2px 0 0 rgba(171,204,235,.62); }
.academy-direct-conversation .academy-avatar { width:42px; height:42px; }
.academy-direct-conversation strong,.academy-direct-conversation small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.academy-direct-conversation small { margin-top:3px; color:var(--academy-muted); font-size:12px; }
.academy-direct-conversation small .academy-direct-message-emoji { width:16px; height:16px; vertical-align:-3px; }
.academy-direct-conversation-state { display:grid; justify-items:end; gap:4px; min-width:28px; }
.academy-direct-conversation-state time { color:rgba(194,211,237,.5); font-size:11px; white-space:nowrap; }
.academy-direct-thread { position:relative; isolation:isolate; display:grid; grid-template-rows:auto minmax(0,1fr) auto; min-width:0; min-height:0; overflow:hidden; background:linear-gradient(145deg,#090d16 0%,#050810 48%,#03050a 100%); }
.academy-direct-thread > :not(.academy-direct-meteor-field) { position:relative; z-index:2; }
.academy-direct-thread::before { content:""; position:absolute; z-index:0; top:0; right:0; left:0; height:245px; opacity:1; background-color:#03050a; background-image:radial-gradient(circle at 5% 22%,#ffffff 0 1.25px,transparent 2.3px),radial-gradient(circle at 11% 57%,rgba(193,218,255,.95) 0 .8px,transparent 1.8px),radial-gradient(circle at 16% 13%,rgba(255,239,190,.98) 0 1.15px,transparent 2.3px),radial-gradient(circle at 22% 39%,rgba(238,245,255,.9) 0 .7px,transparent 1.6px),radial-gradient(circle at 28% 72%,rgba(166,204,255,.92) 0 1px,transparent 2px),radial-gradient(circle at 34% 20%,#ffffff 0 .9px,transparent 1.8px),radial-gradient(circle at 39% 53%,rgba(255,232,170,.9) 0 .75px,transparent 1.7px),radial-gradient(circle at 45% 8%,rgba(214,230,255,.95) 0 1.05px,transparent 2px),radial-gradient(circle at 51% 68%,rgba(255,255,255,.92) 0 .8px,transparent 1.8px),radial-gradient(circle at 57% 30%,rgba(178,211,255,.9) 0 1px,transparent 2px),radial-gradient(circle at 63% 82%,rgba(255,237,190,.96) 0 .8px,transparent 1.8px),radial-gradient(circle at 68% 13%,#ffffff 0 1.2px,transparent 2.3px),radial-gradient(circle at 73% 46%,rgba(197,220,255,.95) 0 .75px,transparent 1.7px),radial-gradient(circle at 78% 70%,rgba(255,255,255,.9) 0 1px,transparent 2px),radial-gradient(circle at 84% 27%,rgba(255,232,170,.9) 0 .75px,transparent 1.8px),radial-gradient(circle at 90% 58%,rgba(199,220,255,.96) 0 1.1px,transparent 2.1px),radial-gradient(circle at 96% 16%,#ffffff 0 .85px,transparent 1.8px),radial-gradient(ellipse at 56% -10%,rgba(37,63,115,.3),transparent 58%); }
.academy-direct-thread::after { content:""; position:absolute; z-index:0; top:0; right:0; left:0; height:270px; pointer-events:none; background:linear-gradient(180deg,rgba(3,5,10,0),rgba(4,7,13,.78) 76%,rgba(5,8,16,1)); }
.academy-direct-meteor-field { position:absolute; z-index:1; top:0; right:0; left:0; height:245px; overflow:hidden; pointer-events:none; }
.academy-direct-meteor-field i { position:absolute; width:94px; height:1px; border-radius:99px; opacity:0; background:linear-gradient(90deg,transparent,rgba(181,217,255,.4),#ffffff); box-shadow:0 0 6px rgba(162,206,255,.5); transform:translate3d(-180px,-60px,0) rotate(25deg); will-change:transform,opacity; animation:academyDirectMeteor 15s linear infinite; }
.academy-direct-meteor-field i:nth-child(1) { top:14%; left:18%; animation-delay:1.4s; }
.academy-direct-meteor-field i:nth-child(2) { top:34%; left:49%; width:72px; animation-delay:6.6s; }
.academy-direct-meteor-field i:nth-child(3) { top:8%; left:76%; width:108px; animation-delay:11.2s; }
.academy-direct-meteor-field i:nth-child(4) { top:58%; left:7%; width:64px; animation-delay:3.9s; }
.academy-direct-meteor-field i:nth-child(5) { top:22%; left:61%; width:82px; animation-delay:9.1s; }
.academy-direct-meteor-field i:nth-child(6) { top:70%; left:36%; width:58px; animation-delay:13.8s; }
@keyframes academyDirectMeteor { 0%,4% { opacity:0; transform:translate3d(-180px,-60px,0) rotate(25deg); } 5% { opacity:.95; } 12% { opacity:0; transform:translate3d(360px,170px,0) rotate(25deg); } 13%,100% { opacity:0; transform:translate3d(360px,170px,0) rotate(25deg); } }
@media (prefers-reduced-motion: reduce) { .academy-direct-meteor-field i { animation:none; } }
.academy-direct-thread-header { display:flex; align-items:center; gap:11px; min-height:84px; padding:12px 16px; border-bottom:1px solid rgba(155,188,224,.13); background:rgba(5,9,17,.56); }
.academy-direct-thread-person { display:flex; align-items:center; gap:11px; min-width:0; padding:7px 13px 7px 7px; border:1px solid rgba(155,188,224,.18); border-radius:14px; background:rgba(9,15,27,.76); box-shadow:inset 0 1px 0 rgba(255,255,255,.035); }
.academy-direct-thread-header .academy-avatar { width:48px; height:48px; }
.academy-direct-thread-partner { display:grid; gap:3px; min-width:0; }
.academy-direct-thread-partner strong { color:#f2f6ff; font-size:16px; }
.academy-direct-thread-partner small { color:var(--academy-muted); font-size:12px; }
.academy-direct-thread-body { display:grid; align-content:start; gap:9px; min-height:0; overflow:auto; padding:14px; background:linear-gradient(180deg,rgba(5,8,16,.42),rgba(2,4,9,.22)); }
.academy-direct-thread-body > .academy-empty { display:grid; place-items:center; min-height:100%; padding:0 20px; text-align:center; }
.academy-direct-message { max-width:min(78%,460px); }.academy-direct-message div { padding:9px 11px; border-radius:8px; background:rgba(21,50,101,.62); overflow-wrap:anywhere; }.academy-direct-message.is-sent { justify-self:end; }.academy-direct-message.is-sent div { background:rgba(103,82,188,.5); }.academy-direct-message small { display:block; margin-top:3px; color:var(--academy-muted); font-size:11px; }.academy-direct-message.is-sent small{text-align:right;}
.academy-direct-message-emoji { width:64px; height:64px; vertical-align:middle; object-fit:contain; }
.academy-direct-composer { position:relative; display:grid; gap:8px; padding:10px; border-top:1px solid rgba(155,188,224,.12); background:rgba(3,6,12,.76); }.academy-direct-composer-input { width:100%; min-height:68px; max-height:68px; box-sizing:border-box; overflow:auto; padding:9px; color:inherit; line-height:1.45; white-space:pre-wrap; overflow-wrap:anywhere; border:1px solid rgba(130,177,255,.22); border-radius:7px; outline:0; background:rgba(4,8,17,.84); }.academy-direct-composer-input:empty::before { content:attr(data-placeholder); color:rgba(194,211,237,.52); pointer-events:none; }.academy-direct-composer-input:focus { border-color:rgba(247,212,134,.48); box-shadow:0 0 0 2px rgba(247,212,134,.07); }.academy-direct-composer-emoji { width:38px; height:38px; margin:0 2px; vertical-align:middle; object-fit:contain; user-select:none; }.academy-direct-composer-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; }.academy-direct-composer-actions .academy-inline-button { min-width:62px; }.academy-direct-emoji-picker { position:absolute; z-index:20; bottom:100%; left:10px; display:grid; grid-template-columns:repeat(6,42px); gap:5px; max-width:290px; max-height:230px; overflow:auto; padding:8px; border:1px solid rgba(247,212,134,.3); border-radius:8px; background:#07152f; }.academy-direct-emoji-picker button { width:42px; height:42px; padding:2px; border:0; border-radius:5px; background:rgba(255,255,255,.05); cursor:pointer; }.academy-direct-emoji-picker img { width:100%; height:100%; object-fit:contain; }

.academy-search-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.academy-search-summary strong { color: #fff3d2; font-size: 15px; }
.academy-search-summary small { color: var(--academy-muted); font-size: 12px; white-space: nowrap; }

.academy-search-filters {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: none;
}

.academy-search-filters::-webkit-scrollbar { display: none; }

.academy-search-filters button {
  flex: 0 0 auto;
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 6px;
  color: rgba(222, 234, 255, 0.78);
  font: inherit;
  font-size: 12px;
  background: rgba(8, 26, 63, 0.42);
  cursor: pointer;
}

.academy-search-filters button em {
  margin-left: 3px;
  color: var(--academy-muted);
  font-size: 11px;
  font-style: normal;
}

.academy-search-filters button:hover,
.academy-search-filters button:focus-visible,
.academy-search-filters button.is-active {
  border-color: rgba(247, 212, 134, 0.42);
  color: #fff3d2;
  outline: 0;
  background: rgba(247, 212, 134, 0.12);
}

.academy-search-groups {
  display: grid;
  gap: 10px;
}

.academy-search-group h3 {
  margin: 0 0 8px;
  color: var(--academy-gold);
  font-size: 14px;
}

.academy-search-result {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: inherit;
  text-decoration: none;
  background: rgba(8, 26, 63, 0.48);
  transition: border-color 0.18s ease, background 0.18s ease;
}

.academy-search-result:hover,
.academy-search-result:focus-visible {
  border-color: rgba(247, 212, 134, 0.46);
  outline: 0;
  background: rgba(22, 54, 112, 0.64);
}

.academy-search-mark {
  display: grid;
  place-items: center;
  width: auto;
  height: 38px;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
  color: #081631;
  font-weight: 950;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.95), rgba(50, 214, 255, 0.78));
}

.academy-search-mark img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: inherit;
  object-fit: cover;
  object-position: center;
}

.academy-search-result strong,
.academy-search-result small {
  display: block;
}

.academy-search-result small,
.academy-search-result em {
  color: var(--academy-muted);
  font-size: 12px;
  font-style: normal;
}

.academy-review-reason {
  margin: 10px 0 0;
  color: var(--academy-muted);
}

.academy-governance-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 18px;
}

.academy-governance-list,
.academy-hotword-list {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.academy-governance-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.15);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-governance-row h3 {
  margin: 8px 0 6px;
  font-size: 16px;
}

.academy-governance-row p {
  margin: 0;
  color: var(--academy-muted);
  line-height: 1.6;
}

.academy-checkline {
  display: grid;
  place-items: center;
}

.academy-checkline input {
  width: 18px;
  height: 18px;
  accent-color: var(--academy-gold);
}

.academy-bulk-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 16px 0;
}

.academy-bulk-actions button,
.academy-mini-link button {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 9px;
  color: #081631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-hotword {
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.15);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-hotword strong,
.academy-hotword span,
.academy-hotword small {
  display: block;
}

.academy-hotword strong {
  color: #fff;
  font-size: 18px;
}

.academy-hotword span,
.academy-hotword small {
  margin-top: 6px;
  color: var(--academy-muted);
}

.academy-governance-section-title {
  padding: 4px 2px;
  color: var(--academy-gold);
  font-weight: 950;
}

.academy-select {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid rgba(119, 170, 255, 0.24);
  border-radius: 10px;
  color: #fff;
  background: rgba(10, 32, 76, 0.82);
}

.academy-admin-modules {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.academy-admin-module {
  min-height: 220px;
  padding: 20px;
  border: 1px solid var(--academy-line);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(10, 32, 76, 0.72), rgba(3, 13, 35, 0.72));
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(16px);
}

.academy-admin-module-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.academy-admin-module-head span {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  color: #081631;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.95), rgba(50, 214, 255, 0.78));
}

.academy-admin-module h2 {
  margin: 0;
  font-size: 20px;
}

.academy-admin-module a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  margin-top: 10px;
  padding: 0 12px;
  border: 1px solid rgba(130, 177, 255, 0.13);
  border-radius: 12px;
  color: rgba(239, 246, 255, 0.86);
  text-decoration: none;
  background: rgba(8, 26, 63, 0.42);
}

.academy-admin-module a::after {
  content: "›";
  color: var(--academy-gold);
  font-size: 20px;
}

.academy-admin-workbench {
  display: grid;
  gap: 18px;
  margin-top: 22px;
}

.academy-me-panel {
  margin: 18px 0;
}

.academy-me-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(280px, 1.2fr) auto;
  gap: 18px;
  align-items: center;
}

.academy-lobby-identity {
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(4, 18, 48, 0.72), rgba(3, 10, 30, 0.78));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 18px 50px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(16px);
}

body[data-academy-page="home-real"] .academy-lobby-identity {
  grid-template-columns: 58px minmax(0, 1fr) !important;
  align-self: center;
  gap: 12px;
  padding: 14px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-avatar-xl {
  width: 58px;
  height: 58px;
  font-size: 20px;
}

body[data-academy-page="home-real"] .academy-lobby-identity h2 {
  margin: 2px 0 4px;
  font-size: 19px;
}

body[data-academy-page="home-real"] .academy-lobby-identity p {
  font-size: 12px;
  line-height: 1.5;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats,
body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-actions {
  grid-column: 1 / -1;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats article {
  min-height: 44px;
  padding: 8px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-action {
  min-height: 36px;
  padding: 0 8px;
  border-radius: 12px;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-cultivation-progress {
  margin-top: 8px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-cultivation-progress span {
  height: 8px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-cultivation-progress small {
  font-size: 11px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats strong {
  font-size: 14px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats span {
  margin-top: 3px;
  font-size: 11px;
}

.academy-me-card h2 {
  margin: 4px 0 8px;
  font-size: 22px;
}

.academy-me-card p {
  margin: 0;
  color: var(--academy-muted);
}

.academy-me-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.academy-me-stats article {
  min-height: 72px;
  padding: 12px;
  border: 1px solid rgba(130, 177, 255, 0.13);
  border-radius: 12px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-me-stats strong,
.academy-me-stats span {
  display: block;
}

.academy-me-stats strong {
  color: var(--academy-gold);
  font-size: 18px;
}

.academy-me-stats span {
  margin-top: 6px;
  color: var(--academy-muted);
  font-size: 12px;
}

.academy-me-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.academy-action.is-checking {
  animation: academyPulseGold 0.8s ease-in-out infinite alternate;
}

.academy-action.is-checked {
  border-color: rgba(50, 214, 255, 0.36);
  background: linear-gradient(135deg, rgba(15, 109, 92, 0.95), rgba(25, 101, 154, 0.95));
}

.academy-inline-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(247, 212, 134, 0.25);
  border-radius: 999px;
  color: var(--academy-gold);
  text-decoration: none;
  background: rgba(8, 26, 63, 0.62);
  cursor: pointer;
}

.academy-empty-suggestions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 12px 0;
}

.academy-empty-suggestions span {
  padding: 6px 10px;
  border: 1px solid rgba(247, 212, 134, 0.22);
  border-radius: 999px;
  color: var(--academy-gold);
  background: rgba(247, 212, 134, 0.08);
  font-size: 12px;
  font-weight: 900;
}

.academy-action-bar a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 12px;
  color: #081631;
  text-decoration: none;
  font-weight: 950;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
}

.academy-hero-actions-compact {
  grid-template-columns: repeat(2, minmax(160px, 220px));
  margin-top: 14px;
}

.academy-create-layout,
.academy-my-content-layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.36fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin-top: 18px;
}

.academy-center-hero {
  margin-top: 0;
  align-items: center;
}

.academy-center-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 18px;
  align-items: start;
}

.academy-center-grid-small {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.academy-center-follow-panel { margin-top: 12px; }
.academy-follow-tabs { display: inline-flex; gap: 5px; max-width: 100%; overflow-x: auto; }
.academy-follow-tabs button { flex: 0 0 auto; min-height: 30px; padding: 0 9px; border: 1px solid rgba(130, 177, 255, 0.2); border-radius: 7px; color: rgba(227, 238, 255, 0.78); font: inherit; font-size: 12px; background: rgba(9, 28, 63, 0.48); cursor: pointer; }
.academy-follow-tabs button.is-active { border-color: rgba(247, 212, 134, 0.52); color: #fff1c7; background: rgba(247, 212, 134, 0.13); }
.academy-relationship-list { display: grid; gap: 8px; padding: 10px 12px 12px; }
.academy-relationship-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; min-width: 0; padding: 9px; border: 1px solid rgba(130, 177, 255, 0.12); border-radius: 8px; background: rgba(8, 26, 63, 0.3); }
.academy-relationship-profile { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 9px; align-items: center; min-width: 0; color: inherit; text-decoration: none; }
.academy-relationship-avatar { display: grid; place-items: center; width: 38px; height: 38px; overflow: hidden; border-radius: 50%; background: rgba(66, 123, 207, 0.24); }
.academy-relationship-avatar img { width: 100%; height: 100%; object-fit: cover; }
.academy-relationship-main { min-width: 0; }
.academy-relationship-main strong, .academy-relationship-main small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.academy-relationship-main strong { color: #f4f8ff; font-size: 13px; }
.academy-relationship-main small { margin-top: 3px; color: rgba(215, 228, 252, 0.63); font-size: 11px; }
.academy-relationship-unfollow { min-width: 74px; }

.academy-lobby-grid,
.academy-create-management {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 18px;
}

.academy-create-management {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.academy-guide-list,
.academy-task-list {
  display: grid;
  gap: 10px;
}

.academy-guide-item,
.academy-task-item {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 12px;
  color: #eaf4ff;
  text-decoration: none;
  background: rgba(8, 26, 63, 0.48);
}

.academy-task-item {
  grid-template-columns: 1fr;
}

.academy-guide-item > span {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  color: #081631;
  font-weight: 950;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
}

.academy-guide-item strong,
.academy-task-item strong {
  display: block;
  color: var(--academy-gold);
}

.academy-guide-item p,
.academy-task-item span {
  display: block;
  margin: 4px 0 0;
  color: var(--academy-muted);
  font-size: 13px;
  line-height: 1.55;
}

.academy-cultivation-progress {
  display: grid;
  gap: 7px;
  margin-top: 12px;
  max-width: 520px;
}

.academy-cultivation-progress span {
  display: block;
  height: 10px;
  overflow: hidden;
  border: 1px solid rgba(247, 212, 134, 0.24);
  border-radius: 999px;
  background: rgba(1, 8, 24, 0.55);
}

.academy-cultivation-progress i {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #53e6ff, #ffe19a);
  box-shadow: 0 0 16px rgba(247, 212, 134, 0.42);
}

.academy-cultivation-progress small {
  color: var(--academy-muted);
  font-size: 12px;
  font-weight: 800;
}

.academy-realm-track {
  display: grid;
  gap: 10px;
}

.academy-growth-step.is-active {
  border-color: rgba(247, 212, 134, 0.42);
  background: rgba(247, 212, 134, 0.1);
}

.academy-create-switch {
  position: sticky;
  top: 18px;
}

.academy-create-tabs {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.academy-create-tabs button {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 58px;
  padding: 0 16px;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 14px;
  color: rgba(239, 246, 255, 0.88);
  font: inherit;
  font-weight: 950;
  text-align: left;
  background: rgba(8, 26, 63, 0.48);
  cursor: pointer;
}

.academy-create-tabs button.is-active {
  border-color: rgba(247, 212, 134, 0.38);
  color: #081631;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
}

.academy-create-note {
  display: grid;
  gap: 8px;
  margin: 0 16px 16px;
  padding: 14px;
  border: 1px solid rgba(247, 212, 134, 0.2);
  border-radius: 14px;
  color: var(--academy-muted);
  background: rgba(247, 212, 134, 0.08);
}

.academy-create-note strong {
  color: var(--academy-gold);
}

.academy-create-panel[hidden] {
  display: none;
}

.academy-create-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 18px;
}

.academy-create-form label {
  display: grid;
  gap: 8px;
  color: var(--academy-muted);
  font-size: 13px;
  font-weight: 900;
}

.academy-create-form input,
.academy-create-form select,
.academy-create-form textarea {
  width: 100%;
  border: 1px solid rgba(172, 202, 255, 0.24);
  border-radius: 10px;
  outline: 0;
  color: #fff;
  background: rgba(1, 8, 24, 0.55);
  font: inherit;
}

.academy-create-form input,
.academy-create-form select {
  min-height: 44px;
  padding: 0 12px;
}

.academy-create-form textarea {
  resize: vertical;
  padding: 12px;
  line-height: 1.7;
}

.academy-form-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  grid-column: 1 / -1;
}

.academy-form-actions button {
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 10px;
  color: #081631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-form-actions button.secondary {
  color: #eaffff;
  border-color: rgba(38, 221, 232, 0.34);
  background: linear-gradient(135deg, rgba(39, 157, 255, 0.86), rgba(18, 203, 207, 0.72));
}

.academy-create-stats {
  margin-top: 18px;
}

.academy-content-row .academy-review-actions {
  min-width: 172px;
}

/* P34 academy admin center */
.academy-admin-shell .academy-main {
  max-width: none;
}

.academy-admin-nav .academy-nav-title {
  margin-top: 14px;
}

.academy-admin-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(8, 26, 63, 0.78), rgba(5, 14, 35, 0.58));
}

.academy-admin-page-head h1 {
  margin: 4px 0 6px;
  font-size: 26px;
  letter-spacing: 0;
}

.academy-admin-page-head p {
  margin: 0;
  color: var(--academy-muted);
}

.academy-admin-portal-hero {
  min-height: 220px;
}

.academy-admin-module-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.academy-admin-module-grid a {
  display: grid;
  gap: 8px;
  min-height: 112px;
  padding: 16px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 14px;
  color: rgba(244, 249, 255, 0.92);
  text-decoration: none;
  background: rgba(8, 26, 63, 0.46);
}

.academy-admin-module-grid strong {
  color: #fff6d7;
  font-size: 18px;
}

.academy-admin-module-grid span {
  color: var(--academy-muted);
  line-height: 1.6;
}

.academy-admin-table-panel {
  margin-bottom: 16px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 16px;
  background: rgba(5, 14, 35, 0.55);
  overflow: hidden;
}

.academy-admin-panel-head,
.academy-admin-filterbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.1);
}

.academy-admin-panel-head h2 {
  margin: 0;
  font-size: 18px;
}

.academy-admin-panel-head span {
  color: var(--academy-muted);
}

.academy-admin-filterbar {
  justify-content: flex-start;
  flex-wrap: wrap;
}

.academy-admin-filterbar label {
  display: grid;
  gap: 6px;
  color: rgba(218, 229, 255, 0.7);
  font-size: 13px;
}

.academy-admin-input,
.academy-admin-filterbar .academy-select {
  min-width: 190px;
  min-height: 38px;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 10px;
  padding: 0 12px;
  color: #f4f9ff;
  background: rgba(5, 14, 35, 0.76);
}

.academy-admin-two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.academy-admin-dashboard-kpis {
  padding: 14px;
}

.academy-admin-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
}

.academy-admin-table th,
.academy-admin-table td {
  padding: 13px 14px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.1);
  text-align: left;
  vertical-align: top;
}

.academy-admin-table th {
  color: rgba(255, 246, 213, 0.9);
  font-size: 13px;
  font-weight: 800;
  background: rgba(8, 26, 63, 0.72);
}

.academy-admin-table td {
  color: rgba(244, 249, 255, 0.88);
}

.academy-admin-table td strong,
.academy-admin-table td small {
  display: block;
}

.academy-admin-table td small {
  margin-top: 5px;
  color: rgba(218, 229, 255, 0.58);
  line-height: 1.45;
}

.academy-admin-status {
  display: inline-flex;
  border: 1px solid rgba(247, 212, 134, 0.24);
  border-radius: 999px;
  padding: 4px 8px;
  color: #fff3cc;
  background: rgba(247, 212, 134, 0.08);
}

.academy-table-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  min-width: 180px;
}

.academy-table-actions button,
.academy-bulk-actions button {
  min-height: 30px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 8px;
  padding: 0 9px;
  color: #081631;
  font-size: 12px;
  font-weight: 800;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-table-actions button.danger,
.academy-bulk-actions button:nth-child(2) {
  color: #ffe9e9;
  border-color: rgba(255, 118, 118, 0.34);
  background: rgba(160, 42, 62, 0.76);
}

.academy-user-cell-large img {
  width: 64px;
  height: 64px;
}

.academy-admin-user-detail {
  display: grid;
  gap: 16px;
  padding: 16px;
}

.academy-admin-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.academy-real-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.48fr);
  gap: 20px;
  align-items: center;
  min-height: 280px;
  padding: 24px;
  border: 1px solid rgba(116, 174, 255, 0.22);
  border-radius: 18px;
  background:
    linear-gradient(90deg, rgba(3, 8, 24, 0.92) 0%, rgba(5, 12, 32, 0.78) 34%, rgba(5, 12, 32, 0.36) 62%, rgba(5, 10, 24, 0.54) 100%),
    linear-gradient(180deg, rgba(4, 9, 24, 0.16) 0%, rgba(4, 9, 24, 0.58) 100%),
    url("/images/academy-hero-starry-palace.webp") center 44% / cover no-repeat,
    linear-gradient(112deg, rgba(6, 21, 55, 0.9), rgba(8, 24, 64, 0.62) 52%, rgba(9, 13, 38, 0.82));
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(16px);
}

.academy-real-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 18% 50%, rgba(2, 7, 22, 0.46), transparent 42%),
    linear-gradient(90deg, rgba(2, 7, 22, 0.4), transparent 58%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 18%, rgba(2, 7, 22, 0.32) 100%);
  opacity: 1;
}

.academy-real-hero::after {
  content: "";
  position: absolute;
  inset: 12px;
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(86, 215, 255, 0.16), transparent 18%, transparent 78%, rgba(244, 200, 106, 0.12));
  opacity: 0.6;
  mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 100%);
}

.academy-real-hero-main,
.academy-real-actions {
  position: relative;
  z-index: 1;
}

.academy-real-hero h1 {
  margin: 8px 0 6px;
  color: #f8fbff;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  font-size: clamp(42px, 5vw, 68px);
  line-height: 1.04;
  letter-spacing: 0;
  text-shadow: 0 0 34px rgba(86, 215, 255, 0.26), 0 0 20px rgba(244, 200, 106, 0.16);
}

.academy-real-hero p {
  max-width: 780px;
  margin: 0 0 16px;
  color: rgba(244, 249, 255, 0.88);
  font-size: 16px;
  line-height: 1.7;
}

.academy-real-search {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  max-width: 760px;
  min-height: 48px;
  padding: 0 10px 0 18px;
  border: 1px solid rgba(172, 202, 255, 0.3);
  border-radius: 16px;
  background: rgba(3, 12, 34, 0.74);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 0 26px rgba(86, 215, 255, 0.08);
}

.academy-hero-paths {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 14px;
}

.academy-hero-paths span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid rgba(247, 212, 134, 0.2);
  border-radius: 999px;
  color: rgba(255, 232, 174, 0.92);
  background: rgba(247, 212, 134, 0.08);
  font-size: 12px;
  font-weight: 900;
}

.academy-hero-cta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.academy-hero-cta .academy-action {
  min-height: 40px;
  padding: 0 16px;
  border-radius: 12px;
}

.academy-real-search input {
  width: 100%;
  border: 0;
  outline: 0;
  color: #fff;
  background: transparent;
  font: inherit;
}

.academy-real-search button,
.academy-real-actions a,
.academy-real-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 12px;
  color: #081631;
  font-weight: 950;
  text-decoration: none;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-real-search button {
  padding: 0 16px;
}

.academy-real-actions {
  display: grid;
  gap: 12px;
}

.academy-real-actions a,
.academy-real-actions button {
  width: 100%;
  padding: 0 18px;
}

.academy-real-actions a:nth-child(2),
.academy-real-actions a:nth-child(3) {
  color: #eaffff;
  border-color: rgba(38, 221, 232, 0.34);
  background: linear-gradient(135deg, rgba(39, 157, 255, 0.86), rgba(18, 203, 207, 0.72));
}

.academy-real-me,
.academy-real-stats,
.academy-real-layout {
  margin-top: 18px;
}

.academy-entry-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.academy-entry-card {
  display: grid;
  gap: 4px;
  min-width: 0;
  min-height: 86px;
  padding: 12px;
  border: 1px solid rgba(130, 177, 255, 0.12);
  border-radius: 18px;
  color: inherit;
  text-decoration: none;
  background:
    radial-gradient(circle at 100% 0, rgba(247, 212, 134, 0.13), transparent 34%),
    linear-gradient(180deg, rgba(10, 32, 76, 0.58), rgba(3, 13, 35, 0.58));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 12px 34px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(14px);
}

.academy-entry-card span {
  color: var(--academy-gold);
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 16px;
  font-weight: 950;
}

.academy-entry-card strong {
  color: #fff;
  font-size: 15px;
}

.academy-entry-card small {
  color: var(--academy-muted);
  font-size: 12px;
  line-height: 1.45;
}

.academy-real-layout {
  display: grid;
  grid-template-columns: minmax(168px, 0.18fr) minmax(0, 1fr) minmax(220px, 0.24fr);
  gap: 8px;
  align-items: start;
}

.academy-real-left,
.academy-real-feed,
.academy-real-right {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.academy-real-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.academy-real-tabs button {
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid rgba(247, 212, 134, 0.24);
  border-radius: 999px;
  color: rgba(239, 246, 255, 0.9);
  background: rgba(8, 26, 63, 0.58);
  cursor: pointer;
}

.academy-real-tabs button.is-active {
  color: #081631;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
}

/* Only the primary top navigation receives the selected visual treatment. */
body.academy-body .academy-top-links .academy-pill {
  overflow: hidden;
  isolation: isolate;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

body.academy-body .academy-top-links .academy-pill:is(:hover, :focus-visible, .is-active, [aria-current="page"]) {
  color: #fff4ca;
  border-color: rgba(255, 220, 126, .62);
  background: rgba(23, 51, 105, .68);
  box-shadow: 0 0 0 1px rgba(89, 211, 255, .1), 0 6px 18px rgba(8, 21, 54, .22);
}

body.academy-body .academy-top-links .academy-pill:is(:hover, :focus-visible, .is-active, [aria-current="page"])::before {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  inset: auto;
  top: 0;
  bottom: 0;
  left: -46%;
  width: 32%;
  opacity: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 239, 181, .18), transparent);
  mix-blend-mode: normal;
  transform: skewX(-18deg);
  animation: academy-top-pill-sheen 4.8s ease-in-out infinite;
}

body.academy-body .academy-top-links .academy-pill:is(:hover, :focus-visible, .is-active, [aria-current="page"])::after {
  content: "";
  position: absolute;
  z-index: 1;
  pointer-events: none;
  left: 17%;
  right: auto;
  bottom: -7px;
  width: 3px;
  height: 3px;
  opacity: 0;
  background: #fff4cb;
  box-shadow:
    15px 8px 0 -1px rgba(121, 226, 255, .9),
    31px 2px 0 0 rgba(255, 224, 139, .88),
    48px 10px 0 -1px rgba(188, 237, 255, .78);
  transform: translate3d(0, 0, 0);
  will-change: transform, opacity;
  animation: academy-top-pill-particles 3.4s cubic-bezier(.26, .72, .32, 1) infinite;
}

@keyframes academy-top-pill-sheen {
  0%, 64% { transform: translateX(0) skewX(-18deg); opacity: 0; }
  70% { opacity: .66; }
  86% { transform: translateX(530%) skewX(-18deg); opacity: 0; }
  100% { transform: translateX(530%) skewX(-18deg); opacity: 0; }
}

@keyframes academy-top-pill-particles {
  0% { transform: translate3d(-2px, 0, 0); opacity: 0; }
  15% { opacity: .9; }
  58% { opacity: .72; }
  100% { transform: translate3d(7px, -27px, 0); opacity: 0; }
}

@keyframes academy-button-starlight {
  from { background-position: 0 0, 11px 8px, 4px 16px, 18px 4px; }
  to { background-position: 34px -54px, 48px -68px, 58px -82px, 66px -96px; }
}

@media (prefers-reduced-motion: reduce), (max-width: 760px) {
  body.academy-body .academy-top-links .academy-pill:is(:hover, :focus-visible, .is-active, [aria-current="page"])::before,
  body.academy-body .academy-top-links .academy-pill:is(:hover, :focus-visible, .is-active, [aria-current="page"])::after {
    animation: none;
  }

  body.academy-body .academy-top-links .academy-pill:is(:hover, :focus-visible, .is-active, [aria-current="page"])::before {
    opacity: 0;
  }

  body.academy-body .academy-top-links .academy-pill:is(:hover, :focus-visible, .is-active, [aria-current="page"])::after {
    opacity: .58;
  }
}

/* Keep the navigation feedback alive on phones without re-enabling heavy page-wide effects. */
@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  body.academy-body .academy-top-links .academy-pill:is(:hover, :focus-visible, .is-active, [aria-current="page"])::before {
    animation: academy-top-pill-sheen 4.8s ease-in-out infinite;
  }

  body.academy-body .academy-top-links .academy-pill:is(:hover, :focus-visible, .is-active, [aria-current="page"])::after {
    animation: academy-top-pill-particles 3.4s cubic-bezier(.26, .72, .32, 1) infinite;
  }
}

.academy-feed-panel[hidden] {
  display: none;
}

.academy-follow-update-list {
  display: grid;
  gap: 8px;
  padding: 10px;
}

.academy-follow-update {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  min-width: 0;
  padding: 9px;
  border: 1px solid rgba(130, 177, 255, 0.12);
  border-radius: 8px;
  color: inherit;
  background: rgba(8, 26, 63, 0.3);
  text-decoration: none;
}

.academy-follow-update:hover { border-color: rgba(247, 212, 134, 0.35); background: rgba(247, 212, 134, 0.07); }
.academy-follow-update-avatar { display: grid; place-items: center; width: 38px; height: 38px; overflow: hidden; border-radius: 50%; background: rgba(66, 123, 207, 0.24); }
.academy-follow-update-avatar img { width: 100%; height: 100%; object-fit: cover; }
.academy-follow-update strong, .academy-follow-update p, .academy-follow-update small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.academy-follow-update strong { color: #f4f8ff; font-size: 13px; }
.academy-follow-update p { margin: 3px 0; color: rgba(213, 226, 250, 0.68); font-size: 12px; }
.academy-follow-update small { color: rgba(247, 212, 134, 0.72); font-size: 11px; }
.academy-follow-empty { display: grid; gap: 5px; padding: 10px; color: var(--academy-muted); }
.academy-follow-empty strong { color: #eaf2ff; font-size: 13px; }
.academy-follow-empty span { font-size: 12px; }
.academy-follow-empty .academy-inline-button { justify-self: start; margin-top: 3px; }

.academy-real-channel-list,
.academy-growth-route,
.academy-community-feed {
  display: grid;
  gap: 8px;
  padding: 10px;
}

.academy-real-channel,
.academy-direction-card {
  width: 100%;
  border: 0;
  cursor: pointer;
}

.academy-real-channel {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 44px;
  padding: 0 10px;
  border-radius: 10px;
  color: rgba(239, 246, 255, 0.9);
  text-align: left;
  background: rgba(8, 26, 63, 0.44);
}

.academy-real-channel span:first-child {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  color: #081631;
  font-weight: 950;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.95), rgba(50, 214, 255, 0.78));
}

.academy-real-channel small {
  color: var(--academy-muted);
}

.academy-growth-step {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.44);
}

.academy-growth-step span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(247, 212, 134, 0.3);
  border-radius: 50%;
  color: var(--academy-gold);
  font-weight: 950;
}

.academy-growth-step strong,
.academy-growth-step small {
  display: block;
}

.academy-growth-step small {
  margin-top: 4px;
  color: var(--academy-muted);
  line-height: 1.5;
}

.academy-community-card {
  display: grid;
  gap: 10px;
  padding: 10px;
  border: 1px solid rgba(130, 177, 255, 0.12);
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(10, 32, 76, 0.66), rgba(3, 13, 35, 0.66));
}

.academy-article-card-clickable {
  position: relative;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.academy-article-card-clickable:hover {
  border-color: rgba(104, 196, 255, 0.38);
  box-shadow: 0 12px 28px rgba(0, 8, 30, 0.26);
}

.academy-article-card-clickable:active,
.academy-article-card-clickable:has(.academy-article-card-hitarea:active) {
  transform: translateY(1px) scale(0.997);
  border-color: rgba(247, 212, 134, 0.72);
  box-shadow: 0 0 0 1px rgba(247, 212, 134, 0.16), 0 5px 14px rgba(0, 5, 24, 0.34);
}

/* Native link layer: the entire visual card is a valid article target. */
.academy-article-card-hitarea {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  border-radius: inherit;
}

.academy-article-card-clickable a:not(.academy-article-card-hitarea),
.academy-article-card-clickable button,
.academy-article-card-clickable input,
.academy-article-card-clickable select,
.academy-article-card-clickable textarea,
.academy-article-card-clickable [role="button"] {
  position: relative;
  z-index: 2;
}

.academy-article-card-clickable:focus-visible {
  outline: 2px solid rgba(86, 215, 255, 0.92);
  outline-offset: 3px;
  border-color: rgba(244, 200, 106, 0.62);
}

.academy-community-head {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.academy-community-head strong,
.academy-community-head span {
  display: block;
}

.academy-community-head span {
  margin-top: 3px;
  color: var(--academy-muted);
  font-size: 12px;
}

.academy-community-body {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 10px;
}

.academy-community-cover {
  display: grid;
  place-items: center;
  overflow: hidden;
  min-height: 88px;
  border-radius: 10px;
  background:
    radial-gradient(circle at 32% 22%, rgba(247, 212, 134, 0.24), transparent 28%),
    linear-gradient(135deg, rgba(36, 111, 212, 0.72), rgba(12, 24, 68, 0.96));
  color: inherit;
  text-decoration: none;
  font-size: 34px;
}

.academy-community-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.academy-community-card h3 {
  margin: 3px 0;
  font-size: 17px;
  line-height: 1.35;
}

.academy-community-card h3 a,
.academy-activity-item h3 a,
.academy-real-question h3 a {
  color: inherit;
  text-decoration: none;
}

.academy-community-card p {
  margin: 0 0 8px;
  color: var(--academy-muted);
  line-height: 1.55;
}

.academy-community-metrics {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  color: rgba(218, 229, 255, 0.68);
  font-size: 13px;
}

.academy-real-question {
  grid-template-columns: 38px minmax(0, 1fr) auto;
}

.academy-real-empty {
  display: grid;
  justify-items: center;
  gap: 12px;
}

body[data-academy-page="home-real"] .academy-main {
  padding-top: 12px;
}

body[data-academy-page="home-real"] .academy-topbar {
  justify-content: space-between;
  min-height: 34px;
  margin-bottom: 6px;
}

body[data-academy-page="home-real"] .academy-real-hero {
  min-height: 280px;
  padding: 24px 26px;
  margin-bottom: 12px;
  border-radius: 18px;
}

body[data-academy-page="home-real"] .academy-real-hero-main {
  max-width: 660px;
}

body[data-academy-page="home-real"] .academy-real-hero-main > .academy-kicker {
  display: inline-block;
  color: rgba(181, 221, 255, 0.86);
  letter-spacing: 0.08em;
}

body[data-academy-page="home-real"] .academy-real-hero p {
  max-width: 560px;
  margin-bottom: 12px;
  font-size: 16px;
  line-height: 1.65;
}

body[data-academy-page="home-real"] .academy-real-hero h1 {
  margin: 6px 0;
  font-size: clamp(42px, 4.8vw, 62px);
}

body[data-academy-page="home-real"] .academy-hero-paths {
  margin-bottom: 8px;
}

body[data-academy-page="home-real"] .academy-hero-paths span {
  min-height: 26px;
}

body[data-academy-page="home-real"] .academy-real-search {
  min-height: 44px;
  max-width: 620px;
  border-radius: 14px;
}

body[data-academy-page="home-real"] .academy-hero-cta {
  margin-top: 12px;
}

body[data-academy-page="home-real"] .academy-hero-cta .academy-action {
  min-height: 38px;
  padding: 0 15px;
  font-size: 13px;
}

body[data-academy-page="home-real"] .academy-lobby-identity {
  position: absolute;
  top: 22px;
  right: 24px;
  z-index: 2;
  width: min(252px, 30vw);
  grid-template-columns: 46px minmax(0, 1fr) !important;
  align-self: start;
  gap: 9px 10px;
  padding: 10px;
  border-color: rgba(181, 221, 255, 0.2);
  background: linear-gradient(180deg, rgba(8, 25, 63, 0.66), rgba(3, 10, 28, 0.72));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045), 0 12px 34px rgba(0, 0, 0, 0.2);
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-avatar-xl {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  min-width: 46px;
  aspect-ratio: 1;
  align-self: start;
  overflow: hidden;
  font-size: 16px;
  object-fit: cover;
  object-position: center;
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.22), 0 8px 20px rgba(0, 0, 0, 0.28);
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-avatar-xl img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: inherit;
  object-fit: cover;
  object-position: center;
}

body[data-academy-page="home-real"] .academy-lobby-identity h2 {
  margin: 1px 0 4px;
  font-size: 14px;
  color: #f8fbff;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body[data-academy-page="home-real"] .academy-lobby-identity p {
  display: none;
  font-size: 12px;
  line-height: 1.35;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats,
body[data-academy-page="home-real"] .academy-lobby-identity .academy-admin-mini {
  grid-column: 1 / -1;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats article {
  min-height: 38px;
  padding: 5px 6px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}

.academy-admin-mini {
  justify-self: end;
  color: rgba(247, 212, 134, 0.72);
  font-size: 12px;
  text-decoration: none;
}

body[data-academy-page="home-real"] .academy-real-stats {
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 0;
  padding: 14px;
}

body[data-academy-page="home-real"] .academy-stat-card {
  min-height: 64px;
  padding: 12px;
  border-radius: 12px;
}

body[data-academy-page="home-real"] .academy-stat-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  font-size: 20px;
}

body[data-academy-page="home-real"] .academy-stat-value {
  font-size: 20px;
}

body[data-academy-page="home-real"] .academy-real-layout {
  grid-template-columns: minmax(160px, 204px) minmax(420px, 1fr) minmax(214px, 254px);
  gap: 8px;
}

body[data-academy-page="home-real"] .academy-panel {
  border-radius: 10px;
  border-color: rgba(130, 177, 255, 0.09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.028), 0 8px 24px rgba(0, 0, 0, 0.16);
}

body[data-academy-page="home-real"] .academy-panel-header {
  min-height: 38px;
  padding-inline: 12px;
  border-bottom-color: rgba(130, 177, 255, 0.1);
}

body[data-academy-page="home-real"] .academy-community-feed,
body[data-academy-page="home-real"] .academy-questions,
body[data-academy-page="home-real"] .academy-activity-list,
body[data-academy-page="home-real"] .academy-mini-list,
body[data-academy-page="home-real"] .academy-author-list,
body[data-academy-page="home-real"] .academy-ranking {
  padding: 10px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-cultivation-progress {
  margin-top: 6px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-cultivation-progress span {
  height: 7px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-cultivation-progress small {
  font-size: 0;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-cultivation-progress small::before {
  content: "修为";
  font-size: 11px;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats strong {
  font-size: 13px;
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats span {
  margin-top: 3px;
  font-size: 11px;
}

body[data-academy-page="home-real"] .academy-real-tabs {
  position: sticky;
  top: 14px;
  z-index: 2;
  padding: 8px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 999px;
  background: rgba(3, 13, 35, 0.62);
  backdrop-filter: blur(14px);
}

body[data-academy-page="home-real"] .academy-real-tabs button {
  min-width: 112px;
}

.academy-growth-entry {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.academy-checkin-card {
  display: grid;
  gap: 6px;
  padding: 10px;
  text-align: center;
}

.academy-checkin-orb {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  margin: 0 auto;
  border: 1px solid rgba(247, 212, 134, 0.32);
  border-radius: 50%;
  color: #081631;
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 17px;
  font-weight: 950;
  background:
    radial-gradient(circle at 35% 28%, rgba(255, 255, 255, 0.86), transparent 28%),
    linear-gradient(135deg, #ffe19a, #56d4ff);
  box-shadow: 0 0 28px rgba(247, 212, 134, 0.22);
}

.academy-checkin-card strong {
  color: #fff;
  font-size: 14px;
}

.academy-checkin-card p {
  margin: 0;
  color: var(--academy-muted);
  font-size: 12px;
  line-height: 1.38;
}

.academy-checkin-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.academy-checkin-meta span {
  min-width: 0;
  padding: 5px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 9px;
  color: rgba(239, 246, 255, 0.86);
  background: rgba(8, 26, 63, 0.44);
  font-size: 11px;
}

.academy-checkin-card .academy-inline-button {
  justify-self: center;
  min-height: 28px;
  padding: 0 12px;
}

.academy-checkin-card button[disabled] {
  opacity: 0.72;
  cursor: default;
}

/* Homepage seven-day cultivation uses the existing cultivation and makeup records. */
.academy-week-cultivation-panel {
  margin-top: 8px;
}

body[data-academy-page="center"] .academy-center-cultivation-panel {
  margin: 14px 0;
}

.academy-checkin-card {
  gap: 10px;
  padding: 12px;
  text-align: left;
  overflow: hidden;
}

.academy-week-head,
.academy-week-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.academy-week-head strong {
  display: block;
  color: #fff7dc;
  font-size: 14px;
}

.academy-week-head p {
  margin-top: 2px;
  font-size: 11px;
}

.academy-week-status {
  flex: 0 0 auto;
  padding: 4px 7px;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 999px;
  color: rgba(215, 229, 255, 0.78);
  background: rgba(23, 51, 104, 0.34);
  font-size: 10px;
}

.academy-week-status.is-ready {
  border-color: rgba(247, 212, 134, 0.34);
  color: #ffe5a8;
}

.academy-week-status.is-complete {
  border-color: rgba(91, 225, 204, 0.28);
  color: #aaf4df;
}

.academy-home-week-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
  min-width: 0;
}

.academy-home-week-day {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 92px;
  gap: 3px;
  align-content: center;
  justify-items: center;
  padding: 6px 2px;
  border: 1px solid rgba(130, 177, 255, 0.12);
  border-radius: 9px;
  color: rgba(214, 227, 255, 0.58);
  background: rgba(7, 22, 53, 0.46);
  text-align: center;
}

.academy-home-week-day span,
.academy-home-week-day small,
.academy-home-week-day em {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.academy-home-week-day span {
  font-size: 9px;
}

.academy-home-week-day i {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid rgba(130, 177, 255, 0.2);
  border-radius: 50%;
  color: rgba(214, 227, 255, 0.5);
  font-family: "STKaiti", "KaiTi", serif;
  font-size: 13px;
  font-style: normal;
}

.academy-home-week-day small {
  color: inherit;
  font-size: 9px;
}

.academy-home-week-day em {
  color: rgba(255, 226, 159, 0.78);
  font-size: 8px;
  font-style: normal;
}

.academy-home-week-day.is-signed {
  border-color: rgba(91, 225, 204, 0.28);
  color: #b9f5e4;
  background: linear-gradient(180deg, rgba(60, 196, 174, 0.16), rgba(9, 36, 73, 0.45));
}

.academy-home-week-day.is-signed i {
  border-color: rgba(131, 244, 216, 0.58);
  color: #071b2c;
  background: linear-gradient(135deg, #cdfbe4, #65d9bd);
  box-shadow: 0 0 14px rgba(83, 227, 192, 0.2);
}

.academy-home-week-day.is-today {
  border-color: rgba(247, 212, 134, 0.58);
  color: #ffe8b2;
  background: linear-gradient(180deg, rgba(247, 212, 134, 0.18), rgba(23, 61, 102, 0.48));
  box-shadow: inset 0 0 0 1px rgba(247, 212, 134, 0.08), 0 0 18px rgba(83, 157, 255, 0.12);
}

.academy-home-week-day.is-today i {
  border-color: rgba(255, 226, 153, 0.72);
  color: #0a1b37;
  background: linear-gradient(135deg, #fff1bb, #f0bd60);
}

.academy-home-week-day.is-makeup {
  border-color: rgba(116, 184, 255, 0.32);
  color: #bcdfff;
}

.academy-home-week-day.is-interactive {
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.academy-home-week-day.is-interactive:hover {
  transform: translateY(-2px);
  border-color: rgba(247, 212, 134, 0.62);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.22), 0 0 18px rgba(83, 157, 255, 0.15);
}

.academy-home-week-day.is-interactive:focus-visible {
  outline: 2px solid rgba(255, 226, 153, 0.82);
  outline-offset: 2px;
}

.academy-week-makeup {
  min-height: 19px;
  padding: 0 5px;
  border: 1px solid rgba(124, 191, 255, 0.42);
  border-radius: 999px;
  color: #d9efff;
  background: rgba(35, 92, 155, 0.44);
  font-size: 9px;
  cursor: pointer;
}

.academy-week-makeup:hover,
.academy-week-makeup:focus-visible {
  border-color: rgba(247, 212, 134, 0.66);
  color: #fff2c8;
  outline: none;
}

.academy-home-week-grid.is-guest .academy-home-week-day {
  min-height: 70px;
  opacity: 0.72;
}

.academy-week-footer > span {
  min-width: 0;
  color: rgba(206, 225, 255, 0.68);
  font-size: 10px;
}

.academy-week-footer .academy-inline-button {
  flex: 0 0 auto;
}

@media (max-width: 520px) {
  .academy-checkin-card {
    padding: 10px;
  }

  .academy-home-week-grid {
    gap: 3px;
  }

  .academy-home-week-day {
    min-height: 82px;
    padding: 5px 1px;
  }

  .academy-home-week-day i {
    width: 21px;
    height: 21px;
    font-size: 11px;
  }

  .academy-home-week-day span,
  .academy-home-week-day small {
    font-size: 8px;
  }

  .academy-home-week-day em {
    display: none;
  }

  .academy-week-makeup {
    min-height: 18px;
    padding: 0 3px;
    font-size: 8px;
  }
}

.academy-growth-entry p {
  margin: 0;
  color: var(--academy-muted);
  line-height: 1.6;
}

.academy-growth-entry-status {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.academy-growth-entry-status span {
  color: var(--academy-gold);
  font-size: 13px;
  font-weight: 900;
}

.academy-growth-entry-status strong {
  color: #fff;
  font-size: 18px;
}

body[data-academy-page="home-real"] .academy-real-empty {
  min-height: 138px;
  padding: 18px 14px;
  border: 1px dashed rgba(247, 212, 134, 0.18);
  border-radius: 12px;
  background:
    radial-gradient(circle at 50% 0, rgba(247, 212, 134, 0.12), transparent 34%),
    rgba(8, 26, 63, 0.34);
  text-align: center;
}

body[data-academy-page="home-real"] .academy-real-empty .academy-empty-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 13px;
  color: #081631;
  font-size: 22px;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.95), rgba(50, 214, 255, 0.78));
  box-shadow: 0 0 26px rgba(247, 212, 134, 0.2);
}

body[data-academy-page="home-real"] .academy-real-empty strong {
  color: #fff;
  font-size: 15px;
}

body[data-academy-page="home-real"] .academy-real-empty p {
  max-width: 420px;
  margin: 0;
  color: var(--academy-muted);
  font-size: 12px;
  line-height: 1.45;
}

body[data-academy-page="home-real"] .academy-content-starter-panel .academy-panel-header {
  min-height: 36px;
}

body[data-academy-page="home-real"] .academy-content-starter-panel .academy-community-feed {
  padding: 10px;
}

body[data-academy-page="home-real"] .academy-content-starter {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 112px;
  padding: 14px;
  border: 1px dashed rgba(247, 212, 134, 0.2);
  border-radius: 12px;
  background:
    radial-gradient(circle at 16% 8%, rgba(247, 212, 134, 0.12), transparent 32%),
    radial-gradient(circle at 72% 32%, rgba(86, 215, 255, 0.12), transparent 34%),
    rgba(8, 26, 63, 0.34);
}

body[data-academy-page="home-real"] .academy-content-starter-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 13px;
  color: #081631;
  font-size: 22px;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.95), rgba(50, 214, 255, 0.78));
  box-shadow: 0 0 24px rgba(86, 215, 255, 0.18);
}

body[data-academy-page="home-real"] .academy-content-starter strong {
  display: block;
  margin-bottom: 4px;
  color: #fff;
  font-size: 15px;
}

body[data-academy-page="home-real"] .academy-content-starter p {
  margin: 0 0 8px;
  color: var(--academy-muted);
  font-size: 12px;
  line-height: 1.45;
}

body[data-academy-page="home-real"] .academy-content-starter .academy-empty-suggestions {
  justify-content: flex-start;
}

body[data-academy-page="home-real"] .academy-content-starter-actions {
  display: grid;
  gap: 8px;
  justify-items: end;
}

body[data-academy-page="home-real"] .academy-growth-route {
  position: relative;
}

body[data-academy-page="home-real"] .academy-growth-step {
  min-height: 72px;
}

body[data-academy-page="home-real"] .academy-rank-item {
  color: inherit;
  text-decoration: none;
}

.academy-align-end {
  display: flex;
  justify-content: flex-end;
}

@keyframes academyPulseGold {
  from {
    box-shadow: 0 0 0 rgba(247, 212, 134, 0);
    transform: translateY(0);
  }
  to {
    box-shadow: 0 0 26px rgba(247, 212, 134, 0.38);
    transform: translateY(-1px);
  }
}

@keyframes academyStarDrift {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-42px, 34px, 0);
  }
}

@keyframes academyStarTwinkle {
  0%, 100% {
    opacity: 0.36;
  }
  45% {
    opacity: 0.78;
  }
  72% {
    opacity: 0.52;
  }
}

@keyframes academyUserStarSea {
  from {
    transform: translate3d(-50%, 0, 0);
  }
  to {
    transform: translate3d(-50%, -420px, 0);
  }
}

@keyframes academyNebulaBreathe {
  0% {
    opacity: 0.48;
    transform: scale(1) rotate(0deg);
  }
  100% {
    opacity: 0.82;
    transform: scale(1.08) rotate(4deg);
  }
}

@keyframes academyKnowledgeFlow {
  from {
    background-position: 0 0, 0 0, 0 0, 0 0;
  }
  to {
    background-position: 240px 0, 180px 0, 140px 0, 320px 0;
  }
}

@keyframes academyHeroOrbit {
  0% {
    transform: translate3d(0, 0, 0);
    opacity: 0.72;
  }
  100% {
    transform: translate3d(-14px, 10px, 0);
    opacity: 0.95;
  }
}

@keyframes academyParticleFloat {
  from {
    transform: translate3d(0, 0, 0) scale(1);
  }
  to {
    transform: translate3d(18px, -22px, 0) scale(1.25);
  }
}

.academy-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.academy-section-head h2 {
  margin: 4px 0 0;
  font-size: 20px;
}

.academy-admin-panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.academy-admin-panel,
.academy-admin-table-wrap {
  min-width: 0;
  border: 1px solid var(--academy-line);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(10, 32, 76, 0.72), rgba(3, 13, 35, 0.72));
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(16px);
}

.academy-admin-panel {
  padding: 18px;
}

.academy-admin-list {
  display: grid;
  gap: 12px;
}

.academy-admin-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.15);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-admin-row h3 {
  margin: 8px 0 6px;
  font-size: 16px;
}

.academy-admin-row p {
  margin: 0;
  color: var(--academy-muted);
  line-height: 1.6;
}

.academy-review-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 260px;
}

.academy-review-actions button {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 9px;
  color: #081631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-review-actions button.danger {
  border-color: rgba(255, 112, 112, 0.42);
  color: #fff;
  background: linear-gradient(135deg, rgba(177, 54, 54, 0.95), rgba(113, 25, 42, 0.95));
}

.academy-admin-table-wrap {
  overflow: auto;
}

.academy-admin-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

.academy-admin-table th,
.academy-admin-table td {
  padding: 14px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.12);
  color: rgba(239, 246, 255, 0.86);
  text-align: left;
  vertical-align: middle;
}

.academy-admin-table th {
  color: var(--academy-gold);
  font-size: 12px;
  text-transform: uppercase;
}

.academy-user-cell {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 180px;
}

.academy-user-cell img {
  width: auto;
  height: 38px;
  aspect-ratio: 1;
  border: 1px solid rgba(247, 212, 134, 0.35);
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  background: rgba(8, 26, 63, 0.8);
}

.academy-user-cell strong,
.academy-user-cell small {
  display: block;
}

.academy-admin-user-marker {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 20px;
  margin: 4px 0 2px;
  padding: 0 7px;
  border: 1px solid var(--academy-user-marker, #65d5ff);
  border-radius: 999px;
  color: var(--academy-user-marker, #65d5ff);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.academy-user-cell small {
  margin-top: 3px;
  color: var(--academy-muted);
}

.academy-rule-grid {
  display: grid;
  gap: 12px;
}

.academy-rule-row {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) repeat(4, minmax(86px, auto));
  gap: 10px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.15);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-rule-row label {
  display: grid;
  gap: 6px;
  color: var(--academy-muted);
  font-size: 12px;
}

.academy-rule-row input[type="number"] {
  width: 86px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(119, 170, 255, 0.24);
  border-radius: 9px;
  color: #fff;
  background: rgba(10, 32, 76, 0.82);
}

.academy-permission-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.academy-permission-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.15);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.42);
}

.academy-permission-card strong,
.academy-permission-card small {
  display: block;
}

.academy-permission-card small {
  margin-top: 4px;
  color: var(--academy-muted);
}

.academy-permission-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.academy-permission-options label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(130, 177, 255, 0.12);
  border-radius: 10px;
  color: rgba(239, 246, 255, 0.86);
  background: rgba(4, 16, 42, 0.42);
}

.academy-permission-options input,
.academy-audit-filters input {
  accent-color: var(--academy-gold);
}

.academy-audit-filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr)) auto auto;
  gap: 12px;
  align-items: end;
}

.academy-audit-filters label {
  display: grid;
  gap: 7px;
  color: var(--academy-muted);
  font-size: 12px;
  font-weight: 800;
}

.academy-audit-filters input {
  width: 100%;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid rgba(119, 170, 255, 0.24);
  border-radius: 10px;
  color: #fff;
  background: rgba(10, 32, 76, 0.82);
}

.academy-notification-list {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.academy-notification {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.44);
}

.academy-notification.is-unread {
  border-color: rgba(247, 212, 134, 0.34);
  background: linear-gradient(180deg, rgba(247, 212, 134, 0.1), rgba(8, 26, 63, 0.46));
}

.academy-notification-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  color: #081631;
  font-weight: 950;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.95), rgba(50, 214, 255, 0.78));
}

.academy-notification h3 {
  margin: 8px 0 6px;
}

.academy-notification p {
  margin: 0;
  color: var(--academy-muted);
}

.academy-notification-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.academy-notification-actions button {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 10px;
  color: #081631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

.academy-notification-actions button.danger {
  color: #fff;
  border-color: rgba(255, 116, 116, 0.38);
  background: linear-gradient(135deg, rgba(213, 65, 72, 0.92), rgba(103, 25, 49, 0.94));
}

.academy-badge-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 18px;
}

.academy-badge {
  display: grid;
  place-items: center;
  min-height: 72px;
  color: var(--academy-gold);
  font-weight: 950;
}

.academy-toast {
  position: fixed;
  left: 50%;
  bottom: 28px;
  z-index: 20;
  transform: translateX(-50%);
  padding: 12px 18px;
  border: 1px solid rgba(247, 212, 134, 0.35);
  border-radius: 999px;
  color: #fff;
  background: rgba(3, 13, 35, 0.88);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
}

@media (max-width: 1260px) {
  .academy-layout,
  .academy-lower,
  .academy-real-hero,
  .academy-real-layout,
  .academy-create-layout,
  .academy-my-content-layout,
  .academy-center-grid,
  .academy-center-grid-small,
  .academy-lobby-grid,
  .academy-create-management,
  .academy-detail-layout,
  .academy-profile-layout,
  .academy-dashboard-layout,
  .academy-governance-grid,
  .academy-admin-modules,
  .academy-admin-panel-grid,
  .academy-permission-grid,
  .academy-audit-filters,
  .academy-me-card,
  .academy-me-stats {
    grid-template-columns: 1fr;
  }

  .academy-me-actions {
    justify-content: flex-start;
  }

  .academy-sidebar {
    position: fixed;
    z-index: 4;
    width: 78px;
    padding: 20px 10px;
  }

  .academy-brand div:last-child,
  .academy-nav-title,
  .academy-nav-item span:last-child {
    display: none;
  }

  .academy-shell {
    grid-template-columns: 78px minmax(0, 1fr);
  }

  .academy-main {
    grid-column: 2;
  }

  body.academy-body::after {
    left: 78px;
  }

  .academy-create-switch {
    position: static;
  }

  .academy-stats,
  .academy-cta-row,
  .academy-community-body,
  .academy-profile-stats,
  .academy-dashboard-grid,
  .academy-growth-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .academy-entrance-content {
    width: min(88vw, 420px);
    transform: translateY(-2vh);
  }

  .academy-entrance-seal {
    width: 74px;
    height: 74px;
    margin-bottom: 16px;
  }

  .academy-entrance-seal::before { width: 44px; height: 44px; }
  .academy-entrance-seal span { width: 60px; height: 60px; }
  .academy-entrance-brand { font-size: 12px; }
  .academy-entrance h1 { font-size: 44px; }
  .academy-entrance-welcome strong { font-size: 18px; }
  .academy-entrance-welcome p { font-size: 13px; line-height: 1.65; }
  .academy-entrance-meteors i:nth-child(3) { display: none; }

  .academy-main {
    padding: 16px 14px 28px;
  }

  .academy-topbar {
    align-items: stretch;
    flex-direction: column;
  }

  .academy-hero {
    padding: 38px 22px;
  }

  .academy-hero-actions,
  .academy-real-search,
  .academy-community-head,
  .academy-community-body,
  .academy-hero-actions-compact,
  .academy-stats,
  .academy-cta-row,
  .academy-article,
  .academy-question,
  .academy-author-workbench,
  .academy-review-row,
  .academy-editor-meta,
  .academy-editor-layout,
  .academy-create-form,
  .academy-profile-hero,
  .academy-profile-stats,
  .academy-badge-grid,
  .academy-dashboard-grid,
  .academy-growth-grid,
  .academy-governance-row,
  .academy-admin-row,
  .academy-rule-row,
  .academy-permission-options,
  .academy-search-result,
  .academy-activity-item {
    grid-template-columns: 1fr;
  }

  .academy-search-summary { align-items: flex-start; flex-direction: column; gap: 3px; }
  .academy-search-result em { display: none; }

  .academy-section-head {
    align-items: stretch;
    flex-direction: column;
  }

  .academy-review-actions {
    justify-content: flex-start;
    max-width: none;
  }

  .academy-heat-score {
    place-items: start;
    min-height: auto;
    padding: 12px;
  }

  .academy-page-hero,
  .academy-profile-hero {
    padding: 30px 20px;
  }

  .academy-markdown {
    padding: 18px;
  }

  .academy-profile-hero {
    text-align: center;
  }

  .academy-profile-hero .academy-action {
    width: 100%;
  }

  .academy-reward {
    width: 100%;
  }
}

.academy-task-board {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
}

.academy-task-card {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(222, 185, 112, 0.22);
  border-radius: 8px;
  background: rgba(10, 22, 48, 0.62);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.academy-task-card strong {
  color: #ffe3a3;
}

.academy-task-card p,
.academy-task-card small {
  margin: 6px 0 0;
  color: rgba(232, 239, 255, 0.72);
  line-height: 1.6;
}

.academy-task-card.is-done {
  border-color: rgba(116, 229, 185, 0.28);
  background: rgba(18, 55, 63, 0.56);
}

.academy-cultivation-task-link {
  position: relative;
  width: 100%;
  color: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  font: inherit;
  appearance: none;
}

.academy-cultivation-task-link:hover,
.academy-cultivation-task-link:focus-visible {
  border-color: rgba(247, 212, 134, 0.5);
  background: rgba(16, 42, 81, 0.7);
  box-shadow: 0 10px 24px rgba(4, 11, 31, 0.25);
  outline: none;
}

.academy-task-card-action {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 11px;
  color: #ffe3a3;
  font-size: 13px;
  font-weight: 700;
}

.academy-cultivation-task-link:hover .academy-task-card-action b,
.academy-cultivation-task-link:focus-visible .academy-task-card-action b {
  transform: translateX(3px);
}

.academy-task-card-action b {
  display: inline-block;
  transition: transform 160ms ease;
}

.academy-task-card .academy-review-actions {
  justify-content: flex-start;
}

.academy-task-card .academy-review-actions a,
.academy-task-card .academy-review-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(222, 185, 112, 0.38);
  border-radius: 8px;
  background: rgba(222, 185, 112, 0.14);
  color: #ffe3a3;
  text-decoration: none;
  cursor: pointer;
}

.academy-operation-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(220px, 0.8fr));
  gap: 16px;
  margin: 18px 0;
}

.academy-operation-grid-wide {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.academy-operation-feature {
  min-width: 0;
}

.academy-operation-recommend {
  display: grid;
  gap: 10px;
  min-height: 186px;
  padding: 18px;
  border: 1px solid rgba(222, 185, 112, 0.24);
  border-radius: 8px;
  background:
    radial-gradient(circle at 12% 10%, rgba(222, 185, 112, 0.2), transparent 28%),
    rgba(9, 21, 48, 0.58);
  color: #edf5ff;
  text-decoration: none;
}

.academy-operation-recommend h3 {
  margin: 0;
  color: #ffe3a3;
  font-size: 22px;
  line-height: 1.35;
}

.academy-operation-recommend p {
  margin: 0;
  color: rgba(232, 239, 255, 0.78);
  line-height: 1.7;
}

.academy-operation-recommend small {
  color: rgba(232, 239, 255, 0.62);
}

.academy-recommend-section {
  display: grid;
  gap: 10px;
}

.academy-recommend-section + .academy-recommend-section {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(222, 185, 112, 0.14);
}

.academy-recommend-section h3 {
  margin: 0;
  color: #ffe3a3;
  font-size: 16px;
}

.academy-guide-status,
.academy-guide-route {
  display: grid;
  gap: 12px;
}

.academy-guide-item.is-done {
  border-color: rgba(116, 229, 185, 0.32);
  background: rgba(22, 73, 70, 0.34);
}

.academy-guide-me {
  grid-template-columns: auto minmax(0, 1fr);
}

.academy-announcement-bar {
  margin: 16px 0;
}

.academy-announcement-track {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid rgba(222, 185, 112, 0.24);
  border-radius: 8px;
  background: rgba(10, 22, 48, 0.68);
  color: rgba(232, 239, 255, 0.82);
}

.academy-announcement-track strong {
  color: #ffe3a3;
}

.academy-announcement-track span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.academy-announcement-track.is-empty {
  color: rgba(232, 239, 255, 0.62);
}

.academy-mini-block {
  align-items: start;
  text-decoration: none;
}

.academy-official-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.academy-official-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: rgba(232, 239, 255, 0.72);
  font-size: 13px;
}

.academy-official-form label:has(textarea),
.academy-official-form label:last-child {
  grid-column: 1 / -1;
}

.academy-official-form input,
.academy-official-form textarea,
.academy-official-form select {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(222, 185, 112, 0.22);
  border-radius: 8px;
  background: rgba(5, 14, 32, 0.72);
  color: #edf5ff;
  padding: 10px 12px;
  font: inherit;
}

.academy-drag-list {
  display: grid;
  gap: 10px;
}

.academy-drag-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 10px;
  align-items: center;
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(222, 185, 112, 0.2);
  border-radius: 8px;
  background: rgba(10, 22, 48, 0.58);
  cursor: grab;
}

.academy-drag-item strong,
.academy-drag-item small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.academy-drag-item small {
  grid-column: 2;
  color: rgba(232, 239, 255, 0.6);
}

.academy-drag-item.is-dragging {
  opacity: 0.56;
  border-color: rgba(255, 227, 163, 0.48);
}

.academy-event-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
}

.academy-event-card {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 14px;
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(222, 185, 112, 0.22);
  border-radius: 8px;
  background: rgba(10, 22, 48, 0.62);
  color: #edf5ff;
  text-decoration: none;
}

.academy-event-cover {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 8px;
  background: rgba(222, 185, 112, 0.14);
  color: #ffe3a3;
  font-size: 30px;
  overflow: hidden;
}

.academy-event-card h3,
.academy-event-card p,
.academy-event-card small {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.academy-event-card h3 {
  margin-top: 8px;
  color: #ffe3a3;
  font-size: 18px;
}

.academy-event-card p,
.academy-event-card small {
  color: rgba(232, 239, 255, 0.68);
  line-height: 1.6;
}

@media (max-width: 1260px) {
  body[data-academy-page="home-real"] .academy-real-hero,
  body[data-academy-page="home-real"] .academy-real-layout,
  body[data-academy-page="home-real"] .academy-community-body,
  body[data-academy-page="home-real"] .academy-real-search,
  body[data-academy-page="home-real"] .academy-community-head,
  body[data-academy-page="home-real"] .academy-real-question,
  .academy-operation-grid,
  .academy-operation-grid-wide,
  .academy-official-form,
  .academy-event-card {
    grid-template-columns: 1fr;
  }

  body[data-academy-page="home-real"] .academy-real-actions {
    width: 100%;
    justify-self: stretch;
  }

  body[data-academy-page="home-real"] .academy-real-tabs {
    position: static;
    border-radius: 16px;
  }

  .academy-entry-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .academy-cosmic-background::before,
  .academy-cosmic-nebula::before,
  .academy-lightfall-canvas,
  .academy-star-particles::before,
  .academy-star-particles::after,
  .academy-star-particles i,
  .academy-knowledge-stream {
    animation: none;
  }

  .academy-star-particles::after,
  .academy-cosmic-nebula::before {
    display: none;
  }

  .academy-star-particles i:nth-of-type(n+19) {
    display: none;
  }

  .academy-floating-silhouette {
    opacity: 0.22;
  }

  body[data-academy-page="home-real"] .academy-real-hero {
    min-height: 304px;
    padding: 88px 14px 12px;
  }

  body[data-academy-page="home-real"] .academy-real-hero h1 {
    font-size: 32px;
  }

  body[data-academy-page="home-real"] .academy-real-hero p {
    margin-bottom: 8px;
    font-size: 13px;
    line-height: 1.45;
  }

  body[data-academy-page="home-real"] .academy-real-search {
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 36px;
    padding-left: 12px;
  }

  body[data-academy-page="home-real"] .academy-real-search button {
    min-height: 32px;
    padding: 0 10px;
  }

  .academy-hero-paths,
  .academy-hero-cta {
    gap: 8px;
  }

  .academy-hero-cta .academy-action {
    min-height: 34px;
    padding: 0 12px;
    font-size: 13px;
  }

  body[data-academy-page="home-real"] .academy-lobby-identity {
    position: absolute;
    top: 12px;
    right: 14px;
    left: 14px;
    width: auto;
    margin-top: 0;
    grid-template-columns: 44px minmax(0, 1fr) !important;
    padding: 9px;
  }

  body[data-academy-page="home-real"] .academy-lobby-identity .academy-avatar-xl {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    min-width: 44px;
    aspect-ratio: 1;
  }

  body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
  }

  body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats article {
    min-height: 34px;
    padding: 5px;
  }

  body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats strong {
    font-size: 12px;
  }

  body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats span {
    font-size: 10px;
  }

  body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body[data-academy-page="home-real"] .academy-lobby-identity .academy-action {
    min-height: 34px;
    white-space: nowrap;
    overflow: hidden;
  }

  body[data-academy-page="home-real"] .academy-real-tabs {
    display: grid;
    grid-template-columns: 1fr;
    border-radius: 16px;
  }

  body[data-academy-page="home-real"] .academy-community-head,
  body[data-academy-page="home-real"] .academy-real-question {
    align-items: stretch;
  }

  body[data-academy-page="home-real"] .academy-community-cover {
    min-height: 150px;
  }

  body[data-academy-page="home-real"] .academy-real-empty {
    min-height: 180px;
  }

  body[data-academy-page="home-real"] .academy-content-starter {
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: start;
    min-height: 0;
    padding: 12px;
  }

  body[data-academy-page="home-real"] .academy-content-starter-mark {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    font-size: 18px;
  }

  body[data-academy-page="home-real"] .academy-content-starter-actions {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-items: stretch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .academy-entrance *,
  .academy-entrance::before,
  .academy-entrance::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
  }

  .academy-cosmic-background::before,
  .academy-cosmic-background::after,
  .academy-cosmic-nebula,
  .academy-lightfall-canvas,
  .academy-star-particles::before,
  .academy-star-particles::after,
  .academy-star-particles i,
  .academy-knowledge-stream,
  .academy-real-hero::before,
  .academy-real-hero::after {
    animation: none !important;
  }
}

/* Academy-only compact pass: reduce oversized frames across academy pages. */
body.academy-body .academy-stats {
  gap: 10px;
  margin: 12px 0 16px;
}

body.academy-body .academy-stat-card,
body.academy-body .academy-panel,
body.academy-body .academy-article,
body.academy-body .academy-question,
body.academy-body .academy-cta,
body.academy-body .academy-admin-panel,
body.academy-body .academy-admin-table-wrap,
body.academy-body .academy-task-card,
body.academy-body .academy-event-card {
  border-color: rgba(130, 177, 255, 0.1);
  border-radius: 10px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.028), 0 8px 24px rgba(0, 0, 0, 0.16);
}

body.academy-body .academy-stat-card {
  min-height: 66px;
  padding: 12px;
}

body.academy-body .academy-stat-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  font-size: 20px;
}

body.academy-body .academy-stat-value {
  font-size: 20px;
}

body.academy-body .academy-panel-header {
  min-height: 38px;
  padding-inline: 12px;
}

body.academy-body .academy-page-hero,
body.academy-body .academy-profile-hero {
  margin-bottom: 10px;
  padding: 20px 22px;
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.2);
}

/* P31.9: personal academy space, intentionally limited to academy activity. */
.academy-residence-topbar {
  min-height: 48px;
}

body[data-academy-page="profile"] [data-profile-private][hidden] {
  display: none !important;
}

.academy-profile-follow {
  min-width: 88px;
  border: 1px solid rgba(244, 200, 106, 0.42);
  color: #fff3cc;
  cursor: pointer;
}

.academy-profile-follow.is-following {
  border-color: rgba(117, 227, 193, 0.42);
  color: #a7f0d8;
}

.academy-residence-return {
  color: rgba(221, 234, 255, 0.82);
  font-size: 14px;
  text-decoration: none;
}

.academy-residence-return:hover {
  color: var(--academy-gold-strong);
}

.academy-residence-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(210px, auto);
  gap: 20px;
  align-items: center;
  margin-bottom: 12px;
  padding: 22px;
  overflow: hidden;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 10px;
  background:
    radial-gradient(circle at 78% 30%, rgba(244, 200, 106, 0.13), transparent 22%),
    linear-gradient(115deg, rgba(4, 16, 46, 0.88), rgba(9, 30, 71, 0.6));
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.22);
}

.academy-residence-avatar {
  box-shadow: 0 0 0 4px rgba(86, 215, 255, 0.1), 0 0 32px rgba(86, 215, 255, 0.17);
}

.academy-residence-identity {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 2px 0 8px;
  color: rgba(226, 235, 255, 0.82);
  font-size: 13px;
}

.academy-residence-identity span {
  color: var(--academy-gold-strong);
}

.academy-residence-hero-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(92px, 1fr));
  gap: 8px;
}

.academy-residence-hero-stats div {
  min-width: 96px;
  padding: 12px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 8px;
  background: rgba(3, 12, 35, 0.42);
}

.academy-residence-hero-stats strong,
.academy-residence-hero-stats span {
  display: block;
}

.academy-residence-hero-stats strong {
  color: #fff5d6;
  font-size: 16px;
}

.academy-residence-hero-stats span {
  margin-top: 4px;
  color: var(--academy-muted);
  font-size: 12px;
}

.academy-residence-nav {
  position: sticky;
  top: 8px;
  z-index: 5;
  display: flex;
  gap: 5px;
  margin: 0 0 12px;
  padding: 7px;
  overflow-x: auto;
  border: 1px solid rgba(130, 177, 255, 0.13);
  border-radius: 9px;
  background: rgba(5, 15, 39, 0.8);
  backdrop-filter: blur(14px);
  scrollbar-width: none;
}

.academy-residence-nav::-webkit-scrollbar { display: none; }

.academy-residence-nav a {
  flex: 0 0 auto;
  padding: 8px 11px;
  border-radius: 6px;
  color: rgba(220, 232, 255, 0.7);
  font-size: 13px;
  text-decoration: none;
}

.academy-residence-nav a:hover,
.academy-residence-nav a.is-active {
  color: #fff4d3;
  background: rgba(244, 200, 106, 0.13);
}

.academy-residence-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.9fr);
  gap: 12px;
}

.academy-residence-section {
  margin-top: 12px;
}

.academy-residence-cultivation {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 2px 0 12px;
}

.academy-residence-cultivation article {
  min-width: 0;
  padding: 10px;
  border-left: 2px solid rgba(86, 215, 255, 0.42);
  background: rgba(5, 16, 42, 0.35);
}

.academy-residence-cultivation strong,
.academy-residence-cultivation span {
  display: block;
}

.academy-residence-cultivation strong {
  overflow: hidden;
  color: #fff;
  font-size: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.academy-residence-cultivation span {
  margin-top: 4px;
  color: var(--academy-muted);
  font-size: 12px;
}

.academy-residence-today {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--academy-muted);
  font-size: 13px;
}

.academy-residence-today span {
  color: #ffe09a;
}

.academy-residence-today span.is-complete {
  color: #75e3c1;
}

.academy-residence-shortcuts {
  display: grid;
  align-content: start;
  gap: 3px;
}

.academy-residence-shortcuts .academy-panel-header { margin-bottom: 4px; }

.academy-residence-shortcuts > a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 2px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.1);
  color: inherit;
  text-decoration: none;
}

.academy-residence-shortcuts > a:last-child { border-bottom: 0; }
.academy-residence-shortcuts > a:hover strong { color: var(--academy-gold-strong); }
.academy-residence-shortcuts > a > span { width: 26px; color: var(--academy-gold); font-size: 20px; text-align: center; }
.academy-residence-shortcuts strong,
.academy-residence-shortcuts small { display: block; }
.academy-residence-shortcuts small { margin-top: 3px; color: var(--academy-muted); font-size: 12px; }

.academy-residence-content-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 10px;
}

.academy-residence-content-stats article {
  padding: 11px;
  border-radius: 8px;
}

.academy-residence-content-stats strong { font-size: 20px; }
.academy-residence-content-stats span { margin-top: 3px; font-size: 12px; }

.academy-residence-content-list {
  display: grid;
  gap: 7px;
}

.academy-residence-work {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(130, 177, 255, 0.1);
  color: inherit;
  text-decoration: none;
}

.academy-residence-work:last-child { border-bottom: 0; }
.academy-residence-work:hover strong { color: var(--academy-gold-strong); }
.academy-residence-work div { display: flex; align-items: center; min-width: 0; gap: 9px; }
.academy-residence-work strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.academy-residence-work small { color: var(--academy-muted); font-size: 12px; white-space: nowrap; }
.academy-residence-work .academy-tag { padding: 3px 6px; font-size: 11px; }
.academy-residence-badges { margin-top: 12px; padding: 0; }

/* P33: the cultivator growth layer keeps every metric inside academy data. */
body[data-academy-page="home-real"] .academy-lobby-identity {
  overflow: hidden;
  border-color: rgba(244, 200, 106, 0.28);
}

body[data-academy-page="home-real"] .academy-lobby-identity::after {
  content: "";
  position: absolute;
  inset: -40%;
  z-index: -1;
  background: radial-gradient(circle, rgba(86, 215, 255, 0.18), transparent 47%);
  animation: academyMingpaiGlow 6s ease-in-out infinite alternate;
}

body[data-academy-page="home-real"] .academy-lobby-identity[data-realm="筑基"]::after,
body[data-academy-page="home-real"] .academy-lobby-identity[data-realm="金丹"]::after { background: radial-gradient(circle, rgba(244, 200, 106, 0.22), transparent 48%); }
body[data-academy-page="home-real"] .academy-lobby-identity[data-realm="元婴"]::after,
body[data-academy-page="home-real"] .academy-lobby-identity[data-realm="化神"]::after { background: radial-gradient(circle, rgba(188, 136, 255, 0.24), transparent 50%); }

body[data-academy-page="home-real"] .academy-lobby-identity .academy-me-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.academy-mingpai-realm {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 7px 8px;
  border: 1px solid rgba(244, 200, 106, 0.18);
  border-radius: 7px;
  color: #fff0bf;
  text-decoration: none;
  background: rgba(244, 200, 106, 0.06);
}

.academy-mingpai-realm strong { font-size: 14px; }
.academy-mingpai-realm span { color: rgba(221, 233, 255, 0.62); font-size: 11px; }
.academy-mingpai-exp { grid-column: 1 / -1; }
.academy-mingpai-exp > div { display: flex; justify-content: space-between; color: rgba(229, 239, 255, 0.82); font-size: 11px; }
.academy-mingpai-exp em { color: var(--academy-gold-strong); font-style: normal; }
.academy-mingpai-exp i { display: block; height: 6px; margin-top: 5px; overflow: hidden; border-radius: 999px; background: rgba(0, 0, 0, 0.38); }
.academy-mingpai-exp b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--academy-cyan), var(--academy-gold)); box-shadow: 0 0 12px rgba(86, 215, 255, 0.55); }
.academy-mingpai-meta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 8px; color: rgba(209, 225, 253, 0.72); font-size: 11px; }
.academy-mingpai-meta strong { color: #f9e09e; font-size: inherit; }

.academy-daily-practice-list { display: grid; gap: 6px; }
.academy-daily-practice-task { position: relative; display: grid; gap: 3px; padding: 10px; border: 1px solid rgba(130, 177, 255, 0.12); border-radius: 7px; color: inherit; text-decoration: none; background: rgba(4, 16, 43, 0.32); }
.academy-daily-practice-task:hover { border-color: rgba(244, 200, 106, 0.32); }
.academy-daily-practice-task > div { display: flex; justify-content: space-between; gap: 8px; }
.academy-daily-practice-task-title > span { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.academy-daily-practice-task strong { font-size: 13px; }
.academy-daily-practice-task span, .academy-daily-practice-task small { color: var(--academy-muted); font-size: 11px; }
.academy-daily-practice-task b { color:var(--academy-muted); font-size:11px; font-weight:500; }
.academy-daily-practice-task em { color: #81e3bc; font-size: 11px; font-style: normal; }
.academy-daily-practice-task:not(.is-done) em { color: var(--academy-gold-strong); }
.academy-daily-practice-task.is-unavailable { opacity: 0.65; }

.academy-steward { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 10px; align-items: start; }
.academy-steward-mark { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(244, 200, 106, 0.4); border-radius: 50%; color: var(--academy-gold-strong); box-shadow: 0 0 18px rgba(244, 200, 106, 0.16); }
.academy-steward strong { display: block; color: #fff1c6; font-size: 14px; }
.academy-steward p { margin: 5px 0 9px; color: var(--academy-muted); font-size: 12px; line-height: 1.55; }

.academy-task-category-tabs { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 0 12px; }
.academy-task-category-tabs button { padding: 7px 10px; border: 1px solid rgba(130, 177, 255, 0.17); border-radius: 6px; color: rgba(222, 233, 255, 0.72); background: rgba(4, 16, 41, 0.38); cursor: pointer; }
.academy-task-category-tabs button.is-active, .academy-task-category-tabs button:hover { border-color: rgba(244, 200, 106, 0.4); color: #fff0bd; background: rgba(244, 200, 106, 0.1); }
.academy-task-category-panel[hidden] { display: none; }

.academy-breakthrough-hero { position: relative; min-height: 184px; overflow: hidden; padding: 28px; border: 1px solid rgba(244, 200, 106, 0.22); border-radius: 10px; background: radial-gradient(circle at 78% 42%, rgba(244, 200, 106, 0.14), transparent 18%), linear-gradient(115deg, rgba(4, 15, 42, 0.88), rgba(18, 18, 72, 0.65)); }
.academy-breakthrough-hero h1 { margin: 6px 0; color: #fff0bd; font-family: "STKaiti", "KaiTi", serif; font-size: 38px; }
.academy-breakthrough-hero p { max-width: 560px; margin: 0; color: var(--academy-muted); }
.academy-breakthrough-orbit { position: absolute; top: 30px; right: 9%; display: grid; place-items: center; width: 100px; height: 100px; border: 1px solid rgba(86, 215, 255, 0.3); border-radius: 50%; color: var(--academy-gold-strong); }
.academy-breakthrough-orbit i { position: absolute; inset: 10px; border: 1px dashed rgba(244, 200, 106, 0.42); border-radius: inherit; animation: academyCelestialSpin 12s linear infinite; }
.academy-breakthrough-orbit span { font-size: 32px; text-shadow: 0 0 20px rgba(244, 200, 106, 0.7); }
.academy-breakthrough-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.academy-breakthrough-current > div:not(.academy-panel-header), .academy-breakthrough-next > div:not(.academy-panel-header) { padding: 8px 2px; }
.academy-breakthrough-current strong, .academy-breakthrough-next strong { display: block; color: #fff0bc; font-size: 26px; }
.academy-breakthrough-current p, .academy-breakthrough-next p { margin: 7px 0; color: var(--academy-muted); }
.academy-breakthrough-next small { color: rgba(160, 226, 255, 0.85); }
.academy-breakthrough-conditions { margin-top: 12px; }
.academy-breakthrough-condition-list { display: grid; gap: 8px; }
.academy-breakthrough-condition-list article { display: flex; gap: 10px; align-items: center; padding: 10px; border-left: 2px solid rgba(130, 177, 255, 0.35); background: rgba(4, 16, 40, 0.3); }
.academy-breakthrough-condition-list article.is-done { border-color: #76dfb9; }
.academy-breakthrough-condition-list article > span { color: var(--academy-gold-strong); }
.academy-breakthrough-condition-list article.is-done > span { color: #76dfb9; }
.academy-breakthrough-condition-list strong, .academy-breakthrough-condition-list small { display: block; }
.academy-breakthrough-condition-list small { margin-top: 3px; color: var(--academy-muted); }
.academy-breakthrough-actions { margin-top: 12px; }

@keyframes academyMingpaiGlow { from { opacity: 0.42; transform: translate3d(-4%, -2%, 0) scale(0.95); } to { opacity: 0.95; transform: translate3d(4%, 2%, 0) scale(1.06); } }

@media (max-width: 760px) {
  body[data-academy-page="home-real"] .academy-lobby-identity { position: static; width: 100%; margin-top: 14px; }
  .academy-breakthrough-hero { min-height: 168px; padding: 22px 16px; }
  .academy-breakthrough-hero h1 { font-size: 31px; }
  .academy-breakthrough-orbit { top: 22px; right: 16px; width: 70px; height: 70px; }
  .academy-breakthrough-grid { grid-template-columns: 1fr; }
}

/* P32: world-facing academy modules. Data is rendered by existing academy APIs. */
.academy-celestial-panel {
  overflow: hidden;
}

.academy-celestial {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.academy-celestial-orbit {
  position: relative;
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(86, 215, 255, 0.32);
  border-radius: 50%;
  color: #ffe5a5;
  box-shadow: inset 0 0 20px rgba(86, 215, 255, 0.12), 0 0 20px rgba(86, 215, 255, 0.1);
}

.academy-celestial-orbit::before,
.academy-celestial-orbit i {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.academy-celestial-orbit::before {
  inset: 6px;
  border: 1px dashed rgba(244, 200, 106, 0.45);
  animation: academyCelestialSpin 14s linear infinite;
}

.academy-celestial-orbit i {
  width: 5px;
  height: 5px;
  background: var(--academy-cyan);
  box-shadow: 0 0 10px var(--academy-cyan);
  transform: translate(19px, -17px);
}

.academy-celestial-orbit span { font-size: 23px; }
.academy-celestial-copy strong { display: block; color: #fff1c6; font-size: 16px; }
.academy-celestial-copy p { margin: 5px 0 8px; color: var(--academy-muted); font-size: 13px; line-height: 1.55; }
.academy-celestial-copy small { color: rgba(196, 217, 249, 0.66); font-size: 12px; }
.academy-celestial-tips { display: grid; gap: 4px; }
.academy-celestial-tips span { color: rgba(166, 229, 255, 0.88); font-size: 12px; }

.academy-tianbang-tabs {
  display: flex;
  gap: 6px;
  padding: 0 12px 8px;
}

.academy-tianbang-tabs button {
  flex: 1;
  min-width: 0;
  padding: 7px 4px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 6px;
  color: rgba(220, 232, 255, 0.7);
  background: rgba(5, 15, 37, 0.35);
  cursor: pointer;
}

.academy-tianbang-tabs button.is-active,
.academy-tianbang-tabs button:hover {
  border-color: rgba(244, 200, 106, 0.38);
  color: #fff0c0;
  background: rgba(244, 200, 106, 0.1);
}

.academy-tianbang-list {
  display: grid;
  gap: 2px;
}

.academy-tianbang-row {
  display: grid;
  grid-template-columns: 22px 30px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(130, 177, 255, 0.09);
  color: inherit;
  text-decoration: none;
}

.academy-tianbang-row:last-child { border-bottom: 0; }
.academy-tianbang-row:hover strong { color: var(--academy-gold-strong); }
.academy-tianbang-rank { color: rgba(188, 209, 244, 0.72); font-size: 12px; text-align: center; }
.academy-tianbang-rank.is-top { color: var(--academy-gold-strong); font-weight: 900; }
.academy-tianbang-row .academy-avatar { width: 30px; height: 30px; }
.academy-tianbang-row strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.academy-tianbang-row strong small { display: block; margin-top: 2px; color: var(--academy-muted); font-size: 11px; font-weight: 400; }
.academy-tianbang-row em { color: rgba(168, 226, 255, 0.9); font-size: 11px; font-style: normal; white-space: nowrap; }

@keyframes academyCelestialSpin { to { transform: rotate(360deg); } }

@media (max-width: 980px) {
  .academy-residence-hero,
  .academy-residence-grid { grid-template-columns: 1fr; }
  .academy-residence-hero { text-align: left; }
  .academy-residence-hero-stats { width: min(100%, 400px); }
}

@media (max-width: 760px) {
  .academy-residence-hero { gap: 14px; padding: 18px 14px; }
  .academy-residence-avatar { justify-self: start; }
  .academy-residence-cultivation,
  .academy-residence-content-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .academy-residence-work { grid-template-columns: 1fr; gap: 7px; }
  .academy-residence-work small { overflow: hidden; text-overflow: ellipsis; }
  .academy-residence-topbar .academy-top-links { justify-content: flex-start; }
  .academy-residence-topbar .academy-profile-follow { min-width: 82px; }
  .academy-celestial { grid-template-columns: 50px minmax(0, 1fr); }
  .academy-celestial-orbit { width: 46px; height: 46px; }
  .academy-tianbang-row { grid-template-columns: 20px 28px minmax(0, 1fr) auto; gap: 6px; }
  .academy-tianbang-row .academy-avatar { width: 28px; height: 28px; }
}

body.academy-body .academy-compact-hero {
  min-height: 118px;
}

body.academy-body .academy-page-title {
  margin: 6px 0;
  font-size: clamp(26px, 3.2vw, 42px);
}

@media (max-width: 760px) {
  .academy-direct-message-layout { grid-template-columns: 1fr; min-height: 0; }
  .academy-direct-message-list { max-height: 190px; border-right: 0; border-bottom: 1px solid rgba(130,177,255,.12); }
  .academy-direct-message-layout { height:auto; min-height:0; }
  .academy-direct-thread { min-height:390px; }
  .academy-direct-composer { padding:9px; }
  .academy-direct-composer-input { min-height:64px; max-height:64px; }
  .academy-direct-message { max-width: 88%; }
}

body.academy-body .academy-page-subtitle {
  margin-bottom: 8px;
  font-size: 14px;
  line-height: 1.55;
}

body.academy-body .academy-markdown {
  padding: 18px;
  line-height: 1.75;
}

body.academy-body .academy-activity-list,
body.academy-body .academy-timeline,
body.academy-body .academy-notification-list,
body.academy-body .academy-badge-grid,
body.academy-body .academy-growth-grid {
  gap: 10px;
  padding: 12px;
}

body.academy-body .academy-activity-item,
body.academy-body .academy-notification,
body.academy-body .academy-timeline-item,
body.academy-body .academy-admin-row,
body.academy-body .academy-rule-row,
body.academy-body .academy-permission-card,
body.academy-body .academy-drag-item {
  gap: 10px;
  padding: 12px;
  border-radius: 10px;
  border-color: rgba(130, 177, 255, 0.1);
}

body.academy-body .academy-activity-mark,
body.academy-body .academy-notification-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
}

body.academy-body .academy-activity-mark.academy-avatar {
  flex-basis: 38px;
  border-radius: 50%;
}

/* Notification center: dense reading layout without changing other academy pages. */
body[data-academy-page="notifications"] .academy-page-hero {
  min-height: 78px;
  padding: 12px 22px;
  border-color: rgba(155, 188, 224, 0.14);
  background: rgba(5, 9, 17, 0.72);
  box-shadow: none;
}

body[data-academy-page="notifications"] .academy-page-hero .academy-kicker {
  font-size: 11px;
}

body[data-academy-page="notifications"] .academy-page-title {
  margin: 3px 0;
  font-size: 28px;
}

body[data-academy-page="notifications"] .academy-page-subtitle {
  margin-bottom: 0;
  font-size: 13px;
}

body[data-academy-page="notifications"] .academy-profile-stats {
  gap: 10px;
  margin-bottom: 12px;
}

body[data-academy-page="notifications"] #notificationStats:empty {
  display: none;
  margin: 0;
}

body[data-academy-page="notifications"] .academy-message-tabs {
  margin-bottom: 8px;
}

body[data-academy-page="notifications"] .academy-profile-stats article {
  padding: 12px 10px;
  border-radius: 10px;
}

body[data-academy-page="notifications"] .academy-profile-stats strong {
  font-size: 20px;
}

body[data-academy-page="notifications"] .academy-profile-stats span {
  margin-top: 3px;
  font-size: 12px;
}

body[data-academy-page="notifications"] .academy-notification-panel .academy-panel-header {
  min-height: 40px;
  padding-inline: 12px;
}

body[data-academy-page="notifications"] .academy-notification-toolbar {
  padding: 10px 12px 0;
}

body[data-academy-page="notifications"] .academy-notification-search {
  width: min(420px, 100%);
  height: 36px;
}

body[data-academy-page="notifications"] .academy-panel-title {
  font-size: 15px;
}

body[data-academy-page="notifications"] .academy-notification-list {
  gap: 8px;
  padding: 8px 12px 12px;
}

body[data-academy-page="notifications"] .academy-notification {
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 10px;
  padding: 10px;
}

body[data-academy-page="notifications"] .academy-notification-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  font-size: 14px;
}

body[data-academy-page="notifications"] .academy-notification .academy-article-meta {
  gap: 7px;
  font-size: 12px;
}

body[data-academy-page="notifications"] .academy-notification h3 {
  margin: 4px 0;
  font-size: 15px;
}

body[data-academy-page="notifications"] .academy-notification p {
  font-size: 13px;
  line-height: 1.5;
}

body[data-academy-page="notifications"] .academy-notification-actions {
  gap: 6px;
}

body[data-academy-page="notifications"] .academy-notification-actions button,
body[data-academy-page="notifications"] .academy-notification-panel .academy-inline-button {
  min-height: 30px;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 12px;
}

@media (max-width: 760px) {
  body[data-academy-page="notifications"] .academy-page-hero {
    min-height: 0;
    padding: 14px;
  }

  body[data-academy-page="notifications"] .academy-page-title {
    font-size: 26px;
  }

  body[data-academy-page="notifications"] .academy-notification {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  body[data-academy-page="notifications"] .academy-notification-icon {
    width: 34px;
    height: 34px;
  }

  body[data-academy-page="notifications"] .academy-notification-actions {
    grid-column: 2;
    justify-content: flex-start;
  }
}

body.academy-body .academy-dashboard-grid,
body.academy-body .academy-dashboard-layout,
body.academy-body .academy-admin-panel-grid,
body.academy-body .academy-center-grid,
body.academy-body .academy-lobby-grid,
body.academy-body .academy-create-management,
body.academy-body .academy-task-board,
body.academy-body .academy-event-grid,
body.academy-body .academy-operation-grid {
  gap: 12px;
}

body.academy-body .academy-admin-panel,
body.academy-body .academy-dashboard-stat,
body.academy-body .academy-growth-grid article,
body.academy-body .academy-task-card,
body.academy-body .academy-event-card,
body.academy-body .academy-operation-recommend {
  padding: 14px;
}

body.academy-body .academy-dashboard-stat strong,
body.academy-body .academy-growth-grid strong {
  font-size: 22px;
}

body.academy-body .academy-empty {
  padding: 12px;
}

body.academy-body .academy-question-category-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 12px 10px;
}

body.academy-body .academy-question-category-tabs button {
  border: 1px solid rgba(244, 200, 101, 0.18);
  border-radius: 999px;
  background: rgba(12, 24, 54, 0.58);
  color: #e9eefc;
  cursor: pointer;
  font-size: 13px;
  padding: 7px 10px;
}

body.academy-body .academy-question-category-tabs button span {
  color: #f5c76b;
  margin-left: 4px;
}

body.academy-body .academy-question-category-tabs button.is-active {
  background: rgba(244, 200, 101, 0.14);
  border-color: rgba(244, 200, 101, 0.45);
  color: #fff6d7;
}

body.academy-body .academy-related-card .academy-panel-header {
  padding-inline: 0;
}

body.academy-body .academy-related-card {
  padding: 12px;
}

body.academy-body .academy-entry-card {
  min-height: 68px;
  padding: 10px;
  border-radius: 10px;
  box-shadow: none;
}

/* P31.5 directory-style academy admin */
.academy-admin-layout {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  color: #eef5ff;
  background: radial-gradient(circle at 20% 0%, rgba(38, 139, 255, 0.12), transparent 34%), #050b1f;
}

.academy-admin-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 18px 14px;
  border-right: 1px solid rgba(130, 177, 255, 0.16);
  background: linear-gradient(180deg, rgba(5, 14, 35, 0.96), rgba(3, 8, 22, 0.98));
  overflow-y: auto;
}

.academy-admin-logo {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  column-gap: 10px;
  align-items: center;
  color: #fff6d7;
  text-decoration: none;
}

.academy-admin-logo span {
  grid-row: span 2;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(247, 212, 134, 0.92), rgba(41, 157, 255, 0.72));
}

.academy-admin-logo strong,
.academy-admin-logo small {
  display: block;
}

.academy-admin-logo small {
  color: rgba(218, 229, 255, 0.55);
  font-size: 11px;
}

.academy-admin-sidebar nav {
  display: grid;
  gap: 6px;
}

.academy-admin-sidebar nav a,
.academy-admin-back {
  min-height: 38px;
  display: flex;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 0 12px;
  color: rgba(230, 238, 255, 0.78);
  text-decoration: none;
}

.academy-admin-sidebar nav a:hover,
.academy-admin-sidebar nav a.is-active {
  color: #fff6d7;
  border-color: rgba(247, 212, 134, 0.28);
  background: rgba(38, 139, 255, 0.16);
}

.academy-admin-back {
  margin-top: auto;
  justify-content: center;
  color: #081631;
  font-weight: 900;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
}

.academy-admin-main {
  min-width: 0;
  padding: 18px;
}

.academy-admin-titlebar {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 14px;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(8, 26, 63, 0.72), rgba(5, 14, 35, 0.58));
}

.academy-admin-titlebar h1 {
  margin: 4px 0 6px;
  font-size: 26px;
  letter-spacing: 0;
}

.academy-admin-titlebar p,
.academy-admin-breadcrumb {
  margin: 0;
  color: rgba(218, 229, 255, 0.62);
}

.academy-admin-breadcrumb {
  font-size: 13px;
}

.academy-admin-filterbar {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: end;
  margin-bottom: 14px;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.12);
  border-radius: 14px;
  background: rgba(5, 14, 35, 0.52);
}

.academy-admin-filterbar label {
  display: grid;
  gap: 6px;
  color: rgba(218, 229, 255, 0.68);
  font-size: 13px;
}

.academy-admin-filterbar input,
.academy-admin-filterbar select {
  min-height: 38px;
  min-width: 180px;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 10px;
  padding: 0 12px;
  color: #f4f9ff;
  background: rgba(3, 8, 22, 0.72);
}

.academy-admin-metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.academy-admin-metric {
  min-height: 102px;
  padding: 16px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 14px;
  background: rgba(8, 26, 63, 0.52);
}

.academy-admin-metric strong,
.academy-admin-metric span,
.academy-admin-metric small {
  display: block;
}

.academy-admin-metric strong {
  color: #fff;
  font-size: 26px;
}

.academy-admin-metric span {
  margin-top: 6px;
  color: #fff6d7;
}

.academy-admin-metric small {
  margin-top: 6px;
  color: rgba(218, 229, 255, 0.55);
}

.academy-admin-panel {
  margin-bottom: 16px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 16px;
  background: rgba(5, 14, 35, 0.54);
  overflow: hidden;
}

.academy-admin-panel h2 {
  margin: 0;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.1);
  font-size: 18px;
}

.academy-admin-panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.1);
}

.academy-admin-panel-heading h2 {
  padding: 0;
  border: 0;
}

.academy-admin-panel-heading p {
  margin: 5px 0 0;
  color: rgba(218, 229, 255, 0.62);
  font-size: 13px;
}

.academy-table-link {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid rgba(247, 212, 134, 0.28);
  border-radius: 7px;
  color: #fff1bd;
  font-size: 12px;
  text-decoration: none;
  white-space: nowrap;
  background: rgba(247, 212, 134, 0.08);
}

.academy-table-link:hover {
  border-color: rgba(247, 212, 134, 0.55);
  background: rgba(247, 212, 134, 0.16);
}

.academy-user-control-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.academy-table-control-primary {
  border-color: rgba(86, 205, 255, 0.42);
  color: #d9f7ff;
  background: rgba(38, 139, 255, 0.16);
}

.academy-table-control-primary:hover {
  border-color: rgba(114, 220, 255, 0.76);
  background: rgba(38, 139, 255, 0.28);
}

.academy-admin-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.academy-admin-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.academy-admin-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

.academy-admin-table th,
.academy-admin-table td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.1);
  text-align: left;
  vertical-align: top;
}

.academy-admin-table th {
  color: rgba(255, 246, 213, 0.92);
  background: rgba(8, 26, 63, 0.74);
}

.academy-admin-table td {
  color: rgba(244, 249, 255, 0.88);
}

.academy-admin-table td small,
.academy-admin-table td strong {
  display: block;
}

.academy-admin-table td small {
  margin-top: 5px;
  color: rgba(218, 229, 255, 0.56);
}

.academy-admin-pagination {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  align-items: center;
  padding: 12px 14px;
  color: rgba(218, 229, 255, 0.68);
}

.academy-admin-pagination a {
  border: 1px solid rgba(247, 212, 134, 0.22);
  border-radius: 8px;
  padding: 6px 10px;
  color: #fff6d7;
  text-decoration: none;
}

.academy-admin-empty {
  padding: 24px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 16px;
  background: rgba(5, 14, 35, 0.56);
}

.academy-admin-empty-row {
  padding: 10px 0;
  color: rgba(218, 229, 255, 0.62);
}

.academy-admin-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 999px;
  color: rgba(244, 249, 255, 0.86);
  background: rgba(8, 26, 63, 0.74);
  font-size: 12px;
  white-space: nowrap;
}

.academy-admin-status-pill.status-published,
.academy-admin-status-pill.status-featured,
.academy-admin-status-pill.status-visible {
  border-color: rgba(84, 214, 161, 0.28);
  color: #9ff0c9;
  background: rgba(29, 126, 87, 0.16);
}

.academy-admin-status-pill.status-pending,
.academy-admin-status-pill.status-reviewing {
  border-color: rgba(247, 212, 134, 0.32);
  color: #fff1bd;
  background: rgba(202, 142, 43, 0.16);
}

.academy-admin-status-pill.status-hidden,
.academy-admin-status-pill.status-rejected {
  border-color: rgba(255, 117, 117, 0.28);
  color: #ffb8b8;
  background: rgba(151, 46, 46, 0.18);
}

.academy-admin-batchbar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(130, 177, 255, 0.1);
  background: rgba(8, 26, 63, 0.38);
}

.academy-admin-batchbar button,
.academy-table-actions button,
.academy-admin-detail-actions button,
.academy-inline-button,
.academy-admin-table button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border: 1px solid rgba(247, 212, 134, 0.24);
  border-radius: 8px;
  padding: 0 10px;
  color: #fff6d7;
  text-decoration: none;
  background: rgba(247, 212, 134, 0.1);
  cursor: pointer;
}

.academy-table-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.academy-table-actions .danger,
.academy-admin-detail-actions .danger,
.academy-admin-table button.danger {
  border-color: rgba(255, 117, 117, 0.28);
  color: #ffd1d1;
  background: rgba(151, 46, 46, 0.16);
}

.academy-admin-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 16px;
}

.academy-admin-span-2 {
  grid-column: 1 / -1;
}

.academy-admin-detail-body {
  padding: 16px;
}

.academy-admin-detail-body h2 {
  margin: 12px 0 8px;
  padding: 0;
  border: 0;
  font-size: 24px;
}

.academy-admin-detail-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  color: rgba(218, 229, 255, 0.62);
  font-size: 13px;
}

.academy-admin-content-preview {
  max-height: 560px;
  overflow: auto;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid rgba(130, 177, 255, 0.12);
  border-radius: 12px;
  color: rgba(244, 249, 255, 0.88);
  white-space: pre-wrap;
  line-height: 1.75;
  background: rgba(3, 8, 22, 0.46);
}

.academy-admin-detail-actions {
  display: grid;
  gap: 8px;
  margin-top: 16px;
}

.academy-library-item-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}

.academy-library-item-actions label {
  display: flex;
  gap: 6px;
  align-items: center;
  color: rgba(218, 229, 255, 0.68);
  font-size: 13px;
}

.academy-library-item-actions select {
  min-height: 32px;
  max-width: 160px;
  border: 1px solid rgba(130, 177, 255, 0.18);
  border-radius: 8px;
  color: #f4f9ff;
  background: rgba(3, 8, 22, 0.72);
}

/* P31.6 single-entry academy admin console */
.academy-admin-console .academy-admin-sidebar nav button {
  width: 100%;
  min-height: 38px;
  display: flex;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 0 12px;
  color: rgba(230, 238, 255, 0.78);
  text-align: left;
  background: transparent;
  cursor: pointer;
}

.academy-admin-console .academy-admin-sidebar nav button:hover,
.academy-admin-console .academy-admin-sidebar nav button.is-active {
  color: #fff6d7;
  border-color: rgba(247, 212, 134, 0.28);
  background: rgba(38, 139, 255, 0.16);
}

/* Admin menu items stay plain; the animated treatment is reserved for the academy top navigation. */
.academy-admin-console .academy-admin-sidebar nav button:is(:hover, :focus-visible, .is-active)::before {
  content: none;
}

.academy-admin-console .academy-admin-sidebar nav button:is(:hover, :focus-visible, .is-active)::after {
  content: none;
}

.academy-admin-console-topbar {
  align-items: center;
}

.academy-admin-top-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.academy-admin-workspace {
  min-width: 0;
}

.academy-admin-loading {
  min-height: 220px;
  display: grid;
  place-items: center;
  gap: 12px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 16px;
  color: rgba(244, 249, 255, 0.88);
  background: rgba(5, 14, 35, 0.54);
}

.academy-admin-loading span {
  width: 120px;
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(130, 177, 255, 0.16);
}

.academy-admin-loading span::after {
  content: "";
  display: block;
  width: 42%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ffe19a, #4aa7ff);
  animation: academy-admin-loading 1.2s ease-in-out infinite;
}

@keyframes academy-admin-loading {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(260%); }
}

.academy-week-checkin-panel {
  margin-bottom: 14px;
}

.academy-week-checkin-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
  padding: 14px;
}

.academy-week-checkin-day {
  min-height: 118px;
  display: grid;
  gap: 6px;
  align-content: center;
  justify-items: center;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 12px;
  color: rgba(230, 238, 255, 0.76);
  background: rgba(8, 26, 63, 0.42);
}

.academy-week-checkin-day strong,
.academy-week-checkin-day span,
.academy-week-checkin-day small {
  display: block;
}

.academy-week-checkin-day strong {
  color: #fff6d7;
  font-size: 18px;
}

.academy-week-checkin-day small {
  color: rgba(218, 229, 255, 0.58);
}

.academy-week-checkin-day.is-signed {
  border-color: rgba(247, 212, 134, 0.32);
  background: linear-gradient(180deg, rgba(247, 212, 134, 0.16), rgba(41, 157, 255, 0.1));
}

.academy-week-checkin-day.is-today {
  box-shadow: 0 0 0 1px rgba(247, 212, 134, 0.2), 0 18px 40px rgba(41, 157, 255, 0.12);
}

.academy-week-checkin-day.is-signable {
  cursor: pointer;
  border-color: rgba(255, 225, 154, 0.55);
  background: linear-gradient(180deg, rgba(247, 212, 134, 0.2), rgba(41, 157, 255, 0.14));
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.academy-week-checkin-day.is-signable:hover,
.academy-week-checkin-day.is-signable:focus-visible {
  border-color: rgba(255, 234, 178, 0.9);
  box-shadow: 0 0 0 3px rgba(247, 212, 134, 0.12), 0 14px 30px rgba(41, 157, 255, 0.16);
  outline: none;
  transform: translateY(-2px);
}

.academy-week-checkin-day.is-upcoming {
  opacity: 0.52;
  background: rgba(8, 26, 63, 0.24);
}

.academy-week-checkin-day button {
  min-height: 30px;
  border: 1px solid rgba(247, 212, 134, 0.3);
  border-radius: 999px;
  padding: 0 12px;
  color: #081631;
  font-weight: 800;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
  cursor: pointer;
}

@media (max-width: 680px) {
  .academy-week-checkin-grid {
    gap: 6px;
    padding: 10px;
  }

  .academy-week-checkin-day {
    min-height: 94px;
    gap: 4px;
    border-radius: 10px;
    font-size: 12px;
  }

  .academy-week-checkin-day strong {
    font-size: 14px;
  }

  .academy-week-checkin-day small {
    font-size: 11px;
  }

  .academy-week-checkin-day button {
    min-height: 26px;
    padding: 0 8px;
    font-size: 11px;
  }
}

.academy-admin-trend {
  min-height: 150px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  align-items: end;
  margin-bottom: 16px;
  padding: 16px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 16px;
  background: rgba(5, 14, 35, 0.54);
}

.academy-admin-trend div {
  min-height: 42px;
  border-radius: 10px 10px 4px 4px;
  background: linear-gradient(180deg, rgba(247, 212, 134, 0.9), rgba(41, 157, 255, 0.5));
}

.academy-admin-trend div:nth-child(2) {
  min-height: 82px;
}

.academy-admin-trend div:nth-child(3) {
  min-height: 118px;
}

.academy-admin-detail-head {
  padding: 16px;
}

.academy-user-cell-large img {
  width: 64px;
  height: 64px;
  aspect-ratio: 1;
}

@media (min-width: 1261px) {
  body.academy-body .academy-layout {
    grid-template-columns: 228px minmax(0, 1fr) 268px;
    gap: 12px;
  }

  body.academy-body .academy-detail-layout {
    grid-template-columns: minmax(0, 1fr) 278px;
    gap: 12px;
  }

  body.academy-body .academy-profile-layout {
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 12px;
  }

  body.academy-body .academy-library-layout {
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 12px;
  }

  body.academy-body .academy-create-layout,
  body.academy-body .academy-my-content-layout {
    grid-template-columns: minmax(220px, 0.32fr) minmax(0, 1fr);
    gap: 12px;
    margin-top: 12px;
  }
}

@media (max-width: 1260px) {
  .academy-sidebar {
    width: 68px;
    padding: 16px 8px;
  }

  .academy-shell {
    grid-template-columns: 68px minmax(0, 1fr);
  }

  body.academy-body::after {
    left: 68px;
  }
}

@media (max-width: 760px) {
  body.academy-body .academy-main {
    padding: 12px 10px 22px;
  }

  body.academy-body .academy-page-hero,
  body.academy-body .academy-profile-hero {
    padding: 18px 14px;
  }

  body.academy-body .academy-library-hero,
  body.academy-body .academy-library-layout,
  body.academy-body .academy-library-stats,
  body.academy-body .academy-library-item {
    grid-template-columns: 1fr;
  }

  body.academy-body .academy-library-create {
    grid-template-columns: 1fr;
  }

  body.academy-body .academy-admin-page-head,
  body.academy-body .academy-admin-panel-head {
    align-items: stretch;
    flex-direction: column;
  }

  body.academy-body .academy-admin-two-col {
    grid-template-columns: 1fr;
  }

  body.academy-body .academy-admin-module-grid {
    grid-template-columns: 1fr;
  }

  body.academy-body .academy-admin-table {
    min-width: 760px;
  }

  body.academy-body .academy-admin-layout {
    grid-template-columns: 1fr;
  }

  body.academy-body .academy-admin-sidebar {
    position: relative;
    height: auto;
    overflow: visible;
  }

  body.academy-body .academy-admin-sidebar nav {
    display: flex;
    overflow-x: auto;
    padding-bottom: 4px;
  }

  body.academy-body .academy-admin-sidebar nav a {
    white-space: nowrap;
    flex: 0 0 auto;
  }

  body.academy-body .academy-admin-back {
    display: none;
  }

  body.academy-body .academy-admin-main {
    padding: 12px 10px 22px;
  }

  body.academy-body .academy-admin-titlebar,
  body.academy-body .academy-admin-grid-2 {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: stretch;
  }

  body.academy-body .academy-admin-filterbar input,
  body.academy-body .academy-admin-filterbar select {
    min-width: min(240px, calc(100vw - 48px));
  }

  body.academy-body .academy-modal-shell {
    padding: 10px;
    align-items: end;
  }

  body.academy-body .academy-markdown {
    padding: 14px;
  }

body[data-academy-page="home-real"] .academy-real-empty {
    min-height: 132px;
  }
}

@media (max-width: 760px) {
  html,
  body.academy-body {
    max-width: 100%;
    overflow-x: hidden;
  }

  body.academy-body .academy-admin-layout {
    width: 100%;
    max-width: 100vw;
    grid-template-columns: minmax(0, 1fr) !important;
    overflow-x: hidden;
  }

  body.academy-body .academy-admin-sidebar,
  body.academy-body .academy-admin-main,
  body.academy-body .academy-admin-logo,
  body.academy-body .academy-admin-empty {
    width: auto !important;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  body.academy-body .academy-admin-sidebar nav {
    width: 100%;
    max-width: 100%;
  }

  body.academy-body .academy-week-checkin-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.academy-body .academy-week-checkin-day {
    min-height: 96px;
  }
}

/* User-facing academy pages use the top navigation; keep the operations sidebar exclusive to admin pages. */
body.academy-body:not(.academy-admin-body):not([data-admin-console]) .academy-sidebar {
  display: none;
}

body.academy-body:not(.academy-admin-body):not([data-admin-console]) .academy-shell {
  display: block;
}

body.academy-body:not(.academy-admin-body):not([data-admin-console]) .academy-main {
  grid-column: auto;
  width: 100%;
  padding-inline: clamp(12px, 2vw, 28px);
}

body.academy-body:not(.academy-admin-body):not([data-admin-console])::after {
  left: 0;
}

body[data-academy-page="articles"] .academy-topbar {
  justify-content: flex-end;
}

body[data-academy-page="articles"] .academy-articles-hero-search {
  width: min(660px, 100%);
  height: 46px;
  margin: 18px auto 0;
  border-color: rgba(247, 212, 134, 0.3);
  background: rgba(2, 11, 30, 0.72);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 10px 28px rgba(0, 0, 0, 0.2);
}

body[data-academy-page="articles"] .academy-articles-hero-search:focus-within {
  border-color: rgba(247, 212, 134, 0.68);
  box-shadow: 0 0 0 3px rgba(247, 212, 134, 0.08), 0 10px 28px rgba(0, 0, 0, 0.24);
}

body[data-academy-page="questions"] .academy-question-view-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 4px;
  border: 1px solid rgba(130, 177, 255, 0.16);
  border-radius: 999px;
  background: rgba(1, 8, 24, 0.58);
}

body[data-academy-page="questions"] .academy-topbar {
  justify-content: flex-end;
}

body[data-academy-page="questions"] .academy-question-hero-tabs {
  width: fit-content;
  margin-top: 18px;
}

body[data-academy-page="questions"] .academy-daily-fortune-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  margin-top: 12px;
  padding: 6px 12px;
  color: #f5dfaa;
  border: 1px solid rgba(239, 194, 104, .32);
  border-radius: 8px;
  background: rgba(8, 19, 46, .58);
  cursor: pointer;
}

body[data-academy-page="questions"] .academy-daily-fortune-trigger > span { color: #f4c969; font-size: 19px; }
body[data-academy-page="questions"] .academy-daily-fortune-trigger strong { font-size: 13px; }
body[data-academy-page="questions"] .academy-daily-fortune-trigger small { color: rgba(213, 229, 255, .62); font-size: 11px; }
body[data-academy-page="questions"] .academy-daily-fortune-trigger:hover { border-color: rgba(255, 222, 142, .72); background: rgba(19, 38, 80, .7); }

.academy-fortune-dialog {
  width: min(440px, calc(100vw - 28px));
  margin: auto;
  padding: 0;
  color: #eaf4ff;
  border: 1px solid rgba(237, 198, 111, .48);
  border-radius: 10px;
  background: #07142f;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .52);
}
.academy-fortune-dialog::backdrop { background: rgba(1, 7, 20, .72); backdrop-filter: blur(3px); }
.academy-fortune-shell { padding: 22px; background: radial-gradient(circle at 88% 9%, rgba(237, 192, 95, .14), transparent 31%), linear-gradient(145deg, rgba(14, 34, 75, .98), rgba(5, 13, 31, .98)); }
.academy-fortune-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.academy-fortune-head h2 { margin: 5px 0 0; color: #fff0bd; font-family: "STKaiti", "KaiTi", serif; font-size: 26px; }
.academy-fortune-symbol { margin: 22px 0 7px; color: #f7cf74; font-size: 42px; line-height: 1; letter-spacing: 10px; text-shadow: 0 0 24px rgba(247, 207, 116, .36); }
.academy-fortune-name { margin: 0; color: #fff4d4; font-size: 18px; font-weight: 700; }
.academy-fortune-reading { margin: 13px 0; color: rgba(227, 239, 255, .82); line-height: 1.8; }
.academy-fortune-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.academy-fortune-details span, .academy-fortune-details small { padding: 8px 9px; color: rgba(224, 239, 255, .8); font-size: 12px; border: 1px solid rgba(160, 200, 255, .14); background: rgba(3, 12, 30, .38); }
.academy-fortune-details small { grid-column: 1 / -1; color: rgba(195, 217, 247, .54); }
.academy-fortune-note { margin: 14px 0 0; color: rgba(193, 215, 244, .52); font-size: 12px; }

body[data-academy-page="questions"] .academy-question-view-tabs button {
  min-height: 30px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: rgba(232, 241, 255, 0.78);
  background: transparent;
  cursor: pointer;
  white-space: nowrap;
}

body[data-academy-page="questions"] .academy-question-view-tabs button:hover,
body[data-academy-page="questions"] .academy-question-view-tabs button.is-active {
  border-color: rgba(247, 212, 134, 0.36);
  color: #101b33;
  background: linear-gradient(135deg, #ffe19a, #eaa64b);
}

.academy-tribulation-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 1400px;
  min-height: 34px;
  margin: 0 auto 10px;
  padding: 7px 16px;
  color: #eaf4ff;
  text-decoration: none;
  border: 1px solid rgba(141, 198, 255, 0.5);
  border-radius: 6px;
  background: linear-gradient(90deg, rgba(13, 35, 83, 0.92), rgba(59, 31, 100, 0.78));
  box-shadow: 0 8px 26px rgba(62, 135, 255, 0.18);
}

.academy-tribulation-banner > span {
  color: #d7ecff;
  animation: academy-tribulation-pulse 1.8s ease-in-out infinite;
}

body[data-academy-page="tribulation"] .academy-page-hero { border-color: rgba(158, 220, 255, .55); background: linear-gradient(135deg, rgba(17, 44, 94, .82), rgba(36, 20, 77, .76)); }
body[data-tribulation-visual="ID004"] .academy-page-hero { border-color: rgba(255, 94, 94, .72); background: linear-gradient(135deg, rgba(92, 13, 21, .9), rgba(45, 8, 18, .85)); }
body[data-tribulation-visual="ID006"] .academy-page-hero { background: linear-gradient(120deg, rgba(228, 80, 106, .68), rgba(94, 154, 255, .68), rgba(238, 211, 89, .6)); }
body[data-tribulation-visual="ID007"] .academy-page-hero { background: linear-gradient(135deg, #080b14, #e7ecf2 50%, #0a0d17); color: #0b1220; }
body[data-tribulation-visual="ID008"] .academy-page-hero { background: linear-gradient(120deg, #ef6b6b, #f3be54, #e9ed75, #7ce1b3, #72b9ff, #b996ff); }

.academy-tribulation-hero {
  position: relative;
  isolation: isolate;
  min-height: 274px;
  overflow: hidden;
  padding: 42px clamp(22px, 5vw, 72px);
  border: 1px solid rgba(134, 194, 255, .42);
  background: radial-gradient(circle at 72% 42%, rgba(108, 153, 255, .3), transparent 22%), linear-gradient(135deg, rgba(7, 20, 54, .95), rgba(29, 16, 61, .9));
  box-shadow: inset 0 0 80px rgba(107, 151, 255, .1), 0 24px 64px rgba(0, 0, 0, .28);
}
.academy-tribulation-hero-copy { position: relative; z-index: 3; max-width: 600px; }
.academy-tribulation-hero h1 { margin: 8px 0; color: #f5f8ff; font-size: clamp(30px, 4vw, 52px); }
.academy-tribulation-hero p { max-width: 540px; color: rgba(231, 241, 255, .86); font-size: 15px; line-height: 1.8; }
.academy-tribulation-clouds { position: absolute; z-index: 1; inset: -40% -12%; opacity: .65; background: repeating-radial-gradient(ellipse at 60% 55%, rgba(101, 135, 205, .24) 0 8%, transparent 9% 18%), radial-gradient(ellipse at 50% 115%, rgba(0, 0, 0, .86), transparent 62%); animation: academy-tribulation-clouds 22s ease-in-out infinite alternate; }
.academy-tribulation-lightning { position: absolute; z-index: 2; right: 20%; top: -20px; width: 3px; height: 270px; opacity: .5; transform: rotate(18deg); background: linear-gradient(transparent, #d9ecff 25%, #8cc9ff 47%, transparent 72%); filter: drop-shadow(0 0 14px #8ac8ff); animation: academy-tribulation-lightning 5s steps(2, end) infinite; }
.academy-tribulation-lightning::before, .academy-tribulation-lightning::after { content: ''; position: absolute; width: 2px; height: 180px; background: linear-gradient(transparent, rgba(194, 228, 255, .88), transparent); filter: drop-shadow(0 0 10px #bde1ff); }
.academy-tribulation-lightning::before { top: 58px; left: 58px; transform: rotate(-34deg); animation: academy-tribulation-fork 5s steps(2, end) infinite; }
.academy-tribulation-lightning::after { top: 110px; right: 42px; transform: rotate(42deg); animation: academy-tribulation-fork 5s steps(2, end) .18s infinite; }
.academy-tribulation-metrics { margin-top: 16px; }
.academy-tribulation-section { margin-top: 16px; }
.academy-tribulation-timer { color: #f5d69d !important; font-variant-numeric: tabular-nums; }
.academy-tribulation-process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.academy-tribulation-process li { display: grid; justify-items: center; gap: 7px; min-height: 86px; padding: 12px 6px; color: rgba(222, 234, 255, .55); border: 1px solid rgba(141, 191, 255, .14); background: rgba(5, 15, 39, .36); }
.academy-tribulation-process li span { display: grid; place-items: center; width: 25px; height: 25px; color: #c9d8ed; font-size: 12px; border: 1px solid currentColor; border-radius: 50%; }
.academy-tribulation-process li strong { font-size: 13px; }.academy-tribulation-process li.is-passed { color: #e8c77d; border-color: rgba(232, 199, 125, .4); }.academy-tribulation-process li.is-current { color: #eef7ff; border-color: rgba(143, 203, 255, .7); box-shadow: inset 0 0 18px rgba(96, 174, 255, .14), 0 0 22px rgba(95, 161, 255, .12); }
.academy-tribulation-event { margin: 0; padding: 18px; color: #f8deb0; border-left: 2px solid rgba(248, 198, 104, .8); background: rgba(248, 198, 104, .06); }
.academy-tribulation-history { display: grid; gap: 8px; }
.academy-tribulation-history article { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(130px, 1fr) auto; align-items: center; gap: 12px; min-height: 50px; padding: 10px 12px; border-bottom: 1px solid rgba(170, 205, 255, .1); }
.academy-tribulation-history span { color: #efcf91; }.academy-tribulation-history small { color: rgba(218, 232, 255, .58); }
.academy-rule-directory { display: flex; flex-wrap: wrap; gap: 8px; }
.academy-rule-directory a { color: #d5e7ff; font-size: 13px; text-decoration: none; }
.academy-rule-section p { margin: 8px 0 0; color: rgba(224, 235, 255, .78); line-height: 1.8; }
.academy-admin-json-editor { display: block; width: 100%; min-height: 320px; margin: 12px 0; padding: 12px; color: #eaf3ff; font: 12px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; border: 1px solid rgba(141, 191, 255, .26); border-radius: 6px; background: rgba(2, 10, 28, .82); resize: vertical; }
body[data-tribulation-visual="ID004"] .academy-tribulation-hero { border-color: rgba(255, 92, 92, .68); background: radial-gradient(circle at 76% 40%, rgba(244, 35, 61, .35), transparent 25%), linear-gradient(135deg, #440c18, #14060b); }
body[data-tribulation-visual="ID006"] .academy-tribulation-hero { background: radial-gradient(circle at 75% 35%, rgba(255, 227, 114, .45), transparent 18%), linear-gradient(130deg, #582441, #1a488e 46%, #654781); }
body[data-tribulation-visual="ID007"] .academy-tribulation-hero { border-color: rgba(235, 239, 255, .6); background: linear-gradient(135deg, #05070f 0%, #222936 48%, #d9dce0 49%, #11141b 100%); }
body[data-tribulation-visual="ID008"] .academy-tribulation-hero { border-color: rgba(255, 243, 184, .82); background: conic-gradient(from 210deg at 75% 45%, #6d2138, #ad7429, #e0d15d, #3e9778, #34679e, #70458f, #6d2138); }
@keyframes academy-tribulation-clouds { to { transform: translate3d(5%, -3%, 0) rotate(8deg); } }
@keyframes academy-tribulation-lightning { 0%, 82%, 100% { opacity: .08; } 84%, 87% { opacity: .85; } }
@keyframes academy-tribulation-fork { 0%, 82%, 100% { opacity: .04; } 84%, 87% { opacity: .72; } }

.academy-tribulation-banner strong { font-size: 13px; }
.academy-tribulation-banner em { margin-left: auto; color: #f8d98a; font-size: 12px; font-style: normal; }

.academy-action.is-tribulation {
  border-color: rgba(151, 204, 255, 0.76);
  color: #f6fbff;
  background: linear-gradient(135deg, #214d9a, #71429f);
  box-shadow: 0 0 0 1px rgba(224, 241, 255, 0.12), 0 8px 24px rgba(82, 133, 255, 0.36);
}

@keyframes academy-tribulation-pulse {
  50% { opacity: 0.55; transform: scale(1.14); }
}

@media (max-width: 760px) {
  .academy-tribulation-banner { margin: 0 12px 8px; padding: 7px 10px; }
  .academy-tribulation-banner strong { font-size: 12px; }
  .academy-tribulation-banner em { display: none; }
  body[data-academy-page="articles"] .academy-articles-hero-search {
    margin-top: 14px;
  }

  body[data-academy-page="questions"] .academy-question-view-tabs {
    width: 100%;
    overflow-x: auto;
    border-radius: 12px;
  }

  body[data-academy-page="questions"] .academy-question-view-tabs button {
    flex: 0 0 auto;
  }
  body[data-academy-page="questions"] .academy-daily-fortune-trigger { width: 100%; justify-content: center; }
  .academy-fortune-shell { padding: 18px; }
  .academy-fortune-details { grid-template-columns: 1fr; }
  .academy-tribulation-hero { min-height: 240px; padding: 30px 20px; }
  .academy-tribulation-history article { grid-template-columns: 1fr; gap: 3px; }
  .academy-tribulation-lightning { right: 12%; }
  .academy-tribulation-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Keep the shared academy navigation stable when browser zoom reduces the effective viewport. */
@media (min-width: 761px) {
  body.academy-body .academy-topbar.academy-unified-topbar {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    row-gap: 8px;
  }

  body.academy-body .academy-topbar.academy-unified-topbar .academy-main-hall-return {
    grid-column: 1;
    grid-row: 1;
  }

  body.academy-body .academy-topbar.academy-unified-topbar .academy-unified-top-links {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    margin-left: 0;
    flex-wrap: nowrap;
    justify-content: flex-end;
    overflow-x: auto;
    scrollbar-width: none;
  }

  body.academy-body .academy-topbar.academy-unified-topbar .academy-unified-top-links .academy-pill {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  body.academy-body .academy-topbar.academy-unified-topbar .academy-unified-top-links::-webkit-scrollbar {
    display: none;
  }

  body.academy-body .academy-topbar.academy-unified-topbar > .academy-global-search {
    grid-column: 1 / -1;
    grid-row: 2;
    width: min(480px, 100%);
  }
}

@media (max-width: 760px) {
  body.academy-body .academy-topbar.academy-unified-topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 8px;
  }

  body.academy-body .academy-topbar.academy-unified-topbar .academy-main-hall-return {
    align-self: flex-start;
    grid-row: 1;
  }

  body.academy-body .academy-topbar.academy-unified-topbar .academy-unified-top-links {
    grid-row: 2;
    width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }

  body.academy-body .academy-topbar.academy-unified-topbar .academy-unified-top-links .academy-pill {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  body.academy-body .academy-topbar.academy-unified-topbar > .academy-global-search {
    grid-row: 3;
    width: 100%;
  }
}

/* Academy lobby feed: every article keeps the same compact reading footprint. */
body[data-academy-page="home-real"] .academy-community-card.academy-article-card-clickable {
  height: 176px;
  min-height: 176px;
  overflow: hidden;
}

/* P35: compact next-realm target inside the existing cultivator destiny plaque. */
.academy-mingpai-goal {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 10px;
  grid-column: 1 / -1;
  margin-top: 8px;
  padding-top: 9px;
  border-top: 1px solid rgba(130, 177, 255, 0.14);
  color: inherit;
  text-decoration: none;
}

.academy-mingpai-goal span,
.academy-mingpai-goal small { color: var(--academy-muted); font-size: 11px; }
.academy-mingpai-goal strong { color: #fff1c7; font-size: 13px; text-align: right; }
.academy-mingpai-goal i { grid-column: 1 / -1; display: block; height: 5px; overflow: hidden; border-radius: 999px; background: rgba(140, 177, 240, 0.16); }
.academy-mingpai-goal i b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #58c9ff, #f4c86a); }
.academy-mingpai-goal small { grid-column: 1 / -1; }

.academy-growth-goal {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, .8fr) auto;
  gap: 12px;
  align-items: center;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(130, 177, 255, 0.12);
}

.academy-growth-goal small,
.academy-growth-goal p { color: var(--academy-muted); font-size: 12px; }
.academy-growth-goal strong { display: block; margin-top: 3px; color: #fff1c7; }
.academy-growth-goal p { margin: 4px 0 0; }
.academy-growth-goal-progress i { display: block; height: 7px; overflow: hidden; border-radius: 999px; background: linear-gradient(90deg, rgba(86, 215, 255, .2), rgba(244, 200, 106, .2)); }
.academy-growth-goal-progress i b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #61d6ff, #f4c86a); }
.academy-growth-goal-progress span { display: block; margin-top: 5px; color: var(--academy-muted); font-size: 11px; }
.academy-growth-grid article.is-locked { opacity: .54; }
.academy-growth-grid article.is-unlocked { border-color: rgba(244, 200, 106, .35); background: rgba(244, 200, 106, .08); }
.academy-growth-grid article small { display: block; margin-top: 5px; color: var(--academy-muted); font-size: 11px; }

@media (max-width: 760px) {
  .academy-growth-goal { grid-template-columns: 1fr; gap: 8px; }
}

body[data-academy-page="home-real"] .academy-community-body {
  grid-template-columns: 104px minmax(0, 1fr);
  min-height: 104px;
  overflow: hidden;
}

body[data-academy-page="home-real"] .academy-community-cover {
  width: 104px;
  min-height: 0;
  height: 104px;
}

body[data-academy-page="home-real"] .academy-community-cover img {
  width: 104px;
  height: 104px;
  object-fit: cover;
}

body[data-academy-page="home-real"] .academy-community-body > div:last-child {
  min-width: 0;
  overflow: hidden;
}

body[data-academy-page="home-real"] .academy-community-card h3 {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

body[data-academy-page="home-real"] .academy-community-card p {
  display: -webkit-box;
  min-height: 0;
  margin-bottom: 5px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@media (max-width: 760px) {
  body[data-academy-page="home-real"] .academy-community-card.academy-article-card-clickable {
    height: 160px;
    min-height: 160px;
  }

  body[data-academy-page="home-real"] .academy-community-body {
    grid-template-columns: 82px minmax(0, 1fr) !important;
    min-height: 86px;
  }

  body[data-academy-page="home-real"] .academy-community-cover,
  body[data-academy-page="home-real"] .academy-community-cover img {
    width: 82px;
    min-height: 0;
    height: 86px;
  }

body[data-academy-page="home-real"] .academy-community-card p {
    -webkit-line-clamp: 1;
  }
}

/* P36 world pages and compact world modules. */
.academy-world-page { max-width: 1080px; margin: 0 auto; padding: 28px 18px; }
.academy-world-panel { margin-top: 14px; padding: 22px; }
.academy-world-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.academy-world-grid article, .academy-world-list article { padding: 14px; border: 1px solid rgba(130,177,255,.14); border-radius: 8px; background: rgba(5,16,42,.42); }
.academy-world-grid small, .academy-world-list small { color: var(--academy-muted); }.academy-world-grid strong { display:block; margin-top:6px; color:#fff1c7; }
.academy-world-list { display:grid; gap:10px; margin-top:16px; }.academy-world-list article { display:grid; grid-template-columns:100px minmax(0,1fr) 110px; gap:14px; align-items:center; }
.academy-world-list h2 { margin:0; font-size:17px; }.academy-world-list p { margin:5px 0; color:var(--academy-muted); }.academy-world-list select { min-height:34px; color:#fff; background:#081631; border:1px solid rgba(130,177,255,.2); border-radius:6px; }
.academy-world-home-panel { padding:14px; }.academy-world-home-panel p { margin:6px 0; color:var(--academy-muted); font-size:12px; }
@media (max-width:760px){.academy-world-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-world-list article{grid-template-columns:1fr}.academy-world-page{padding:18px 12px}}

/* P37.4: archive browser for academy chat sticker packages. */
.academy-emoji-library-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 16px;
}

.academy-emoji-library-summary span {
  min-width: 0;
  padding: 13px 15px;
  border: 1px solid rgba(130, 177, 255, 0.14);
  border-radius: 10px;
  background: rgba(8, 26, 63, 0.5);
}

.academy-emoji-library-summary small,
.academy-emoji-library-summary strong {
  display: block;
}

.academy-emoji-library-summary small {
  color: rgba(218, 229, 255, 0.58);
  font-size: 12px;
}

.academy-emoji-library-summary strong {
  margin-top: 5px;
  overflow: hidden;
  color: #fff1c7;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.academy-emoji-library-grid > section + section {
  border-top: 1px solid rgba(130, 177, 255, 0.1);
}

.academy-emoji-library-grid > section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 10px;
}

.academy-emoji-library-grid h2 {
  margin: 0;
  padding: 0;
  border: 0;
  color: #fff6d7;
  font-size: 16px;
}

.academy-emoji-library-grid > section > header small {
  color: rgba(218, 229, 255, 0.55);
  font-size: 12px;
}

.academy-emoji-library-grid > section > div {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
  gap: 8px;
  padding: 0 16px 16px;
}

.academy-emoji-library-grid figure {
  display: grid;
  grid-template-rows: 76px auto;
  gap: 5px;
  min-width: 0;
  margin: 0;
  padding: 6px;
  border: 1px solid rgba(130, 177, 255, 0.12);
  border-radius: 8px;
  background: rgba(3, 11, 29, 0.44);
}

.academy-emoji-library-grid img {
  width: 100%;
  height: 76px;
  object-fit: contain;
}

.academy-emoji-library-grid figcaption {
  overflow: hidden;
  color: rgba(230, 238, 255, 0.8);
  font-size: 12px;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .academy-emoji-library-summary { grid-template-columns: 1fr; }
  .academy-emoji-library-grid > section > div { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0 10px 12px; }
  .academy-emoji-library-grid > section > header { padding: 12px 10px 8px; }
  .academy-emoji-library-grid figure { grid-template-rows: 68px auto; }
  .academy-emoji-library-grid img { height: 68px; }
}
