/* ============================================================
   Slide content components — colorful illustration style
   ============================================================ */

/* --- common text atoms --- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 23px; font-weight: 800; letter-spacing: .02em;
  color: var(--coral);
  background: color-mix(in srgb, var(--coral) 12%, #fff);
  padding: 9px 22px; border-radius: var(--r-pill);
  width: fit-content;
}
.eyebrow .ic { width: 26px; height: 26px; }
.eyebrow.teal { color: #0f9b73; background: color-mix(in srgb, var(--teal) 16%, #fff); }
.eyebrow.purple { color: var(--grape); background: color-mix(in srgb, var(--purple) 14%, #fff); }
.eyebrow.sky { color: #0284c7; background: color-mix(in srgb, var(--sky) 16%, #fff); }
.eyebrow.pink { color: #db2777; background: color-mix(in srgb, var(--pink) 16%, #fff); }

h1.title { font-size: var(--fs-h1); font-weight: 900; line-height: 1.06; letter-spacing: -.03em; text-wrap: balance; }
h2.title { font-size: var(--fs-h2); font-weight: 800; line-height: 1.12; letter-spacing: -.03em; text-wrap: balance; }
.lead { font-size: var(--fs-lead); color: var(--ink-soft); line-height: 1.6; font-weight: 500; max-width: 940px; text-wrap: pretty; }
.body, .card p, .bubble { text-wrap: pretty; }
.body { font-size: var(--fs-body); color: var(--ink-soft); line-height: 1.6; }
.hl { color: var(--ink); font-weight: 800; }
.hl-coral { color: var(--coral); font-weight: 800; }
.hl-teal { color: #0f9b73; font-weight: 800; }
.hl-purple { color: var(--grape); font-weight: 800; }
.hl-sky { color: #0284c7; font-weight: 800; }
.hl-pink { color: #db2777; font-weight: 800; }
.marker {
  background: linear-gradient(transparent 58%, color-mix(in srgb, var(--amber) 65%, #fff) 58%);
  padding: 0 2px; font-weight: 800; color: var(--ink);
}

.center { align-items: center; justify-content: center; text-align: center; }
.center .lead { max-width: 820px; }
.spacer { flex: 1; }
.row { display: flex; gap: 24px; }
.col { display: flex; flex-direction: column; gap: 16px; }
.between { justify-content: space-between; }
.items-center { align-items: center; }

/* --- kicker number badge for slides --- */
.section-tag {
  position: absolute; top: 30px; right: 40px;
  font-size: 18px; font-weight: 800; color: var(--ink-faint);
  letter-spacing: .06em; display: inline-flex; align-items: center; gap: 8px;
}
.section-tag .ic { width: 20px; height: 20px; }

/* ============================================================
   COVER
   ============================================================ */
.cover { justify-content: center; gap: 26px; }
.cover .kicker {
  font-size: 17px; font-weight: 800; color: var(--coral); letter-spacing: .04em;
}
.cover h1 {
  font-size: var(--fs-hero); font-weight: 900; line-height: 1.02; letter-spacing: -.03em;
}
.cover h1 .grad {
  background: linear-gradient(100deg, var(--coral), var(--tangerine) 40%, var(--purple));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.cover .sub { font-size: var(--fs-lead); color: var(--ink-soft); max-width: 900px; text-wrap: pretty; }
.cover .meta-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.pill {
  font-size: 20px; font-weight: 700; color: var(--ink-soft);
  background: #fff; border: 2px solid var(--line); border-radius: var(--r-pill);
  padding: 11px 24px; box-shadow: var(--shadow-sm);
  display: inline-flex; align-items: center; gap: 9px;
}
.pill .ic { width: 22px; height: 22px; }
.pill.solid { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ============================================================
   MASCOT — "인터넷 다 읽은 인턴"
   ============================================================ */
.mascot { filter: drop-shadow(0 18px 30px rgba(31,36,51,.16)); }
.mascot .bob { animation: floaty 4s var(--ease-out) infinite; transform-origin: center; }
@keyframes floaty { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
.mascot .blink { animation: blink 4.5s steps(1) infinite; transform-origin: center; }
@keyframes blink { 0%,94%,100%{transform:scaleY(1)} 96%{transform:scaleY(.1)} }

/* speech bubble */
.bubble {
  position: relative; background: #fff; border: 3px solid var(--ink);
  border-radius: var(--r-lg); padding: 22px 30px;
  font-size: 30px; font-weight: 800; box-shadow: var(--shadow-md);
}
.bubble::after {
  content: ""; position: absolute; left: 48px; bottom: -16px;
  width: 0; height: 0; border: 14px solid transparent;
  border-top-color: var(--ink); border-bottom: 0;
}
.bubble::before {
  content: ""; position: absolute; left: 51px; bottom: -11px;
  width: 0; height: 0; border: 11px solid transparent;
  border-top-color: #fff; border-bottom: 0; z-index: 1;
}

/* ============================================================
   CARDS
   ============================================================ */
.cards { display: grid; gap: 18px; }
.card {
  background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg);
  padding: 32px;
  /* dual-layer shadow: wide diffuse + tight contact = paper depth */
  box-shadow: 0 10px 30px rgba(18,24,40,.08), 0 2px 6px rgba(18,24,40,.04);
  transition: transform var(--t-med) var(--ease-spring), box-shadow var(--t-med);
}
.card .ico {
  width: 76px; height: 76px; border-radius: 20px; display: grid; place-items: center;
  margin-bottom: 20px;
}
.card .ico .ic { width: 42px; height: 42px; }
.card h3 { font-size: 30px; font-weight: 800; margin-bottom: 10px; }
.card p { font-size: 22px; color: var(--ink-soft); line-height: 1.5; }
.tint-coral .ico { background: color-mix(in srgb, var(--coral) 16%,#fff); color: var(--coral); }
.tint-teal  .ico { background: color-mix(in srgb, var(--teal) 18%,#fff); color: #0f9b73; }
.tint-purple .ico{ background: color-mix(in srgb, var(--purple) 16%,#fff); color: var(--grape); }
.tint-sky .ico   { background: color-mix(in srgb, var(--sky) 18%,#fff); color: #0284c7; }
.tint-amber .ico { background: color-mix(in srgb, var(--amber) 24%,#fff); color: #d98a00; }
.tint-pink .ico  { background: color-mix(in srgb, var(--pink) 18%,#fff); color: #db2777; }

/* the "3 walls" */
.wall {
  position: relative; border-radius: var(--r-md); overflow: hidden;
  background: linear-gradient(180deg,#c9a06b,#a8753f);
  color: #fff; padding: 22px; min-height: 180px;
  display: flex; flex-direction: column; justify-content: flex-end;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.12), var(--shadow-md);
}
.wall::before { /* brick texture */
  content:""; position:absolute; inset:0; opacity:.22;
  background-image:
    linear-gradient(#0000 0 0),
    repeating-linear-gradient(0deg,#0003 0 1px,transparent 1px 26px),
    repeating-linear-gradient(90deg,#0003 0 1px,transparent 1px 52px);
}
.wall { padding: 28px; min-height: 240px; }
.wall .wnum { font-size: 18px; font-weight: 800; opacity:.85; }
.wall h3 { font-size: 30px; font-weight: 900; position: relative; margin: 4px 0; }
.wall p { font-size: 20px; opacity:.94; position: relative; line-height: 1.4; }
.wall .arrow-to {
  position: relative; margin-top: 14px; font-size: 18px; font-weight: 800;
  background: rgba(255,255,255,.96); color: var(--ink);
  border-radius: var(--r-pill); padding: 8px 16px; width: fit-content;
}

/* ============================================================
   GALTON BOARD (probability → next word)
   ============================================================ */
.galton { position: relative; width: 320px; height: 300px; }
.galton .peg { fill: var(--ink-faint); }
.galton .ball { fill: var(--coral); }
.galton .bar { fill: var(--tangerine); }

/* simple animated "thinking" bars under galton */
.dist-bar { transform-origin: bottom; animation: grow 1.2s var(--ease-out) both; }
@keyframes grow { from{transform:scaleY(0)} to{transform:scaleY(1)} }

/* ============================================================
   VS / compare blocks
   ============================================================ */
.vs {
  display: grid; grid-template-columns: 1fr auto 1fr; gap: 18px; align-items: stretch;
}
.vs .panel {
  background:#fff; border:2px solid var(--line); border-radius: var(--r-lg); padding: 22px;
}
.vs .panel.bad { border-color: color-mix(in srgb,var(--coral) 40%,#fff); background: color-mix(in srgb,var(--coral) 5%,#fff); }
.vs .panel.good{ border-color: color-mix(in srgb,var(--teal) 45%,#fff); background: color-mix(in srgb,var(--teal) 6%,#fff); }
.vs .panel { padding: 30px; }
.vs .panel .tag { font-size:19px; font-weight:800; padding:6px 18px; border-radius:var(--r-pill); width:fit-content; margin-bottom:16px; }
.vs .panel.bad .tag{ background: var(--coral); color:#fff; }
.vs .panel.good .tag{ background:#0f9b73; color:#fff; }
.vs .mid { display:grid; place-items:center; font-size:40px; font-weight:900; color:var(--ink-faint); }
.vs .panel .body { font-size: 24px; }

/* quote / punch line */
.punch {
  font-size: clamp(28px,4vw,52px); font-weight: 900; line-height: 1.14; letter-spacing: -.02em;
}
.punch .u { position: relative; white-space: nowrap; }
.punch .u::after {
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:10px;
  background: color-mix(in srgb, var(--amber) 70%, #fff); border-radius: 6px; z-index:-1;
}

/* footnote source */
.src { font-size: 18px; color: var(--ink-faint); }
