/* TAU MOOC product layer. Shared across public, student, teacher and admin pages. */
:root {
  --container: 1240px;
  --tau-wide: 1440px;
  --tau-narrow: 760px;
  --tau-gutter: clamp(16px, 3.2vw, 48px);
  --tau-wine: #681a3d;
  --tau-wine-dark: #351525;
  --tau-rose: #eac4d2;
  --page: #f8f6f2;
  --surface-soft: #f0ece8;
  --ink: #281c23;
  --ink-soft: #5e5058;
  --muted: #75676e;
  --line: #ded7d8;
  --line-strong: #cbbfc4;
  --shadow-sm: 0 14px 36px rgba(53,21,37,.075);
}
html { scroll-padding-top: 95px; }
html.site-menu-open { overflow: hidden; }
body { font-family: Onest, Arial, sans-serif; background: var(--page); color: var(--ink); }
body, #main-content, main { min-width: 0; }
img { height: auto; }
.site-container, .video-catalog, .video-watch-page.site-container, .video-watch.site-container {
  width: min(var(--container), calc(100% - 2 * var(--tau-gutter)));
  max-width: none;
  margin-inline: auto;
}
.site-container--wide { width: min(var(--tau-wide), calc(100% - 2 * var(--tau-gutter))); margin-inline: auto; }
.site-container--narrow { width: min(var(--tau-narrow), calc(100% - 2 * var(--tau-gutter))); margin-inline: auto; }
:where(h1,h2,h3) { text-wrap: balance; overflow-wrap: break-word; }
:where(p,li,dd) { overflow-wrap: break-word; }
:where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #9f3561; outline-offset: 3px; }
.site-skip-link { position: fixed; z-index: 200; left: var(--tau-gutter); top: 8px; padding: 12px 18px; color: white; background: var(--tau-wine); transform: translateY(-150%); }
.site-skip-link:focus { transform: translateY(0); }

/* The same compact shell and alignment on every route. */
.site-header, .site-header--home { position: sticky; top: 0; z-index: 90; padding: 0; background: rgba(248,246,242,.96); border: 0; border-bottom: 1px solid var(--line); box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.site-header__topline, .home-ticker, .site-nav--desktop, .site-mobile-menu, .site-header__actions--desktop { display: none !important; }
.site-header .site-header__inner { display: flex; width: min(var(--container), calc(100% - 2 * var(--tau-gutter))); min-height: 76px; align-items: center; justify-content: space-between; gap: 18px; padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.site-header.is-scrolled .site-header__inner { background: transparent; box-shadow: none; }
.site-brand { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 48px; color: var(--tau-wine-dark); }
.site-brand__wordmark { display: flex; align-items: baseline; gap: 8px; color: var(--tau-wine-dark); font-size: 27px; line-height: 1; letter-spacing: -.075em; }
.site-brand__wordmark strong { font-weight: 820; }
.site-brand__wordmark span { padding-left: 8px; border-left: 1px solid var(--tau-wine); font-size: 13px; font-weight: 680; letter-spacing: -.03em; }
.site-brand__wordmark strong { color: var(--tau-wine-dark); font-size: 27px; letter-spacing: -.075em; }
.site-brand__wordmark span { color: var(--tau-wine); font-size: 13px; letter-spacing: -.03em; }
.site-header__controls { display: flex; align-items: center; gap: 8px; }
.site-header__controls details { position: relative; }
.site-header__controls summary { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 9px; padding: 9px 14px; border-radius: 6px; color: var(--ink); font-size: 13px; font-weight: 680; list-style: none; cursor: pointer; }
.site-header__controls summary::-webkit-details-marker { display: none; }
.site-header__controls summary:hover, .site-header__controls details[open] > summary { background: #ebe5e4; }
.site-header__controls .site-header__login { display: inline-flex; min-height: 44px; align-items: center; gap: 17px; padding: 9px 17px; border: 1px solid var(--tau-wine); border-radius: 6px; color: #fff; background: var(--tau-wine); font-size: 13px; font-weight: 720; }
.site-header__controls .site-header__login:hover { background: var(--tau-wine-dark); border-color: var(--tau-wine-dark); }
.site-language-menu__panel, .site-account-menu__panel { position: absolute; top: calc(100% + 10px); right: 0; z-index: 95; min-width: 118px; padding: 6px; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow-sm); }
.site-language-menu__panel a, .site-account-menu__panel a { display: block; min-height: 42px; padding: 10px 12px; color: var(--ink); border-radius: 4px; font-size: 13px; white-space: nowrap; }
.site-language-menu__panel a:hover, .site-account-menu__panel a:hover, .site-language-menu__panel [aria-current] { color: var(--tau-wine); background: var(--tau-wine-soft); }
.site-account-menu__panel { min-width: 190px; }
.site-account-menu__panel form { margin: 0; }
.site-account-menu__panel button { display: block; width: 100%; min-height: 42px; padding: 10px 12px; border: 0; border-radius: 4px; background: transparent; color: var(--ink); font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
.site-account-menu__panel button:hover { color: var(--tau-wine); background: var(--tau-wine-soft); }
.site-account-menu__avatar { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; color: #fff; background: var(--tau-wine); }
.site-account-menu__name { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-menu > summary { min-width: 112px; color: #fff !important; background: var(--tau-wine-dark); }
.site-menu > summary:hover, .site-menu[open] > summary { background: var(--tau-wine) !important; }
.site-menu__glyph { display: grid; width: 17px; gap: 4px; }
.site-menu__glyph i { display: block; height: 1.5px; background: currentColor; transition: transform .2s ease; }
.site-menu[open] .site-menu__glyph i:first-child { transform: translateY(2.75px) rotate(45deg); }
.site-menu[open] .site-menu__glyph i:last-child { transform: translateY(-2.75px) rotate(-45deg); }
.site-menu__panel { position: fixed; z-index: 92; top: 76px; left: 0; right: 0; max-height: calc(100dvh - 76px); overflow: auto; color: #fff; background: var(--tau-wine-dark); box-shadow: 0 24px 36px rgba(25,8,17,.22); animation: tau-menu-in .24s ease both; }
.site-menu__content { padding-block: clamp(28px, 5vw, 66px) 30px; }
.site-menu__eyebrow { margin: 0 0 22px; color: #d9b5c4; font-size: 12px; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; }
.site-menu__eyebrow span { margin-inline: 8px; }
.site-menu__content nav { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 42px; }
.site-menu__content nav a { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: baseline; gap: 10px; padding: 17px 0 21px; color: #fff; border-top: 1px solid rgba(255,255,255,.2); font-size: clamp(28px, 3.8vw, 54px); font-weight: 580; letter-spacing: -.055em; line-height: 1.1; }
.site-menu__content nav a:hover, .site-menu__content nav a[aria-current] { color: #f0bed1; }
.site-menu__content nav a > span:last-child { display: none; }
.site-menu__content nav a:hover > span:last-child { transform: translate(3px,-3px); }
.site-menu__index { padding-top: 5px; color: #d2a7b9; font-size: 11px; font-weight: 700; letter-spacing: 0; }
.site-menu__bottom { display: flex; flex-wrap: wrap; gap: 18px 36px; margin-top: 40px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.2); }
.site-menu__bottom a { color: #ead3dd; font-size: 13px; }
@keyframes tau-menu-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

/* Type, common controls and calm editorial rhythm. */
.section-kicker, .catalog-page__eyebrow, .course-detail__eyebrow, .video-catalog__eyebrow { color: var(--tau-wine); font-size: 12px; font-weight: 730; letter-spacing: .1em; text-transform: uppercase; }
.tau-button, .video-catalog__submit { min-height: 46px; border-radius: 6px; font-size: 14px; font-weight: 690; }
.tau-button--primary { background: var(--tau-wine); border-color: var(--tau-wine); }
.tau-button--primary:hover { background: var(--tau-wine-dark); border-color: var(--tau-wine-dark); }
.text-link, .tau-text-link { font-weight: 700; text-underline-offset: 4px; }
input, select, textarea { min-width: 0; }
.empty-state, .catalog-course__empty, .video-results__empty { border: 1px solid var(--line); border-radius: 10px; background: #fff; }

/* Home: one clear action, disciplined collage and compact discovery. */
.home-page { overflow: clip; }
.home-hero { min-height: min(690px, calc(100svh - 76px)); gap: clamp(22px, 4vw, 64px); padding-block: clamp(36px, 5vw, 72px) clamp(38px, 5vw, 68px); }
.home-hero--collage { min-height: 0; padding-block: clamp(30px,3.4vw,50px) 22px; }
.home-hero--collage h1 { font-size: clamp(3.2rem,5.2vw,5.3rem); line-height: 1.01; }
.home-hero--collage .home-hero__lead { margin-top: 18px; font-size: clamp(16px,1.35vw,19px); }
.home-hero--collage .home-hero__actions { margin-top: 20px; }
.home-collage.is-carousel { height: clamp(235px,19vw,270px); margin-top: 18px; }
.home-collage.is-carousel .collage-card { width: clamp(210px,17.5vw,250px); }
.collage-card figcaption strong { display: -webkit-box; overflow: hidden; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.home-hero h1 { font-size: clamp(3rem, 5.7vw, 5.7rem); line-height: .99; }
.home-hero__lead { margin-top: 20px; font-size: clamp(16px, 1.4vw, 19px); line-height: 1.55; }
.home-hero__actions { margin-top: 27px; }
.home-search { padding-block: 24px; }
.home-search__intro h2 { font-size: clamp(20px,2vw,28px); }
.home-course-grid, .catalog-page__grid { gap: clamp(14px, 2vw, 24px); }
.home-course-card, .catalog-course { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: none; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.home-course-card:hover, .catalog-course:hover { border-color: #c4a9b5; box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.home-course-card__media, .catalog-course__media, .course-detail__visual { background: #eee5e7; }
.home-course-card__media { position: relative; }
.home-course-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; background: #f7f4f2; }
.home-course-card__media img.is-broken { display: none; }
.home-course-card__placeholder { aspect-ratio: 16/10; }
.home-course-card__media img, .catalog-course__media img, .course-detail__visual img { object-fit: contain; padding: clamp(12px, 2vw, 24px); }
.home-course-card__media img, .catalog-course__media img { aspect-ratio: 16/10; }
.home-course-card__body, .catalog-course__body { padding: clamp(17px, 2vw, 24px); }
.home-course-card__meta, .catalog-course__meta { font-size: 12px; letter-spacing: 0; }
.home-course-card h3, .catalog-course h2 { font-size: clamp(19px, 1.6vw, 23px); line-height: 1.25; }
.home-course-card__teacher, .catalog-course__teacher, .home-course-card__description, .catalog-course__description { font-size: 14px; }
.home-course-card__actions, .catalog-course__actions { flex-wrap: wrap; }
.home-course-card__actions .tau-button, .catalog-course__actions .tau-button { min-height: 42px; }

/* Courses and curriculum. */
.catalog-page { padding-top: clamp(30px,5vw,70px); padding-bottom: clamp(54px,7vw,94px); }
.catalog-heading h1 { font-size: clamp(2.3rem, 4.2vw, 4.4rem); letter-spacing: -.055em; }
.catalog-page__heading h1 { font-size: clamp(2.4rem,4vw,3.8rem); line-height: 1.06; }
.catalog-page__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.catalog-page__grid--single { grid-template-columns: 1fr; }
.catalog-course__media { aspect-ratio: 2 / 1; }
.catalog-page__count { color: var(--tau-wine); font-weight: 680; }
.catalog-page__results { color: var(--ink-soft); font-size: 13px; }
.catalog-course__fallback { background: var(--tau-wine-dark); }
.catalog-course__media:has(img:not(.is-broken)) .catalog-course__fallback { visibility: hidden; }
.catalog-course__media img { background: #f7f4f2; }
.catalog-course__media img.is-broken, .course-detail__visual img.is-broken { display: none; }
.course-detail__hero { gap: clamp(30px,5vw,72px); }
.course-detail__intro h1 { font-size: clamp(2.25rem,4.3vw,4.6rem); line-height: 1.06; }
.course-detail__description { max-width: 65ch; line-height: 1.65; }
.course-detail__visual img { width: 100%; height: 100%; }
.course-detail__facts dd { font-size: 15px; }
.course-detail__facts dt { font-size: 13px; }
.course-module__step-title small { font-size: 12px; line-height: 1.45; }
.course-detail__section-heading h2 { font-size: clamp(1.9rem,3vw,3.25rem); }
.course-module { border-color: var(--line); }
.course-module__step { min-height: 68px; }
.course-module__step-title strong { font-size: 15px; }
.course-module__step-arrow { color: var(--tau-wine); }

/* Media catalogue and lecture viewer. */
.video-catalog { padding-top: clamp(36px,5vw,70px); }
.video-catalog__hero { grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: clamp(28px,4vw,58px); padding-bottom: clamp(46px,5vw,68px); }
.video-catalog__hero h1 { font-size: clamp(2.7rem,5vw,5rem); }
.video-catalog__form { max-width: 650px; }
.video-card { border-radius: 8px; }
.video-card__poster, .video-feature__poster { aspect-ratio: 16/9; background: #35202d; }
.video-card__poster img, .video-feature__poster img { object-fit: contain; }
.video-card__teacher { font-size: 13px; }
.video-card__body h3 { font-size: clamp(17px,1.5vw,21px); line-height: 1.3; }
.video-card__index { display: none; }
.video-feature__position { display: none; }
.video-watch-page.site-container { width: min(var(--tau-wide), calc(100% - 2 * var(--tau-gutter))); padding-top: clamp(20px,3vw,42px); }
.video-watch-layout { grid-template-columns: minmax(0,2fr) minmax(300px,.8fr); gap: clamp(22px,3vw,42px); }
.video-watch-heading { padding-top: 22px; }
.video-watch-heading h1 { font-size: clamp(1.8rem,2.9vw,3.1rem); }
.video-watch-meta { margin-left: 0; font-size: 13px; }
.video-watch-playlist { background: #fff; color: var(--ink); border: 1px solid var(--line); border-radius: 8px; box-shadow: none; }
.video-watch-playlist .section-kicker { color: var(--tau-wine); }
.video-watch-playlist__head h2 { color: var(--ink); }
.video-watch-playlist__head > span { color: var(--ink-soft); background: var(--surface-soft); border-color: var(--line); }
.video-watch-playlist ol { scrollbar-color: #baa5af #f5f0f2; }
.video-watch-playlist li { border-left-color: transparent; }
.video-watch-playlist li:hover { background: #f8f1f4; }
.video-watch-playlist li.is-current { background: #f4e7ed; border-left-color: var(--tau-wine); }
.video-watch-playlist .video-watch-playlist__card { color: var(--ink); }
.video-watch-playlist__copy strong { color: var(--ink); font-size: 13px; }
.video-watch-playlist__copy > span { color: var(--ink-soft); font-size: 11px; }
.video-watch-playlist__copy small, .video-watch-playlist li:not(.is-current) small { color: var(--tau-wine); font-size: 10px; }
.video-watch-description { border-radius: 7px; }
.video-watch-comments { box-shadow: none; }
.video-watch-empty { padding: 12px 0; }

/* Forms and footer. */
.site-footer { background: #eee8e2; border-top: 1px solid #d9cec6; color: var(--ink); }
.site-footer .site-footer__links a { color: var(--tau-wine-dark); }
.site-footer .site-footer__links a:hover { color: var(--tau-wine); }
.site-footer .site-footer__brand p, .site-footer .site-footer__legal { color: #75616a; }
.site-footer .site-footer__legal { border-top-color: #d9cec6; }
.site-footer__inner { padding-block: 42px 25px; }
.site-footer__links a, .site-footer__brand p { font-size: 13px; }
.site-footer__legal { font-size: 12px; }

@media (max-width: 900px) {
  .video-catalog__hero, .video-catalog__hero.is-unfeatured { grid-template-columns: 1fr; }
  .video-watch-page.site-container { width: min(var(--container), calc(100% - 2 * var(--tau-gutter))); }
  .video-watch-layout { grid-template-columns: 1fr; }
  .video-watch-playlist { position: static; max-height: none; }
  .video-watch-playlist ol { max-height: none; overflow: visible; }
}
@media (max-width: 700px) {
  .site-header .site-header__inner { min-height: 66px; }
  .site-brand__wordmark { font-size: 24px; }
  .site-menu__panel { top: 66px; max-height: calc(100dvh - 66px); }
  .site-menu__content nav { grid-template-columns: 1fr; }
  .site-menu__content nav a { grid-template-columns: 34px minmax(0,1fr); font-size: clamp(31px, 9vw, 48px); }
  .site-menu__content nav a > span:last-child { display: none; }
  .site-account-menu__name { display: none; }
  .home-hero, .home-hero--collage { min-height: auto; padding-top: 36px; }
  .home-hero h1, .home-hero--collage h1 { font-size: clamp(3rem, 11vw, 4.7rem); }
  .home-collage, .home-collage.is-carousel { display: grid; width: 100%; height: auto; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 32px auto 0; overflow: visible; touch-action: auto; }
  .home-collage .collage-card, .home-collage.is-carousel .collage-card { position: relative; top: auto; left: auto; right: auto; width: 100%; min-width: 0; padding: 4px 4px 0; opacity: 1; transform: none; box-shadow: 0 8px 22px rgba(53,21,37,.1); will-change: auto; }
  .home-collage .collage-card--lab, .home-collage .collage-card--statistics, .home-collage .collage-card[aria-hidden="true"], .home-collage__spark { display: none !important; }
  .home-collage .collage-card figcaption { min-height: 52px; padding: 7px 4px; }
  .home-collage .collage-card figcaption strong { font-size: 11px; }
  .home-search { gap: 16px; }
  .home-course-grid, .catalog-page__grid { grid-template-columns: 1fr; }
  .course-search { grid-template-columns: minmax(0,1fr); }
  .course-search__result { grid-column: 1; }
  .catalog-page__search { margin-top: 25px; }
  .site-footer__inner { grid-template-columns: 1fr; gap: 22px; }
  .site-footer__links { justify-content: flex-start; }
}
@media (max-width: 420px) {
  .video-catalog__form input[type="search"] { padding-right: 4px; font-size: 12px; }
  .video-catalog__form:has(.video-catalog__clear) input[type="search"] { padding-right: 32px; }
  .site-header__controls { gap: 2px; }
  .site-header__controls summary { padding-inline: 8px; }
  .site-menu > summary { min-width: 45px; }
  .site-menu > summary > span:first-child { display: none; }
  .site-header__controls .site-header__login { padding-inline: 11px; }
  .site-header__controls .site-header__login span { display: none; }
  .site-menu__content nav a { grid-template-columns: 26px minmax(0,1fr); font-size: 29px; }
  .home-hero__actions .tau-button { width: 100%; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .home-collage:not(.is-carousel) { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; width: 100%; height: auto; margin-top: 24px; }
  .home-collage:not(.is-carousel) .collage-card { position: relative; inset: auto; width: 100%; min-width: 0; transform: none; box-shadow: none; will-change: auto; }
  .home-collage:not(.is-carousel) .home-collage__spark { display: none; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 700px) {
  .home-collage:not(.is-carousel) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Editorial image cards: quiet frame, consistent cropping and room for real captions. */
.home-collage:not(.is-carousel) { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; width: 100%; height: auto; margin-top: 26px; }
.home-collage:not(.is-carousel) .collage-card { position: relative; inset: auto; width: 100%; min-width: 0; transform: none; will-change: auto; }
.collage-card { padding: 6px; color: var(--ink); background: #fff; border: 1px solid #d9cdd1; border-radius: 5px; box-shadow: 0 15px 35px rgba(53,21,37,.11); }
.collage-card__screen { aspect-ratio: 4/3; background: #f3f0ed; }
.collage-card__screen img { object-fit: cover; }
.collage-card.is-contain .collage-card__screen img { object-fit: contain; padding: 8px; background: #f3f0ed; }
.collage-card figcaption { min-height: 62px; padding: 10px 9px 8px; background: #fff; }
.collage-card figcaption span { color: var(--tau-wine); font-size: 10px; letter-spacing: .08em; }
.collage-card figcaption strong { color: var(--ink); font-size: 13px; font-weight: 670; line-height: 1.25; }
.home-collage.is-carousel .collage-card { filter: saturate(.94); }
.home-collage.is-carousel .collage-card:hover { filter: saturate(1.08); box-shadow: 0 27px 50px rgba(53,21,37,.22); }

/* The menu grows out of the header and leaves the current page in context. */
.site-header { animation: tau-header-reveal .48s cubic-bezier(.2,.8,.2,1) both; transition: background-color .25s ease, box-shadow .25s ease, border-color .25s ease; }
.site-header.is-scrolled { box-shadow: 0 10px 26px rgba(53,21,37,.09); border-bottom-color: #cdbfc4; }
.site-menu__backdrop { position: fixed; inset: 76px 0 auto; height: calc(100dvh - 76px); z-index: 1; background: rgba(30,16,24,.38); backdrop-filter: none; -webkit-backdrop-filter: none; animation: tau-menu-shade .3s ease both; }
.site-menu__panel { z-index: 2; left: 50%; right: auto; width: min(var(--container), calc(100% - 2 * var(--tau-gutter))); border: 1px solid rgba(255,255,255,.13); border-top: 0; border-radius: 0 0 12px 12px; animation: tau-mega-open .38s cubic-bezier(.19,1,.22,1) both; transform-origin: top center; }
.site-menu__content nav a { opacity: 0; animation: tau-menu-link .45s cubic-bezier(.19,1,.22,1) both; }
.site-menu__content nav a:nth-child(1) { animation-delay: .08s; }
.site-menu__content nav a:nth-child(2) { animation-delay: .13s; }
.site-menu__content nav a:nth-child(3) { animation-delay: .18s; }
.site-menu__content nav a:nth-child(4) { animation-delay: .23s; }
.site-menu__content nav a:nth-child(5) { animation-delay: .28s; }
.site-menu[data-closing] .site-menu__panel { animation: tau-mega-close .24s cubic-bezier(.4,0,.7,.2) both; }
.site-menu[data-closing] .site-menu__backdrop { animation: tau-menu-unshade .22s ease both; }
@keyframes tau-header-reveal { from { opacity: 0; translate: 0 -10px; } to { opacity: 1; translate: 0 0; } }
@keyframes tau-menu-shade { from { opacity: 0; } to { opacity: 1; } }
@keyframes tau-mega-open { from { opacity: 0; transform: translate3d(-50%,-14px,0) scale(.985); } to { opacity: 1; transform: translate3d(-50%,0,0) scale(1); } }
@keyframes tau-mega-close { from { opacity: 1; transform: translate3d(-50%,0,0) scale(1); } to { opacity: 0; transform: translate3d(-50%,-12px,0) scale(.985); } }
@keyframes tau-menu-unshade { from { opacity: 1; } to { opacity: 0; } }
@keyframes tau-menu-link { from { opacity: 0; transform: translateY(13px); } to { opacity: 1; transform: translateY(0); } }

/* Admin image and caption editor. */
.admin-dashboard__site-cards { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 12px 0 50px; padding: 22px 24px; color: var(--ink); background: #f1e8ec; border: 1px solid #dfcbd4; border-radius: 8px; }
.admin-dashboard__site-cards span:first-child { display: grid; gap: 4px; }
.admin-dashboard__site-cards strong { font-size: 19px; }
.admin-dashboard__site-cards small { color: var(--ink-soft); font-size: 13px; }
.admin-dashboard__site-cards > span:last-child { color: var(--tau-wine); font-size: 25px; }
.admin-dashboard__site-cards:hover { background: #eadce3; }
.site-card-editor { padding-block: clamp(36px,5vw,72px) 100px; }
.site-card-editor__intro { max-width: 780px; margin-bottom: 38px; }
.site-card-editor__intro h1 { margin: 10px 0 12px; font-size: clamp(2.6rem,5vw,5rem); line-height: 1; letter-spacing: -.055em; }
.site-card-editor__intro p:not(.section-kicker) { max-width: 65ch; color: var(--ink-soft); font-size: 16px; line-height: 1.6; }
.site-card-editor__intro .text-link { display: inline-block; margin-top: 16px; }
.site-card-editor__message { margin: 0 0 24px; padding: 13px 17px; color: #23614b; background: #e8f3ec; border: 1px solid #a9d2bc; border-radius: 6px; }
.site-card-editor__message.is-error { color: #8d2149; background: #f9e9ee; border-color: #e6b7c7; }
.site-card-editor__section { padding-top: 30px; border-top: 1px solid var(--line); }
.site-card-editor__section + .site-card-editor__section { margin-top: 75px; }
.site-card-editor__section-head { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin-bottom: 24px; }
.site-card-editor__section-head h2 { margin-top: 8px; font-size: clamp(2rem,3vw,3.2rem); letter-spacing: -.045em; }
.site-card-editor__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.site-card-editor__card { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.site-card-editor__preview { aspect-ratio: 16/8; overflow: hidden; background: #f0ece8; }
.site-card-editor__preview img { width: 100%; height: 100%; object-fit: contain; }
.site-card-editor__card-body { display: grid; gap: 15px; padding: 20px; }
.site-card-editor__card-top { display: flex; justify-content: space-between; gap: 10px; align-items: center; color: var(--tau-wine); font-size: 13px; font-weight: 700; }
.site-card-editor__card-top label { display: flex; align-items: center; gap: 7px; color: var(--ink); font-weight: 550; }
.site-card-editor label { display: grid; gap: 7px; font-size: 13px; font-weight: 650; }
.site-card-editor input:not([type="checkbox"]), .site-card-editor select { width: 100%; min-height: 43px; padding: 9px 11px; color: var(--ink); background: #f8f6f2; border: 1px solid var(--line-strong); border-radius: 5px; font-size: 14px; }
.site-card-editor input[type="file"] { padding: 8px; }
.site-card-editor input[type="checkbox"] { accent-color: var(--tau-wine); }
.site-card-editor__hint { margin-top: -10px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.site-card-editor__language { display: grid; gap: 12px; padding: 15px; background: #f8f6f2; border: 1px solid var(--line); border-radius: 6px; }
.site-card-editor__language > strong { color: var(--tau-wine); font-size: 12px; letter-spacing: .08em; }
.site-card-editor__translations { border-top: 1px solid var(--line); padding-top: 11px; }
.site-card-editor__translations summary { color: var(--tau-wine); font-weight: 700; cursor: pointer; }
.site-card-editor__translations .site-card-editor__language { margin-top: 12px; }
.site-card-editor__card .tau-button { width: 100%; justify-content: space-between; }
.site-card-editor__add { margin-top: 20px; padding: 17px 20px; background: #f0e8ec; border: 1px solid #dfcbd4; border-radius: 8px; }
.site-card-editor__add > summary { display: flex; justify-content: space-between; color: var(--tau-wine); font-size: 18px; font-weight: 700; cursor: pointer; }
.site-card-editor__add form { display: grid; gap: 16px; padding-top: 20px; }
.site-card-editor__new-languages { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }

@media (max-width: 900px) { .site-card-editor__new-languages { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .home-collage:not(.is-carousel) { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .home-collage .collage-card { display: block !important; }
  .home-collage.is-carousel { display: block; width: 100vw; height: 315px; margin: 24px 0 0 calc(50% - 50vw); overflow: hidden; touch-action: pan-y; }
  .home-collage.is-carousel .collage-card { position: absolute; top: 0; right: auto; left: 50%; width: min(68vw,250px); opacity: var(--orbit-opacity,1); transform: translate3d(calc(-50% + var(--orbit-x,0px)),var(--orbit-y,0px),0) rotate(var(--orbit-rotate,0deg)) scale(var(--orbit-scale,1)); will-change: transform; }
  .home-collage.is-carousel .collage-card[aria-hidden="true"] { display: block !important; }
  .home-collage.is-carousel .home-collage__spark { display: none !important; }
  .site-menu__backdrop { top: 66px; height: calc(100dvh - 66px); }
  .site-menu__panel { top: 66px; width: 100%; border-radius: 0 0 10px 10px; }
  .site-card-editor__grid { grid-template-columns: 1fr; }
}

/* The landing page contains only the introduction and its moving cards. */
.home-page { min-height: calc(100svh - 76px); }
.home-hero--collage { padding-bottom: 38px; }

/* Shared auth artwork follows a wide arc behind a compact, readable form. */
.site-menu__panel, .video-watch-playlist ol, .video-watch__playlist-list { overscroll-behavior-y: contain; }
@media (max-width: 700px) {
  .home-page { min-height: calc(100svh - 66px); }
}
/* Compositor-only motion: avoid repainting the full menu mask each frame. */
.site-menu[open] .site-menu__panel { will-change: transform, opacity; }
.site-menu[open] .site-menu__backdrop { will-change: opacity; }
/* Orbit cards own their opacity/transform; shared entrance motion must not override it. */
.has-motion .home-collage.is-carousel .collage-card.motion-pending,
.has-motion .home-collage.is-carousel .collage-card.motion-shown { opacity: var(--orbit-opacity,1); translate: none; scale: 1; }
.home-collage.is-carousel .collage-card { contain: layout style; }
[data-no-arrow] { display: none !important; }
.course-module__step { grid-template-columns: 38px minmax(0,1fr); }

/* A saved rating keeps the same outlined button as an unselected rating. */
.catalog-page__grid:not(.catalog-page__grid--single) .catalog-course {
  display: flex;
  flex-direction: column;
}
.catalog-page__grid:not(.catalog-page__grid--single) .catalog-course__media {
  flex-shrink: 0;
}
.catalog-page__grid:not(.catalog-page__grid--single) .catalog-course__body {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.catalog-page__grid:not(.catalog-page__grid--single) .catalog-course__description {
  flex: 1;
}
.catalog-course__actions :is(.catalog-course__rate, .tau-button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px !important;
  height: 42px;
  box-sizing: border-box;
}
.catalog-course__actions .catalog-course__rate[aria-pressed="true"] {
  color: var(--tau-wine);
  background: #fff;
  border-color: var(--line-strong);
}
.catalog-course__actions .catalog-course__rate:hover {
  color: #fff;
  background: var(--tau-wine);
  border-color: var(--tau-wine);
}

