/* Soul Academy // Term Zero */
.soul-academy, .academy-finale {
  --academy-void: oklch(0.105 0.018 242);
  --academy-ink: oklch(0.16 0.026 239);
  --academy-metal: oklch(0.235 0.035 235);
  --academy-line: oklch(0.66 0.05 222 / 0.3);
  --academy-paper: oklch(0.91 0.036 88);
  --academy-paper-dim: oklch(0.81 0.04 85);
  --academy-copy: oklch(0.93 0.018 220);
  --academy-muted: oklch(0.72 0.036 224);
  --academy-cyan: oklch(0.79 0.135 208);
  --academy-soul: oklch(0.83 0.18 132);
  --academy-red: oklch(0.64 0.205 27);
  --academy-gold: oklch(0.84 0.145 88);
  --academy-focus: oklch(0.9 0.12 205);
  --academy-ease: cubic-bezier(0.16, 1, 0.3, 1);
}
.soul-academy {
  position: relative;
  isolation: isolate;
  width: min(1500px, calc(100% - 24px));
  margin: 22px auto 54px;
  overflow: clip;
  border: 1px solid var(--academy-line);
  border-radius: 26px;
  color: var(--academy-copy);
  background: var(--academy-void);
  box-shadow: inset 0 1px oklch(0.94 0.02 220 / 0.07), 0 34px 80px oklch(0.04 0.018 240 / 0.72);
  content-visibility: auto;
  contain-intrinsic-size: 1180px;
}

.soul-academy[hidden],
.academy-finale[hidden],
.academy-how[hidden],
.academy-card-detail[hidden] { display: none !important; }
.academy-card-detail { position: relative; }
.academy-finale-active #turn-banner { visibility: hidden; }
.academy-finale .academy-finale__stage { max-height: calc(100dvh - 32px); overflow-y: auto; }

.academy-atmosphere {
  position: absolute;
  z-index: -3;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  opacity: 0.48;
  filter: saturate(0.82) contrast(1.08) brightness(0.72);
}

.soul-academy::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 78% 14%, oklch(0.48 0.12 205 / 0.18), transparent 29%),
    linear-gradient(180deg, oklch(0.09 0.02 242 / 0.2), oklch(0.09 0.02 242 / 0.93) 58%, var(--academy-void));
}

.soul-academy::after {
  content: "";
  position: absolute;
  z-index: 20;
  inset: 10px;
  border: 1px solid oklch(0.78 0.09 213 / 0.1);
  border-radius: 18px;
  pointer-events: none;
}

.academy-ambient { position: absolute; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; }
.academy-grid {
  position: absolute;
  inset: 0;
  opacity: 0.16;
  background-image: linear-gradient(oklch(0.7 0.09 214 / 0.16) 1px, transparent 1px), linear-gradient(90deg, oklch(0.7 0.09 214 / 0.16) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, transparent, black 18%, black 78%, transparent);
}
.academy-scan {
  position: absolute;
  inset-inline: 3%;
  top: 0;
  height: 2px;
  opacity: 0;
  background: linear-gradient(90deg, transparent, var(--academy-cyan), transparent);
  box-shadow: 0 0 18px var(--academy-cyan);
  animation: academy-scan 9s ease-in-out infinite;
}
.academy-signal { position: absolute; top: 96px; right: 28px; display: flex; gap: 5px; align-items: end; }
.academy-signal i { width: 3px; height: 10px; border-radius: 2px; background: var(--academy-soul); box-shadow: 0 0 8px var(--academy-soul); animation: academy-signal 3s ease-in-out infinite; }
.academy-signal i:nth-child(2) { height: 16px; animation-delay: .12s; }
.academy-signal i:nth-child(3) { height: 23px; animation-delay: .24s; }

.academy-status-strip {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 46px;
  padding: 0 clamp(18px, 3vw, 38px);
  border-bottom: 1px solid oklch(0.68 0.07 220 / 0.24);
  background: oklch(0.13 0.025 240 / 0.9);
  font-family: "Rajdhani", sans-serif;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.academy-status-strip > span { display: flex; align-items: center; gap: 9px; color: var(--academy-muted); font-size: .76rem; }
.academy-status-strip > span i { width: 7px; height: 7px; border-radius: 50%; background: var(--academy-soul); box-shadow: 0 0 12px var(--academy-soul); animation: academy-live 2.4s ease-in-out infinite; }
.academy-status-strip > strong { color: var(--academy-cyan); font: 700 .74rem/1 "Orbitron", sans-serif; }
.academy-status-strip > time { justify-self: end; color: var(--academy-paper-dim); font-size: .72rem; }

.academy-hero {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
  align-items: center;
  min-height: 440px;
  padding: clamp(34px, 5vw, 72px);
  padding-bottom: 28px;
}
.academy-hero__copy { position: relative; z-index: 5; max-width: 670px; }
.academy-kicker, .academy-assignment__eyebrow {
  color: var(--academy-cyan);
  font: 700 .7rem/1.2 "Orbitron", sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.academy-hero h2 {
  margin: 15px 0 0;
  color: var(--academy-paper);
  font: 900 clamp(3rem, 7vw, 6.5rem)/.85 "Orbitron", sans-serif;
  letter-spacing: -.065em;
  text-transform: uppercase;
  text-shadow: 0 12px 46px oklch(0.04 0.02 240 / .7);
}
.academy-term {
  display: block;
  width: max-content;
  margin-top: 13px;
  color: var(--academy-red);
  font: 900 clamp(.9rem, 1.6vw, 1.2rem)/1 "Orbitron", sans-serif;
  letter-spacing: .32em;
  text-transform: uppercase;
  transform: rotate(-1.4deg);
}
.academy-hero__copy > p { max-width: 60ch; margin: 22px 0; color: var(--academy-muted); font: 600 1.06rem/1.55 "Rajdhani", sans-serif; }
.academy-hero__actions, .academy-assignment__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.academy-button, .academy-assignment__actions button {
  min-height: 48px;
  padding: 0 18px;
  border: 1px solid oklch(0.74 0.09 211 / .52);
  border-radius: 9px;
  color: var(--academy-copy);
  background: oklch(0.19 0.035 237 / .9);
  font: 800 .78rem/1 "Orbitron", sans-serif;
  letter-spacing: .055em;
  cursor: pointer;
  transition: transform 180ms var(--academy-ease), border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
.academy-button--primary, .academy-assignment__actions .is-primary {
  color: oklch(0.16 0.025 239);
  border-color: var(--academy-cyan);
  background: var(--academy-cyan);
  box-shadow: 0 12px 28px oklch(0.35 0.13 210 / .26);
}
.academy-button:hover, .academy-assignment__actions button:hover:not(:disabled) { transform: translateY(-3px); border-color: var(--academy-cyan); }
.academy-button:focus-visible, .academy-day:focus-visible, .academy-deck-card:focus-visible, .academy-assignment__actions button:focus-visible, .academy-card-detail button:focus-visible, .academy-finale button:focus-visible { outline: 2px solid var(--academy-focus); outline-offset: 3px; }
.academy-assignment__actions button:disabled { cursor: not-allowed; opacity: .44; filter: saturate(.3); }
.academy-how { max-width: 58ch; margin-top: 14px; padding: 12px 14px; border: 1px solid oklch(0.69 0.08 210 / .28); border-radius: 8px; color: var(--academy-paper-dim); background: oklch(0.14 0.025 240 / .86); font: 600 .92rem/1.45 "Rajdhani", sans-serif; animation: academy-reveal 240ms var(--academy-ease) both; }

.academy-card-stage { position: relative; min-height: 390px; perspective: 1000px; }
.academy-featured {
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(145px, 16vw, 220px);
  aspect-ratio: 5 / 7;
  margin: 0;
  overflow: hidden;
  border: 1px solid oklch(0.74 0.1 210 / .54);
  border-radius: 14px;
  background: var(--academy-ink);
  box-shadow: 0 28px 55px oklch(0.03 0.02 240 / .62), 0 0 24px oklch(0.52 0.12 207 / .15);
  transform-origin: 50% 92%;
  transition: transform 260ms var(--academy-ease), opacity 180ms ease;
}
.academy-featured img { width: 100%; height: 100%; object-fit: cover; }
.academy-featured--back { z-index: 1; transform: translate(-112%, -48%) rotate(-10deg); animation: academy-float-left 7.2s ease-in-out infinite; }
.academy-featured--middle { z-index: 2; transform: translate(-50%, -54%) rotate(-1deg); animation: academy-float-mid 6.6s ease-in-out -.8s infinite; }
.academy-featured--front { z-index: 3; transform: translate(12%, -48%) rotate(9deg); animation: academy-float-right 7.6s ease-in-out -1.5s infinite; }
.academy-card-stage.is-switching .academy-featured { opacity: 0; transform: translate(-50%, -42%) scale(.9); }
.academy-seal { position: absolute; left: 50%; top: 50%; width: 330px; aspect-ratio: 1; border: 1px solid oklch(0.72 0.09 210 / .17); border-radius: 50%; transform: translate(-50%, -50%); animation: academy-seal-turn 24s linear infinite; }
.academy-seal::before, .academy-seal::after { content: ""; position: absolute; inset: 22px; border: 1px dashed oklch(0.72 0.09 210 / .2); border-radius: 50%; }
.academy-seal::after { inset: 74px; border-style: solid; }
.academy-seal i { position: absolute; left: 50%; top: -5px; width: 10px; height: 10px; border-radius: 50%; background: var(--academy-soul); box-shadow: 0 0 16px var(--academy-soul); }
.academy-seal b { position: absolute; left: 50%; top: 50%; color: oklch(0.82 0.09 210 / .15); font: 900 4rem/1 "Orbitron"; transform: translate(-50%, -50%); }
.academy-day-readout { position: absolute; z-index: 6; right: 4%; bottom: 10%; padding: 8px 12px; border: 1px solid oklch(0.72 0.09 210 / .35); border-radius: 6px; color: var(--academy-cyan); background: oklch(0.13 0.025 240 / .9); font: 700 .65rem/1 "Orbitron", sans-serif; letter-spacing: .12em; }

.academy-schedule { position: relative; z-index: 4; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; padding: 14px clamp(18px, 3vw, 38px) 24px; }
.academy-schedule::before { content: ""; position: absolute; z-index: -1; inset-inline: 5%; top: 50%; height: 1px; background: oklch(0.68 0.08 213 / .28); }
.academy-day {
  position: relative;
  min-width: 0;
  min-height: 92px;
  padding: 12px 10px;
  overflow: hidden;
  border: 1px solid oklch(0.63 0.04 220 / .26);
  border-radius: 10px;
  color: var(--academy-muted);
  background: oklch(0.18 0.028 239 / .95);
  text-align: left;
  cursor: pointer;
  transition: transform 180ms var(--academy-ease), border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}
.academy-day::after { content: ""; position: absolute; right: -17px; bottom: -20px; width: 56px; height: 56px; border: 1px solid currentColor; border-radius: 50%; opacity: .12; }
.academy-day:hover:not(:disabled) { transform: translateY(-4px); border-color: var(--academy-cyan); }
.academy-day.is-selected { color: oklch(0.22 0.035 75); border-color: var(--academy-cyan); background: var(--academy-paper); box-shadow: 0 14px 30px oklch(0.04 0.02 240 / .42); }
.academy-day.is-ready { border-color: var(--academy-soul); box-shadow: 0 0 18px oklch(0.67 0.16 132 / .12); }
.academy-day.is-complete { border-color: oklch(0.64 0.17 27 / .7); }
.academy-day:disabled { cursor: not-allowed; opacity: .48; filter: saturate(.3); }
.academy-day__number { display: block; color: currentColor; font: 900 1.6rem/1 "Orbitron", sans-serif; opacity: .86; }
.academy-day strong { display: block; margin-top: 7px; overflow: hidden; font: 800 .78rem/1.05 "Rajdhani", sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.academy-day small { display: block; margin-top: 4px; font: 700 .56rem/1 "Orbitron", sans-serif; letter-spacing: .06em; text-transform: uppercase; opacity: .74; }
.academy-day__honors { position: absolute; top: 9px; right: 9px; color: var(--academy-gold); filter: drop-shadow(0 0 6px currentColor); }
.academy-day__lock { position: absolute; top: 10px; right: 10px; font-size: .72rem; opacity: .7; }

.academy-workbench { position: relative; z-index: 3; display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(310px, .72fr); gap: clamp(16px, 2.4vw, 30px); padding: 10px clamp(18px, 3vw, 38px) 42px; }
.academy-deck { min-width: 0; padding: clamp(18px, 2.4vw, 30px); border: 1px solid oklch(0.65 0.055 220 / .22); border-radius: 16px; background: oklch(0.145 0.024 240 / .9); box-shadow: inset 0 1px oklch(0.92 0.02 220 / .05); }
.academy-deck > header { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.academy-deck > header span { color: var(--academy-cyan); font: 700 .62rem/1 "Orbitron", sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.academy-deck h3 { margin: 7px 0 0; color: var(--academy-copy); font: 900 1.55rem/1 "Orbitron", sans-serif; }
.academy-deck > header > b { color: var(--academy-muted); font: 700 .72rem/1 "Orbitron", sans-serif; letter-spacing: .1em; }
.academy-deck > p { max-width: 70ch; margin: 14px 0 20px; color: var(--academy-muted); font: 600 .96rem/1.45 "Rajdhani", sans-serif; }
.academy-deck__cards { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.academy-deck-card { position: relative; min-width: 0; padding: 0; overflow: hidden; border: 1px solid oklch(0.65 0.055 220 / .32); border-radius: 10px; aspect-ratio: 5 / 7; background: var(--academy-ink); cursor: pointer; box-shadow: 0 10px 22px oklch(0.04 0.02 240 / .38); transition: transform 180ms var(--academy-ease), border-color 180ms ease, box-shadow 180ms ease; }
.academy-deck-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 34%, oklch(0.92 0.05 210 / .2), transparent 61%); transform: translateX(-120%); transition: transform 420ms var(--academy-ease); }
.academy-deck-card:hover { z-index: 2; transform: translateY(-7px) scale(1.025); border-color: var(--academy-cyan); box-shadow: 0 20px 34px oklch(0.04 0.02 240 / .58), 0 0 18px oklch(0.62 0.13 210 / .14); }
.academy-deck-card:hover::after { transform: translateX(120%); }
.academy-deck-card img { width: 100%; height: 100%; object-fit: cover; }
.academy-deck-card span { position: absolute; left: 6px; right: 6px; bottom: 6px; padding: 4px; overflow: hidden; border-radius: 5px; color: var(--academy-copy); background: oklch(0.1 0.02 240 / .88); font: 700 .61rem/1 "Rajdhani", sans-serif; text-align: center; text-overflow: ellipsis; white-space: nowrap; }

.academy-card-detail { display: grid; grid-template-columns: 108px 1fr auto; gap: 16px; align-items: center; margin-top: 16px; padding: 14px; border: 1px solid oklch(0.68 0.08 210 / .28); border-radius: 10px; background: oklch(0.2 0.03 238 / .7); animation: academy-reveal 240ms var(--academy-ease) both; }
.academy-card-detail img { width: 108px; aspect-ratio: 5 / 7; border-radius: 8px; object-fit: cover; }
.academy-card-detail__copy small { color: var(--academy-cyan); font: 700 .6rem/1 "Orbitron", sans-serif; letter-spacing: .1em; }
.academy-card-detail__copy h4 { margin: 6px 0; color: var(--academy-copy); font: 900 1.12rem/1 "Orbitron", sans-serif; }
.academy-card-detail__copy p { margin: 0; color: var(--academy-muted); font: 600 .9rem/1.35 "Rajdhani", sans-serif; }
.academy-card-detail__stats { display: flex; gap: 8px; margin-top: 10px; }
.academy-card-detail__stats b { padding: 5px 8px; border-radius: 5px; color: var(--academy-paper); background: oklch(0.13 0.025 240 / .8); font: 700 .68rem/1 "Orbitron", sans-serif; }
.academy-card-detail button { align-self: start; width: 44px; height: 44px; border: 1px solid oklch(0.67 0.07 215 / .35); border-radius: 8px; color: var(--academy-copy); background: oklch(0.16 0.03 240); cursor: pointer; }

.academy-assignment { position: relative; min-width: 0; padding: 28px 26px 26px 36px; overflow: hidden; border-radius: 11px; color: oklch(0.22 0.035 75); background: repeating-linear-gradient(to bottom, transparent 0 27px, oklch(0.56 0.055 220 / .15) 28px 29px), var(--academy-paper); box-shadow: 0 20px 40px oklch(0.04 0.02 240 / .5), inset 0 0 0 1px oklch(0.48 0.045 85 / .18); transform: rotate(-.3deg); }
.academy-assignment::before { content: ""; position: absolute; inset-block: 12px; inset-inline-start: 14px; width: 8px; opacity: .3; background: radial-gradient(circle, var(--academy-ink) 0 2px, transparent 2.5px) 0 0 / 8px 32px; }
.academy-assignment::after { content: ""; position: absolute; right: -52px; top: -52px; width: 100px; height: 100px; border: 1px solid oklch(0.32 0.04 80 / .16); border-radius: 50%; }
.academy-assignment .academy-assignment__eyebrow { color: oklch(0.43 0.1 210); }
.academy-assignment h3 { margin: 12px 0 0; font: 900 2rem/1 "Orbitron", sans-serif; }
.academy-assignment__subtitle { margin: 4px 0 18px; color: oklch(0.42 0.06 75); font: 800 1.02rem/1 "Rajdhani", sans-serif; }
.academy-grade-list { display: grid; gap: 9px; }
.academy-grade { display: grid; grid-template-columns: 38px 1fr auto; gap: 10px; align-items: center; min-height: 52px; padding: 8px 10px; border: 1px solid oklch(0.48 0.045 85 / .17); border-radius: 8px; background: oklch(0.96 0.022 88 / .46); }
.academy-grade__icon { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid currentColor; border-radius: 50%; font: 900 .7rem/1 "Orbitron", sans-serif; }
.academy-grade__copy strong { display: block; font: 900 .73rem/1 "Orbitron", sans-serif; text-transform: uppercase; }
.academy-grade__copy small { display: block; margin-top: 4px; color: oklch(0.42 0.04 75); font: 700 .79rem/1.15 "Rajdhani", sans-serif; }
.academy-grade__status { color: oklch(0.42 0.05 75); font: 900 .6rem/1 "Orbitron", sans-serif; text-transform: uppercase; }
.academy-grade.is-complete { color: oklch(0.44 0.15 132); background: oklch(0.88 0.08 132 / .35); }
.academy-grade--practical.is-complete { color: var(--academy-red); }
.academy-grade--honors.is-complete { color: oklch(0.56 0.15 83); background: oklch(0.9 0.09 88 / .42); }
.academy-reward { margin: 18px 0 14px; padding: 13px 14px; border: 2px double oklch(0.48 0.07 75 / .42); border-radius: 50% / 18%; transform: rotate(-1deg); }
.academy-reward span { display: block; color: oklch(0.46 0.055 75); font: 800 .64rem/1 "Orbitron", sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.academy-reward strong { display: block; margin-top: 6px; color: var(--academy-red); font: 900 1.08rem/1 "Orbitron", sans-serif; }
.academy-live-status { min-height: 1.3em; margin: 12px 0 0; color: oklch(0.42 0.06 75); font: 700 .8rem/1.25 "Rajdhani", sans-serif; }
.academy-stamp { position: absolute; right: 18px; top: 62px; z-index: 4; display: grid; place-items: center; min-width: 88px; min-height: 42px; padding: 7px 12px; border: 3px double currentColor; border-radius: 50%; color: var(--academy-red); font: 900 .64rem/1 "Orbitron", sans-serif; letter-spacing: .12em; text-transform: uppercase; transform: rotate(var(--stamp-angle, -5deg)); opacity: .86; }
.academy-stamp.is-landing { animation: academy-stamp-land 520ms var(--academy-ease) both; }

.academy-finale { position: fixed; z-index: 10050; inset: 0; display: grid; place-items: center; padding: 20px; }
.academy-finale__veil { position: absolute; inset: 0; background: oklch(0.055 0.02 242 / .94); }
.academy-finale__stage { position: relative; z-index: 2; width: min(620px, 100%); padding: 34px; overflow: hidden; border: 1px solid oklch(0.75 0.12 88 / .5); border-radius: 22px; color: var(--academy-copy); background: oklch(0.14 0.028 240); box-shadow: 0 0 90px oklch(0.6 0.12 88 / .2); text-align: center; animation: academy-finale-in 680ms var(--academy-ease) both; }
.academy-finale__stage > span { color: var(--academy-gold); font: 800 .68rem/1 "Orbitron", sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.academy-finale__stage h2 { margin: 12px 0 20px; color: var(--academy-paper); font: 900 clamp(1.5rem, 5vw, 2.6rem)/1 "Orbitron", sans-serif; }
.academy-finale__card { position: relative; z-index: 2; width: min(245px, 58vw); margin: 0 auto; filter: drop-shadow(0 24px 32px oklch(0.03 0.02 240 / .72)); animation: academy-binder-rise 1.1s var(--academy-ease) both; }
.academy-finale__card img { display: block; width: 100%; border-radius: 16px; }
.academy-finale__stage p { max-width: 48ch; margin: 20px auto; color: var(--academy-muted); font: 600 .98rem/1.4 "Rajdhani", sans-serif; }
.academy-finale__stage > div:last-child { position: relative; z-index: 3; display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }
.academy-finale button { min-height: 46px; padding: 0 18px; border: 1px solid var(--academy-cyan); border-radius: 8px; color: var(--academy-ink); background: var(--academy-cyan); font: 800 .72rem/1 "Orbitron", sans-serif; cursor: pointer; }
.academy-finale button + button { color: var(--academy-copy); border-color: oklch(0.68 0.06 215 / .42); background: var(--academy-metal); }
.academy-finale__rings { position: absolute; inset: 0; pointer-events: none; }
.academy-finale__rings i { position: absolute; left: 50%; top: 53%; width: 340px; height: 340px; margin: -170px; border: 1px solid oklch(0.8 0.13 88 / .2); border-radius: 50%; animation: academy-ring 3.2s ease-in-out infinite; }
.academy-finale__rings i:nth-child(2) { transform: scale(.86); animation-delay: -.2s; }.academy-finale__rings i:nth-child(3) { transform: scale(.72); animation-delay: -.4s; }.academy-finale__rings i:nth-child(4) { transform: scale(.58); animation-delay: -.6s; }.academy-finale__rings i:nth-child(5) { transform: scale(.44); animation-delay: -.8s; }.academy-finale__rings i:nth-child(6) { transform: scale(.3); animation-delay: -1s; }.academy-finale__rings i:nth-child(7) { transform: scale(.16); animation-delay: -1.2s; }

.academy-menu-signal { position: absolute; z-index: 4; top: -10px; right: -12px; display: flex; align-items: center; gap: 5px; min-height: 24px; padding: 0 8px; border: 1px solid oklch(0.78 0.13 208 / .58); border-radius: 99px; color: oklch(0.93 0.03 210); background: oklch(0.16 0.04 238 / .96); box-shadow: 0 0 18px oklch(0.62 0.13 208 / .22); font: 800 .5rem/1 "Orbitron", sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.academy-menu-signal i { width: 6px; height: 6px; border-radius: 50%; background: var(--academy-soul, oklch(0.83 0.18 132)); box-shadow: 0 0 8px currentColor; }
.academy-menu-signal[hidden] { display: none; }

#screen-menu .mi-mode-card--academy { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; min-height: 104px; padding: 14px 18px; overflow: hidden; border-color: oklch(0.76 0.12 208 / .56); background: linear-gradient(105deg, oklch(0.2 0.04 239 / .98), oklch(0.28 0.055 225 / .93)); text-align: left; }
#screen-menu .mi-mode-card--academy[hidden] { display: none; }
.mi-academy-assignment__seal { position: relative; display: grid; place-items: center; width: 68px; height: 68px; border: 1px solid oklch(0.82 0.13 208 / .62); border-radius: 50%; color: oklch(0.86 0.12 208); font: 900 .72rem/1 "Orbitron", sans-serif; box-shadow: inset 0 0 18px oklch(0.6 0.13 208 / .13); }
.mi-academy-assignment__seal::before, .mi-academy-assignment__seal::after { content: ""; position: absolute; inset: 7px; border: 1px dashed currentColor; border-radius: 50%; opacity: .5; }
.mi-academy-assignment__seal::after { inset: 21px; border-style: solid; }
.mi-academy-assignment__seal i { position: absolute; top: -2px; width: 7px; height: 7px; border-radius: 50%; background: oklch(0.83 0.18 132); box-shadow: 0 0 9px currentColor; }
.mi-academy-assignment__seal b { position: relative; z-index: 2; }
.mi-academy-assignment__copy { min-width: 0; }
.mi-academy-assignment__copy > small { display: block; margin-bottom: 6px; color: oklch(0.78 0.13 208); font: 800 .52rem/1 "Orbitron", sans-serif; letter-spacing: .13em; text-transform: uppercase; }
#screen-menu .mi-mode-card--academy .mi-mode-card__name { display: block; font-size: 1.02rem; }
#screen-menu .mi-mode-card--academy .mi-mode-card__desc { display: block; margin-top: 5px; }
.mi-academy-assignment__status { justify-self: end; padding: 8px 10px; border: 1px solid oklch(0.75 0.09 211 / .34); border-radius: 6px; color: oklch(0.91 0.04 210); background: oklch(0.12 0.025 240 / .66); font: 700 .58rem/1 "Orbitron", sans-serif; letter-spacing: .08em; white-space: nowrap; }

.academy-pigment { position: fixed; z-index: 10060; left: var(--origin-x); top: var(--origin-y); width: 6px; height: 3px; border-radius: 50%; pointer-events: none; background: var(--pigment, var(--academy-red)); animation: academy-pigment 820ms var(--academy-ease) var(--delay, 0ms) both; }

body.academy-match #screen-board {
  --academy-board-cyan: oklch(0.79 0.135 208);
  --academy-board-paper: oklch(0.9 0.04 87);
  background-color: oklch(0.085 0.018 240);
}
body.academy-match #screen-board .board-atm-grid { opacity: .42; filter: hue-rotate(32deg) saturate(.68); }
body.academy-match #screen-board .board-atm-vignette { box-shadow: inset 0 0 160px oklch(0.035 0.014 240 / .84); }
body.academy-match #screen-board .board-top-bar {
  border-color: oklch(0.7 0.08 211 / .3);
  background: linear-gradient(90deg, oklch(0.12 0.026 240 / .97), oklch(0.21 0.038 226 / .94), oklch(0.12 0.026 240 / .97));
  box-shadow: 0 12px 38px oklch(0.025 0.014 240 / .52), inset 0 -1px oklch(0.76 0.1 210 / .14);
}
.academy-match-status {
  position: relative;
  z-index: 22;
  align-self: center;
  flex-shrink: 0;
  margin: 5px auto 1px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  width: min(520px, calc(100% - 16px));
  min-height: 40px;
  padding: 5px 9px;
  border: 1px solid oklch(0.72 0.09 211 / .34);
  border-radius: 7px;
  color: oklch(0.91 0.03 215);
  background: oklch(0.125 0.026 239 / .96);
  box-shadow: 0 10px 26px oklch(0.03 0.015 240 / .48), inset 0 1px oklch(0.9 0.03 210 / .06);
  pointer-events: none;
  animation: academy-hud-arrive 520ms var(--academy-ease, cubic-bezier(.16,1,.3,1)) both;
}
.academy-match-status[hidden] { display: none; }
.academy-match-status__seal { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid var(--academy-board-cyan); border-radius: 50%; color: var(--academy-board-cyan); font: 900 .46rem/1 "Orbitron", sans-serif; box-shadow: inset 0 0 9px oklch(0.62 0.13 208 / .16); }
.academy-match-status__copy { min-width: 0; }
.academy-match-status__copy strong, .academy-match-status__copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.academy-match-status__copy strong { color: var(--academy-board-paper); font: 800 .5rem/1 "Orbitron", sans-serif; letter-spacing: .1em; }
.academy-match-status__copy small { margin-top: 4px; color: oklch(0.7 0.035 220); font: 700 .48rem/1 "Rajdhani", sans-serif; }
.academy-match-status > b { padding: 5px 6px; border: 1px solid oklch(0.65 0.07 213 / .25); border-radius: 4px; color: var(--academy-board-cyan); font: 800 .4rem/1 "Orbitron", sans-serif; letter-spacing: .08em; }

@keyframes academy-scan { 0%, 10% { transform: translateY(0); opacity: 0; } 18% { opacity: .46; } 58% { opacity: .18; } 72%, 100% { transform: translateY(900px); opacity: 0; } }
@keyframes academy-signal { 0%, 100% { opacity: .35; transform: scaleY(.82); } 50% { opacity: 1; transform: scaleY(1); } }
@keyframes academy-live { 50% { opacity: .48; box-shadow: 0 0 4px var(--academy-soul); } }
@keyframes academy-seal-turn { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes academy-float-left { 0%,100% { transform: translate(-112%, -48%) rotate(-10deg); } 50% { transform: translate(-112%, calc(-48% - 6px)) rotate(-9.4deg); } }
@keyframes academy-float-mid { 0%,100% { transform: translate(-50%, -54%) rotate(-1deg); } 50% { transform: translate(-50%, calc(-54% - 8px)) rotate(-.4deg); } }
@keyframes academy-float-right { 0%,100% { transform: translate(12%, -48%) rotate(9deg); } 50% { transform: translate(12%, calc(-48% - 5px)) rotate(8.2deg); } }
@keyframes academy-reveal { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes academy-stamp-land { 0% { opacity: 0; transform: scale(1.65) rotate(var(--stamp-angle, -5deg)); } 65% { opacity: 1; transform: scale(.96) rotate(var(--stamp-angle, -5deg)); } 100% { opacity: .86; transform: scale(1) rotate(var(--stamp-angle, -5deg)); } }
@keyframes academy-finale-in { from { opacity: 0; transform: translateY(24px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes academy-binder-rise { from { opacity: 0; transform: translateY(70px) rotate(-5deg) scale(.82); } to { opacity: 1; transform: none; } }
@keyframes academy-ring { 50% { opacity: .35; filter: drop-shadow(0 0 8px var(--academy-gold)); } }
@keyframes academy-pigment { from { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(0); } to { opacity: 0; transform: translate(calc(-50% + var(--x)), calc(-50% + var(--y))) scale(.2) rotate(var(--r)); } }
@keyframes academy-hud-arrive { from { opacity: 0; transform: translateY(-8px) scale(.98); } to { opacity: 1; transform: none; } }

@media (max-width: 1100px) {
  .academy-hero { grid-template-columns: minmax(0, 1fr) minmax(330px, .8fr); }
  .academy-workbench { grid-template-columns: 1fr; }
  .academy-assignment { transform: none; }
}

@media (max-width: 820px) {
  .academy-status-strip { grid-template-columns: 1fr auto; }
  .academy-status-strip > strong { display: none; }
  .academy-hero { display: flex; flex-direction: column; padding: 24px 18px; }
  .academy-card-stage { order: 1; width: 100%; min-height: 330px; }
  .academy-hero__copy { order: 2; width: 100%; }
  .academy-hero h2 { font-size: clamp(2.7rem, 12vw, 4.5rem); }
  .academy-schedule { display: flex; padding-inline-end: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .academy-day { flex: 0 0 118px; scroll-snap-align: center; }
  .academy-deck__cards { display: flex; overflow-x: auto; gap: 9px; padding-bottom: 8px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .academy-deck-card { flex: 0 0 106px; scroll-snap-align: start; }
}

@media (max-width: 540px) {
  .soul-academy { width: calc(100% - 12px); margin-top: 48px; border-radius: 20px; }
  .soul-academy::after { inset: 6px; border-radius: 15px; }
  .academy-status-strip { min-height: 55px; padding: 8px 14px; }
  .academy-status-strip > span { font-size: .63rem; }
  .academy-status-strip > time { font-size: .59rem; text-align: right; }
  .academy-card-stage { min-height: 290px; overflow: clip; }
  .academy-featured { width: min(142px, 32vw); }
  .academy-seal { width: 260px; }
  .academy-hero__actions, .academy-assignment__actions { display: grid; grid-template-columns: 1fr; }
  .academy-button, .academy-assignment__actions button { width: 100%; }
  .academy-workbench { padding: 8px 10px 24px; }
  .academy-deck { padding: 18px 14px; }
  .academy-deck h3 { font-size: 1.2rem; }
  .academy-assignment { padding: 25px 16px 22px 29px; }
  .academy-card-detail { grid-template-columns: 78px 1fr; }
  .academy-card-detail img { width: 78px; }
  .academy-card-detail > button { position: absolute; right: 8px; top: 8px; }
  .academy-finale__stage { padding: 28px 16px; }
  #screen-menu .mi-mode-card--academy { grid-template-columns: auto 1fr; }
  .mi-academy-assignment__status { grid-column: 1 / -1; justify-self: stretch; text-align: center; }
  .academy-menu-signal { right: -3px; }
  .academy-match-status { width: calc(100% - 12px); min-height: 26px; padding: 3px 6px; gap: 7px; }
  .academy-match-status__seal { width: 18px; height: 18px; font-size: .35rem; }
  .academy-match-status__copy strong { font-size: .48rem; }
  .academy-match-status__copy small, .academy-match-status > b { display: none; }
}

@media (max-height: 720px) and (min-width: 821px) {
  .academy-hero { min-height: 340px; padding-block: 30px 18px; }
  .academy-card-stage { min-height: 310px; }
  .academy-seal { width: 280px; }
}

@media (prefers-reduced-motion: reduce) {
  .academy-match-status, .academy-pigment { animation: none !important; }
  .soul-academy *, .soul-academy *::before, .soul-academy *::after, .academy-finale *, .academy-menu-signal, .mi-mode-card--academy { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

html[data-perf-motion="off"] .soul-academy *,
html[data-perf-motion="off"] .academy-finale * { animation: none !important; transition: none !important; }
html[data-perf-motion="reduced"] .academy-featured,
html[data-perf-motion="reduced"] .academy-seal,
html[data-perf-background="off"] .academy-scan,
html[data-perf-background="off"] .academy-signal,
html[data-perf-particles="off"] .academy-pigment { animation: none !important; }
html[dir="rtl"] .academy-day { text-align: right; }
html[dir="rtl"] .academy-day__honors, html[dir="rtl"] .academy-day__lock { right: auto; left: 9px; }
html[dir="rtl"] .academy-stamp { right: auto; left: 18px; }
