/* === v1.6.2 base + effects === */
.keu-rs{margin:var(--mt,24px) 0 var(--mb,64px);padding:0;--accent:#2563eb;--brand:#004aad;--brand-r:0;--brand-g:74;--brand-b:173;--num:32px;--time:20px;--meta:12px;--bg:#0b1220;--surface:#0f172a;--text:#e5e7eb;--muted:#cbd5e1;--tile-bg:#0f172a;--tile-edge:#1f2937;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic UI','Yu Gothic',Meiryo,sans-serif;color:var(--text)}
.keu-rs__container{max-width:var(--maxw-desktop,1400px);margin:0 auto;padding:24px 16px 18px;box-sizing:border-box}
@media(max-width:640px){.keu-rs__container{max-width:var(--maxw-mobile,640px)}}
.keu-rs__heading{margin:0 0 14px;font-size:clamp(14px,3.8vw,18px);font-weight:700;text-align:center;opacity:.9}
.keu-bubble__wrap{position:relative;display:block;margin-bottom:12px}
.keu-bubble__body{background:var(--brand);border:1px solid rgba(var(--brand-r),var(--brand-g),var(--brand-b),.9);border-radius:14px;color:#fff;box-shadow:0 12px 40px rgba(0,0,0,.28);padding:14px 16px 16px}
.keu-bubble__tail{position:absolute;left:50%;transform:translateX(-50%);bottom:-10px;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid var(--brand)}
.keu-rs__oneline{display:flex;flex-wrap:nowrap;white-space:nowrap;gap:8px;justify-content:center;align-items:baseline;margin:0 0 6px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.keu-rs__oneline-date{font-size:clamp(14px,4.2vw,var(--time));font-weight:800;letter-spacing:.01em;color:#fff}
.keu-rs__oneline-dow{font-size:clamp(12px,3.8vw,calc(var(--time)*.75));color:rgba(255,255,255,.9)}
.keu-rs__oneline-sep{font-size:clamp(14px,4.2vw,var(--time));opacity:.85;flex:0 0 auto;color:#fff}
.keu-rs__oneline-time{font-size:clamp(12px,3.6vw,calc(var(--time)*.85));font-weight:900;letter-spacing:.01em;color:#fff}
@media(min-width:641px){.keu-rs__oneline-time{font-size:var(--time)}.keu-rs__oneline-sep{display:inline}}
@media(max-width:640px){.keu-rs__oneline{flex-wrap:wrap;white-space:normal;gap:2px}.keu-rs__oneline-sep{display:none}.keu-rs__oneline-time{display:block;width:100%;text-align:center;margin-top:1px}}
.keu-onair{display:none;align-items:center;justify-content:center;gap:8px;margin-top:6px}
.keu-rs.onair .keu-onair{display:flex}
.keu-onair__badge{background:#dc2626;color:#fff;font-weight:800;border-radius:9999px;padding:4px 10px;font-size:12px;letter-spacing:.08em}
.keu-onair__elapsed{color:#fee2e2;font-size:12px}
.keu-onair__elapsed b{font-size:13px}
.keu-listen{margin-top:10px;display:flex;justify-content:center}
.keu-listen__btn{display:inline-flex;align-items:center;justify-content:center;min-width:220px;padding:12px 16px;border-radius:12px;font-weight:800;text-decoration:none;background:#fff;color:var(--brand);box-shadow:0 6px 18px rgba(var(--brand-r),var(--brand-g),var(--brand-b),.35)}
.keu-rs.onair .keu-listen__btn{background:#dc2626;color:#fff;box-shadow:0 6px 18px rgba(220,38,38,.35)}
.keu-rs__countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}
.keu-cd__tile{background:var(--tile-bg);border:1px solid var(--tile-edge);border-radius:12px;padding:12px 8px;text-align:center;transition:background .4s ease,border-color .4s ease}
.keu-cd__num{font-size:clamp(18px,6vw,var(--num));font-weight:800;letter-spacing:.01em;font-variant-numeric:tabular-nums;color:#fff}
.keu-cd__label{font-size:clamp(10px,3.2vw,var(--meta));color:var(--muted);margin-top:2px}
/* effects */
.keu-cd__num.keu-anim{will-change:transform,opacity;backface-visibility:hidden}
.keu-effect--fade .keu-cd__num.keu-anim{animation:keuFade .45s ease both}
@keyframes keuFade{from{opacity:.2}to{opacity:1}}
.keu-effect--slideUp .keu-cd__num.keu-anim{animation:keuSlideUp .45s ease both}
@keyframes keuSlideUp{from{transform:translateY(12px);opacity:.2}to{transform:translateY(0);opacity:1}}
.keu-effect--slideDown .keu-cd__num.keu-anim{animation:keuSlideDown .45s ease both}
@keyframes keuSlideDown{from{transform:translateY(-12px);opacity:.2}to{transform:translateY(0);opacity:1}}
.keu-effect--scale .keu-cd__num.keu-anim{animation:keuScale .35s ease both}
@keyframes keuScale{from{transform:scale(.88);opacity:.4}to{transform:scale(1);opacity:1}}
.keu-effect--flipX .keu-cd__num.keu-anim{animation:keuFlipX .5s both ease}
@keyframes keuFlipX{from{transform:rotateX(-80deg);opacity:.3}to{transform:rotateX(0);opacity:1}}
.keu-effect--flipY .keu-cd__num.keu-anim{animation:keuFlipY .5s both ease}
@keyframes keuFlipY{from{transform:rotateY(-80deg);opacity:.3}to{transform:rotateY(0);opacity:1}}
.keu-effect--rotate .keu-cd__num.keu-anim{animation:keuRotate .5s ease both}
@keyframes keuRotate{from{transform:rotate(-15deg);opacity:.3}to{transform:rotate(0);opacity:1}}
.keu-effect--blur .keu-cd__num.keu-anim{animation:keuBlur .45s ease both;filter:blur(0)}
@keyframes keuBlur{from{filter:blur(6px);opacity:.2}to{filter:blur(0);opacity:1}}
.keu-effect--bounce .keu-cd__num.keu-anim{animation:keuBounce .6s cubic-bezier(.34,1.56,.64,1) both}
@keyframes keuBounce{0%{transform:translateY(-10px)}60%{transform:translateY(6px)}100%{transform:translateY(0)}}
.keu-effect--shift .keu-cd__num.keu-anim{animation:keuShift .5s ease both}
@keyframes keuShift{from{transform:translateX(10px);opacity:.2}to{transform:translateX(0);opacity:1}}
