.academy { --task-font-size: 1.104167rem; min-block-size: 100svh; background: var(--theme-page, #f4eadf); }
.academy .katex { display:inline-block; max-inline-size:100%; white-space:nowrap; overflow-wrap:normal; word-break:normal; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; padding-block:.2em; vertical-align:middle; }
.academy .katex::-webkit-scrollbar, .academy .katex-display::-webkit-scrollbar { display:none; }
.ac-prose .katex-display { max-inline-size:100%; margin:.8em 0; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; padding-block:.3em; }
.ac-prose .katex-display > .katex { display:block; text-align:center; }
.ac-prose .katex, .ac-video-condition .katex, .katex * { color:inherit; }
.ac-task-figure { margin:1rem 0; padding:.75rem; max-inline-size:100%; border:1px solid var(--line); border-radius:.75rem; background:#fff; }
.ac-task-figure img { display:block; max-inline-size:100%; block-size:auto; margin-inline:auto; }
.ac-mock-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; align-items: start; }
.ac-mock-group { min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--theme-border,#ddc7b2); border-radius: 1.25rem; background: var(--theme-tint,#edddcd); }
.ac-mock-group-title { display: flex; align-items: center; gap: .85rem; margin-block-end: 1.5rem; }
.ac-mock-group-title h3 { margin: 0; font-size: 1.2rem; }
.ac-mock-group-title p { margin: .4rem 0 0; font-size: .9rem; }
.ac-mock-symbol { display: grid; place-items: center; flex: 0 0 2.75rem; block-size: 2.75rem; border-radius: .85rem; background: var(--theme-card,#fcf7f0); font-size: 1.4rem; }
.ac-mock-cards { display: grid; gap: .8rem; margin-block-end: 1.25rem; }
.ac-mock-card-entry { display: grid; gap: .4rem; }
.ac-mock-delete { justify-self: end; min-block-size: 2.75rem; padding-inline: .6rem; }
.ac-confirm-destroy { display: flex; align-items: start; gap: .75rem; margin-block: 1.25rem; line-height: 1.5; }
.ac-confirm-destroy input { flex: 0 0 1.25rem; inline-size: 1.25rem; block-size: 1.25rem; margin-block-start: .15rem; }
.ac-mock-card { text-align: start; inline-size: 100%; padding: 1.4rem; transition: transform .15s,box-shadow .15s; }
.ac-mock-card:hover { transform: translateY(-2px); box-shadow: 0 .4rem 1rem var(--theme-shadow,#70451b12); }
.ac-mock-card h3 { margin: 0 0 .55rem; overflow-wrap: anywhere; }
.ac-mock-card .ac-card-enter { display: block; margin-block-start: 1.2rem; }
.ac-mock-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.ac-mock-variant-title { align-items: center; margin-block-end: 1.5rem; }
.ac-mock-variant-title h2 { margin-block: .7rem .2rem; overflow-wrap: anywhere; }
.ac-mock-reveal .ac-prose { padding: 1rem; border-radius: .75rem; background: var(--theme-tint,#edddcd); white-space: pre-wrap; }
@media(max-width: 48rem) {
  .ac-mock-columns { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  .ac-mock-group { padding: 1rem; }
  .ac-mock-variant-title { align-items: start; flex-direction: column; gap: 1rem; }
  .ac-mock-actions .ac-button { min-block-size: 2.75rem; }
}

.academy button, .academy input, .academy textarea, .academy select { font: inherit; }

.academy button:disabled { cursor: default; opacity: .4; }

.ac-header-toggle { display: none; }

.ac-nav { justify-content: end; }

.ac-nav-button { padding: .3rem 0; color: var(--ink); }

.ac-switch-role { border-color: var(--theme-border, #c6a487); }

.ac-dropdown { position: relative; }

.ac-dropdown-panel { position: absolute; z-index: 10; inset-block-start: calc(100% + .5rem); inset-inline-start: 0; min-inline-size: 13rem; padding: .5rem; background: var(--theme-card, #fffaf4); border: 1px solid var(--theme-border, #dcc5af); border-radius: 1rem; box-shadow: 0 1rem 3rem var(--theme-shadow, #4c31151a); }

.ac-dropdown-panel button { display: block; inline-size: 100%; text-align: start; padding: .85rem; border-radius: .6rem; font-size: .9375rem; }

.ac-dropdown-panel button:hover, .ac-dropdown-panel .is-active { background: var(--theme-tint, #edddcd); }

.ac-main { padding-block: 2rem; }

.ac-kicker { margin: 0 0 .75rem; font-size: .6875rem; font-weight: 700; letter-spacing: .11em; line-height: 1.5; color: var(--ink); }

.ac-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-block-end: 2rem; }

.ac-page-heading h1 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.25rem); line-height: 1.1; letter-spacing: -.05em; }

.ac-heading-right { display: grid; gap: .75rem; justify-items: end; }

.ac-person-select { display: grid; gap: .45rem; color: var(--ink); font-size: .75rem; }

.ac-person-select select { min-inline-size: 13rem; padding: .75rem 2rem .75rem .75rem; border: 1px solid var(--theme-border, #d6bda7); border-radius: .75rem; background: var(--theme-card, #fcf7f0); color: var(--ink); }

.ac-pill { display: inline-flex; align-items: center; padding: .4rem .75rem; border: 1px solid var(--theme-border, #ddc7b2); border-radius: 2rem; color: var(--ink); font-size: .75rem; line-height: 1.35; white-space: nowrap; background: var(--theme-tint, #f7eee4); }

.ac-section-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-block-end: 1.5rem; }

.ac-section-bar h2 { margin: 0; font-size: clamp(1.25rem, 1.8vw, 1.75rem); letter-spacing: -.035em; }

.ac-catalog-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }

.ac-sort-label { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; color: var(--ink); font-size: .8125rem; }


.ac-button { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--theme-border, #a4511d); padding: .8rem 1.15rem; border-radius: .7rem; background: var(--theme-button, #ead3be); color: var(--ink); font-size: .875rem !important; line-height: 1.35; transition: background .15s; }

.ac-button:hover { background: var(--theme-tint, #dfc1a5); }

.ac-button-light { background: transparent; border-color: var(--theme-border, #d8bca3); color: var(--ink); }

.ac-button-light:hover { background: var(--theme-card, #ead7c4); }

.ac-link { padding: 0; color: var(--ink); font-size: .875rem !important; line-height: 1.5; text-align: start; }

.ac-link:hover { text-decoration: none; }

.ac-back { display: inline-flex; align-items: center; gap: .6rem; min-block-size: 2.75rem; margin-block-end: 1.25rem; padding: .65rem .9rem; border: 1px solid var(--theme-border, #ddc7b2); border-radius: .8rem; background: var(--theme-card, #fcf7f0); box-shadow: 0 .15rem .5rem var(--theme-shadow, #70451b05); transition: background .15s, border-color .15s; }
.ac-back:hover { background: var(--theme-tint, #f3e6d7); border-color: var(--copper); }

.ac-task-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }

.ac-task-card { text-align: start; background: var(--theme-card, #fcf7f0); border: 1px solid var(--theme-border, #ddc7b2); border-radius: 1.25rem; padding: 1.75rem; transition: border-color .2s, box-shadow .2s; }

.ac-task-card:hover { border-color: var(--theme-border, #ac7950); box-shadow: 0 .6rem 2rem var(--theme-shadow, #70451b0c); }

.ac-task-card h2 { margin: .75rem 0 1.25rem; font-size: 1.375rem; line-height: 1.25; letter-spacing: -.035em; }

.ac-empty { padding: 4rem 1.5rem; text-align: center; background: var(--theme-card, #fcf7f0); border: 1px dashed var(--theme-border, #d6bda7); border-radius: 1.25rem; }

.ac-empty > span { color: var(--ink); font-size: 2rem; }

.ac-empty h2 { font-size: 1.5rem; letter-spacing: -.035em; }

.ac-empty p { max-inline-size: 32rem; margin-inline: auto; color: var(--ink); line-height: 1.65; }

.ac-editor-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-block: 1rem 1.5rem; color: var(--ink); font-size: .75rem; }

.ac-paper { padding: clamp(1rem, 1.5vw, 1.25rem); border: 1px solid var(--theme-border, #dfcbb7); border-radius: 1.125rem; background: var(--theme-card, #fcf8f2); min-inline-size: 0; }

.ac-paper h2 { font-size: 1.5rem; letter-spacing: -.035em; line-height: 1.3; }

.ac-paper h3 { font-size: 1rem; }

.ac-prose { white-space: pre-line; line-height: 1.85; color: var(--ink); font-size: var(--task-font-size); overflow-wrap: anywhere; }

.ac-lesson-layout { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 1.5rem; align-items: start; }

.ac-video-column { display: grid; gap: 1.25rem; min-inline-size: 0; }

.ac-player { position: relative; background: var(--theme-card, #eee1d2); border-radius: 1.125rem; overflow: hidden; color: var(--ink); }

.ac-player iframe { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 16 / 9; border: 0; }

.ac-player-empty { aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center; padding: 1.5rem; background: radial-gradient(ellipse at center, var(--theme-card, #fcf4e9) 0, var(--theme-tint, #ead3be) 75%); }

.ac-play-symbol { display: grid; place-items: center; inline-size: 3rem; block-size: 3rem; border-radius: 50%; border: 1px solid var(--theme-border, #b18d6d); color: var(--ink); font-size: 1.5rem; margin-block-end: .5rem; }
.ac-play-symbol svg { inline-size: 1.25rem; block-size: 1.25rem; transform: translateX(1px); }

.ac-player-empty p { font-size: .8125rem; line-height: 1.6; color: var(--ink); max-inline-size: 25rem; }

.ac-player-controls { min-block-size: 4rem; display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .5rem .75rem; background: var(--theme-card, #f3e7d9); font-size: .9375rem; }

.ac-player-controls button { color: var(--ink); padding: .5rem; min-inline-size: 2.75rem; min-block-size: 2.75rem; }

.ac-player-controls select { min-block-size: 2.75rem; min-inline-size: 7rem; padding: .6rem .75rem; border: 1px solid var(--theme-border, #c9a98b); border-radius: .75rem; background: var(--theme-card, #fffaf4); color: var(--ink); font-weight: 600; cursor: pointer; }

.ac-player-controls select:hover { border-color: var(--theme-border, #a4511d); background: var(--theme-card, #fcf4e9); }

.ac-player-controls select:focus-visible { outline: 2px solid var(--theme-border, #a4511d); outline-offset: 3px; }

.ac-player-controls label { display: flex; gap: .65rem; align-items: center; }

.ac-episodes { border: 1px solid var(--theme-border, #ddc6b0); border-radius: 1rem; overflow: hidden; background: var(--theme-card, #fcf7f0); position: sticky; inset-block-start: calc(var(--sticky-header-height, 7rem) + 12px); }

.ac-complete { display: inline-flex; padding: 0; color: var(--ink); font-size: .875rem !important; }

.ac-training { border-color: var(--theme-border, #caaa8e); }

.ac-answer-form { --answer-control-height: 2.75rem; display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; margin-block: .85rem 0; }

.ac-answer-form > label { display: grid; gap: .35rem; font-size: .75rem; color: var(--ink); }

.ac-answer-form input { inline-size: 12rem; max-inline-size: 100%; block-size: var(--answer-control-height); padding: 0 .75rem; border: 1px solid var(--theme-border, #d7bea8); border-radius: .65rem; background: var(--theme-card, #fffdfa); }

.ac-answer-form > .ac-button { block-size: var(--answer-control-height); padding-block: 0; white-space: nowrap; }
.ac-answer-result { flex-basis: 100%; margin: .25rem 0 0; color: var(--ink); font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }

.ac-answer-result:empty { display: none; }

.ac-answer-result.is-first { color: #216236; }
.ac-answer-result.is-wrong { color: #ad2828; }
.ac-answer-result.is-retry { color: #806000; }

.ac-exercise-layout { display: grid; grid-template-columns: minmax(0, 1fr) 12rem; gap: 1.5rem; align-items: start; }

.ac-exercise-nav h3 { margin-block-start: 0; }

.ac-exercise-column { display: grid; gap: 1rem; min-inline-size: 0; }

.ac-preview-notice { display: flex; flex-wrap: wrap; gap: .25rem .75rem; padding: .65rem 1rem; margin-block-end: 1rem; border: 1px solid var(--theme-border, #d3b99d); border-radius: .65rem; background: var(--theme-tint, #eddbc5); color: var(--ink); font-size: .75rem; line-height: 1.5; }

.ac-kind { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; margin-block-start: .45rem; padding: .3rem .6rem; border: 1px solid var(--kind-course-border, #b9c69c); border-radius: .45rem; color: var(--ink); background: var(--kind-course-bg, #e8ecd9); font-size: .75rem; line-height: 1.25; font-weight: 600; }

.ac-kind-extra { background: var(--kind-extra-bg, #eedac5); border-color: var(--kind-extra-border, #ccad88); }

.ac-access-notice { display: flex; gap: 1rem; align-items: start; padding: 1.25rem 1.5rem; border: 1px solid var(--theme-border, #d6b99b); border-radius: .875rem; background: var(--theme-tint, #edddc9); margin-block-end: 1.5rem; }

.ac-access-notice > span { color: var(--ink); }

.ac-access-notice b { font-size: .9375rem; }

.ac-access-notice p { margin: .45rem 0 0; font-size: .8125rem; color: var(--ink); line-height: 1.5; }

.ac-access-card { margin-block-end: 1.5rem; border: 1px solid var(--theme-border, #dbc3ac); background: var(--theme-card, #fcf7f0); border-radius: 1rem; overflow: hidden; }

.ac-access-title { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: 1.5rem; cursor: pointer; list-style: none; }
.ac-access-title::-webkit-details-marker { display: none; }
.ac-access-card[open] > .ac-access-title { border-block-end: 1px solid var(--theme-border, #dfc9b4); }
.ac-access-chevron { font-size: 1.4rem; transition: transform .15s; }
.ac-access-card[open] .ac-access-chevron { transform: rotate(180deg); }
.ac-access-variants h3 { margin: 1.1rem 0 .25rem; font-size: 1rem; }
.ac-access-variants p { font-size: .875rem; }
.ac-access-row > span { min-inline-size: 0; overflow-wrap: anywhere; }
.ac-access-row .ac-access-toggle { flex-shrink: 0; min-block-size: 2.75rem; }
@media(max-width:40rem){ .ac-access-title > div { flex-basis:100%; padding-inline-end:1.5rem; } .ac-access-chevron { position:absolute; inset-inline-end:1rem; inset-block-start:1rem; } }

.ac-access-title > div { margin-inline-end: auto; }

.ac-access-title h2 { margin: .75rem 0 0; font-size: 1.25rem; }

.ac-access-blocks { padding: .25rem 1.5rem 1rem; }

.ac-access-blocks .ac-access-row:first-child { border-block-start: 0; }

.ac-access-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border-block-start: 1px solid var(--theme-border, #e8d9c9); padding-block: .875rem; font-size: .875rem; }

.ac-access-toggle { display: inline-flex; align-items: center; gap: .6rem; border: 1px solid var(--theme-border, #d9c1a8); border-radius: 2rem; padding: .45rem .8rem; font-size: .75rem !important; color: var(--ink); white-space: nowrap; }

.ac-access-toggle > span { display: grid; place-items: center; inline-size: 1rem; block-size: 1rem; border-radius: 50%; background: var(--theme-card, #ead7c1); }

.ac-access-toggle.is-open { background: #e6ede1; border-color: #bac9ad; color: #000; }

.ac-access-toggle.is-open > span { background: #cad9be; }

.ac-access-toggle.is-partial { background: #f3e1c1; color: #000; }

.ac-avatar { display: grid; place-items: center; margin-inline: auto; inline-size: 3.5rem; block-size: 3.5rem; border-radius: 50%; background: var(--theme-tint, #e6cfb5); color: var(--ink); font-size: 1rem; }

.ac-student-list { display: grid; gap: .8rem; }

.ac-student-row { display: flex; align-items: center; gap: 1rem; inline-size: 100%; text-align: start; }

.ac-student-row:hover { border-color: var(--theme-border, #a97850); background: var(--theme-card, #f9f0e6); }

.ac-student-row .ac-avatar { margin: 0; flex-shrink: 0; }

.ac-student-person { display: grid; gap: .45rem; margin-inline-end: auto; }

.ac-student-person b { font-size: 1rem; }

.ac-student-person > span { font-size: .8125rem; color: var(--ink); }

@media (max-width: 40rem) { .ac-student-row { flex-wrap: wrap; } .ac-student-person { flex: 1; min-inline-size: 8rem; } }

.ac-field { display: grid; gap: .5rem; margin-block: 1.25rem; font-size: .8125rem; color: var(--ink); }

.ac-field input, .ac-field textarea, .ac-field select { inline-size: 100%; min-inline-size: 0; padding: .85rem; border: 1px solid var(--theme-border, #d8bea5); border-radius: .65rem; background: var(--theme-card, #fffdfa); color: var(--ink); font-size: .9375rem; line-height: 1.6; }

.ac-field textarea { resize: vertical; }

.ac-form-error { font-size: .8125rem; color: var(--ink); line-height: 1.5; }

.ac-form-error:empty { display: none; }

.ac-editor-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }

#ac-edit-dialog { inline-size: min(42rem, calc(100% - 2rem)); }

#ac-edit-dialog h2 { font-size: 1.5rem; margin: 0; }

.ac-prototype { margin-block: 3rem 0; color: var(--ink); font-size: .6875rem; line-height: 1.7; }

.ac-main.ac-main-lesson { padding-block-start: 1rem; }
.ac-lesson-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-block-end: 1.25rem; }

.ac-lesson-toolbar .ac-person-select { display: flex; align-items: center; gap: .75rem; }

.ac-course-order { display: inline-flex; align-items: center; padding: .4rem .8rem; border: 1px solid var(--theme-border, #d4b08e); border-radius: 999px; background: var(--theme-tint, #eddbc7); color: var(--ink); font-size: .875rem; font-weight: 600; line-height: 1.4; }

.ac-card-enter { color: var(--ink); font-size: .8125rem; }

.ac-task-heading { align-items: start; }

.ac-task-heading h2 { margin: .9rem 0 0; max-inline-size: 52rem; line-height: 1.35; font-weight: 650; letter-spacing: -.025em; }

.ac-task-settings { position: relative; font-size: .8125rem; color: var(--ink); }

.ac-task-settings > summary { cursor: pointer; padding-block: .5rem; }

.ac-task-settings > div { position: absolute; z-index: 5; inset-inline-end: 0; min-inline-size: 14rem; display: grid; gap: .75rem; padding: 1rem; border: 1px solid var(--theme-border, #dcc5af); border-radius: .75rem; background: var(--theme-card, #fcf8f2); box-shadow: 0 .5rem 1.5rem var(--theme-shadow, #70451b12); }

.ac-block-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; max-inline-size: 60rem; }

.ac-block-overview > button { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.5rem; border: 1px solid var(--theme-border, #ddc6af); border-radius: 1rem; background: var(--theme-card, #fcf8f2); text-align: start; }

.ac-block-overview > button:hover { border-color: var(--theme-border, #aa774c); background: var(--theme-tint, #f8eddf); }

.ac-block-overview h3 { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.4; }

.ac-block-overview > button > span:last-child { font-size: .75rem; color: var(--ink); }

.ac-overview-icon { font-size: 1.5rem; color: var(--ink); }

.ac-simple-tabs { display: flex; flex-wrap: wrap; gap: .35rem; inline-size: fit-content; max-inline-size: 100%; padding: .35rem; margin-block-end: 1.5rem; border: 1px solid var(--theme-border, #deccb9); border-radius: .9rem; background: var(--theme-card, #fcf8f2); }
.ac-simple-tabs button { min-block-size: 2.65rem; padding: .65rem 1rem; border: 1px solid transparent; border-radius: .65rem; font-size: .875rem; line-height: 1.35; color: var(--ink); transition: background .15s, border-color .15s; }
.ac-simple-tabs button:hover { background: var(--theme-tint, #f3e6d7); }
.ac-simple-tabs .is-active { background: var(--theme-tint, #ead5bd); border-color: var(--theme-border, #d4b08e); font-weight: 600; }

.ac-video-browser { min-inline-size: 0; }

.ac-video-list { display: grid; gap: .75rem; }

.ac-video-topic-label { margin: 1.75rem 0 .25rem; padding: .9rem 1.1rem; border-inline-start: 4px solid var(--theme-border, #a4511d); border-radius: .2rem .65rem .65rem .2rem; background: var(--theme-tint, #e7d0b8); color: var(--ink); font-size: 1.25rem; font-weight: 700; line-height: 1.4; }

.ac-video-topic-label:first-child { margin-block-start: 0; }

.ac-video-list-sidebar .ac-video-topic-label { margin-block: 1rem .25rem; padding: .65rem .7rem; border-inline-start-width: 3px; font-size: .9375rem; }

.ac-video-list > button { display: grid; gap: .6rem; padding: 1rem 1.25rem; border: 1px solid var(--theme-border, #dcc6b0); border-radius: .8rem; background: var(--theme-card, #fcf8f2); text-align: start; }

.ac-video-list > button:hover { background: var(--theme-tint, #f3e6d7); }

.ac-video-list > button.is-active { background: var(--theme-tint, #ead5bd); }

.ac-video-entry-title { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }

.ac-video-entry-title > b { font-size: .8125rem; font-weight: 600; }

.ac-video-entry-title .ac-kind { margin: 0; }

.ac-video-condition { color: var(--ink); font-size: var(--task-font-size); line-height: 1.65; }

.ac-video-arrow { margin-inline-start: auto; color: var(--ink); }

.ac-video-list-heading { margin: 0; padding: 1rem 1rem .5rem; font-size: .875rem; font-weight: 600; }

.ac-video-list-sidebar { gap: .35rem; padding: .5rem .5rem 1.25rem; margin: 0 .35rem .4rem; max-block-size: 35rem; min-block-size: 0; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; border-radius: .6rem; mask-image: linear-gradient(to bottom, #000 calc(100% - 14px), transparent); }
@media (min-width: 80.001rem) {
  .ac-episodes { display: flex; flex-direction: column; block-size: var(--player-height, auto); }
  .ac-video-list-heading { flex: 0 0 auto; }
  .ac-video-list-sidebar { flex: 1 1 auto; max-block-size: none; }
}

.ac-video-list-sidebar > button { border: 0; border-radius: .5rem; padding: .8rem; }

.ac-video-list-sidebar .ac-video-condition { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font-size: .916667rem; }

.ac-compact-title { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; }

.ac-compact-title h3 { margin: 0; font-size: .9375rem; font-weight: 600; }

.ac-compact-title .ac-kind { margin: 0; }

.ac-compact-title > .ac-link { margin-inline-start: auto; font-size: .75rem !important; }

.ac-paper .ac-prose { margin: .75rem 0; line-height: 1.7; }


.ac-requirement { display: inline-flex; align-items: center; padding: .4rem .8rem; border: 1px solid transparent; border-radius: .5rem; font-size: .875rem; line-height: 1.4; }

.ac-requirement-required { background: var(--theme-tint, #ead5bf); border-color: var(--theme-border, #d9b797); color: var(--ink); font-weight: 600; }

.ac-requirement-optional { background: transparent; border-color: var(--theme-border, #d9cbbb); color: var(--ink); }

@media (max-width: 55rem) { .ac-block-overview { grid-template-columns: minmax(0, 1fr); } .ac-lesson-toolbar .ac-person-select { flex-wrap: wrap; } .ac-task-settings > div { inset-inline-start: 0; inset-inline-end: auto; } }

#academy-toast { position: fixed; z-index: 100; inset-inline: 1rem; inset-block-end: 1.5rem; inline-size: fit-content; max-inline-size: calc(100% - 2rem); margin-inline: auto; padding: 1rem 1.5rem; border-radius: .8rem; background: var(--theme-card, #efe0cc); color: var(--ink); box-shadow: 0 .5rem 2rem var(--theme-shadow, #30251d33); font-size: .875rem; line-height: 1.5; }

@media (max-width: 90rem) { .ac-lesson-layout { grid-template-columns: minmax(0, 1fr) 16rem; } .ac-task-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (max-width: 80rem) { .ac-lesson-layout { grid-template-columns: minmax(0, 1fr); } .ac-episodes { position: static; } }

@media (max-width: 55rem) { .ac-page-heading { align-items: start; flex-direction: column; } .ac-heading-right { justify-items: start; inline-size: 100%; } .ac-person-select, .ac-person-select select { inline-size: 100%; } .ac-task-grid { grid-template-columns: minmax(0, 1fr); } }

@media (max-width: 30rem) { .ac-player-empty p { font-size: .6875rem; } .ac-page-heading h1 { font-size: 1.875rem; } .ac-access-title, .ac-access-blocks { padding: 1rem; } .ac-access-row { font-size: .75rem; gap: .5rem; } }

.ac-results-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-block-end: 1rem; color: var(--ink); font-size: .8125rem; }

.ac-results-nav { position: sticky; inset-block-start: calc(var(--sticky-header-height, 7rem) + 1rem); }

.ac-results-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; max-block-size: min(32rem, calc(100dvh - var(--sticky-header-height, 7rem) - 10rem)); overflow-y: auto; overflow-x: hidden; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: var(--line) transparent; overscroll-behavior: contain; padding: .2rem .4rem .5rem .2rem; }
.ac-results-column button { display: grid; place-items: center; min-inline-size: 0; min-block-size: 2.75rem; inline-size: 100%; aspect-ratio: 1; border: 1px solid var(--theme-border, #d9bda3); border-radius: .6rem; background: var(--theme-card, #fffaf4); color: var(--ink); font-size: 1rem; scroll-snap-align: start; }

.ac-results-column button:hover { outline: 2px solid var(--theme-border, #a87043); outline-offset: 1px; }

.ac-results-column .is-first, .ac-result-legend .is-first { background: #d7ead8; border-color: #91b796; color: #000; }
.ac-results-column .is-wrong, .ac-result-legend .is-wrong { background: #f2d5d0; border-color: #d99b91; color: #000; }
.ac-results-column .is-retry, .ac-result-legend .is-retry { background: #f5e6ae; border-color: #d8bd65; color: #000; }
.ac-result-legend { display: grid; gap: .4rem; margin-block-end: 1rem; font-size: .6875rem; color: var(--ink); }

.ac-result-legend span { display: flex; align-items: center; gap: .4rem; }

.ac-result-legend i { inline-size: .65rem; block-size: .65rem; border: 1px solid; border-radius: .15rem; }

.ac-exercise-card { scroll-margin-block-start: 1rem; }

.ac-exercise-card .ac-compact-title h3 { font-size: 17px; line-height: 1.4; font-weight: 700; }

.academy .ac-nav-button[data-ac="menu"] { display: inline-flex; align-items: center; gap: .45rem; }

.ac-menu-chevron { inline-size: .75em; block-size: .75em; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; transition: transform .15s; }

[aria-expanded="true"] > .ac-menu-chevron { transform: rotate(180deg); }

@media (max-width: 55rem) { .ac-exercise-layout { grid-template-columns: minmax(0, 1fr) 7rem; gap: .75rem; } .ac-results-nav { padding: .5rem; } .ac-results-nav h3, .ac-result-legend { display: none; } .ac-results-column { gap: .35rem; padding: 0; } .ac-results-column button { font-size: .875rem; } .ac-exercise-card { padding: .85rem; } .ac-answer-form > label, .ac-answer-form input { inline-size: 100%; } .ac-answer-form .ac-button { padding-inline: .6rem; } }

@media (max-width: 40rem) {
  .ac-main { padding-block-start: 1.25rem; }
  .ac-exercise-layout { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .ac-results-nav { grid-row: 1; min-inline-size: 0; z-index: 8; inset-block-start: calc(var(--sticky-header-height, 7rem) + .4rem); }
  .ac-results-column { max-block-size: none; overflow-y: hidden; scrollbar-gutter: auto; grid-template-columns: none; grid-template-rows: repeat(2, 2.75rem); grid-auto-flow: column; grid-auto-columns: 2.75rem; justify-content: start; gap: .4rem; overflow-x: auto; padding: .3rem .2rem .6rem; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: var(--line) transparent; overscroll-behavior-inline: contain; }
  .ac-results-column button { block-size: 2.75rem; aspect-ratio: auto; font-size: 1rem; }
  .ac-exercise-card { scroll-margin-block-start: 5rem; padding: 1rem; }
  .ac-answer-form > .ac-button { inline-size: 100%; }
  .academy input, .academy select, .academy textarea { min-inline-size: 0; max-inline-size: 100%; font-size: 1rem; }
  .ac-field { min-inline-size: 0; }
  #ac-edit-dialog .ac-section-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
  #ac-edit-dialog h2 { font-size: 1.25rem; }
  .ac-catalog-actions { inline-size: 100%; }
  .ac-catalog-actions > .ac-button { min-block-size: 2.75rem; }
}


#ac-board-dialog { --board-gap: clamp(4px, .4vw, 8px); position: fixed; inset: var(--board-gap); margin: 0; inline-size: calc(100% - 2 * var(--board-gap)); block-size: calc(100dvh - 2 * var(--board-gap)); max-inline-size: none; max-block-size: none; padding: .5rem; overflow: hidden; border: 1px solid var(--theme-border, #d9bda3); border-radius: .75rem; background: var(--theme-card, #fcf8f2); }

#ac-board-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: .5rem; }

#ac-board-dialog::backdrop { background: var(--theme-backdrop, #30251d80); }

.ac-board-heading { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; padding: .25rem .35rem; margin: 0; }

.ac-board-heading h2 { margin: 0 auto 0 0; font-size: 1rem; }

#ac-board-dialog iframe { display: block; inline-size: 100%; block-size: 100%; min-inline-size: 0; min-block-size: 0; border: 1px solid var(--theme-border, #dfcbb7); border-radius: .5rem; background: white; }

#ac-board-dialog .ac-board-caption { margin: 0; font-size: .6875rem; line-height: 1.4; }

.ac-board-caption { margin: .75rem 0 0; font-size: .75rem; line-height: 1.6; color: var(--ink); }

.ac-pdf-toolbar { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; margin-block-end: 1.5rem; }
.ac-pdf-choice { display: flex; align-items: center; gap: .85rem; min-inline-size: 0; padding: .9rem 1rem; border: 1px solid var(--theme-border, #dfcbb7); border-radius: 1rem; background: var(--theme-card, #fcf8f2); box-shadow: 0 .2rem .8rem var(--theme-shadow, #70451b05); }
.ac-pdf-icon { flex: 0 0 auto; inline-size: 1.5rem; block-size: 1.75rem; opacity: .8; }
.ac-pdf-label { display: grid; gap: .3rem; font-size: .875rem; color: var(--ink); }
.ac-pdf-label b { font-weight: 600; }
.ac-pdf-label small { font-size: .75rem; line-height: 1.4; }
.ac-pdf-choice .ac-button { margin-inline-start: .5rem; min-block-size: 2.6rem; padding: .55rem .8rem; white-space: nowrap; background: var(--theme-tint, #f3e6d7); }
.ac-pdf-toolbar [data-pdf-status] { flex-basis: 100%; margin: 0; }
.ac-pdf-toolbar [data-pdf-status]:empty { display: none; }
@media (max-width: 40rem) {
  .ac-simple-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); inline-size: 100%; }
  .ac-simple-tabs button { min-inline-size: 0; min-block-size: 2.75rem; padding: .45rem .3rem; font-size: .8125rem; }
  .ac-pdf-choice { flex: 1 1 100%; }
  .ac-pdf-label { flex: 1; }
}

.ac-board-restore { position: fixed; z-index: 35; inset-inline-end: max(1rem, env(safe-area-inset-right)); inset-block-end: max(1rem, env(safe-area-inset-bottom)); max-inline-size: calc(100% - 2rem); padding: .9rem 1.25rem; border: 1px solid var(--theme-border, #8d461e); border-radius: .85rem; background: var(--theme-button, #ead3be); color: var(--ink); font-size: .875rem; line-height: 1.4; box-shadow: 0 .5rem 1.5rem var(--theme-shadow, #30251d30); }

.ac-board-restore:hover { background: var(--theme-button, #dfc1a5); }

.ac-account-layout { display: grid; grid-template-columns: minmax(17rem, 22rem) minmax(0, 1fr); gap: 1.25rem; align-items: start; }

.ac-ledger-heading { margin-block-start: 0; }

.ac-account-summary > p { font-size: .875rem; line-height: 1.65; color: var(--ink); }

.ac-account-actions { display: grid; gap: .65rem; }

.ac-person-actions { display: grid; gap: .8rem; border-block-start: 1px solid var(--theme-border, #e3cdb8); padding-block-start: 1rem; margin-block-start: 1rem; }

.ac-person-actions p { margin: 0; font-size: .875rem; line-height: 1.5; }

.ac-ledger-list { min-inline-size: 0; }

.ac-ledger-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem 1rem; padding-block: 1rem; border-block-start: 1px solid var(--theme-border, #e3cdb8); }

.ac-ledger-entry:first-child { border-block-start: 0; padding-block-start: .25rem; }

.ac-ledger-description { display: grid; gap: .4rem; min-inline-size: 0; font-size: .875rem; }

.ac-ledger-description time { color: var(--ink); font-size: .75rem; }

.ac-ledger-description p { margin: 0; white-space: pre-line; overflow-wrap: anywhere; line-height: 1.55; color: var(--ink); }

.ac-ledger-result { display: grid; align-content: start; gap: .4rem; text-align: end; font-size: .875rem; }

.ac-ledger-result > span { color: var(--ink); font-size: .75rem; }

.ac-ledger-credit { color: var(--ink); }

.ac-ledger-debit { color: var(--ink); }

.ac-ledger-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }

.ac-ledger-actions .ac-link { font-size: .75rem !important; }

.ac-ledger-empty { margin: 0; color: var(--ink); font-size: .875rem; line-height: 1.6; }

@media (max-width: 55rem) { .ac-account-layout { grid-template-columns: minmax(0, 1fr); } }

@media (max-width: 30rem) { .ac-ledger-entry { gap: .65rem; } .ac-ledger-result { font-size: .8125rem; } }

.ac-login-page { min-block-size: 100svh; }

.ac-login-top { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding-block: 2.25rem; }

.ac-login-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, 27rem); align-items: center; gap: clamp(2rem, 6vw, 7rem); padding-block: clamp(2rem, 5vh, 4rem) 4rem; }

.ac-login-intro h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.75rem); line-height: 1.1; letter-spacing: -.045em; }

.ac-login-intro > p:not(.ac-kicker) { margin-block: 1.5rem 2.5rem; color: var(--ink); font-size: 1.125rem; line-height: 1.7; }

.ac-login-tag { display: inline-block; padding-block-start: 1.25rem; border-block-start: 1px solid var(--theme-border, #d9bea5); font-size: .6875rem; letter-spacing: .09em; line-height: 1.8; color: var(--ink); }

.ac-login-card { padding: clamp(1.5rem, 2.5vw, 2.5rem); box-shadow: 0 1rem 3rem var(--theme-shadow, #70451b09); }

.ac-social-login { display: grid; gap: .75rem; margin-block: 1.5rem; }

.ac-social-login a { min-block-size: 2.75rem; text-decoration: none; }

.ac-login-card h1 { margin: 0; font-size: clamp(1.75rem, 2.2vw, 2.125rem); line-height: 1.2; letter-spacing: -.04em; }

.ac-login-caption { margin: .75rem 0 1.75rem; color: var(--ink); font-size: .875rem; line-height: 1.6; }

.ac-login-card .ac-field { color: var(--ink); font-size: .875rem; }

.ac-password-field { display: flex; align-items: center; border: 1px solid var(--theme-border, #d8bea5); border-radius: .65rem; background: var(--theme-card, #fffdfa); overflow: hidden; }

.ac-password-field input { border: 0; background: transparent; border-radius: 0; flex: 1; }

.ac-password-field button { flex-shrink: 0; align-self: stretch; padding: .5rem .75rem; font-size: .75rem; color: var(--ink); }

.ac-password-field:focus-within { outline: 2px solid var(--theme-border, #a4511d); outline-offset: 2px; }

.ac-password-field input:focus-visible { outline: none; }

.ac-login-card input[aria-invalid="true"] { box-shadow: inset 0 0 0 1px var(--theme-shadow, #a04e35); }

.ac-login-submit { inline-size: 100%; margin-block-start: .25rem; }

.ac-login-help { margin: 1.5rem 0 0; font-size: .8125rem; line-height: 1.7; color: var(--ink); }

.ac-demo-access { border-block-start: 1px solid var(--theme-border, #e3cdb8); margin-block-start: 1.5rem; padding-block-start: 1rem; color: var(--ink); font-size: .75rem; line-height: 1.65; }

.ac-demo-access summary { cursor: pointer; }

.ac-demo-access > div { display: grid; gap: .65rem; }

.ac-demo-access .ac-link { font-size: .75rem !important; }

@media (max-width: 60rem) { .ac-login-layout { grid-template-columns: minmax(0, 1fr); max-inline-size: 30rem; margin-inline: auto; padding-block-start: 1rem; } .ac-login-intro { display: none; } }

@media (max-width: 35rem) { .ac-login-top { padding-block: 1.5rem; gap: .75rem; } .ac-login-top .logo { font-size: 1.5rem; } .ac-login-card { padding: 1.5rem; } }

.ac-balance-badge { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-inline-size: 13rem; padding: .85rem 1.1rem; border: 1px solid var(--theme-border, #8f4319); border-radius: .85rem; background: var(--theme-button, #ead3be); color: var(--ink); box-shadow: 0 .35rem 1rem var(--theme-shadow, #70451b18); }

.ac-balance-badge > span { font-size: .875rem; font-weight: 600; line-height: 1.4; }

.ac-balance-badge > strong { font-size: 2rem; line-height: 1; font-variant-numeric: tabular-nums; }

.ac-balance-negative { background: #f3dcd7; border-color: #d5a69c; color: #000; }

.ac-account-summary > .ac-balance-badge { min-inline-size: 0; margin-block-end: 1.5rem; padding: 1.1rem 1.25rem; }

.ac-account-summary > .ac-balance-badge > strong { font-size: 2.75rem; }

@media (max-width: 30rem) { .ac-heading-right > .ac-balance-badge { inline-size: 100%; min-inline-size: 0; } }

.ac-legacy-export { margin-block-start: 1rem; }

.ac-import-preview { overflow-wrap: anywhere; }
.ac-import-preview details { max-block-size: 16rem; overflow: auto; margin-block: 1rem; }

.ac-backup-panel { margin-block-start: 2rem; padding-block-start: 1.25rem; border-block-start: 1px solid var(--theme-border, #dfc1a5); }
.ac-backup-panel p { max-inline-size: 42rem; font-size: .875rem; line-height: 1.5; color: var(--ink); }

.ac-login-activity { grid-column: 1 / -1; }
.ac-login-activity .ac-section-bar { margin-block-end: .5rem; }
.ac-login-events { list-style: none; padding: 0; margin: 1rem 0 0; max-block-size: 25rem; overflow-y: auto; }
.ac-login-events li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .75rem 1.25rem; padding-block: 1rem; border-block-start: 1px solid var(--theme-border, #e3cdb8); font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }
.ac-login-events li > div { display: grid; align-content: start; gap: .35rem; }
.ac-login-events p { margin: 0; }
.ac-login-events time { font-size: .8125rem; }
@media (max-width: 40rem) { .ac-login-events li { grid-template-columns: minmax(0, 1fr); } }

.ac-conference-details { display: grid; gap: 1rem; margin-block: 1.25rem 0; }
.ac-conference-details > div { padding: .9rem 1rem; border: 1px solid var(--theme-border, #dfcbb7); border-radius: .65rem; }
.ac-conference-details dt { font-size: .8125rem; line-height: 1.5; }
.ac-conference-details dd { margin: .35rem 0 0; font-size: 1.25rem; font-weight: 600; overflow-wrap: anywhere; user-select: text; }

:root[data-theme="dark"] .ac-answer-result.is-first { color: #8ed7a1; }
:root[data-theme="dark"] .ac-answer-result.is-wrong { color: #ffaaa3; }
:root[data-theme="dark"] .ac-answer-result.is-retry { color: #f0d181; }
:root[data-theme="dark"] .ac-access-toggle > span { background: var(--theme-tint); }
:root[data-theme="dark"] .ac-access-toggle.is-open > span { background: #cad9be; }

.ac-lesson-toolbar-end { justify-content: end; }
.ac-profile-card { max-inline-size: 42rem; margin-inline: auto; }
.ac-profile-card h1 { margin: 0 0 .75rem; font-size: clamp(1.75rem, 4vw, 2.25rem); }
.ac-profile-card > p { line-height: 1.6; }
.ac-profile-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.ac-profile-fields .ac-field { min-inline-size: 0; }
.ac-profile-subjects { display: grid; gap: .75rem; border: 1px solid var(--theme-border, #ddc7b2); border-radius: .8rem; padding: 1rem; margin: .5rem 0 1.5rem; }
.ac-profile-subjects legend { padding-inline: .35rem; font-size: .875rem; }
.ac-profile-subjects label { display: flex; align-items: center; gap: .75rem; min-block-size: 2.75rem; cursor: pointer; }
.ac-profile-subjects input { inline-size: 1.15rem; block-size: 1.15rem; accent-color: var(--copper); }
.ac-profile-details { line-height: 1.65; overflow-wrap: anywhere; }
@media (max-width: 40rem) { .ac-profile-fields { grid-template-columns: minmax(0, 1fr); } .ac-profile-card .ac-button { inline-size: 100%; } }

.ac-select { position: relative; display: inline-block; min-inline-size: 0; max-inline-size: 100%; }
.ac-select-trigger { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; inline-size: 100%; min-block-size: 2.75rem; padding: .75rem .9rem; border: 1px solid var(--theme-border, #d8bea5); border-radius: .75rem; background: var(--theme-card, #fffdfa); color: var(--ink); font-size: .9375rem; text-align: start; }
.ac-select-trigger > span { min-inline-size: 0; overflow-wrap: anywhere; }
.ac-select-trigger svg { flex: 0 0 auto; inline-size: .8rem; block-size: .8rem; transition: transform .15s; }
.ac-select-trigger[aria-expanded="true"] { border-color: var(--copper); }
.ac-select-trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
.ac-select-options { position: absolute; z-index: 45; inset-inline: 0; inset-block-start: calc(100% + .4rem); display: grid; min-inline-size: 100%; overflow-y: auto; overscroll-behavior: contain; padding: .35rem; border: 1px solid var(--theme-border, #d8bea5); border-radius: .85rem; background: var(--theme-card, #fffdfa); box-shadow: 0 .75rem 2rem var(--theme-shadow, #30251d22); scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.ac-select.is-up .ac-select-options { inset-block-start: auto; inset-block-end: calc(100% + .4rem); }
.ac-select-options button { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-block-size: 2.75rem; padding: .65rem .7rem; border-radius: .5rem; color: var(--ink); font-size: .9375rem; text-align: start; }
.ac-select-options button:hover, .ac-select-options button:focus-visible, .ac-select-options [aria-selected="true"] { background: var(--theme-tint, #f3e6d7); outline: none; }
.ac-select-options button:focus-visible { box-shadow: inset 0 0 0 1px var(--copper); }
.ac-select-options i { flex-shrink: 0; font-style: normal; }
.ac-sort-label .ac-select { min-inline-size: 13rem; }
.ac-field > .ac-select { display: block; inline-size: 100%; }
@media (max-width: 40rem) { .ac-sort-label { inline-size: 100%; } .ac-sort-label .ac-select { flex: 1; } .ac-select-trigger, .ac-select-options button { font-size: 1rem; } }
