/* Dedicated Academy route: reuse the established homepage promo components without changing the global site navigation. */
.academy-route-nav{border-bottom:1px solid rgba(183,174,248,.15);background:rgba(10,9,18,.78)}
.academy-route-nav-inner{display:flex;align-items:center;gap:clamp(14px,3vw,36px);min-height:68px}
.academy-route-brand{display:flex;align-items:center;gap:10px;color:var(--color-text);font-weight:700;text-decoration:none;white-space:nowrap}
.academy-route-brand span{color:var(--color-gold);font-size:20px}
.academy-route-nav nav{display:flex;align-items:center;gap:clamp(14px,2.5vw,28px);margin-left:auto}
.academy-route-nav nav a,.academy-site-return,.academy-route-footer a{color:var(--color-muted);font-size:var(--fs-small);text-decoration:none;white-space:nowrap}
.academy-route-nav nav a:hover,.academy-site-return:hover,.academy-route-footer a:hover{color:var(--color-text)}
.academy-site-return{padding:8px 11px;border:1px solid rgba(167,155,255,.22);border-radius:10px}
.academy-route-nav a:focus-visible,.academy-route-footer a:focus-visible{outline:2px solid var(--color-gold);outline-offset:4px}
.academy-page{min-height:calc(100svh - 110px)}
.academy-page .academy-section{padding-block:clamp(24px,4vw,48px)}
.academy-page .academy-progressive-image{opacity:.94;transition:opacity 360ms ease}
.academy-page .academy-progressive-image.is-full-res{opacity:1}
@media(prefers-reduced-motion:reduce){.academy-page .academy-progressive-image{transition:none}}
.academy-page-showcase{--academy-panel-min-height:0}
.academy-page .academy-stage{min-height:0;overflow:visible}
.academy-page .academy-track{display:grid;grid-template-columns:minmax(0,1fr);width:100%;min-height:0;gap:20px;transform:none;will-change:auto}
.academy-page .academy-module{width:100%;min-height:0;margin:0;opacity:1;filter:none;transform:none;pointer-events:auto}
.academy-page .academy-overview{grid-column:1;min-height:0}
.academy-page .academy-overview-choices a{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;min-height:54px;padding:0 15px;border:1px solid rgba(167,155,255,.2);border-radius:13px;background:rgba(255,255,255,.035);color:var(--color-text);text-decoration:none}
.academy-page .academy-overview-choices a:hover{border-color:rgba(217,180,92,.5);background:rgba(167,155,255,.09)}
.academy-page .academy-darkbid-layout,.academy-page .academy-training .training-game-panel{min-height:0}
.academy-page .academy-theater{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);min-height:0}
.academy-route-footer{display:flex;justify-content:space-between;gap:16px;padding:20px max(24px,calc((100% - 1160px)/2)) 28px;border-top:1px solid rgba(183,174,248,.15);color:var(--color-muted);font-size:var(--fs-small)}
.academy-route-footer a{color:var(--color-muted)}
@media(max-width:820px){.academy-route-nav-inner{min-height:62px;gap:12px}.academy-route-brand{font-size:var(--fs-small)}.academy-route-nav nav{gap:12px}.academy-route-nav nav a,.academy-site-return{font-size:var(--fs-tiny)}.academy-page .academy-track{gap:14px}.academy-page .academy-theater{grid-template-columns:1fr;gap:18px}}
@media(max-width:520px){.academy-route-nav-inner{flex-wrap:wrap;justify-content:space-between;padding-block:10px}.academy-route-brand{font-size:13px}.academy-route-nav nav{order:3;justify-content:space-between;width:100%;margin:0;padding-top:9px;border-top:1px solid rgba(183,174,248,.1)}.academy-site-return{padding:7px 8px}.academy-page .academy-section{padding-block:16px}.academy-page .academy-track{gap:12px}.academy-route-footer{padding-inline:16px}}


/* Training preparation route */
.academy-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:0 max(20px,calc((100% - 1160px)/2));border-bottom:1px solid rgba(183,174,248,.15);background:rgba(10,9,18,.78)}
.academy-brand{display:flex;align-items:center;gap:10px;color:var(--color-text);font-weight:700;text-decoration:none;white-space:nowrap}
.academy-brand span{color:var(--color-gold);font-size:20px}
.site-return,.entry-back,body>footer a{color:var(--color-muted);font-size:var(--fs-small);text-decoration:none;white-space:nowrap}
.site-return{padding:8px 11px;border:1px solid rgba(167,155,255,.22);border-radius:10px}
.entry-page{display:grid;min-height:calc(100svh - 130px);place-items:center;padding:clamp(24px,6vw,72px) 20px}
.entry-card{width:min(100%,720px);padding:clamp(24px,5vw,48px);border:1px solid rgba(167,155,255,.22);border-radius:24px;background:radial-gradient(ellipse at 100% 0,rgba(167,155,255,.11),transparent 45%),linear-gradient(145deg,rgba(19,17,31,.98),rgba(11,10,19,.98));box-shadow:var(--shadow-2)}
.entry-card .eyebrow{margin:0 0 14px;color:var(--color-gold);font-size:var(--fs-small);letter-spacing:.16em}
.entry-card h1{margin:0 0 14px;color:var(--color-text);font-size:clamp(1.8rem,4vw,2.6rem)}
.entry-card>p:not(.eyebrow){max-width:60ch;color:var(--color-muted);line-height:1.8}
.entry-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:26px}
.project-cta{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 20px;border-radius:12px;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-strong));color:#100d20;font-weight:700;text-decoration:none}
.entry-back{padding:10px 4px}
body>footer{display:flex;justify-content:space-between;gap:16px;padding:18px max(20px,calc((100% - 1160px)/2)) 24px;border-top:1px solid rgba(183,174,248,.15);color:var(--color-muted);font-size:var(--fs-small)}
.site-return:hover,.entry-back:hover,body>footer a:hover{color:var(--color-text)}
.academy-nav a:focus-visible,.entry-actions a:focus-visible,body>footer a:focus-visible{outline:2px solid var(--color-gold);outline-offset:4px}
@media(max-width:520px){.academy-nav{min-height:62px;padding-inline:16px}.academy-brand{font-size:var(--fs-small)}.entry-page{min-height:calc(100svh - 124px);padding:20px 16px}.entry-card{border-radius:19px}.entry-actions{align-items:stretch;flex-direction:column}.project-cta{justify-content:center}body>footer{padding-inline:16px}}


/* Keep the expandable Dark Bid rules below the complete promo layout. */
.academy-page .academy-darkbid-info{padding:0 clamp(16px,4.8vw,58px) clamp(16px,4.8vw,58px)}
.academy-page .academy-darkbid-info .darkbid-pocket{width:100%;margin:0}
@media(max-width:900px){.academy-page .academy-darkbid-info{padding:0 25px 25px}}
@media(max-width:640px){.academy-page .academy-darkbid-info{padding:0 16px 18px}}


/* Theater promo: preserve the user-provided horizontal artwork and bound height on short screens. */
.academy-page #darkbid,.academy-page #training,.academy-page #theater{scroll-margin-top:18px}
.academy-page .academy-theater{min-width:0}
.academy-page .academy-theater-copy,.academy-page .academy-theater-poster{min-width:0}
.academy-page .academy-theater-poster{width:100%;background:#0b0913}
.academy-page .academy-theater-poster img{display:block;width:100%;height:auto;max-height:min(72vh,560px);max-height:min(72svh,560px);aspect-ratio:1672/941;object-fit:contain;background:#0b0913}
.academy-page .academy-theater-poster>span{position:static;inset:auto;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:8px 14px;border-top:1px solid rgba(208,196,255,.16);color:var(--color-text);font-size:clamp(1rem,2.2vw,1.2rem);line-height:1.35;text-align:center;text-shadow:none;background:rgba(17,15,27,.94);backdrop-filter:blur(10px);transition:background 180ms ease}
.academy-page .academy-theater-poster:hover>span{background:rgba(42,35,67,.98)}
.academy-page .academy-theater-poster:focus-visible{outline:2px solid var(--color-gold);outline-offset:4px}
@media(max-width:820px){.academy-page .academy-theater-poster img{max-height:min(68vh,520px);max-height:min(68svh,520px)}.academy-page .academy-theater-poster>span{font-size:clamp(1rem,4vw,1.5rem)}}
@media(max-width:520px){.academy-page .academy-theater{gap:14px}.academy-page .academy-theater-poster img{max-height:min(64vh,420px);max-height:min(64svh,420px)}.academy-page .academy-theater-poster>span{min-height:46px;padding:7px 10px;font-size:1rem}}



/* 2026-10-18：学院路由下「交易训练场」板块原先由插画原始尺寸把整块撑高，
   与上方暗标板块高度不齐。这里给面板一个与暗标同量级的高度，插画在其中等比缩放；
   窄屏（≤820px）保持原来的自然堆叠，不做任何裁切。 */
@media (min-width: 821px) {
  .academy-page .academy-training .training-game-panel {
    height: clamp(480px, 34vw, 520px);
    min-height: 0;
    grid-template-rows: minmax(0, 1fr);
    overflow: hidden;
  }
  .academy-page .academy-training .training-game-copy { min-height: 0; }
  .academy-page .academy-training .training-game-copy {
    align-self: center;
    padding-block: clamp(20px, 2.4vw, 32px);
  }
  .academy-page .academy-training .training-game-art {
    height: 100%;
    min-height: 0;
    overflow: hidden;
    align-items: flex-end;
  }
  .academy-page .academy-training .training-game-mascot {
    height: 100%;
    max-height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0;
    border: 0;
    overflow: hidden;
    box-sizing: border-box;
  }
  .academy-page .academy-training .training-game-mascot img {
    display: block;
    height: 100%;
    max-height: 100%;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: bottom center;
  }
}
