:root {
  color-scheme: dark;
  --academy-bg: #060b13;
  --academy-panel: rgba(12, 18, 30, 0.88);
  --academy-line: rgba(255,255,255,.09);
  --academy-text: #f7f8fc;
  --academy-muted: #a5afc4;
  --academy-gold: #c49a52;
  --academy-gold-soft: #e7cc91;
  --academy-purple: #8a6a32;
  --academy-blue: #8d8475;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--academy-bg); }
body.academy-entry {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  color: var(--academy-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    linear-gradient(180deg, rgba(5,10,19,.68), rgba(5,9,17,.94)),
    radial-gradient(circle at 17% 26%, rgba(123, 96, 53, .24), transparent 26%),
    radial-gradient(circle at 82% 31%, rgba(170, 112, 28, .22), transparent 24%),
    linear-gradient(135deg, #09111f 0%, #070b13 44%, #090d16 100%);
}

body.academy-entry::before,
body.academy-entry::after {
  content: "";
  position: fixed;
  inset: auto 0 0;
  z-index: 0;
  pointer-events: none;
}
body.academy-entry::before {
  height: 48vh;
  opacity: .48;
  background:
    linear-gradient(90deg, transparent 0 8%, rgba(255,255,255,.025) 8% 8.3%, transparent 8.3% 17%, rgba(255,255,255,.018) 17% 17.2%, transparent 17.2%),
    linear-gradient(180deg, transparent, rgba(5,8,14,.9));
  clip-path: polygon(0 32%, 8% 28%, 15% 37%, 22% 18%, 29% 40%, 38% 26%, 46% 42%, 57% 15%, 64% 36%, 73% 24%, 82% 42%, 91% 25%, 100% 34%, 100% 100%, 0 100%);
  background-color: rgba(15,20,29,.42);
}
body.academy-entry::after {
  top: 0;
  height: 100%;
  background-image: linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.014) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.35), transparent 70%);
}

.academy-entry__ambient { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.academy-entry__glow { position: absolute; width: 36rem; height: 36rem; border-radius: 50%; filter: blur(80px); opacity: .16; }
.academy-entry__glow--gold { right: -12rem; top: 4rem; background: #c98514; }
.academy-entry__glow--violet { left: -14rem; top: 12rem; background: #7f6841; }
.academy-entry__wave { position: absolute; left: 50%; width: 70vw; height: 140px; transform: translateX(-50%); opacity: .12; background: repeating-linear-gradient(90deg, transparent 0 8px, rgba(118,147,255,.7) 8px 10px); clip-path: polygon(0 50%,4% 42%,8% 60%,12% 31%,16% 66%,20% 44%,24% 55%,28% 21%,32% 73%,36% 38%,40% 58%,44% 26%,48% 78%,52% 20%,56% 65%,60% 35%,64% 61%,68% 24%,72% 70%,76% 39%,80% 56%,84% 29%,88% 65%,92% 42%,96% 54%,100% 50%,100% 51%,0 51%); }
.academy-entry__wave--one { top: 33%; }
.academy-entry__wave--two { top: 40%; transform: translateX(-50%) scaleY(.52); opacity: .07; }

.academy-topbar,
.academy-main,
.academy-footer { position: relative; z-index: 2; }
.academy-topbar {
  width: min(1480px, calc(100% - 40px));
  margin: 0 auto;
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.academy-brand { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 13px; }
.academy-brand__mark { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: linear-gradient(145deg, #ffe166, #ffbc13); color: #111725; font-weight: 950; box-shadow: 0 12px 34px rgba(255,190,24,.25); }
.academy-brand__copy { display: grid; gap: 2px; }
.academy-brand__copy strong { font-size: 1.18rem; letter-spacing: .03em; }
.academy-brand__copy small { color: var(--academy-gold-soft); font-size: .63rem; text-transform: uppercase; letter-spacing: .13em; font-weight: 800; }
.academy-home-link { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 16px; color: #d8deeb; text-decoration: none; border: 1px solid rgba(255,201,40,.24); border-radius: 999px; background: rgba(7,12,21,.64); font-size: .84rem; font-weight: 750; transition: .18s ease; }
.academy-home-link:hover { color: #fff; border-color: rgba(255,201,40,.58); transform: translateY(-1px); }
.academy-home-link svg { width: 17px; fill: currentColor; }

.academy-main { width: min(1120px, calc(100% - 40px)); margin: 22px auto 0; }
.academy-hero { text-align: center; margin-bottom: 28px; }
.academy-emblem { width: 64px; height: 64px; margin: 0 auto 16px; padding: 2px; border-radius: 20px; background: linear-gradient(135deg,#5f4b2b,var(--academy-gold)); box-shadow: 0 0 0 8px rgba(255,255,255,.025),0 18px 54px rgba(120,92,46,.2); }
.academy-emblem span { width: 100%; height: 100%; display: grid; place-items: center; border-radius: 18px; background: #161410; color:#e7cc91; font-weight: 950; font-size: 1.55rem; }
.academy-kicker { margin: 0 0 8px; color: var(--academy-gold); text-transform: uppercase; letter-spacing: .22em; font-size: .68rem; font-weight: 900; }
.academy-hero h1 { margin: 0; font-size: clamp(2.45rem, 6vw, 4.65rem); line-height: .98; letter-spacing: -.055em; }
.academy-hero h1 span { background: linear-gradient(90deg,#e6cd95,#b99049); -webkit-background-clip: text; background-clip: text; color: transparent; }
.academy-lede { margin: 16px 0 0; color: var(--academy-muted); font-size: clamp(.98rem, 2vw, 1.18rem); font-weight: 600; }

.academy-roles { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.academy-role { position: relative; display: flex; min-height: 410px; flex-direction: column; padding: 30px; color: inherit; text-decoration: none; border: 1px solid var(--academy-line); border-radius: 28px; background: linear-gradient(145deg, rgba(255,255,255,.042), rgba(255,255,255,.012)), var(--academy-panel); box-shadow: 0 28px 80px rgba(0,0,0,.28); overflow: hidden; isolation: isolate; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.academy-role::before { content: ""; position: absolute; inset: 0; z-index: -2; opacity: .5; }
.academy-role::after { content: ""; position: absolute; width: 260px; height: 260px; right: -120px; bottom: -130px; border-radius: 50%; filter: blur(18px); z-index: -1; opacity: .22; }
.academy-role--student { border-color: rgba(180,139,70,.32); }
.academy-role--student::before { background: radial-gradient(circle at 0 100%,rgba(139,105,55,.25),transparent 48%); }
.academy-role--student::after { background: var(--academy-purple); }
.academy-role--sensei { border-color: rgba(255,201,40,.38); }
.academy-role--sensei::before { background: radial-gradient(circle at 100% 100%, rgba(158,101,10,.30), transparent 48%); }
.academy-role--sensei::after { background: var(--academy-gold); }
.academy-role:hover { transform: translateY(-6px); box-shadow: 0 34px 90px rgba(0,0,0,.4); }
.academy-role--student:hover { border-color: rgba(201,158,84,.68); }
.academy-role--sensei:hover { border-color: rgba(255,201,40,.72); }
.academy-role__icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 18px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.08); }
.academy-role--student .academy-role__icon { color:#e1c17f;box-shadow:inset 0 0 25px rgba(184,141,67,.12); }
.academy-role--sensei .academy-role__icon { color: var(--academy-gold-soft); box-shadow: inset 0 0 25px rgba(255,201,40,.10); }
.academy-role__icon svg { width: 31px; fill: currentColor; }
.academy-role__content { margin-top: 24px; }
.academy-role__eyebrow { margin: 0 0 7px; color: var(--academy-muted); text-transform: uppercase; letter-spacing: .16em; font-size: .64rem; font-weight: 900; }
.academy-role h2 { margin: 0 0 12px; font-size: clamp(1.55rem, 3vw, 2rem); letter-spacing: -.03em; }
.academy-role__content > p:not(.academy-role__eyebrow) { margin: 0; max-width: 34rem; color: #b6bfd0; line-height: 1.62; font-weight: 550; }
.academy-role ul { list-style: none; padding: 0; margin: 22px 0 26px; display: grid; gap: 10px; color: #d7ddeb; font-size: .88rem; font-weight: 650; }
.academy-role li { display: flex; align-items: center; gap: 10px; }
.academy-role li span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; background: rgba(255,255,255,.055); font-size: .78rem; }
.academy-role__action { margin-top: auto; min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 9px; padding: 0 18px; border-radius: 15px; font-weight: 850; border: 1px solid rgba(255,255,255,.12); }
.academy-role--student .academy-role__action { color:#f3e4c4;background:linear-gradient(180deg,rgba(149,112,56,.34),rgba(91,67,31,.28));border-color:rgba(196,154,82,.45);box-shadow:0 12px 34px rgba(70,51,24,.2); }
.academy-role--sensei .academy-role__action { color: #fff1a7; background: linear-gradient(180deg, rgba(195,139,10,.32), rgba(125,78,2,.26)); border-color: rgba(255,201,40,.48); box-shadow: 0 12px 34px rgba(168,111,0,.18); }
.academy-role__action b { font-size: 1.12rem; }

.academy-values { margin-top: 24px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; padding: 1px; border: 1px solid var(--academy-line); border-radius: 20px; background: rgba(255,255,255,.035); overflow: hidden; }
.academy-values article { min-height: 92px; display: flex; align-items: center; gap: 13px; padding: 18px; background: rgba(8,14,24,.82); }
.academy-values article > span { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,201,40,.1); color: var(--academy-gold); font-size: 1.05rem; }
.academy-values article:nth-child(2) > span,.academy-values article:nth-child(3) > span,.academy-values article:nth-child(4) > span { color:#d7b873;background:rgba(190,148,74,.1); }
.academy-values div { display: grid; gap: 4px; }
.academy-values strong { font-size: .86rem; }
.academy-values small { color: var(--academy-muted); line-height: 1.4; }

.academy-footer { width: min(1120px, calc(100% - 40px)); margin: 22px auto 0; padding: 0 0 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #667087; font-size: .74rem; }
.academy-footer__motto { color: #9b8550; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 840px) {
  .academy-main { margin-top: 8px; }
  .academy-roles { grid-template-columns: 1fr; }
  .academy-role { min-height: 0; }
  .academy-values { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 560px) {
  .academy-topbar,
  .academy-main,
  .academy-footer { width: min(100% - 24px, 1120px); }
  .academy-topbar { min-height: 70px; }
  .academy-brand__copy small { display: none; }
  .academy-home-link { width: 42px; padding: 0; justify-content: center; font-size: 0; }
  .academy-home-link svg { width: 18px; }
  .academy-main { margin-top: 12px; }
  .academy-emblem { width: 60px; height: 60px; border-radius: 19px; }
  .academy-emblem span { border-radius: 17px; }
  .academy-hero { margin-bottom: 22px; }
  .academy-hero h1 { font-size: clamp(2.2rem, 13vw, 3.1rem); }
  .academy-role { padding: 23px; border-radius: 22px; }
  .academy-role ul { margin-bottom: 22px; }
  .academy-values { grid-template-columns: 1fr; }
  .academy-values article { min-height: 78px; }
  .academy-footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .academy-role,
  .academy-home-link { transition: none; }
}
.academy-brand__mark--school{flex:0 0 44px;overflow:hidden;background:#fff!important}.academy-brand__mark--school img{display:block;width:44px!important;height:44px!important;max-width:44px!important;object-fit:contain}.academy-brand__copy strong{font-size:.88rem}.academy-brand__copy small{font-size:.52rem}

/* The public entrance starts sunlit; authenticated pages may still remember a chosen dark mode. */
:root{
  color-scheme:light;
  --academy-bg:#fffaf2;--academy-panel:rgba(255,253,249,.94);--academy-line:#eadfce;
  --academy-text:#21162c;--academy-muted:#746b78;--academy-gold:#9a6a20;
  --academy-gold-soft:#8a642c;--academy-purple:#8a6a32;--academy-blue:#746b78;
}
html{background:var(--academy-bg)}
body.academy-entry{
  background:radial-gradient(circle at 16% 24%,rgba(201,155,69,.14),transparent 28%),radial-gradient(circle at 85% 28%,rgba(148,102,31,.12),transparent 27%),linear-gradient(135deg,#fffdf9,#f8efe2);
}
body.academy-entry::before{opacity:.11;background-color:rgba(120,88,43,.14)}
body.academy-entry::after{opacity:.16;background-image:linear-gradient(rgba(90,62,30,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(90,62,30,.06) 1px,transparent 1px)}
.academy-home-link{color:#5f5363;background:rgba(255,253,249,.82);border-color:#dfc897}
.academy-home-link:hover{color:#21162c}
.academy-emblem span{background:#1b1712;color:#e7cc91}
.academy-role{background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(250,241,228,.9));box-shadow:0 24px 65px rgba(65,43,21,.11)}
.academy-role:hover{box-shadow:0 30px 72px rgba(65,43,21,.16)}
.academy-role__content>p:not(.academy-role__eyebrow),.academy-role ul{color:#625969}
.academy-role__icon,.academy-role li span{background:#f2e7d5;border-color:#e7d8c1}
.academy-role--student .academy-role__action,.academy-role--sensei .academy-role__action{color:#fff;background:linear-gradient(135deg,#76501c,#bd9146);border-color:#b88c45}
.academy-values{background:#eadfce}
.academy-values article{background:#fffdf9}
.academy-footer{color:#746b78}
