/* ===== CHIIKAWA CHARACTERS ===== */
:root {
  --ck-brown: #3D2B1F;
  --ck-blue: #1A3A5C;
  --ck-blush: #FFB8C8;
  --ck-cream: #FFF8F0;
  --ck-usagi-yellow: #F5D98B;
  --ck-hachiware-blue: #C8DCE8;
  --mx: 0;
  --my: 0;
  --cf-rotate: 0;
}

.ck-char {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  user-select: none;
  -webkit-user-drag: none;
  translate: calc(var(--mx) * 6px) calc(var(--my) * 4px);
  rotate: calc(var(--mx) * 4deg);
  transition: translate 0.3s ease, rotate 0.3s ease, right 0.3s ease, bottom 0.3s ease, left 0.3s ease, top 0.3s ease;
}
.ck-char.clickable { pointer-events: auto; cursor: pointer; z-index: 2; }
.ck-char-img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(1px 1px 0 white) drop-shadow(-1px -1px 0 white)
          drop-shadow(1px -1px 0 white) drop-shadow(-1px 1px 0 white);
  image-rendering: auto;
  transform-origin: bottom center;
  animation: ck-idle-squish 4s ease-in-out infinite;
}
.ck-sprite {
  transform-origin: bottom center;
  animation: ck-idle-squish 4s ease-in-out infinite;
}

/* Speech bubble */
.ck-bubble {
  position: absolute;
  background: white;
  border: 2px solid var(--ck-brown);
  border-radius: 18px 22px 20px 16px / 16px 20px 18px 22px;
  padding: 6px 12px;
  font-family: "Caveat", "Ma Shan Zheng", cursive;
  font-size: 13px;
  line-height: 1.3;
  white-space: nowrap;
  color: var(--ck-brown);
  font-weight: 500;
  opacity: 0;
  transform: scale(0.6) translateY(5px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  pointer-events: none;
  z-index: 20;
}
.ck-bubble.show { opacity: 1; transform: scale(1) translateY(0); }
/* Hover显示气泡 - 针对不同位置设置正确的transform */
.ck-char:hover .ck-bubble { opacity: 1; }
.ck-char.clickable:focus-visible .ck-bubble { opacity: 1; }
.ck-char:hover .ck-bubble-hero,
.ck-char.clickable:focus-visible .ck-bubble-hero { transform: translateX(-50%) scale(1); }
.ck-char:hover .ck-bubble-tiny,
.ck-char.clickable:focus-visible .ck-bubble-tiny { transform: translateX(-50%) scale(1); }
.ck-char:hover .ck-bubble-cta,
.ck-char.clickable:focus-visible .ck-bubble-cta { transform: translateX(-50%) scale(1); }
.ck-char:hover .ck-bubble-small,
.ck-char.clickable:focus-visible .ck-bubble-small { transform: scale(1) translateY(0); }
.ck-bubble-tail {
  position: absolute;
  width: 10px; height: 10px;
  background: white;
  border-right: 2px solid var(--ck-brown);
  border-bottom: 2px solid var(--ck-brown);
  transform: rotate(45deg);
}
.ck-bubble-small { font-size: 12px; padding: 4px 10px; }
.ck-bubble-tiny { font-size: 11px; padding: 3px 8px; }

/* Sign held by character */
.ck-sign {
  position: absolute;
  background: var(--tts-ticket);
  color: white;
  font-family: var(--tts-font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  padding: 3px 8px;
  border-radius: 2px;
  text-transform: uppercase;
  transform: rotate(-8deg);
  white-space: nowrap;
  box-shadow: 1px 1px 0 var(--tts-ticket-dark);
}

/* ===== Hero: Chiikawa peeking from top-right of hero screenshot ===== */
.ck-hero-chiikawa {
  position: absolute;
  top: -42px;
  right: -84px;
  width: 174px;
  height: auto;
  animation: ck-pop-in 0.5s ease-out 1.2s both, ck-float 2.5s ease-in-out 2s infinite;
  z-index: 3;
}
.ck-hero-chiikawa .ck-char-img { width: 174px; height: auto; }
.ck-bubble-hero {
  top: -50px;
  left: 50%;
  transform: translateX(-50%) scale(0.6);
  font-size: 13px;
  white-space: nowrap;
}
.ck-bubble-hero.show { transform: translateX(-50%) scale(1); }
.ck-bubble-hero .ck-bubble-tail {
  bottom: -7px; left: 50%; transform: translateX(-50%) rotate(45deg);
}
/* Hearts floating from chiikawa */
.ck-hero-chiikawa::before,
.ck-hero-chiikawa::after {
  content: '♥';
  position: absolute;
  color: var(--ck-blush);
  font-size: 42px;
  animation: ck-heart-float 3s ease-in-out infinite;
  pointer-events: none;
}
.ck-hero-chiikawa::before { top: 0; right: -15px; animation-delay: 0s; }
.ck-hero-chiikawa::after { top: 30px; right: -45px; font-size: 30px; animation-delay: 1.5s; }

/* ===== Chapter 01: Dancing Usagi beside the watch-management heading ===== */
.ck-watch-usagi-dance {
  top: -48px;
  right: -24px;
  translate: 0 0;
  width: 208px;
  height: 208px;
  overflow: hidden;
  z-index: 1;
}
.ck-dance-canvas {
  display: block;
  width: 100%;
  height: 100%;
  transform: translateX(32px);
  image-rendering: auto;
  filter: drop-shadow(1px 1px 0 white) drop-shadow(-1px -1px 0 white)
          drop-shadow(1px -1px 0 white) drop-shadow(-1px 1px 0 white);
}
.ck-sprite {
  width: 240px;
  height: 240px;
  background-repeat: no-repeat;
  background-size: auto 100%;
  image-rendering: pixelated;
  image-rendering: -webkit-optimize-contrast;
}
.ck-sprite-dance {
  background-image: url("/assets/image_17_c0502b.png");
  width: 261px;
  height: 180px;
  background-size: calc(180px * 194) 180px;
  animation: ck-dance 6.5s steps(194) infinite;
  filter: drop-shadow(1px 1px 0 white) drop-shadow(-1px -1px 0 white)
          drop-shadow(1px -1px 0 white) drop-shadow(-1px 1px 0 white);
}
.ck-bubble-small {
  top: -40px;
  right: -5px;
}
.ck-bubble-small .ck-bubble-tail {
  bottom: -6px; left: 20%;
}

/* ===== CTA: Three characters party below download buttons ===== */
.ck-cta-party {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 16px;
  margin: 32px 0 24px;
  padding: 0;
  position: relative;
  transform: scale(1.5);
  transform-origin: center bottom;
}

.ck-cta-hachiware-walk {
  position: relative;
  width: 50px;
  height: 50px;
  animation: ck-bounce 0.6s ease-in-out infinite alternate;
}
.ck-sprite-walk {
  width: 50px;
  height: 50px;
  background-image: url("/assets/image_18_gq3bzw.png");
  background-repeat: no-repeat;
  background-size: calc(50px * 14) 50px;
  animation: ck-walk 0.7s steps(14) infinite;
  image-rendering: pixelated;
  image-rendering: -webkit-optimize-contrast;
  filter: drop-shadow(1px 1px 0 white) drop-shadow(-1px -1px 0 white)
          drop-shadow(1px -1px 0 white) drop-shadow(-1px 1px 0 white);
}

.ck-cta-chiikawa {
  position: relative;
  width: 70px;
  animation: ck-pop-in 0.5s ease-out both, ck-float 2.5s ease-in-out 0.8s infinite;
}
.ck-cta-chiikawa .ck-char-img { width: 70px; height: auto; }
.ck-bubble-cta {
  top: -55px;
  left: 50%;
  transform: translateX(-50%) scale(0.6);
  font-size: 13px;
  text-align: center;
  white-space: nowrap;
}
.ck-bubble-cta.show { transform: translateX(-50%) scale(1); }
.ck-bubble-cta .ck-bubble-tail {
  bottom: -7px; left: 50%; transform: translateX(-50%) rotate(45deg);
}

.ck-cta-usagi {
  position: relative;
  width: 65px;
  height: 65px;
  animation: ck-pop-in 0.5s ease-out 0.4s both;
}
.ck-sprite-swirl {
  width: 65px;
  height: 65px;
  background-image: url("/assets/image_19_a0hbbx.png");
  background-repeat: no-repeat;
  background-size: calc(65px * 48) 65px;
  animation: ck-swirl 3.2s steps(48) infinite;
  filter: drop-shadow(1px 1px 0 white) drop-shadow(-1px -1px 0 white)
          drop-shadow(1px -1px 0 white) drop-shadow(-1px 1px 0 white);
}
.ck-bubble-usagi {
  top: -35px;
  right: -5px;
}


/* Hearts floating around CTA chiikawa */
.ck-hearts {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  pointer-events: none;
}
.ck-hearts span {
  position: absolute;
  color: var(--ck-blush);
  font-size: 12px;
  animation: ck-heart-float 2.5s ease-in-out infinite;
}
.ck-hearts span:nth-child(1) { top: -5px; left: 10px; animation-delay: 0s; font-size: 10px; }
.ck-hearts span:nth-child(2) { top: 5px; right: 5px; animation-delay: 0.8s; font-size: 14px; }
.ck-hearts span:nth-child(3) { bottom: 10px; left: 0; animation-delay: 1.6s; font-size: 8px; }

/* Click particles */
.ck-particle {
  position: absolute;
  pointer-events: none;
  z-index: 30;
  font-size: 14px;
  color: var(--ck-blush);
  animation: ck-particle-float 0.9s ease-out forwards;
}
@keyframes ck-particle-float {
  0% { transform: translateY(0) scale(0.6); opacity: 1; }
  100% { transform: translateY(-45px) scale(1.2); opacity: 0; }
}

/* ===== Download section characters ===== */
.ck-download-chiikawa {
  position: absolute;
  left: -120px;
  top: -58px;
  width: 160px;
  rotate: -8deg;
  z-index: 1;
}
.ck-download-chiikawa .ck-char-img { width: 160px; height: auto; }
.ck-download-usagi {
  position: absolute;
  right: -120px;
  top: -58px;
  width: 160px;
  rotate: 8deg;
  z-index: 1;
}
.ck-download-usagi .ck-char-img { width: 160px; height: auto; }

/* ===== New decorative characters ===== */
.tts-hero-title-row {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ck-hero-chiikawa-love {
  position: relative;
  right: auto;
  bottom: auto;
  width: 261px;
  margin: 8px auto 0;
  flex-shrink: 0;
}
.ck-hero-chiikawa-love .ck-char-img { width: 261px; height: auto; }

.ck-search-detective {
  position: absolute;
  top: 3px;
  right: 0;
  width: 121px;
  z-index: 1;
}
.ck-search-detective .ck-char-img { width: 121px; height: auto; }

.ck-discover-usagi-curious {
  position: absolute;
  top: -19px;
  right: -12px;
  width: 118px;
  z-index: 1;
}
.ck-discover-usagi-curious .ck-char-img { width: 118px; height: auto; }

.ck-library-chiikawa-star {
  position: absolute;
  top: 0;
  right: 0;
  width: 104px;
  z-index: 1;
}
.ck-library-chiikawa-star .ck-char-img { width: 104px; height: auto; }

.ck-detail-usagi-thumbsup {
  position: absolute;
  top: -3px;
  right: 0;
  width: 104px;
  z-index: 1;
}
.ck-detail-usagi-thumbsup .ck-char-img { width: 104px; height: auto; }
.ck-privacy-knight {
  position: absolute;
  top: -3px;
  right: 0;
  width: 104px;
  z-index: 1;
}
.ck-privacy-knight .ck-char-img { width: 104px; height: auto; }
.tts-section-heading-with-char { padding-right: 116px; }

/* ===== Cursor follower: Mini Usagi head ===== */
.ck-cursor-follower {
  position: fixed;
  width: 24px;
  height: 24px;
  pointer-events: none;
  z-index: 9999;
  opacity: 0;
  transition: opacity 0.3s ease;
  will-change: transform;
}
.ck-cursor-follower img {
  width: 24px;
  height: 24px;
  display: block;
}
.ck-cursor-follower.active { opacity: 0.8; }
@media (pointer: coarse) {
  .ck-cursor-follower { display: none !important; }
}

/* ===== Footer credit ===== */
.ck-footer-credit {
  font-family: var(--tts-font-mono);
  font-size: 9px;
  color: var(--tts-ink-faint);
  letter-spacing: 0.05em;
  margin-left: 16px;
}

/* ===== Footer theater: Three characters watching screen ===== */
.ck-footer-theater {
  display: flex;
  justify-content: center;
  margin: 0 0 12px;
  position: relative;
}
.ck-footer-theater-img {
  width: 270px;
  height: auto;
  opacity: 0.85;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.1));
  animation: ck-float 4s ease-in-out infinite;
  position: relative;
  z-index: 1;
}
.ck-theater-glow {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%) scale(1);
  width: 180px;
  height: 45px;
  background: radial-gradient(ellipse at center, rgba(217,85,50,0.15) 0%, rgba(217,85,50,0.05) 40%, transparent 70%);
  filter: blur(8px);
  z-index: 0;
  opacity: 0.7;
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.ck-footer-theater:hover .ck-theater-glow {
  opacity: 1;
  transform: translateX(-50%) scale(1.25);
}

/* ===== Peeking eyes on dividers ===== */
.ck-peek {
  position: absolute;
  pointer-events: none;
  z-index: 10;
  opacity: 0;
  transition: opacity 0.8s ease;
}
.ck-peek.show { opacity: 1; }
.ck-peek-eyes {
  display: flex;
  gap: 6px;
}
.ck-peek-eye {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ck-brown);
  position: relative;
  transform-origin: center;
  animation: ck-blink 4s ease-in-out infinite;
}
.ck-peek-eye:nth-child(2) { animation-delay: 0.25s; }
.ck-peek-eye::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 4px;
  background: var(--ck-brown);
}

/* ===== Enhanced interactions ===== */
.tts-shot-frame {
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.45s ease;
  transform-style: preserve-3d;
}
.tts-shot-frame:hover {
  box-shadow: 0 18px 48px rgba(0,0,0,0.08);
}

.tts-feature-list li {
  transition: transform 0.25s ease, color 0.25s ease;
}
.tts-feature-list li:hover {
  transform: translateX(8px);
  color: var(--tts-ticket);
}

.tts-btn {
  position: relative;
  overflow: hidden;
}
.tts-btn::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 0; height: 0;
  background: rgba(255,255,255,0.35);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.5s ease, height 0.5s ease, opacity 0.5s ease;
  opacity: 0;
  pointer-events: none;
}
.tts-btn-outline::after { background: rgba(217, 85, 50, 0.22); }
.tts-btn:active::after {
  width: 220%; height: 220%;
  opacity: 1;
  transition: 0s;
}

.tts-archive-digit {
  position: relative;
  z-index: 2;
}

.ck-confetti {
  position: fixed;
  pointer-events: none;
  z-index: 9999;
}

/* ===== Animations ===== */
@keyframes ck-pop-in {
  from { transform: scale(0) translateY(20px); opacity: 0; }
  to { transform: scale(1) translateY(0); opacity: 1; }
}
@keyframes ck-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes ck-bounce {
  0% { transform: translateY(0); }
  100% { transform: translateY(-6px); }
}
@keyframes ck-wiggle {
  0%, 100% { transform: rotate(-8deg); }
  50% { transform: rotate(-2deg); }
}
@keyframes ck-slide-right {
  from { transform: translateX(30px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}
@keyframes ck-walk {
  from { background-position: 0 0; }
  to { background-position: calc(-50px * 14) 0; }
}
@keyframes ck-dance {
  from { background-position: 0 50%; }
  to { background-position: calc(-180px * 194) 50%; }
}
@keyframes ck-swirl {
  from { background-position: 0 50%; }
  to { background-position: calc(-65px * 48) 50%; }
}
@keyframes ck-heart-float {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-15px) scale(1.2); opacity: 1; }
  100% { transform: translateY(-30px) scale(0.8); opacity: 0; }
}
@keyframes ck-idle-squish {
  0%, 100% { transform: scale(1, 1); }
  50% { transform: scale(1.04, 0.96); }
}
@keyframes ck-blink {
  0%, 96%, 100% { transform: scaleY(1); }
  98% { transform: scaleY(0.1); }
}

/* Scroll reveal for characters */
.ck-char { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease; }
.ck-char.ck-visible { opacity: 1; transform: translateY(0); }
/* Hero char is visible immediately */
.ck-hero-chiikawa { opacity: 1; transform: none; }

/* ===== Responsive: Tablet ===== */
@media (max-width: 1024px) {
  .ck-cta-party { gap: 12px; }
}

/* ===== Responsive: Mobile ===== */
@media (max-width: 768px) {
  .ck-hero-chiikawa-love { width: 218px; margin-top: 4px; }
  .ck-hero-chiikawa-love .ck-char-img { width: 218px; }
  .ck-hero-chiikawa { width: 132px; top: -24px; right: -30px; }
  .ck-hero-chiikawa .ck-char-img { width: 132px; }
  .ck-bubble-hero { font-size: 11px; padding: 4px 8px; top: -42px; }

  .ck-watch-usagi-dance { width: min(156px, 44vw); height: min(156px, 44vw); top: -64px; right: 0; }
  .ck-watch-usagi-dance .ck-dance-canvas { width: 100%; height: 100%; }
  .ck-sprite-dance { width: min(144px, 34vw); height: min(144px, 34vw); background-size: 19400% 100%; }
  @keyframes ck-dance { to { background-position: calc(-144px * 194) 50%; } }

  .ck-cta-party { gap: 10px; margin: 28px 0 20px; padding: 0; }
  .ck-cta-hachiware-walk { width: 40px; height: 40px; }
  .ck-sprite-walk { width: 40px; height: 40px; background-size: calc(40px * 14) 40px; }
  @keyframes ck-walk { to { background-position: calc(-40px * 14) 0; } }
  .ck-cta-chiikawa { width: 56px; }
  .ck-cta-chiikawa .ck-char-img { width: 56px; }
  .ck-cta-usagi { width: 52px; height: 52px; }
  .ck-sprite-swirl { width: 52px; height: 52px; background-size: calc(52px * 48) 52px; }
  @keyframes ck-swirl { to { background-position: calc(-52px * 48) 50%; } }

  .ck-footer-theater-img { width: 210px; }
  .ck-footer-theater { margin-top: -48px; margin-bottom: -16px; }
  .ck-theater-glow { width: 135px; height: 36px; }

  .ck-hero-chiikawa-love { width: 218px; margin-top: 4px; }
  .ck-hero-chiikawa-love .ck-char-img { width: 218px; }
  .ck-search-detective { width: min(91px, 25.5vw); top: -15px; right: 0; left: auto; }
  .ck-library-chiikawa-star { width: min(78px, 22vw); top: -18px; right: 0; left: auto; }
  .ck-discover-usagi-curious { width: min(116px, 29vw); top: -37px; right: -10px; left: auto; }
  .ck-detail-usagi-thumbsup { width: min(78px, 22vw); top: -21px; right: 0; left: auto; }
  .ck-privacy-knight { width: min(104px, 26vw); top: -31px; right: 0; left: auto; }
  .ck-privacy-knight .ck-char-img { width: min(104px, 26vw); }
  .ck-search-detective .ck-char-img, .ck-discover-usagi-curious .ck-char-img, .ck-library-chiikawa-star .ck-char-img, .ck-detail-usagi-thumbsup .ck-char-img { width: 60px; }
  .ck-search-detective .ck-char-img { width: min(91px, 25.5vw); }
  .ck-discover-usagi-curious .ck-char-img { width: min(116px, 29vw); }
  .ck-library-chiikawa-star .ck-char-img { width: min(78px, 22vw); }
  .ck-detail-usagi-thumbsup .ck-char-img { width: min(78px, 22vw); }
  .ck-download-chiikawa, .ck-download-usagi { width: 80px; top: -36px; }
  .ck-download-chiikawa { left: -12px; }
  .ck-download-usagi { right: -12px; }
  .ck-download-chiikawa .ck-char-img, .ck-download-usagi .ck-char-img { width: 80px; }

  .ck-bubble { display: none; } /* 移动端隐藏气泡节省空间 */
  .ck-cta-chiikawa .ck-bubble-cta { display: block; }

  .ck-cursor-follower { display: none !important; }
  .ck-peek { display: none !important; }
  .ck-footer-credit { display: block; margin-left: 0; margin-top: 4px; }

  /* Privacy section mobile */
  .tts-privacy-header { flex-direction: column; gap: 12px; }
  .tts-privacy-header .tts-archive-num { flex-direction: row; align-items: center; gap: 12px; margin-bottom: 0; }
  .tts-privacy-header .tts-archive-digit { font-size: 36px; }
  .tts-privacy-header .tts-archive-label::before { display: none; }
  .tts-privacy-header .tts-archive-label { font-size: 10px; }
  .tts-privacy-copy { padding-top: 0; }
  .tts-privacy-copy .tts-section-heading { font-size: clamp(20px, 5vw, 28px); }
  .tts-privacy-copy .tts-section-body { font-size: 13px; }
  .tts-privacy-checklist { flex-direction: row; gap: 12px; }
  .tts-privacy-checklist-col { min-width: 0; flex: 1; }
  .tts-privacy-checklist-title { font-size: 9px; margin-bottom: 8px; }
  .tts-privacy-checklist-list { gap: 5px; }
  .tts-privacy-checklist-list li { font-size: 12px; gap: 6px; }
  .tts-privacy-check, .tts-privacy-cross { font-size: 11px; }
  .tts-privacy-flow-diagram { padding: 12px; overflow: hidden; }
  .tts-flow-stage-grid { grid-template-columns: 1fr; gap: 8px; }
  .tts-flow-stage-connector { flex-direction: row; gap: 6px; }
  .tts-flow-stage-connector i { transform: rotate(90deg); }
  .tts-flow-branch-grid { grid-template-columns: 1fr; }
  .tts-flow-public-row { align-items: stretch; flex-direction: column; }
  .tts-flow-public-row .tts-flow-stage-label { margin: 0; }
  .tts-security-steps { grid-template-columns: 1fr; gap: 8px; }
  .tts-security-steps > i,
  .tts-security-steps > svg { justify-self: center; transform: rotate(90deg); }
  .tts-security-step { padding: 11px; }
  .tts-security-step strong { font-size: 15px; }
  .tts-security-note { font-size: 11px; }
  .tts-flow-row { flex-wrap: nowrap; gap: 6px; justify-content: center; }
  .tts-flow-node { font-size: 10px; padding: 3px 6px; }
  .tts-flow-arrow-right { width: 14px; }
  .tts-flow-arrow-right::after { border-left-width: 4px; border-top-width: 3px; border-bottom-width: 3px; }
  .tts-flow-arrow-down::before { height: 12px; }
  .tts-flow-arrow-down::after { border-top-width: 5px; border-left-width: 4px; border-right-width: 4px; }
  .tts-flow-divider { font-size: 9px; margin: 2px 0; }
  .tts-privacy-flow-legend { gap: 10px; }
  .tts-privacy-legend-item { font-size: 10px; }
  .tts-privacy-legend-dot { width: 6px; height: 6px; }
  .tts-privacy-badge { font-size: 11px; padding: 4px 10px; gap: 4px; }
  .tts-privacy-badge-dot { width: 5px; height: 5px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .ck-char, .ck-sprite, .ck-hero-chiikawa,
  .ck-cta-chiikawa, .ck-cta-usagi,
  .ck-cta-hachiware-walk, .ck-footer-theater-img, .ck-hearts span {
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
    transition: none !important;
  }
  .ck-char { opacity: 1 !important; transform: none !important; }
  .ck-peek-ground,
  .ck-peek-hachiware,
  .ck-peek-usagi {
    animation: none !important;
    transition: none !important;
    transform: translateY(42%) !important;
  }
  .ck-peek-ground .ck-char-img { animation: none !important; transform: none !important; }
  .ck-bubble { opacity: 1; transform: scale(1); }
  .ck-cursor-follower { display: none !important; }
  .ck-sprite-dance { background-position: 0 50% !important; }
  .ck-sprite-swirl { background-position: 0 50% !important; }
  .ck-sprite-walk { background-position: 0 0 !important; }
}
