.trust-film {
  --film-offset:0ms;
  position: relative;
  height: 270px;
  overflow: hidden;
  border: 2px solid #a8b18c;
  border-radius: 17px;
  background:
    linear-gradient(
      #fff7e5,
      #f7edd7 75%,
      #d6e7be 75%);
  isolation: isolate;
}
.trust-world {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
.trust-floor {
  position: absolute;
  left: 3%;
  right: 3%;
  bottom: 13%;
  height: 10%;
  border-radius: 50%;
  background: #8f9f6830;
}
.trust-halo {
  position: absolute;
  top: -25%;
  right: -25%;
  bottom: -25%;
  left: -25%;
  background:
    repeating-conic-gradient(
      from 10deg,
      #f8d78338 0 10deg,
      transparent 10deg 24deg);
  animation-name: trust-halo;
}
.trust-actor {
  position: absolute;
  left: 0;
  bottom: 13%;
  height: 88%;
  aspect-ratio: 4/5;
  z-index: 3;
  transform-origin: 50% 96%;
  animation-name: trust-actor;
}
.trust-film[data-beat="0"] .pose-boast,
.trust-film[data-beat="1"] .pose-shout,
.trust-film[data-beat="2"] .pose-panic,
.trust-film[data-beat="3"] .pose-flop {
  display: block;
}
.trust-film[data-beat="3"] .trust-actor {
  left: 0;
  height: 80%;
  width: 59%;
  aspect-ratio: auto;
}
.trust-document {
  position: absolute;
  right: 6%;
  top: 10%;
  width: 40%;
  height: 56%;
  box-sizing: border-box;
  padding: 10px 8px;
  border: 2px solid #846448;
  border-radius: 4px;
  background: #fffbe9;
  box-shadow: 3px 4px 0 #b4a17f55;
  color: #745339;
  transform-origin: 30% 90%;
  z-index: 4;
  animation-name: trust-document;
}
.trust-document > b {
  display: block;
  font-size: 16px;
  line-height: 21px;
  text-align: center;
  white-space: nowrap;
}
.trust-document > i {
  display: block;
  width: 95%;
  height: 3px;
  margin: 9px auto;
  background: #c9ba97;
}
.trust-document > i:nth-of-type(2) {
  width: 78%;
}
.trust-document > span {
  display: block;
  margin-top: 12px;
  font-size: 12px;
  white-space: nowrap;
}
.trust-document em {
  font-style: normal;
  color: #b34f3c;
}
.trust-document > strong {
  position: absolute;
  inset: 28% 0 auto;
  margin: auto;
  width: max-content;
  padding: 2px 5px;
  border: 3px double #c64d3a;
  font-size: 27px;
  line-height: 33px;
  color: #c64d3a;
  transform: rotate(-13deg);
  animation-name: trust-refusal;
}
.trust-pen {
  position: absolute;
  right: 27%;
  top: 51%;
  width: 12px;
  height: 77px;
  border: 2px solid #323946;
  border-radius: 4px;
  background: #397fa1;
  z-index: 6;
  transform-origin: 50% 90%;
  animation-name: trust-pen;
}
.trust-pen::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -15px;
  margin: auto;
  border-style: solid;
  border-width: 15px 6px 0;
  border-color: #393743 transparent transparent;
}
.trust-pen i {
  position: absolute;
  left: 2px;
  top: 4px;
  width: 3px;
  height: 32px;
  background: #bcd8d8;
  border-radius: 2px;
}
.trust-paper-stream {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  pointer-events: none;
}
.trust-paper-stream i {
  position: absolute;
  right: 10%;
  top: 43%;
  width: 54%;
  height: 30%;
  border: 9px solid #e6cda2;
  outline: 2px solid #8e714d;
  border-radius: 45%;
  transform-origin: 90% 10%;
  animation-name: trust-paper-loop;
}
.trust-paper-stream i:nth-child(2) {
  top: 57%;
  right: 9%;
  width: 69%;
  height: 22%;
  border-radius: 50% 20% 45% 30%;
  animation-name: trust-paper-sweep;
}
.trust-paper-stream i:nth-child(3) {
  top: 72%;
  right: 20%;
  width: 54%;
  height: 10%;
  border-radius: 50%;
  animation-name: trust-paper-floor;
}
.trust-end {
  position: absolute;
  right: 5%;
  top: 11%;
  z-index: 6;
  display: grid;
  gap: 4px;
  justify-items: center;
  transform: rotate(4deg);
  animation-name: trust-end;
}
.trust-end b {
  font-size: 21px;
  color: #8c4e31;
}
.trust-end span {
  padding: 4px 7px;
  border: 2px solid #b64e3b;
  border-radius: 5px;
  background: #fff7df;
  font-size: 18px;
  color: #b64e3b;
  font-weight: 900;
}
.trust-prize {
  position: absolute;
  right: 7%;
  bottom: 14%;
  display: grid;
  justify-items: center;
  width: 55px;
  padding: 4px;
  border: 2px solid #91a65c;
  border-radius: 11px;
  background: #f5ffdf;
  z-index: 8;
  animation-name: trust-prize;
}
.trust-prize img {
  width: 38px;
  height: 38px;
  object-fit: contain;
}
.trust-prize b {
  font-size: 10px;
  color: #52702f;
}
.trust-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 3px 4px;
  min-height: 25px;
  box-sizing: border-box;
  background: #fff9e8;
  font-size: 13px;
  line-height: 19px;
  font-weight: 800;
  text-align: center;
  color: #60543c;
  z-index: 10;
}
.trust-actor,
.trust-halo,
.trust-document,
.trust-document > strong,
.trust-pen,
.trust-paper-stream i,
.trust-end,
.trust-prize {
  animation-duration: 8000ms;
  animation-timing-function: linear;
  animation-delay: var(--film-offset);
  animation-fill-mode: both;
  animation-play-state: paused;
}
@keyframes trust-halo {
  0%, 24.9% {
    opacity: .6;
    transform: rotate(0);
  }
  25% {
    opacity: .3;
  }
  52.4% {
    opacity: .3;
    transform: rotate(30deg);
  }
  60%, 100% {
    opacity: 0;
  }
}
@keyframes trust-actor {
  0% {
    transform: translateX(-8px) rotate(-3deg);
  }
  10% {
    transform: translateX(4px) rotate(2deg);
  }
  20%, 24.9% {
    transform: none;
  }
  25% {
    transform: translateX(-7px) rotate(-6deg);
  }
  34% {
    transform: rotate(3deg);
  }
  43%, 52.4% {
    transform: none;
  }
  52.5% {
    transform: translateX(-10px) rotate(-5deg);
  }
  63% {
    transform: translate(4px, -5px) rotate(3deg);
  }
  74.9% {
    transform: rotate(-3deg);
  }
  75% {
    transform: translateY(10px) scale(.94);
  }
  85%, 100% {
    transform: translateY(4px);
  }
}
@keyframes trust-document {
  0% {
    opacity: 0;
    transform: translateX(35px) rotate(12deg);
  }
  8%, 24.9% {
    opacity: 1;
    transform: none;
  }
  28% {
    transform: rotate(-10deg);
  }
  38% {
    transform: rotate(7deg);
  }
  51%, 52.4% {
    transform: rotate(3deg);
  }
  61% {
    opacity: 1;
    transform: translateY(20px) rotate(9deg);
  }
  74.9% {
    opacity: 1;
    transform: translateY(35px) rotate(12deg);
  }
  75%, 100% {
    opacity: 0;
    transform: translateY(70px) rotate(16deg);
  }
}
@keyframes trust-refusal {
  0%, 24.9% {
    opacity: 0;
    transform: rotate(-13deg) scale(2);
  }
  29% {
    opacity: 1;
    transform: rotate(-13deg) scale(.88);
  }
  33%, 100% {
    opacity: 1;
    transform: rotate(-13deg);
  }
}
@keyframes trust-pen {
  0%, 24.9% {
    opacity: 1;
    transform: rotate(35deg);
  }
  28% {
    transform: translate(-18px, -22px) rotate(-15deg);
  }
  35% {
    transform: translate(40px, -65px) rotate(125deg);
  }
  45%, 100% {
    opacity: 0;
    transform: translate(95px, 75px) rotate(235deg);
  }
}
@keyframes trust-paper-loop {
  0%, 52.4% {
    opacity: 0;
    transform: scale(.05);
  }
  58% {
    opacity: 1;
    transform: scale(.9) rotate(-7deg);
  }
  66% {
    opacity: 1;
    transform: scale(1.1) rotate(8deg);
  }
  74%, 100% {
    opacity: 1;
    transform: rotate(-5deg);
  }
}
@keyframes trust-paper-sweep {
  0%, 52.4% {
    opacity: 0;
    transform: translateX(110px) scale(.1);
  }
  58% {
    opacity: 1;
    transform: translateX(70px) scale(.4);
  }
  68% {
    opacity: 1;
    transform: translateX(-8px) rotate(9deg);
  }
  78%, 100% {
    opacity: 1;
    transform: rotate(-4deg);
  }
}
@keyframes trust-paper-floor {
  0%, 62% {
    opacity: 0;
    transform: scale(.1);
  }
  73% {
    opacity: 1;
    transform: scale(1.2);
  }
  83%, 100% {
    opacity: 1;
    transform: none;
  }
}
@keyframes trust-end {
  0%, 74.9% {
    opacity: 0;
    transform: translateY(-30px) rotate(4deg);
  }
  83% {
    opacity: 1;
    transform: translateY(4px) rotate(4deg);
  }
  88%, 100% {
    opacity: 1;
    transform: rotate(4deg);
  }
}
@keyframes trust-prize {
  0%, 87.4% {
    opacity: 0;
    transform: translateY(-45px) scale(.2);
  }
  87.5% {
    opacity: 1;
    transform: translateY(-35px) scale(.4);
  }
  95% {
    opacity: 1;
    transform: translateY(3px) scale(1.1);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}
.trust-film[data-reduced=true] * {
  animation: none !important;
}
.trust-film[data-reduced=true] .trust-paper-stream,
.trust-film[data-reduced=true] .trust-end,
.trust-film[data-reduced=true] .trust-prize,
.trust-film[data-reduced=true] .trust-document > strong {
  display: none;
}
.trust-film[data-reduced=true][data-refused=true] .trust-document > strong {
  display: block;
}
.trust-film[data-reduced=true][data-refused=true] .trust-pen {
  display: none;
}
.trust-film[data-reduced=true][data-unrolled=true] .trust-paper-stream {
  display: block;
}
.trust-film[data-reduced=true][data-tangled=true] .trust-document {
  display: none;
}
.trust-film[data-reduced=true][data-tangled=true] .trust-end {
  display: grid;
}
.trust-film[data-reduced=true][data-prize=true] .trust-prize {
  display: grid;
}
.modal:has(.trust-film) {
  padding: 12px 13px;
}
.modal:has(.trust-film) h2 {
  font-size: 22px;
  margin: 2px 0 8px;
}
.modal:has(.trust-film) .film-reward-note {
  margin: 7px 0 0;
  font-size: 11px;
  line-height: 16px;
}
.modal:has(.trust-film) .short-progress {
  margin-top: 8px;
  height: 5px;
}
.modal:has(.trust-film) .modal-actions .btn {
  min-height: 40px;
  margin-top: 6px;
  padding: 8px;
}
.modal:has(.trust-film) .modal-actions .btn:last-child {
  min-height: 30px;
  padding: 3px 8px;
  border: 0;
  background: none;
  box-shadow: none;
  font-size: 11px;
  color: #81916b;
}
.cartoon-tool-fx[data-character=chapter-5] .ct-actor {
  left: 0;
  height: calc(100% - 22px);
}
.cartoon-tool-fx[data-character=chapter-5] .ct-speech {
  left: 43%;
  right: 0;
}
.cartoon-tool-fx[data-character=chapter-5] .ct-speech b {
  font-size: 18px;
}
.cartoon-tool-fx[data-character=chapter-5] :is(.ct-poof, .ct-chips, .ct-wind, .ct-folder) {
  display: none;
}
.ct-trust-promise {
  position: absolute;
  left: 48%;
  right: 4%;
  top: 40%;
  height: 52px;
  z-index: 5;
  pointer-events: none;
}
.ct-trust-promise b {
  position: absolute;
  right: 0;
  top: 15px;
  padding: 3px 6px;
  border: 3px double #bd543e;
  background: #fff8e1;
  color: #ac4937;
  font-size: 17px;
  transform: rotate(-10deg);
  opacity: 0;
}
.ct-trust-promise i {
  position: absolute;
  left: 36%;
  top: 0;
  width: 9px;
  height: 58px;
  border: 2px solid #33404c;
  border-radius: 3px;
  background: #45839f;
  transform: rotate(35deg);
}
.ct-trust-promise i::after {
  content: "";
  position: absolute;
  left: -1px;
  bottom: -11px;
  border-style: solid;
  border-width: 11px 5px 0;
  border-color: #303c48 transparent transparent;
}
.cartoon-tool-fx[data-character=chapter-5][data-phase=action] .ct-actor {
  animation: trust-tool-refuse 1.05s ease both;
}
.cartoon-tool-fx[data-character=chapter-5][data-phase=action] .ct-trust-promise i {
  animation: trust-tool-pen 1.05s ease both;
}
.cartoon-tool-fx[data-character=chapter-5][data-phase=action] .ct-trust-promise b {
  animation: trust-tool-stamp 1.05s ease both;
}
.cartoon-tool-fx[data-character=chapter-5]:is([data-phase=result], [data-phase=exit]) .ct-trust-promise i {
  display: none;
}
.cartoon-tool-fx[data-character=chapter-5]:is([data-phase=result], [data-phase=exit]) .ct-trust-promise b {
  opacity: 1;
  font-size: 12px;
}
.cartoon-tool-fx[data-character=chapter-5][data-tool=stash] .ct-card {
  border-color: #b78559;
}
.cartoon-tool-fx[data-character=chapter-5][data-tool=stash][data-phase=action] .ct-card {
  animation: trust-tool-fold 1.05s ease both;
}
.cartoon-tool-fx[data-character=chapter-5][data-tool=shuffle][data-phase=action] .ct-card {
  animation: trust-tool-rewrite 1.05s ease both;
}
@keyframes trust-tool-refuse {
  0% {
    transform: none;
  }
  35% {
    transform: translateX(-8px) rotate(-5deg);
  }
  70% {
    transform: translateX(4px) rotate(2deg);
  }
  100% {
    transform: none;
  }
}
@keyframes trust-tool-pen {
  0% {
    opacity: 1;
    transform: rotate(35deg);
  }
  40% {
    opacity: 1;
    transform: translate(5px, -20px) rotate(-20deg);
  }
  100% {
    opacity: 0;
    transform: translate(80px, 30px) rotate(180deg);
  }
}
@keyframes trust-tool-stamp {
  0%, 32% {
    opacity: 0;
    transform: scale(2) rotate(-10deg);
  }
  55% {
    opacity: 1;
    transform: scale(.9) rotate(-10deg);
  }
  70%, 100% {
    opacity: 1;
    transform: rotate(-10deg);
  }
}
@keyframes trust-tool-fold {
  0% {
    transform: translateX(var(--x0));
  }
  45% {
    transform: translateX(var(--x0)) rotate(-10deg) scaleY(.7);
  }
  100% {
    transform: translate(0, 40px) rotate(-15deg) scale(.1);
    opacity: 0;
  }
}
@keyframes trust-tool-rewrite {
  0% {
    transform: translateX(var(--x0));
  }
  50% {
    transform: translate(0, -20px) rotate(180deg) scale(.65);
  }
  100% {
    transform: translateX(var(--x1)) rotate(360deg);
  }
}
@media (max-height: 700px) {
  .trust-film {
    height: 190px;
  }
  .trust-document {
    padding: 5px 6px;
    top: 9%;
    height: 60%;
  }
  .trust-document > b {
    font-size: 13px;
    line-height: 16px;
  }
  .trust-document > i {
    margin: 5px auto;
    height: 2px;
  }
  .trust-document > span {
    font-size: 10px;
    margin-top: 7px;
  }
  .trust-document > strong {
    font-size: 23px;
    line-height: 28px;
  }
  .trust-pen {
    height: 55px;
    width: 10px;
  }
  .trust-end b {
    font-size: 18px;
  }
  .trust-end span {
    font-size: 16px;
  }
  .trust-prize {
    width: 44px;
    padding: 3px;
  }
  .trust-prize img {
    width: 29px;
    height: 29px;
  }
  .trust-prize b {
    font-size: 9px;
  }
  .trust-caption {
    font-size: 12px;
    line-height: 19px;
  }
  .trust-actor {
    left: -1%;
  }
}
@media (max-width: 360px) {
  .trust-document {
    right: 4%;
  }
  .trust-end {
    right: 3%;
  }
  .modal:has(.trust-film) {
    padding: 10px;
  }
  .modal:has(.trust-film) h2 {
    font-size: 20px;
    margin-bottom: 6px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cartoon-tool-fx[data-character=chapter-5] * {
    animation: none !important;
  }
  .cartoon-tool-fx[data-character=chapter-5][data-phase=action] .ct-trust-promise b {
    opacity: 1;
  }
}
