﻿/* Story 06 scene contracts.
   Every target sits on a visible object in its exact illustration. */

.time-clue-hotspots,
.storm-image-hotspots {
  position: absolute;
  inset: 0;
  z-index: 9;
  display: none;
}

.p1 .time-clue-hotspots,
.p4 .storm-image-hotspots {
  display: block;
}

.time-clue-hotspots button,
.p2 .image-word-hotspots button,
.p3 .route-image-hotspots button,
.p4 .storm-image-hotspots button {
  position: absolute;
  min-width: 48px;
  min-height: 48px;
  border: 2px solid transparent;
  color: transparent;
  background: transparent;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.time-clue-hotspots button span,
.p2 .image-word-hotspots button span,
.p3 .route-image-hotspots button span,
.p4 .storm-image-hotspots button span {
  position: absolute;
  left: 50%;
  bottom: 8px;
  translate: -50% 0;
  padding: .34rem .58rem;
  border-radius: 999px;
  color: transparent;
  background: transparent;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  white-space: nowrap;
}

.time-clue-hotspots button:hover,
.time-clue-hotspots button:focus-visible,
.p2 .image-word-hotspots button:hover,
.p2 .image-word-hotspots button:focus-visible,
.p3 .route-image-hotspots button:hover,
.p3 .route-image-hotspots button:focus-visible,
.p4 .storm-image-hotspots button:hover,
.p4 .storm-image-hotspots button:focus-visible {
  border-color: rgba(249, 215, 125, .95);
  background: rgba(255, 226, 143, .09);
  box-shadow: 0 0 0 4px rgba(249, 215, 125, .18), inset 0 0 30px rgba(249, 215, 125, .09);
}

.time-clue-hotspots button:focus-visible span,
.time-clue-hotspots button:hover span,
.time-clue-hotspots button.visited span,
.p2 .image-word-hotspots button:focus-visible span,
.p2 .image-word-hotspots button:hover span,
.p3 .route-image-hotspots button:focus-visible span,
.p3 .route-image-hotspots button:hover span,
.p3 .route-image-hotspots button.visited span,
.p4 .storm-image-hotspots button:focus-visible span,
.p4 .storm-image-hotspots button:hover span,
.p4 .storm-image-hotspots button.visited span {
  color: #fff7dd;
  background: rgba(10, 57, 47, .88);
}

.time-clue-hotspots button.visited,
.p3 .route-image-hotspots button.visited,
.p4 .storm-image-hotspots button.visited {
  border-color: rgba(174, 221, 181, .95);
  background: rgba(67, 139, 94, .12);
  box-shadow: 0 0 0 4px rgba(174, 221, 181, .14);
}

.time-clue-hotspots [data-home-detail="trapped-monkey"] {
  left: 65%;
  top: 52%;
  width: 31%;
  height: 44%;
  border-radius: 50%;
}

.time-clue-hotspots [data-home-detail="five-elements-mountain"] {
  left: 29%;
  top: 1%;
  width: 42%;
  height: 61%;
  border-radius: 42% 44% 28% 32%;
}

.time-clue-hotspots [data-home-detail="golden-seal"] {
  left: 76%;
  top: 3%;
  width: 18%;
  height: 31%;
  border-radius: 44% 48% 36% 42%;
}

.p2 .image-word-hotspots {
  inset: 0;
  width: auto;
  height: auto;
  display: block;
}

.p2 .image-word-hotspots [data-image-word="0"] {
  left: 47%;
  top: 13%;
  width: 35%;
  height: 44%;
  border-radius: 42% 44% 28% 30%;
}

.p2 .image-word-hotspots [data-image-word="1"] {
  left: 67%;
  top: 0;
  width: 20%;
  height: 28%;
  border-radius: 28% 36% 22% 30%;
}

.p2 .image-word-hotspots [data-image-word="2"] {
  left: 22%;
  top: 38%;
  width: 34%;
  height: 45%;
  border-radius: 46% 42% 34% 38%;
}

.p2 .image-word-hotspots [data-image-word="3"] {
  left: 0;
  top: 45%;
  width: 34%;
  height: 55%;
  border-radius: 42% 38% 30% 34%;
}

.p2 .image-word-hotspots button.wrong,
.p3 .route-image-hotspots button.wrong,
.p4 .storm-image-hotspots button.wrong {
  border-color: transparent;
  background: rgba(255, 255, 255, .04);
  box-shadow: none;
  animation: shake .28s ease;
}

.p3 .route-image-hotspots [data-route-image="1"] {
  left: 0;
  top: 22%;
  width: 29%;
  height: 67%;
  border-radius: 42% 46% 32% 38%;
}

.p3 .route-image-hotspots [data-route-image="2"] {
  left: 53%;
  top: 57%;
  width: 25%;
  height: 38%;
  border-radius: 40% 52% 28% 36%;
}

.p3 .route-image-hotspots [data-route-image="3"] {
  left: 34%;
  top: 25%;
  width: 20%;
  height: 49%;
  border-radius: 44% 54% 26% 34%;
}

.p3 .route-image-hotspots [data-route-image="4"] {
  left: 75%;
  top: 21%;
  width: 25%;
  height: 63%;
  border-radius: 48% 34% 28% 44%;
}

.p4 .storm-image-hotspots [data-storm-image="1"] {
  left: 51%;
  top: 54%;
  width: 16%;
  height: 24%;
  border-radius: 48% 36% 22% 38%;
}

.p4 .storm-image-hotspots [data-storm-image="2"] {
  left: 29%;
  top: 52%;
  width: 18%;
  height: 23%;
  border-radius: 42% 42% 28% 30%;
}

.p4 .storm-image-hotspots [data-storm-image="3"] {
  left: 43%;
  top: 55%;
  width: 12%;
  height: 21%;
  border-radius: 44% 38% 30% 34%;
}

.lesson03-open-book {
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 2px solid rgba(211, 167, 66, .82);
  border-radius: 34px 34px 22px 22px;
  background: #f7ecc9;
  box-shadow:
    inset 0 0 0 12px #0a3029,
    inset 0 0 0 14px rgba(216, 174, 78, .72),
    0 28px 52px rgba(0, 0, 0, .36);
}

.lesson03-page {
  position: relative;
  min-width: 0;
  margin: 18px 12px 18px 18px;
  overflow: hidden;
  border: 1px solid rgba(167, 129, 54, .54);
  background: #fff5d5;
}

.lesson03-page-right {
  margin: 18px 18px 18px 12px;
}

.lesson03-page img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .31;
}

.lesson03-page::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 248, 220, .96) 0 44%, rgba(255, 248, 220, .52) 68%, rgba(8, 49, 41, .2));
}

.lesson03-page-right::after {
  background: linear-gradient(90deg, rgba(255, 248, 220, .9) 0 52%, rgba(255, 248, 220, .4) 75%, rgba(8, 49, 41, .18));
}

.lesson03-page > div {
  position: relative;
  z-index: 2;
  display: grid;
  align-content: center;
  gap: 12px;
  width: 62%;
  height: 100%;
  padding: clamp(28px, 4vw, 62px);
  color: #123b32;
}

.lesson03-page small {
  color: #8a6423;
  font-size: clamp(8px, .8vw, 13px);
  font-weight: 900;
  letter-spacing: .22em;
}

.lesson03-page strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 4.3vw, 70px);
  line-height: .92;
  letter-spacing: -.05em;
}

.lesson03-page-right strong {
  font-size: clamp(22px, 3.3vw, 54px);
}

.lesson03-page span {
  max-width: 26ch;
  color: #596b5f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(10px, 1.1vw, 17px);
  line-height: 1.45;
}

.lesson03-closed-book {
  overflow: hidden;
  border: 3px solid rgba(216, 174, 78, .8);
  border-radius: 26px 12px 12px 26px;
  background: #0a3029;
  box-shadow:
    inset 16px 0 30px rgba(0, 0, 0, .36),
    0 30px 60px rgba(0, 0, 0, .42);
}

.lesson03-closed-book img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .34;
}

.lesson03-closed-book::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6, 40, 33, .92), rgba(6, 40, 33, .46));
}

.lesson03-closed-book > div {
  position: relative;
  z-index: 2;
  display: grid;
  align-content: center;
  gap: 12px;
  width: 58%;
  height: 100%;
  padding: clamp(32px, 5vw, 72px);
  color: #fff1c2;
}

.lesson03-closed-book small,
.lesson03-closed-book span {
  color: #e5c66f;
  font-weight: 900;
  letter-spacing: .2em;
}

.lesson03-closed-book strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 5vw, 72px);
  line-height: .95;
}

.home-evidence,
.trait-grid {
  display: grid;
  gap: .72rem;
  margin: 1rem 0;
}

.home-evidence div {
  display: flex;
  align-items: center;
  gap: .7rem;
  min-height: 52px;
  padding: .7rem .9rem;
  border: 1px dashed rgba(16, 75, 62, .24);
  border-radius: 14px;
  color: #6a746c;
  background: rgba(255, 255, 255, .45);
}

.home-evidence div.complete {
  color: #0f5949;
  border-style: solid;
  border-color: rgba(68, 143, 98, .45);
  background: rgba(202, 232, 208, .5);
}

.trait-grid {
  grid-template-columns: 1fr 1fr;
}

.trait-grid button {
  min-height: 58px;
  padding: .8rem;
  border: 1px solid rgba(14, 70, 57, .2);
  border-radius: 16px;
  color: #164d41;
  background: #fffaf0;
  font-weight: 900;
}

.trait-grid button:hover,
.trait-grid button:focus-visible {
  border-color: #d5a833;
  box-shadow: 0 0 0 4px rgba(213, 168, 51, .14);
}

.trait-grid button.correct {
  border-color: #76a982;
  color: #0e5a46;
  background: #e1efdf;
}

.trait-grid button.incorrect {
  border-color: rgba(185, 139, 71, .35);
  color: #76562a;
  background: #fff6df;
  animation: shake .28s ease;
}

.choice-grid button.retry {
  border-color: rgba(185, 139, 71, .35);
  color: #76562a;
  background: #fff6df;
  animation: shake .28s ease;
}

@media (max-width: 720px) {
  .intro-book-art {
    width: 100%;
    max-width: 100%;
  }

  .time-clue-hotspots button span,
  .p2 .image-word-hotspots button span,
  .p3 .route-image-hotspots button span,
  .p4 .storm-image-hotspots button span {
    font-size: .6rem;
    padding: .26rem .4rem;
  }

  .trait-grid {
    grid-template-columns: 1fr;
  }

  .lesson03-open-book {
    border-radius: 20px 20px 14px 14px;
    box-shadow:
      inset 0 0 0 7px #0a3029,
      inset 0 0 0 9px rgba(216, 174, 78, .72),
      0 20px 42px rgba(0, 0, 0, .34);
  }

  .lesson03-page {
    margin: 11px 6px 11px 11px;
  }

  .lesson03-page-right {
    margin: 11px 11px 11px 6px;
  }

  .lesson03-page > div {
    width: 76%;
    gap: 6px;
    padding: 18px;
  }

  .lesson03-page strong {
    font-size: clamp(20px, 7vw, 38px);
  }

  .lesson03-page-right strong {
    font-size: clamp(17px, 5.6vw, 30px);
  }

  .lesson03-page span {
    display: none;
  }
}

/* Story 09 interaction language: drag, sweep, hold, assemble, transform. */
.water-curtain {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  background:
    linear-gradient(90deg, rgba(8, 72, 76, .78), rgba(75, 150, 151, .64)),
    repeating-linear-gradient(102deg, transparent 0 28px, rgba(236, 249, 238, .2) 29px 34px);
  backdrop-filter: blur(7px) saturate(.75);
  clip-path: inset(0 0 0 var(--water-reveal, 0%));
  transition: clip-path .12s linear, opacity .25s ease;
}

.p2 .water-curtain {
  opacity: 1;
}

.hold-aura {
  position: absolute;
  z-index: 3;
  width: min(44%, 420px);
  aspect-ratio: 1;
  left: 47%;
  top: 48%;
  translate: -50% -50%;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
  background: conic-gradient(#e7c36b var(--hold-progress, 0%), rgba(255,255,255,.08) 0);
  filter: drop-shadow(0 0 24px rgba(232, 196, 103, .48));
  mask: radial-gradient(circle, transparent 59%, #000 61%);
}

.p3 .hold-aura {
  opacity: .88;
}

.trail-board {
  position: relative;
  min-height: 155px;
  margin: 1.2rem 0;
  border-radius: 26px;
  overflow: hidden;
  background: linear-gradient(145deg, #eef5e6, #d9e5ce);
  border: 1px solid rgba(22, 91, 75, .2);
}

.trail-line {
  position: absolute;
  left: 9%;
  right: 9%;
  top: 63%;
  height: 4px;
  border-radius: 4px;
  background: linear-gradient(90deg, #a98951, #236e62);
  transform: rotate(-5deg);
}

.hoof {
  position: absolute;
  left: calc(9% + var(--i) * 20%);
  top: calc(57% - var(--i) * 6%);
  translate: -50% -50%;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #856d43;
  background: #fffaf0;
  border: 2px solid rgba(133, 109, 67, .35);
  opacity: .52;
  transition: .2s ease;
}

.hoof.visited {
  opacity: 1;
  color: #fff9df;
  background: #176655;
  transform: scale(1.08);
}

.trail-board input {
  position: absolute;
  inset: auto 7% 17px;
  width: 86%;
  accent-color: #d5a833;
}

.reveal-meter {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: .8rem;
  align-items: center;
  margin: 1.4rem 0;
  padding: 1.1rem;
  border-radius: 22px;
  background: linear-gradient(90deg, #185f66, #c5e2d8);
  color: #fff;
  font-weight: 900;
  letter-spacing: .08em;
}

.reveal-meter input,
.transform-slider {
  width: 100%;
  min-height: 48px;
  accent-color: #e4bd5d;
}

.hold-staff {
  --hold: 0%;
  width: min(100%, 420px);
  min-height: 170px;
  margin: 1.25rem auto;
  display: grid;
  place-items: center;
  align-content: center;
  gap: .45rem;
  border: 0;
  border-radius: 50%;
  color: #fff9dd;
  background:
    radial-gradient(circle at center, #0b4e43 0 54%, transparent 55%),
    conic-gradient(#e2bb5a var(--hold), #dce7dd 0);
  box-shadow: 0 16px 38px rgba(14, 73, 62, .2);
  touch-action: none;
  user-select: none;
}

.hold-staff span {
  font: 900 clamp(2rem, 7vw, 4rem)/1 Georgia, serif;
}

.hold-staff small {
  font-weight: 800;
}

.hold-staff.complete {
  background: radial-gradient(circle at center, #0b4e43 0 54%, transparent 55%), conic-gradient(#e2bb5a 100%, #e2bb5a 0);
}

.clue-palette {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .7rem;
  margin: 1.25rem 0;
}

.clue-token {
  min-height: 92px;
  padding: .75rem;
  border: 1px solid rgba(26, 91, 74, .24);
  border-radius: 18px;
  background: #fffaf0;
  color: #0b4e43;
  font-weight: 900;
  cursor: grab;
}

.clue-token span {
  display: block;
  font-size: 1.7rem;
  color: #c69a32;
}

.clue-token.placed {
  opacity: .44;
  cursor: default;
}

.decree-target {
  min-height: 145px;
  padding: 1.2rem;
  display: grid;
  place-content: center;
  gap: .5rem;
  text-align: center;
  border: 3px dashed #c9a650;
  border-radius: 18px;
  background: linear-gradient(135deg, #fff9e7, #f4e7bd);
  transition: .2s ease;
}

.decree-target.dragover {
  transform: scale(1.02);
  box-shadow: 0 0 0 7px rgba(218, 178, 79, .18);
}

.decree-target.complete {
  border-style: solid;
  background: linear-gradient(135deg, #e4f0df, #fff6d4);
}

.decree-target small {
  color: #9c7126;
  letter-spacing: .14em;
  font-weight: 900;
}

.transform-stage {
  position: relative;
  container-type: inline-size;
  aspect-ratio: 3 / 2;
  margin: 1.2rem 0 .6rem;
  overflow: hidden;
  border-radius: 22px;
  background: #e8e1ca;
  box-shadow: inset 0 0 0 1px rgba(15, 67, 57, .18);
}

.transform-stage > img,
.transform-after,
.transform-after img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.transform-stage > img,
.transform-after img {
  object-fit: contain;
}

.transform-after {
  overflow: hidden;
  border-right: 4px solid #f1d57d;
  transition: width .08s linear;
}

.transform-after img {
  width: 100cqw;
  max-width: none;
  object-position: left center;
}

@media (max-width: 720px) {
  .clue-palette {
    grid-template-columns: 1fr;
  }

  .clue-token {
    min-height: 60px;
  }

  .reveal-meter {
    grid-template-columns: 1fr;
  }

  .reveal-meter span:last-child {
    text-align: right;
  }
}

/* Story 09 revision: every gesture is anchored to visible evidence and a
   vocabulary, inference, character, identity, or cause-and-effect outcome. */
.lesson09-image-task {
  position: absolute;
  inset: 0;
  z-index: 9;
  display: none;
  pointer-events: none;
}

.p1 .trail-image-hotspots,
.p2 .water-clue-hotspots,
.p3 .staff-image-control,
.p4 .identity-image-hotspots {
  display: block;
}

.lesson09-image-task button {
  position: absolute;
  min-width: 48px;
  min-height: 48px;
  pointer-events: auto;
  border: 2px dashed rgba(250, 219, 128, .78);
  border-radius: 50%;
  color: #fff8df;
  background: rgba(10, 58, 49, .16);
  box-shadow: 0 0 0 5px rgba(245, 210, 112, .09);
  cursor: pointer;
  transition: opacity .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.lesson09-image-task button i {
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #123c33;
  background: #f4cf68;
  box-shadow: 0 5px 16px rgba(0, 0, 0, .24);
  font-style: normal;
  font-weight: 1000;
}

.lesson09-image-task button span {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 6px);
  translate: -50% 0;
  padding: .42rem .66rem;
  border-radius: 999px;
  color: #fff8df;
  background: rgba(7, 49, 41, .92);
  font-size: .67rem;
  font-weight: 1000;
  letter-spacing: .08em;
  white-space: nowrap;
  opacity: 0;
  transition: opacity .16s ease;
}

.lesson09-image-task button:hover span,
.lesson09-image-task button:focus-visible span,
.lesson09-image-task button.current span,
.lesson09-image-task button.visited span {
  opacity: 1;
}

.lesson09-image-task button:focus-visible,
.lesson09-image-task button.current {
  outline: 0;
  border-style: solid;
  border-color: #ffe69a;
  background: rgba(238, 196, 82, .2);
  box-shadow: 0 0 0 7px rgba(245, 210, 112, .2), 0 0 30px rgba(245, 210, 112, .38);
  animation: evidencePulse 1.35s ease-in-out infinite;
}

.lesson09-image-task button.visited {
  border-style: solid;
  border-color: #b9e0bf;
  background: rgba(41, 119, 83, .2);
  box-shadow: 0 0 0 5px rgba(185, 224, 191, .12);
  animation: none;
}

.lesson09-image-task button.visited i {
  color: white;
  background: #20705c;
}

.lesson09-image-task button.locked {
  opacity: .24;
}

@keyframes evidencePulse {
  50% { transform: scale(1.07); }
}

.trail-image-hotspots [data-trail-point="1"] {
  left: 43%;
  top: 77%;
  width: 10%;
  height: 13%;
}
.trail-image-hotspots [data-trail-point="2"] {
  left: 53%;
  top: 81%;
  width: 10%;
  height: 13%;
}
.trail-image-hotspots [data-trail-point="3"] {
  left: 63%;
  top: 84%;
  width: 10%;
  height: 14%;
}
.trail-image-hotspots [data-trail-point="4"] {
  left: 73%;
  top: 84%;
  width: 13%;
  height: 14%;
}

.water-clue-hotspots [data-water-clue="RIPPLE"] {
  left: 28%;
  top: 36%;
  width: 38%;
  height: 16%;
  border-radius: 50%;
}
.water-clue-hotspots [data-water-clue="BUBBLES"] {
  left: 54%;
  top: 47%;
  width: 17%;
  height: 24%;
}
.water-clue-hotspots [data-water-clue="SCALES"] {
  left: 73%;
  top: 53%;
  width: 24%;
  height: 38%;
  border-radius: 42%;
}

.staff-image-control button {
  --hold: 0%;
  left: 5%;
  top: 39%;
  width: 57%;
  height: 13%;
  min-height: 58px;
  border-radius: 999px;
  rotate: 7deg;
  overflow: visible;
  touch-action: none;
  user-select: none;
  border-style: solid;
  background:
    linear-gradient(90deg, rgba(236, 194, 79, .8) var(--hold), rgba(10, 58, 49, .1) 0);
  box-shadow: 0 0 0 6px rgba(245, 210, 112, .12);
}

.staff-image-control button span {
  opacity: 1;
  bottom: calc(100% + 10px);
}

.staff-image-control button.complete {
  border-color: #b9e0bf;
  background: rgba(36, 116, 86, .42);
  box-shadow: 0 0 0 7px rgba(185, 224, 191, .2), 0 0 34px rgba(238, 206, 111, .35);
}

.identity-image-hotspots [data-identity-clue="WHITE SCALE"] {
  left: 28%;
  top: 74%;
  width: 15%;
  height: 22%;
}
.identity-image-hotspots [data-identity-clue="BROKEN JADE TOKEN"] {
  left: 43%;
  top: 75%;
  width: 14%;
  height: 21%;
}
.identity-image-hotspots [data-identity-clue="PROMISE SCROLL"] {
  left: 58%;
  top: 72%;
  width: 17%;
  height: 25%;
}

.p1 .wash,
.p2 .wash,
.p3 .wash,
.p4 .wash {
  height: 24%;
}

.p1 .story-copy,
.p2 .story-copy,
.p4 .story-copy {
  align-self: start;
  justify-self: end;
  max-width: 43%;
  margin: 92px 20px 0 0;
  padding: 18px 20px;
  border-radius: 18px;
  background: rgba(6, 43, 36, .78);
  backdrop-filter: blur(8px);
}

.p1 .story-copy h1,
.p2 .story-copy h1,
.p4 .story-copy h1 {
  font-size: clamp(25px, 3vw, 43px);
}

.water-curtain {
  clip-path: none;
  opacity: 0;
  transition: opacity .35s ease;
}

.p2 .water-curtain {
  opacity: var(--water-veil-opacity, .72);
}

.p3 .hold-aura {
  display: none;
}

.evidence-vocabulary,
.identity-evidence-list {
  display: grid;
  gap: .62rem;
  margin: 1rem 0;
}

.evidence-word,
.identity-row {
  display: flex;
  align-items: center;
  gap: .72rem;
  min-height: 58px;
  padding: .72rem .82rem;
  border: 1px solid rgba(17, 77, 63, .14);
  border-radius: 16px;
  color: #758078;
  background: rgba(255, 255, 255, .48);
  transition: .2s ease;
}

.evidence-word i,
.identity-row i {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #7a6a42;
  background: #eee5cc;
  font-style: normal;
  font-weight: 1000;
}

.evidence-word b,
.identity-row b {
  display: block;
  color: inherit;
  font-size: .92rem;
}

.evidence-word span,
.identity-row span {
  display: block;
  margin-top: .14rem;
  font-size: .78rem;
  line-height: 1.4;
}

.evidence-word.current {
  color: #6b531e;
  border-color: rgba(213, 168, 51, .55);
  background: #fff5d8;
}

.evidence-word.found,
.identity-row.found {
  color: #0e5948;
  border-color: rgba(57, 137, 92, .38);
  background: #e1eee1;
}

.evidence-word.found i,
.identity-row.found i {
  color: white;
  background: #24735e;
}

.knowledge-result {
  margin: 1rem 0;
  padding: 1rem;
  display: grid;
  gap: .28rem;
  border: 1px dashed rgba(183, 139, 44, .55);
  border-radius: 18px;
  background: #fff8e7;
}

.knowledge-result small {
  color: #a1761f;
  font-size: .69rem;
  font-weight: 1000;
  letter-spacing: .13em;
}

.knowledge-result strong {
  color: #144e41;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.2rem;
}

.knowledge-result span {
  color: #68756e;
  font-size: .82rem;
  line-height: 1.45;
}

.knowledge-result.complete {
  border-style: solid;
  border-color: rgba(57, 137, 92, .42);
  background: linear-gradient(135deg, #e3f0e2, #fff6d7);
}

.inference-choices,
.cause-bank {
  display: grid;
  gap: .6rem;
  margin: 1rem 0;
}

.inference-choices button,
.cause-bank button {
  min-height: 56px;
  padding: .72rem .88rem;
  border: 1px solid rgba(17, 77, 63, .2);
  border-radius: 16px;
  color: #124f42;
  background: #fffaf0;
  font-weight: 900;
  text-align: left;
}

.inference-choices button:hover,
.inference-choices button:focus-visible,
.cause-bank button:hover,
.cause-bank button:focus-visible {
  outline: 0;
  border-color: #d4aa42;
  box-shadow: 0 0 0 4px rgba(212, 170, 66, .14);
}

.inference-choices button.correct {
  color: #0e5948;
  border-color: #68a077;
  background: #e0eee0;
}

.inference-choices button.retry,
.cause-bank button.retry {
  border-color: rgba(185, 139, 71, .35);
  color: #76562a;
  background: #fff6df;
  animation: shake .28s ease;
}

.locked-inference {
  min-height: 78px;
  margin: 1rem 0;
  padding: 1rem;
  display: flex;
  align-items: center;
  gap: .8rem;
  border-radius: 16px;
  color: #66736c;
  background: #eef0e8;
}

.character-contrast {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: .55rem;
  align-items: center;
  margin: 1rem 0 .7rem;
}

.character-contrast > div,
.steady-definition {
  padding: .8rem;
  border-radius: 16px;
  color: #5f6d66;
  background: #eef0e8;
  text-align: center;
}

.character-contrast > div.found,
.steady-definition {
  color: #0e5948;
  background: #e1eee1;
}

.character-contrast b,
.character-contrast span,
.steady-definition b,
.steady-definition span {
  display: block;
}

.character-contrast span,
.steady-definition span {
  margin-top: .2rem;
  font-size: .76rem;
}

.contrast-arrow {
  color: #c89424;
  font-weight: 1000;
}

.decree-target {
  min-height: 120px;
}

.cause-bank {
  grid-template-columns: 1fr 1fr;
}

.cause-bank button {
  display: grid;
  gap: .18rem;
}

.cause-bank button span {
  color: #6b776f;
  font-size: .76rem;
  font-weight: 600;
}

.cause-bank button.used {
  opacity: .4;
  color: #0e5948;
  background: #e1eee1;
}

.cause-chain {
  display: flex;
  align-items: center;
  gap: .34rem;
  margin: 1rem 0;
}

.cause-slot {
  flex: 1 1 0;
  min-width: 0;
  min-height: 68px;
  padding: .55rem .32rem;
  display: grid;
  place-items: center;
  gap: .16rem;
  border: 1px dashed rgba(19, 79, 66, .28);
  border-radius: 13px;
  color: #768078;
  background: #f1f0e7;
  text-align: center;
}

.cause-slot i {
  font-style: normal;
  font-size: .68rem;
}

.cause-slot b {
  font-size: clamp(.58rem, 1.1vw, .76rem);
}

.cause-slot.filled {
  color: #0e5948;
  border-style: solid;
  border-color: rgba(57, 137, 92, .38);
  background: #e1eee1;
}

.cause-arrow {
  color: #c89424;
  font-weight: 1000;
}

.ai-service-card {
  margin: 1rem 0;
  padding: 1rem;
  display: grid;
  gap: .35rem;
  border: 1px solid rgba(160, 128, 60, .28);
  border-radius: 18px;
  color: #705820;
  background: #fff4d7;
}

.ai-service-card.online {
  color: #0d5b49;
  border-color: rgba(54, 133, 89, .38);
  background: #e1eee1;
}

.ai-service-card.checking {
  color: #53665f;
  background: #edf1eb;
}

.ai-service-card b,
.ai-service-card span,
.ai-service-card small {
  display: block;
}

.ai-service-card span,
.ai-service-card small {
  font-size: .8rem;
  line-height: 1.45;
}

.offline-practice {
  border-color: rgba(183, 139, 44, .45);
  background: #fff5d9;
}

.practice-transcript {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(22, 88, 72, .18);
  border-radius: 16px;
  background: #f4f0df;
}

.practice-transcript small {
  color: #a1761f;
  font-weight: 900;
  letter-spacing: .12em;
}

.practice-transcript p {
  margin: .45rem 0 0;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.55;
}

@media (max-width: 720px) {
  .lesson09-image-task button i {
    width: 26px;
    height: 26px;
    font-size: .75rem;
  }

  .lesson09-image-task button span {
    padding: .28rem .42rem;
    font-size: .52rem;
  }

  .p1 .story-copy,
  .p2 .story-copy,
  .p4 .story-copy {
    max-width: 48%;
    margin: 70px 10px 0 0;
    padding: 10px 12px;
  }

  .p1 .story-copy h1,
  .p2 .story-copy h1,
  .p4 .story-copy h1 {
    font-size: clamp(19px, 5.2vw, 28px);
  }

  .p1 .story-copy p,
  .p2 .story-copy p,
  .p4 .story-copy p {
    display: none;
  }

  .cause-bank {
    grid-template-columns: 1fr;
  }

  .cause-chain {
    gap: .2rem;
  }

  .cause-arrow {
    font-size: .72rem;
  }
}

