/* Additions on top of koreanlol-home.css. Uses the same variables and component classes. */

/* Hero animation punchline: fades in when the Hangul laugh is formed. */
.sequence{position:relative}
.morph-punch{position:absolute;left:0;right:0;bottom:0;padding:0 16px 12px;text-align:center;opacity:0;transform:translateY(10px);transition:opacity .55s ease,transform .55s ease;pointer-events:none}
.morph-punch b{display:block;font:700 clamp(20px,2.7vw,30px)/1.08 var(--serif);letter-spacing:-.03em;color:var(--ink)}
.morph-punch span{display:block;margin-top:8px;font:700 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red-dark)}
.sequence[data-phase="hangul"] .morph-punch,.sequence[data-phase="fallback"] .morph-punch{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.morph-punch{transition:none}}

/* Hangulish explainer inside the Hangulish section. */
.hl-demo{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:22px 0 16px;padding:16px 20px;border:2px solid var(--ink);background:var(--cream);color:var(--ink)}
.hl-block{display:flex;align-items:center;gap:16px}
.hl-ko{font:700 62px/1 'Noto Sans KR',var(--sans)}
.hl-hl{font:400 62px/1 Hangulish,'Noto Sans KR',sans-serif;color:var(--red-dark)}
.hl-eq{margin:0;font-size:18px}
.hl-eq small{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.hl-label{margin:14px 0 6px;font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.hl-chips{display:flex;flex-wrap:wrap;gap:6px 8px;margin:0 0 6px}
.hl-chips span{display:inline-flex;align-items:baseline;gap:6px;padding:3px 9px;border:1px solid var(--line);background:var(--cream);color:var(--ink);font-size:13px}
.hl-chips .k{font-family:'Noto Sans KR',sans-serif;font-weight:700}
.hl-chips .h{font-family:Hangulish,'Noto Sans KR',sans-serif;color:var(--red-dark)}
.hl-chips .c{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.06em}

/* Episode player: reuses starter-card / track-list; only small adjustments. */
.episodes-section .starter-story h3{font-size:30px;letter-spacing:-.02em}
.episodes-section .ep-line{margin:0 0 6px;font:700 17px/1.35 'Noto Sans KR',var(--sans)}
.episodes-section .ep-line-en{margin:0 0 18px;color:#5d5548}
.episodes-section .track-list+.track-list{margin-top:16px}
.episodes-section .track-list-label{margin:14px 0 6px;color:var(--red-dark);font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.episodes-section .track-list button span.ko{font-family:'Noto Sans KR',var(--sans)}
.hl-chips em{font-style:normal}

/* Fallback if the hero animation cannot run: show the final Hangul laugh as plain text. */
.morph-static{display:none;position:absolute;left:0;right:0;top:18%;text-align:center;font:700 clamp(64px,10vw,120px)/1 'Noto Sans KR',var(--sans);color:var(--ink)}
.sequence[data-phase="fallback"] .morph-static{display:block}
.sequence[data-phase="fallback"] .sequence-svg{visibility:hidden}

/* Shared episode player. */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.episodes-section .ep-title-en{margin:-6px 0 14px;color:#5d5548;font-size:13px}
.track-list button[aria-current="true"]{background:#f2eadc}
.track-list button[aria-current="true"] span{font-weight:850}
.track-list button:focus-visible{outline:2px solid var(--red-dark);outline-offset:-2px}

/* Hero small text on red: cream, 12px floor. NOT WCAG AA (about 3.5:1); see the contrast note in the owner report. */
.hero-note,.hero-byline,.hero-proof span{color:#fffaf0}
.hero-note{font-size:12px}
.hero-proof span{font-size:12px}

.section-intro h1{margin:0 0 14px;font-size:clamp(34px,4.5vw,58px);line-height:1.04;letter-spacing:-.065em}
