/* WI-067 AidaHL academy tokens + components.
   Linked by /guides/ahl-coding-lab and the shells in
   guides/academy/templates/. The path is track cards and a numbered
   step grid. The Focus stage is a full-bleed editor, one line at a time.
   Colors follow theme.css so light and dark stay in sync.
   This file does not style the product /templates hub or the site nav. */

:root {
    --academy-radius: 16px;
    --academy-gap: 14px;
    --academy-cta: #6d28d9;
    --academy-cta-fg: #ffffff;
    --academy-num: #7c3aed;
    --academy-num-bg: rgba(124, 58, 237, 0.14);
    --academy-card: var(--bg-card);
    --academy-line: var(--border);
    --academy-editor: #1a1333;
    --academy-editor-line: rgba(167, 139, 250, 0.4);
    --academy-editor-text: #f4f1ff;
    --academy-shadow: var(--shadow);
}

.academy-path,
.academy-stage {
    margin: 8px 0 28px;
}

body.academy-ready main {
    max-width: 1120px;
}

.academy-eyebrow {
    margin: 0 0 6px;
    color: var(--academy-num);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.academy-path__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.academy-path__title {
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    line-height: 1.15;
    margin: 0 0 8px;
}

.academy-path__bar,
.academy-stage__bar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

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

.academy-progress__track {
    height: 4px;
    border-radius: 999px;
    background: var(--bg-inset, var(--border));
    overflow: hidden;
}

.academy-progress__fill {
    height: 100%;
    width: 0%;
    border-radius: inherit;
    background: var(--academy-num);
    transition: width 0.25s ease;
}

.academy-progress__label,
.academy-stage__kicker,
.academy-stage__progress,
.academy-track__blurb,
.academy-node__meta,
.academy-honesty,
.academy-comeback,
.academy-sync,
.academy-finish,
.academy-masters p {
    color: var(--text-dim);
}

.academy-progress__label,
.academy-stage__kicker,
.academy-stage__progress {
    margin: 6px 0 0;
    font-size: 0.82rem;
}

.academy-xp {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
    background: none;
    color: var(--text-dim);
    font-weight: 600;
    font-size: 0.85rem;
    white-space: nowrap;
    line-height: 1.2;
}

.academy-honesty,
.academy-comeback,
.academy-sync,
.academy-finish {
    font-size: 0.86rem;
    margin: 0 0 12px;
}

.academy-masters {
    margin: 0 0 16px;
    padding: 16px 18px;
    border-radius: var(--academy-radius);
    border: 1px solid var(--yellow);
    background: rgba(232, 212, 77, 0.08);
}

.academy-masters.is-fresh {
    border-width: 2px;
    background: rgba(232, 212, 77, 0.16);
}

.academy-masters__title {
    margin: 0 0 6px;
    font-size: 1.35rem;
}

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

.academy-finish.is-reached {
    color: var(--text);
}

.academy-path__head .academy-honesty {
    margin: 0;
    max-width: 62ch;
}

.academy-steps + .academy-eyebrow {
    margin-top: 28px;
}

.academy-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 18px;
    margin: 8px 0 22px;
}

.academy-badge {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 84px;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--text-dim);
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
}

.academy-badge::before {
    content: "";
    width: 44px;
    height: 50px;
    clip-path: polygon(50% 0%, 93% 16%, 93% 60%, 50% 100%, 7% 60%, 7% 16%);
    background: var(--academy-line);
}

.academy-badge.is-earned {
    color: var(--text);
    border: none;
    background: transparent;
}

.academy-badge.is-earned::before {
    background: linear-gradient(165deg, #7c3aed, #22d3ee);
}

.academy-continue {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: auto;
    min-width: 168px;
    margin: 0;
    padding: 12px 18px;
    border: none;
    border-radius: 12px;
    background: var(--academy-cta);
    color: var(--academy-cta-fg);
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.academy-continue:hover {
    filter: brightness(1.08);
}

.academy-continue:focus-visible,
.academy-check:focus-visible,
.academy-node:focus-visible,
.academy-back:focus-visible,
.academy-prev:focus-visible,
.academy-segment:focus-visible,
.academy-track__link:focus-visible,
.academy-textbtn:focus-visible {
    outline: 2px solid var(--academy-num);
    outline-offset: 3px;
}

.academy-continue__hint {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--academy-cta-fg);
    opacity: 0.88;
}

.academy-tracks,
.academy-nodes {
    list-style: none;
    margin: 0;
    padding: 0;
}

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

.academy-track {
    min-width: 0;
}

.academy-track__link {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-height: 168px;
    height: 100%;
    padding: 16px 16px 14px;
    border: 1px solid var(--academy-line);
    border-radius: var(--academy-radius);
    background: var(--academy-card);
    color: var(--text);
    text-decoration: none;
    position: relative;
    box-shadow: var(--academy-shadow);
}

.academy-track__link:hover {
    border-color: rgba(124, 58, 237, 0.55);
    background: rgba(124, 58, 237, 0.06);
}

.academy-track__emblem {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 46px;
    height: 52px;
    display: grid;
    place-items: center;
    clip-path: polygon(50% 0%, 100% 16%, 100% 62%, 50% 100%, 0 62%, 0 16%);
    background: linear-gradient(165deg, #7c3aed, #4f46e5);
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
}

.academy-track:nth-child(7n+2) .academy-track__emblem { background: linear-gradient(165deg, #0f766e, #22d3ee); }
.academy-track:nth-child(7n+3) .academy-track__emblem { background: linear-gradient(165deg, #7c3aed, #e879f9); }
.academy-track:nth-child(7n+4) .academy-track__emblem { background: linear-gradient(165deg, #1d4ed8, #22d3ee); }
.academy-track:nth-child(7n+5) .academy-track__emblem { background: linear-gradient(165deg, #6d28d9, #f59e0b); }
.academy-track:nth-child(7n+6) .academy-track__emblem { background: linear-gradient(165deg, #0e7490, #a78bfa); }
.academy-track:nth-child(7n+7) .academy-track__emblem { background: linear-gradient(165deg, #4c1d95, #2dd4bf); }

.academy-track__title {
    margin: 0;
    padding-right: 58px;
    font-size: 1.02rem;
}

.academy-track__count {
    margin-top: auto;
    color: var(--text-dim);
    font-size: 0.78rem;
    font-weight: 600;
}

.academy-track__status,
.academy-stepgroup__complete {
    display: block;
    margin-top: 6px;
    color: var(--academy-num);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.academy-stepgroup__complete {
    margin: 0 0 8px;
}

.academy-track.is-complete .academy-track__link {
    box-shadow: inset 3px 0 0 var(--academy-num), var(--academy-shadow);
}

.academy-stepgroup.is-complete {
    box-shadow: inset 3px 0 0 var(--academy-num);
}

.academy-track.is-featured-track .academy-track__link {
    box-shadow: inset 3px 0 0 var(--cyan), var(--academy-shadow);
}

.academy-track.is-finish-track .academy-track__link {
    box-shadow: inset 3px 0 0 var(--yellow), var(--academy-shadow);
}

.academy-track__blurb {
    margin: 0;
    padding-right: 52px;
    font-size: 0.82rem;
}

.academy-stepgroup {
    scroll-margin-top: 16px;
    margin-top: 28px;
}

.academy-stepgroup__title {
    margin: 0 0 4px;
    font-size: 1.35rem;
}

.academy-nodes {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 12px;
    border-top: 1px solid var(--academy-line);
}

.academy-node {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 4px 10px;
    align-items: start;
    min-height: 112px;
    padding: 18px 14px 20px;
    border-right: 1px solid var(--academy-line);
    border-bottom: 1px solid var(--academy-line);
    border-radius: 0;
    background: transparent;
    color: var(--text);
    text-decoration: none;
}

.academy-nodes > li:nth-child(4n) .academy-node {
    border-right: none;
}

.academy-node:hover {
    background: rgba(124, 58, 237, 0.06);
}

.academy-node__dot {
    grid-row: 1 / span 2;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    border: none;
    background: var(--academy-num-bg);
    color: var(--academy-num);
    font-size: 0.85rem;
    font-weight: 700;
}

.academy-node.is-practiced .academy-node__dot {
    background: var(--academy-num);
    color: #ffffff;
}

.academy-node.is-current {
    background: rgba(124, 58, 237, 0.1);
}

.academy-node.is-featured {
    box-shadow: inset 3px 0 0 var(--cyan);
}

.academy-node.is-capstone,
.academy-node.is-finish {
    box-shadow: inset 3px 0 0 var(--yellow);
}

a.academy-segment.is-capstone {
    box-shadow: inset 0 -2px 0 var(--yellow);
}

a.academy-segment.is-featured {
    box-shadow: inset 0 -2px 0 var(--cyan);
}

.academy-node__title {
    display: block;
    font-weight: 600;
}

.academy-node__meta {
    display: block;
    font-size: 0.75rem;
    margin-top: 2px;
}

.academy-segments {
    display: flex;
    gap: 3px;
    margin: 0 0 12px;
}

.academy-segment {
    flex: 1 1 0;
    height: 8px;
    border-radius: 999px;
    background: var(--academy-line);
}

a.academy-segment.is-practiced {
    background: var(--academy-num);
}

a.academy-segment.is-current {
    background: var(--cyan);
}

.academy-stage__bar {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 8px 0;
    background: var(--bg);
}

.academy-back,
.academy-prev {
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    color: var(--text);
}

.academy-prev {
    display: inline-flex;
    align-items: center;
    padding: 12px 16px;
    border: 1px solid var(--academy-line);
    border-radius: 12px;
    background: var(--academy-card);
}

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

.academy-stage__kicker {
    flex: 1;
    margin: 0;
}

.academy-stage__progress {
    margin: 0 0 12px;
}

.academy-stage__slot .lab {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    margin: 0 0 12px;
}

.academy-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(220px, 0.8fr);
    gap: 14px;
    align-items: start;
    margin: 8px 0 16px;
}

.academy-stage__slot .lab pre {
    margin: 0;
    padding: 36px 16px 16px;
    border-radius: var(--academy-radius);
    border: 1px solid var(--academy-editor-line);
    background: var(--academy-editor);
    color: var(--academy-editor-text);
    position: relative;
}

.academy-stage__slot .lab pre::before {
    content: "starter.ahl";
    position: absolute;
    top: 10px;
    left: 14px;
    font-family: Inter, sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #c4b5fd;
}

.academy-stage__slot .lab pre code {
    color: var(--academy-editor-text);
}

.academy-stage__slot .lab .checks {
    margin: 0;
    border-radius: var(--academy-radius);
    border: 1px solid var(--academy-line);
    background: var(--academy-card);
}

.academy-stage__slot .lab ol {
    margin: 0 0 16px;
    padding: 14px 16px 14px 34px;
    border: 1px solid var(--academy-line);
    border-radius: var(--academy-radius);
    background: var(--academy-card);
}

.academy-stage__foot {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0 4px;
    background: var(--bg);
}

.academy-stage__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}

.academy-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 168px;
    min-height: 48px;
    margin: 0;
    padding: 12px 18px;
    border: none;
    border-radius: 12px;
    background: var(--academy-cta);
    color: var(--academy-cta-fg);
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
}

.academy-check:hover {
    filter: brightness(1.08);
}

.academy-stage__foot .academy-continue {
    margin: 0;
}

.academy-type {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 0 16px;
}

.academy-type__label {
    font-size: 0.85rem;
    font-weight: 700;
}

.academy-answer {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 9rem;
    margin: 0;
    padding: 14px 16px;
    border-radius: var(--academy-radius);
    border: 1px solid var(--academy-editor-line);
    background: var(--academy-editor);
    color: var(--academy-editor-text);
    font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.92rem;
    line-height: 1.5;
    resize: vertical;
    white-space: pre;
    overflow: auto;
}

.academy-check-status {
    margin: 0 0 12px;
    min-height: 1.25em;
    font-size: 0.92rem;
}

.academy-check-status.is-miss {
    color: var(--red);
}

.academy-check-status.is-hit {
    color: var(--green);
}

.academy-textbtn {
    display: inline-flex;
    margin-top: 18px;
    padding: 0;
    border: none;
    background: none;
    color: var(--text-dim);
    font-family: inherit;
    font-size: 0.8rem;
    text-decoration: underline;
    cursor: pointer;
}

.academy-shell-note {
    margin: 0 0 16px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px dashed var(--academy-line);
    color: var(--text-dim);
    font-size: 0.85rem;
}

body.academy-ready .academy-curriculum {
    display: none;
}

body.academy-stage-open .academy-prelude,
body.academy-stage-open .cta-box {
    display: none;
}

body.academy-stage-open > main > h1,
body.academy-stage-open main > h1 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-dim);
    margin-bottom: 8px;
}

@media (max-width: 980px) {
    .academy-tracks,
    .academy-nodes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .academy-nodes > li:nth-child(4n) .academy-node {
        border-right: 1px solid var(--academy-line);
    }

    .academy-nodes > li:nth-child(2n) .academy-node {
        border-right: none;
    }
}

@media (max-width: 720px) {
    .academy-path,
    .academy-stage,
    .academy-stepgroup,
    .academy-path__head > div {
        min-width: 0;
        max-width: 100%;
    }

    .academy-path__head {
        display: block;
    }

    .academy-tracks,
    .academy-nodes {
        grid-template-columns: minmax(0, 1fr);
    }

    .academy-node,
    .academy-nodes > li:nth-child(2n) .academy-node {
        border-right: none;
    }

    .academy-continue {
        min-width: 0;
        max-width: 100%;
        min-height: 48px;
    }

    .academy-path__head .academy-continue {
        width: 100%;
        margin-top: 14px;
    }

    /* Map Continue stays in the thumb zone while the path is open.
       The lesson keeps its own footer Continue. */
    body.academy-ready:not(.academy-stage-open) .academy-path__head .academy-continue {
        position: fixed;
        left: max(14px, env(safe-area-inset-left, 0px));
        right: max(14px, env(safe-area-inset-right, 0px));
        bottom: calc(10px + env(safe-area-inset-bottom, 0px));
        width: auto;
        margin-top: 0;
        z-index: 4;
    }

    body.academy-ready:not(.academy-stage-open) {
        padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
    }

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

    body.has-aida-session-strip .academy-stage__bar {
        top: calc(var(--aida-strip-h, 40px) + var(--aida-site-nav-h, 52px));
    }

    .academy-back {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
        padding: 10px 16px;
        border: 1px solid var(--academy-line);
        border-radius: 12px;
        background: var(--academy-card);
        box-sizing: border-box;
    }

    .academy-stage__kicker {
        flex: 1 1 10rem;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .academy-stage__foot {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
    }

    .academy-stage__actions {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        margin-left: 0;
    }

    .academy-stage__foot .academy-continue,
    .academy-stage__foot .academy-check,
    .academy-prev {
        width: 100%;
        margin: 0;
        min-height: 48px;
        box-sizing: border-box;
    }

    .academy-prev {
        justify-content: center;
    }

    .academy-workspace {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        min-width: 0;
        max-width: 100%;
    }

    .academy-workspace > * {
        min-width: 0;
        max-width: 100%;
    }

    .academy-stage__slot .lab pre {
        min-width: 0;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .academy-stage__slot .lab ol,
    .academy-stage__slot .lab .checks,
    .academy-track__title,
    .academy-track__blurb,
    .academy-node__title,
    .academy-node__meta,
    .academy-continue__hint {
        overflow-wrap: anywhere;
        min-width: 0;
    }

    .academy-segments {
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
        max-width: 100%;
        margin: 0 0 12px;
        padding: 2px 0 6px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
    }

    a.academy-segment,
    a.academy-segment.is-practiced,
    a.academy-segment.is-current {
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        min-height: 44px;
        background: transparent;
        position: relative;
    }

    .academy-segment::after {
        content: "";
        position: absolute;
        left: 3px;
        right: 3px;
        top: 50%;
        height: 8px;
        margin-top: -4px;
        border-radius: 999px;
        background: var(--academy-line);
        pointer-events: none;
    }

    a.academy-segment.is-practiced::after {
        background: var(--academy-num);
    }

    a.academy-segment.is-current::after {
        background: var(--cyan);
    }

    .academy-textbtn {
        min-height: 44px;
        align-items: center;
    }
}

@media (max-width: 400px) {
    .academy-track__link {
        min-height: 0;
        padding: 14px 12px 12px;
    }

    .academy-track__emblem {
        width: 40px;
        height: 46px;
        top: 12px;
        right: 12px;
        font-size: 0.85rem;
    }

    .academy-track__title,
    .academy-track__blurb {
        padding-right: 48px;
    }

    .academy-node {
        padding: 14px 12px 16px;
    }

    .academy-stage__slot .lab pre {
        font-size: 0.75rem;
        padding: 32px 12px 12px;
    }

    .academy-path__title {
        font-size: 1.45rem;
    }

    .academy-honesty {
        font-size: 0.82rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .academy-progress__fill {
        transition: none;
    }

    .academy-focus__celebrate.is-on {
        animation: none;
    }
}

/* WI-082 Focus stage. Path, Lab Check, and Continue stay.
   Segments, XP, the long honesty line, and Previous stay in the DOM
   and leave the visual stage. The editor fills the content window. */

.academy-stage .academy-segments,
.academy-stage .academy-xp,
.academy-stage .academy-stage__kicker,
.academy-stage .academy-stage__progress,
.academy-stage > .academy-honesty,
.academy-stage .academy-prev,
.academy-stage__slot {
    display: none;
}

.academy-focus {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.academy-focus__prompt {
    margin: 0;
    padding: 14px 16px 10px;
    color: var(--text);
    font-size: 1.05rem;
    line-height: 1.45;
}

.academy-focus__editor {
    position: relative;
    flex: 1 1 auto;
    min-height: 50vh;
    margin: 0;
    padding: 12px 0 20px;
    border: none;
    border-radius: 0;
    background: var(--academy-editor);
    color: var(--academy-editor-text);
    overflow: auto;
}

.academy-focus__line {
    display: block;
    margin: 0;
    padding: 4px 16px;
    color: var(--academy-editor-text);
    opacity: 0.55;
    font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.95rem;
    line-height: 1.6;
    white-space: pre;
    overflow-x: auto;
    user-select: text;
}

.academy-focus .academy-type {
    position: relative;
    margin: 0;
    gap: 0;
    border-left: 3px solid var(--cyan);
    background: rgba(255, 255, 255, 0.06);
}

.academy-focus .academy-type__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.academy-focus .academy-answer {
    box-sizing: border-box;
    height: auto;
    min-height: 3rem;
    margin: 0;
    padding: 0.7rem 16px;
    border: none;
    border-radius: 0;
    background: transparent;
    color: var(--academy-editor-text);
    caret-color: var(--academy-editor-text);
    resize: none;
    overflow: hidden;
    font-size: 1rem;
    line-height: 1.5;
}

.academy-focus .academy-answer:focus {
    outline: 1px solid var(--academy-editor-line);
    outline-offset: -1px;
}

.academy-focus .academy-check-status {
    margin: 8px 16px;
}

.academy-focus__celebrate {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    background: transparent;
    color: var(--academy-editor-text);
    font-family: Inter, sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
}

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

.academy-focus__celebrate.is-on {
    animation: academy-focus-flash 0.5s linear;
}

@keyframes academy-focus-flash {
    0% { background: transparent; }
    35% { background: color-mix(in srgb, var(--academy-editor-text) 42%, transparent); }
    100% { background: transparent; }
}

body.academy-stage-open {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    overflow: hidden;
}

body.academy-stage-open > footer {
    display: none;
}

body.academy-stage-open main > h1,
body.academy-stage-open > main > h1 {
    display: none;
}

body.academy-stage-open main {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    max-width: none;
    width: auto;
    margin: 0;
    padding: 0;
    min-height: 0;
}

body.academy-stage-open .academy-stage {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    margin: 0;
    min-height: 0;
}

body.academy-stage-open .academy-focus {
    flex: 1 1 auto;
}

body.academy-stage-open .academy-focus__editor {
    min-height: 0;
}

body.academy-stage-open .academy-stage__bar,
body.academy-stage-open .academy-stage__foot {
    position: static;
}

body.academy-stage-open .academy-stage__bar {
    margin: 0;
    padding: 10px 16px;
}

body.academy-stage-open .academy-stage__foot {
    margin: 0;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
}
