/* =========================================================
   MISSION 01 · PAGE 3–16 · PAGE-25 VISUAL SYSTEM
   Background/canvas/FX: EXACTLY the shared m02-viewport-fx
   currently used by Page 25. This file changes foreground
   palette only; layout, dimensions and interaction remain intact.
   ========================================================= */

:root{
  --m01-ink:#F6FBFF;
  --m01-ink-soft:#D9EAF2;
  --m01-muted:#AFC8D5;
  --m01-cyan:#46E3F2;
  --m01-teal:#2EE0C4;
  --m01-blue:#31A7E8;
  --m01-deep:#06182D;
  --m01-deep-2:#08253A;
  --m01-glass:rgba(7,27,49,.74);
  --m01-glass-strong:rgba(6,24,46,.88);
  --m01-line:rgba(70,227,242,.34);
  --m01-line-soft:rgba(91,197,222,.20);
}

/* The slide itself stays transparent so the same viewport layer used by
   Page 25 is visible without any extra Mission-01 image, grid or scan FX. */
#courseReveal > .slides > section.m01-p25-theme{
  background:transparent!important;
  color:var(--m01-ink)!important;
  box-shadow:none!important;
}
#courseReveal > .slides > section.m01-p25-theme::before{
  background:transparent!important;
}
#courseReveal > .slides > section.m01-p25-theme::after{
  background:linear-gradient(135deg,rgba(20,12,58,.42),rgba(65,25,100,.20) 48%,rgba(5,28,65,.22))!important;
}

/* Typography: Mission-02/03 dark-HUD hierarchy, recolored for Explore. */
.m01-p25-theme :is(h1,h2,h3,h4,h5,h6){color:#FFFFFF!important;text-shadow:0 0 18px rgba(70,227,242,.10)}
.m01-p25-theme :is(p,li,label){color:var(--m01-ink-soft)!important}
.m01-p25-theme :is(small,.subtitle,[class*="subtitle"],[class*="description"],[class*="desc"],[class*="copy"] p){color:var(--m01-muted)!important}
.m01-p25-theme :is(a,b,strong,[class*="eyebrow"],[class*="kicker"],[class*="label"]){border-color:var(--m01-line-soft)}

/* Core glass-card conversion. These selectors intentionally target visual
   containers, not their geometry, so existing grids/positions remain intact. */
.m01-p25-theme :is(
  article,aside,
  [class*="card"],[class*="panel"],[class*="box"],[class*="block"],
  [class*="zone"],[class*="workspace"],[class*="status"],[class*="result"],
  [class*="task"],[class*="opinion"],[class*="evidence"],[class*="question"],
  [class*="hypothesis"],[class*="report-item"],[class*="participant"]
){
  border-color:var(--m01-line)!important;
  background:linear-gradient(180deg,rgba(8,34,58,.80),rgba(5,24,48,.68))!important;
  color:var(--m01-ink)!important;
  box-shadow:0 10px 28px rgba(0,8,24,.20),inset 0 1px 0 rgba(160,240,250,.025)!important;
}

/* Nested tiles need a slightly lighter separation than their parent card. */
.m01-p25-theme :is(
  [class*="item"],[class*="tile"],[class*="chip"],[class*="cell"],
  [class*="paragraph"],[class*="choice"],[class*="option"],[class*="answer"],
  [class*="step"],[class*="node"],[class*="fact"]
){
  border-color:rgba(70,227,242,.28)!important;
  background:rgba(9,39,62,.72)!important;
  color:var(--m01-ink)!important;
}

/* Mission 01 accent vocabulary. */
.m01-p25-theme :is(
  [class*="mission"] [class*="label"],
  [class*="title"] > span,
  [class*="stage"] > span,
  [class*="score"] span,
  [class*="tool"] span,
  [class*="nova"] > strong,
  [class*="nova"] > span
){color:var(--m01-cyan)!important}
.m01-p25-theme :is([class*="score"],[class*="counter"],[class*="count"]){
  border-color:rgba(70,227,242,.46)!important;
  background:rgba(5,28,52,.72)!important;
  box-shadow:0 0 20px rgba(49,167,232,.10)!important;
}
.m01-p25-theme :is([class*="score"] strong,[class*="counter"] strong,[class*="count"] strong){color:#FFFFFF!important}

/* Progress / selected / completed states. */
.m01-p25-theme :is(.current,.active,.selected,.is-active,[aria-current="true"]){
  color:#FFFFFF!important;
  border-color:var(--m01-cyan)!important;
  background:linear-gradient(135deg,rgba(22,126,157,.88),rgba(18,78,137,.86))!important;
  box-shadow:0 0 17px rgba(70,227,242,.28)!important;
}
.m01-p25-theme :is(.done,.complete,.completed,.is-complete,.correct,.is-collected,.is-found){
  color:#E9FFFC!important;
  border-color:var(--m01-teal)!important;
  background:linear-gradient(135deg,rgba(24,124,130,.82),rgba(15,83,112,.82))!important;
  box-shadow:0 0 16px rgba(46,224,196,.20)!important;
}
.m01-p25-theme :is(.wrong,.incorrect){
  border-color:rgba(152,178,191,.48)!important;
  background:rgba(38,50,65,.76)!important;
  color:#C8D5DC!important;
}

/* Inputs and interactive controls. */
.m01-p25-theme :is(button,input,textarea,select){
  border-color:rgba(70,227,242,.42)!important;
  color:var(--m01-ink)!important;
  background:rgba(7,35,58,.82)!important;
}
.m01-p25-theme button:hover:not(:disabled){
  border-color:var(--m01-cyan)!important;
  background:linear-gradient(135deg,rgba(17,112,147,.92),rgba(14,73,126,.90))!important;
  box-shadow:0 0 16px rgba(70,227,242,.18)!important;
}
.m01-p25-theme :is(input,textarea)::placeholder{color:#829EAC!important}

/* Former orange tips / badges are pulled back into the Explore palette. */
.m01-p25-theme :is([class*="tip"],[class*="hint"],[class*="notice"],[class*="badge"]){
  border-color:rgba(70,227,242,.50)!important;
  color:#DDFBFF!important;
  background:rgba(8,45,67,.78)!important;
}
.m01-p25-theme :is([class*="tip"],[class*="hint"],[class*="notice"],[class*="badge"]) strong{
  color:var(--m01-cyan)!important;
}

/* Tables / rails / separators. */
.m01-p25-theme :is(table,th,td){border-color:rgba(70,227,242,.22)!important}
.m01-p25-theme th{color:var(--m01-cyan)!important;background:rgba(10,45,67,.76)!important}
.m01-p25-theme td{color:var(--m01-ink-soft)!important;background:rgba(6,28,49,.64)!important}
.m01-p25-theme hr{border-color:rgba(70,227,242,.22)!important}

/* Teaching Lens on M01 follows the same dark-glass family. */
.m01-p25-theme .teaching-lens-trigger{
  border-color:rgba(70,227,242,.45)!important;
  background:rgba(6,31,55,.78)!important;
  color:#EAFDFF!important;
}
.m01-p25-theme .teaching-lens-trigger span{color:var(--m01-cyan)!important}
.m01-p25-theme .teaching-lens-panel{
  border-color:rgba(70,227,242,.42)!important;
  background:linear-gradient(180deg,rgba(5,27,50,.97),rgba(5,20,42,.96))!important;
  color:var(--m01-ink)!important;
  box-shadow:0 22px 54px rgba(0,4,18,.38),0 0 26px rgba(70,227,242,.08)!important;
}
.m01-p25-theme .teaching-lens-tags span,
.m01-p25-theme .teaching-lens-concept{
  border-color:rgba(70,227,242,.28)!important;
  background:rgba(15,71,91,.58)!important;
  color:#BFF9FF!important;
}

/* Keep NOVA's cyan system vivid against the darker cards. */
.m01-p25-theme [class*="nova"] img{filter:drop-shadow(0 0 14px rgba(70,227,242,.45))}
.m01-p25-theme .nova-ball{box-shadow:0 0 22px #35eaff,0 0 58px rgba(30,200,255,.72),0 0 110px rgba(30,94,255,.35),inset 0 0 30px rgba(80,239,255,.35)!important}

/* Restore transparent outermost slide containers if their legacy rules force
   a light page background. Visual cards inside remain dark glass. */
#digitalCityMap.m01-p25-theme,
.communication-timeline-slide.m01-p25-theme,
.watch-notice-slide.m01-p25-theme,
.first-take-slide.m01-p25-theme,
.global-title-slide.m01-p25-theme,
.basic-opinion-slide.m01-p25-theme,
.background-match-slide.m01-p25-theme,
.read-apply-slide.m01-p25-theme,
#page10EvidenceAvenue.m01-p25-theme,
#page11PositionPoint.m01-p25-theme,
#page12DecisionHub.m01-p25-theme,
#page13ActionStudio.m01-p25-theme,
#page14FieldMission.m01-p25-theme,
#page15MissionReport.m01-p25-theme{
  background:transparent!important;
}

/* === 2026-08-21 M01 comprehensive dark-HUD hardening ===
   Override legacy page-specific light fills and dark ink without changing geometry. */
#courseReveal > .slides > section.m01-p25-theme,
#courseReveal > .slides > section.m01-p25-theme *{ --m01-card:rgba(7,23,51,.86); --m01-card2:rgba(9,28,60,.76); }

/* page canvas */
#courseReveal > .slides > section.m01-p25-theme{color:#F7FBFF!important;background:transparent!important}

/* all semantic foreground text: white body, cyan headings/labels */
.m01-p25-theme :is(h1,h2,h3,h4,h5,h6){color:#F8FCFF!important}
.m01-p25-theme :is(p,li,label,blockquote,figcaption){color:#F4F9FF!important}
.m01-p25-theme :is([class*="task-label"],[class*="question-label"],[class*="word-puzzle-label"],[class*="word-discovery-label"],[class*="eyebrow"],[class*="kicker"]){color:#46E3F2!important}
.m01-p25-theme :is([class*="title-zone"] h1,[class*="title-zone"] h2,[class*="title-zone"] h3){color:#F8FCFF!important}
.m01-p25-theme :is([class*="title-zone"] small,[class*="title-meta"],[class*="header-left"] small){color:#8EDDE9!important}
.m01-p25-theme :is(strong,b){color:#F8FCFF}

/* comprehensive surface conversion, including legacy page-specific modules */
.m01-p25-theme :is(
  article,aside,section>article,
  [class*="card"],[class*="panel"],[class*="box"],[class*="block"],[class*="zone"],
  [class*="workspace"],[class*="system"],[class*="rail"],[class*="strip"],[class*="tray"],
  [class*="question"],[class*="argument"],[class*="reflection"],[class*="summary"],
  [class*="prompt"],[class*="statement"],[class*="clue"],[class*="evidence"],[class*="position"],
  [class*="mission-score"],[class*="progress"],[class*="status"],[class*="report"]
){background:linear-gradient(180deg,rgba(9,27,61,.88),rgba(5,18,45,.84))!important;border-color:rgba(70,227,242,.32)!important;color:#F5FAFF!important;box-shadow:inset 0 1px 0 rgba(126,239,255,.04),0 10px 30px rgba(0,4,24,.22)!important}

/* nested controls / tiles */
.m01-p25-theme :is(
  [class*="option"],[class*="choice"],[class*="item"],[class*="tile"],[class*="cell"],
  [class*="step"],[class*="node"],[class*="chip"],[class*="word-bank"] span,
  [class*="map"] span,[class*="path"] span
){background:rgba(10,31,66,.88)!important;border-color:rgba(70,227,242,.28)!important;color:#F4F9FF!important}

/* force out common legacy white/light fills */
.m01-p25-theme :is(input,textarea,select,button){background:rgba(8,28,60,.92)!important;color:#F7FBFF!important;border-color:rgba(70,227,242,.42)!important}
.m01-p25-theme :is(input,textarea,select){box-shadow:inset 0 0 0 1px rgba(70,227,242,.05)!important}
.m01-p25-theme button:is(:hover,:focus-visible){background:rgba(13,74,105,.96)!important;color:#FFFFFF!important;border-color:#46E3F2!important}

/* Page 10–15 legacy explicit selectors: these formerly survived generic class matching. */
#page10EvidenceAvenue.m01-p25-theme,
#page11PositionPoint.m01-p25-theme,
#page12DecisionHub.m01-p25-theme,
#page13ActionStudio.m01-p25-theme,
#page14FieldMission.m01-p25-theme,
#page15MissionReport.m01-p25-theme{color:#F5FAFF!important;background:transparent!important}

#page10EvidenceAvenue.m01-p25-theme :is(.page10-title-zone h2,.page10-step h3),
#page11PositionPoint.m01-p25-theme :is(.page11-title-zone h2,.page11-step h3),
#page12DecisionHub.m01-p25-theme :is(.page12-title-zone h2,h3),
#page13ActionStudio.m01-p25-theme :is(.page13-title-zone h2,h3),
#page14FieldMission.m01-p25-theme :is(.page14-title-zone h2,h3),
#page15MissionReport.m01-p25-theme :is(.page15-title-zone h2,h3){color:#FFFFFF!important}

#page10EvidenceAvenue.m01-p25-theme :is(.page10-task-label,.page10-header-left small),
#page11PositionPoint.m01-p25-theme :is(.page11-task-label,.attitude-question-label,.conclusion-label),
#page12DecisionHub.m01-p25-theme :is(.page12-task-label,.page12-argument-heading strong),
#page13ActionStudio.m01-p25-theme :is(.page13-task-label,.word-puzzle-label,.word-discovery-label),
#page14FieldMission.m01-p25-theme :is(.page14-task-label),
#page15MissionReport.m01-p25-theme :is(.page15-task-label,.page15-nova-copy>strong,.page15-next-mission>strong){color:#46E3F2!important}

#page10EvidenceAvenue.m01-p25-theme :is(.page10-title-zone p,.page10-title-meta),
#page11PositionPoint.m01-p25-theme :is(.page11-title-zone p,.page11-title-meta),
#page12DecisionHub.m01-p25-theme :is(.page12-title-zone p,.page12-title-meta),
#page13ActionStudio.m01-p25-theme :is(.page13-title-zone p),
#page14FieldMission.m01-p25-theme :is(.page14-title-zone p),
#page15MissionReport.m01-p25-theme :is(.page15-title-zone p,.page15-nova-copy>p,.page15-map-zone>p,.page15-next-mission>p){color:#DCECF5!important}

/* specific known light modules on late M01 pages */
#page11PositionPoint.m01-p25-theme .attitude-option,
#page12DecisionHub.m01-p25-theme #connectArgumentButton,
#page13ActionStudio.m01-p25-theme .vocab-progress-card,
#page15MissionReport.m01-p25-theme :is(.page15-final-reflection,.page15-bottom-system,.page15-final-reflection button,.page15-map>div span,.page15-complete-banner){background:linear-gradient(180deg,rgba(9,29,63,.94),rgba(5,19,47,.92))!important;color:#F6FBFF!important;border-color:rgba(70,227,242,.34)!important}
#page15MissionReport.m01-p25-theme .page15-final-reflection button.is-selected{background:rgba(13,92,104,.92)!important;color:#EFFFFF!important;border-color:#2EE0C4!important}

/* labels, badges and score chrome */
.m01-p25-theme :is([class*="mission-badge"],[class*="stage-badge"],[class*="header-left"]>span,[class*="header-left"]>b){background:rgba(7,34,69,.92)!important;color:#70EAF4!important;border-color:rgba(70,227,242,.42)!important}
.m01-p25-theme :is([class*="mission-score"] strong,[class*="score-value"] strong,[class*="score-value"]>span){color:#FFFFFF!important}
.m01-p25-theme :is([class*="mission-score"]>span,[class*="score-label"]){color:#8EDDE9!important}

/* retain green only for explicit success/completion semantics */
.m01-p25-theme :is(.is-selected,.selected,.active,.current){border-color:#46E3F2!important;color:#FFFFFF!important}
.m01-p25-theme :is(.is-complete,.complete,.completed,.correct,.is-recorded){border-color:#2EE0C4!important;color:#E9FFFC!important}


/* =========================================================
   M01 FINAL DARK-SURFACE PASS
   Eliminate legacy white/light fills on Pages 3–16.
   Keep structural/layout containers transparent; convert UI surfaces only.
   ========================================================= */
.m01-p25-theme{
  --m01-bg-deep: rgba(5,18,45,.94);
  --m01-bg-card: rgba(7,25,55,.92);
  --m01-bg-card2: rgba(10,35,70,.88);
  --m01-cyan: #46E3F2;
  --m01-cyan-soft: #8EDDE9;
  --m01-white: #F7FBFF;
}

/* Explicit UI surfaces that were still light in the legacy M01 CSS */
.m01-p25-theme :is(
  .activity-progress,.activity-progress-bar,.activity-progress-shell,.progress-shell,.progress-card,
  .nova-update,.nova-panel,.nova-copy,.nova-system,.nova-status,.nova-console,.nova-message,
  .mission-update,.mission-panel,.mission-console,.bottom-system,.bottom-panel,.bottom-rail,
  .result-panel,.result-card,.result-zone,.completion-panel,.completion-card,.complete-panel,
  .instruction-card,.instruction-panel,.instruction-box,.notice-panel,.notice-card,
  .word-bank,.word-bank-card,.wordbank,.wordbank-card,
  .evidence-cards,.evidence-card,.evidence-pattern,.evidence-result,.evidence-lab,
  .hypothesis-card,.hypothesis-box,.hypothesis-panel,
  .reflection-card,.reflection-panel,.reflection-box,
  .summary-card,.summary-panel,.summary-box,
  .score-card,.score-panel,.score-box,
  .feedback-card,.feedback-panel,.feedback-box,
  .next-task,.next-task-card,.next-task-panel,
  .task-complete,.task-complete-card,.task-complete-panel,
  .mission-report,.mission-report-card,.mission-report-panel
){
  background:linear-gradient(180deg,var(--m01-bg-card),var(--m01-bg-deep))!important;
  background-color:var(--m01-bg-card)!important;
  color:var(--m01-white)!important;
  border-color:rgba(70,227,242,.34)!important;
}

/* Legacy pale bars / strips / footer rails */
.m01-p25-theme :is(
  [class*="progress-"],[class$="-progress"],
  [class*="footer"],[class*="bottom-"],
  [class*="complete-"],[class*="completion-"],
  [class*="update-"],[class*="result-"],
  [class*="instruction-"],[class*="feedback-"]
){
  background-color:rgba(7,25,55,.90)!important;
  color:var(--m01-white)!important;
  border-color:rgba(70,227,242,.28)!important;
}

/* Any legacy inline light background inside M01 is a UI surface, not the page canvas. */
.m01-p25-theme :is(div,article,aside,header,footer,form,fieldset,nav)[style*="background: white" i],
.m01-p25-theme :is(div,article,aside,header,footer,form,fieldset,nav)[style*="background:#fff" i],
.m01-p25-theme :is(div,article,aside,header,footer,form,fieldset,nav)[style*="background: #fff" i],
.m01-p25-theme :is(div,article,aside,header,footer,form,fieldset,nav)[style*="background-color: white" i],
.m01-p25-theme :is(div,article,aside,header,footer,form,fieldset,nav)[style*="background-color:#fff" i]{
  background:linear-gradient(180deg,var(--m01-bg-card),var(--m01-bg-deep))!important;
  color:var(--m01-white)!important;
  border-color:rgba(70,227,242,.34)!important;
}

/* Text hierarchy inside converted surfaces */
.m01-p25-theme :is(
  .activity-progress,.nova-update,.nova-panel,.mission-update,.bottom-system,
  .result-panel,.completion-panel,.instruction-card,.instruction-panel,
  .word-bank,.evidence-cards,.evidence-pattern,.reflection-card,.summary-card,
  .feedback-card,.next-task,.task-complete
) :is(p,span,li,label,small){
  color:#EAF7FF!important;
}
.m01-p25-theme :is(
  .activity-progress,.nova-update,.nova-panel,.mission-update,.bottom-system,
  .result-panel,.completion-panel,.instruction-card,.instruction-panel,
  .word-bank,.evidence-cards,.evidence-pattern,.reflection-card,.summary-card,
  .feedback-card,.next-task,.task-complete
) :is(h1,h2,h3,h4,h5,h6,strong,b){
  color:#F8FCFF!important;
}

/* Cyan is reserved for labels / emphasis rather than body copy */
.m01-p25-theme :is(
  [class*="label"],[class*="eyebrow"],[class*="kicker"],
  [class*="nova-"]>strong,[class*="mission-"]>strong,
  [class*="evidence-"]>strong,[class*="task-"]>strong
){
  color:var(--m01-cyan)!important;
}

/* Inputs, blanks, selectable cards: dark blue with cyan outline */
.m01-p25-theme :is(input,textarea,select,
  [contenteditable="true"],.blank,.gap,.drop-zone,.drop-target,
  [class*="drop-zone"],[class*="drop-target"]
){
  background:rgba(5,25,53,.96)!important;
  color:#FFFFFF!important;
  border-color:rgba(70,227,242,.55)!important;
}

/* Page-specific remaining pale surfaces visible in the user's screenshots */
.communication-timeline-slide.m01-p25-theme :is(.activity-progress,.timeline-progress,.nova-update,.nova-message),
.watch-notice-slide.m01-p25-theme :is(.activity-progress,.watch-progress,.nova-update,.nova-message,.watch-instruction),
.first-take-slide.m01-p25-theme :is(.prediction-result,.position-result,.nova-panel,.nova-message),
.global-title-slide.m01-p25-theme :is(.nova-panel,.nova-message,.hypothesis-flow,.task-complete),
.basic-opinion-slide.m01-p25-theme :is(.evidence-progress,.evidence-result,.nova-panel,.nova-message,.task-complete),
.background-match-slide.m01-p25-theme :is(.evidence-progress,.evidence-pattern,.evidence-cards,.nova-panel,.nova-message,.task-complete){
  background:linear-gradient(180deg,rgba(7,25,55,.94),rgba(4,17,43,.94))!important;
  background-color:rgba(7,25,55,.94)!important;
  color:#F7FBFF!important;
  border-color:rgba(70,227,242,.34)!important;
}

/* Do not let generic legacy color declarations make text dark again */
.m01-p25-theme :is(
  .activity-progress,.nova-update,.nova-panel,.nova-message,.mission-update,
  .prediction-result,.position-result,.hypothesis-flow,.evidence-progress,
  .evidence-result,.evidence-pattern,.evidence-cards,.task-complete
) *{
  --legacy-text:#F7FBFF;
}
.m01-p25-theme :is(
  .activity-progress,.nova-update,.nova-panel,.nova-message,.mission-update,
  .prediction-result,.position-result,.hypothesis-flow,.evidence-progress,
  .evidence-result,.evidence-pattern,.evidence-cards,.task-complete
) :is(p,span,div,small,label){
  color:#EAF7FF!important;
}


/* =========================================================
   M01 VERTICAL SAFE-FRAME ALIGNMENT — Pages 3–16
   Unify bottom visual boundary while preserving each page's
   internal grid, card sizes, and interaction logic.
   ========================================================= */
:root{
  --m01-safe-top: 26px;
  --m01-safe-bottom: 64px;
}

/* Shared vertical frame for Mission 01 working slides only. */
#courseReveal > .slides > section.m01-p25-theme{
  box-sizing:border-box!important;
  min-height:100%!important;
  height:100%!important;
  padding-top:var(--m01-safe-top)!important;
  padding-bottom:var(--m01-safe-bottom)!important;
}

/* Keep all page-local content inside the same bottom safe line.
   We intentionally avoid touching widths, grid tracks, absolute
   positioning, card dimensions, or interaction geometry. */
#courseReveal > .slides > section.m01-p25-theme > :is(
  .slide-inner,.page-inner,.content-shell,.content-wrap,.page-shell,
  .mission-shell,.slide-shell,.workspace-shell,.main-shell
){
  box-sizing:border-box!important;
  max-height:calc(100% - var(--m01-safe-top) - var(--m01-safe-bottom))!important;
}

/* Pages with natural document-flow wrappers: make the outer page
   distribute vertically so short pages do not leave a large,
   inconsistent empty band at the bottom. */
#courseReveal > .slides > section.m01-p25-theme:is(
  .communication-timeline-slide,
  .watch-notice-slide,
  .first-take-slide,
  .global-title-slide,
  .basic-opinion-slide,
  .background-match-slide,
  .read-apply-slide,
  .supporting-details-slide,
  .inference-slide,
  .global-review-slide,
  .fun-vocab-slide,
  .assignment-slide,
  .session-score-slide
){
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
}

/* Do not let generic Reveal section content create extra bottom drift. */
#courseReveal > .slides > section.m01-p25-theme > :last-child{
  margin-bottom:0!important;
}

/* Local bottom components should sit on the unified baseline when
   they participate in normal flow. */
#courseReveal > .slides > section.m01-p25-theme :is(
  [class*="bottom-system"],[class*="bottom-panel"],[class*="bottom-rail"],
  [class*="task-complete"],[class*="complete-banner"],[class*="completion"],
  [class*="next-task"],[class*="mission-update"],[class*="nova-update"],
  [class*="result-panel"],[class*="final-reflection"]
){
  margin-bottom:0!important;
}

/* Page 3 overview has its own map composition; keep its internal
   centering while still honoring the same page-bottom safe frame. */
#digitalCityMap.m01-p25-theme{
  justify-content:flex-start!important;
}

/* PAGE 4 —正文统一白色；保留青色标题/标签/强调信息 */
.communication-timeline-slide.m01-p25-theme :is(
  .timeline-challenge-prompt,
  .timeline-instruction,
  .timeline-card-text,
  .timeline-card-text .translation-trigger,
  .timeline-card-text .translation,
  .year,
  .drop-label,
  .activity-progress-label,
  .activity-score,
  .nova-mission-update p,
  .nova-mission-update .message,
  .nova-update-idle,
  .nova-update-complete,
  .mission-insight,
  .next-task-hint,
  .reflection-hook,
  .transition-question,
  .device-evolution-summary
){color:#fff!important;}

.communication-timeline-slide.m01-p25-theme :is(
  .timeline-challenge-prompt,
  .timeline-instruction,
  .timeline-card-text,
  .nova-mission-update,
  .mission-insight,
  .device-evolution-summary
) :is(p,span,small,em,b:not(.accent),strong:not(.accent)){
  color:#fff!important;
}


/* =========================================================
   PAGE 5 — WATCH / NOTICE TASK VISUAL CLEANUP
   Remove cyan translucent stage fills and strengthen task text.
   ========================================================= */

/* Right task area: keep one consistent deep-blue HUD surface in both stages. */
.watch-notice-slide.m01-p25-theme .watch-task-panel{
  background:rgba(5,22,49,.94)!important;
  background-color:rgba(5,22,49,.94)!important;
  border:1px solid rgba(70,227,242,.34)!important;
  box-shadow:inset 0 0 0 1px rgba(70,227,242,.04),0 12px 28px rgba(0,0,0,.18)!important;
}

/* Stage switch must not introduce another cyan/blue translucent slab. */
.watch-notice-slide.m01-p25-theme .watch-stage,
.watch-notice-slide.m01-p25-theme .watch-stage.is-active,
.watch-notice-slide.m01-p25-theme #watchStageOne,
.watch-notice-slide.m01-p25-theme #watchStageTwo{
  background:transparent!important;
  background-color:transparent!important;
  box-shadow:none!important;
}

/* Remove pale/cyan fills from the first-viewing prompt area. */
.watch-notice-slide.m01-p25-theme .watch-tip{
  background:rgba(7,32,58,.86)!important;
  background-color:rgba(7,32,58,.86)!important;
  color:#F7FBFF!important;
  border-left-color:#46E3F2!important;
  box-shadow:none!important;
}

/* Second-viewing exercise cards: deep blue only, no translucent cyan fill. */
.watch-notice-slide.m01-p25-theme .listening-card{
  background:rgba(6,27,57,.96)!important;
  background-color:rgba(6,27,57,.96)!important;
  border-color:rgba(70,227,242,.32)!important;
  box-shadow:none!important;
}

/* Stronger contrast/saturation for all task copy. */
.watch-notice-slide.m01-p25-theme .watch-stage-label,
.watch-notice-slide.m01-p25-theme .listening-number{
  color:#46E3F2!important;
  opacity:1!important;
}
.reveal .watch-notice-slide.m01-p25-theme .watch-stage h3{
  color:#FFFFFF!important;
  opacity:1!important;
}
.watch-notice-slide.m01-p25-theme .watch-prompt,
.reveal .watch-notice-slide.m01-p25-theme .listening-card p,
.watch-notice-slide.m01-p25-theme .watch-task-actions,
.watch-notice-slide.m01-p25-theme .watch-task-actions *{
  color:#FFFFFF!important;
  opacity:1!important;
}

/* Answer fields remain clearly visible but use dark HUD fill. */
.watch-notice-slide.m01-p25-theme .answer-blank{
  color:#FFFFFF!important;
  background:#071F3D!important;
  border-color:rgba(70,227,242,.55)!important;
  border-bottom-color:#46E3F2!important;
}
.watch-notice-slide.m01-p25-theme .answer-blank:focus{
  color:#FFFFFF!important;
  background:#092A4D!important;
  border-color:#46E3F2!important;
  box-shadow:0 0 0 2px rgba(70,227,242,.18)!important;
}

/* Correct / incorrect feedback keeps semantic color without light card fills. */
.watch-notice-slide.m01-p25-theme .answer-blank.is-correct{
  color:#DFFFF7!important;
  background:rgba(9,75,68,.92)!important;
  border-color:#2EE0C4!important;
}
.watch-notice-slide.m01-p25-theme .answer-blank.is-incorrect{
  color:#FFF4EE!important;
  background:rgba(91,42,31,.92)!important;
  border-color:#F08A61!important;
}

/* Buttons: dark base with cyan outline; no large cyan-filled rectangle after switching. */
.watch-notice-slide.m01-p25-theme .watch-next-button{
  color:#FFFFFF!important;
  background:#082A4B!important;
  border:1px solid rgba(70,227,242,.45)!important;
  box-shadow:none!important;
}
.watch-notice-slide.m01-p25-theme .watch-next-button:not(:disabled):hover{
  background:#0A355D!important;
  border-color:#46E3F2!important;
}
.watch-notice-slide.m01-p25-theme .check-answers-button{
  background:#082A4B!important;
}


/* =========================================================
   PAGE 5 VIDEO HOVER + GLOBAL M01 BODY-TEXT CONTRAST PASS
   ========================================================= */

/* 1) Page 5 video area: remove bright cyan hover/active wash completely. */
.watch-notice-slide.m01-p25-theme .video-stage,
.watch-notice-slide.m01-p25-theme .video-stage:hover,
.watch-notice-slide.m01-p25-theme .video-stage:focus-within,
.watch-notice-slide.m01-p25-theme .video-screen,
.watch-notice-slide.m01-p25-theme .video-screen:hover,
.watch-notice-slide.m01-p25-theme .video-screen:focus,
.watch-notice-slide.m01-p25-theme .video-placeholder,
.watch-notice-slide.m01-p25-theme .video-placeholder:hover{
  background:rgba(5,22,49,.92)!important;
  background-color:rgba(5,22,49,.92)!important;
  box-shadow:none!important;
  filter:none!important;
}

/* Neutralize pseudo-element hover overlays that create the cyan wash. */
.watch-notice-slide.m01-p25-theme .video-stage::before,
.watch-notice-slide.m01-p25-theme .video-stage::after,
.watch-notice-slide.m01-p25-theme .video-screen::before,
.watch-notice-slide.m01-p25-theme .video-screen::after,
.watch-notice-slide.m01-p25-theme .video-placeholder::before,
.watch-notice-slide.m01-p25-theme .video-placeholder::after{
  background:transparent!important;
  background-color:transparent!important;
  opacity:0!important;
  box-shadow:none!important;
  pointer-events:none!important;
}

/* Keep hover affordance only on the play button, not across the whole video canvas. */
.watch-notice-slide.m01-p25-theme .video-play-button:hover,
.watch-notice-slide.m01-p25-theme .video-play-button:focus-visible{
  background:rgba(8,66,92,.96)!important;
  border-color:#46E3F2!important;
  box-shadow:0 0 18px rgba(70,227,242,.22)!important;
}

/* 2) Slightly widen the video column while keeping the right task area usable. */
.watch-notice-slide.m01-p25-theme .watch-main,
.watch-notice-slide.m01-p25-theme .watch-workspace,
.watch-notice-slide.m01-p25-theme .watch-content-grid{
  grid-template-columns:minmax(0,1.58fr) minmax(0,1fr)!important;
}

/* Fallback for projects using explicit left/right widths instead of grid. */
.watch-notice-slide.m01-p25-theme .video-column{
  flex-basis:61%!important;
  max-width:61%!important;
}
.watch-notice-slide.m01-p25-theme .watch-task-column{
  flex-basis:39%!important;
  max-width:39%!important;
}

/* 3) Global Mission 01 body-text contrast:
   body copy becomes white; muted copy becomes a brighter pale blue-white.
   Cyan remains reserved for headings, labels, status, and emphasis. */
#courseReveal > .slides > section.m01-p25-theme :is(
  p,li,blockquote,figcaption,
  .body-text,.body-copy,.copy,.description,.desc,.subtitle,.subcopy,
  .instruction,.instructions,.helper,.help-text,.note,.note-text,
  .prompt,.prompt-text,.question-copy,.explanation,.feedback-text,
  .progress-copy,.status-copy,.summary-copy,.result-copy
){
  color:#F7FBFF!important;
  opacity:1!important;
}

/* Former grey/blue-grey secondary copy: keep hierarchy but make it legible. */
#courseReveal > .slides > section.m01-p25-theme :is(
  small,.muted,.secondary,.secondary-text,.meta,.meta-text,
  .hint,.hint-text,.helper-text,.caption,.supporting-text,
  [class*="subtitle"],[class*="description"],[class*="helper"],
  [class*="muted"],[class*="secondary"],[class*="hint"]
){
  color:#DDEFF7!important;
  opacity:1!important;
}

/* Explicitly fix the pale grey stage-flow text seen on Page 5. */
.watch-notice-slide.m01-p25-theme :is(
  .watch-flow,.watch-flow span,.watch-sequence,.watch-sequence span,
  .watch-step-flow,.watch-step-flow span
){
  color:#FFFFFF!important;
  opacity:1!important;
}

/* Keep semantic cyan for headings/labels and key emphasis. */
#courseReveal > .slides > section.m01-p25-theme :is(
  [class*="task-label"],[class*="stage-label"],[class*="mission-label"],
  [class*="eyebrow"],[class*="kicker"],[class*="section-label"],
  [class*="step-label"],[class*="status-label"]
){
  color:#46E3F2!important;
  opacity:1!important;
}
