:root {
  --ink: #0a0a0a;
  --paper: #ffffff;
  --teal: #16b9b4;
  --teal-dark: #087f7b;
  --neon: #d9ff00;
  --muted: #656565;
  --shadow: 10px 10px 0 var(--ink);
}

* { box-sizing: border-box; }

body {
  min-width: 320px;
  margin: 0;
  color: var(--ink);
  font-family: "DM Sans", Arial, sans-serif;
  background: var(--paper);
}

.platform-home { color: var(--paper); background: var(--ink); }
.streaming-home { width: min(100% - 32px, 1180px); margin: 0 auto; padding: 22px 0 40px; }
.platform-header { margin-bottom: 24px; }
.platform-header .brand { color: var(--paper); }
.platform-header .activity-label { border-color: var(--teal); color: var(--paper); background: transparent; }
.platform-hero { position: relative; display: grid; min-height: min(570px, 72vw); grid-template-columns: 1fr; align-items: end; overflow: hidden; border: 4px solid var(--paper); background: #123; box-shadow: 8px 8px 0 var(--teal); }
.platform-hero::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(0, 0, 0, 0.93) 0%, rgba(0, 0, 0, 0.6) 43%, rgba(0, 0, 0, 0.1) 100%), linear-gradient(0deg, rgba(0, 0, 0, 0.45), transparent 60%); }
.platform-feature-poster { position: absolute; inset: 0; display: block; overflow: hidden; border-radius: inherit; }
.platform-feature-poster img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 31%; opacity: 0.8; }
.platform-hero-content { position: relative; z-index: 1; width: min(100%, 620px); padding: clamp(28px, 6vw, 70px); }
.platform-hero-content .eyebrow { color: var(--neon); }
.platform-hero h1 { margin: 0; color: var(--paper); font-size: clamp(3rem, 8vw, 6.5rem); }
.hero-accent { color: var(--neon); }
.platform-hero-content > p:not(.eyebrow) { max-width: 540px; margin: 14px 0 25px; color: #f0f0f0; font-size: clamp(1rem, 2vw, 1.15rem); line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.hero-actions .activity-link { background: var(--neon); }
.hero-secondary { color: var(--paper); font-weight: 800; text-decoration-color: var(--teal); text-decoration-thickness: 3px; text-underline-offset: 5px; }
.activity-shelf { margin-top: clamp(56px, 10vw, 90px); }
.shelf-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.shelf-heading .eyebrow { color: var(--teal); }
.shelf-heading h2 { margin: 0; color: var(--paper); font-size: clamp(1.7rem, 4vw, 2.5rem); }
.carousel-controls { display: flex; gap: 8px; }
.carousel-button { display: grid; width: 39px; height: 39px; place-items: center; border: 2px solid var(--paper); color: var(--paper); background: transparent; font-size: 1.2rem; cursor: pointer; }
.carousel-button:hover, .carousel-button:focus-visible { color: var(--ink); background: var(--neon); outline: 0; }
.poster-carousel { display: flex; gap: 20px; overflow-x: auto; padding: 4px 3px 16px; scroll-snap-type: x mandatory; scrollbar-color: var(--teal) #303030; }
.movie-tile { flex: 0 0 min(280px, 72vw); scroll-snap-align: start; }
.movie-poster-link { position: relative; display: block; overflow: hidden; border: 3px solid var(--paper); background: #222; box-shadow: 5px 5px 0 rgba(22, 185, 180, 0.75); }
.movie-poster-link img { display: block; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; transition: transform 180ms ease, opacity 180ms ease; }
.play-overlay { position: absolute; right: 15px; bottom: 15px; display: grid; width: 48px; height: 48px; place-items: center; color: var(--ink); background: var(--neon); opacity: 0; transform: translateY(8px); transition: opacity 160ms ease, transform 160ms ease; }
.movie-poster-link:hover img, .movie-poster-link:focus-visible img { opacity: 0.68; transform: scale(1.04); }
.movie-poster-link:hover .play-overlay, .movie-poster-link:focus-visible .play-overlay { opacity: 1; transform: translateY(0); }
.movie-meta h3 { margin: 14px 0 3px; color: var(--paper); font-family: "Josefin Sans", sans-serif; font-size: 1.23rem; }
.movie-meta p { margin: 0; color: #bdbdbd; font-size: 0.85rem; }.movie-meta span { color: var(--neon); font-weight: 800; }
.platform-note { display: flex; align-items: center; gap: 20px; margin-top: clamp(50px, 9vw, 80px); padding: 24px; border: 3px solid var(--teal); background: #102c2b; }
.platform-note > span { font-size: 2.6rem; }.platform-note h2 { margin: 0; color: var(--paper); font-size: 1.35rem; }.platform-note p { margin: 5px 0 0; color: #d4e7e6; line-height: 1.45; }
.instagram-cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; border: 2px solid var(--paper); padding: 9px 12px; color: var(--paper); background: #d62976; font-size: 0.84rem; font-weight: 900; text-decoration: none; }.instagram-cta:hover, .instagram-cta:focus-visible { color: var(--ink); background: var(--neon); outline: 0; }
.platform-home .site-footer { color: #a4a4a4; }.platform-home .site-footer a { color: var(--teal); }

/* Activity pages: streaming-library dark theme */
body:not(.platform-home) { color: var(--paper); background: var(--ink); }
body:not(.platform-home) .brand { color: var(--paper); }
body:not(.platform-home) .activity-label { border-color: var(--teal); color: var(--paper); background: transparent; }
body:not(.platform-home) h1, body:not(.platform-home) h2 { color: var(--paper); }
body:not(.platform-home) .intro, body:not(.platform-home) .activity-heading p, body:not(.platform-home) .placeholder-content p { color: #c8d2d2; }
body:not(.platform-home) .activity-card { border-color: var(--paper); background: #101515; box-shadow: 7px 7px 0 var(--teal); }
body:not(.platform-home) .film-strip { background: linear-gradient(90deg, var(--paper) 50%, transparent 50%) 0 0 / 42px 32px, linear-gradient(90deg, transparent 50%, var(--paper) 50%) 21px 0 / 42px 32px, var(--teal); }
body:not(.platform-home) .score { border-color: var(--paper); color: var(--ink) !important; }
body:not(.platform-home) .site-footer { color: #b7c1c1; }.site-footer a { color: var(--teal); }
body:not(.platform-home) .progress-panel, body:not(.platform-home) .lesson-section { border-color: var(--paper); background: #101515; box-shadow: 6px 6px 0 rgba(22, 185, 180, 0.65); }
body:not(.platform-home) .progress-track { border-color: var(--paper); background: #293232; }
body:not(.platform-home) .lesson-intro { color: #c8d2d2; }
body:not(.platform-home) .lesson-section summary { color: var(--ink); }
body:not(.platform-home) .lesson-section summary small { color: #183131; }
body:not(.platform-home) .lesson-section-content { background: #101515; }
body:not(.platform-home) .section-lead, body:not(.platform-home) .mini-heading > p:not(.eyebrow) { color: #c8d2d2; }
body:not(.platform-home) .question-carousel-shell { border-color: var(--paper); background: #1c2424; }
body:not(.platform-home) .question-carousel-toolbar { border-color: var(--paper); }
body:not(.platform-home) .question-carousel-button { border-color: var(--paper); color: var(--paper); background: var(--ink); }
body:not(.platform-home) .question-card { border-color: #678080; color: var(--paper); background: #172020; }
body:not(.platform-home) .question-card.is-correct { border-color: var(--teal); background: #12302e; }
body:not(.platform-home) .answer-choice { border-color: var(--paper); color: var(--paper); background: #111818; }
body:not(.platform-home) .answer-choice span { border-color: var(--paper); }
body:not(.platform-home) .question-feedback { border-color: var(--paper); border-left-color: var(--teal); color: var(--paper); background: #12413d; }
body:not(.platform-home) .question-card:not(.is-correct) .question-feedback { border-left-color: var(--neon); color: var(--ink); background: var(--neon); }
body:not(.platform-home) .word-grid { border-color: var(--paper); background: var(--paper); }
body:not(.platform-home) .letter { color: var(--paper); background: #172020; }
body:not(.platform-home) .letter:hover, body:not(.platform-home) .letter:focus-visible { outline-color: var(--paper); color: var(--ink); }
body:not(.platform-home) .word-list { border-color: var(--teal); }.word-list-title { color: var(--paper); }
body:not(.platform-home) .word-item { border-color: #496060; }.word-item small, body:not(.platform-home) .empty-log { color: #b7c1c1; }
body:not(.platform-home) .watch-item { border-color: var(--paper); color: var(--paper); background: #172020; }
body:not(.platform-home) .watch-item:hover, body:not(.platform-home) .watch-item:focus-visible { background: #203434; }
body:not(.platform-home) .watch-item span { border-color: var(--paper); }
body:not(.platform-home) .watching-tip { color: #dce8e8; background: #1d2929; }
body:not(.platform-home) .correction-card { border-color: #678080; background: #172020; }.correction-card.is-correct { background: #12302e; }
body:not(.platform-home) .check-rocky { border-color: var(--paper); color: var(--paper); background: var(--ink); }
body:not(.platform-home) .writing-card { border-color: var(--paper); background: #12302e; }
body:not(.platform-home) .writing-card textarea, body:not(.platform-home) .writing-card input { border-color: var(--paper); color: var(--paper); background: #111818; }
body:not(.platform-home) .report-card { border-color: var(--paper); color: var(--ink); box-shadow: 7px 7px 0 var(--teal); }.report-card h2 { color: var(--ink); }
body:not(.platform-home) .match-button { border-color: var(--paper); color: var(--paper); background: #172020; }.term-button { background: #12302e; }
body:not(.platform-home) .match-button.matched { color: var(--paper); border-color: var(--teal); background: #12413d; }
body:not(.platform-home) .home-button { border-color: var(--paper); color: var(--paper); background: #111818; }
body:not(.platform-home) #reset-button, body:not(.platform-home) #reset-matching { border-color: var(--paper); }

/* White learning surfaces on the dark streaming background */
body:not(.platform-home) .activity-card { color: var(--ink); background: var(--paper); }
body:not(.platform-home) .activity-card h2, body:not(.platform-home) .activity-card h3 { color: var(--ink); }
body:not(.platform-home) .activity-heading p, body:not(.platform-home) .placeholder-content p { color: var(--muted); }
body:not(.platform-home) .progress-panel, body:not(.platform-home) .lesson-section { color: var(--ink); background: var(--paper); }
body:not(.platform-home) .progress-panel strong { color: var(--ink); }
body:not(.platform-home) .progress-track { border-color: var(--ink); background: #e9e9e9; }
body:not(.platform-home) .lesson-section-content { color: var(--ink); background: var(--paper); }
body:not(.platform-home) .lesson-section-content h2 { color: var(--ink); }
body:not(.platform-home) .section-lead, body:not(.platform-home) .mini-heading > p:not(.eyebrow) { color: var(--muted); }
body:not(.platform-home) .question-carousel-shell { border-color: var(--ink); background: #f7f7f7; }
body:not(.platform-home) .question-carousel-toolbar { border-color: var(--ink); }
body:not(.platform-home) .question-carousel-button { border-color: var(--ink); color: var(--ink); background: var(--paper); }
body:not(.platform-home) .question-card { border-color: #cfcfcf; color: var(--ink); background: var(--paper); }
body:not(.platform-home) .question-card.is-correct { border-color: var(--teal-dark); background: #f0fffd; }
body:not(.platform-home) .answer-choice { border-color: var(--ink); color: var(--ink); background: var(--paper); }
body:not(.platform-home) .answer-choice span { border-color: var(--ink); }
body:not(.platform-home) .question-feedback { border-color: var(--ink); border-left-color: var(--teal-dark); color: var(--ink); background: #d6f6ef; }
body:not(.platform-home) .question-card:not(.is-correct) .question-feedback { border-left-color: #e29a00; color: var(--ink); background: #fff1bf; }
body:not(.platform-home) .word-grid { border-color: var(--ink); background: var(--ink); }
body:not(.platform-home) .letter { color: var(--ink); background: var(--paper); }
body:not(.platform-home) .letter:hover, body:not(.platform-home) .letter:focus-visible { outline-color: var(--ink); }
body:not(.platform-home) .word-list-title { color: var(--ink); }.word-list-title { color: var(--ink); }
body:not(.platform-home) .word-item { border-color: #d7d7d7; }.word-item small, body:not(.platform-home) .empty-log { color: var(--muted); }
body:not(.platform-home) .watch-item { border-color: var(--ink); color: var(--ink); background: var(--paper); }
body:not(.platform-home) .watch-item:hover, body:not(.platform-home) .watch-item:focus-visible { background: #eefefd; }
body:not(.platform-home) .watch-item span { border-color: var(--ink); }
body:not(.platform-home) .watching-tip { color: #454545; background: #f7f7f7; }
body:not(.platform-home) .correction-card { border-color: #cfcfcf; color: var(--ink); background: var(--paper); }.correction-card.is-correct { background: #f0fffd; }
body:not(.platform-home) .check-rocky { border-color: var(--ink); color: var(--paper); background: var(--ink); }
body:not(.platform-home) .writing-card { border-color: var(--ink); color: var(--ink); background: #eefefd; }
body:not(.platform-home) .writing-card h2 { color: var(--ink); }
body:not(.platform-home) .writing-card textarea, body:not(.platform-home) .writing-card input { border-color: var(--ink); color: var(--ink); background: var(--paper); }
body:not(.platform-home) .match-button { border-color: var(--ink); color: var(--ink); background: var(--paper); }.term-button { background: #eefefd; }
body:not(.platform-home) .match-button.matched { color: var(--teal-dark); border-color: var(--teal-dark); background: #d6f6ef; }
body:not(.platform-home) .home-button { border-color: var(--ink); color: var(--ink); background: var(--paper); }
body:not(.platform-home) #reset-button, body:not(.platform-home) #reset-matching { border-color: var(--ink); }
body:not(.platform-home) .report-card h2 { color: var(--ink); }

/* Restore interactive states above the white-surface rules */
body:not(.platform-home) .answer-choice:hover, body:not(.platform-home) .answer-choice:focus-visible, body:not(.platform-home) .answer-choice.selected { color: var(--ink); background: var(--neon); outline: 0; }
body:not(.platform-home) .match-button:hover:not(:disabled), body:not(.platform-home) .match-button:focus-visible:not(:disabled), body:not(.platform-home) .match-button.selected { color: var(--ink); background: var(--neon); outline: 0; box-shadow: 4px 4px 0 var(--ink); transform: translate(-2px, -2px); }
body:not(.platform-home) .watch-item.done { border-color: var(--teal-dark); color: var(--ink); background: #d6f6ef; }
body:not(.platform-home) .letter.color-0 { color: var(--ink); background: var(--teal); }
body:not(.platform-home) .letter.color-1 { color: var(--ink); background: var(--neon); }
body:not(.platform-home) .letter.color-2 { color: var(--ink); background: #bcecff; }
body:not(.platform-home) .letter.color-3 { color: var(--ink); background: #ffc4e5; }

.activity-page { width: min(100% - 32px, 960px); margin: 0 auto; padding: 28px 0 34px; }

.site-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.header-account { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.member-button { border: 2px solid var(--ink); padding: 7px 10px; color: var(--ink); background: var(--neon); font: 800 0.75rem "DM Sans", sans-serif; cursor: pointer; white-space: nowrap; }
.member-button:hover, .member-button:focus-visible { color: var(--paper); background: var(--teal-dark); outline: 0; }
.member-status { color: var(--muted); font-size: 0.77rem; font-weight: 700; white-space: nowrap; }
.platform-header .member-button { border-color: var(--paper); color: var(--ink); }.platform-header .member-status { color: #c5d3d3; }
.auth-modal { width: min(100% - 30px, 450px); border: 4px solid var(--ink); padding: 0; color: var(--ink); background: var(--paper); box-shadow: 9px 9px 0 var(--teal-dark); }.auth-modal::backdrop { background: rgba(0, 0, 0, 0.7); }
.auth-form { position: relative; padding: 30px; }.auth-form h2 { margin-top: 0; }.auth-form > p:not(.eyebrow) { color: var(--muted); line-height: 1.5; }.auth-form label { display: block; margin: 18px 0 7px; font-size: 0.85rem; font-weight: 800; }.auth-form input { width: 100%; border: 2px solid var(--ink); padding: 11px; font: 0.95rem "DM Sans", sans-serif; }.auth-form .activity-link { margin-top: 16px; }.modal-close { position: absolute; top: 10px; right: 10px; border: 0; color: var(--ink); background: transparent; font-size: 1.5rem; cursor: pointer; }.auth-message { min-height: 21px; margin: 14px 0 0; color: var(--teal-dark); font-size: 0.88rem; font-weight: 800; }

.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); font: 700 clamp(1rem, 3vw, 1.35rem) "Josefin Sans", sans-serif; letter-spacing: -0.04em; text-decoration: none; }
.brand strong { color: var(--teal); }
.brand-logo { width: 42px; height: 42px; border: 2px solid var(--teal); object-fit: cover; object-position: center; }

.activity-label { padding: 7px 11px; border: 2px solid var(--ink); color: var(--ink); background: var(--neon); font-size: 0.77rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }

.hero { max-width: 640px; margin: clamp(52px, 11vw, 96px) auto 34px; text-align: center; }
.movie-hero { max-width: 780px; display: grid; grid-template-columns: 1fr 150px; align-items: center; gap: clamp(22px, 5vw, 52px); text-align: left; }
.movie-hero .intro { margin-left: 0; }
.hero-poster, .featured-poster { display: block; border: 3px solid var(--ink); box-shadow: 6px 6px 0 var(--teal); object-fit: cover; }
.hero-poster { width: 150px; }
.eyebrow { margin: 0 0 10px; color: var(--teal-dark); font-weight: 800; font-size: 0.9rem; letter-spacing: 0.08em; text-transform: uppercase; }
h1, h2 { font-family: "Josefin Sans", sans-serif; }
h1 { margin: 0; font-size: clamp(2.3rem, 7vw, 4.6rem); line-height: 0.96; letter-spacing: -0.055em; }
.intro { margin: 20px auto 0; max-width: 500px; color: var(--muted); font-size: clamp(1rem, 2.4vw, 1.15rem); line-height: 1.55; }

.activity-card { position: relative; min-height: 380px; overflow: hidden; border: 5px solid var(--ink); border-radius: 0; background: var(--paper); box-shadow: var(--shadow); }
.film-strip { height: 32px; background: linear-gradient(90deg, var(--ink) 50%, transparent 50%) 0 0 / 42px 32px, linear-gradient(90deg, transparent 50%, var(--ink) 50%) 21px 0 / 42px 32px, var(--teal); }
.word-search-content { padding: clamp(20px, 5vw, 42px); }
.activity-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
h2 { margin: 0; font-size: clamp(1.65rem, 4vw, 2.3rem); letter-spacing: -0.04em; }
.activity-heading p { max-width: 530px; margin: 9px 0 0; color: var(--muted); line-height: 1.5; }
.score { flex: 0 0 auto; padding: 8px 12px; border: 2px solid var(--ink); color: var(--ink) !important; background: var(--neon); font-weight: 800; }
.puzzle-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, 0.67fr); align-items: start; gap: clamp(24px, 5vw, 46px); }
.word-grid { display: grid; grid-template-columns: repeat(12, 1fr); width: 100%; border: 3px solid var(--ink); background: var(--ink); gap: 2px; }
.letter { aspect-ratio: 1; min-width: 0; padding: 0; border: 0; color: var(--ink); background: var(--paper); font: 700 clamp(0.8rem, 2.5vw, 1.25rem) "Josefin Sans", sans-serif; cursor: pointer; transition: transform 120ms ease, background 160ms ease; }
.letter:hover, .letter:focus-visible { position: relative; z-index: 1; outline: 3px solid var(--ink); outline-offset: -3px; color: var(--ink); background: var(--neon); transform: scale(1.08); }
.letter.found { cursor: default; color: var(--ink); }
.letter.found:hover, .letter.found:focus-visible { transform: none; outline: 0; }
.letter.color-0 { background: var(--teal); }
.letter.color-1 { background: var(--neon); }
.letter.color-2 { background: #bcecff; }
.letter.color-3 { background: #ffc4e5; }
.word-list { border-top: 4px solid var(--teal); }
.word-list-title { margin: 13px 0 12px; color: var(--ink); font-weight: 900; text-transform: uppercase; letter-spacing: 0.08em; }
.word-list ul { display: grid; gap: 7px; padding: 0; margin: 0; list-style: none; }
.word-item { display: grid; grid-template-columns: 34px 1fr 22px; gap: 9px; align-items: center; padding: 8px 4px; border-bottom: 1px solid #d7d7d7; }
.word-emoji { display: grid; width: 31px; height: 31px; place-items: center; background: #eefefd; font-size: 1.1rem; }
.word-item strong { display: block; font-size: 0.94rem; letter-spacing: 0.035em; }
.word-item small { display: block; margin-top: 1px; color: var(--muted); font-size: 0.71rem; line-height: 1.25; }
.word-item.is-found { color: var(--teal-dark); }
.word-item.is-found strong { text-decoration: line-through 2px var(--teal); }
.word-item.is-found .word-emoji { filter: grayscale(1); }
.word-item:not(.is-found) .found-mark { color: transparent; background: transparent; border: 2px solid #d7d7d7; }
.found-mark { display: grid; width: 20px; height: 20px; place-items: center; color: var(--paper); background: var(--teal-dark); border-radius: 50%; font-weight: 900; }
.activity-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 28px; min-height: 42px; }
.activity-buttons { display: flex; flex-wrap: wrap; gap: 10px; }
.completion-message { margin: 0; color: var(--teal-dark); font-weight: 800; }
.activity-save-status { margin: 15px 0 0; color: var(--muted); font-size: 0.8rem; font-weight: 700; text-align: right; }
#reset-button, #reset-matching { border: 3px solid var(--ink); padding: 9px 14px; color: var(--paper); background: var(--ink); font: 800 0.85rem "DM Sans", sans-serif; cursor: pointer; }
#reset-button:hover, #reset-button:focus-visible, #reset-matching:hover, #reset-matching:focus-visible { color: var(--ink); background: var(--neon); }
.home-button { border: 3px solid var(--ink); padding: 9px 14px; color: var(--ink); background: var(--paper); font: 800 0.85rem "DM Sans", sans-serif; text-decoration: none; }
.home-button:hover, .home-button:focus-visible { background: var(--teal); }
.activity-directory { display: grid; min-height: 310px; place-items: center; padding: clamp(28px, 6vw, 56px); }
.activity-list { display: grid; width: min(100%, 680px); gap: 34px; }
.directory-content { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: center; max-width: 680px; gap: clamp(24px, 5vw, 48px); text-align: left; }
.directory-content + .directory-content { padding-top: 34px; border-top: 2px solid #d7d7d7; }
.featured-poster { width: 150px; }
.directory-content .eyebrow { margin-bottom: 8px; }
.directory-content div > p:not(.eyebrow) { margin: 14px 0 25px; color: var(--muted); line-height: 1.55; }
.activity-link { display: inline-flex; align-items: center; gap: 10px; border: 3px solid var(--ink); padding: 12px 17px; color: var(--ink); background: var(--neon); font-weight: 900; text-decoration: none; }
.activity-link:hover, .activity-link:focus-visible { color: var(--paper); background: var(--teal-dark); }
.activity-link span { font-size: 1.25rem; line-height: 0; }
.lesson-page { padding-bottom: 54px; }
.lesson-hero { margin-bottom: 28px; }
.progress-panel { display: grid; grid-template-columns: minmax(135px, auto) minmax(100px, 1fr); align-items: center; gap: 18px; border: 4px solid var(--ink); padding: 14px 17px; background: var(--paper); box-shadow: 6px 6px 0 var(--teal); }
.progress-kicker { display: block; color: var(--teal-dark); font-size: 0.7rem; font-weight: 900; letter-spacing: 0.1em; text-transform: uppercase; }
.progress-panel strong { font-family: "Josefin Sans", sans-serif; }
.progress-track { height: 15px; overflow: hidden; border: 2px solid var(--ink); background: #e9e9e9; }
.progress-track span { display: block; width: 0; height: 100%; background: var(--teal); transition: width 180ms ease; }
.account-save-status { margin: 12px 0 0; color: #d5e6e6; font-size: 0.82rem; font-weight: 700; text-align: right; }
.lesson-intro { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 20px 0 30px; color: var(--muted); font-size: 0.94rem; }
.lesson-intro p { margin: 0; }
.lesson-print-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: 0 0 auto; border: 2px solid #087f7b; border-radius: 999px; padding: 9px 14px; color: #073a38; background: #d9f7f4; font: 800 0.82rem "Outfit", sans-serif; cursor: pointer; transition: background-color 160ms ease, color 160ms ease, transform 160ms ease; }
.lesson-print-button span { font-size: 1.05rem; line-height: 1; }
.lesson-print-button:hover { color: #fff; background: #087f7b; transform: translateY(-1px); }
.lesson-print-button:focus-visible { outline: 3px solid var(--neon); outline-offset: 3px; }
.lesson-print-button:active { transform: translateY(0); }
.lesson-print-export { display: none; }
.quiet-button { border: 0; padding: 0; color: var(--teal-dark); background: transparent; font: 800 0.82rem "DM Sans", sans-serif; text-decoration: underline; cursor: pointer; }
.lesson-section { margin: 20px 0; border: 4px solid var(--ink); background: var(--paper); box-shadow: 6px 6px 0 rgba(10, 10, 10, 0.12); }
.lesson-section summary { display: grid; grid-template-columns: minmax(0, 1fr) 190px 25px; align-items: center; gap: 16px; padding: 18px 20px; background: #eefefd; font: 700 clamp(1rem, 3vw, 1.3rem) "Josefin Sans", sans-serif; cursor: pointer; list-style: none; }
.lesson-section summary::-webkit-details-marker { display: none; }
.lesson-section summary::after { content: "+"; display: grid; width: 25px; height: 25px; place-items: center; color: var(--paper); background: var(--ink); font-family: "DM Sans", sans-serif; font-size: 1.25rem; }
.lesson-section[open] summary { border-bottom: 4px solid var(--ink); background: var(--teal); }
.lesson-section[open] summary::after { content: "−"; }
.lesson-section summary b { display: inline-grid; width: 35px; height: 35px; margin-right: 8px; place-items: center; color: var(--ink); background: var(--neon); font-size: 0.77rem; vertical-align: middle; }
.lesson-section summary small { color: #3a3a3a; font: 700 0.77rem "DM Sans", sans-serif; text-align: left; }
.lesson-section-content { padding: clamp(22px, 5vw, 46px); }
.watch-provider { display: flex; align-items: center; gap: 16px; margin: 0 auto 25px; padding: 12px 15px; border: 3px solid var(--ink); color: var(--ink); background: #e8f8ff; box-shadow: 4px 4px 0 #099ed1; text-decoration: none; }
.watch-provider:hover, .watch-provider:focus-visible { background: #c8efff; outline: 0; transform: translate(-2px, -2px); }
.watch-provider img { width: 54px; height: 54px; object-fit: cover; border: 2px solid var(--ink); }
.watch-provider span { display: grid; gap: 2px; }
.watch-provider small { color: #066a8f; font-size: 0.72rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.watch-provider strong { font: 700 clamp(0.92rem, 2.5vw, 1.08rem) "Josefin Sans", sans-serif; }.watch-provider b { margin-left: 5px; color: #066a8f; }
.video-wrap { position: relative; overflow: hidden; width: min(100%, 700px); aspect-ratio: 16 / 9; margin: 0 auto 24px; border: 4px solid var(--ink); background: var(--ink); }
.video-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.section-lead, .mini-heading > p:not(.eyebrow) { max-width: 720px; color: var(--muted); line-height: 1.55; }
.mini-heading { margin-bottom: 22px; }
.mini-heading h2 { margin-top: 0; }
.lesson-section-heading-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; column-gap: 18px; }
.lesson-section-heading-row .mini-heading { margin-bottom: 22px; }
.lesson-section-share { display: inline-flex; align-items: center; justify-content: center; gap: 7px; margin-top: 1px; border: 1px solid #79bcb8; border-radius: 999px; padding: 9px 13px; color: #075b58; background: #eefcfb; font: 800 .8rem "Outfit", Arial, sans-serif; white-space: nowrap; cursor: pointer; transition: color .18s ease, background .18s ease, transform .18s ease; }
.lesson-section-share span { font-size: 1rem; line-height: 1; }
.lesson-section-share:hover { color: #fff; background: #087f7b; transform: translateY(-1px); }
.lesson-section-share:focus-visible { outline: 3px solid var(--neon); outline-offset: 3px; }
.lesson-section-share-status { grid-column: 2; min-height: 1.1em; margin-top: 5px; color: #087f7b; font-size: .72rem; font-weight: 800; text-align: center; }
@media (max-width: 560px) { .lesson-section-heading-row { column-gap: 10px; }.lesson-section-share { padding: 8px 11px; font-size: .75rem; }.lesson-section-share-status { max-width: 105px; } }
.lesson-divider { height: 3px; margin: clamp(34px, 6vw, 58px) 0; background: repeating-linear-gradient(90deg, var(--ink) 0 9px, transparent 9px 16px); }
.question-list { display: grid; }
.question-carousel-shell { overflow: hidden; border: 3px solid var(--ink); background: #f7f7f7; }
.question-carousel-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border-bottom: 3px solid var(--ink); background: var(--teal); color: var(--ink); font-size: 0.78rem; font-weight: 900; letter-spacing: 0.06em; text-transform: uppercase; }
.question-carousel-toolbar > div { display: flex; gap: 6px; }.question-carousel-button { display: grid; width: 30px; height: 30px; place-items: center; border: 2px solid var(--ink); color: var(--ink); background: var(--paper); font-size: 1.05rem; cursor: pointer; }.question-carousel-button:hover, .question-carousel-button:focus-visible { background: var(--neon); outline: 0; }
.question-carousel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--teal-dark) #ddd; -webkit-overflow-scrolling: touch; touch-action: pan-x; overscroll-behavior-inline: contain; }
.question-slide { flex: 0 0 100%; min-width: 0; padding: clamp(15px, 4vw, 26px); scroll-snap-align: start; scroll-snap-stop: always; }
.slide-number { margin: 0 0 9px; color: var(--teal-dark); font-size: 0.75rem; font-weight: 900; letter-spacing: 0.09em; text-transform: uppercase; }
.question-card { border: 2px solid #cfcfcf; padding: 18px; background: #fff; }
.question-card.is-correct { border-color: var(--teal-dark); background: #f0fffd; }
.question-text { margin: 0 0 14px; font-weight: 800; line-height: 1.45; }
.answer-options { display: grid; gap: 8px; }
.answer-choice { display: flex; align-items: center; gap: 10px; width: 100%; border: 2px solid var(--ink); padding: 10px 12px; color: var(--ink); background: var(--paper); font: 700 0.9rem "DM Sans", sans-serif; text-align: left; cursor: pointer; }
.answer-choice:hover, .answer-choice:focus-visible, .answer-choice.selected { background: var(--neon); outline: 0; }
.answer-choice span { display: grid; flex: 0 0 23px; width: 23px; height: 23px; place-items: center; border: 2px solid var(--ink); font-size: 0.72rem; }
.question-feedback { margin: 14px 0 0; padding: 13px 15px; border: 2px solid var(--ink); border-left: 8px solid var(--teal-dark); color: var(--ink); background: #d6f6ef; font-size: 1rem; font-weight: 800; line-height: 1.45; }
.question-feedback:empty { display: none; }
.question-card:not(.is-correct) .question-feedback { border-left-color: #e29a00; background: #fff1bf; }
.lesson-puzzle-layout { margin-top: 20px; }
.watch-checklist { display: grid; gap: 10px; }
.watch-item { display: flex; align-items: flex-start; gap: 12px; border: 2px solid var(--ink); padding: 13px; color: var(--ink); background: var(--paper); font: 700 0.94rem "DM Sans", sans-serif; text-align: left; line-height: 1.4; cursor: pointer; }
.watch-item:hover, .watch-item:focus-visible { background: #eefefd; outline: 0; }
.watch-item span { display: grid; flex: 0 0 23px; width: 23px; height: 23px; place-items: center; border: 2px solid var(--ink); font-weight: 900; }
.watch-item.done { border-color: var(--teal-dark); background: #d6f6ef; }
.watch-item.done span { color: var(--paper); background: var(--teal-dark); }
.watching-tip { margin: 22px 0 0; padding: 13px; border-left: 5px solid var(--neon); background: #f7f7f7; color: #454545; font-size: 0.9rem; line-height: 1.45; }
.correction-list { display: grid; gap: 13px; }
.correction-card { border: 2px solid #cfcfcf; padding: 15px; }
.correction-card.is-correct { border-color: var(--teal-dark); background: #f0fffd; }
.correction-card p { margin: 0 0 10px; font-weight: 700; }
.correction-card q { font-style: italic; }
.correction-number { display: inline-grid; width: 24px; height: 24px; margin-right: 5px; place-items: center; color: var(--paper); background: var(--ink); font-size: 0.75rem; }
.correction-card > div { display: flex; gap: 8px; }
.correction-card input { min-width: 0; flex: 1; border: 2px solid var(--ink); padding: 10px; font: 0.9rem "DM Sans", sans-serif; }
.check-rocky { border: 2px solid var(--ink); padding: 10px 14px; color: var(--paper); background: var(--ink); font: 800 0.8rem "DM Sans", sans-serif; cursor: pointer; }
.check-rocky:hover, .check-rocky:focus-visible { color: var(--ink); background: var(--neon); }
.correction-card small { display: block; margin-top: 12px; color: var(--ink); font-size: 1rem; font-weight: 900; line-height: 1.4; }
.correction-card small:not(:empty) { padding: 12px 14px; border: 2px solid var(--ink); border-left: 8px solid var(--teal-dark); background: var(--neon); }
.writing-card { border: 4px solid var(--ink); padding: clamp(20px, 4vw, 34px); background: #eefefd; }
.writing-card h2 { margin-top: 0; }
.writing-card > p:not(.eyebrow) { max-width: 690px; line-height: 1.5; }
.writing-card label { display: block; margin: 17px 0 7px; font-size: 0.86rem; font-weight: 800; }
.writing-card label span { color: var(--muted); font-weight: 500; }
.writing-card textarea, .writing-card input { width: 100%; border: 2px solid var(--ink); padding: 11px; color: var(--ink); background: var(--paper); font: 0.95rem "DM Sans", sans-serif; }
.student-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.form-feedback { min-height: 20px; margin-bottom: 0; color: var(--teal-dark); font-size: 0.85rem; font-weight: 800; }
.report-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 32px; border: 4px solid var(--ink); padding: clamp(20px, 5vw, 36px); background: var(--neon); box-shadow: 7px 7px 0 var(--teal-dark); }
.report-card h2 { margin: 0; }
.report-card p { max-width: 560px; margin-bottom: 0; line-height: 1.5; }
.report-card .activity-link { flex: 0 0 auto; }
.report-actions { display: grid; justify-items: stretch; gap: 9px; flex: 0 0 auto; }.report-actions .activity-link { justify-content: center; }.instagram-share-button { border: 3px solid var(--ink); padding: 10px 13px; color: var(--paper); background: #d62976; font: 900 0.8rem "DM Sans", sans-serif; cursor: pointer; white-space: nowrap; }.instagram-share-button:hover, .instagram-share-button:focus-visible { color: var(--ink); background: var(--teal); outline: 0; }.story-status { max-width: 260px; margin: 0; color: var(--ink); font-size: 0.73rem; font-weight: 800; line-height: 1.35; text-align: center; }
.matching-content { padding: clamp(20px, 5vw, 42px); }
.matching-board { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 4vw, 38px); }
.matching-label { margin: 0 0 10px; color: var(--teal-dark); font-weight: 900; font-size: 0.78rem; letter-spacing: 0.09em; text-transform: uppercase; }
.match-column { display: grid; gap: 9px; }
.match-button { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 10px; width: 100%; border: 3px solid var(--ink); padding: 10px 12px; color: var(--ink); background: var(--paper); font: 800 clamp(0.78rem, 2vw, 0.95rem) "DM Sans", sans-serif; text-align: left; cursor: pointer; }
.term-button { background: #eefefd; letter-spacing: 0.04em; }
.match-button:hover:not(:disabled), .match-button:focus-visible:not(:disabled), .match-button.selected { background: var(--neon); outline: 0; box-shadow: 4px 4px 0 var(--ink); transform: translate(-2px, -2px); }
.match-button.matched { color: var(--teal-dark); border-color: var(--teal-dark); background: #d6f6ef; cursor: default; }
.match-check { display: grid; flex: 0 0 23px; width: 23px; height: 23px; place-items: center; color: var(--paper); background: var(--teal-dark); border-radius: 50%; }
.match-button:not(.matched) .match-check { visibility: hidden; }

.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 28px; color: var(--muted); font-size: 0.9rem; }
.site-footer p { margin: 0; }
.site-footer a { color: var(--teal-dark); font-weight: 800; text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* Shared footer, adapted from the Music Your English layout. */
.mye-footer{box-sizing:border-box;width:100%;margin:72px 0 0;padding:0 clamp(20px,4vw,44px);border-top:1px solid rgba(151,242,237,.2);border-radius:24px 24px 0 0;color:#e9f8f6;background:linear-gradient(145deg,#0d2928,#071312 72%);font:400 .92rem Outfit,Arial,sans-serif}
.mye-footer-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,7vw,90px);padding:clamp(40px,6vw,68px) 0 44px}
.mye-footer-brand .brand{display:inline-flex;align-items:center;gap:10px;color:#fff;font:700 1.2rem "Josefin Sans",Arial,sans-serif;text-decoration:none}
.mye-footer-brand .brand-logo{width:40px;height:40px;border-radius:50%;object-fit:cover}
.mye-footer-brand .brand strong{color:#46c7c1}
.mye-footer-brand p{max-width:390px;margin:22px 0 10px;color:#bdd2cf;font-size:1rem;line-height:1.6}
.mye-footer-brand>span{color:#90aba7;font-size:.84rem}
.mye-footer-nav{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));align-content:start;gap:16px 38px}
.mye-footer-nav a,.mye-footer-bottom a{color:#dcece9;text-decoration:none;transition:color .18s ease}
.mye-footer-nav a{font-weight:700}
.mye-footer-nav a:hover,.mye-footer-bottom a:hover{color:#d9ff00}
.mye-footer :is(a:focus-visible){outline:2px solid #d9ff00;outline-offset:4px;border-radius:3px}
.mye-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px;padding:20px 0;border-top:1px solid rgba(151,242,237,.16);color:#92aaa6;font-size:.8rem}
.mye-footer-bottom a{font-weight:800}
@media(max-width:800px){.mye-footer-main{grid-template-columns:1fr;gap:36px}.mye-footer-nav{justify-content:start}.mye-footer-bottom{align-items:flex-start;flex-direction:column;gap:9px}}
@media(max-width:520px){.mye-footer{margin-top:52px;padding:0 22px}.mye-footer-main{padding:42px 0 34px}.mye-footer-nav{gap:14px 18px;grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (max-width: 560px) {
  .streaming-home { width: min(100% - 24px, 1180px); padding-top: 14px; }
  .platform-header { margin-bottom: 18px; }
  .platform-hero { min-height: 540px; box-shadow: 5px 5px 0 var(--teal); }
  .platform-hero::after { background: linear-gradient(0deg, rgba(0, 0, 0, 0.94) 0%, rgba(0, 0, 0, 0.55) 60%, rgba(0, 0, 0, 0.15) 100%); }
  .platform-hero-content { padding: 26px 20px; }
  .shelf-heading { align-items: flex-start; }
  .carousel-controls { display: none; }
  .movie-tile { flex-basis: min(245px, 72vw); }
  .play-overlay { opacity: 1; transform: translateY(0); }
  .platform-note { align-items: flex-start; padding: 18px; }
  .activity-page { width: min(100% - 24px, 960px); padding-top: 18px; }
  .activity-label { display: none; }
  .header-account { gap: 0; }.member-status { display: none; }
  .activity-card { min-height: 340px; border-width: 4px; border-radius: 22px; }
  .activity-card { border-radius: 0; box-shadow: 6px 6px 0 var(--ink); }
  .movie-hero { grid-template-columns: 1fr 105px; gap: 18px; }
  .hero-poster { width: 105px; }
  .activity-heading { display: block; }
  .score { display: inline-block; margin-top: 16px !important; }
  .puzzle-layout { grid-template-columns: 1fr; }
  .word-list ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }
  .matching-board { grid-template-columns: 1fr; gap: 22px; }
  .directory-content { grid-template-columns: 105px minmax(0, 1fr); gap: 20px; }
  .featured-poster { width: 105px; }
  .activity-actions { align-items: flex-start; flex-direction: column; }
  .progress-panel { grid-template-columns: 1fr; gap: 12px; }
  .progress-track { grid-column: auto; grid-row: auto; }
  .lesson-intro { align-items: flex-start; flex-direction: column; }
  .lesson-section summary { padding: 15px; }
  .lesson-section summary small { display: none; }
  .lesson-section-content { padding: 20px 15px; }
  .watch-provider { gap: 11px; padding: 10px; }
  .watch-provider img { width: 46px; height: 46px; }
  .student-fields { grid-template-columns: 1fr; gap: 0; }
  .correction-card > div { flex-direction: column; }
  .report-card { align-items: flex-start; flex-direction: column; }
  .report-actions { width: 100%; }.story-status { max-width: none; }
  .site-footer { align-items: flex-start; flex-direction: column; }
}

/* Home page: soft cinematic library redesign */
.platform-home {
  min-height: 100vh;
  font-family: "Outfit", "DM Sans", Arial, sans-serif;
  background:
    radial-gradient(circle at 84% 3%, rgba(22, 185, 180, 0.29), transparent 26rem),
    radial-gradient(circle at 12% 54%, rgba(217, 255, 0, 0.08), transparent 20rem),
    #050909;
}
.streaming-home { width: min(100% - 40px, 1240px); padding: 24px 0 64px; }
.platform-header {
  position: relative;
  z-index: 2;
  margin: 0 0 28px;
  padding: 10px 16px;
  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: 999px;
  background: rgba(9, 18, 18, 0.7);
  box-shadow: 0 14px 45px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(18px);
}
.platform-header .brand { gap: 8px; font-size: 1rem; letter-spacing: 0.02em; text-transform: none; }
.platform-header .brand-logo { width: 35px; height: 35px; border-radius: 50%; }
.platform-header .activity-label { border: 0; padding: 5px 9px; color: #c9eeee; background: rgba(22, 185, 180, 0.16); border-radius: 999px; }
.platform-header .member-button { border: 0; border-radius: 999px; }
.platform-hero {
  min-height: clamp(440px, 46vw, 525px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 38px;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.42), inset 0 0 0 1px rgba(255, 255, 255, 0.07);
  isolation: isolate;
}
.platform-hero::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  background: radial-gradient(circle at 74% 38%, rgba(53, 178, 167, 0.2), transparent 28%), linear-gradient(180deg, rgba(8, 31, 29, 0.04), rgba(1, 8, 8, 0.55));
}
.platform-hero::after { z-index: 2; background: linear-gradient(90deg, rgba(10, 63, 59, 0.91) 0%, rgba(5, 37, 35, 0.72) 42%, rgba(0, 5, 5, 0.16) 80%), linear-gradient(0deg, rgba(0, 7, 7, 0.64), transparent 58%); }
.platform-hero::before, .platform-hero::after { pointer-events: none; }
.platform-feature-poster img { filter: saturate(0.92) contrast(1.08); opacity: 0.92; transform: scale(1.025); animation: none; transition: transform 520ms cubic-bezier(.2,.75,.25,1); }
.platform-hero-content { z-index: 3; align-self: center; width: min(100%, 700px); padding: clamp(30px, 5vw, 60px); animation: homeFadeUp 900ms 140ms both cubic-bezier(.2,.75,.25,1); }
.platform-hero-content .eyebrow { margin-bottom: 12px; color: #bff5f2; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.16em; }
.platform-hero h1 { max-width: 940px; font-size: clamp(3.1rem, 7vw, 6.6rem); font-weight: 800; letter-spacing: -0.075em; line-height: 0.92; text-wrap: balance; }
.platform-hero-content > p:not(.eyebrow) { max-width: 570px; color: rgba(255, 255, 255, 0.82); font-size: clamp(1rem, 1.8vw, 1.15rem); }
.hero-actions { gap: 12px; margin-top: 30px; }
.hero-actions .activity-link, .hero-secondary { border-radius: 999px; }
.hero-actions .activity-link { border: 0; padding: 14px 20px; box-shadow: 0 10px 24px rgba(217, 255, 0, 0.16); }
.hero-secondary { padding: 12px 5px; text-underline-offset: 7px; }
.home-reveal { opacity: 0; transform: translateY(30px); transition: opacity 700ms ease, transform 700ms cubic-bezier(.2,.75,.25,1); }
.home-reveal.is-visible { opacity: 1; transform: translateY(0); }
.platform-hero.home-reveal { opacity: 1; transform: none; }
.activity-shelf { margin-top: clamp(80px, 13vw, 150px); }
.shelf-heading { margin-bottom: 30px; }
.shelf-heading .eyebrow { color: #9ed8d5; font-size: 0.78rem; letter-spacing: 0.13em; }
.shelf-heading h2 { font-size: clamp(2rem, 4.4vw, 3.65rem); font-weight: 700; letter-spacing: -0.06em; }
.carousel-button { width: 44px; height: 44px; border: 1px solid rgba(255,255,255,0.35); border-radius: 50%; background: rgba(255,255,255,0.06); transition: transform 180ms ease, background 180ms ease; }
.carousel-button:hover, .carousel-button:focus-visible { transform: translateY(-3px); }
.poster-carousel { gap: 26px; padding: 5px 2px 24px; scrollbar-width: none; }
.poster-carousel::-webkit-scrollbar { display: none; }
.movie-tile { flex-basis: min(310px, 76vw); }
.movie-poster-link { border: 0; border-radius: 28px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.42); }
.movie-poster-link::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 58%, rgba(0,0,0,0.48)); pointer-events: none; }
.movie-poster-link img { transition: transform 700ms cubic-bezier(.2,.75,.25,1), opacity 500ms ease; }
.movie-poster-link:hover img, .movie-poster-link:focus-visible img { opacity: 1; transform: scale(1.07); }
.play-overlay { z-index: 1; right: 18px; bottom: 18px; width: 54px; height: 54px; border-radius: 50%; box-shadow: 0 8px 18px rgba(0,0,0,0.28); }
.movie-meta h3 { margin-top: 16px; font-family: "Outfit", "DM Sans", sans-serif; font-size: 1.35rem; font-weight: 700; letter-spacing: -0.035em; }
.movie-meta p { font-size: 0.9rem; }
.platform-note { position: relative; overflow: hidden; align-items: center; margin-top: clamp(95px, 14vw, 170px); padding: clamp(30px, 5vw, 54px); border: 1px solid rgba(151, 242, 237, 0.34); border-radius: 32px; background: linear-gradient(120deg, rgba(22, 185, 180, 0.24), rgba(9, 26, 26, 0.82) 58%, rgba(217, 255, 0, 0.08)); box-shadow: 0 18px 48px rgba(0, 0, 0, 0.3); }
.platform-note::after { position: absolute; width: 240px; height: 240px; border-radius: 50%; right: -80px; top: -120px; content: ""; background: rgba(217,255,0,0.13); filter: blur(8px); }
.platform-note > span { position: relative; z-index: 1; display: grid; flex: 0 0 76px; width: 76px; height: 76px; place-items: center; border-radius: 50%; background: rgba(255,255,255,0.1); font-size: 2rem; }
.platform-note > div { position: relative; z-index: 1; }
.platform-note h2 { font-size: clamp(1.75rem, 3vw, 2.45rem); letter-spacing: -0.055em; }
.platform-note p { max-width: 600px; margin-top: 10px; color: rgba(231,255,253,0.82); font-size: 1.05rem; }
.instagram-cta { border: 0; border-radius: 999px; padding: 12px 17px; background: linear-gradient(120deg, #c13584, #d62976); box-shadow: 0 10px 24px rgba(214, 41, 118, 0.22); }
.platform-home .site-footer { margin-top: 70px; padding: 0 10px; }
@keyframes homeFadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
@keyframes homeImageDrift { from { transform: scale(1.025) translate3d(0, 0, 0); } to { transform: scale(1.08) translate3d(-1.5%, -0.5%, 0); } }
@media (max-width: 560px) {
  .streaming-home { width: min(100% - 24px, 1240px); padding-top: 12px; }
  .platform-header { padding: 8px 10px; border-radius: 24px; }
  .platform-header .brand span { display: none; }
  .platform-hero { min-height: 500px; border-radius: 28px; }
  .platform-hero::after { background: linear-gradient(0deg, rgba(1, 12, 12, 0.97), rgba(11, 68, 63, 0.5) 66%, rgba(0, 7, 7, 0.18)); }
  .platform-hero-content { padding: 28px 24px; }
  .platform-hero h1 { font-size: clamp(3.25rem, 15vw, 4.8rem); }
  .activity-shelf { margin-top: 78px; }
  .movie-tile { flex-basis: min(280px, 79vw); }
  .platform-note { align-items: flex-start; gap: 18px; margin-top: 88px; border-radius: 26px; }
  .platform-note > span { flex-basis: 56px; width: 56px; height: 56px; font-size: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .platform-feature-poster, .platform-feature-poster img, .platform-hero-content { animation: none; transition: none; }
  .home-reveal { opacity: 1; transform: none; transition: none; }
}

/* Activity and lesson pages: soft cinematic learning surfaces */
body:not(.platform-home) {
  font-family: "Outfit", "DM Sans", Arial, sans-serif;
  background:
    radial-gradient(circle at 92% 7%, rgba(22, 185, 180, 0.24), transparent 25rem),
    radial-gradient(circle at 5% 45%, rgba(217, 255, 0, 0.06), transparent 22rem),
    #050909;
}
body:not(.platform-home) h1,
body:not(.platform-home) h2,
body:not(.platform-home) h3,
body:not(.platform-home) .brand,
body:not(.platform-home) .progress-panel strong,
body:not(.platform-home) .lesson-section summary,
body:not(.platform-home) .watch-provider strong {
  font-family: "Josefin Sans", "Outfit", sans-serif;
}
body:not(.platform-home) .activity-page { width: min(100% - 40px, 1000px); padding: 24px 0 68px; }
body:not(.platform-home) .site-header {
  position: relative;
  z-index: 2;
  margin-bottom: 36px;
  padding: 10px 16px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: rgba(9, 18, 18, 0.72);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(16px);
}
body:not(.platform-home) .brand { font-size: clamp(1rem, 3vw, 1.25rem); letter-spacing: -0.045em; text-transform: none; }
body:not(.platform-home) .brand-logo { width: 36px; height: 36px; border-radius: 50%; }
body:not(.platform-home) .activity-label { border: 0; border-radius: 999px; background: rgba(22, 185, 180, 0.16); }
body:not(.platform-home) .member-button { border: 0; border-radius: 999px; }
body:not(.platform-home) .movie-hero {
  max-width: none;
  grid-template-columns: minmax(0, 1fr) 176px;
  gap: clamp(28px, 6vw, 70px);
  margin-bottom: 28px;
  padding: clamp(26px, 5vw, 52px);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 32px;
  background: linear-gradient(125deg, rgba(20, 58, 57, 0.85), rgba(9, 16, 16, 0.7) 64%, rgba(8, 20, 20, 0.52));
  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.3);
}
body:not(.platform-home) .movie-hero-copy { max-width: 760px; }
body:not(.platform-home) .movie-hero .eyebrow { color: #a7e9e5; letter-spacing: 0.13em; }
body:not(.platform-home) .movie-hero h1 { margin-bottom: 12px; font-size: clamp(2.65rem, 6vw, 5.4rem); font-weight: 700; letter-spacing: -0.08em; line-height: 0.94; text-wrap: balance; }
body:not(.platform-home) .movie-hero .intro { max-width: 590px; color: rgba(234,255,253,0.8); font-size: clamp(1rem, 2vw, 1.15rem); line-height: 1.55; }
body:not(.platform-home) .hero-poster { width: 176px; border: 0; border-radius: 22px; box-shadow: 0 18px 38px rgba(0,0,0,0.42); transition: transform 500ms cubic-bezier(.2,.75,.25,1), filter 400ms ease; }
body:not(.platform-home) .movie-hero:hover .hero-poster { filter: saturate(1.1); transform: translateY(-7px) rotate(1.5deg); }
body:not(.platform-home) .progress-panel,
body:not(.platform-home) .lesson-section,
body:not(.platform-home) .activity-card,
body:not(.platform-home) .report-card {
  border: 1px solid rgba(10, 10, 10, 0.16);
  border-radius: 25px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.2);
}
body:not(.platform-home) .progress-panel { padding: 17px 20px; background: rgba(255,255,255,0.96); }
body:not(.platform-home) .progress-track { overflow: hidden; border: 0; border-radius: 999px; background: #dbe8e7; }
body:not(.platform-home) .progress-track span { border-radius: inherit; }
body:not(.platform-home) .account-save-status { margin: 13px 4px 0; }
body:not(.platform-home) .lesson-intro { padding: 2px 5px; }
body:not(.platform-home) .quiet-button { color: #8ff5f0; }
body:not(.platform-home) .watch-provider { border: 0; border-radius: 20px; box-shadow: 0 12px 30px rgba(9, 158, 209, 0.23); transition: transform 180ms ease, box-shadow 180ms ease; }
body:not(.platform-home) .watch-provider:hover,
body:not(.platform-home) .watch-provider:focus-visible { box-shadow: 0 17px 34px rgba(9, 158, 209, 0.34); transform: translateY(-3px); }
body:not(.platform-home) .lesson-section { overflow: hidden; }
body:not(.platform-home) .lesson-section summary { padding: 20px 22px; background: linear-gradient(90deg, #e4fbfa, #f8fffe); }
body:not(.platform-home) .lesson-section[open] summary { border-bottom: 1px solid rgba(10,10,10,0.15); background: linear-gradient(90deg, #50d5cf, #baf4f0); }
body:not(.platform-home) .lesson-section summary::after { border-radius: 50%; }
body:not(.platform-home) .lesson-section summary b { border-radius: 50%; }
body:not(.platform-home) .lesson-section-content { padding: clamp(24px, 5vw, 48px); }
body:not(.platform-home) .question-carousel-shell,
body:not(.platform-home) .question-card,
body:not(.platform-home) .writing-card,
body:not(.platform-home) .correction-card,
body:not(.platform-home) .watch-item,
body:not(.platform-home) .match-button,
body:not(.platform-home) .word-item { border-radius: 16px; }
body:not(.platform-home) .question-carousel-shell { border: 1px solid #ced9d8; overflow: hidden; }
body:not(.platform-home) .question-carousel-toolbar { border-bottom: 1px solid rgba(10,10,10,0.15); }
body:not(.platform-home) .question-carousel-button { border-radius: 50%; }
body:not(.platform-home) .question-card,
body:not(.platform-home) .writing-card { border-color: #d7e0df; }
body:not(.platform-home) .answer-choice { border-color: #c3d1d0; border-radius: 12px; transition: transform 170ms ease, background 170ms ease, border-color 170ms ease; }
body:not(.platform-home) .answer-choice:hover,
body:not(.platform-home) .answer-choice:focus-visible { border-color: var(--teal-dark); transform: translateX(4px); }
body:not(.platform-home) .answer-choice span,
body:not(.platform-home) .watch-item span,
body:not(.platform-home) .match-check { border-radius: 50%; }
body:not(.platform-home) .matching-card { min-height: 0; }
body:not(.platform-home) .film-strip { opacity: 0.85; }
body:not(.platform-home) .matching-content { padding: clamp(26px, 5vw, 48px); }
body:not(.platform-home) .match-button { border-color: #cad7d6; transition: transform 170ms ease, box-shadow 170ms ease, background 170ms ease; }
body:not(.platform-home) .match-button:hover:not(:disabled),
body:not(.platform-home) .match-button:focus-visible:not(:disabled) { border-color: var(--teal-dark); box-shadow: 0 8px 18px rgba(0,0,0,0.14); transform: translateY(-2px); }
body:not(.platform-home) .report-card { border: 0; border-radius: 28px; box-shadow: 0 20px 44px rgba(0, 0, 0, 0.24); }
body:not(.platform-home) .activity-link,
body:not(.platform-home) .home-button,
body:not(.platform-home) #reset-button,
body:not(.platform-home) #reset-matching,
body:not(.platform-home) .instagram-share-button { border: 0; border-radius: 999px; }
.page-reveal { opacity: 0; transform: translateY(28px) scale(0.985); transition: opacity 650ms var(--reveal-delay, 0ms) ease, transform 650ms var(--reveal-delay, 0ms) cubic-bezier(.2,.75,.25,1); }
.page-reveal.is-visible { opacity: 1; transform: translateY(0) scale(1); }
@media (max-width: 560px) {
  body:not(.platform-home) .activity-page { width: min(100% - 24px, 1000px); padding-top: 12px; }
  body:not(.platform-home) .site-header { margin-bottom: 22px; padding: 8px 10px; border-radius: 24px; }
  body:not(.platform-home) .brand span { display: none; }
  body:not(.platform-home) .movie-hero { grid-template-columns: minmax(0, 1fr) 112px; gap: 20px; padding: 24px 20px; border-radius: 25px; }
  body:not(.platform-home) .movie-hero h1 { font-size: clamp(2.25rem, 11vw, 3.6rem); }
  body:not(.platform-home) .hero-poster { width: 112px; border-radius: 17px; }
  body:not(.platform-home) .progress-panel,
  body:not(.platform-home) .lesson-section,
  body:not(.platform-home) .activity-card,
  body:not(.platform-home) .report-card { border-radius: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  .page-reveal { opacity: 1; transform: none; transition: none; }
  body:not(.platform-home) .movie-hero:hover .hero-poster { transform: none; }
}

/* Keep the featured poster whole on wide screens instead of cropping it as a background. */
@media (min-width: 700px) {
  .platform-hero {
    background: radial-gradient(circle at 75% 36%, rgba(51, 183, 172, 0.2), transparent 30%), linear-gradient(125deg, #18534f 0%, #102f2d 43%, #050909 76%);
  }
  .platform-feature-poster {
    z-index: 1;
    inset: auto clamp(34px, 7vw, 96px) auto auto;
    top: 50%;
    width: auto;
    height: 78%;
    max-width: min(31%, 315px);
    aspect-ratio: 2 / 3;
    border-radius: 24px;
    box-shadow: 0 22px 46px rgba(0, 0, 0, 0.48);
    transform: translateY(-50%);
    transition: transform 420ms cubic-bezier(.2,.75,.25,1);
  }
  .platform-feature-poster img { width: 100%; height: 100%; object-fit: cover; opacity: 1; transform: none; }
  .platform-feature-poster:hover { transform: translateY(-50%) scale(1.035); }
}

/* Typography and final learning-component polish */
body { font-family: "Outfit", "DM Sans", Arial, sans-serif; }
h1, h2, h3, .brand, .movie-meta h3, .progress-panel strong, .lesson-section summary, .watch-provider strong { font-family: "Josefin Sans", "Outfit", sans-serif; }
body:not(.platform-home) .member-button,
body:not(.platform-home) .auth-form input,
body:not(.platform-home) #reset-button,
body:not(.platform-home) #reset-matching,
body:not(.platform-home) .home-button,
body:not(.platform-home) .quiet-button,
body:not(.platform-home) .lesson-section summary::after,
body:not(.platform-home) .lesson-section summary small,
body:not(.platform-home) .answer-choice,
body:not(.platform-home) .watch-item,
body:not(.platform-home) .correction-card input,
body:not(.platform-home) .check-rocky,
body:not(.platform-home) .writing-card textarea,
body:not(.platform-home) .writing-card input,
body:not(.platform-home) .instagram-share-button,
body:not(.platform-home) .match-button { font-family: "Outfit", "DM Sans", sans-serif; }

body:not(.platform-home) .watch-provider {
  min-height: 92px;
  gap: 18px;
  padding: 16px 18px;
  background: linear-gradient(120deg, #f7fcff, #e5f8ff);
}
body:not(.platform-home) .watch-provider img {
  width: 88px;
  height: 52px;
  padding: 6px 9px;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(9, 158, 209, 0.18), 0 6px 15px rgba(9, 158, 209, 0.1);
  object-fit: contain;
}
body:not(.platform-home) .watch-provider small { color: #087f7b; letter-spacing: 0.12em; }
body:not(.platform-home) .watch-provider strong { color: #103b4e; letter-spacing: -0.025em; }
body:not(.platform-home) .video-wrap {
  overflow: hidden;
  border: 1px solid rgba(22, 185, 180, 0.32);
  border-radius: 23px;
  background: #071010;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
}
body:not(.platform-home) .video-wrap::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: inherit;
  content: "";
  pointer-events: none;
}
body:not(.platform-home) .correction-list { gap: 16px; }
body:not(.platform-home) .correction-card {
  position: relative;
  padding: 20px;
  border: 1px solid #d5e4e2;
  background: linear-gradient(135deg, #ffffff, #f7fffe);
  box-shadow: 0 9px 21px rgba(7, 36, 35, 0.07);
}
body:not(.platform-home) .correction-card::before {
  position: absolute;
  top: 18px;
  bottom: 18px;
  left: 0;
  width: 4px;
  border-radius: 0 999px 999px 0;
  background: var(--teal);
  content: "";
}
body:not(.platform-home) .correction-card.is-correct { border-color: #91d9d5; background: linear-gradient(135deg, #f1fffd, #e5fbf7); }
body:not(.platform-home) .correction-card p { padding-left: 2px; color: #173433; font-size: 1.04rem; line-height: 1.5; }
body:not(.platform-home) .correction-number { width: 28px; height: 28px; margin-right: 8px; border-radius: 50%; background: var(--teal-dark); font-family: "Josefin Sans", sans-serif; }
body:not(.platform-home) .check-rocky { border: 0; border-radius: 999px; padding: 11px 16px; background: var(--teal-dark); box-shadow: 0 7px 14px rgba(8, 127, 123, 0.2); transition: transform 170ms ease, background 170ms ease; }
body:not(.platform-home) .check-rocky:hover,
body:not(.platform-home) .check-rocky:focus-visible { color: var(--ink); background: var(--neon); transform: translateY(-2px); }
body:not(.platform-home) .correction-card small:not(:empty) {
  margin-top: 15px;
  border: 0;
  border-radius: 12px;
  background: #d8f7f1;
  box-shadow: inset 0 0 0 1px #a9e0da;
}
body:not(.platform-home) .sheep-vocab-content {
  margin-top: 18px;
  border: 1px solid #d5e7e5;
  border-radius: 20px;
  background: linear-gradient(135deg, #f9fffe, #eefbfa);
  box-shadow: 0 11px 26px rgba(7, 36, 35, 0.06);
}
body:not(.platform-home) .term-emoji {
  display: inline-grid;
  width: 30px;
  height: 30px;
  margin-right: 3px;
  place-items: center;
  border-radius: 50%;
  background: rgba(22, 185, 180, 0.12);
  font-size: 1rem;
}
.cinema-notice { display:flex; align-items:center; gap:14px; margin:0 0 24px; padding:15px 18px; border:1px solid rgba(217,255,0,.45); border-radius:18px; color:#f5ffbc; background:rgba(217,255,0,.08); }.cinema-notice span{padding:5px 9px;border-radius:999px;color:#172000;background:var(--neon);font-size:.72rem;font-weight:800;text-transform:uppercase;}.cinema-notice strong{font-family:"Josefin Sans",sans-serif;}.verb-puzzle{padding:22px;border:1px solid #d5e7e5;border-radius:20px;background:#f8fffe;line-height:2.1}.verb-slot{min-width:68px;border:0;border-bottom:2px solid var(--teal-dark);color:var(--teal-dark);background:transparent;font-weight:800;cursor:pointer}.verb-bank{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.verb-bank .match-button{width:auto;min-height:42px}
@media (max-width: 560px) {
  body:not(.platform-home) .watch-provider { min-height: 0; gap: 12px; padding: 13px; }
  body:not(.platform-home) .watch-provider img { width: 70px; height: 48px; padding: 6px; }
  body:not(.platform-home) .video-wrap { border-radius: 17px; }
  body:not(.platform-home) .correction-card { padding: 17px; }
  .lesson-section summary { grid-template-columns: minmax(0, 1fr) 25px; }
}

/* Shared type system: Josefin Sans for display, Outfit for reading and controls. */
body { font-family: "Outfit", Arial, sans-serif; }
body :is(button, input, textarea, select) { font-family: "Outfit", Arial, sans-serif !important; }
body :is(h1, h2, h3, .brand, .movie-meta h3, .progress-panel strong, .lesson-section summary, .watch-provider strong, .correction-number) { font-family: "Josefin Sans", Arial, sans-serif !important; }

/* Zootopia 2 animal anagram challenge */
.animal-anagrams{padding:20px;border:1px solid #d5e7e5;border-radius:20px;background:#f8fffe}.animal-puzzle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.animal-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:13px;border:1px solid #d5e7e5;border-radius:16px;background:#fff;transition:transform 180ms ease,box-shadow 180ms ease}.animal-card:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(16,59,78,.1)}.animal-card.is-solved{border-color:#16b9b4;background:#e9fffa}.animal-emoji{font-size:2rem}.scrambled-word{margin:0 0 5px;color:#087f7b;font-size:.8rem;font-weight:900;letter-spacing:.16em}.animal-card label{display:block;color:#57716f;font-size:.7rem;font-weight:800;text-transform:uppercase}.animal-card input{width:100%;margin-top:4px;padding:7px 8px;border:1px solid #b9d8d6;border-radius:8px;color:#102121;font:700 .95rem Outfit,sans-serif;text-transform:lowercase}.animal-card input.is-wrong{border-color:#d04747;background:#fff0f0;animation:animal-shake .4s ease}.check-animal{border:0;border-radius:9px;padding:10px 12px;color:#fff;background:#087f7b;font:800 .78rem Outfit,sans-serif;cursor:pointer}.check-animal:disabled{background:#16a99f;cursor:default}@keyframes animal-shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media (max-width:620px){.animal-puzzle-grid{grid-template-columns:1fr}.animal-card{grid-template-columns:auto 1fr}.check-animal{grid-column:2;justify-self:start}}

/* Premium Movie Your English homepage */
.saas-home{overflow-x:hidden;background:radial-gradient(circle at 81% 8%,rgba(22,185,180,.22),transparent 27rem),radial-gradient(circle at 3% 40%,rgba(217,255,0,.09),transparent 24rem),#050909;color:#f5fffe}.saas-shell{width:min(100% - 40px,1240px);margin:0 auto;padding:24px 0 48px}.saas-nav{position:sticky;top:16px;z-index:10;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:10px 14px 10px 18px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(8,17,17,.78);box-shadow:0 16px 45px rgba(0,0,0,.24);backdrop-filter:blur(18px)}.saas-nav .brand{color:#fff}.saas-nav .brand-logo{width:36px;height:36px;border-radius:50%}.saas-nav nav{display:flex;gap:24px}.saas-nav nav a,.saas-footer>a:last-child{color:rgba(239,255,253,.76);font-size:.88rem;font-weight:700;text-decoration:none;transition:color .18s ease}.saas-nav nav a:hover,.saas-footer>a:last-child:hover{color:var(--neon)}.nav-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.nav-actions .member-button{padding:9px 13px;border:0;border-radius:999px;background:transparent;color:#fff}.nav-start,.hero-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 19px;border-radius:999px;color:#102121;background:var(--neon);font-weight:900;text-decoration:none;box-shadow:0 10px 26px rgba(217,255,0,.18);transition:transform .2s ease,box-shadow .2s ease}.nav-start{padding:10px 15px;font-size:.85rem}.nav-start:hover,.hero-primary:hover{transform:translateY(-3px);box-shadow:0 15px 32px rgba(217,255,0,.28)}.saas-hero{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(350px,.98fr);align-items:center;gap:clamp(40px,8vw,115px);min-height:650px;padding:70px clamp(10px,3vw,42px) 78px}.hero-copy{max-width:650px}.saas-home .eyebrow{margin:0 0 14px;color:#a8f2ec;font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.saas-hero h1,.saas-home h2,.saas-home h3{font-family:"Josefin Sans",Arial,sans-serif}.saas-hero h1{max-width:700px;margin:0;color:#fff;font-size:clamp(3.6rem,7vw,6.9rem);font-weight:700;letter-spacing:-.085em;line-height:.88}.saas-hero h1 span{color:var(--neon)}.saas-hero p:not(.eyebrow){max-width:545px;margin:25px 0 0;color:rgba(239,255,253,.72);font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.55}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px}.hero-secondary{display:inline-flex;align-items:center;justify-content:center;padding:13px 19px;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#fff;background:rgba(255,255,255,.04);font-weight:800;text-decoration:none;transition:background .2s ease,transform .2s ease}.hero-secondary:hover{background:rgba(255,255,255,.12);transform:translateY(-3px)}.hero-note{color:#a7e9e5!important;font-size:.83rem!important;font-weight:700}.hero-gallery{position:relative;min-height:530px}.hero-card{position:absolute;overflow:hidden;border:1px solid rgba(255,255,255,.2);border-radius:26px;background:#102121;box-shadow:0 24px 52px rgba(0,0,0,.38);transition:transform .45s cubic-bezier(.2,.75,.25,1),filter .35s ease}.hero-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.75,.25,1)}.hero-card:hover img,.saas-poster:hover img{transform:scale(1.07)}.hero-card:hover{filter:brightness(1.08)}.hero-card-main{z-index:3;top:18px;left:18%;width:min(310px,65%);height:465px}.hero-card-main span{position:absolute;bottom:15px;left:15px;padding:8px 11px;border-radius:999px;color:#102121;background:var(--neon);font-size:.72rem;font-weight:900;text-transform:uppercase}.hero-card-back{z-index:1;top:84px;right:2%;width:205px;height:320px;transform:rotate(9deg);filter:brightness(.58)}.hero-card-front{z-index:2;bottom:0;left:0;width:175px;height:270px;transform:rotate(-8deg);filter:brightness(.82)}.hero-gallery:hover .hero-card-back{transform:translate(10px,-7px) rotate(11deg)}.hero-gallery:hover .hero-card-front{transform:translate(-8px,-8px) rotate(-10deg)}.audience-section,.featured-movies,.how-section{padding:105px 0}.section-heading{max-width:720px}.section-heading h2{max-width:760px;margin:0;color:#fff;font-size:clamp(2.45rem,5vw,4.6rem);letter-spacing:-.07em;line-height:.94}.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:24px}.text-link{margin-bottom:6px;color:var(--neon);font-weight:800;text-decoration:none;white-space:nowrap}.audience-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:35px}.audience-card{min-height:345px;padding:38px;border:1px solid rgba(255,255,255,.12);border-radius:28px;background:linear-gradient(135deg,rgba(31,72,70,.9),rgba(11,25,25,.92));box-shadow:inset 0 1px rgba(255,255,255,.06),0 18px 40px rgba(0,0,0,.18);transition:transform .3s ease,box-shadow .3s ease}.audience-card:hover{transform:translateY(-7px);box-shadow:inset 0 1px rgba(255,255,255,.08),0 26px 48px rgba(0,0,0,.26)}.student-card{background:linear-gradient(135deg,rgba(19,62,61,.93),rgba(24,33,19,.94))}.audience-icon{display:grid;width:44px;height:44px;margin-bottom:27px;place-items:center;border-radius:14px;color:#122222;background:var(--neon);font-size:1.3rem;font-weight:900}.student-card .audience-icon{color:#fff;background:#18aaa4}.audience-card h3{max-width:400px;margin:0;color:#fff;font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:-.06em;line-height:1}.audience-card ul{display:grid;gap:12px;margin:29px 0 0;padding:0;list-style:none;color:rgba(242,255,253,.78)}.audience-card li{position:relative;padding-left:20px}.audience-card li::before{content:"";position:absolute;top:.48em;left:0;width:7px;height:7px;border-radius:50%;background:var(--neon)}.student-card li::before{background:#50d5cf}.saas-movie-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-top:36px}.saas-movie-card{min-width:0;transition:transform .3s ease}.saas-movie-card:hover{transform:translateY(-7px)}.saas-poster{position:relative;display:block;overflow:hidden;aspect-ratio:2/3;border-radius:21px;background:#142323;box-shadow:0 16px 36px rgba(0,0,0,.32)}.saas-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(3,9,9,.88))}.saas-poster img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.75,.25,1)}.saas-poster span{position:absolute;z-index:1;bottom:16px;left:16px;color:#fff;font-weight:900}.saas-movie-card h3{margin:14px 0 4px;color:#fff;font-size:1.25rem;letter-spacing:-.04em}.saas-movie-card p{margin:0;color:#9ec5c1;font-size:.8rem;line-height:1.45}.saas-movie-card p b{color:var(--neon);font-weight:800}.how-section{border-top:1px solid rgba(255,255,255,.12)}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:48px;counter-reset:steps}.steps-grid article{position:relative;padding-top:80px}.steps-grid article:not(:last-child)::after{content:"";position:absolute;top:31px;right:-29px;width:55px;height:1px;background:linear-gradient(90deg,#16b9b4,transparent)}.step-icon{display:grid;position:absolute;top:0;left:0;width:57px;height:57px;place-items:center;border:1px solid rgba(217,255,0,.5);border-radius:50%;color:var(--neon);font-size:1.5rem}.steps-grid h3{margin:0;color:#fff;font-size:1.65rem;letter-spacing:-.05em}.steps-grid p{max-width:250px;margin:12px 0 0;color:#a9c2bf;line-height:1.55}.free-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;margin:42px 0 76px;padding:clamp(35px,7vw,72px);border-radius:32px;color:#102121;background:linear-gradient(110deg,#b8f4ef,#d9ff00);box-shadow:0 22px 42px rgba(0,0,0,.25)}.free-cta .eyebrow{color:#087f7b}.free-cta h2{max-width:720px;margin:0;font-size:clamp(2.35rem,5vw,4.5rem);letter-spacing:-.07em;line-height:.9}.free-cta p:not(.eyebrow){margin:16px 0 0;color:#285857;font-weight:600}.free-cta .hero-primary{flex:0 0 auto;color:#fff;background:#103b4e;box-shadow:none}.saas-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0;border-top:1px solid rgba(255,255,255,.14);color:#8da6a3;font-size:.84rem}.saas-footer .brand{color:#fff;font-size:1.1rem}.saas-footer .brand-logo{width:30px;height:30px;border-radius:50%}.saas-footer p{margin:0}
@media (max-width:900px){.saas-nav{grid-template-columns:1fr auto}.saas-nav nav{display:none}.saas-hero{grid-template-columns:1fr;min-height:0;padding:90px 5vw 50px}.hero-gallery{min-height:470px;max-width:570px;width:100%;margin:auto}.saas-movie-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.saas-movie-card{max-width:310px}.steps-grid{gap:26px}.steps-grid article:not(:last-child)::after{right:-17px;width:32px}.saas-footer{flex-wrap:wrap}}
@media (max-width:620px){.saas-shell{width:min(100% - 24px,1240px);padding-top:12px}.saas-nav{top:8px;padding:8px 9px 8px 13px}.saas-nav .brand span{font-size:.95rem}.saas-nav .brand-logo{width:31px;height:31px}.nav-actions .member-button{padding:8px 5px;font-size:.78rem}.nav-start{padding:9px 12px;font-size:.76rem}.saas-hero{padding:75px 3px 42px;gap:31px}.saas-hero h1{font-size:clamp(3.2rem,15vw,4.6rem)}.hero-gallery{min-height:390px}.hero-card-main{left:16%;width:62%;height:350px}.hero-card-back{top:68px;width:145px;height:230px}.hero-card-front{width:128px;height:200px}.audience-section,.featured-movies,.how-section{padding:68px 0}.section-heading-row{align-items:start;flex-direction:column}.audience-grid,.steps-grid{grid-template-columns:1fr}.audience-card{min-height:auto;padding:29px}.saas-movie-grid{display:flex;overflow-x:auto;margin-right:-12px;padding-right:12px;scroll-snap-type:x mandatory}.saas-movie-card{flex:0 0 69%;scroll-snap-align:start}.steps-grid{gap:8px;margin-top:34px}.steps-grid article{padding:18px 0 22px 78px}.steps-grid article:not(:last-child)::after{top:auto;right:auto;bottom:-4px;left:28px;width:1px;height:20px;background:linear-gradient(#16b9b4,transparent)}.free-cta{align-items:flex-start;flex-direction:column;margin-bottom:54px;padding:34px 28px}.saas-footer{align-items:flex-start;flex-direction:column;gap:13px}.saas-footer p{order:3}}

/* How it works cards on the landing page */
.how-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:46px}.how-card-grid article{min-height:290px;padding:31px;border:1px solid rgba(255,255,255,.14);border-radius:24px;background:linear-gradient(145deg,rgba(25,66,65,.88),rgba(9,22,22,.95));box-shadow:0 16px 38px rgba(0,0,0,.19);transition:transform .28s ease,background .28s ease}.how-card-grid article:hover{transform:translateY(-7px);background:linear-gradient(145deg,rgba(31,85,82,.96),rgba(12,31,30,.98))}.how-icon{display:grid;width:50px;height:50px;margin-bottom:36px;place-items:center;border-radius:15px;color:#102121;background:var(--neon);font-size:1.5rem;font-weight:900}.how-card-grid article:nth-child(2) .how-icon{color:#fff;background:#15aaa5}.how-card-grid article:nth-child(3) .how-icon{color:#102121;background:#b8f4ef}.how-card-grid h3{margin:0;color:#fff;font:700 clamp(1.55rem,2.5vw,2.15rem) "Josefin Sans",sans-serif;letter-spacing:-.06em}.how-card-grid p{margin:13px 0 0;color:#b6cecb;line-height:1.6}
@media (max-width:900px){.how-card-grid{grid-template-columns:1fr}.how-card-grid article{min-height:0}}
.home-how-cta{margin-top:28px}

/* Movie library filter tags */
.movie-filters{display:grid;gap:10px;margin:26px 0 10px}.movie-filters>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.movie-filters span{min-width:42px;color:#90aeaa;font-size:.74rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.movie-filter{border:1px solid rgba(151,242,237,.27);border-radius:999px;padding:8px 12px;color:#d6eeeb;background:rgba(17,49,48,.56);font:800 .78rem Outfit,Arial,sans-serif;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}.movie-filter:hover{transform:translateY(-2px);background:rgba(22,185,180,.26)}.movie-filter.active{border-color:var(--neon);color:#102121;background:var(--neon)}.filter-status{margin:12px 0 18px;color:#a7c8c4;font-size:.86rem;font-weight:700}.movie-tile[hidden]{display:none!important}

/* Member entry points use the existing Supabase magic-link dialog. */
.cta-actions{display:grid;gap:10px;flex:0 0 auto}.member-cta{border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:13px 19px;color:#fff;background:rgba(255,255,255,.04);font:800 .95rem Outfit,Arial,sans-serif;cursor:pointer;transition:transform .2s ease,background .2s ease}.member-cta:hover{transform:translateY(-3px);background:rgba(255,255,255,.13)}.dark-member-cta{border-color:rgba(16,59,78,.22);color:#103b4e;background:rgba(255,255,255,.42)}.dark-member-cta:hover{background:#fff}.library-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.member-library-cta{border:0;border-radius:999px;padding:11px 15px;color:#f5fffe;background:#087f7b;font:800 .84rem Outfit,Arial,sans-serif;cursor:pointer;transition:transform .2s ease,background .2s ease}.member-library-cta:hover{transform:translateY(-2px);background:#0b9d98}

/* Cinema-only releases use the same Where to watch card hierarchy. */
body:not(.platform-home) .cinema-notice{display:flex;align-items:center;gap:16px;margin:0 auto 25px;padding:12px 15px;border:0;border-radius:20px;color:var(--ink);background:#e8f8ff;box-shadow:0 12px 30px rgba(9,158,209,.23)}body:not(.platform-home) .cinema-notice span{display:grid;width:54px;height:54px;place-items:center;border-radius:12px;color:transparent;background:#d9ff00;font-size:0}body:not(.platform-home) .cinema-notice span::after{content:"WHERE TO WATCH";color:#103b4e;font-size:.58rem;font-weight:900;letter-spacing:.07em;line-height:1.25;text-align:center}body:not(.platform-home) .cinema-notice strong{color:#103b4e;font:700 clamp(.92rem,2.5vw,1.08rem) "Josefin Sans",sans-serif}
body:not(.platform-home) .cinema-notice span{background:#fff url("assets/cinema-logo.png") center/cover no-repeat}body:not(.platform-home) .cinema-notice span::after{display:none}
body:not(.platform-home) .watch-provider-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:25px}body:not(.platform-home) .watch-provider-row .watch-provider{margin:0}@media(max-width:620px){body:not(.platform-home) .watch-provider-row{grid-template-columns:1fr}}

/* Collapsible movie-library filters */
.movie-filter-panel{margin:26px 0 18px;border:1px solid rgba(151,242,237,.24);border-radius:18px;background:rgba(10,32,31,.54);overflow:hidden}.movie-filter-panel summary{display:grid;grid-template-columns:1fr auto 22px;align-items:center;gap:14px;padding:15px 17px;color:#f4fffe;cursor:pointer;list-style:none;font:700 1.05rem "Josefin Sans",sans-serif}.movie-filter-panel summary::-webkit-details-marker{display:none}.movie-filter-panel summary small{color:#9ec5c1;font:700 .72rem Outfit,Arial,sans-serif}.movie-filter-panel summary::after{content:"+";display:grid;width:22px;height:22px;place-items:center;border-radius:50%;color:#103b4e;background:var(--neon);font:800 1rem Outfit,Arial,sans-serif}.movie-filter-panel[open] summary{border-bottom:1px solid rgba(151,242,237,.18);background:rgba(22,185,180,.12)}.movie-filter-panel[open] summary::after{content:"−"}.movie-filter-panel .movie-filters{margin:18px 17px 10px}.movie-filter-panel .filter-status{margin:12px 17px 18px}@media (max-width:620px){.movie-filter-panel summary{grid-template-columns:1fr 22px}.movie-filter-panel summary small{display:none}}

/* Platform links retain their full call to action; the logo is now a clean rounded icon. */
.movie-poster-link{position:relative}.content-warning-tag{position:absolute;z-index:3;top:10px;left:10px;padding:7px 9px;border:1px solid rgba(255,255,255,.48);border-radius:999px;color:#fff;background:rgba(121,27,38,.92);box-shadow:0 5px 14px rgba(0,0,0,.28);font:800 .64rem Outfit,Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase}.content-warning-dialog{width:min(100% - 32px,460px);padding:0;border:1px solid rgba(151,242,237,.34);border-radius:26px;color:#effffd;background:radial-gradient(circle at 90% 0,rgba(184,48,64,.27),transparent 15rem),linear-gradient(145deg,#153836,#071111);box-shadow:0 30px 80px rgba(0,0,0,.65)}.content-warning-dialog::backdrop{background:rgba(0,9,9,.8);backdrop-filter:blur(6px)}.content-warning-dialog__body{padding:clamp(28px,6vw,42px)}.content-warning-dialog .eyebrow{margin:0;color:#f1b5ba;font:900 .72rem Outfit,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}.content-warning-dialog h2{margin:8px 0 13px;color:#fff;font-size:clamp(2rem,6vw,3.1rem);letter-spacing:-.06em}.content-warning-dialog p:not(.eyebrow){margin:0;color:rgba(233,255,252,.76);line-height:1.58}.content-warning-dialog__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:27px}.warning-cancel,.warning-continue{border:0;border-radius:999px;padding:12px 16px;font:800 .88rem Outfit,Arial,sans-serif;cursor:pointer;text-decoration:none}.warning-cancel{color:#e7f7f5;background:rgba(255,255,255,.1)}.warning-continue{color:#fff;background:#b83040}.warning-continue:hover{background:#d24454}

/* Platform links retain their full call to action; the logo is now a clean rounded icon. */
.worksheet-download{display:grid;grid-template-columns:180px minmax(0,1fr) auto;align-items:center;gap:20px;padding:20px 24px;border:1px solid #b8dedd;border-radius:20px;background:linear-gradient(135deg,#edfdfb,#e4f9f7)}.worksheet-download img{display:block;width:180px;height:102px;border-radius:14px;box-shadow:0 10px 20px rgba(16,59,78,.16);object-fit:contain}.worksheet-download .eyebrow{margin:0 0 8px}.worksheet-download h2{margin:0;color:#103b4e}.worksheet-download p:not(.eyebrow){max-width:600px;margin:9px 0 0;color:#416461;line-height:1.55}.worksheet-download .activity-link{flex:0 0 auto}@media(max-width:620px){.worksheet-download{grid-template-columns:1fr;padding:18px}.worksheet-download img{width:min(100%,300px);height:auto}.worksheet-download .activity-link{width:100%}}
.sentence-challenge{padding:clamp(22px,4vw,34px);border:1px solid #b8dedd;border-radius:22px;background:linear-gradient(135deg,#edfdfb,#e4f9f7)}.sentence-challenge .mini-heading{margin-bottom:22px}.sentence-challenge .mini-heading h2{color:#103b4e}.word-bank{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.word-chip,.sentence-slot{border:0;font:800 .94rem Outfit,Arial,sans-serif;cursor:grab}.word-chip{padding:10px 14px;border-radius:999px;color:#103b4e;background:#d9ff00;box-shadow:0 6px 14px rgba(16,59,78,.12)}.word-chip.is-selected{outline:3px solid #16b9b4;outline-offset:2px}.sentence-lines{display:grid;gap:11px}.sentence-line{margin:0;color:#244946;font-size:1rem;line-height:1.55}.sentence-slot{min-width:125px;padding:8px 11px;border:1px dashed #4c9691;border-radius:10px;color:#087f7b;background:#fff;cursor:pointer}.sentence-slot.is-filled{border-style:solid;color:#fff;background:#087f7b}.sentence-feedback,.sentence-challenge__complete{margin:18px 0 0;color:#416461;font-weight:800}
.provider-mark{display:grid!important;width:58px;height:58px;place-items:center;border-radius:14px;color:#fff;background:#151515;font:900 1.25rem Outfit,Arial,sans-serif;letter-spacing:-.08em;text-transform:lowercase}
.curated-movie-rows{display:grid;gap:52px;width:min(100% - 40px,1240px);margin:8px auto 88px}.curated-row{padding-top:40px;border-top:1px solid rgba(151,242,237,.2)}.curated-row-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.curated-row-heading h2{margin:0;color:#fff;font-size:clamp(1.9rem,3vw,3rem);letter-spacing:-.06em}.curated-row-heading p{max-width:370px;margin:0;color:#9ec5c1;line-height:1.5}.curated-row-action,.curated-scroll-controls{display:flex;align-items:center;gap:17px}.curated-scroll-controls{gap:8px}.curated-scroll-button{display:grid;flex:0 0 auto;width:46px;height:46px;place-items:center;border:1px solid rgba(217,255,0,.5);border-radius:50%;color:#102121;background:var(--neon);font:900 1.25rem Outfit,Arial,sans-serif;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.curated-scroll-button:hover,.curated-scroll-button:focus-visible{box-shadow:0 9px 22px rgba(217,255,0,.22);outline:2px solid #fff;outline-offset:3px}.curated-scroll-button[data-curated-direction=previous]:hover{transform:translateX(-4px)}.curated-scroll-button[data-curated-direction=next]:hover{transform:translateX(4px)}.curated-poster-row{display:flex;gap:18px;overflow-x:auto;padding:4px 2px 15px;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x mandatory}.curated-poster-row::-webkit-scrollbar{display:none}.curated-movie-card{position:relative;display:block;flex:0 0 min(250px,25vw);overflow:hidden;aspect-ratio:2/3;border-radius:20px;color:#fff;background:#163130;box-shadow:0 16px 30px rgba(0,0,0,.25);scroll-snap-align:start;text-decoration:none;transition:transform .28s ease,box-shadow .28s ease}.debate-row .curated-movie-card{flex-basis:calc((100% - 72px)/4.5)}.curated-movie-card img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.curated-movie-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(3,9,9,.9))}.curated-movie-card span{position:absolute;z-index:1;right:14px;bottom:13px;left:14px;font:800 1rem Outfit,Arial,sans-serif}.curated-movie-card:hover{transform:translateY(-7px);box-shadow:0 25px 42px rgba(0,0,0,.34)}.curated-movie-card:hover img{transform:scale(1.07)}@media(max-width:900px){.debate-row .curated-movie-card{flex-basis:calc((100% - 27px)/2.5)}}@media(max-width:620px){.curated-movie-rows{width:min(100% - 24px,1240px);gap:38px;margin-bottom:58px}.curated-row{padding-top:30px}.curated-row-heading{display:block}.curated-row-heading p{margin-top:7px}.curated-row-action{justify-content:space-between;margin-top:10px}.curated-movie-card,.debate-row .curated-movie-card{flex-basis:69%}}
body:not(.platform-home) #word-grid{aspect-ratio:1;overflow:hidden}body:not(.platform-home) #word-grid .letter.found{color:var(--ink);background:var(--teal)}
.content-note{margin:0 0 24px;padding:17px 20px;border:1px solid #e3aaa0;border-radius:18px;color:#5a211d;background:#fff1ee}.content-note .eyebrow{margin:0 0 5px;color:#a43b32}.content-note strong{font-size:.98rem}
.level-choice-tag{position:absolute;z-index:3;top:10px;left:10px;padding:7px 10px;border:1px solid rgba(255,255,255,.48);border-radius:999px;color:#102121;background:var(--neon);box-shadow:0 5px 14px rgba(0,0,0,.25);font:900 .64rem Outfit,Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase}.level-choice-dialog{width:min(100% - 32px,610px)}.level-choice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:26px 0 18px}.level-choice-options a{display:grid;gap:8px;min-height:190px;padding:23px;border:1px solid rgba(151,242,237,.3);border-radius:19px;color:#effffd;background:rgba(255,255,255,.07);text-decoration:none;transition:transform .2s ease,border-color .2s ease,background .2s ease}.level-choice-options a:hover,.level-choice-options a:focus-visible{border-color:var(--neon);background:rgba(217,255,0,.1);transform:translateY(-4px)}.level-choice-options small{color:#9fded9;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.level-choice-options strong{color:#fff;font:700 1.65rem "Josefin Sans",sans-serif}.level-choice-options span{color:#b8d0cd;font-size:.88rem;line-height:1.45}@media(max-width:560px){.level-choice-options{grid-template-columns:1fr}.level-choice-options a{min-height:0}}
.paris-sort{display:grid;gap:18px}.paris-sort-bank{display:flex;flex-wrap:wrap;gap:9px;min-height:55px;padding:13px;border:1px solid #badfdd;border-radius:16px;background:#effcfb}.paris-sort-chip,.paris-drop-zone span button{border:1px solid #80c8c4;border-radius:999px;padding:9px 13px;color:#103b4e;background:#fff;font:800 .84rem Outfit,Arial,sans-serif;cursor:pointer}.paris-sort-chip.is-selected{color:#fff;background:#087f7b}.paris-sort-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.paris-drop-zone{display:grid;align-content:start;gap:13px;min-height:190px;padding:18px;border:2px dashed #64aaa6;border-radius:18px;color:#103b4e;background:#f7fffe;text-align:left;cursor:pointer}.paris-drop-zone>strong{font-size:1.05rem}.paris-drop-zone span{display:flex;flex-wrap:wrap;gap:7px}@media(max-width:620px){.paris-sort-groups{grid-template-columns:1fr}}

/* Matching pairs retain a shared color after a correct answer. */
.matching-board .match-button.matched[data-match-color="0"]{color:#173d39;border-color:#39a99f;background:#bceee8}.matching-board .match-button.matched[data-match-color="1"]{color:#4b3d08;border-color:#d6a900;background:#fff0a8}.matching-board .match-button.matched[data-match-color="2"]{color:#283c63;border-color:#769bd4;background:#dce9ff}.matching-board .match-button.matched[data-match-color="3"]{color:#63304d;border-color:#d281ad;background:#ffe0f0}.matching-board .match-button.matched[data-match-color="4"]{color:#4f3825;border-color:#c9915f;background:#f9dfc6}.matching-board .match-button.matched[data-match-color="5"]{color:#3f3561;border-color:#9b83d4;background:#e9e0ff}.matching-board .match-button.matched[data-match-color="6"]{color:#244c31;border-color:#68aa78;background:#d9f1d8}.matching-board .match-button.matched[data-match-color="7"]{color:#5b302a;border-color:#dc8072;background:#ffddd7}.matching-board .match-button.matched[data-match-color="8"]{color:#214a59;border-color:#62a9c2;background:#d6f2fa}

/* Incorrect multiple-choice attempts remain visible after each quiz rerender. */
body:not(.platform-home) .answer-choice.was-wrong{color:#6f2929!important;border-color:#df9292!important;background:#ffe1e1!important;box-shadow:inset 4px 0 0 #d86868!important}body:not(.platform-home) .answer-choice.was-wrong span{color:#fff!important;border-color:#bd5555!important;background:#bd5555!important}

/* Shared trailer heading and dictionary reference card. */
.plot-vocab-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,340px);column-gap:clamp(18px,4vw,38px);align-items:center}.plot-vocab-heading>.eyebrow,.plot-vocab-heading>h2,.plot-vocab-heading>p:not(.eyebrow){grid-column:1}.plot-vocab-heading>.eyebrow{align-self:end}.plot-vocab-heading>h2{margin-bottom:7px}.plot-vocab-heading>p:not(.eyebrow){align-self:start}.dictionary-card{grid-column:2;grid-row:1/4;display:grid;grid-template-columns:54px 1fr;gap:12px;align-items:center;min-height:108px;padding:15px;border:1px solid #a9d6d3;border-radius:17px;color:#103b4e;background:linear-gradient(135deg,#f5fffe,#e1f7f4);box-shadow:0 10px 22px rgba(15,105,101,.1);text-decoration:none!important;transition:transform .18s ease,box-shadow .18s ease}.dictionary-card:hover,.dictionary-card:focus-visible{transform:translateY(-2px);box-shadow:0 14px 28px rgba(15,105,101,.16);text-decoration:none!important;outline:2px solid #16b9b4;outline-offset:2px}.dictionary-card>img{display:block;width:54px;height:54px;padding:4px;border-radius:13px;object-fit:contain;background:#fff}.dictionary-card>span{display:grid;gap:2px}.dictionary-card small{color:#39706d;font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.dictionary-card strong{font-size:.92rem}.dictionary-card strong b{color:#087f7b}.dictionary-card em{color:#54716f;font-size:.76rem;font-style:normal;line-height:1.3}@media(max-width:700px){.plot-vocab-heading{grid-template-columns:1fr}.dictionary-card{grid-column:1;grid-row:auto;margin-top:8px}}
.response-heading{margin-top:clamp(28px,5vw,48px);margin-bottom:14px}.response-heading h2{margin-bottom:7px}.response-heading p:last-child{max-width:620px}
.watch-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:25px}.watch-provider-grid .watch-provider{margin:0}@media(max-width:650px){.watch-provider-grid{grid-template-columns:1fr}}
.watch-availability-note{margin:-13px 2px 25px;color:#55716f;font-size:.78rem;line-height:1.4;text-align:right}

/* Platform links retain their full call to action; the logo is now a clean rounded icon. */
body:not(.platform-home) .watch-provider{display:flex;align-items:center;min-height:78px;margin:0 0 25px;padding:12px 16px;border:1px solid rgba(22,185,180,.28);border-radius:19px;color:#103b4e;background:linear-gradient(120deg,#f7fcff,#e5f8ff);box-shadow:0 10px 24px rgba(9,158,209,.14);overflow:hidden}
body:not(.platform-home) .watch-provider span{display:grid;gap:2px}
body:not(.platform-home) .watch-provider img{display:block;width:58px;height:54px;padding:0;border:0;border-radius:13px;background:transparent;box-shadow:none;object-fit:cover}
body:not(.platform-home) .watch-provider:hover,body:not(.platform-home) .watch-provider:focus-visible{background:linear-gradient(120deg,#f9ffff,#dcf8f6);box-shadow:0 15px 30px rgba(9,158,209,.24);transform:translateY(-3px)}
@media(max-width:560px){body:not(.platform-home) .watch-provider{min-height:70px;padding:10px 13px}body:not(.platform-home) .watch-provider img{width:52px;height:48px}}

/* Writing or speaking response options */
.response-mode-switcher{display:grid;gap:14px}.response-mode-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:7px;border:1px solid #c5e1df;border-radius:16px;background:#effcfb}.response-mode-tab{border:0;border-radius:10px;padding:11px 15px;color:#416461;background:transparent;font:800 .88rem Outfit,Arial,sans-serif;cursor:pointer;transition:color .18s ease,background .18s ease,transform .18s ease}.response-mode-tab:hover{transform:translateY(-1px);color:#103b4e}.response-mode-tab.active{color:#fff;background:#087f7b;box-shadow:0 5px 12px rgba(8,127,123,.2)}.response-mode-switcher .writing-card{margin:0}.response-mode-switcher .writing-card>.eyebrow{display:none}.speaking-card{padding:clamp(22px,4vw,34px);border:1px solid #b8dedd;border-radius:20px;color:#102121;background:linear-gradient(135deg,#edfdfb,#e4f9f7)}.speaking-card h2{margin:.2rem 0 .7rem}.speaking-card>p:not(.eyebrow){line-height:1.55}.speaking-help{padding:11px 13px;border-radius:12px;color:#235654;background:rgba(22,185,180,.12);font-size:.88rem}.recording-timer{margin:18px 0 0;color:#b13b3b;font-size:1rem;font-weight:900;letter-spacing:.04em}.recording-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.record-button,.stop-recording,.save-recording,.share-recording{border:0;border-radius:999px;padding:11px 15px;color:#fff;background:#087f7b;font:800 .84rem Outfit,Arial,sans-serif;cursor:pointer;transition:transform .18s ease,background .18s ease}.record-button:hover,.stop-recording:hover,.save-recording:hover,.share-recording:hover{transform:translateY(-2px);background:#0b9d98}.stop-recording{background:#a84040}.stop-recording:hover{background:#bd4b4b}.save-recording{color:#103b4e;background:#d9ff00}.save-recording:hover{background:#e4ff3e}.share-recording{background:#103b4e}.share-recording:hover{background:#164f65}.speaking-audio{width:100%;margin-top:18px}.recording-status{min-height:2.5em;margin:16px 0 0;color:#52706d;font-size:.86rem;line-height:1.45}

/* The final response follows the same prompt → mode → export hierarchy as Music Your English. */
.response-prompt-box{padding:clamp(20px,4vw,28px);border:1px solid #a9d6d3;border-radius:20px;background:linear-gradient(130deg,#e8faf8,#f7fffe)}
.response-prompt-label{margin:0 0 10px;color:#087f7b;font:.8rem Outfit,Arial,sans-serif;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.response-prompt-text{margin:0;color:#102121;font:700 clamp(1.1rem,2.4vw,1.45rem)/1.5 Outfit,Arial,sans-serif}
.response-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.response-mode-tab{min-height:48px;text-align:center}
.response-mode-tab:focus-visible,.record-button:focus-visible,.stop-recording:focus-visible,.save-recording:focus-visible{outline:3px solid #d9ff00;outline-offset:3px}
.response-internal-prompt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.response-word-count{margin:8px 0 0;color:#52706d;font-size:.82rem;font-weight:700;text-align:right}
.response-mode-switcher .writing-card,.response-mode-switcher .speaking-card{min-width:0;border:1px solid #b8dedd;border-radius:20px;padding:clamp(22px,4vw,32px);box-shadow:none}
.speaking-status-heading{display:flex;align-items:center;gap:16px}
.speaking-status-heading h2{margin:0 0 5px}
body:not(.platform-home) .speaking-card h2{color:#102121}
.speaking-status-heading p{margin:0;color:#52706d}
.speaking-indicator{width:16px;height:16px;flex:none;border:3px solid #b7e0dd;border-radius:50%;background:#087f7b;box-shadow:0 0 0 6px rgba(8,127,123,.09)}
.speaking-card.is-recording .speaking-indicator{background:#d73b46;box-shadow:0 0 0 6px rgba(215,59,70,.14);animation:mye-recording-pulse 1.2s ease-in-out infinite}
@keyframes mye-recording-pulse{50%{transform:scale(.75);opacity:.65}}
.lesson-report-export{margin-top:30px}
.activity-page .lesson-report-export{color:#102121;background:var(--neon)}
.activity-page .lesson-report-export h2{color:#102121}
.activity-page .lesson-report-export p{color:#294a47}
.lesson-report-export .report-actions{min-width:min(100%,220px)}
.activity-page .lesson-report-export .activity-link{min-height:46px;border:0;border-radius:999px;color:#fff;background:#075b58;box-shadow:none}
.activity-page .lesson-report-export .activity-link:hover{color:#fff;background:#064744}
.activity-page .lesson-report-export .activity-link:focus-visible{color:#fff;background:#064744;outline:3px solid #103b4e;outline-offset:3px}
.report-text-share-button{min-height:46px;border:1px solid #087f7b;border-radius:999px;padding:10px 18px;color:#075b58;background:#e8faf8;font:800 .86rem Outfit,Arial,sans-serif;cursor:pointer}
.activity-page .report-text-share-button{color:#075b58;background:#fff}
.report-text-share-button:hover,.activity-page .report-text-share-button:hover{color:#053f3d;background:#c7f1ec}
.report-text-share-button:focus-visible,.story-share-card button:focus-visible{outline:3px solid #d9ff00;outline-offset:3px}
.report-share-status{min-height:1.2em;margin:0;color:#315a57;font-size:.8rem;line-height:1.4}
.story-share-card{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:18px;padding:clamp(22px,4vw,32px);border:1px solid #9bcfca;border-radius:24px;color:#102121;background:linear-gradient(125deg,#f0fffd,#d8f2ef)}
body:not(.platform-home) .story-share-card h2{margin:4px 0 8px;color:#075b58}
.activity-page .story-share-card p{color:#294a47}
.activity-page .story-share-card .eyebrow{color:#075b58}
.story-share-card p:last-child{max-width:560px;margin:0;line-height:1.5}
.story-share-action{display:grid;justify-items:stretch;gap:8px;flex:0 0 auto;min-width:min(100%,220px)}
.story-share-card .instagram-share-button{min-height:46px;border:0;border-radius:999px;padding:11px 18px;color:#fff;background:#087f7b;font:800 .86rem Outfit,Arial,sans-serif}
.story-share-card .instagram-share-button:hover{background:#0c6e6a;color:#fff}
.story-share-card .story-status{max-width:240px;text-align:center}
@media(max-width:700px){.story-share-card{align-items:stretch;flex-direction:column}.story-share-action{width:100%}.story-share-card .story-status{max-width:none;text-align:left}}
@media(prefers-reduced-motion:reduce){.speaking-card.is-recording .speaking-indicator{animation:none}}

/* Member sign-in modal: dark cinematic surface shared by the whole site. */
/* Shared look and reset control for before-the-movie extra activities. */
.extra-challenge-heading{position:relative;margin:0 0 16px;padding:22px 24px;border:1px solid #b8dedd;border-radius:20px;background:linear-gradient(120deg,#e9faf8,#f8fffe)}
.extra-challenge-heading .eyebrow{color:#087f7b}
.extra-challenge-heading h2{margin:4px 0 7px}
.extra-challenge-heading>p:last-of-type{margin-bottom:0;color:#45635f;line-height:1.5}
.reset-activity-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;margin-top:16px;padding:8px 15px;border:1px solid #85b8b3;border-radius:999px;color:#075c59;background:#fff;font:800 .8rem Outfit,Arial,sans-serif;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.reset-activity-button:hover{border-color:#087f7b;background:#dff8f4;transform:translateY(-1px)}
.reset-activity-button:focus-visible{outline:3px solid #087f7b;outline-offset:3px}
.extra-challenge-content{border-radius:20px}
.crossword-activity{display:grid;gap:22px;max-width:760px}
.crossword-board-wrap{width:100%;overflow-x:auto;padding:4px 2px 10px}
.crossword-grid{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:2px;width:min(100%,520px);min-width:286px;aspect-ratio:13/15}
.crossword-cell{position:relative;display:block;min-width:0;aspect-ratio:1;border:1px solid #8ebbb7;border-radius:4px;background:#fff}
.crossword-cell.is-empty{border-color:transparent;background:transparent}
.crossword-cell.is-complete{border-color:#087f7b;background:#d4f7ec}
.crossword-cell input{display:block;width:100%;height:100%;border:0;border-radius:inherit;padding:0;color:#102121;background:transparent;font:800 clamp(.72rem,2.2vw,1.25rem) Outfit,Arial,sans-serif;text-align:center;text-transform:uppercase;outline:none}
.crossword-cell:focus-within{border:2px solid #087f7b;box-shadow:0 0 0 2px #d9ff00}
.crossword-number{position:absolute;top:1px;left:2px;z-index:1;color:#315a57;font:700 clamp(.38rem,1vw,.58rem) Outfit,Arial,sans-serif;pointer-events:none}
.crossword-clues{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.crossword-clues h3{margin:0 0 10px;color:#103b4e;font-size:1.12rem;text-transform:capitalize}
.crossword-clue{display:block;width:100%;margin:0 0 8px;border:1px solid #abd3cf;border-radius:12px;padding:10px 12px;color:#153d3a;background:#f6fffe;font:600 .9rem/1.4 Outfit,Arial,sans-serif;text-align:left;cursor:pointer}
.crossword-clue span{display:block;margin-top:3px;color:#426a66;font-size:.76rem}
.crossword-clue.is-active{border-color:#087f7b;background:#dff8f4;box-shadow:inset 4px 0 0 #087f7b}
.crossword-clue.is-complete{border-color:#0b8173;background:#d4f7ec}
.crossword-clue:hover{background:#e8faf8}
.crossword-clue:focus-visible{outline:3px solid #087f7b;outline-offset:2px}
.writing-starter{margin-top:12px;padding:10px 13px;border-left:4px solid #087f7b;border-radius:0 10px 10px 0;background:#e5f7f4}
@media(max-width:620px){.crossword-clues{grid-template-columns:1fr}.crossword-grid{gap:1px}.crossword-cell{border-radius:2px}}
.extra-challenge-content :is(.match-button,.word-chip,.verb-bank button,.check-animal,.letter,.paris-sort-item,.sentence-slot,.verb-slot){font-family:Outfit,Arial,sans-serif}
.extra-challenge-content :is(.match-button,.word-chip,.verb-bank button,.check-animal,.letter,.paris-sort-item,.sentence-slot,.verb-slot):focus-visible{outline:3px solid #087f7b;outline-offset:2px}
.sentence-challenge .extra-challenge-heading{padding:0;border:0;background:transparent}
@media(max-width:620px){.extra-challenge-heading{padding:20px}.reset-activity-button{width:100%}}

@page { size: A4; margin: 12mm; }
@media print {
  body.lesson-printing { color: #172323 !important; background: #fff !important; }
  body.lesson-printing > *:not(.lesson-print-export) { display: none !important; }
  body.lesson-printing .lesson-print-export { display: block !important; width: auto; color: #172323; background: #fff; font: 10.5pt/1.4 Arial, sans-serif; }
  .lesson-print-export * { box-sizing: border-box; box-shadow: none !important; text-shadow: none !important; }
  .lesson-print-export button { font: inherit; }
  .lesson-print-header { display: grid; grid-template-columns: minmax(0, 1fr) 34mm; grid-template-rows: auto 1fr; gap: 6mm 9mm; min-height: 61mm; margin-bottom: 5mm; border: 1.5pt solid #0f7772; border-radius: 5mm; padding: 8mm; color: #fff; background: linear-gradient(120deg, #107b75 0%, #0b4f4c 42%, #061312 100%); -webkit-print-color-adjust: exact; print-color-adjust: exact; break-inside: avoid; }
  .lesson-print-brand { align-self: start; color: #fff; font-weight: 900; letter-spacing: .06em; }
  .lesson-print-brand strong { color: #8ff3ec; }
  .lesson-print-brand small { display: block; margin-top: 1.5mm; color: #d0ece9; font-size: 7.5pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .lesson-print-header > img { grid-column: 2; grid-row: 1 / span 2; align-self: center; width: 34mm; height: 50mm; border: 1pt solid #8dd8d3; border-radius: 3mm; object-fit: cover; }
  .lesson-print-title { align-self: end; }
  .lesson-print-title > p { margin: 0 0 1mm; color: #a4faf4; font-size: 7.5pt; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
  .lesson-print-title h1 { margin: 0 0 2.5mm; color: #fff; font: 900 25pt/1 "Outfit", Arial, sans-serif; }
  .lesson-print-title > div { max-width: 135mm; color: #d8e9e7; font-size: 9pt; }
  .lesson-print-student-fields { display: grid; grid-template-columns: 1.35fr 1.1fr .75fr; gap: 5mm; margin: 0 0 8mm; border-bottom: 1pt solid #b9cdcb; padding: 0 1mm 4mm; font-size: 8.5pt; font-weight: 700; break-inside: avoid; }
  .lesson-print-section { margin: 0 0 9mm; }
  .lesson-print-section > header { display: flex; align-items: center; gap: 4mm; margin: 0 0 5mm; border-bottom: 2pt solid #087f7b; padding: 0 0 3mm; break-after: avoid; }
  .lesson-print-section > header > span { display: grid; flex: 0 0 11mm; width: 11mm; height: 11mm; place-items: center; border-radius: 50%; color: #fff; background: #087f7b; font-size: 8pt; font-weight: 900; }
  .lesson-print-section > header h2 { margin: 0; color: #112c2b; font: 900 16pt/1.15 "Outfit", Arial, sans-serif; }
  .lesson-print-section > header p { margin: 1mm 0 0; color: #58706f; font-size: 8pt; font-weight: 700; }
  .lesson-print-section .lesson-section-content { padding: 0; }
  .lesson-print-section .mini-heading { margin: 5mm 0 3mm; break-after: avoid; }
  .lesson-print-section .mini-heading:first-child { margin-top: 0; }
  .lesson-print-section .mini-heading .eyebrow { margin: 0 0 1mm; color: #087f7b; font-size: 7pt; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
  .lesson-print-section .mini-heading h2 { margin: 0 0 1mm; color: #172323; font: 900 13pt/1.2 "Outfit", Arial, sans-serif; }
  .lesson-print-section .mini-heading p,
  .lesson-print-section .section-lead { margin: 1mm 0 3mm; color: #4c5d5c; font-size: 8.5pt; }
  .lesson-print-section .extra-challenge-heading { border: 0; border-radius: 0; padding: 0; background: none; }
  .lesson-print-section .question-carousel-shell { overflow: visible; border: 0; background: transparent; }
  .lesson-print-section .question-carousel,
  .lesson-print-section .lesson-print-questions,
  .lesson-print-section .question-list { display: block; overflow: visible; }
  .lesson-print-section .question-slide,
  .lesson-print-section .lesson-print-question { display: block; width: auto; min-width: 0; padding: 0; break-inside: avoid; }
  .lesson-print-section .question-card { margin: 0 0 4mm; border: 1pt solid #b8c9c8; border-radius: 3mm; padding: 4mm; background: #fff; break-inside: avoid; }
  .lesson-print-section .slide-number { margin: 0 0 1.5mm; color: #087f7b; font-size: 7pt; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
  .lesson-print-section .question-text { margin: 0 0 2.5mm; font-size: 9.5pt; font-weight: 800; }
  .lesson-print-section .answer-options { display: grid; gap: 1.5mm; }
  .lesson-print-section .answer-choice { display: flex; align-items: flex-start; gap: 2mm; width: 100%; border: 0; padding: 0; color: #172323; background: transparent; font-size: 8.5pt; font-weight: 500; text-align: left; }
  .lesson-print-section .answer-choice span { display: inline; flex: 0 0 auto; width: auto; height: auto; border: 0; font-size: 9pt; line-height: 1.25; }
  .lesson-print-section .watch-checklist { display: grid; gap: 2mm; }
  .lesson-print-section .watch-item { display: flex; gap: 2mm; border: 0; border-bottom: .6pt solid #d5dfde; padding: 1.5mm 0 2mm; color: #172323; background: transparent; font-size: 9pt; break-inside: avoid; }
  .lesson-print-section .watch-item span { display: inline; flex: 0 0 auto; width: auto; height: auto; border: 0; }
  .lesson-print-section .watching-tip { margin: 4mm 0 0; border-left: 3pt solid #b8d600; padding: 3mm; color: #314240; background: #f4f9e8; font-size: 8.5pt; break-inside: avoid; }
  .lesson-print-section :is(.matching-board,.match-board) { display: grid; grid-template-columns: 1fr 1.45fr; gap: 4mm; }
  .lesson-print-section :is(.match-column,.matching-column) { display: grid; gap: 2mm; }
  .lesson-print-section :is(.match-button,.matching-option,.word-chip,.verb-bank button,.letter,.body-part-letter,.paris-sort-item,.sort-item) { border: 1pt solid #a9bcba !important; border-radius: 2mm !important; padding: 2mm !important; color: #172323 !important; background: #fff !important; }
  .lesson-print-section .lesson-print-word-bank,
  .lesson-print-section .lesson-print-sort-bank { margin: 3mm 0; border: 1pt dashed #087f7b; border-radius: 2mm; padding: 3mm; color: #243b3a; background: #effaf8; }
  .lesson-print-section :is(.verb-slot,.sentence-slot,.word-slot,.gap-slot,.fill-slot) { min-width: 25mm; border: 0 !important; border-bottom: 1pt solid #172323 !important; padding: 0 1mm !important; color: transparent !important; background: transparent !important; }
  .lesson-print-section :is(.wordsearch-grid,.crossword-grid) { break-inside: avoid; }
  .lesson-print-section :is(.wordsearch-cell,.crossword-cell,.letter) { color: #172323 !important; background: #fff !important; }
  .lesson-print-section .lesson-print-zone-lines { min-height: 18mm; margin-top: 2mm; background: repeating-linear-gradient(to bottom, transparent 0 6mm, #c8d5d4 6mm 6.3mm); }
  .lesson-print-section .writing-card { margin-top: 5mm; border: 1.5pt solid #087f7b; border-radius: 4mm; padding: 5mm; background: #f6fbfa; break-inside: avoid; }
  .lesson-print-section .writing-card h2 { margin: 1mm 0 2mm; font: 900 14pt/1.2 "Outfit", Arial, sans-serif; }
  .lesson-print-section .writing-card label,
  .lesson-print-section .student-fields { display: none; }
  .lesson-print-writing-lines { min-height: 55mm; margin-top: 4mm; background: repeating-linear-gradient(to bottom, transparent 0 8mm, #9eb2b0 8mm 8.35mm); }
  .lesson-print-footer { display: flex; justify-content: space-between; gap: 5mm; margin-top: 7mm; border-top: 1pt solid #9db1af; padding-top: 3mm; color: #506361; font-size: 7.5pt; }
  .lesson-print-footer strong { color: #087f7b; }
}

/* Compact movie-library filters keep the carousel controls beside the posters. */
.movie-filter-panel .movie-filters{display:grid;grid-template-columns:minmax(190px,1.35fr) repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:15px 17px 17px}
.movie-filter-field{display:grid;min-width:0;gap:7px}
.movie-filter-field span{color:#a8d0cc;font-size:.69rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.movie-filter-field select{width:100%;min-height:42px;padding:8px 34px 8px 12px;border:1px solid rgba(151,242,237,.34);border-radius:11px;color:#f4fffe;background:#11312f;font:700 .86rem Outfit,Arial,sans-serif;cursor:pointer}
.movie-filter-field select:hover{border-color:rgba(151,242,237,.68)}
.movie-filter-field select:focus-visible{outline:3px solid var(--neon);outline-offset:2px}
.movie-search-control{position:relative}.movie-search-control>span{position:absolute;top:50%;left:12px;color:#8fd8d3;font-size:1.08rem;line-height:1;transform:translateY(-50%);pointer-events:none}.movie-search-control input{box-sizing:border-box;width:100%;min-height:42px;padding:8px 34px 8px 36px;border:1px solid rgba(151,242,237,.34);border-radius:11px;color:#f4fffe;background:#11312f;font:700 .86rem Outfit,Arial,sans-serif}.movie-search-control input::placeholder{color:#91b7b3}.movie-search-control input:hover{border-color:rgba(151,242,237,.68)}.movie-search-control input:focus-visible{outline:3px solid var(--neon);outline-offset:2px}.movie-search-control input::-webkit-search-cancel-button{filter:invert(1);cursor:pointer}
.movie-carousel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:8px 0 13px}
.movie-carousel-toolbar .filter-status{margin:0;color:#a7c8c4;font-size:.84rem;font-weight:700}
.movie-carousel-toolbar .carousel-controls{display:flex;flex:none}
.movie-filter-panel{margin-bottom:12px}
@media(max-width:820px){.movie-filter-panel .movie-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.movie-filter-panel .movie-filters{grid-template-columns:1fr;gap:10px}.movie-carousel-toolbar .carousel-button{width:42px;height:42px}}

/* Curated rails share the main library width; extra posters scroll inside the rail. */
.streaming-home > .curated-movie-rows{grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;box-sizing:border-box}
.curated-movie-rows .curated-row{min-width:0;max-width:100%}
.curated-movie-rows .curated-poster-row{min-width:0;max-width:100%;box-sizing:border-box}

/* Clickable-letter anagrams used by the Talk to Me lesson. */
.body-part-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.body-part-card{min-width:0;padding:22px;border:1px solid #c3dfdc;border-radius:19px;background:linear-gradient(145deg,#f6fffe,#e7f8f5)}
.body-part-card.is-solved{border-color:#16b9b4;background:linear-gradient(145deg,#effff7,#def9eb)}
.body-part-card-heading{display:flex;align-items:center;gap:11px;color:#103b4e}
.body-part-emoji{display:grid;width:45px;height:45px;place-items:center;border-radius:12px;background:#d5f2ee;font-size:1.5rem}
.body-part-card-heading small,.body-part-card-heading strong{display:block}.body-part-card-heading small{color:#5b7773;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.body-part-card-heading strong{margin-top:2px;font:700 1.2rem "Josefin Sans",Arial,sans-serif}
.body-part-answer,.body-part-letters{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.body-part-slot,.body-part-letter{display:grid;width:41px;height:43px;place-items:center;border:1px solid #91c8c2;border-radius:9px;color:#103b4e;background:#fff;font:900 1rem Outfit,Arial,sans-serif}
.body-part-slot{background:#e5f3f1}.body-part-slot.is-filled{cursor:pointer;background:#c7f1eb}.body-part-slot:disabled{opacity:1;cursor:default}
.body-part-letter{cursor:pointer;background:#d9ff00;border-color:#a2c600;transition:transform .15s ease,background .15s ease}.body-part-letter:hover:not(:disabled){transform:translateY(-2px);background:#e8ff6b}.body-part-letter:disabled{opacity:.35;cursor:default}
.body-part-slot:focus-visible,.body-part-letter:focus-visible,.body-part-actions button:focus-visible{outline:3px solid #087f7b;outline-offset:2px}
.body-part-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:16px}.body-part-actions button{border:1px solid #9fc8c3;border-radius:999px;padding:7px 11px;color:#103b4e;background:#fff;font:800 .75rem Outfit,Arial,sans-serif;cursor:pointer}.body-part-actions button:disabled{opacity:.45;cursor:default}.body-part-result{margin-left:auto;color:#087f7b;font-size:.78rem;font-weight:800}.body-part-result.is-incorrect{color:#a83b48}
@media(max-width:700px){.body-part-grid{grid-template-columns:1fr}.body-part-card{padding:19px}}
.auth-modal{overflow:visible;width:min(100% - 32px,390px);padding:0;border:1px solid rgba(151,242,237,.3);border-radius:22px;color:#effffd;background:linear-gradient(145deg,#153836,#071111);box-shadow:0 30px 80px rgba(0,0,0,.62)}.auth-modal::before{content:"";position:absolute;top:-8px;right:28px;width:14px;height:14px;border-top:1px solid rgba(151,242,237,.3);border-left:1px solid rgba(151,242,237,.3);background:#12312f;transform:rotate(45deg)}.auth-modal::backdrop{background:rgba(0,9,9,.78);backdrop-filter:blur(6px)}.auth-form{position:relative;display:grid;gap:11px;padding:28px 24px 20px}.auth-form h2{margin:0;color:#fff;font:700 1.2rem "Josefin Sans",Arial,sans-serif;letter-spacing:-.025em;line-height:1.1}.auth-form>p:not(.auth-message){margin:2px 0 8px;color:rgba(233,255,252,.7);font-size:.88rem;line-height:1.5}.auth-form .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auth-form input{box-sizing:border-box;width:100%;min-height:50px;border:1px solid rgba(151,242,237,.38);border-radius:13px;padding:0 14px;color:#fff;background:rgba(2,13,13,.7);font:600 1rem Outfit,Arial,sans-serif;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.auth-form input:focus{border-color:var(--neon);box-shadow:0 0 0 4px rgba(217,255,0,.14)}.auth-form input::placeholder{color:rgba(219,245,242,.5)}.auth-form .activity-link{width:100%;min-height:48px;margin:0;border:0;border-radius:13px;padding:13px 18px;color:#103b4e;background:var(--neon);font:900 .92rem Outfit,Arial,sans-serif;box-shadow:none}.auth-form .activity-link:hover,.auth-form .activity-link:focus-visible{transform:translateY(-2px);box-shadow:0 10px 22px rgba(217,255,0,.18);outline:2px solid #fff;outline-offset:2px}.auth-message{min-height:0;margin:0;color:#bff8f4;font-size:.84rem;font-weight:700}.auth-message:empty{display:none}.auth-cancel{justify-self:center;border:0;padding:7px 12px;color:rgba(233,255,252,.68);background:transparent;font:800 .88rem Outfit,Arial,sans-serif;cursor:pointer}.auth-cancel:hover,.auth-cancel:focus-visible{color:var(--neon);outline:0;text-decoration:underline;text-underline-offset:4px}
