/* Selected template case cards: scale .5s ease plus .75s one-pass light sweep. */
.department .case_slide .list .img img{transition:transform .5s ease}
@media(hover:hover) and (pointer:fine){
 .department .case_slide .list:hover .img img{transform:scale(1.2)}
 .department .case_slide .list_in::before{display:block;content:'';position:absolute;top:0;left:-75%;width:50%;height:100%;z-index:2;pointer-events:none;background:linear-gradient(to right,#fff0 0%,#ffffff4d 100%);transform:skewX(-25deg);opacity:0}
 .department .case_slide .list_in:hover::before{animation:program-shine .75s ease}
}
@keyframes program-shine{0%,40%{opacity:1}100%{left:125%;opacity:0}}
.department .case_slide .list_in:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.department .program-controls{display:grid;grid-template-columns:36px 60px 36px;gap:0;width:132px;border:0;padding:0;margin-top:32px;align-items:center;color:var(--accent)}
.department .program-controls button{display:inline-flex;justify-content:center;align-items:center;width:36px;height:40px;min-width:0;min-height:0;padding:0;border:0;background:transparent;color:#8c828f;cursor:pointer;border-radius:0;font-size:0}
.department .program-controls button svg{width:20px;height:12px;fill:none;stroke:currentColor;stroke-width:1;overflow:visible}
.department .program-controls button:hover{color:var(--accent)}
.department .program-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.department .program-controls .program-count{font:400 18px/1.2 Pretendard,sans-serif;letter-spacing:0;text-align:center;white-space:nowrap}
.department .program-count .current{color:var(--accent);font-weight:600}.department .program-count .divider,.department .program-count .total{color:#b7aebc}
.department .program-progress{height:2px;width:100%;grid-column:1/-1;background:#ded8e1;overflow:hidden}.department .program-progress span{height:100%;display:block;width:0;background:var(--accent)}
@media(max-width:1024px){.department .program-controls{width:148px;grid-template-columns:44px 60px 44px}.department .program-controls button{width:44px;height:44px;min-width:44px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.department .case_slide .list .img img{transition:none;transform:none!important}.department .case_slide .list_in::before{animation:none!important;display:none}.department .program-progress span{transition:none!important}}
/* Source-confirmed photo and Top hover effects; keep touch/reduced presentation still. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .m3 .doctor_list .list .img_wrap::before{display:block!important;pointer-events:none}
 .m3 .doctor_list .list .img_wrap:hover::before{animation:program-shine .75s ease}
 .tpl_mag_list .card .thumb img{transition:transform .5s ease}
 .tpl_mag_list .card:hover .thumb img{transform:scale(1.15)}
 #quick #top{position:relative;overflow:hidden}
 #quick #top::before{display:block;pointer-events:none}
 #quick #top:hover::before{animation:program-shine .75s ease}
}
@media(prefers-reduced-motion:reduce){.tpl_mag_list .card .thumb img{transition:none;transform:none!important}}
/* Original Top rhythm: -5px to +5px, 1s ease in each alternate direction. */
@keyframes program-top-bounce{from{transform:translateY(-5px)}to{transform:translateY(5px)}}
@media(prefers-reduced-motion:no-preference){#quick #top{animation:program-top-bounce 1s ease infinite alternate}}
html.capture #quick #top{animation:none!important;transform:none!important}
@media(prefers-reduced-motion:reduce){#quick #top{animation:none!important;transform:none!important}}
