/* ============================================================
   LED 전광판 · 응원 문구 전용 스타일
   - 전광판 "무대(board)"는 사이트 테마와 별개로 사용자가 고른
     글자색(--led-fg)·배경색(--led-bg)을 그대로 쓴다.
   - 흐르기/왕복 애니메이션 거리는 컨테이너 질의(cqw/cqh) 기준 →
     미리보기와 전체화면(회전 포함) 어디서든 같은 계산으로 동작.
   ============================================================ */

.tool-intro { padding: var(--space-6) 0 var(--space-5); }
.tool-intro h1 { word-break: keep-all; }
.tool-intro .lead { max-width: 62ch; color: var(--color-text-sub); }
.tool-intro .lead strong { color: var(--color-text); }
.tool-intro .lead-note { font-size: .88rem; color: var(--color-text-sub); }

/* ---- 전광판 무대 ---- */
.led-board {
  --led-fg: #39ff14;
  --led-bg: #000000;
  --led-size: 62cqh;         /* 글자 크기: 무대 높이 기준 */
  position: relative;
  border-radius: var(--radius);
  border: 1px solid var(--color-border);
  overflow: hidden;
  background: var(--led-bg);
  box-shadow: var(--shadow);
}
.led-viewport {
  position: relative;
  width: 100%;
  height: clamp(190px, 34vw, 300px);
  container-type: size;      /* cqw/cqh 기준 컨테이너 */
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.led-text {
  white-space: nowrap;
  padding: 0 .1em;
  color: var(--led-fg);
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: var(--led-size);
  line-height: 1.1;
  letter-spacing: .01em;
  will-change: transform, opacity;
  text-shadow: 0 0 .28em color-mix(in srgb, var(--led-fg) 55%, transparent);
}
/* 글꼴 변형 */
.led-board[data-font="gothic"]   .led-text { font-family: var(--font-sans); }
.led-board[data-font="round"]    .led-text { font-family: "GangwonEduAll", var(--font-sans); }
.led-board[data-font="myeongjo"] .led-text { font-family: var(--font-serif); }
.led-board[data-font="dot"]      .led-text {
  font-family: ui-monospace, "DejaVu Sans Mono", "D2Coding", monospace;
  letter-spacing: .04em;
}
.led-board.is-bold .led-text { font-weight: 700; }

/* 움직임: 고정은 가운데 정렬 + 여러 줄 허용 */
.led-board[data-mode="static"] .led-viewport { justify-content: center; }
.led-board[data-mode="static"] .led-text {
  white-space: pre-wrap;
  text-align: center;
  max-width: 96%;
  word-break: keep-all;
}

/* 애니메이션 (실제 재생 여부·시간은 app.js가 style.animation 으로 지정) */
@keyframes led-marquee {
  from { transform: translateX(100cqw); }
  to   { transform: translateX(-100%); }
}
@keyframes led-bounce {
  from { transform: translateX(0); }
  to   { transform: translateX(calc(100cqw - 100%)); }
}
@keyframes led-blink {
  0%, 50%      { opacity: 1; }
  50.01%, 100% { opacity: 0; }
}

/* ---- 무대 위 버튼 ---- */
.led-fs-corner, .led-exit {
  position: absolute;
  top: 10px; right: 10px;
  z-index: 5;
  font: inherit;
  font-size: .82rem;
  line-height: 1;
  cursor: pointer;
  padding: 8px 13px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(0,0,0,.4);
  color: #fff;
  backdrop-filter: blur(3px);
  transition: opacity .3s ease, background .15s ease;
}
.led-fs-corner:hover, .led-exit:hover { background: rgba(0,0,0,.62); }
/* 전체화면에서는 코너 전체화면 버튼 숨김, 나가기 버튼만 (탭 시) */
.led-board.is-fs .led-fs-corner { display: none; }
.led-board.is-fs .led-exit { display: block; }
/* 전체화면에서 조작 숨김 상태 */
.led-board.is-fs.ui-hidden .led-exit { opacity: 0; pointer-events: none; }

/* ---- 전체화면 ---- */
.led-board.is-fs {
  position: fixed;
  inset: 0;
  z-index: 1000;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  cursor: none;
}
.led-board.is-fs.ui-hidden { cursor: none; }
.led-board.is-fs:not(.ui-hidden) { cursor: auto; }
.led-board.is-fs .led-viewport {
  width: 100%;
  height: 100vh;
  height: 100dvh;
}
/* 가로 회전: 폰을 세로로 든 채 긴 쪽으로 문구가 흐르게 (전체화면 한정) */
.led-board.is-fs.is-rot .led-viewport {
  position: absolute;
  top: 50%; left: 50%;
  width: 100vh;  height: 100vw;
  width: 100dvh; height: 100dvw;
  transform: translate(-50%, -50%) rotate(90deg);
  transform-origin: center;
}

/* ---- 조작판 ---- */
.led-controls {
  margin-top: var(--space-4);
  display: grid;
  gap: var(--space-4);
}
.led-field { display: grid; gap: var(--space-2); }
.led-lab {
  font-size: .82rem;
  font-weight: 700;
  color: var(--color-text-sub);
  letter-spacing: .02em;
}
.led-field-text textarea {
  font: inherit;
  font-size: 1.05rem;
  width: 100%;
  resize: vertical;
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-bg);
  color: var(--color-text);
}
.led-field-text textarea:focus {
  outline: none;
  border-color: var(--color-primary);
}

/* 칩(움직임·깜빡임·글꼴·토글 공용) */
.led-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.led-chip {
  font: inherit;
  font-size: .9rem;
  line-height: 1;
  cursor: pointer;
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.led-chip:hover { border-color: var(--color-primary); }
.led-chip.is-on {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #fff;
}
.led-field.is-off { opacity: .4; pointer-events: none; }

/* 빠른 스타일 프리셋 */
.led-presets { display: flex; flex-wrap: wrap; gap: 8px; }
.led-preset {
  font: inherit;
  font-size: .9rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px 8px 8px;
  border-radius: 999px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
  transition: border-color .15s ease, transform .12s ease;
}
.led-preset:hover { border-color: var(--color-primary); transform: translateY(-1px); }
.led-preset i {
  width: 22px; height: 22px;
  border-radius: 50%;
  background:
    linear-gradient(135deg, var(--b) 0 50%, transparent 50%),
    var(--a);
  border: 1px solid rgba(0,0,0,.2);
}

/* 색 견본 */
.led-swatches { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.led-sw {
  width: 34px; height: 34px;
  padding: 0;
  border-radius: 50%;
  cursor: pointer;
  background: var(--c, #000);
  border: 2px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  transition: transform .12s ease, box-shadow .12s ease;
}
.led-sw:hover { transform: scale(1.08); }
.led-sw.is-on {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-weak);
}
.led-sw-custom {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background:
    conic-gradient(from 0deg, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00);
}
.led-sw-custom input[type="color"] {
  position: absolute;
  inset: -4px;
  width: calc(100% + 8px);
  height: calc(100% + 8px);
  border: 0;
  padding: 0;
  cursor: pointer;
  opacity: 0;
}

/* 슬라이더 */
.led-range { display: flex; align-items: center; gap: var(--space-3); }
.led-range input[type="range"] {
  flex: 1;
  accent-color: var(--color-primary);
}
.led-range-min, .led-range-max {
  font-size: .78rem;
  color: var(--color-text-sub);
  white-space: nowrap;
}

/* 큰 전체화면 버튼 */
.led-fs-main {
  margin-top: var(--space-2);
  padding: var(--space-4);
  font-size: 1.05rem;
  font-weight: 700;
  border-radius: var(--radius-sm);
}
.led-tip {
  margin: 0;
  font-size: .84rem;
  color: var(--color-text-sub);
}

/* ---- prose (사용법·FAQ) ---- */
.prose { max-width: 760px; margin: var(--space-6) auto 0; }
.prose h2 { margin: 0 0 var(--space-3); }
.prose p, .prose li { color: var(--color-text); font-size: .95rem; line-height: 1.8; }
.prose ol, .prose ul { padding-left: 1.3em; }
.prose li { margin-bottom: var(--space-2); }
.prose details {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-2);
}
.prose summary { cursor: pointer; font-weight: 700; font-size: .95rem; }
.prose details p { margin: var(--space-3) 0 var(--space-1); }
.prose kbd {
  font: inherit;
  font-size: .82em;
  padding: 1px 6px;
  border: 1px solid var(--color-border);
  border-bottom-width: 2px;
  border-radius: 5px;
  background: var(--color-surface);
}

@media (prefers-reduced-motion: reduce) {
  .led-preset:hover { transform: none; }
  .led-sw:hover { transform: none; }
}
