.family-progress {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 28px;
  gap: 0;
  margin: 2px 0 4px;
  padding: 5px 8px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.family-progress__item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 1 1 0;
  min-width: 0;
  height: 18px;
  font-size: 0;
  line-height: 1;
}

.family-progress__item:last-child {
  flex: 0 0 16px;
}

.family-progress__item::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 7px;
  left: 16px;
  width: calc(100% - 16px);
  height: 2px;
  background: rgba(107, 88, 50, .28);
}

.family-progress__item:last-child::after {
  display: none;
}

.family-progress__item.is-complete::after,
.family-progress__item.is-current::after {
  background: var(--forest-deep, #355d46);
}

.family-progress__marker {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin: 0;
  padding: 0;
  border: 1.5px solid rgba(107, 88, 50, .62);
  border-radius: 999px;
  background: var(--cream-soft, #fffaf0);
  box-shadow: none;
  font-size: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.family-progress__marker::before,
.family-progress__marker::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

/* Completed step: Story Weaver check marker. */
.family-progress__item.is-complete .family-progress__marker {
  border-color: var(--forest-deep, #355d46);
}
.family-progress__item.is-complete .family-progress__marker::after {
  width: 7px;
  height: 4px;
  border-left: 1.8px solid var(--forest-deep, #355d46);
  border-bottom: 1.8px solid var(--forest-deep, #355d46);
  transform: translateY(-1px) rotate(-45deg);
}

/* Current step: same half-filled circle used by Story Weaver. */
.family-progress__item.is-current .family-progress__marker {
  border-color: var(--forest-deep, #355d46);
}
.family-progress__item.is-current .family-progress__marker::before {
  inset: -1px 50% -1px -1px;
  background: var(--forest-deep, #355d46);
}

/* Future steps. */
.family-progress__item:not(.is-current):not(.is-complete)
.family-progress__marker {
  border-color: rgba(107, 88, 50, .48);
}


/* Shared activity surfaces, typography and controls. */
body {--family-ink:#2d5a49;--family-paper:#fffaf0;--family-border:#e4cfaa;}
[hidden] {display:none !important;}
.site-header__title {font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.2;}
#screen-activity, #journeyScreen, #cardScreen {color:var(--family-ink);}
#activity-heading, #journeyHeading, .family-quiz-heading {
  display:flex;align-items:center;justify-content:flex-start;gap:10px;
  font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;
  font-size:clamp(1.65rem,3vw,2rem);line-height:1.25;text-align:left;margin:18px 0 20px;
}
#activity-heading svg,#journeyHeading svg {width:24px;height:24px;flex-shrink:0;}
.family-progress-wrap {display:flex;flex-direction:column;gap:10px;margin-bottom:24px;}
.family-progress-wrap .family-progress {order:0;}
.family-progress-wrap .progress-label {order:1;margin:0;}
#journeyProgress,.family-step-label,#progress-label-text {
  font-family:"Nunito Sans",sans-serif;font-size:14px;line-height:1.5;
  color:#718b7f;font-style:normal;margin:12px 0 20px;
}
#cardCounter {display:none;}
#screen-activity .question-box, #cardScreen .scene-card {
  background:transparent;border:0;box-shadow:none;padding:0;margin:16px 0 24px;
}
#screen-activity .question-box::after {display:none;}
#q-text,#journeyPrompt,#cardQuestion,#sceneText {
  font-family:"Nunito Sans",sans-serif;font-size:clamp(1rem,2vw,1.125rem);
  line-height:1.65;font-weight:400;color:var(--family-ink);text-align:left;
}
#q-visual {
  display:flex;align-items:center;justify-content:center;min-height:150px;
  font-size:clamp(2rem,5vw,3.5rem);line-height:1.5;margin:12px auto 22px;
  white-space:normal;overflow-wrap:anywhere;max-width:100%;
}
.quiz-pictogram,.journey-pictogram {
  width:min(48vw,200px);height:auto;max-height:200px;object-fit:contain;
}
#choices-grid,#journeyChoices,#emotionGrid {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;
}
#choices-grid .choice-btn,#journeyChoices .journey-card,#emotionGrid .emotion-btn {
  display:flex;align-items:center;justify-content:flex-start;gap:12px;
  min-height:60px;width:100%;padding:14px 18px;border:1px solid var(--family-border);
  border-radius:10px;background:var(--family-paper);box-shadow:none;
  color:var(--family-ink);font-family:"Nunito Sans",sans-serif;
  font-size:16px;font-weight:700;line-height:1.4;text-align:left;
}
#choices-grid .ct-choice-label {flex:1;}
#choices-grid .ct-choice-icon {width:56px;height:56px;flex-basis:56px;}
#choices-grid.ct-has-icons .choice-btn {min-height:84px;}
#journeyChoices .journey-card__emoji,#emotionGrid .fl-carbon-action-icon {
  width:28px;height:28px;min-width:28px;flex:0 0 28px;
}
#choices-grid .choice-btn:hover:not(:disabled),#journeyChoices .journey-card:hover,
#emotionGrid .emotion-btn:hover {border-color:#2d5a49;box-shadow:0 2px 8px #2d5a4910;transform:none;}
#choices-grid .choice-btn:focus-visible,#journeyChoices .journey-card:focus-visible,
#emotionGrid .emotion-btn:focus-visible {outline:3px solid #2d5a49;outline-offset:3px;}
#screen-activity .fl-btn,#journeyScreen .fl-btn,#cardScreen .fl-btn {
  align-items:center;gap:10px;min-height:46px;border-radius:10px;
}
#journeyScreen .fl-btn,#cardScreen .fl-btn {display:inline-flex;}
#journeyScreen .fl-btn > svg,#cardScreen .fl-btn > svg {flex-shrink:0;}
#feedback-box {text-align:left;}
@media(max-width:480px) {
  #choices-grid,#journeyChoices,#emotionGrid {gap:10px;}
  #choices-grid .choice-btn,#journeyChoices .journey-card,#emotionGrid .emotion-btn {padding:12px 10px;font-size:15px;gap:10px;}
  #choices-grid .ct-choice-icon {width:48px;height:48px;flex-basis:48px;}
  #q-visual {min-height:120px;}
  #choices-grid.family-long-choices {grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce) {
  .family-progress * {transition:none !important;animation:none !important;}
}
#choices-grid .choice-btn.is-correct {border-color:#7ca578;background:#edf5e9;}
#choices-grid .choice-btn.is-incorrect {border-color:#b69d87;background:#f6eee7;}
#emotionGrid .emotion-btn.selected {border-color:#2d5a49;background:#eaf1e7;box-shadow:inset 0 0 0 1px #2d5a49;}

/* Match the Feelings prompt size; override the legacy large-text rules. */
#screen-activity #q-text {
  font-size:16px !important;
  line-height:1.6 !important;
}
#screen-activity #q-visual {
  font-size:112px !important;
  line-height:1.2 !important;
  min-height:160px;
  margin:8px auto 20px;
}
#screen-activity #q-visual.family-multiple-symbols {
  font-size:48px !important;
  line-height:1.5 !important;
}
@media(max-width:480px) {
  #screen-activity #q-visual {font-size:96px !important;min-height:136px;}
  #screen-activity #q-visual.family-multiple-symbols {font-size:40px !important;}
}

/* Center the complete icon/label group and use compact, predictable art slots. */
#choices-grid .choice-btn,#journeyChoices .journey-card,#emotionGrid .emotion-btn {
  justify-content:center;text-align:center;
}
#choices-grid .ct-choice-label {flex:0 1 auto;text-align:center;}
#screen-activity .family-progress-wrap {gap:4px;margin-bottom:8px;}
#screen-activity #progress-label-text {margin:4px 0 8px;}
#screen-activity .question-box {margin:6px 0 16px;}
#screen-activity #q-visual {
  width:100%;height:160px;min-height:0;margin:0 auto 12px;
  font-size:80px !important;line-height:1.15 !important;
  filter:none;animation:none;
}
#screen-activity #q-visual.family-multiple-symbols {font-size:40px !important;}
#screen-activity .family-question-pictogram {
  display:block;width:160px;height:160px;object-fit:contain;flex:0 0 auto;
}
#screen-activity .family-emoji-fallback {max-width:100%;line-height:1.3;overflow-wrap:anywhere;}
#screen-activity #q-text {margin:0 0 12px;}
@media(max-width:480px) {
  #screen-activity #q-visual {height:144px;font-size:72px !important;}
  #screen-activity #q-visual.family-multiple-symbols {font-size:34px !important;}
  #screen-activity .family-question-pictogram {width:144px;height:144px;}
}
/* Supplied pictograms: all media files stay external and share one display system. */
#screen-activity #q-visual.ct-supplied-visual {
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;
  width:100%;height:auto;min-height:168px;max-width:560px;
  margin:0 auto 12px;font-size:16px !important;line-height:1.3 !important;
}
.ct-art {display:block;width:100%;height:100%;object-fit:contain;overflow:visible;}
.ct-art-token,.ct-clock-token,.ct-door-token {
 display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
 width:150px;height:168px;gap:4px;flex:0 1 150px;
}
.ct-art-token>.ct-art,.ct-clock-token>.ct-art,.ct-door-token>.ct-art {min-height:0;flex:1;}
.ct-art-caption {display:block;text-align:center;font:600 13px/1.3 "Nunito Sans",sans-serif;color:#2d5a49;}
.ct-supplied-visual>.ct-art-caption {flex-basis:100%;}
.ct-supplied-visual:has(>.ct-art-token:nth-child(3))>.ct-art-token {width:100px;height:132px;flex-basis:100px;}
.ct-calendar-token {position:relative;display:inline-flex;align-items:center;flex-direction:column;width:140px;height:160px;flex:0 1 140px;}
.ct-calendar-label {position:absolute;top:51%;left:5%;width:90%;text-align:center;font:700 15px/1.2 "Nunito Sans",sans-serif;color:#321708;}
.ct-calendar-token>.ct-art {height:136px;}
.ct-pattern-row {display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;width:100%;}
.ct-pattern-row>.ct-art,.ct-pattern-empty,.ct-pattern-size {width:58px;height:64px;flex:0 0 58px;}
.ct-pattern-empty,.ct-pattern-number {display:flex;align-items:center;justify-content:center;border:1px dashed #b8a789;border-radius:8px;font:700 24px/1 "Nunito Sans",sans-serif;color:#2d5a49;}
.ct-pattern-number {width:60px;height:64px;flex:0 0 60px;border-style:solid;background:#fffaf0;}
.ct-pattern-color {display:block;border-radius:50%;border:2px solid #321708;width:36px;height:36px;flex:0 0 36px;}
.ct-pattern-size {display:flex;align-items:flex-end;justify-content:center;}
.ct-pattern-small>.ct-art {width:50%;height:50%;}
.ct-leaf-group {display:flex;flex-direction:column;align-items:center;gap:4px;max-width:160px;}
.ct-leaf-set {display:grid;grid-template-columns:repeat(5,24px);gap:3px;}
.ct-leaf-set>.ct-art {width:24px;height:28px;}
.ct-leaves-red .ct-art {filter:hue-rotate(330deg) saturate(1.8);}
.ct-group-base {width:90px;height:44px;}
.ct-leaves-outgoing {border:1px dashed #ad916c;padding:8px;border-radius:10px;}
.ct-moving-arrow {font-size:28px;color:#2d5a49;}
.ct-week-board {display:grid;gap:8px;width:100%;max-width:400px;}
.ct-week-row {display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.ct-week-day {font-size:12px;border:1px solid #d7c6a4;padding:6px 0;text-align:center;border-radius:4px;background:#fffaf0;}
.ct-given-day {background:#dce9d3 !important;outline:1px solid #2d5a49;}
.ct-month-board {width:250px;padding:8px 12px;background:#fffaf0;border:2px solid #dd7c4b;border-radius:12px;text-align:center;font-size:13px;}
.ct-month-grid {display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:5px;}
.ct-month-grid>span,.ct-month-grid>b {font-size:11px;padding:2px;}
.ct-year-board {display:grid;grid-template-columns:repeat(6,1fr);gap:6px;width:100%;max-width:500px;}
.ct-year-month {height:92px;display:flex;flex-direction:column;align-items:center;}
.ct-year-month>.ct-art {height:67px;}
.ct-year-month>.ct-art-caption {font-size:10px;}
.ct-month-lengths {display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%;font-size:12px;}
.ct-month-lengths>span {background:#fffaf0;padding:6px;text-align:center;border:1px solid #d7c6a4;border-radius:5px;}
.ct-month-lengths b {display:block;font-size:15px;}
.ct-door-array>.ct-door-token {width:52px;height:80px;flex:0 0 52px;}
.ct-object-row {display:flex;flex-wrap:wrap;gap:6px;max-width:240px;}
.ct-object-row>.ct-art {width:40px;height:44px;}
.ct-daylight {width:300px;display:grid;gap:12px;font-size:12px;}
.ct-daylight>div {display:flex;flex-wrap:wrap;align-items:center;gap:5px;}
.ct-daylight .ct-art {height:32px;width:32px;}
.ct-daylight i {height:12px;background:#efc743;border-radius:8px;display:block;}
#choices-grid .ct-rich-choice-icon {display:flex;align-items:center;justify-content:center;flex:0 0 58px;width:58px;height:58px;}
#choices-grid .ct-rich-choice-icon>.ct-clock-token {width:58px;height:58px;flex-basis:58px;}
#choices-grid .ct-rich-choice-icon .ct-art {width:100%;height:100%;}
#choices-grid .ct-choice-label {flex:0 1 auto;}
@media(max-width:480px){
 .ct-art-token,.ct-clock-token,.ct-door-token {width:125px;height:148px;flex-basis:125px;}
 #screen-activity #q-visual.ct-supplied-visual {gap:8px;min-height:152px;}
 .ct-pattern-row {gap:6px;}
 .ct-pattern-row>.ct-art,.ct-pattern-empty,.ct-pattern-size {width:40px;height:48px;flex-basis:40px;}
 .ct-pattern-number {width:42px;height:48px;flex-basis:42px;font-size:20px;}
 .ct-year-board {grid-template-columns:repeat(4,1fr);}
 .ct-leaf-set {grid-template-columns:repeat(5,20px);}
 .ct-leaf-set>.ct-art {width:20px;height:24px;}
 .ct-month-lengths {grid-template-columns:repeat(3,1fr);}
}

/* Activity artwork and screenshot corrections, September 2026. */
#screen-garden-entry .ct-entry-card-icon.ct-entry-pictogram {background:transparent;border:0;box-shadow:none;}
#screen-garden-entry .ct-entry-card-icon.ct-entry-pictogram .ct-entry-external-icon {width:104px !important;height:104px !important;object-fit:contain;}
#screen-activity .ct-leaf-group {max-width:368px;}
#screen-activity .ct-leaf-set {--leaf-size:34.5px;grid-template-columns:repeat(var(--leaf-columns,5),var(--leaf-size));gap:6px;justify-content:center;}
#screen-activity .ct-leaf-set.ct-leaves-few {--leaf-size:66.7px;}
#screen-activity .ct-leaf-set.ct-leaves-medium {--leaf-size:48.3px;}
#screen-activity .ct-leaf-set>.ct-art {width:var(--leaf-size);height:calc(var(--leaf-size) * 1.12);}
#done-score.completion-score,#perfect-celebration.perfect-celebration,.perfect-label {color:#2d5a49 !important;}
#perfect-celebration.perfect-celebration {animation:none;opacity:1;}
@media(max-width:480px){
 #screen-activity .ct-leaf-set.ct-leaves-few {--leaf-size:50.6px;}
 #screen-activity .ct-leaf-set.ct-leaves-medium {--leaf-size:41.4px;}
 #screen-activity .ct-leaf-group {max-width:299px;}
}

/* Ready Fable recommendations use the same card layout as Feelings Garden. */
#ctReadingRecommendations {margin:18px 0 12px;padding:1rem 0 .25rem;border-top:1px solid rgba(210,171,102,.4);}
#ctReadingRecommendations[hidden] {display:none;}
.ct-related-fables__eyebrow {display:block;margin:0 0 .4rem;color:#8b7355;text-transform:uppercase;font-size:.8rem;font-weight:700;letter-spacing:.06em;}
.ct-related-fables__title {margin:0;font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;color:#1a3a2e;}
.ct-related-fables {
  padding: 1rem 0 0.25rem;
  border-top: 1px solid rgba(210,171,102,0.40);
}
.ct-related-fables__head { text-align: left; margin: 0 0 0.8rem; }
.ct-related-fables__title { font-size: clamp(1.4rem, 4vw, 1.82rem); }
.ct-related-fables__copy {
  margin: 0.28rem 0 0;
  color: var(--forest-deep, #2d5a4a);
  font-size: 0.92rem;
  line-height: 1.42;
}
.ct-related-fables__grid { display: grid; grid-template-columns: 1fr; gap: 0.72rem; }
.ct-related-fable-card {
  min-height: 154px;
  overflow: hidden;
  border: 1px solid rgba(210,171,102,0.42);
  border-radius: 18px;
  background: rgba(255,250,240,0.86);
  color: var(--forest-dark, #1a3a2e);
  text-decoration: none;
  display: grid;
  grid-template-columns: minmax(145px, 34%) minmax(0, 1fr);
}
.ct-related-fable-card:hover { border-color: var(--gold, #D2AB66); background: #fffaf0; }
.ct-related-fable-card.is-image-missing { grid-template-columns: 1fr; }
.ct-related-fable-card__image-wrap { min-width: 0; overflow: hidden; background: var(--parchment, #e8e4d9); }
.ct-related-fable-card__image { display: block; width: 100%; height: 100%; min-height: 154px; object-fit: cover; }
.ct-related-fable-card__body {
  position: relative;
  min-width: 0;
  padding: 0.9rem 0.95rem 3.75rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.38rem;
  text-align: left;
}
.ct-related-fable-card__name {
  margin: 0;
  width: 100%;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.16rem, 3.5vw, 1.38rem);
  line-height: 1.08;
  color: var(--forest-dark, #1a3a2e);
}
.ct-related-fable-card__meta {
  margin: 0;
  padding: 0.2rem 0.52rem;
  border: 1px solid rgba(113,139,127,0.30);
  border-radius: 999px;
  background: rgba(223,233,216,0.70);
  color: var(--forest-deep, #2d5a4a);
  font-size: 0.72rem;
  line-height: 1.2;
  font-weight: 700;
}
.ct-related-fable-card__promise {
  margin: 0;
  width: 100%;
  color: var(--earth, #8b7355);
  font-size: 0.88rem;
  line-height: 1.38;
}
.ct-related-fable-card__open {
  position: absolute;
  left: 0.95rem;
  bottom: 0.85rem;
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--forest-dark, #1a3a2e);
  color: var(--cream, #f4f1e8);
  font-size: 1.05rem;
}

.ct-related-fable-card:focus-visible {outline:3px solid #2d5a49;outline-offset:3px;}
.ct-related-fable-card__image-wrap[hidden] {display:none;}
@media(max-width:560px){
 .ct-related-fable-card {grid-template-columns:1fr;}
 .ct-related-fable-card__image {min-height:0;aspect-ratio:16/9;}
}


/* Keep Sun and Earth artwork aligned independently of their captions. */
#screen-activity #q-visual.ct-earth-visual {align-items:flex-start;}
#screen-activity #q-visual.ct-earth-visual > .ct-art-token {height:auto;}
#screen-activity #q-visual.ct-earth-visual > .ct-art-token > .ct-art {flex:none;height:100px;}
#screen-activity #q-visual.ct-earth-visual .ct-art-caption {white-space:nowrap;}
#screen-activity #q-visual.ct-earth-visual > .ct-moving-arrow {display:flex;align-items:center;height:100px;}
