/* Comics-specific styles */

.embla { overflow: hidden; }
.embla__container { display: flex; }
.embla__slide { margin-right: 20px; min-width: 0; max-width: 400px; flex-shrink: 0; }
.embla-comic .embla__slide { flex: 0 0 80%; max-width: none; margin-left: 10%; margin-right: 10%; display: flex; justify-content: center; }
.embla-comic .comic-page { width: 100%; }

.comic-countdown {
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.comic-bubble {
  position: absolute;
  pointer-events: auto;
  box-sizing: border-box;
  background: #fff;
  border: 3px solid #000;
  border-radius: 20px;
  box-shadow: 5px 5px 0 #000;
  font-family: "Gilroy-Regular", "Segoe UI", system-ui, -apple-system, sans-serif;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.01em;
  display: flex;
  align-items: stretch;
  justify-content: center;
  text-align: left;
  width: fit-content;
  max-width: var(--bubble-max-width, 80%);
  --bubble-height-limit: min(var(--bubble-max-height, 80%), 80vh);
  max-height: var(--bubble-height-limit);
  overflow: hidden;
  color: var(--comic-bubble-color, #000) !important;
  --color-base-content: 0% 0 0;
  mix-blend-mode: normal !important;
  isolation: isolate;

  --bubble-font-size: clamp(12px, calc(1.1vw + 10px), 18px);
  --bubble-padding-x: 16px;
  --bubble-padding-y: 12px;

  --tail-main: 16px;
  --tail-sub: 12px;
  --tail-offset: 16px;
  --tail-offset-inner: 12px;

  font-size: var(--bubble-font-size);
  padding: var(--bubble-padding-y) var(--bubble-padding-x);
}

.comic-bubble__content {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  width: 100%;
  max-height: calc(var(--bubble-height-limit, 80vh) - (var(--bubble-padding-y) * 2));
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55em;
  overflow-y: auto;
  padding-right: 4px;
  text-align: left;
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  scrollbar-width: thin;
  scrollbar-color: #9b9b9b transparent;
}

.comic-bubble__content::-webkit-scrollbar { width: 6px; }
.comic-bubble__content::-webkit-scrollbar-thumb {
  background: #b5b5b5;
  border-radius: 999px;
}

.comic-bubble__content > * {
  margin: 0;
  line-height: 1.5;
}

.comic-bubble__content p + p,
.comic-bubble__content br + p,
.comic-bubble__content ul,
.comic-bubble__content ol {
  margin-top: 0.35em;
}

.comic-bubble__content ol, .comic-bubble__content ol li{
  list-style: auto;
  margin-left: 0.75rem;
}

.comic-bubble__content ul, .comic-bubble__content ul li{
  list-style-type: disc !important;
  margin-left: 0.75rem;
}

.comic-bubble__content strong,
.comic-bubble__content b {
  font-weight: 700;
}

.comic-bubble--w-20 { --bubble-max-width: 20%; }
.comic-bubble--w-40 { --bubble-max-width: 40%; }
.comic-bubble--w-60 { --bubble-max-width: 60%; }
.comic-bubble--w-80 { --bubble-max-width: 80%; }

.comic-bubble--h-20 { --bubble-max-height: 20%; }
.comic-bubble--h-40 { --bubble-max-height: 40%; }
.comic-bubble--h-60 { --bubble-max-height: 60%; }
.comic-bubble--h-80 { --bubble-max-height: 80%; }

.comic-bubble--pos-top-left { top: 5%; left: 5%; }
.comic-bubble--pos-top-right { top: 5%; right: 5%; }
.comic-bubble--pos-bottom-left { bottom: 5%; left: 5%; }
.comic-bubble--pos-bottom-right { bottom: 5%; right: 5%; }
.comic-bubble--pos-top-center { top: 5%; left: 50%; transform: translateX(-50%); }
.comic-bubble--pos-bottom-center { bottom: 5%; left: 50%; transform: translateX(-50%); }
.comic-bubble--pos-center { top: 50%; left: 50%; transform: translate(-50%, -50%); }

.comic-bubble--color-red { --comic-bubble-color: #ff0000; }
.comic-bubble--color-blue { --comic-bubble-color: #0000ff; }
.comic-bubble--color-black { --comic-bubble-color: #000000; }
.comic-bubble--color-white { --comic-bubble-color: #ffffff; }
.comic-bubble--color-yellow { --comic-bubble-color: #ffff00; }

.comic-bubble--w-20,
.comic-bubble--h-20 {
  --bubble-font-size: clamp(10px, 1.1vw, 14px);
  --bubble-padding-x: 8px;
  --bubble-padding-y: 6px;
  --bubble-lines: 4;
  --tail-main: 12px;
  --tail-sub: 9px;
  --tail-offset: 12px;
  --tail-offset-inner: 9px;
}

.comic-bubble--w-40,
.comic-bubble--h-40 {
  --bubble-font-size: clamp(11px, 1.4vw, 16px);
  --bubble-padding-x: 12px;
  --bubble-padding-y: 8px;
  --bubble-lines: 5;
}

.comic-bubble--w-60,
.comic-bubble--h-60 {
  --bubble-font-size: clamp(12px, 1.8vw, 20px);
  --bubble-padding-x: 14px;
  --bubble-padding-y: 10px;
  --bubble-lines: 7;
}

.comic-bubble--w-80,
.comic-bubble--h-80 {
  --bubble-font-size: clamp(14px, 2.2vw, 24px);
  --bubble-padding-x: 16px;
  --bubble-padding-y: 12px;
  --bubble-lines: 9;
}

.comic-bubble .trix-content,
.comic-bubble .trix-content *,
.comic-bubble-text,
.comic-bubble-text *,
.comic-bubble *,
.comic-bubble [class*="text-base-content"] {
  color: var(--comic-bubble-color, #000) !important;
  -webkit-text-fill-color: var(--comic-bubble-color, #000) !important;
  mix-blend-mode: normal !important;
  filter: none !important;
  background-clip: border-box !important;
  -webkit-background-clip: border-box !important;
  opacity: 1 !important;
  font-size: inherit;
  line-height: inherit;
}

.comic-bubble::after {
  content: '';
  position: absolute;
  bottom: calc(var(--tail-offset) * -1);
  left: 20px;
  width: 0;
  height: 0;
  border: 10px solid transparent;
  border-top-color: #000;
  border-width: var(--tail-main) var(--tail-sub) 0 var(--tail-sub);
}

.comic-bubble::before {
  content: '';
  position: absolute;
  bottom: calc(var(--tail-offset-inner) * -1);
  left: 23px;
  width: 0;
  height: 0;
  border: 10px solid transparent;
  border-top-color: #fff;
  border-width: var(--tail-main) var(--tail-sub) 0 var(--tail-sub);
}

.comic-bubble[data-tail="none"]::after,
.comic-bubble[data-tail="none"]::before {
  display: none;
}

.comic-bubble[data-tail="bottom-left"]::after,
.comic-bubble[data-tail="bottom-left"]::before {
  bottom: calc(var(--tail-offset) * -1);
  top: auto;
  left: 20px;
  right: auto;
  transform: none;
  border-width: var(--tail-main) var(--tail-sub) 0 var(--tail-sub);
}
.comic-bubble[data-tail="bottom-left"]::after { border-top-color: #000; }
.comic-bubble[data-tail="bottom-left"]::before { border-top-color: #fff; }

.comic-bubble[data-tail="bottom-right"]::after,
.comic-bubble[data-tail="bottom-right"]::before {
  bottom: calc(var(--tail-offset) * -1);
  top: auto;
  right: 20px;
  left: auto;
  transform: none;
  border-width: var(--tail-main) var(--tail-sub) 0 var(--tail-sub);
}
.comic-bubble[data-tail="bottom-right"]::after { border-top-color: #000; }
.comic-bubble[data-tail="bottom-right"]::before { border-top-color: #fff; }

.comic-bubble[data-tail="top-left"]::after,
.comic-bubble[data-tail="top-left"]::before {
  top: calc(var(--tail-offset) * -1);
  bottom: auto;
  left: 20px;
  right: auto;
  transform: none;
  border-width: 0 var(--tail-sub) var(--tail-main) var(--tail-sub);
}
.comic-bubble[data-tail="top-left"]::after { border-bottom-color: #000; }
.comic-bubble[data-tail="top-left"]::before { border-bottom-color: #fff; }

.comic-bubble[data-tail="top-right"]::after,
.comic-bubble[data-tail="top-right"]::before {
  top: calc(var(--tail-offset) * -1);
  bottom: auto;
  right: 20px;
  left: auto;
  transform: none;
  border-width: 0 var(--tail-sub) var(--tail-main) var(--tail-sub);
}
.comic-bubble[data-tail="top-right"]::after { border-bottom-color: #000; }
.comic-bubble[data-tail="top-right"]::before { border-bottom-color: #fff; }

.comic-bubble[data-tail="top-center"]::after,
.comic-bubble[data-tail="top-center"]::before {
  top: calc(var(--tail-offset) * -1);
  bottom: auto;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  border-width: 0 var(--tail-sub) var(--tail-main) var(--tail-sub);
}
.comic-bubble[data-tail="top-center"]::after { border-bottom-color: #000; }
.comic-bubble[data-tail="top-center"]::before { border-bottom-color: #fff; }

.comic-bubble[data-tail="bottom-center"]::after,
.comic-bubble[data-tail="bottom-center"]::before {
  bottom: calc(var(--tail-offset) * -1);
  top: auto;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  border-width: var(--tail-main) var(--tail-sub) 0 var(--tail-sub);
}
.comic-bubble[data-tail="bottom-center"]::after { border-top-color: #000; }
.comic-bubble[data-tail="bottom-center"]::before { border-top-color: #fff; }

@media (max-width: 768px) {
  .comic-bubble {
    border-width: 2px;
    border-radius: 12px;
    box-shadow: 3px 3px 0 #000;
  }

  .comic-bubble--w-20,
  .comic-bubble--h-20 {
    --bubble-font-size: clamp(10px, 2.8vw, 13px);
    --bubble-padding-x: 8px;
    --bubble-padding-y: 6px;
    --bubble-lines: 4;
    width: max(120px, 24%);
    height: max(80px, 20%);
    min-width: 120px;
    min-height: 80px;
  }

  .comic-bubble--w-40,
  .comic-bubble--h-40 {
    --bubble-font-size: clamp(11px, 3.2vw, 15px);
    --bubble-padding-x: 10px;
    --bubble-padding-y: 8px;
    --bubble-lines: 5;
    width: max(160px, 40%);
    height: max(110px, 40%);
    min-width: 160px;
    min-height: 110px;
  }

  .comic-bubble--w-60,
  .comic-bubble--h-60 {
    --bubble-font-size: clamp(12px, 3.6vw, 17px);
    --bubble-padding-x: 12px;
    --bubble-padding-y: 9px;
    --bubble-lines: 6;
    width: max(200px, 60%);
    height: max(140px, 60%);
    min-width: 200px;
    min-height: 140px;
  }

  .comic-bubble--w-80,
  .comic-bubble--h-80 {
    --bubble-font-size: clamp(13px, 4vw, 19px);
    --bubble-padding-x: 14px;
    --bubble-padding-y: 10px;
    --bubble-lines: 8;
    width: max(240px, 80%);
    height: max(180px, 80%);
    min-width: 240px;
    min-height: 180px;
  }
}

.carousel-item [data-fullscreen-zoom-target="container"] {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
}

body.fullscreen-zoom-open {
  overflow: hidden;
}
