/* Motion icons v1 (2026-10-24, Sean 승인 "이대로 배포해"). Paired with motion-icons-1.js.
   Text arrows become inline SVG that move once on hover/focus; status, feedback and toggle icons.
   Everything stops under prefers-reduced-motion. Shared by moBle, LaB:96 and TRiNOV sites. */
.mi-ar{display:inline-block;width:.84em;height:.84em;vertical-align:-.06em;overflow:hidden;line-height:0}
.mi-ar svg,.mi-ic svg{width:100%;height:100%;display:block}
.mi-ar svg,.mi-ic svg,.mi-morph svg{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mi-ar svg path,.mi-ic svg path,.mi-morph svg path{fill:none}
.mi-pseudo-off::after{content:none!important}
.mi-pseudo-ar{margin-left:.32em}
.mi-ic{display:inline-block;width:1em;height:1em;vertical-align:-.14em;line-height:0;flex:none}
.mi-morph{position:relative;display:inline-block;width:1em;height:1em;vertical-align:-.14em;flex:none}
.mi-morph svg{position:absolute;inset:0;width:100%;height:100%}
.mi-morph .b{opacity:0;transform:rotate(-60deg) scale(.5)}
.mi-on .mi-morph .a{opacity:0;transform:rotate(60deg) scale(.5)}
.mi-on .mi-morph .b{opacity:1;transform:none}
.mi-hide{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.mi-gap{margin-right:.45em}
.mi-accent{color:var(--accent,#95cc2c)}
.mi-ml{margin-left:.35em}
.mi-dots{display:inline-flex;gap:.18em;align-items:center;vertical-align:middle}
.mi-dots i{width:.24em;height:.24em;border-radius:50%;background:currentColor;opacity:.3}
.mi-sub-dots{display:none}
.mi-busy .mi-lbl,.mi-busy .mi-okc{display:none}
.mi-busy .mi-sub-dots{display:inline-flex}
.mi-okc{display:none}
.mi-done .mi-okc{display:inline-block}
.mi-status-ic{display:inline-block;width:.62em;height:.62em;vertical-align:.02em;margin-right:.5em;overflow:visible}
.mi-status-ic circle{fill:none;stroke-width:1.6}
.mi-status-ic .bg{stroke:currentColor;opacity:.25}
.mi-status-ic .fg{stroke:var(--accent,#1b743c)}
.mi-status-ic .solid{fill:var(--accent,#1b743c);stroke:none}
.mi-pseudo-before-off::before{content:none!important;display:none!important}
.mi-mail{width:1.3em}
.mi-mail .trail{stroke-dasharray:6;stroke-dashoffset:6}
.mi-acad i{transform-origin:left center!important}
@media (prefers-reduced-motion:no-preference){
:is(a,button,[role=button]):is(:hover,:focus-visible) .mi-ne svg{animation:mi-ne .45s cubic-bezier(.4,0,.2,1)}
@keyframes mi-ne{45%{transform:translate(115%,-115%);opacity:0}46%{transform:translate(-115%,115%);opacity:0}100%{transform:none;opacity:1}}
:is(a,button,[role=button]):is(:hover,:focus-visible) .mi-dn svg{animation:mi-dn .5s ease}
@keyframes mi-dn{50%{transform:translateY(22%)}}
.mi-se svg,.mi-up svg,.mi-rt svg,.mi-rt2 svg,.mi-lt svg,.mi-lt2 svg{transition:transform .25s ease}
:is(a,button,[role=button]):is(:hover,:focus-visible) .mi-se svg{transform:translate(14%,14%)}
:is(a,button,[role=button]):is(:hover,:focus-visible) .mi-up svg{transform:translateY(-20%)}
:is(a,button,[role=button]):is(:hover,:focus-visible) :is(.mi-rt,.mi-rt2) svg{transform:translateX(20%)}
:is(a,button,[role=button]):is(:hover,:focus-visible) :is(.mi-lt,.mi-lt2) svg{transform:translateX(-20%)}
.mi-morph svg{transition:transform .45s cubic-bezier(.3,1.4,.5,1),opacity .3s}
.mi-replay svg{transition:transform .6s cubic-bezier(.4,0,.2,1)}
.mi-replay.mi-spin svg{transform:rotate(-360deg)}
.mi-copy .b path{stroke-dasharray:14;stroke-dashoffset:14;transition:stroke-dashoffset .35s .1s}
.mi-on .mi-copy .b path{stroke-dashoffset:0}
.mi-dots i{animation:mi-fade 1.4s infinite}
.mi-dots i:nth-child(2){animation-delay:.2s}
.mi-dots i:nth-child(3){animation-delay:.4s}
@keyframes mi-fade{30%{opacity:1}60%{opacity:.3}}
.mi-sub-dots i{animation:mi-hop .6s infinite}
@keyframes mi-hop{50%{transform:translateY(-.18em);opacity:1}}
.mi-status-ic .fg{transform-origin:50% 50%;animation:mi-spin 1.8s linear infinite}
@keyframes mi-spin{to{transform:rotate(360deg)}}
.guide-tool[data-act=search]:is(:hover,:focus-visible) svg{animation:mi-wig .5s ease;transform-origin:44% 44%}
@keyframes mi-wig{25%{transform:rotate(-14deg)}70%{transform:rotate(9deg)}}
.guide-tool[data-act=more]:is(:hover,:focus-visible) circle{animation:mi-hop2 .45s ease}
.guide-tool[data-act=more]:is(:hover,:focus-visible) circle:nth-child(2){animation-delay:.08s}
.guide-tool[data-act=more]:is(:hover,:focus-visible) circle:nth-child(3){animation-delay:.16s}
@keyframes mi-hop2{40%{transform:translateY(-3px)}}
.mi-mail .trail{transition:stroke-dashoffset .3s}
.mi-mail .env{transition:transform .35s cubic-bezier(.3,1.5,.5,1)}
:is(a,button):is(:hover,:focus-visible) .mi-mail .trail{stroke-dashoffset:0}
:is(a,button):is(:hover,:focus-visible) .mi-mail .env{transform:translateX(12%)}
.mi-acad i{animation:mi-draw 4s ease-in-out infinite}
.mi-acad i:nth-child(2){animation-delay:.2s}
.mi-acad i:nth-child(3){animation-delay:.4s}
.mi-acad i:nth-child(4){animation-delay:.6s}
@keyframes mi-draw{0%{transform:scaleX(0)}25%,70%{transform:scaleX(1)}95%,100%{transform:scaleX(0)}}
}
