/* Academy-only layout corrections. Studio crop/spacing variables remain authoritative. */
.academy-intro h2,.academy-intro h3 {word-break:keep-all;overflow-wrap:break-word;text-wrap:balance}
.academy-intro p {word-break:keep-all;overflow-wrap:break-word}
.academy-intro .academy-motion {opacity:1;transform:none;transition:none}
.academy-feature-copy {
  padding:clamp(20px,3vw,36px);
  background:linear-gradient(120deg,#071321f0,#09192bdf);
  border:1px solid #93b9dc24;border-radius:4px;
}
.academy-feature-copy .academy-index {color:#9fbddd;font-size:32px;line-height:1}
.academy-feature-copy p {color:#e4edf7;line-height:1.85}
.academy-opening h2,.academy-roster h2 {text-shadow:0 2px 18px #000}
.academy-opening>p,.academy-opening .container>p,.academy-roster-lead {
  color:#e5edf8;text-shadow:0 1px 6px #000,0 2px 18px #000;
}
.academy-path-grid>article {background:#081726ec}
.academy-path-grid>article p {color:#dce7f4}
.academy-invitation>.container {
  height:auto;min-height:0;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  gap:clamp(24px,4vw,64px);align-items:center;padding-block:0;
}
.academy-invitation img {
  display:block;position:relative;width:100%;max-width:100%;height:auto;
  aspect-ratio:4/3;object-fit:contain;object-position:center top;margin:0;order:0;
}
.academy-invitation .container>div {
  min-width:0;padding:26px;margin-block:24px;background:#071422e6;border:1px solid #9ebcdc26;
}
.academy-invitation h2 {font-size:clamp(23px,2.5vw,34px);line-height:1.5}
.academy-invitation p {font-size:15px;line-height:1.85;color:#dce7f4}
.academy-intro .button,.academy-measure .button {max-width:100%;white-space:normal;text-align:center}
.academy-intro a:focus-visible,.academy-intro button:focus-visible {outline:3px solid #d7efff;outline-offset:4px}
.measure-portrait[data-expression=smile],.measure-portrait[data-expression=laugh] {object-position:57% top!important}
.measure-close {flex:none;min-width:44px;min-height:44px}
.measure-result textarea {font-size:16px}
.measure-result-actions button {min-height:44px}
.measure-description {color:#d8e5f4}
.measure-hint {font-size:12px;color:#bfd0e4}

@media (min-width:801px) {
  .academy-cover-copy {width:49%}
  .academy-cover-character {width:53%}
  .academy-cover-copy>p {background:#071321d9;padding:16px 20px;border-radius:4px}
  .academy-measure .measure-portrait-frame {width:46%}
  .academy-measure .measure-portrait {object-fit:cover!important;object-position:center top!important}
}

@media (max-width:800px) {
  .academy-cover {
    display:flex;flex-direction:column;height:auto;min-height:0;max-height:none;overflow:hidden;
    background:#081326;padding:0;
  }
  .academy-cover::after {background:linear-gradient(transparent 15%,#081326 55%);pointer-events:none}
  .academy-cover-character {
    position:relative;inset:auto;order:0;width:100%;height:clamp(290px,78vw,450px);
    flex:none;z-index:1;mask-image:linear-gradient(#000 88%,transparent);-webkit-mask-image:linear-gradient(#000 88%,transparent);
  }
  .academy-cover-character img {width:100%;height:100%;object-fit:cover}
  .academy-cover .academy-cover-grid {
    position:relative;order:1;height:auto;min-height:0;align-items:initial;padding:0 0 38px;
  }
  .academy-cover-copy {width:100%;max-width:540px;margin:0 auto;padding:0;text-align:center}
  .academy-cover .work-back {
    position:absolute;top:calc(-1 * clamp(290px,78vw,450px) + 14px);left:0;
    width:auto;padding:9px 13px;min-height:40px;background:#071320dc;border-radius:4px;
    z-index:4;font-size:12px;
  }
  .academy-cover .academy-logo {width:min(85%,340px);max-height:210px;object-fit:contain;margin:0 auto}
  .academy-cover-copy>p {font-size:15px;line-height:1.85;margin:4px auto 20px;color:#e9f0fa;max-width:32em}
  .academy-cover .academy-actions {gap:10px}
  .academy-intro .academy-actions .button {min-height:48px;font-size:14px;padding:16px 22px}
  .academy-intro .container {width:calc(100% - 36px)}
  .academy-opening {padding-block:45px}
  .academy-opening h2 {font-size:clamp(25px,6vw,36px);line-height:1.5}
  .academy-opening p {font-size:15px;line-height:1.9}
  .academy-feature,.academy-feature:nth-child(even) {gap:18px}
  .academy-feature-copy {padding:22px}
  .academy-feature-copy h2 {font-size:25px;line-height:1.5}
  .academy-feature-copy p {font-size:15px}
  .academy-feature .work-image-slot {aspect-ratio:4/3}
  .academy-path-grid>article {padding:24px}
  .academy-path-grid>article p {font-size:14px;line-height:1.85}
  .academy-invitation>.container {grid-template-columns:1fr;padding-block:0 36px;gap:0}
  .academy-invitation img {width:100%;max-width:580px;height:auto;aspect-ratio:4/3;margin:0 auto;order:0}
  .academy-invitation .container>div {padding:24px;text-align:center;order:1}
  .academy-invitation h2 {font-size:26px}
  .academy-invitation p {font-size:15px}
  .academy-invitation .button {min-height:48px;font-size:14px;padding:16px 25px}
  .academy-last-result {margin-inline:auto}
  .academy-cast-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
  .academy-continuity .container {padding:24px}
  .academy-continuity p {font-size:15px;line-height:1.85}

  /* Mobile visual-novel scene: dialogue overlaps the portrait; reels open separately. */
  .academy-measure {width:calc(100vw - 16px);max-height:96svh;scroll-padding-block:80px 100px}
  .academy-measure .measure-room {padding:0;min-height:0;display:grid;grid-template-columns:minmax(0,1fr)}
  .academy-measure .measure-heading {
    grid-area:1/1;position:relative;z-index:12;background:#0a1729f5;padding:10px 14px 6px;
  }
  .academy-measure .measure-heading h2 {font-size:17px}
  .academy-measure .measure-steps {grid-area:2/1;padding:6px 14px 8px;margin:0;gap:6px;font-size:11px}
  .academy-measure .measure-steps li {padding:7px 9px}
  .academy-measure .measure-stage {
    grid-area:3/1;height:clamp(330px,calc(96svh - 200px),580px);display:block;overflow:hidden;
  }
  .academy-measure .measure-office-hotspot {position:absolute;inset:0;width:100%;height:100%}
  .academy-measure .measure-portrait-frame {
    position:absolute;inset:0 auto 0 0;width:82%;height:100%;
    mask-image:none;-webkit-mask-image:none;overflow:hidden;
  }
  .academy-measure .measure-portrait {inset:0 auto auto 0;width:121.95122%!important;height:100%;max-width:none;object-fit:cover!important;object-position:center top!important}
  .academy-measure .measure-instrument {
    position:absolute;inset:auto 2% 175px auto;width:37%;max-width:185px;margin:0;z-index:2;
  }
  .academy-measure .measure-explore-hint {top:9px;bottom:auto;right:10px;left:auto;font-size:9px;background:#071321c9;padding:4px 7px}
  .academy-measure .measure-stage>.measure-readout {display:none}
  .academy-measure .measure-label {font-size:11px;letter-spacing:.05em;color:#b6cee9}
  .academy-measure .measure-value {font-size:26px;min-height:35px;margin:4px 0}
  .academy-measure .measure-description {font-size:13px;line-height:1.65;min-height:0;margin:6px 0 0}
  .academy-measure .measure-reel {height:126px}
  .academy-measure .measure-reel-row {height:42px;font-size:21px}
  .academy-measure .measure-dialogue {grid-area:3/1;align-self:end;z-index:5;margin:0 5px 8px;min-height:180px;padding:48px 22px 25px}
  .academy-measure .measure-dialogue>b {left:6%;top:1.5%;width:29%;font-size:14px;gap:5px}
  .academy-measure .measure-dialogue>b small {font-size:10px;padding-left:0}
  .academy-measure .measure-line {font-size:14px;line-height:1.75;min-height:84px;padding-right:0}
  .academy-measure .measure-type-hint {display:none}
  .academy-measure .measure-controls {
    grid-area:4/1;position:relative;z-index:10;background:linear-gradient(#0a1728ee,#0a1728);
    margin:0;padding:5px 18px max(8px,env(safe-area-inset-bottom));border-top:1px solid #819eb233;
  }
  .academy-measure .measure-action {min-height:48px;min-width:0;width:100%;max-width:410px}
  .academy-measure .measure-hint {display:none}
  .academy-measure .measure-result {grid-area:5/1;margin:14px 10px 12px;padding:20px 16px}
  .academy-measure .measure-result-actions {display:grid;grid-template-columns:1fr}
  .measure-mobile-sheet {color:#f1f5ff;box-sizing:border-box;width:calc(100vw - 28px);max-width:440px;max-height:calc(100svh - 32px);padding:20px;border:1px solid #89b6d5;border-radius:16px;background:linear-gradient(150deg,#142b40,#091524 65%);box-shadow:0 22px 90px #000a;overflow:auto}
  .measure-mobile-sheet::backdrop {background:#020914b8}
  .measure-mobile-sheet>header {display:flex;align-items:center;justify-content:space-between;gap:10px}
  .measure-mobile-sheet>header small {font-size:9px;letter-spacing:.12em;color:#9dbacf}
  .measure-mobile-sheet h3 {font-size:21px;margin:5px 0 0;color:#f2f8ff}
  .measure-sheet-close {flex:none;min-width:44px;height:44px;border:1px solid #91abc05c;border-radius:50%;background:#081322;color:#fff;font-size:25px;cursor:pointer}
  .academy-measure .measure-mobile-sheet .measure-readout {position:relative;inset:auto;width:100%;box-sizing:border-box;margin:22px 0;padding:20px 10px;background:#061322;border:1px solid #8ba9c350;border-left:2px solid var(--affinity);border-radius:8px;box-shadow:inset 0 0 28px #72bded0b;min-width:0;text-align:center}
  .academy-measure .measure-mobile-sheet .measure-reel {height:168px;margin:12px 0}
  .academy-measure .measure-mobile-sheet .measure-reel-row {height:56px;font-size:24px}
  .academy-measure .measure-mobile-sheet .measure-reel-row img {width:38px;height:38px}
  .academy-measure .measure-mobile-sheet .measure-description {font-size:14px;min-height:46px;line-height:1.65}
  .academy-measure .measure-sheet-action {width:100%;font-size:15px;min-height:52px;padding:16px}
  .measure-sheet-note {font-size:11px;color:#b4c7d8;text-align:center;line-height:1.7;margin:12px 0 0}
  .measure-mobile-sheet[open] {animation:measure-sheet-enter .2s ease-out}
  @keyframes measure-sheet-enter {from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
}
@media (max-width:450px) {
  .academy-cast-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .academy-intro .container {width:calc(100% - 28px)}
  .academy-cover .academy-actions {display:grid;grid-template-columns:1fr}
  .academy-feature-copy {padding:20px}
  .academy-feature-copy h2 {font-size:23px}
  .academy-invitation h2 {font-size:24px}
  .academy-measure .measure-dialogue>b {font-size:12px;gap:4px}
  .academy-measure .measure-dialogue>b small {font-size:10px}
}
@media (prefers-reduced-motion:reduce) {
  .academy-measure .measure-portrait {transition:none}
}
